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;
14386 struct phy_shim_info *shim = pi->sh->physhim;
14388 if (pi->sh->sromrev >= 9)
14391 bw40po = (u16) wlapi_getintvar(shim, BRCMS_SROM_BW40PO);
14392 pi->bw402gpo = bw40po & 0xf;
14393 pi->bw405gpo = (bw40po & 0xf0) >> 4;
14394 pi->bw405glpo = (bw40po & 0xf00) >> 8;
14395 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
14397 cddpo = (u16) wlapi_getintvar(shim, BRCMS_SROM_CDDPO);
14398 pi->cdd2gpo = cddpo & 0xf;
14399 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
14400 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
14401 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
14403 stbcpo = (u16) wlapi_getintvar(shim, BRCMS_SROM_STBCPO);
14404 pi->stbc2gpo = stbcpo & 0xf;
14405 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
14406 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
14407 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
14409 bwduppo = (u16) wlapi_getintvar(shim, BRCMS_SROM_BWDUPPO);
14410 pi->bwdup2gpo = bwduppo & 0xf;
14411 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
14412 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
14413 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
14415 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
14417 switch (band_num) {
14420 pi->nphy_txpid2g[PHY_CORE_0] =
14421 (u8) wlapi_getintvar(shim,
14422 BRCMS_SROM_TXPID2GA0);
14423 pi->nphy_txpid2g[PHY_CORE_1] =
14424 (u8) wlapi_getintvar(shim,
14425 BRCMS_SROM_TXPID2GA1);
14426 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
14427 (s8) wlapi_getintvar(shim,
14428 BRCMS_SROM_MAXP2GA0);
14429 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
14430 (s8) wlapi_getintvar(shim,
14431 BRCMS_SROM_MAXP2GA1);
14432 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
14433 (s16) wlapi_getintvar(shim,
14434 BRCMS_SROM_PA2GW0A0);
14435 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
14436 (s16) wlapi_getintvar(shim,
14437 BRCMS_SROM_PA2GW0A1);
14438 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
14439 (s16) wlapi_getintvar(shim,
14440 BRCMS_SROM_PA2GW1A0);
14441 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
14442 (s16) wlapi_getintvar(shim,
14443 BRCMS_SROM_PA2GW1A1);
14444 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
14445 (s16) wlapi_getintvar(shim,
14446 BRCMS_SROM_PA2GW2A0);
14447 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
14448 (s16) wlapi_getintvar(shim,
14449 BRCMS_SROM_PA2GW2A1);
14450 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
14451 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT2GA0);
14452 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
14453 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT2GA1);
14455 pi->cck2gpo = (u16) wlapi_getintvar(shim,
14456 BRCMS_SROM_CCK2GPO);
14459 (u32) wlapi_getintvar(shim,
14460 BRCMS_SROM_OFDM2GPO);
14463 (u16) wlapi_getintvar(shim,
14464 BRCMS_SROM_MCS2GPO0);
14466 (u16) wlapi_getintvar(shim,
14467 BRCMS_SROM_MCS2GPO1);
14469 (u16) wlapi_getintvar(shim,
14470 BRCMS_SROM_MCS2GPO2);
14472 (u16) wlapi_getintvar(shim,
14473 BRCMS_SROM_MCS2GPO3);
14475 (u16) wlapi_getintvar(shim,
14476 BRCMS_SROM_MCS2GPO4);
14478 (u16) wlapi_getintvar(shim,
14479 BRCMS_SROM_MCS2GPO5);
14481 (u16) wlapi_getintvar(shim,
14482 BRCMS_SROM_MCS2GPO6);
14484 (u16) wlapi_getintvar(shim,
14485 BRCMS_SROM_MCS2GPO7);
14489 pi->nphy_txpid5g[PHY_CORE_0] =
14490 (u8) wlapi_getintvar(shim,
14491 BRCMS_SROM_TXPID5GA0);
14492 pi->nphy_txpid5g[PHY_CORE_1] =
14493 (u8) wlapi_getintvar(shim,
14494 BRCMS_SROM_TXPID5GA1);
14495 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
14496 (s8) wlapi_getintvar(shim, BRCMS_SROM_MAXP5GA0);
14497 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
14498 (s8) wlapi_getintvar(shim,
14499 BRCMS_SROM_MAXP5GA1);
14500 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
14501 (s16) wlapi_getintvar(shim,
14502 BRCMS_SROM_PA5GW0A0);
14503 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
14504 (s16) wlapi_getintvar(shim,
14505 BRCMS_SROM_PA5GW0A1);
14506 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
14507 (s16) wlapi_getintvar(shim,
14508 BRCMS_SROM_PA5GW1A0);
14509 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
14510 (s16) wlapi_getintvar(shim,
14511 BRCMS_SROM_PA5GW1A1);
14512 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
14513 (s16) wlapi_getintvar(shim,
14514 BRCMS_SROM_PA5GW2A0);
14515 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
14516 (s16) wlapi_getintvar(shim,
14517 BRCMS_SROM_PA5GW2A1);
14518 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
14519 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT5GA0);
14520 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
14521 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT5GA1);
14524 (u32) wlapi_getintvar(shim,
14525 BRCMS_SROM_OFDM5GPO);
14528 (u16) wlapi_getintvar(shim,
14529 BRCMS_SROM_MCS5GPO0);
14531 (u16) wlapi_getintvar(shim,
14532 BRCMS_SROM_MCS5GPO1);
14534 (u16) wlapi_getintvar(shim,
14535 BRCMS_SROM_MCS5GPO2);
14537 (u16) wlapi_getintvar(shim,
14538 BRCMS_SROM_MCS5GPO3);
14540 (u16) wlapi_getintvar(shim,
14541 BRCMS_SROM_MCS5GPO4);
14543 (u16) wlapi_getintvar(shim,
14544 BRCMS_SROM_MCS5GPO5);
14546 (u16) wlapi_getintvar(shim,
14547 BRCMS_SROM_MCS5GPO6);
14549 (u16) wlapi_getintvar(shim,
14550 BRCMS_SROM_MCS5GPO7);
14554 pi->nphy_txpid5gl[0] =
14555 (u8) wlapi_getintvar(shim,
14556 BRCMS_SROM_TXPID5GLA0);
14557 pi->nphy_txpid5gl[1] =
14558 (u8) wlapi_getintvar(shim,
14559 BRCMS_SROM_TXPID5GLA1);
14560 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
14561 (s8) wlapi_getintvar(shim,
14562 BRCMS_SROM_MAXP5GLA0);
14563 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
14564 (s8) wlapi_getintvar(shim,
14565 BRCMS_SROM_MAXP5GLA1);
14566 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
14567 (s16) wlapi_getintvar(shim,
14568 BRCMS_SROM_PA5GLW0A0);
14569 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
14570 (s16) wlapi_getintvar(shim,
14571 BRCMS_SROM_PA5GLW0A1);
14572 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
14573 (s16) wlapi_getintvar(shim,
14574 BRCMS_SROM_PA5GLW1A0);
14575 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
14576 (s16) wlapi_getintvar(shim,
14577 BRCMS_SROM_PA5GLW1A1);
14578 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
14579 (s16) wlapi_getintvar(shim,
14580 BRCMS_SROM_PA5GLW2A0);
14581 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
14582 (s16) wlapi_getintvar(shim,
14583 BRCMS_SROM_PA5GLW2A1);
14584 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
14585 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
14588 (u32) wlapi_getintvar(shim,
14589 BRCMS_SROM_OFDM5GLPO);
14592 (u16) wlapi_getintvar(shim,
14593 BRCMS_SROM_MCS5GLPO0);
14595 (u16) wlapi_getintvar(shim,
14596 BRCMS_SROM_MCS5GLPO1);
14598 (u16) wlapi_getintvar(shim,
14599 BRCMS_SROM_MCS5GLPO2);
14601 (u16) wlapi_getintvar(shim,
14602 BRCMS_SROM_MCS5GLPO3);
14604 (u16) wlapi_getintvar(shim,
14605 BRCMS_SROM_MCS5GLPO4);
14607 (u16) wlapi_getintvar(shim,
14608 BRCMS_SROM_MCS5GLPO5);
14610 (u16) wlapi_getintvar(shim,
14611 BRCMS_SROM_MCS5GLPO6);
14613 (u16) wlapi_getintvar(shim,
14614 BRCMS_SROM_MCS5GLPO7);
14618 pi->nphy_txpid5gh[0] =
14619 (u8) wlapi_getintvar(shim,
14620 BRCMS_SROM_TXPID5GHA0);
14621 pi->nphy_txpid5gh[1] =
14622 (u8) wlapi_getintvar(shim,
14623 BRCMS_SROM_TXPID5GHA1);
14624 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
14625 (s8) wlapi_getintvar(shim,
14626 BRCMS_SROM_MAXP5GHA0);
14627 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
14628 (s8) wlapi_getintvar(shim,
14629 BRCMS_SROM_MAXP5GHA1);
14630 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
14631 (s16) wlapi_getintvar(shim,
14632 BRCMS_SROM_PA5GHW0A0);
14633 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
14634 (s16) wlapi_getintvar(shim,
14635 BRCMS_SROM_PA5GHW0A1);
14636 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
14637 (s16) wlapi_getintvar(shim,
14638 BRCMS_SROM_PA5GHW1A0);
14639 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
14640 (s16) wlapi_getintvar(shim,
14641 BRCMS_SROM_PA5GHW1A1);
14642 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
14643 (s16) wlapi_getintvar(shim,
14644 BRCMS_SROM_PA5GHW2A0);
14645 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
14646 (s16) wlapi_getintvar(shim,
14647 BRCMS_SROM_PA5GHW2A1);
14648 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
14649 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
14652 (u32) wlapi_getintvar(shim,
14653 BRCMS_SROM_OFDM5GHPO);
14656 (u16) wlapi_getintvar(shim,
14657 BRCMS_SROM_MCS5GHPO0);
14659 (u16) wlapi_getintvar(shim,
14660 BRCMS_SROM_MCS5GHPO1);
14662 (u16) wlapi_getintvar(shim,
14663 BRCMS_SROM_MCS5GHPO2);
14665 (u16) wlapi_getintvar(shim,
14666 BRCMS_SROM_MCS5GHPO3);
14668 (u16) wlapi_getintvar(shim,
14669 BRCMS_SROM_MCS5GHPO4);
14671 (u16) wlapi_getintvar(shim,
14672 BRCMS_SROM_MCS5GHPO5);
14674 (u16) wlapi_getintvar(shim,
14675 BRCMS_SROM_MCS5GHPO6);
14677 (u16) wlapi_getintvar(shim,
14678 BRCMS_SROM_MCS5GHPO7);
14683 wlc_phy_txpwr_apply_nphy(pi);
14686 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi)
14688 struct phy_shim_info *shim = pi->sh->physhim;
14690 pi->antswitch = (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWITCH);
14691 pi->aa2g = (u8) wlapi_getintvar(shim, BRCMS_SROM_AA2G);
14692 pi->aa5g = (u8) wlapi_getintvar(shim, BRCMS_SROM_AA5G);
14694 pi->srom_fem2g.tssipos = (u8) wlapi_getintvar(shim,
14695 BRCMS_SROM_TSSIPOS2G);
14696 pi->srom_fem2g.extpagain = (u8) wlapi_getintvar(shim,
14697 BRCMS_SROM_EXTPAGAIN2G);
14698 pi->srom_fem2g.pdetrange = (u8) wlapi_getintvar(shim,
14699 BRCMS_SROM_PDETRANGE2G);
14700 pi->srom_fem2g.triso = (u8) wlapi_getintvar(shim, BRCMS_SROM_TRISO2G);
14701 pi->srom_fem2g.antswctrllut =
14702 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL2G);
14704 pi->srom_fem5g.tssipos = (u8) wlapi_getintvar(shim,
14705 BRCMS_SROM_TSSIPOS5G);
14706 pi->srom_fem5g.extpagain = (u8) wlapi_getintvar(shim,
14707 BRCMS_SROM_EXTPAGAIN5G);
14708 pi->srom_fem5g.pdetrange = (u8) wlapi_getintvar(shim,
14709 BRCMS_SROM_PDETRANGE5G);
14710 pi->srom_fem5g.triso = (u8) wlapi_getintvar(shim, BRCMS_SROM_TRISO5G);
14711 if (wlapi_getvar(shim, BRCMS_SROM_ANTSWCTL5G))
14712 pi->srom_fem5g.antswctrllut =
14713 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL5G);
14715 pi->srom_fem5g.antswctrllut =
14716 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL2G);
14718 wlc_phy_txpower_ipa_upd(pi);
14720 pi->phy_txcore_disable_temp =
14721 (s16) wlapi_getintvar(shim, BRCMS_SROM_TEMPTHRESH);
14722 if (pi->phy_txcore_disable_temp == 0)
14723 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
14725 pi->phy_tempsense_offset = (s8) wlapi_getintvar(shim,
14726 BRCMS_SROM_TEMPOFFSET);
14727 if (pi->phy_tempsense_offset != 0) {
14728 if (pi->phy_tempsense_offset >
14729 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET))
14730 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
14731 else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
14732 NPHY_SROM_MINTEMPOFFSET))
14733 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
14735 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
14738 pi->phy_txcore_enable_temp =
14739 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
14741 pi->phycal_tempdelta =
14742 (u8) wlapi_getintvar(shim, BRCMS_SROM_PHYCAL_TEMPDELTA);
14743 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA)
14744 pi->phycal_tempdelta = 0;
14746 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
14751 bool wlc_phy_attach_nphy(struct brcms_phy *pi)
14755 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6))
14756 pi->phyhang_avoid = true;
14758 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14759 pi->nphy_gband_spurwar_en = true;
14760 if (pi->sh->boardflags2 & BFL2_SPUR_WAR)
14761 pi->nphy_aband_spurwar_en = true;
14763 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14764 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR)
14765 pi->nphy_gband_spurwar2_en = true;
14768 pi->n_preamble_override = AUTO;
14769 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14770 pi->n_preamble_override = BRCMS_N_PREAMBLE_MIXEDMODE;
14772 pi->nphy_txrx_chain = AUTO;
14773 pi->phy_scraminit = AUTO;
14775 pi->nphy_rxcalparams = 0x010100B5;
14777 pi->nphy_perical = PHY_PERICAL_MPHASE;
14778 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14779 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14781 pi->nphy_gain_boost = true;
14782 pi->nphy_elna_gain_config = false;
14783 pi->radio_is_on = false;
14785 for (i = 0; i < pi->pubpi.phy_corenum; i++)
14786 pi->nphy_txpwrindex[i].index = AUTO;
14788 wlc_phy_txpwrctrl_config_nphy(pi);
14789 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14790 pi->hwpwrctrl_capable = true;
14792 pi->pi_fptr.init = wlc_phy_init_nphy;
14793 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14794 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14795 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14797 if (!wlc_phy_txpwr_srom_read_nphy(pi))
14803 static s32 get_rf_pwr_offset(struct brcms_phy *pi, s16 pga_gn, s16 pad_gn)
14805 s32 rfpwr_offset = 0;
14807 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14808 if ((pi->pubpi.radiorev == 3) ||
14809 (pi->pubpi.radiorev == 4) ||
14810 (pi->pubpi.radiorev == 6))
14811 rfpwr_offset = (s16)
14812 nphy_papd_padgain_dlt_2g_2057rev3n4
14814 else if (pi->pubpi.radiorev == 5)
14815 rfpwr_offset = (s16)
14816 nphy_papd_padgain_dlt_2g_2057rev5
14818 else if ((pi->pubpi.radiorev == 7)
14819 || (pi->pubpi.radiorev ==
14821 rfpwr_offset = (s16)
14822 nphy_papd_padgain_dlt_2g_2057rev7
14825 if ((pi->pubpi.radiorev == 3) ||
14826 (pi->pubpi.radiorev == 4) ||
14827 (pi->pubpi.radiorev == 6))
14828 rfpwr_offset = (s16)
14829 nphy_papd_pgagain_dlt_5g_2057
14831 else if ((pi->pubpi.radiorev == 7)
14832 || (pi->pubpi.radiorev ==
14834 rfpwr_offset = (s16)
14835 nphy_papd_pgagain_dlt_5g_2057rev7
14838 return rfpwr_offset;
14841 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble)
14843 bool gf_preamble = false;
14846 if (preamble == BRCMS_N_PREAMBLE_GF)
14847 gf_preamble = true;
14849 val = read_phy_reg(pi, 0xed);
14851 val |= RX_GF_MM_AUTO;
14852 val &= ~RX_GF_OR_MM;
14854 val |= RX_GF_OR_MM;
14856 write_phy_reg(pi, 0xed, val);
14859 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
14862 u16 addr_offset[] = { 0x186, 0x195, 0x2c5};
14864 for (type = 0; type < 3; type++) {
14865 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14866 write_phy_reg(pi, addr_offset[type] + j,
14867 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
14870 if (pi->bw == WL_CHANSPEC_BW_40) {
14871 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14872 write_phy_reg(pi, 0x186 + j,
14873 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14875 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14876 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14877 write_phy_reg(pi, 0x186 + j,
14878 NPHY_IPA_REV4_txdigi_filtcoeffs[5][j]);
14881 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
14882 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14883 write_phy_reg(pi, 0x2c5 + j,
14884 NPHY_IPA_REV4_txdigi_filtcoeffs[6][j]);
14889 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
14893 if (pi->bw == WL_CHANSPEC_BW_40) {
14894 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14895 write_phy_reg(pi, 0x195 + j,
14896 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
14898 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14899 write_phy_reg(pi, 0x186 + j,
14900 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14905 wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys,
14908 u32 t1_offset, t2_offset;
14911 NREV_GE(pi->pubpi.phy_rev,
14912 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
14915 if (pi->phyhang_avoid)
14916 wlc_phy_stay_in_carriersearch_nphy(pi, true);
14918 t1_offset = cmd << 4;
14919 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
14921 t2_offset = t1_offset + 0x080;
14922 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
14925 for (ctr = len; ctr < 16; ctr++) {
14926 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14927 t1_offset + ctr, 8, &end_event);
14928 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14929 t2_offset + ctr, 8, &end_dly);
14932 if (pi->phyhang_avoid)
14933 wlc_phy_stay_in_carriersearch_nphy(pi, false);
14936 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset)
14938 u16 lpf_bw_ctl_val = 0;
14939 u16 rx2tx_lpf_rc_lut_offset = 0;
14942 if (CHSPEC_IS40(pi->radio_chanspec))
14943 rx2tx_lpf_rc_lut_offset = 0x159;
14945 rx2tx_lpf_rc_lut_offset = 0x154;
14947 rx2tx_lpf_rc_lut_offset = offset;
14949 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14950 (u32) rx2tx_lpf_rc_lut_offset, 16,
14953 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
14955 return lpf_bw_ctl_val;
14959 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
14960 u8 core_mask, u8 off, u8 override_id)
14963 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
14966 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14968 for (core_num = 0; core_num < 2; core_num++) {
14969 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
14973 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14974 val_addr = (core_num == 0) ? 0x7a :
14976 val_mask = (0x1 << 1);
14980 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14981 val_addr = (core_num == 0) ? 0x7a :
14983 val_mask = (0x1 << 2);
14987 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14988 val_addr = (core_num == 0) ? 0x7a :
14990 val_mask = (0x1 << 4);
14994 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14995 val_addr = (core_num == 0) ? 0x7a :
14997 val_mask = (0x1 << 5);
15001 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15002 val_addr = (core_num == 0) ? 0x7a :
15004 val_mask = (0x1 << 6);
15008 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15009 val_addr = (core_num == 0) ? 0x7a :
15011 val_mask = (0x1 << 7);
15015 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15016 val_addr = (core_num == 0) ? 0xf8 :
15018 val_mask = (0x7 << 4);
15022 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15023 val_addr = (core_num == 0) ? 0x7b :
15025 val_mask = (0xffff << 0);
15029 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15030 val_addr = (core_num == 0) ? 0x7c :
15032 val_mask = (0xffff << 0);
15036 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15037 val_addr = (core_num == 0) ? 0x348 :
15039 val_mask = (0xff << 0);
15043 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15044 val_addr = (core_num == 0) ? 0x348 :
15046 val_mask = (0xf << 0);
15053 } else if (override_id ==
15054 NPHY_REV7_RFCTRLOVERRIDE_ID1) {
15058 en_addr = (core_num == 0) ? 0x342 :
15060 val_addr = (core_num == 0) ? 0x340 :
15062 val_mask = (0x1 << 1);
15066 en_addr = (core_num == 0) ? 0x342 :
15068 val_addr = (core_num == 0) ? 0x340 :
15070 val_mask = (0x1 << 3);
15074 en_addr = (core_num == 0) ? 0x342 :
15076 val_addr = (core_num == 0) ? 0x340 :
15078 val_mask = (0x1 << 5);
15082 en_addr = (core_num == 0) ? 0x342 :
15084 val_addr = (core_num == 0) ? 0x340 :
15086 val_mask = (0x1 << 4);
15091 en_addr = (core_num == 0) ? 0x342 :
15093 val_addr = (core_num == 0) ? 0x340 :
15095 val_mask = (0x1 << 2);
15100 en_addr = (core_num == 0) ? 0x342 :
15102 val_addr = (core_num == 0) ? 0x340 :
15104 val_mask = (0x7 << 8);
15108 en_addr = (core_num == 0) ? 0x342 :
15110 val_addr = (core_num == 0) ? 0x340 :
15112 val_mask = (0x1 << 14);
15116 en_addr = (core_num == 0) ? 0x342 :
15118 val_addr = (core_num == 0) ? 0x340 :
15120 val_mask = (0x1 << 13);
15124 en_addr = (core_num == 0) ? 0x342 :
15126 val_addr = (core_num == 0) ? 0x340 :
15128 val_mask = (0x1 << 12);
15132 en_addr = (core_num == 0) ? 0x342 :
15134 val_addr = (core_num == 0) ? 0x340 :
15136 val_mask = (0x1 << 11);
15140 en_addr = (core_num == 0) ? 0x342 :
15142 val_addr = (core_num == 0) ? 0x340 :
15144 val_mask = (0x1 << 6);
15148 en_addr = (core_num == 0) ? 0x342 :
15150 val_addr = (core_num == 0) ? 0x340 :
15152 val_mask = (0x1 << 0);
15159 } else if (override_id ==
15160 NPHY_REV7_RFCTRLOVERRIDE_ID2) {
15164 en_addr = (core_num == 0) ? 0x346 :
15166 val_addr = (core_num == 0) ? 0x344 :
15168 val_mask = (0x1 << 3);
15172 en_addr = (core_num == 0) ? 0x346 :
15174 val_addr = (core_num == 0) ? 0x344 :
15176 val_mask = (0x1 << 1);
15180 en_addr = (core_num == 0) ? 0x346 :
15182 val_addr = (core_num == 0) ? 0x344 :
15184 val_mask = (0x1 << 0);
15188 en_addr = (core_num == 0) ? 0x346 :
15190 val_addr = (core_num == 0) ? 0x344 :
15192 val_mask = (0x1 << 2);
15196 en_addr = (core_num == 0) ? 0x346 :
15198 val_addr = (core_num == 0) ? 0x344 :
15200 val_mask = (0x1 << 4);
15210 and_phy_reg(pi, en_addr, ~en_mask);
15211 and_phy_reg(pi, val_addr, ~val_mask);
15214 if ((core_mask == 0)
15215 || (core_mask & (1 << core_num))) {
15216 or_phy_reg(pi, en_addr, en_mask);
15218 if (addr != 0xffff)
15219 mod_phy_reg(pi, val_addr,
15229 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
15235 u16 minmax_gain[2];
15238 if (pi->phyhang_avoid)
15239 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15241 if (pi->nphy_gain_boost) {
15242 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
15248 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
15251 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
15253 nphy_lnagain_est0[1]), 13);
15256 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
15258 nphy_lnagain_est1[1]), 13);
15266 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
15267 if (pi->nphy_elna_gain_config) {
15269 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
15270 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
15271 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
15272 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
15274 for (ctr = 0; ctr < 4; ctr++)
15276 nphy_def_lnagains[ctr] +
15279 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
15281 minmax_gain[core] =
15282 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
15285 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
15286 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
15288 if (pi->phyhang_avoid)
15289 wlc_phy_stay_in_carriersearch_nphy(pi, false);
15293 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy *pi, u8 core)
15295 if (core == PHY_CORE_0) {
15296 write_phy_reg(pi, 0x38, 0x4);
15297 if (CHSPEC_IS2G(pi->radio_chanspec))
15298 write_phy_reg(pi, 0x37, 0x0060);
15300 write_phy_reg(pi, 0x37, 0x1080);
15301 } else if (core == PHY_CORE_1) {
15302 write_phy_reg(pi, 0x2ae, 0x4);
15303 if (CHSPEC_IS2G(pi->radio_chanspec))
15304 write_phy_reg(pi, 0x2ad, 0x0060);
15306 write_phy_reg(pi, 0x2ad, 0x1080);
15310 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy *pi, u8 txchain)
15312 u8 txchain0, txchain1;
15314 txchain0 = txchain & 0x1;
15315 txchain1 = (txchain & 0x2) >> 1;
15317 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15320 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15323 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)
15325 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
15326 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
15327 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
15328 s8 tia_gainbits[] = {
15329 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15331 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15332 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15334 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15336 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
15337 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
15339 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
15341 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
15344 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
15346 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
15349 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15351 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15354 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15356 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15359 write_phy_reg(pi, 0x37, 0x74);
15360 write_phy_reg(pi, 0x2ad, 0x74);
15361 write_phy_reg(pi, 0x38, 0x18);
15362 write_phy_reg(pi, 0x2ae, 0x18);
15364 write_phy_reg(pi, 0x2b, 0xe8);
15365 write_phy_reg(pi, 0x41, 0xe8);
15367 if (CHSPEC_IS20(pi->radio_chanspec)) {
15369 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
15370 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
15373 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
15374 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
15378 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
15381 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
15382 s8 *lna1_gain_db = NULL;
15383 s8 *lna1_gain_db_2 = NULL;
15384 s8 *lna2_gain_db = NULL;
15385 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
15387 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
15389 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
15390 u16 *rfseq_init_gain;
15392 u16 clip1hi_gaincode;
15393 u16 clip1md_gaincode = 0;
15394 u16 clip1md_gaincode_B;
15395 u16 clip1lo_gaincode;
15396 u16 clip1lo_gaincode_B;
15402 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
15403 u8 chg_nbclip_th = 0;
15405 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15406 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15408 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15409 if (currband == 0) {
15411 lna1_gain_db = lna1G_gain_db_rev7;
15413 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15415 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15418 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
15420 if (CHSPEC_IS40(pi->radio_chanspec)) {
15421 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
15422 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
15425 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15427 if (CHSPEC_IS20(pi->radio_chanspec)) {
15428 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
15429 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
15433 init_gaincode = 0x9e;
15434 clip1hi_gaincode = 0x9e;
15435 clip1md_gaincode_B = 0x24;
15436 clip1lo_gaincode = 0x8a;
15437 clip1lo_gaincode_B = 8;
15438 rfseq_init_gain = rfseqA_init_gain_rev7;
15440 tia_gain_db = tiaA_gain_db_rev7;
15441 tia_gainbits = tiaA_gainbits_rev7;
15443 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
15444 if (CHSPEC_IS20(pi->radio_chanspec)) {
15447 clip1md_gaincode = 0x82;
15449 if ((freq <= 5080) || (freq == 5825)) {
15451 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
15452 s8 lna1A_gain_db_2_rev7[] = {
15454 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15457 lna1_gain_db = lna1A_gain_db_rev7;
15458 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15459 lna2_gain_db = lna2A_gain_db_rev7;
15460 } else if ((freq >= 5500) && (freq <= 5700)) {
15462 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
15463 s8 lna1A_gain_db_2_rev7[] = {
15465 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
15468 clip1md_gaincode_B = 0x14;
15471 lna1_gain_db = lna1A_gain_db_rev7;
15472 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15473 lna2_gain_db = lna2A_gain_db_rev7;
15476 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
15477 s8 lna1A_gain_db_2_rev7[] = {
15479 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15482 lna1_gain_db = lna1A_gain_db_rev7;
15483 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15484 lna2_gain_db = lna2A_gain_db_rev7;
15487 if (freq <= 4920) {
15488 nvar_baseline_offset0 = 5;
15489 nvar_baseline_offset1 = 5;
15490 } else if ((freq > 4920) && (freq <= 5320)) {
15491 nvar_baseline_offset0 = 3;
15492 nvar_baseline_offset1 = 5;
15493 } else if ((freq > 5320) && (freq <= 5700)) {
15494 nvar_baseline_offset0 = 3;
15495 nvar_baseline_offset1 = 2;
15497 nvar_baseline_offset0 = 4;
15498 nvar_baseline_offset1 = 0;
15506 if ((freq >= 4920) && (freq <= 5320)) {
15507 nvar_baseline_offset0 = 4;
15508 nvar_baseline_offset1 = 5;
15509 } else if ((freq > 5320) && (freq <= 5550)) {
15510 nvar_baseline_offset0 = 4;
15511 nvar_baseline_offset1 = 2;
15513 nvar_baseline_offset0 = 5;
15514 nvar_baseline_offset1 = 3;
15518 write_phy_reg(pi, 0x20, init_gaincode);
15519 write_phy_reg(pi, 0x2a7, init_gaincode);
15521 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15522 pi->pubpi.phy_corenum, 0x106, 16,
15525 write_phy_reg(pi, 0x22, clip1hi_gaincode);
15526 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
15528 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
15529 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
15531 write_phy_reg(pi, 0x37, clip1lo_gaincode);
15532 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
15533 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
15534 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
15536 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15538 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15541 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15543 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15546 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
15548 if (chg_nbclip_th == 1) {
15549 write_phy_reg(pi, 0x2b, nbclip_th);
15550 write_phy_reg(pi, 0x41, nbclip_th);
15553 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
15554 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
15556 mod_phy_reg(pi, 0x2e4,
15557 (0x3f << 0), (nvar_baseline_offset0 << 0));
15559 mod_phy_reg(pi, 0x2e4,
15560 (0x3f << 6), (nvar_baseline_offset1 << 6));
15562 if (CHSPEC_IS20(pi->radio_chanspec)) {
15564 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15566 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15569 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
15571 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
15574 write_phy_reg(pi, 0x24, clip1md_gaincode);
15575 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
15577 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
15582 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)
15584 u16 w1th, hpf_code, currband;
15586 u8 rfseq_updategainu_events[] = {
15587 NPHY_RFSEQ_CMD_RX_GAIN,
15588 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15589 NPHY_RFSEQ_CMD_SET_HPF_BW
15591 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
15592 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
15593 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
15594 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
15595 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
15596 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
15597 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
15598 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
15599 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
15600 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
15601 s8 *lna1_gain_db = NULL;
15602 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
15603 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
15604 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
15605 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
15606 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
15607 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
15608 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
15609 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
15610 s8 *lna2_gain_db = NULL;
15611 s8 tiaG_gain_db[] = {
15612 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
15613 s8 tiaA_gain_db[] = {
15614 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
15615 s8 tiaA_gain_db_rev4[] = {
15616 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15617 s8 tiaA_gain_db_rev5[] = {
15618 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15619 s8 tiaA_gain_db_rev6[] = {
15620 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15622 s8 tiaG_gainbits[] = {
15623 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15624 s8 tiaA_gainbits[] = {
15625 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
15626 s8 tiaA_gainbits_rev4[] = {
15627 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15628 s8 tiaA_gainbits_rev5[] = {
15629 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15630 s8 tiaA_gainbits_rev6[] = {
15631 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15633 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
15634 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
15635 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
15636 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
15637 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
15638 u16 rfseqG_init_gain_rev5_elna[] = {
15639 0x013f, 0x013f, 0x013f, 0x013f };
15640 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
15641 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
15642 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
15643 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
15644 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
15645 u16 rfseqA_init_gain_rev4_elna[] = {
15646 0x314f, 0x314f, 0x314f, 0x314f };
15647 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
15648 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
15649 u16 *rfseq_init_gain;
15650 u16 initG_gaincode = 0x627e;
15651 u16 initG_gaincode_rev4 = 0x527e;
15652 u16 initG_gaincode_rev5 = 0x427e;
15653 u16 initG_gaincode_rev5_elna = 0x027e;
15654 u16 initG_gaincode_rev6 = 0x527e;
15655 u16 initG_gaincode_rev6_224B0 = 0x427e;
15656 u16 initG_gaincode_rev6_elna = 0x127e;
15657 u16 initA_gaincode = 0x52de;
15658 u16 initA_gaincode_rev4 = 0x629e;
15659 u16 initA_gaincode_rev4_elna = 0x329e;
15660 u16 initA_gaincode_rev5 = 0x729e;
15661 u16 initA_gaincode_rev6 = 0x729e;
15663 u16 clip1hiG_gaincode = 0x107e;
15664 u16 clip1hiG_gaincode_rev4 = 0x007e;
15665 u16 clip1hiG_gaincode_rev5 = 0x1076;
15666 u16 clip1hiG_gaincode_rev6 = 0x007e;
15667 u16 clip1hiA_gaincode = 0x00de;
15668 u16 clip1hiA_gaincode_rev4 = 0x029e;
15669 u16 clip1hiA_gaincode_rev5 = 0x029e;
15670 u16 clip1hiA_gaincode_rev6 = 0x029e;
15671 u16 clip1hi_gaincode;
15672 u16 clip1mdG_gaincode = 0x0066;
15673 u16 clip1mdA_gaincode = 0x00ca;
15674 u16 clip1mdA_gaincode_rev4 = 0x1084;
15675 u16 clip1mdA_gaincode_rev5 = 0x2084;
15676 u16 clip1mdA_gaincode_rev6 = 0x2084;
15677 u16 clip1md_gaincode = 0;
15678 u16 clip1loG_gaincode = 0x0074;
15679 u16 clip1loG_gaincode_rev5[] = {
15680 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
15682 u16 clip1loG_gaincode_rev6[] = {
15683 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
15685 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
15686 u16 clip1loA_gaincode = 0x00cc;
15687 u16 clip1loA_gaincode_rev4 = 0x0086;
15688 u16 clip1loA_gaincode_rev5 = 0x2086;
15689 u16 clip1loA_gaincode_rev6 = 0x2086;
15690 u16 clip1lo_gaincode;
15691 u8 crsminG_th = 0x18;
15692 u8 crsminG_th_rev5 = 0x18;
15693 u8 crsminG_th_rev6 = 0x18;
15694 u8 crsminA_th = 0x1e;
15695 u8 crsminA_th_rev4 = 0x24;
15696 u8 crsminA_th_rev5 = 0x24;
15697 u8 crsminA_th_rev6 = 0x24;
15699 u8 crsminlG_th = 0x18;
15700 u8 crsminlG_th_rev5 = 0x18;
15701 u8 crsminlG_th_rev6 = 0x18;
15702 u8 crsminlA_th = 0x1e;
15703 u8 crsminlA_th_rev4 = 0x24;
15704 u8 crsminlA_th_rev5 = 0x24;
15705 u8 crsminlA_th_rev6 = 0x24;
15707 u8 crsminuG_th = 0x18;
15708 u8 crsminuG_th_rev5 = 0x18;
15709 u8 crsminuG_th_rev6 = 0x18;
15710 u8 crsminuA_th = 0x1e;
15711 u8 crsminuA_th_rev4 = 0x24;
15712 u8 crsminuA_th_rev5 = 0x24;
15713 u8 crsminuA_th_rev6 = 0x24;
15714 u8 crsminuA_th_rev6_224B0 = 0x2d;
15716 u16 nbclipG_th = 0x20d;
15717 u16 nbclipG_th_rev4 = 0x1a1;
15718 u16 nbclipG_th_rev5 = 0x1d0;
15719 u16 nbclipG_th_rev6 = 0x1d0;
15720 u16 nbclipA_th = 0x1a1;
15721 u16 nbclipA_th_rev4 = 0x107;
15722 u16 nbclipA_th_rev5 = 0x0a9;
15723 u16 nbclipA_th_rev6 = 0x0f0;
15726 u8 w1clipG_th_rev5 = 9;
15727 u8 w1clipG_th_rev6 = 5;
15728 u8 w1clipA_th = 25, w1clip_th;
15729 u8 rssi_gain_default = 0x50;
15730 u8 rssiG_gain_rev6_224B0 = 0x50;
15731 u8 rssiA_gain_rev5 = 0x90;
15732 u8 rssiA_gain_rev6 = 0x90;
15737 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
15738 pi->srom_fem2g.triso;
15740 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15741 if (pi->pubpi.radiorev == 5) {
15742 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
15743 } else if (pi->pubpi.radiorev == 7) {
15744 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15746 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
15747 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
15749 } else if ((pi->pubpi.radiorev == 3)
15750 || (pi->pubpi.radiorev == 8)) {
15751 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15753 if (pi->pubpi.radiorev == 8) {
15754 mod_phy_reg(pi, 0x283,
15755 (0xff << 0), (0x44 << 0));
15756 mod_phy_reg(pi, 0x280,
15757 (0xff << 0), (0x44 << 0));
15760 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15762 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15764 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
15766 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15767 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15770 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15771 if (currband == 0) {
15772 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15773 if (pi->pubpi.radiorev == 11) {
15774 lna1_gain_db = lna1G_gain_db_rev6_224B0;
15775 lna2_gain_db = lna2G_gain_db_rev6_224B0;
15777 rfseqG_init_gain_rev6_224B0;
15779 initG_gaincode_rev6_224B0;
15781 clip1hiG_gaincode_rev6;
15783 clip1loG_gaincode_rev6_224B0;
15784 nbclip_th = nbclipG_th_rev6;
15785 w1clip_th = w1clipG_th_rev6;
15786 crsmin_th = crsminG_th_rev6;
15787 crsminl_th = crsminlG_th_rev6;
15788 crsminu_th = crsminuG_th_rev6;
15789 rssi_gain = rssiG_gain_rev6_224B0;
15791 lna1_gain_db = lna1G_gain_db_rev6;
15792 lna2_gain_db = lna2G_gain_db_rev6;
15793 if (pi->sh->boardflags & BFL_EXTLNA) {
15796 rfseqG_init_gain_rev6_elna;
15798 initG_gaincode_rev6_elna;
15801 rfseqG_init_gain_rev6;
15803 initG_gaincode_rev6;
15806 clip1hiG_gaincode_rev6;
15810 clip1loG_gaincode_rev6
15815 clip1loG_gaincode_rev6
15820 clip1loG_gaincode_rev6
15827 clip1loG_gaincode_rev6
15832 clip1loG_gaincode_rev6
15837 clip1loG_gaincode_rev6
15842 clip1loG_gaincode_rev6
15847 clip1loG_gaincode_rev6
15851 nbclip_th = nbclipG_th_rev6;
15852 w1clip_th = w1clipG_th_rev6;
15853 crsmin_th = crsminG_th_rev6;
15854 crsminl_th = crsminlG_th_rev6;
15855 crsminu_th = crsminuG_th_rev6;
15856 rssi_gain = rssi_gain_default;
15858 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15859 lna1_gain_db = lna1G_gain_db_rev5;
15860 lna2_gain_db = lna2G_gain_db_rev5;
15861 if (pi->sh->boardflags & BFL_EXTLNA) {
15864 rfseqG_init_gain_rev5_elna;
15866 initG_gaincode_rev5_elna;
15868 rfseq_init_gain = rfseqG_init_gain_rev5;
15869 init_gaincode = initG_gaincode_rev5;
15871 clip1hi_gaincode = clip1hiG_gaincode_rev5;
15875 clip1loG_gaincode_rev5[0];
15879 clip1loG_gaincode_rev5[1];
15883 clip1loG_gaincode_rev5[2];
15888 clip1loG_gaincode_rev5[3];
15892 clip1loG_gaincode_rev5[4];
15896 clip1loG_gaincode_rev5[5];
15900 clip1loG_gaincode_rev5[6];
15904 clip1loG_gaincode_rev5[7];
15908 clip1loG_gaincode_rev5[3];
15911 nbclip_th = nbclipG_th_rev5;
15912 w1clip_th = w1clipG_th_rev5;
15913 crsmin_th = crsminG_th_rev5;
15914 crsminl_th = crsminlG_th_rev5;
15915 crsminu_th = crsminuG_th_rev5;
15916 rssi_gain = rssi_gain_default;
15917 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15918 lna1_gain_db = lna1G_gain_db_rev4;
15919 lna2_gain_db = lna2G_gain_db;
15920 rfseq_init_gain = rfseqG_init_gain_rev4;
15921 init_gaincode = initG_gaincode_rev4;
15922 clip1hi_gaincode = clip1hiG_gaincode_rev4;
15923 clip1lo_gaincode = clip1loG_gaincode;
15924 nbclip_th = nbclipG_th_rev4;
15925 w1clip_th = w1clipG_th;
15926 crsmin_th = crsminG_th;
15927 crsminl_th = crsminlG_th;
15928 crsminu_th = crsminuG_th;
15929 rssi_gain = rssi_gain_default;
15931 lna1_gain_db = lna1G_gain_db;
15932 lna2_gain_db = lna2G_gain_db;
15933 rfseq_init_gain = rfseqG_init_gain;
15934 init_gaincode = initG_gaincode;
15935 clip1hi_gaincode = clip1hiG_gaincode;
15936 clip1lo_gaincode = clip1loG_gaincode;
15937 nbclip_th = nbclipG_th;
15938 w1clip_th = w1clipG_th;
15939 crsmin_th = crsminG_th;
15940 crsminl_th = crsminlG_th;
15941 crsminu_th = crsminuG_th;
15942 rssi_gain = rssi_gain_default;
15944 tia_gain_db = tiaG_gain_db;
15945 tia_gainbits = tiaG_gainbits;
15946 clip1md_gaincode = clip1mdG_gaincode;
15948 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15949 lna1_gain_db = lna1A_gain_db_rev6;
15950 lna2_gain_db = lna2A_gain_db_rev6;
15951 tia_gain_db = tiaA_gain_db_rev6;
15952 tia_gainbits = tiaA_gainbits_rev6;
15953 rfseq_init_gain = rfseqA_init_gain_rev6;
15954 init_gaincode = initA_gaincode_rev6;
15955 clip1hi_gaincode = clip1hiA_gaincode_rev6;
15956 clip1md_gaincode = clip1mdA_gaincode_rev6;
15957 clip1lo_gaincode = clip1loA_gaincode_rev6;
15958 crsmin_th = crsminA_th_rev6;
15959 crsminl_th = crsminlA_th_rev6;
15960 if ((pi->pubpi.radiorev == 11) &&
15961 (CHSPEC_IS40(pi->radio_chanspec) == 0))
15962 crsminu_th = crsminuA_th_rev6_224B0;
15964 crsminu_th = crsminuA_th_rev6;
15966 nbclip_th = nbclipA_th_rev6;
15967 rssi_gain = rssiA_gain_rev6;
15968 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15969 lna1_gain_db = lna1A_gain_db_rev5;
15970 lna2_gain_db = lna2A_gain_db_rev5;
15971 tia_gain_db = tiaA_gain_db_rev5;
15972 tia_gainbits = tiaA_gainbits_rev5;
15973 rfseq_init_gain = rfseqA_init_gain_rev5;
15974 init_gaincode = initA_gaincode_rev5;
15975 clip1hi_gaincode = clip1hiA_gaincode_rev5;
15976 clip1md_gaincode = clip1mdA_gaincode_rev5;
15977 clip1lo_gaincode = clip1loA_gaincode_rev5;
15978 crsmin_th = crsminA_th_rev5;
15979 crsminl_th = crsminlA_th_rev5;
15980 crsminu_th = crsminuA_th_rev5;
15981 nbclip_th = nbclipA_th_rev5;
15982 rssi_gain = rssiA_gain_rev5;
15983 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15984 lna1_gain_db = lna1A_gain_db_rev4;
15985 lna2_gain_db = lna2A_gain_db_rev4;
15986 tia_gain_db = tiaA_gain_db_rev4;
15987 tia_gainbits = tiaA_gainbits_rev4;
15988 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
15991 rfseqA_init_gain_rev4_elna;
15993 initA_gaincode_rev4_elna;
15995 rfseq_init_gain = rfseqA_init_gain_rev4;
15996 init_gaincode = initA_gaincode_rev4;
15998 clip1hi_gaincode = clip1hiA_gaincode_rev4;
15999 clip1md_gaincode = clip1mdA_gaincode_rev4;
16000 clip1lo_gaincode = clip1loA_gaincode_rev4;
16001 crsmin_th = crsminA_th_rev4;
16002 crsminl_th = crsminlA_th_rev4;
16003 crsminu_th = crsminuA_th_rev4;
16004 nbclip_th = nbclipA_th_rev4;
16005 rssi_gain = rssi_gain_default;
16007 lna1_gain_db = lna1A_gain_db;
16008 lna2_gain_db = lna2A_gain_db;
16009 tia_gain_db = tiaA_gain_db;
16010 tia_gainbits = tiaA_gainbits;
16011 rfseq_init_gain = rfseqA_init_gain;
16012 init_gaincode = initA_gaincode;
16013 clip1hi_gaincode = clip1hiA_gaincode;
16014 clip1md_gaincode = clip1mdA_gaincode;
16015 clip1lo_gaincode = clip1loA_gaincode;
16016 crsmin_th = crsminA_th;
16017 crsminl_th = crsminlA_th;
16018 crsminu_th = crsminuA_th;
16019 nbclip_th = nbclipA_th;
16020 rssi_gain = rssi_gain_default;
16022 w1clip_th = w1clipA_th;
16025 write_radio_reg(pi,
16026 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16027 RADIO_2056_RX0), 0x17);
16028 write_radio_reg(pi,
16029 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16030 RADIO_2056_RX1), 0x17);
16032 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16034 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16037 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16039 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16042 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16044 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16047 write_radio_reg(pi,
16048 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16049 RADIO_2056_RX0), 0x17);
16050 write_radio_reg(pi,
16051 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16052 RADIO_2056_RX1), 0x17);
16054 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16056 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16059 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16061 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16064 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16066 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16069 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16071 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16074 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16076 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16079 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16081 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16083 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16085 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16088 write_phy_reg(pi, 0x20, init_gaincode);
16089 write_phy_reg(pi, 0x2a7, init_gaincode);
16091 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16092 pi->pubpi.phy_corenum, 0x106, 16,
16095 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16096 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16098 write_phy_reg(pi, 0x24, clip1md_gaincode);
16099 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16101 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16102 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16104 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16105 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16106 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16108 write_phy_reg(pi, 0x2b, nbclip_th);
16109 write_phy_reg(pi, 0x41, nbclip_th);
16111 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16112 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16114 write_phy_reg(pi, 0x150, 0x809c);
16118 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16119 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16121 write_phy_reg(pi, 0x2b, 0x84);
16122 write_phy_reg(pi, 0x41, 0x84);
16124 if (CHSPEC_IS20(pi->radio_chanspec)) {
16125 write_phy_reg(pi, 0x6b, 0x2b);
16126 write_phy_reg(pi, 0x6c, 0x2b);
16127 write_phy_reg(pi, 0x6d, 0x9);
16128 write_phy_reg(pi, 0x6e, 0x9);
16131 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16132 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16133 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16135 if (CHSPEC_IS20(pi->radio_chanspec)) {
16136 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16137 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16139 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16140 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16143 write_phy_reg(pi, 0x150, 0x809c);
16145 if (pi->nphy_gain_boost)
16146 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16147 (CHSPEC_IS40(pi->radio_chanspec)))
16151 else if (CHSPEC_IS40(pi->radio_chanspec))
16156 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16157 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16159 for (ctr = 0; ctr < 4; ctr++)
16160 regval[ctr] = (hpf_code << 8) | 0x7c;
16161 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16163 wlc_phy_adjust_lnagaintbl_nphy(pi);
16165 if (pi->nphy_elna_gain_config) {
16170 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16171 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16173 for (ctr = 0; ctr < 4; ctr++)
16174 regval[ctr] = (hpf_code << 8) | 0x74;
16175 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16178 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16179 for (ctr = 0; ctr < 21; ctr++)
16180 regval[ctr] = 3 * ctr;
16181 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16182 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16184 for (ctr = 0; ctr < 21; ctr++)
16185 regval[ctr] = (u16) ctr;
16186 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16187 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16190 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16191 rfseq_updategainu_events,
16192 rfseq_updategainu_dlys,
16193 sizeof(rfseq_updategainu_events) /
16194 sizeof(rfseq_updategainu_events[0]));
16196 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16198 if (CHSPEC_IS2G(pi->radio_chanspec))
16200 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16205 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
16207 u8 rfseq_rx2tx_events[] = {
16208 NPHY_RFSEQ_CMD_NOP,
16209 NPHY_RFSEQ_CMD_RXG_FBW,
16210 NPHY_RFSEQ_CMD_TR_SWITCH,
16211 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16212 NPHY_RFSEQ_CMD_RXPD_TXPD,
16213 NPHY_RFSEQ_CMD_TX_GAIN,
16214 NPHY_RFSEQ_CMD_EXT_PA
16216 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
16217 u8 rfseq_tx2rx_events[] = {
16218 NPHY_RFSEQ_CMD_NOP,
16219 NPHY_RFSEQ_CMD_EXT_PA,
16220 NPHY_RFSEQ_CMD_TX_GAIN,
16221 NPHY_RFSEQ_CMD_RXPD_TXPD,
16222 NPHY_RFSEQ_CMD_TR_SWITCH,
16223 NPHY_RFSEQ_CMD_RXG_FBW,
16224 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
16226 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
16227 u8 rfseq_tx2rx_events_rev3[] = {
16228 NPHY_REV3_RFSEQ_CMD_EXT_PA,
16229 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16230 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16231 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16232 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16233 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16234 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16235 NPHY_REV3_RFSEQ_CMD_END
16237 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
16238 u8 rfseq_rx2tx_events_rev3[] = {
16239 NPHY_REV3_RFSEQ_CMD_NOP,
16240 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16241 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16242 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16243 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16244 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16245 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16246 NPHY_REV3_RFSEQ_CMD_EXT_PA,
16247 NPHY_REV3_RFSEQ_CMD_END
16249 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
16251 u8 rfseq_rx2tx_events_rev3_ipa[] = {
16252 NPHY_REV3_RFSEQ_CMD_NOP,
16253 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16254 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16255 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16256 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16257 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16258 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
16259 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16260 NPHY_REV3_RFSEQ_CMD_END
16262 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
16263 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
16265 s16 alpha0, alpha1, alpha2;
16266 s16 beta0, beta1, beta2;
16267 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
16269 u8 chan_freq_range = 0;
16270 u16 dac_control = 0x0002;
16271 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
16272 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
16273 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16274 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16276 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
16277 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
16278 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
16280 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
16281 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
16282 s32 min_nvar_val = 0x18d;
16283 s32 min_nvar_offset_6mbps = 20;
16287 u16 afectrl_adc_ctrl1_rev7 = 0x20;
16288 u16 afectrl_adc_ctrl2_rev7 = 0x0;
16289 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
16290 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
16291 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
16292 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
16293 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16294 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16295 u16 ipalvlshift_3p3_war_en = 0;
16296 u16 rccal_bcap_val, rccal_scap_val;
16297 u16 rccal_tx20_11b_bcap = 0;
16298 u16 rccal_tx20_11b_scap = 0;
16299 u16 rccal_tx20_11n_bcap = 0;
16300 u16 rccal_tx20_11n_scap = 0;
16301 u16 rccal_tx40_11n_bcap = 0;
16302 u16 rccal_tx40_11n_scap = 0;
16303 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
16304 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
16305 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
16306 u16 tx_lpf_bw_ofdm_20mhz = 0;
16307 u16 tx_lpf_bw_ofdm_40mhz = 0;
16308 u16 tx_lpf_bw_11b = 0;
16309 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
16310 u16 txgm_idac_bleed = 0;
16311 bool rccal_ovrd = false;
16315 if (CHSPEC_IS5G(pi->radio_chanspec))
16316 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
16318 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
16320 if (pi->phyhang_avoid)
16321 wlc_phy_stay_in_carriersearch_nphy(pi, true);
16323 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
16325 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16327 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
16328 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
16330 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
16331 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
16332 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
16333 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
16334 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
16335 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
16336 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
16337 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
16338 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
16339 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
16340 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
16341 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
16342 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
16343 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
16344 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
16345 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
16348 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
16349 write_phy_reg(pi, 0x23f, 0x1b0);
16350 write_phy_reg(pi, 0x240, 0x1b0);
16353 if (NREV_GE(pi->pubpi.phy_rev, 8))
16354 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
16356 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16358 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16361 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16362 1, 0, 32, &leg_data_weights);
16363 leg_data_weights = leg_data_weights & 0xffffff;
16364 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16365 1, 0, 32, &leg_data_weights);
16367 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16369 rfseq_rx2tx_dacbufpu_rev7);
16370 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
16371 rfseq_rx2tx_dacbufpu_rev7);
16374 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16375 rfseq_rx2tx_events_rev3_ipa,
16376 rfseq_rx2tx_dlys_rev3_ipa,
16378 (rfseq_rx2tx_events_rev3_ipa) /
16380 (rfseq_rx2tx_events_rev3_ipa
16383 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
16384 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
16386 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
16387 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
16388 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
16392 if (((pi->pubpi.radiorev == 5)
16393 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
16394 || (pi->pubpi.radiorev == 7)
16395 || (pi->pubpi.radiorev == 8)) {
16400 RADIO_2057_RCCAL_BCAP_VAL);
16404 RADIO_2057_RCCAL_SCAP_VAL);
16406 rccal_tx20_11b_bcap = rccal_bcap_val;
16407 rccal_tx20_11b_scap = rccal_scap_val;
16409 if ((pi->pubpi.radiorev == 5) &&
16410 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
16412 rccal_tx20_11n_bcap = rccal_bcap_val;
16413 rccal_tx20_11n_scap = rccal_scap_val;
16414 rccal_tx40_11n_bcap = 0xc;
16415 rccal_tx40_11n_scap = 0xc;
16419 } else if ((pi->pubpi.radiorev == 7)
16420 || (pi->pubpi.radiorev == 8)) {
16422 tx_lpf_bw_ofdm_20mhz = 4;
16425 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16426 rccal_tx20_11n_bcap = 0xc;
16427 rccal_tx20_11n_scap = 0xc;
16428 rccal_tx40_11n_bcap = 0xa;
16429 rccal_tx40_11n_scap = 0xa;
16431 rccal_tx20_11n_bcap = 0x14;
16432 rccal_tx20_11n_scap = 0x14;
16433 rccal_tx40_11n_bcap = 0xf;
16434 rccal_tx40_11n_scap = 0xf;
16443 if (pi->pubpi.radiorev == 5) {
16445 tx_lpf_bw_ofdm_20mhz = 1;
16446 tx_lpf_bw_ofdm_40mhz = 3;
16451 RADIO_2057_RCCAL_BCAP_VAL);
16455 RADIO_2057_RCCAL_SCAP_VAL);
16457 rccal_tx20_11b_bcap = rccal_bcap_val;
16458 rccal_tx20_11b_scap = rccal_scap_val;
16460 rccal_tx20_11n_bcap = 0x13;
16461 rccal_tx20_11n_scap = 0x11;
16462 rccal_tx40_11n_bcap = 0x13;
16463 rccal_tx40_11n_scap = 0x11;
16471 rx2tx_lpf_rc_lut_tx20_11b =
16472 (rccal_tx20_11b_bcap << 8) |
16473 (rccal_tx20_11b_scap << 3) |
16475 rx2tx_lpf_rc_lut_tx20_11n =
16476 (rccal_tx20_11n_bcap << 8) |
16477 (rccal_tx20_11n_scap << 3) |
16478 tx_lpf_bw_ofdm_20mhz;
16479 rx2tx_lpf_rc_lut_tx40_11n =
16480 (rccal_tx40_11n_bcap << 8) |
16481 (rccal_tx40_11n_scap << 3) |
16482 tx_lpf_bw_ofdm_40mhz;
16484 for (coreNum = 0; coreNum <= 1; coreNum++) {
16485 wlc_phy_table_write_nphy(
16486 pi, NPHY_TBL_ID_RFSEQ,
16488 0x152 + coreNum * 0x10,
16490 &rx2tx_lpf_rc_lut_tx20_11b);
16491 wlc_phy_table_write_nphy(
16492 pi, NPHY_TBL_ID_RFSEQ,
16494 0x153 + coreNum * 0x10,
16496 &rx2tx_lpf_rc_lut_tx20_11n);
16497 wlc_phy_table_write_nphy(
16498 pi, NPHY_TBL_ID_RFSEQ,
16500 0x154 + coreNum * 0x10,
16502 &rx2tx_lpf_rc_lut_tx20_11n);
16503 wlc_phy_table_write_nphy(
16504 pi, NPHY_TBL_ID_RFSEQ,
16506 0x155 + coreNum * 0x10,
16508 &rx2tx_lpf_rc_lut_tx40_11n);
16509 wlc_phy_table_write_nphy(
16510 pi, NPHY_TBL_ID_RFSEQ,
16512 0x156 + coreNum * 0x10,
16514 &rx2tx_lpf_rc_lut_tx40_11n);
16515 wlc_phy_table_write_nphy(
16516 pi, NPHY_TBL_ID_RFSEQ,
16518 0x157 + coreNum * 0x10,
16520 &rx2tx_lpf_rc_lut_tx40_11n);
16521 wlc_phy_table_write_nphy(
16522 pi, NPHY_TBL_ID_RFSEQ,
16524 0x158 + coreNum * 0x10,
16526 &rx2tx_lpf_rc_lut_tx40_11n);
16527 wlc_phy_table_write_nphy(
16528 pi, NPHY_TBL_ID_RFSEQ,
16530 0x159 + coreNum * 0x10,
16532 &rx2tx_lpf_rc_lut_tx40_11n);
16535 wlc_phy_rfctrl_override_nphy_rev7(
16538 NPHY_REV7_RFCTRLOVERRIDE_ID2);
16541 write_phy_reg(pi, 0x32f, 0x3);
16543 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
16544 wlc_phy_rfctrl_override_nphy_rev7(
16547 NPHY_REV7_RFCTRLOVERRIDE_ID0);
16549 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
16550 (pi->pubpi.radiorev == 6)) {
16551 if ((pi->sh->sromrev >= 8)
16552 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
16553 ipalvlshift_3p3_war_en = 1;
16555 if (ipalvlshift_3p3_war_en) {
16556 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
16558 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
16560 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
16562 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
16565 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
16568 ipa2g_mainbias = 0x1f;
16570 ipa2g_casconv = 0x6f;
16572 ipa2g_biasfilt = 0xaa;
16575 ipa2g_mainbias = 0x2b;
16577 ipa2g_casconv = 0x7f;
16579 ipa2g_biasfilt = 0xee;
16582 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16583 for (coreNum = 0; coreNum <= 1; coreNum++) {
16584 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16585 coreNum, IPA2G_IMAIN,
16587 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16588 coreNum, IPA2G_CASCONV,
16590 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16599 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16600 if ((pi->pubpi.radiorev == 3)
16601 || (pi->pubpi.radiorev == 4)
16602 || (pi->pubpi.radiorev == 6))
16603 txgm_idac_bleed = 0x7f;
16605 for (coreNum = 0; coreNum <= 1; coreNum++) {
16606 if (txgm_idac_bleed != 0)
16614 if (pi->pubpi.radiorev == 5) {
16616 for (coreNum = 0; coreNum <= 1;
16618 WRITE_RADIO_REG4(pi, RADIO_2057,
16622 WRITE_RADIO_REG4(pi, RADIO_2057,
16631 WRITE_RADIO_REG4(pi, RADIO_2057,
16638 PAD_BIAS_FILTER_BWS,
16642 } else if ((pi->pubpi.radiorev == 7)
16643 || (pi->pubpi.radiorev == 8)) {
16645 if (CHSPEC_IS40(pi->radio_chanspec) ==
16647 WRITE_RADIO_REG4(pi, RADIO_2057,
16651 WRITE_RADIO_REG4(pi, RADIO_2057,
16656 WRITE_RADIO_REG4(pi, RADIO_2057,
16660 WRITE_RADIO_REG4(pi, RADIO_2057,
16668 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(
16669 pi->radio_chanspec));
16670 if (((freq >= 5180) && (freq <= 5230))
16671 || ((freq >= 5745) && (freq <= 5805))) {
16672 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16673 0, IPA5G_BIAS_FILTER,
16675 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16676 1, IPA5G_BIAS_FILTER,
16682 if (pi->pubpi.radiorev != 5) {
16683 for (coreNum = 0; coreNum <= 1; coreNum++) {
16684 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16686 TXMIX2G_TUNE_BOOST_PU,
16688 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16690 TXGM_IDAC_BLEED, 0x70);
16695 if (pi->pubpi.radiorev == 4) {
16696 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16698 &afectrl_adc_ctrl1_rev7);
16699 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16701 &afectrl_adc_ctrl1_rev7);
16703 for (coreNum = 0; coreNum <= 1; coreNum++) {
16704 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16705 AFE_VCM_CAL_MASTER, 0x0);
16706 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16707 AFE_SET_VCM_I, 0x3f);
16708 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16709 AFE_SET_VCM_Q, 0x3f);
16712 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
16713 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
16714 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
16715 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
16717 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
16718 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
16719 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
16720 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
16722 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16724 &afectrl_adc_ctrl2_rev7);
16725 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16727 &afectrl_adc_ctrl2_rev7);
16729 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
16730 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
16731 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
16732 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
16735 write_phy_reg(pi, 0x6a, 0x2);
16737 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
16738 &min_nvar_offset_6mbps);
16740 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
16741 &rfseq_pktgn_lpf_hpc_rev7);
16743 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
16744 &rfseq_pktgn_lpf_h_hpc_rev7);
16746 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
16747 &rfseq_htpktgn_lpf_hpc_rev7);
16749 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
16750 &rfseq_cckpktgn_lpf_hpc_rev7);
16752 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
16753 &rfseq_tx2rx_lpf_h_hpc_rev7);
16755 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
16756 &rfseq_rx2tx_lpf_h_hpc_rev7);
16758 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16759 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16760 32, &min_nvar_val);
16761 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16762 127, 32, &min_nvar_val);
16764 min_nvar_val = noise_var_tbl_rev7[3];
16765 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16766 32, &min_nvar_val);
16768 min_nvar_val = noise_var_tbl_rev7[127];
16769 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16770 127, 32, &min_nvar_val);
16773 wlc_phy_workarounds_nphy_gainctrl(pi);
16776 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16777 pdetrange : pi->srom_fem2g.pdetrange;
16779 if (pdetrange == 0) {
16781 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16782 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16783 aux_adc_vmid_rev7_core0[3] = 0x70;
16784 aux_adc_vmid_rev7_core1[3] = 0x70;
16785 aux_adc_gain_rev7[3] = 2;
16787 aux_adc_vmid_rev7_core0[3] = 0x80;
16788 aux_adc_vmid_rev7_core1[3] = 0x80;
16789 aux_adc_gain_rev7[3] = 3;
16791 } else if (pdetrange == 1) {
16792 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16793 aux_adc_vmid_rev7_core0[3] = 0x7c;
16794 aux_adc_vmid_rev7_core1[3] = 0x7c;
16795 aux_adc_gain_rev7[3] = 2;
16797 aux_adc_vmid_rev7_core0[3] = 0x8c;
16798 aux_adc_vmid_rev7_core1[3] = 0x8c;
16799 aux_adc_gain_rev7[3] = 1;
16801 } else if (pdetrange == 2) {
16802 if (pi->pubpi.radioid == BCM2057_ID) {
16803 if ((pi->pubpi.radiorev == 5)
16804 || (pi->pubpi.radiorev == 7)
16805 || (pi->pubpi.radiorev == 8)) {
16806 if (chan_freq_range ==
16807 WL_CHAN_FREQ_RANGE_2G) {
16808 aux_adc_vmid_rev7_core0[3] =
16810 aux_adc_vmid_rev7_core1[3] =
16812 aux_adc_gain_rev7[3] = 0;
16814 aux_adc_vmid_rev7_core0[3] =
16816 aux_adc_vmid_rev7_core1[3] =
16818 aux_adc_gain_rev7[3] = 0;
16823 } else if (pdetrange == 3) {
16824 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
16825 aux_adc_vmid_rev7_core0[3] = 0x89;
16826 aux_adc_vmid_rev7_core1[3] = 0x89;
16827 aux_adc_gain_rev7[3] = 0;
16830 } else if (pdetrange == 5) {
16832 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16833 aux_adc_vmid_rev7_core0[3] = 0x80;
16834 aux_adc_vmid_rev7_core1[3] = 0x80;
16835 aux_adc_gain_rev7[3] = 3;
16837 aux_adc_vmid_rev7_core0[3] = 0x70;
16838 aux_adc_vmid_rev7_core1[3] = 0x70;
16839 aux_adc_gain_rev7[3] = 2;
16843 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
16844 &aux_adc_vmid_rev7_core0);
16845 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
16846 &aux_adc_vmid_rev7_core1);
16847 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
16848 &aux_adc_gain_rev7);
16849 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
16850 &aux_adc_gain_rev7);
16852 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16854 write_phy_reg(pi, 0x23f, 0x1f8);
16855 write_phy_reg(pi, 0x240, 0x1f8);
16857 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16858 1, 0, 32, &leg_data_weights);
16859 leg_data_weights = leg_data_weights & 0xffffff;
16860 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16861 1, 0, 32, &leg_data_weights);
16869 write_phy_reg(pi, 0x145, alpha0);
16870 write_phy_reg(pi, 0x146, alpha1);
16871 write_phy_reg(pi, 0x147, alpha2);
16872 write_phy_reg(pi, 0x148, beta0);
16873 write_phy_reg(pi, 0x149, beta1);
16874 write_phy_reg(pi, 0x14a, beta2);
16876 write_phy_reg(pi, 0x38, 0xC);
16877 write_phy_reg(pi, 0x2ae, 0xC);
16879 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
16880 rfseq_tx2rx_events_rev3,
16881 rfseq_tx2rx_dlys_rev3,
16882 sizeof(rfseq_tx2rx_events_rev3) /
16883 sizeof(rfseq_tx2rx_events_rev3[0]));
16886 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16887 rfseq_rx2tx_events_rev3_ipa,
16888 rfseq_rx2tx_dlys_rev3_ipa,
16890 (rfseq_rx2tx_events_rev3_ipa) /
16892 (rfseq_rx2tx_events_rev3_ipa
16895 if ((pi->sh->hw_phyrxchain != 0x3) &&
16896 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
16899 rfseq_rx2tx_dlys_rev3[5] = 59;
16900 rfseq_rx2tx_dlys_rev3[6] = 1;
16901 rfseq_rx2tx_events_rev3[7] =
16902 NPHY_REV3_RFSEQ_CMD_END;
16905 wlc_phy_set_rfseq_nphy(
16906 pi, NPHY_RFSEQ_RX2TX,
16907 rfseq_rx2tx_events_rev3,
16908 rfseq_rx2tx_dlys_rev3,
16909 sizeof(rfseq_rx2tx_events_rev3) /
16910 sizeof(rfseq_rx2tx_events_rev3[0]));
16913 if (CHSPEC_IS2G(pi->radio_chanspec))
16914 write_phy_reg(pi, 0x6a, 0x2);
16916 write_phy_reg(pi, 0x6a, 0x9c40);
16918 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
16920 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16921 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16922 32, &min_nvar_val);
16923 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16924 127, 32, &min_nvar_val);
16926 min_nvar_val = noise_var_tbl_rev3[3];
16927 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16928 32, &min_nvar_val);
16930 min_nvar_val = noise_var_tbl_rev3[127];
16931 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16932 127, 32, &min_nvar_val);
16935 wlc_phy_workarounds_nphy_gainctrl(pi);
16937 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16939 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16943 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16944 pdetrange : pi->srom_fem2g.pdetrange;
16946 if (pdetrange == 0) {
16947 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16948 aux_adc_vmid = aux_adc_vmid_rev4;
16949 aux_adc_gain = aux_adc_gain_rev4;
16951 aux_adc_vmid = aux_adc_vmid_rev3;
16952 aux_adc_gain = aux_adc_gain_rev3;
16955 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16956 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16957 switch (chan_freq_range) {
16958 case WL_CHAN_FREQ_RANGE_5GL:
16959 aux_adc_vmid[3] = 0x89;
16960 aux_adc_gain[3] = 0;
16962 case WL_CHAN_FREQ_RANGE_5GM:
16963 aux_adc_vmid[3] = 0x89;
16964 aux_adc_gain[3] = 0;
16966 case WL_CHAN_FREQ_RANGE_5GH:
16967 aux_adc_vmid[3] = 0x89;
16968 aux_adc_gain[3] = 0;
16974 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16975 0x08, 16, aux_adc_vmid);
16976 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16977 0x18, 16, aux_adc_vmid);
16978 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16979 0x0c, 16, aux_adc_gain);
16980 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16981 0x1c, 16, aux_adc_gain);
16982 } else if (pdetrange == 1) {
16983 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16984 0x08, 16, sk_adc_vmid);
16985 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16986 0x18, 16, sk_adc_vmid);
16987 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16988 0x0c, 16, sk_adc_gain);
16989 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16990 0x1c, 16, sk_adc_gain);
16991 } else if (pdetrange == 2) {
16993 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16994 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16996 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16998 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16999 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
17000 bcm_adc_vmid[3] = 0x8e;
17001 bcm_adc_gain[3] = 0x03;
17003 bcm_adc_vmid[3] = 0x94;
17004 bcm_adc_gain[3] = 0x03;
17006 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
17007 bcm_adc_vmid[3] = 0x84;
17008 bcm_adc_gain[3] = 0x02;
17011 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17012 0x08, 16, bcm_adc_vmid);
17013 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17014 0x18, 16, bcm_adc_vmid);
17015 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17016 0x0c, 16, bcm_adc_gain);
17017 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17018 0x1c, 16, bcm_adc_gain);
17019 } else if (pdetrange == 3) {
17021 wlc_phy_get_chan_freq_range_nphy(pi, 0);
17022 if ((NREV_GE(pi->pubpi.phy_rev, 4))
17023 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
17025 u16 auxadc_vmid[] = {
17026 0xa2, 0xb4, 0xb4, 0x270
17028 u16 auxadc_gain[] = {
17029 0x02, 0x02, 0x02, 0x00
17032 wlc_phy_table_write_nphy(pi,
17033 NPHY_TBL_ID_AFECTRL, 4,
17034 0x08, 16, auxadc_vmid);
17035 wlc_phy_table_write_nphy(pi,
17036 NPHY_TBL_ID_AFECTRL, 4,
17037 0x18, 16, auxadc_vmid);
17038 wlc_phy_table_write_nphy(pi,
17039 NPHY_TBL_ID_AFECTRL, 4,
17040 0x0c, 16, auxadc_gain);
17041 wlc_phy_table_write_nphy(pi,
17042 NPHY_TBL_ID_AFECTRL, 4,
17043 0x1c, 16, auxadc_gain);
17045 } else if ((pdetrange == 4) || (pdetrange == 5)) {
17046 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
17047 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
17048 u16 Vmid[2], Av[2];
17051 wlc_phy_get_chan_freq_range_nphy(pi, 0);
17052 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
17053 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
17054 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
17055 Av[0] = (pdetrange == 4) ? 2 : 0;
17056 Av[1] = (pdetrange == 4) ? 2 : 0;
17058 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
17059 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
17060 Av[0] = (pdetrange == 4) ? 2 : 0;
17061 Av[1] = (pdetrange == 4) ? 2 : 0;
17064 bcm_adc_vmid[3] = Vmid[0];
17065 bcm_adc_gain[3] = Av[0];
17066 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17067 0x08, 16, bcm_adc_vmid);
17068 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17069 0x0c, 16, bcm_adc_gain);
17071 bcm_adc_vmid[3] = Vmid[1];
17072 bcm_adc_gain[3] = Av[1];
17073 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17074 0x18, 16, bcm_adc_vmid);
17075 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17076 0x1c, 16, bcm_adc_gain);
17079 write_radio_reg(pi,
17080 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
17082 write_radio_reg(pi,
17083 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
17086 write_radio_reg(pi,
17087 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
17089 write_radio_reg(pi,
17090 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
17093 write_radio_reg(pi,
17094 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
17096 write_radio_reg(pi,
17097 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
17100 write_radio_reg(pi,
17101 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
17103 write_radio_reg(pi,
17104 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
17107 write_radio_reg(pi,
17108 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
17110 write_radio_reg(pi,
17111 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
17114 write_radio_reg(pi,
17115 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
17117 write_radio_reg(pi,
17118 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
17122 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
17123 triso : pi->srom_fem2g.triso;
17125 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
17126 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
17129 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
17131 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
17132 (CHSPEC_IS5G(pi->radio_chanspec))) ||
17133 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
17134 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
17135 (CHSPEC_IS2G(pi->radio_chanspec)))) {
17136 nss1_data_weights = 0x00088888;
17137 ht_data_weights = 0x00088888;
17138 stbc_data_weights = 0x00088888;
17140 nss1_data_weights = 0x88888888;
17141 ht_data_weights = 0x88888888;
17142 stbc_data_weights = 0x88888888;
17144 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17145 1, 1, 32, &nss1_data_weights);
17146 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17147 1, 2, 32, &ht_data_weights);
17148 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17149 1, 3, 32, &stbc_data_weights);
17151 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17152 if (CHSPEC_IS5G(pi->radio_chanspec)) {
17153 write_radio_reg(pi,
17154 RADIO_2056_TX_GMBB_IDAC |
17155 RADIO_2056_TX0, 0x70);
17156 write_radio_reg(pi,
17157 RADIO_2056_TX_GMBB_IDAC |
17158 RADIO_2056_TX1, 0x70);
17162 if (!pi->edcrs_threshold_lock) {
17163 write_phy_reg(pi, 0x224, 0x3eb);
17164 write_phy_reg(pi, 0x225, 0x3eb);
17165 write_phy_reg(pi, 0x226, 0x341);
17166 write_phy_reg(pi, 0x227, 0x341);
17167 write_phy_reg(pi, 0x228, 0x42b);
17168 write_phy_reg(pi, 0x229, 0x42b);
17169 write_phy_reg(pi, 0x22a, 0x381);
17170 write_phy_reg(pi, 0x22b, 0x381);
17171 write_phy_reg(pi, 0x22c, 0x42b);
17172 write_phy_reg(pi, 0x22d, 0x42b);
17173 write_phy_reg(pi, 0x22e, 0x381);
17174 write_phy_reg(pi, 0x22f, 0x381);
17177 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
17179 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK)
17180 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
17182 MHF4_BPHY_TXCORE0, BRCM_BAND_ALL);
17186 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
17187 (pi->sh->boardtype == 0x8b)) {
17189 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
17190 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
17191 rfseq_rx2tx_dlys[i] = war_dlys[i];
17194 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
17195 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
17196 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
17198 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
17199 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
17203 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, ®val);
17204 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, ®val);
17206 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17208 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, ®val);
17209 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, ®val);
17212 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17214 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, ®val);
17215 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, ®val);
17218 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, ®val);
17219 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, ®val);
17222 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, ®val);
17223 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, ®val);
17226 write_phy_reg(pi, 0xf8, 0x02d8);
17227 write_phy_reg(pi, 0xf9, 0x0301);
17228 write_phy_reg(pi, 0xfa, 0x02d8);
17229 write_phy_reg(pi, 0xfb, 0x0301);
17231 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
17233 sizeof(rfseq_rx2tx_events) /
17234 sizeof(rfseq_rx2tx_events[0]));
17236 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
17238 sizeof(rfseq_tx2rx_events) /
17239 sizeof(rfseq_tx2rx_events[0]));
17241 wlc_phy_workarounds_nphy_gainctrl(pi);
17243 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17245 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
17246 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
17247 MHF3_NPHY_MLADV_WAR,
17248 MHF3_NPHY_MLADV_WAR,
17251 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
17252 write_phy_reg(pi, 0x1e3, 0x0);
17253 write_phy_reg(pi, 0x1e4, 0x0);
17256 if (NREV_LT(pi->pubpi.phy_rev, 2))
17257 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
17265 write_phy_reg(pi, 0x145, alpha0);
17266 write_phy_reg(pi, 0x146, alpha1);
17267 write_phy_reg(pi, 0x147, alpha2);
17268 write_phy_reg(pi, 0x148, beta0);
17269 write_phy_reg(pi, 0x149, beta1);
17270 write_phy_reg(pi, 0x14a, beta2);
17272 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17273 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
17275 write_phy_reg(pi, 0x192, 0xb5);
17276 write_phy_reg(pi, 0x193, 0xa4);
17277 write_phy_reg(pi, 0x194, 0x0);
17280 if (NREV_IS(pi->pubpi.phy_rev, 2))
17281 mod_phy_reg(pi, 0x221,
17282 NPHY_FORCESIG_DECODEGATEDCLKS,
17283 NPHY_FORCESIG_DECODEGATEDCLKS);
17286 if (pi->phyhang_avoid)
17287 wlc_phy_stay_in_carriersearch_nphy(pi, false);
17290 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
17293 u16 addr_offset = 0x2c5;
17295 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
17296 write_phy_reg(pi, addr_offset + j,
17297 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
17300 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
17304 vals[0] = read_phy_reg(pi, 0x2c);
17305 vals[1] = read_phy_reg(pi, 0x42);
17307 write_phy_reg(pi, 0x2c, vals[0]);
17308 write_phy_reg(pi, 0x42, vals[1]);
17312 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
17316 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17317 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17318 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17319 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17320 TX_SSI_MASTER, 0x5);
17321 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17324 if (pi->pubpi.radiorev != 5)
17325 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17328 if (!NREV_IS(pi->pubpi.phy_rev, 7))
17329 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17332 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17333 core, TSSIG, 0x31);
17335 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17336 TX_SSI_MASTER, 0x9);
17337 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17339 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17342 if (pi->pubpi.radiorev != 5) {
17343 if (!NREV_IS(pi->pubpi.phy_rev, 7))
17344 WRITE_RADIO_REG3(pi, RADIO_2057,
17348 WRITE_RADIO_REG3(pi, RADIO_2057,
17353 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
17355 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
17357 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
17359 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
17363 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
17364 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
17366 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
17367 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
17369 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17370 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
17372 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
17374 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
17376 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
17378 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
17380 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
17382 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
17385 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17386 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17387 TX_SSI_MASTER, 0x5);
17389 if (pi->pubpi.radiorev != 5)
17390 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17392 if (NREV_GE(pi->pubpi.phy_rev, 5))
17393 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17394 core, TSSIG, 0x31);
17396 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17397 core, TSSIG, 0x11);
17398 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17401 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17402 TX_SSI_MASTER, 0x9);
17403 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17405 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17407 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17415 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
17416 u8 core_mask, u8 off)
17419 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
17421 u8 shift = 0, val_shift = 0;
17423 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
17426 for (core_num = 0; core_num < 2; core_num++) {
17430 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17431 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17432 val_mask = (0x1 << 0);
17436 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17437 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17438 val_mask = (0x1 << 1);
17442 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17443 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17444 val_mask = (0x1 << 2);
17448 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17449 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17450 val_mask = (0x1 << 4);
17454 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17455 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17456 val_mask = (0x1 << 5);
17460 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17461 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17462 val_mask = (0x1 << 6);
17466 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17467 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17468 val_mask = (0x1 << 7);
17472 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17473 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17474 val_mask = (0x7 << 8);
17478 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17479 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17480 val_mask = (0x7 << 13);
17485 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17486 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17487 val_mask = (0x7 << 0);
17492 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17493 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17494 val_mask = (0x7 << 4);
17499 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17500 val_addr = (core_num == 0) ? 0x7b : 0x7e;
17501 val_mask = (0xffff << 0);
17505 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17506 val_addr = (core_num == 0) ? 0x7c : 0x7f;
17507 val_mask = (0xffff << 0);
17511 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17512 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17513 val_mask = (0x3 << 6);
17517 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
17518 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17519 val_mask = (0x1 << 15);
17528 and_phy_reg(pi, en_addr, ~en_mask);
17529 and_phy_reg(pi, val_addr, ~val_mask);
17532 if ((core_mask == 0)
17533 || (core_mask & (1 << core_num))) {
17534 or_phy_reg(pi, en_addr, en_mask);
17536 if (addr != 0xffff)
17537 mod_phy_reg(pi, val_addr,
17547 and_phy_reg(pi, 0xec, ~field);
17550 or_phy_reg(pi, 0xec, field);
17553 for (core_num = 0; core_num < 2; core_num++) {
17572 addr = (core_num == 0) ? 0x7a : 0x7d;
17575 addr = (core_num == 0) ? 0x7b : 0x7e;
17578 addr = (core_num == 0) ? 0x7c : 0x7f;
17602 mask = (0xf << 12);
17647 if ((addr != 0xffff) && (core_mask & (1 << core_num)))
17648 mod_phy_reg(pi, addr, mask, (value << shift));
17651 or_phy_reg(pi, 0xec, (0x1 << 0));
17652 or_phy_reg(pi, 0x78, (0x1 << 0));
17654 and_phy_reg(pi, 0xec, ~(0x1 << 0));
17658 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
17663 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
17668 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
17670 if (NREV_GE(pi->pubpi.phy_rev, 7))
17671 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17673 NPHY_REV7_RFCTRLOVERRIDE_ID0);
17674 else if (NREV_GE(pi->pubpi.phy_rev, 3))
17675 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
17677 wlc_phy_stopplayback_nphy(pi);
17679 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
17683 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
17685 wlc_phy_stopplayback_nphy(pi);
17686 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
17688 if (NREV_GE(pi->pubpi.phy_rev, 7))
17689 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17691 NPHY_REV7_RFCTRLOVERRIDE_ID0);
17692 else if (NREV_GE(pi->pubpi.phy_rev, 3))
17693 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
17695 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17697 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17698 (u8) ((int_val >> 24) & 0xff);
17699 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17700 (u8) ((int_val >> 24) & 0xff);
17702 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17703 (u8) ((int_val >> 8) & 0xff);
17704 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17705 (u8) ((int_val >> 8) & 0xff);
17707 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17708 (u8) ((int_val >> 24) & 0xff);
17710 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17711 (u8) ((int_val >> 8) & 0xff);
17713 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17714 (u8) ((int_val >> 16) & 0xff);
17715 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17716 (u8) ((int_val) & 0xff);
17721 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
17723 u8 idx, idx2, i, delta_ind;
17725 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++)
17726 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
17728 for (i = 0; i < 4; i++) {
17736 if (CHSPEC_IS40(pi->radio_chanspec)
17737 && NPHY_IS_SROM_REINTERPRET) {
17738 idx = TXP_FIRST_MCS_40_SISO;
17740 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17741 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
17748 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17749 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
17754 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17755 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
17760 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17761 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
17765 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17766 pi->tx_power_offset[idx];
17767 idx = idx + delta_ind;
17768 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17769 pi->tx_power_offset[idx];
17770 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17771 pi->tx_power_offset[idx];
17772 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17773 pi->tx_power_offset[idx++];
17775 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17776 pi->tx_power_offset[idx++];
17777 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17778 pi->tx_power_offset[idx];
17779 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17780 pi->tx_power_offset[idx];
17781 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17782 pi->tx_power_offset[idx++];
17784 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17785 pi->tx_power_offset[idx++];
17786 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17787 pi->tx_power_offset[idx];
17788 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17789 pi->tx_power_offset[idx];
17790 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17791 pi->tx_power_offset[idx++];
17793 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17794 pi->tx_power_offset[idx];
17795 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17796 pi->tx_power_offset[idx++];
17797 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17798 pi->tx_power_offset[idx];
17799 idx = idx + 1 - delta_ind;
17800 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17801 pi->tx_power_offset[idx];
17803 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17804 pi->tx_power_offset[idx];
17805 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17806 pi->tx_power_offset[idx];
17807 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17808 pi->tx_power_offset[idx];
17809 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17810 pi->tx_power_offset[idx];
17814 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
17817 s16 a1[2], b0[2], b1[2];
17818 s8 target_pwr_qtrdbm[2];
17819 s32 num, den, pwr_est;
17820 u8 chan_freq_range;
17822 u32 tbl_id, tbl_len, tbl_offset;
17826 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17827 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17828 (void)R_REG(&pi->regs->maccontrol);
17832 if (pi->phyhang_avoid)
17833 wlc_phy_stay_in_carriersearch_nphy(pi, true);
17835 or_phy_reg(pi, 0x122, (0x1 << 0));
17837 if (NREV_GE(pi->pubpi.phy_rev, 3))
17838 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
17840 or_phy_reg(pi, 0x1e7, (0x1 << 15));
17842 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17843 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17845 if (pi->sh->sromrev < 4) {
17846 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17847 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17848 target_pwr_qtrdbm[0] = 13 * 4;
17849 target_pwr_qtrdbm[1] = 13 * 4;
17858 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
17859 switch (chan_freq_range) {
17860 case WL_CHAN_FREQ_RANGE_2G:
17861 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17862 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17863 target_pwr_qtrdbm[0] =
17864 pi->nphy_pwrctrl_info[0].max_pwr_2g;
17865 target_pwr_qtrdbm[1] =
17866 pi->nphy_pwrctrl_info[1].max_pwr_2g;
17867 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
17868 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
17869 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
17870 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
17871 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
17872 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
17874 case WL_CHAN_FREQ_RANGE_5GL:
17875 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17876 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17877 target_pwr_qtrdbm[0] =
17878 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
17879 target_pwr_qtrdbm[1] =
17880 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
17881 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
17882 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
17883 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
17884 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
17885 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
17886 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
17888 case WL_CHAN_FREQ_RANGE_5GM:
17889 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17890 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17891 target_pwr_qtrdbm[0] =
17892 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
17893 target_pwr_qtrdbm[1] =
17894 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
17895 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
17896 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
17897 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
17898 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
17899 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
17900 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
17902 case WL_CHAN_FREQ_RANGE_5GH:
17903 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17904 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17905 target_pwr_qtrdbm[0] =
17906 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
17907 target_pwr_qtrdbm[1] =
17908 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
17909 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
17910 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
17911 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
17912 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
17913 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
17914 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
17917 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17918 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17919 target_pwr_qtrdbm[0] = 13 * 4;
17920 target_pwr_qtrdbm[1] = 13 * 4;
17931 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
17932 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
17934 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17935 if (pi->srom_fem2g.tssipos)
17936 or_phy_reg(pi, 0x1e9, (0x1 << 14));
17938 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17939 for (core = 0; core <= 1; core++) {
17941 if (CHSPEC_IS2G(pi->radio_chanspec))
17942 WRITE_RADIO_REG3(pi, RADIO_2057,
17947 WRITE_RADIO_REG3(pi, RADIO_2057,
17956 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17959 (pi->radio_chanspec)) ?
17961 write_radio_reg(pi,
17962 RADIO_2056_TX_TX_SSI_MUX |
17965 (pi->radio_chanspec)) ?
17969 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17970 RADIO_2056_TX0, 0x11);
17971 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17972 RADIO_2056_TX1, 0x11);
17977 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17978 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17979 (void)R_REG(&pi->regs->maccontrol);
17983 if (NREV_GE(pi->pubpi.phy_rev, 7))
17984 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17985 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17987 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17988 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17990 if (NREV_GE(pi->pubpi.phy_rev, 7))
17991 mod_phy_reg(pi, 0x222, (0xff << 0),
17992 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17993 else if (NREV_GT(pi->pubpi.phy_rev, 1))
17994 mod_phy_reg(pi, 0x222, (0xff << 0),
17995 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17997 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17998 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
18000 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
18002 write_phy_reg(pi, 0x1e9,
18003 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
18005 write_phy_reg(pi, 0x1ea,
18006 (target_pwr_qtrdbm[0] << 0) |
18007 (target_pwr_qtrdbm[1] << 8));
18011 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
18012 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
18014 for (idx = 0; idx < tbl_len; idx++) {
18016 (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
18017 den = 32768 + a1[tbl_id - 26] * idx;
18018 pwr_est = max(((4 * num + den / 2) / den), -8);
18019 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
18021 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
18025 [tbl_id - 26] + 1);
18027 regval[idx] = (u32) pwr_est;
18029 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18033 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
18034 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
18035 pi->adj_pwr_tbl_nphy);
18036 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
18037 pi->adj_pwr_tbl_nphy);
18039 if (pi->phyhang_avoid)
18040 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18043 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
18045 u32 *tx_pwrctrl_tbl = NULL;
18047 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18048 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18049 if ((pi->pubpi.radiorev == 4)
18050 || (pi->pubpi.radiorev == 6))
18052 nphy_tpc_txgain_ipa_2g_2057rev4n6;
18053 else if (pi->pubpi.radiorev == 3)
18055 nphy_tpc_txgain_ipa_2g_2057rev3;
18056 else if (pi->pubpi.radiorev == 5)
18058 nphy_tpc_txgain_ipa_2g_2057rev5;
18059 else if ((pi->pubpi.radiorev == 7)
18060 || (pi->pubpi.radiorev == 8))
18062 nphy_tpc_txgain_ipa_2g_2057rev7;
18063 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18064 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
18065 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18066 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
18068 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
18072 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18073 if ((pi->pubpi.radiorev == 3) ||
18074 (pi->pubpi.radiorev == 4) ||
18075 (pi->pubpi.radiorev == 6))
18076 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
18077 else if ((pi->pubpi.radiorev == 7)
18078 || (pi->pubpi.radiorev == 8))
18080 nphy_tpc_txgain_ipa_5g_2057rev7;
18082 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
18086 return tx_pwrctrl_tbl;
18089 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
18091 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18092 if (pi->nphy_rssical_chanspec_2G == 0)
18095 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18096 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
18097 RADIO_2057_VCM_MASK,
18099 rssical_radio_regs_2G[0]);
18100 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
18101 RADIO_2057_VCM_MASK,
18103 rssical_radio_regs_2G[1]);
18106 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
18107 RADIO_2056_VCM_MASK,
18109 rssical_radio_regs_2G[0]);
18111 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
18112 RADIO_2056_VCM_MASK,
18114 rssical_radio_regs_2G[1]);
18117 write_phy_reg(pi, 0x1a6,
18118 pi->rssical_cache.rssical_phyregs_2G[0]);
18119 write_phy_reg(pi, 0x1ac,
18120 pi->rssical_cache.rssical_phyregs_2G[1]);
18121 write_phy_reg(pi, 0x1b2,
18122 pi->rssical_cache.rssical_phyregs_2G[2]);
18123 write_phy_reg(pi, 0x1b8,
18124 pi->rssical_cache.rssical_phyregs_2G[3]);
18125 write_phy_reg(pi, 0x1a4,
18126 pi->rssical_cache.rssical_phyregs_2G[4]);
18127 write_phy_reg(pi, 0x1aa,
18128 pi->rssical_cache.rssical_phyregs_2G[5]);
18129 write_phy_reg(pi, 0x1b0,
18130 pi->rssical_cache.rssical_phyregs_2G[6]);
18131 write_phy_reg(pi, 0x1b6,
18132 pi->rssical_cache.rssical_phyregs_2G[7]);
18133 write_phy_reg(pi, 0x1a5,
18134 pi->rssical_cache.rssical_phyregs_2G[8]);
18135 write_phy_reg(pi, 0x1ab,
18136 pi->rssical_cache.rssical_phyregs_2G[9]);
18137 write_phy_reg(pi, 0x1b1,
18138 pi->rssical_cache.rssical_phyregs_2G[10]);
18139 write_phy_reg(pi, 0x1b7,
18140 pi->rssical_cache.rssical_phyregs_2G[11]);
18143 if (pi->nphy_rssical_chanspec_5G == 0)
18146 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18147 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
18148 RADIO_2057_VCM_MASK,
18150 rssical_radio_regs_5G[0]);
18151 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
18152 RADIO_2057_VCM_MASK,
18154 rssical_radio_regs_5G[1]);
18157 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
18158 RADIO_2056_VCM_MASK,
18160 rssical_radio_regs_5G[0]);
18162 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
18163 RADIO_2056_VCM_MASK,
18165 rssical_radio_regs_5G[1]);
18168 write_phy_reg(pi, 0x1a6,
18169 pi->rssical_cache.rssical_phyregs_5G[0]);
18170 write_phy_reg(pi, 0x1ac,
18171 pi->rssical_cache.rssical_phyregs_5G[1]);
18172 write_phy_reg(pi, 0x1b2,
18173 pi->rssical_cache.rssical_phyregs_5G[2]);
18174 write_phy_reg(pi, 0x1b8,
18175 pi->rssical_cache.rssical_phyregs_5G[3]);
18176 write_phy_reg(pi, 0x1a4,
18177 pi->rssical_cache.rssical_phyregs_5G[4]);
18178 write_phy_reg(pi, 0x1aa,
18179 pi->rssical_cache.rssical_phyregs_5G[5]);
18180 write_phy_reg(pi, 0x1b0,
18181 pi->rssical_cache.rssical_phyregs_5G[6]);
18182 write_phy_reg(pi, 0x1b6,
18183 pi->rssical_cache.rssical_phyregs_5G[7]);
18184 write_phy_reg(pi, 0x1a5,
18185 pi->rssical_cache.rssical_phyregs_5G[8]);
18186 write_phy_reg(pi, 0x1ab,
18187 pi->rssical_cache.rssical_phyregs_5G[9]);
18188 write_phy_reg(pi, 0x1b1,
18189 pi->rssical_cache.rssical_phyregs_5G[10]);
18190 write_phy_reg(pi, 0x1b7,
18191 pi->rssical_cache.rssical_phyregs_5G[11]);
18195 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
18199 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
18200 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
18201 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18202 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18204 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18207 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18208 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
18209 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
18211 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
18212 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
18215 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18219 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
18221 bool save_bbmult = false;
18222 u8 txcal_index_2057_rev5n7 = 0;
18223 u8 txcal_index_2057_rev3n4n6 = 10;
18225 if (pi->use_int_tx_iqlo_cal_nphy) {
18226 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18227 if ((pi->pubpi.radiorev == 3) ||
18228 (pi->pubpi.radiorev == 4) ||
18229 (pi->pubpi.radiorev == 6)) {
18231 pi->nphy_txcal_pwr_idx[0] =
18232 txcal_index_2057_rev3n4n6;
18233 pi->nphy_txcal_pwr_idx[1] =
18234 txcal_index_2057_rev3n4n6;
18235 wlc_phy_txpwr_index_nphy(
18237 txcal_index_2057_rev3n4n6,
18241 pi->nphy_txcal_pwr_idx[0] =
18242 txcal_index_2057_rev5n7;
18243 pi->nphy_txcal_pwr_idx[1] =
18244 txcal_index_2057_rev5n7;
18245 wlc_phy_txpwr_index_nphy(
18247 txcal_index_2057_rev5n7,
18250 save_bbmult = true;
18252 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
18253 wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
18254 if (pi->sh->hw_phytxchain != 3) {
18255 pi->nphy_txcal_pwr_idx[1] =
18256 pi->nphy_txcal_pwr_idx[0];
18257 wlc_phy_txpwr_index_nphy(pi, 3,
18259 nphy_txcal_pwr_idx[0],
18261 save_bbmult = true;
18264 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18266 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18267 wlc_phy_cal_txgainctrl_nphy(pi, 12,
18270 pi->nphy_txcal_pwr_idx[0] = 80;
18271 pi->nphy_txcal_pwr_idx[1] = 80;
18272 wlc_phy_txpwr_index_nphy(pi, 3, 80,
18274 save_bbmult = true;
18277 wlc_phy_internal_cal_txgain_nphy(pi);
18278 save_bbmult = true;
18281 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18283 if (CHSPEC_IS2G(pi->radio_chanspec))
18284 wlc_phy_cal_txgainctrl_nphy(pi, 12,
18287 wlc_phy_cal_txgainctrl_nphy(pi, 14,
18290 wlc_phy_internal_cal_txgain_nphy(pi);
18291 save_bbmult = true;
18296 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
18300 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
18301 &pi->nphy_txcal_bbmult);
18305 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
18312 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18313 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18314 if (core_code == RADIO_MIMO_CORESEL_CORE1
18315 && core == PHY_CORE_1)
18317 else if (core_code == RADIO_MIMO_CORESEL_CORE2
18318 && core == PHY_CORE_0)
18321 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
18323 mask = (0x1 << 10);
18325 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18329 if (field == NPHY_RfctrlIntc_override_OFF) {
18331 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18334 wlc_phy_force_rfseq_nphy(pi,
18335 NPHY_RFSEQ_RESET2RX);
18336 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
18338 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18340 mask = (0x1 << 6) | (0x1 << 7);
18345 PHY_CORE_0) ? 0x91 : 0x92,
18350 PHY_CORE_0) ? 0x91 : 0x92,
18353 and_phy_reg(pi, 0x2ff, (u16)
18355 or_phy_reg(pi, 0x2ff, (0x1 << 13));
18356 or_phy_reg(pi, 0x2ff, (0x1 << 0));
18359 mask = (0x1 << 6) |
18361 (0x1 << 8) | (0x1 << 9);
18365 PHY_CORE_0) ? 0x91 : 0x92,
18372 PHY_CORE_0) ? 0xe7 : 0xec,
18375 mask = (core == PHY_CORE_0) ?
18376 (0x1 << 0) : (0x1 << 1);
18377 val = 1 << ((core == PHY_CORE_0) ?
18379 mod_phy_reg(pi, 0x78, mask, val);
18381 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
18383 if (WARN(read_phy_reg(pi, 0x78) & val,
18384 "HW error: override failed"))
18391 PHY_CORE_0) ? 0xe7 : 0xec,
18394 } else if (field == NPHY_RfctrlIntc_override_PA) {
18395 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18397 mask = (0x1 << 4) | (0x1 << 5);
18399 if (CHSPEC_IS5G(pi->radio_chanspec))
18406 PHY_CORE_0) ? 0x91 : 0x92,
18411 PHY_CORE_0) ? 0x91 : 0x92,
18415 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18424 PHY_CORE_0) ? 0x91 : 0x92,
18427 } else if (field ==
18428 NPHY_RfctrlIntc_override_EXT_LNA_PU) {
18429 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18430 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18437 : 0x92, mask, val);
18451 : 0x92, mask, val);
18460 mask = (0x1 << 11);
18464 PHY_CORE_0) ? 0x91 : 0x92,
18468 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18477 PHY_CORE_0) ? 0x91 : 0x92,
18480 } else if (field ==
18481 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
18482 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18483 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18490 : 0x92, mask, val);
18504 : 0x92, mask, val);
18513 mask = (0x1 << 11);
18517 PHY_CORE_0) ? 0x91 : 0x92,
18521 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18530 PHY_CORE_0) ? 0x91 : 0x92,
18539 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
18542 int gainctrl_loopidx;
18544 u16 m0m1, curr_m0m1;
18549 u16 phy_saveregs[4];
18551 u16 ampl_test = 250;
18553 bool phyhang_avoid_state = false;
18555 if (NREV_GE(pi->pubpi.phy_rev, 7))
18560 if (CHSPEC_IS40(pi->radio_chanspec))
18565 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18566 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18568 if (pi->phyhang_avoid)
18569 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18571 phyhang_avoid_state = pi->phyhang_avoid;
18572 pi->phyhang_avoid = false;
18574 phy_saveregs[0] = read_phy_reg(pi, 0x91);
18575 phy_saveregs[1] = read_phy_reg(pi, 0x92);
18576 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
18577 phy_saveregs[3] = read_phy_reg(pi, 0xec);
18578 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
18579 RADIO_MIMO_CORESEL_CORE1 |
18580 RADIO_MIMO_CORESEL_CORE2);
18583 wlc_phy_rfctrlintc_override_nphy(pi,
18584 NPHY_RfctrlIntc_override_TRSW,
18585 0x2, RADIO_MIMO_CORESEL_CORE1);
18586 wlc_phy_rfctrlintc_override_nphy(pi,
18587 NPHY_RfctrlIntc_override_TRSW,
18588 0x8, RADIO_MIMO_CORESEL_CORE2);
18590 wlc_phy_rfctrlintc_override_nphy(pi,
18591 NPHY_RfctrlIntc_override_TRSW,
18592 0x1, RADIO_MIMO_CORESEL_CORE1);
18593 wlc_phy_rfctrlintc_override_nphy(pi,
18594 NPHY_RfctrlIntc_override_TRSW,
18595 0x7, RADIO_MIMO_CORESEL_CORE2);
18598 orig_BBConfig = read_phy_reg(pi, 0x01);
18599 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
18601 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
18603 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18604 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
18606 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
18607 gainctrl_loopidx++) {
18608 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18611 if (core == PHY_CORE_0)
18612 curr_m0m1 = m0m1 & 0xff00;
18614 curr_m0m1 = m0m1 & 0x00ff;
18616 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
18617 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
18621 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18622 NPHY_CAL_TSSISAMPS);
18624 pi->nphy_bb_mult_save = 0;
18625 wlc_phy_stopplayback_nphy(pi);
18627 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
18629 txpwrindex -= stepsize * delta_power;
18630 if (txpwrindex < 0)
18632 else if (txpwrindex > 127)
18635 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18636 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
18637 (pi->srom_fem5g.extpagain == 3)) {
18638 if (txpwrindex < 30)
18642 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
18643 (pi->srom_fem2g.extpagain == 3)) {
18644 if (txpwrindex < 50)
18649 wlc_phy_txpwr_index_nphy(pi, (1 << core),
18650 (u8) txpwrindex, true);
18653 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
18659 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18661 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18664 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18665 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
18669 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18670 NPHY_CAL_TSSISAMPS);
18672 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
18676 pi->nphy_bb_mult_save = 0;
18677 wlc_phy_stopplayback_nphy(pi);
18681 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
18682 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
18684 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
18686 write_phy_reg(pi, 0x01, orig_BBConfig);
18688 write_phy_reg(pi, 0x91, phy_saveregs[0]);
18689 write_phy_reg(pi, 0x92, phy_saveregs[1]);
18690 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
18691 write_phy_reg(pi, 0xec, phy_saveregs[3]);
18693 pi->phyhang_avoid = phyhang_avoid_state;
18695 if (pi->phyhang_avoid)
18696 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18699 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
18703 u16 *txcal_radio_regs = NULL;
18705 if (pi->phyhang_avoid)
18706 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18708 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18710 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18711 &pi->calibration_cache.
18714 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18716 pi->calibration_cache.txcal_radio_regs_2G;
18717 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18719 pi->calibration_cache.txcal_radio_regs_2G[0] =
18721 RADIO_2056_TX_LOFT_FINE_I |
18723 pi->calibration_cache.txcal_radio_regs_2G[1] =
18725 RADIO_2056_TX_LOFT_FINE_Q |
18727 pi->calibration_cache.txcal_radio_regs_2G[2] =
18729 RADIO_2056_TX_LOFT_FINE_I |
18731 pi->calibration_cache.txcal_radio_regs_2G[3] =
18733 RADIO_2056_TX_LOFT_FINE_Q |
18736 pi->calibration_cache.txcal_radio_regs_2G[4] =
18738 RADIO_2056_TX_LOFT_COARSE_I |
18740 pi->calibration_cache.txcal_radio_regs_2G[5] =
18742 RADIO_2056_TX_LOFT_COARSE_Q |
18744 pi->calibration_cache.txcal_radio_regs_2G[6] =
18746 RADIO_2056_TX_LOFT_COARSE_I |
18748 pi->calibration_cache.txcal_radio_regs_2G[7] =
18750 RADIO_2056_TX_LOFT_COARSE_Q |
18753 pi->calibration_cache.txcal_radio_regs_2G[0] =
18754 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18755 pi->calibration_cache.txcal_radio_regs_2G[1] =
18756 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18757 pi->calibration_cache.txcal_radio_regs_2G[2] =
18758 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18759 pi->calibration_cache.txcal_radio_regs_2G[3] =
18760 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18763 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
18764 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18767 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18768 &pi->calibration_cache.
18771 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18773 pi->calibration_cache.txcal_radio_regs_5G;
18774 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18776 pi->calibration_cache.txcal_radio_regs_5G[0] =
18778 RADIO_2056_TX_LOFT_FINE_I |
18780 pi->calibration_cache.txcal_radio_regs_5G[1] =
18782 RADIO_2056_TX_LOFT_FINE_Q |
18784 pi->calibration_cache.txcal_radio_regs_5G[2] =
18786 RADIO_2056_TX_LOFT_FINE_I |
18788 pi->calibration_cache.txcal_radio_regs_5G[3] =
18790 RADIO_2056_TX_LOFT_FINE_Q |
18793 pi->calibration_cache.txcal_radio_regs_5G[4] =
18795 RADIO_2056_TX_LOFT_COARSE_I |
18797 pi->calibration_cache.txcal_radio_regs_5G[5] =
18799 RADIO_2056_TX_LOFT_COARSE_Q |
18801 pi->calibration_cache.txcal_radio_regs_5G[6] =
18803 RADIO_2056_TX_LOFT_COARSE_I |
18805 pi->calibration_cache.txcal_radio_regs_5G[7] =
18807 RADIO_2056_TX_LOFT_COARSE_Q |
18810 pi->calibration_cache.txcal_radio_regs_5G[0] =
18811 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18812 pi->calibration_cache.txcal_radio_regs_5G[1] =
18813 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18814 pi->calibration_cache.txcal_radio_regs_5G[2] =
18815 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18816 pi->calibration_cache.txcal_radio_regs_5G[3] =
18817 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18820 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
18821 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18823 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18824 for (coreNum = 0; coreNum <= 1; coreNum++) {
18826 txcal_radio_regs[2 * coreNum] =
18827 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18829 txcal_radio_regs[2 * coreNum + 1] =
18830 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18833 txcal_radio_regs[2 * coreNum + 4] =
18834 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18836 txcal_radio_regs[2 * coreNum + 5] =
18837 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18842 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
18844 if (pi->phyhang_avoid)
18845 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18848 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
18850 struct nphy_iq_comp tx_comp;
18852 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, &tx_comp);
18854 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
18855 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
18856 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
18857 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
18860 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
18863 u16 txcal_coeffs_bphy[4];
18866 u16 *txcal_radio_regs = NULL;
18868 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18869 if (pi->nphy_iqcal_chanspec_2G == 0)
18872 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18873 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
18875 if (pi->nphy_iqcal_chanspec_5G == 0)
18878 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18879 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
18882 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16, tbl_ptr);
18884 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18885 txcal_coeffs_bphy[0] = tbl_ptr[0];
18886 txcal_coeffs_bphy[1] = tbl_ptr[1];
18887 txcal_coeffs_bphy[2] = tbl_ptr[2];
18888 txcal_coeffs_bphy[3] = tbl_ptr[3];
18890 txcal_coeffs_bphy[0] = 0;
18891 txcal_coeffs_bphy[1] = 0;
18892 txcal_coeffs_bphy[2] = 0;
18893 txcal_coeffs_bphy[3] = 0;
18896 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
18897 txcal_coeffs_bphy);
18899 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
18901 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
18903 if (NREV_LT(pi->pubpi.phy_rev, 2))
18904 wlc_phy_tx_iq_war_nphy(pi);
18906 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18907 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18909 pi->calibration_cache.txcal_radio_regs_2G;
18910 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18912 write_radio_reg(pi,
18913 RADIO_2056_TX_LOFT_FINE_I |
18915 pi->calibration_cache.
18916 txcal_radio_regs_2G[0]);
18917 write_radio_reg(pi,
18918 RADIO_2056_TX_LOFT_FINE_Q |
18920 pi->calibration_cache.
18921 txcal_radio_regs_2G[1]);
18922 write_radio_reg(pi,
18923 RADIO_2056_TX_LOFT_FINE_I |
18925 pi->calibration_cache.
18926 txcal_radio_regs_2G[2]);
18927 write_radio_reg(pi,
18928 RADIO_2056_TX_LOFT_FINE_Q |
18930 pi->calibration_cache.
18931 txcal_radio_regs_2G[3]);
18933 write_radio_reg(pi,
18934 RADIO_2056_TX_LOFT_COARSE_I |
18936 pi->calibration_cache.
18937 txcal_radio_regs_2G[4]);
18938 write_radio_reg(pi,
18939 RADIO_2056_TX_LOFT_COARSE_Q |
18941 pi->calibration_cache.
18942 txcal_radio_regs_2G[5]);
18943 write_radio_reg(pi,
18944 RADIO_2056_TX_LOFT_COARSE_I |
18946 pi->calibration_cache.
18947 txcal_radio_regs_2G[6]);
18948 write_radio_reg(pi,
18949 RADIO_2056_TX_LOFT_COARSE_Q |
18951 pi->calibration_cache.
18952 txcal_radio_regs_2G[7]);
18954 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18955 pi->calibration_cache.
18956 txcal_radio_regs_2G[0]);
18957 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
18958 pi->calibration_cache.
18959 txcal_radio_regs_2G[1]);
18960 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
18961 pi->calibration_cache.
18962 txcal_radio_regs_2G[2]);
18963 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
18964 pi->calibration_cache.
18965 txcal_radio_regs_2G[3]);
18968 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
18969 &pi->calibration_cache.
18972 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18974 pi->calibration_cache.txcal_radio_regs_5G;
18975 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18977 write_radio_reg(pi,
18978 RADIO_2056_TX_LOFT_FINE_I |
18980 pi->calibration_cache.
18981 txcal_radio_regs_5G[0]);
18982 write_radio_reg(pi,
18983 RADIO_2056_TX_LOFT_FINE_Q |
18985 pi->calibration_cache.
18986 txcal_radio_regs_5G[1]);
18987 write_radio_reg(pi,
18988 RADIO_2056_TX_LOFT_FINE_I |
18990 pi->calibration_cache.
18991 txcal_radio_regs_5G[2]);
18992 write_radio_reg(pi,
18993 RADIO_2056_TX_LOFT_FINE_Q |
18995 pi->calibration_cache.
18996 txcal_radio_regs_5G[3]);
18998 write_radio_reg(pi,
18999 RADIO_2056_TX_LOFT_COARSE_I |
19001 pi->calibration_cache.
19002 txcal_radio_regs_5G[4]);
19003 write_radio_reg(pi,
19004 RADIO_2056_TX_LOFT_COARSE_Q |
19006 pi->calibration_cache.
19007 txcal_radio_regs_5G[5]);
19008 write_radio_reg(pi,
19009 RADIO_2056_TX_LOFT_COARSE_I |
19011 pi->calibration_cache.
19012 txcal_radio_regs_5G[6]);
19013 write_radio_reg(pi,
19014 RADIO_2056_TX_LOFT_COARSE_Q |
19016 pi->calibration_cache.
19017 txcal_radio_regs_5G[7]);
19019 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19020 pi->calibration_cache.
19021 txcal_radio_regs_5G[0]);
19022 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19023 pi->calibration_cache.
19024 txcal_radio_regs_5G[1]);
19025 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19026 pi->calibration_cache.
19027 txcal_radio_regs_5G[2]);
19028 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19029 pi->calibration_cache.
19030 txcal_radio_regs_5G[3]);
19033 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19034 &pi->calibration_cache.
19038 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19039 for (coreNum = 0; coreNum <= 1; coreNum++) {
19041 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19043 txcal_radio_regs[2 * coreNum]);
19044 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19046 txcal_radio_regs[2 * coreNum + 1]);
19048 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19050 txcal_radio_regs[2 * coreNum + 4]);
19051 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19053 txcal_radio_regs[2 * coreNum + 5]);
19058 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
19062 u32 iqcomp, locomp, curr_locomp;
19063 s8 locomp_i, locomp_q;
19064 s8 curr_locomp_i, curr_locomp_q;
19065 u32 tbl_id, tbl_len, tbl_offset;
19068 if (pi->phyhang_avoid)
19069 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19071 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
19075 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
19076 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
19079 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
19080 (iqloCalbuf[1] & 0x3ff)
19081 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
19082 (iqloCalbuf[3] & 0x3ff);
19084 for (idx = 0; idx < tbl_len; idx++)
19085 regval[idx] = iqcomp;
19086 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
19091 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
19092 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
19095 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
19096 locomp_i = (s8) ((locomp >> 8) & 0xff);
19097 locomp_q = (s8) ((locomp) & 0xff);
19098 for (idx = 0; idx < tbl_len; idx++) {
19099 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19100 curr_locomp_i = locomp_i;
19101 curr_locomp_q = locomp_q;
19103 curr_locomp_i = (s8) ((locomp_i *
19104 nphy_tpc_loscale[idx] +
19108 nphy_tpc_loscale[idx] +
19111 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
19112 curr_locomp |= (u32) (curr_locomp_q & 0xff);
19113 regval[idx] = curr_locomp;
19115 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
19119 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19121 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
19122 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
19125 if (pi->phyhang_avoid)
19126 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19129 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
19133 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19134 if (CHSPEC_IS40(pi->radio_chanspec))
19140 if (CHSPEC_IS40(pi->radio_chanspec))
19146 write_phy_reg(pi, 0xe8,
19149 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
19153 if (CHSPEC_IS40(pi->radio_chanspec))
19158 write_phy_reg(pi, 0xe9,
19161 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
19167 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
19169 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19170 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19171 CHSPEC_IS40(pi->radio_chanspec)) {
19172 if (!pi->nphy_anarxlpf_adjusted) {
19173 write_radio_reg(pi,
19174 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
19176 ((pi->nphy_rccal_value +
19177 reduction_factr) | 0x80));
19179 pi->nphy_anarxlpf_adjusted = true;
19182 if (pi->nphy_anarxlpf_adjusted) {
19183 write_radio_reg(pi,
19184 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
19186 (pi->nphy_rccal_value | 0x80));
19188 pi->nphy_anarxlpf_adjusted = false;
19195 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
19196 int *tone_id_buf, u32 *noise_var_buf)
19202 CHSPEC_IS40(pi->radio_chanspec) ?
19203 NPHY_NOISEVAR_TBLLEN40 : NPHY_NOISEVAR_TBLLEN20;
19205 if (pi->nphy_noisevars_adjusted) {
19206 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
19207 tone_id = pi->nphy_saved_noisevars.tone_id[i];
19208 offset = (tone_id >= 0) ?
19210 2) + 1) : (tbllen + (tone_id * 2) + 1);
19211 wlc_phy_table_write_nphy(
19212 pi, NPHY_TBL_ID_NOISEVAR, 1,
19214 &pi->nphy_saved_noisevars.min_noise_vars[i]);
19217 pi->nphy_saved_noisevars.bufcount = 0;
19218 pi->nphy_noisevars_adjusted = false;
19221 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
19222 pi->nphy_saved_noisevars.bufcount = 0;
19224 for (i = 0; i < ntones; i++) {
19225 tone_id = tone_id_buf[i];
19226 offset = (tone_id >= 0) ?
19227 ((tone_id * 2) + 1) :
19228 (tbllen + (tone_id * 2) + 1);
19229 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
19230 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19232 &pi->nphy_saved_noisevars.
19233 min_noise_vars[i]);
19234 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19235 offset, 32, &noise_var_buf[i]);
19236 pi->nphy_saved_noisevars.bufcount++;
19239 pi->nphy_noisevars_adjusted = true;
19243 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
19247 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19248 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19249 CHSPEC_IS40(pi->radio_chanspec)) {
19250 if (!pi->nphy_crsminpwr_adjusted) {
19251 regval = read_phy_reg(pi, 0x27d);
19252 pi->nphy_crsminpwr[0] = regval & 0xff;
19254 regval |= (u16) minpwr;
19255 write_phy_reg(pi, 0x27d, regval);
19257 regval = read_phy_reg(pi, 0x280);
19258 pi->nphy_crsminpwr[1] = regval & 0xff;
19260 regval |= (u16) minpwr;
19261 write_phy_reg(pi, 0x280, regval);
19263 regval = read_phy_reg(pi, 0x283);
19264 pi->nphy_crsminpwr[2] = regval & 0xff;
19266 regval |= (u16) minpwr;
19267 write_phy_reg(pi, 0x283, regval);
19269 pi->nphy_crsminpwr_adjusted = true;
19272 if (pi->nphy_crsminpwr_adjusted) {
19273 regval = read_phy_reg(pi, 0x27d);
19275 regval |= pi->nphy_crsminpwr[0];
19276 write_phy_reg(pi, 0x27d, regval);
19278 regval = read_phy_reg(pi, 0x280);
19280 regval |= pi->nphy_crsminpwr[1];
19281 write_phy_reg(pi, 0x280, regval);
19283 regval = read_phy_reg(pi, 0x283);
19285 regval |= pi->nphy_crsminpwr[2];
19286 write_phy_reg(pi, 0x283, regval);
19288 pi->nphy_crsminpwr_adjusted = false;
19294 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
19296 u16 cur_channel = 0;
19297 int nphy_adj_tone_id_buf[] = { 57, 58 };
19298 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
19299 bool isAdjustNoiseVar = false;
19300 uint numTonesAdjust = 0;
19303 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19304 if (pi->phyhang_avoid)
19305 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19307 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
19309 if (pi->nphy_gband_spurwar_en) {
19311 wlc_phy_adjust_rx_analpfbw_nphy(
19313 NPHY_ANARXLPFBW_REDUCTIONFACT);
19315 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19316 if ((cur_channel == 11)
19317 && CHSPEC_IS40(pi->radio_chanspec))
19318 wlc_phy_adjust_min_noisevar_nphy(
19320 nphy_adj_tone_id_buf,
19321 nphy_adj_noise_var_buf);
19323 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
19328 wlc_phy_adjust_crsminpwr_nphy(pi,
19329 NPHY_ADJUSTED_MINCRSPOWER);
19332 if ((pi->nphy_gband_spurwar2_en)
19333 && CHSPEC_IS2G(pi->radio_chanspec)) {
19335 if (CHSPEC_IS40(pi->radio_chanspec)) {
19336 switch (cur_channel) {
19338 nphy_adj_tone_id_buf[0] = 57;
19339 nphy_adj_tone_id_buf[1] = 58;
19340 nphy_adj_noise_var_buf[0] = 0x22f;
19341 nphy_adj_noise_var_buf[1] = 0x25f;
19342 isAdjustNoiseVar = true;
19345 nphy_adj_tone_id_buf[0] = 41;
19346 nphy_adj_tone_id_buf[1] = 42;
19347 nphy_adj_noise_var_buf[0] = 0x22f;
19348 nphy_adj_noise_var_buf[1] = 0x25f;
19349 isAdjustNoiseVar = true;
19352 nphy_adj_tone_id_buf[0] = 25;
19353 nphy_adj_tone_id_buf[1] = 26;
19354 nphy_adj_noise_var_buf[0] = 0x24f;
19355 nphy_adj_noise_var_buf[1] = 0x25f;
19356 isAdjustNoiseVar = true;
19359 nphy_adj_tone_id_buf[0] = 9;
19360 nphy_adj_tone_id_buf[1] = 10;
19361 nphy_adj_noise_var_buf[0] = 0x22f;
19362 nphy_adj_noise_var_buf[1] = 0x24f;
19363 isAdjustNoiseVar = true;
19366 nphy_adj_tone_id_buf[0] = 121;
19367 nphy_adj_tone_id_buf[1] = 122;
19368 nphy_adj_noise_var_buf[0] = 0x18f;
19369 nphy_adj_noise_var_buf[1] = 0x24f;
19370 isAdjustNoiseVar = true;
19373 nphy_adj_tone_id_buf[0] = 105;
19374 nphy_adj_tone_id_buf[1] = 106;
19375 nphy_adj_noise_var_buf[0] = 0x22f;
19376 nphy_adj_noise_var_buf[1] = 0x25f;
19377 isAdjustNoiseVar = true;
19380 nphy_adj_tone_id_buf[0] = 89;
19381 nphy_adj_tone_id_buf[1] = 90;
19382 nphy_adj_noise_var_buf[0] = 0x22f;
19383 nphy_adj_noise_var_buf[1] = 0x24f;
19384 isAdjustNoiseVar = true;
19387 nphy_adj_tone_id_buf[0] = 73;
19388 nphy_adj_tone_id_buf[1] = 74;
19389 nphy_adj_noise_var_buf[0] = 0x22f;
19390 nphy_adj_noise_var_buf[1] = 0x24f;
19391 isAdjustNoiseVar = true;
19394 isAdjustNoiseVar = false;
19399 if (isAdjustNoiseVar) {
19400 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
19401 sizeof(nphy_adj_tone_id_buf[0]);
19403 wlc_phy_adjust_min_noisevar_nphy(
19406 nphy_adj_tone_id_buf,
19407 nphy_adj_noise_var_buf);
19412 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19417 if ((pi->nphy_aband_spurwar_en) &&
19418 (CHSPEC_IS5G(pi->radio_chanspec))) {
19419 switch (cur_channel) {
19421 nphy_adj_tone_id_buf[0] = 32;
19422 nphy_adj_noise_var_buf[0] = 0x25f;
19427 nphy_adj_tone_id_buf[0] = 0;
19428 nphy_adj_noise_var_buf[0] = 0x0;
19431 nphy_adj_tone_id_buf[0] = 32;
19432 nphy_adj_noise_var_buf[0] = 0x21f;
19435 nphy_adj_tone_id_buf[0] = 16;
19436 nphy_adj_noise_var_buf[0] = 0x23f;
19440 nphy_adj_tone_id_buf[0] = 48;
19441 nphy_adj_noise_var_buf[0] = 0x23f;
19444 nphy_adj_tone_id_buf[0] = 0;
19445 nphy_adj_noise_var_buf[0] = 0x0;
19449 if (nphy_adj_tone_id_buf[0]
19450 && nphy_adj_noise_var_buf[0])
19451 wlc_phy_adjust_min_noisevar_nphy(
19453 nphy_adj_tone_id_buf,
19454 nphy_adj_noise_var_buf);
19456 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19460 if (pi->phyhang_avoid)
19461 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19465 void wlc_phy_init_nphy(struct brcms_phy *pi)
19469 struct nphy_txgains target_gain;
19470 u8 tx_pwr_ctrl_state;
19471 bool do_nphy_cal = false;
19473 uint origidx, intr_val;
19474 struct d11regs __iomem *regs;
19475 u32 d11_clk_ctl_st;
19476 bool do_rssi_cal = false;
19480 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN))
19481 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
19483 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
19484 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
19485 (pi->sh->chippkg == BCM4718_PKG_ID))) {
19486 if ((pi->sh->boardflags & BFL_EXTLNA) &&
19487 (CHSPEC_IS2G(pi->radio_chanspec)))
19488 ai_corereg(pi->sh->sih, SI_CC_IDX,
19489 offsetof(struct chipcregs, chipcontrol),
19493 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
19494 CHSPEC_IS40(pi->radio_chanspec)) {
19496 regs = (struct d11regs __iomem *)
19497 ai_switch_core(pi->sh->sih,
19498 D11_CORE_ID, &origidx,
19500 d11_clk_ctl_st = R_REG(®s->clk_ctl_st);
19501 AND_REG(®s->clk_ctl_st,
19502 ~(CCS_FORCEHT | CCS_HTAREQ));
19504 W_REG(®s->clk_ctl_st, d11_clk_ctl_st);
19506 ai_restore_core(pi->sh->sih, origidx, intr_val);
19509 pi->use_int_tx_iqlo_cal_nphy =
19511 (NREV_GE(pi->pubpi.phy_rev, 7) ||
19512 (NREV_GE(pi->pubpi.phy_rev, 5)
19513 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
19515 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
19517 pi->nphy_deaf_count = 0;
19519 wlc_phy_tbl_init_nphy(pi);
19521 pi->nphy_crsminpwr_adjusted = false;
19522 pi->nphy_noisevars_adjusted = false;
19524 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19525 write_phy_reg(pi, 0xe7, 0);
19526 write_phy_reg(pi, 0xec, 0);
19527 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19528 write_phy_reg(pi, 0x342, 0);
19529 write_phy_reg(pi, 0x343, 0);
19530 write_phy_reg(pi, 0x346, 0);
19531 write_phy_reg(pi, 0x347, 0);
19533 write_phy_reg(pi, 0xe5, 0);
19534 write_phy_reg(pi, 0xe6, 0);
19536 write_phy_reg(pi, 0xec, 0);
19539 write_phy_reg(pi, 0x91, 0);
19540 write_phy_reg(pi, 0x92, 0);
19541 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
19542 write_phy_reg(pi, 0x93, 0);
19543 write_phy_reg(pi, 0x94, 0);
19546 and_phy_reg(pi, 0xa1, ~3);
19548 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19549 write_phy_reg(pi, 0x8f, 0);
19550 write_phy_reg(pi, 0xa5, 0);
19552 write_phy_reg(pi, 0xa5, 0);
19555 if (NREV_IS(pi->pubpi.phy_rev, 2))
19556 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
19557 else if (NREV_LT(pi->pubpi.phy_rev, 2))
19558 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
19560 write_phy_reg(pi, 0x203, 32);
19561 write_phy_reg(pi, 0x201, 32);
19563 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
19564 write_phy_reg(pi, 0x20d, 160);
19566 write_phy_reg(pi, 0x20d, 184);
19568 write_phy_reg(pi, 0x13a, 200);
19570 write_phy_reg(pi, 0x70, 80);
19572 write_phy_reg(pi, 0x1ff, 48);
19574 if (NREV_LT(pi->pubpi.phy_rev, 8))
19575 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
19577 wlc_phy_stf_chain_upd_nphy(pi);
19579 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19580 write_phy_reg(pi, 0x180, 0xaa8);
19581 write_phy_reg(pi, 0x181, 0x9a4);
19585 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
19587 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
19588 0x29b, (0x1 << 0), (1) << 0);
19590 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
19591 0x29c, (0x1ff << 7),
19592 (pi->nphy_papd_epsilon_offset[core]) << 7);
19596 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
19597 } else if (NREV_GE(pi->pubpi.phy_rev, 5)) {
19598 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
19601 wlc_phy_workarounds_nphy(pi);
19603 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19605 val = read_phy_reg(pi, 0x01);
19606 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19607 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19608 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19610 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
19612 wlc_phy_pa_override_nphy(pi, OFF);
19613 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
19614 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19615 wlc_phy_pa_override_nphy(pi, ON);
19617 wlc_phy_classifier_nphy(pi, 0, 0);
19618 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
19620 if (CHSPEC_IS2G(pi->radio_chanspec))
19621 wlc_phy_bphy_init_nphy(pi);
19623 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
19624 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
19626 wlc_phy_txpwr_fixpower_nphy(pi);
19628 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
19630 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
19632 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19633 u32 *tx_pwrctrl_tbl = NULL;
19640 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
19642 if (CHSPEC_IS5G(pi->radio_chanspec)) {
19643 if (NREV_IS(pi->pubpi.phy_rev, 3))
19645 nphy_tpc_5GHz_txgain_rev3;
19646 else if (NREV_IS(pi->pubpi.phy_rev, 4))
19648 (pi->srom_fem5g.extpagain ==
19650 nphy_tpc_5GHz_txgain_HiPwrEPA :
19651 nphy_tpc_5GHz_txgain_rev4;
19654 nphy_tpc_5GHz_txgain_rev5;
19656 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19657 if (pi->pubpi.radiorev == 5)
19659 nphy_tpc_txgain_epa_2057rev5;
19660 else if (pi->pubpi.radiorev == 3)
19662 nphy_tpc_txgain_epa_2057rev3;
19664 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
19665 (pi->srom_fem2g.extpagain == 3))
19667 nphy_tpc_txgain_HiPwrEPA;
19670 nphy_tpc_txgain_rev3;
19675 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19676 192, 32, tx_pwrctrl_tbl);
19677 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19678 192, 32, tx_pwrctrl_tbl);
19680 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
19682 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19684 for (idx = 0; idx < 128; idx++) {
19685 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19686 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
19687 rfpwr_offset = get_rf_pwr_offset(pi, pga_gn,
19689 wlc_phy_table_write_nphy(
19691 NPHY_TBL_ID_CORE1TXPWRCTL,
19694 wlc_phy_table_write_nphy(
19696 NPHY_TBL_ID_CORE2TXPWRCTL,
19702 for (idx = 0; idx < 128; idx++) {
19703 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19704 if (CHSPEC_IS2G(pi->radio_chanspec))
19705 rfpwr_offset = (s16)
19706 nphy_papd_pga_gain_delta_ipa_2g
19709 rfpwr_offset = (s16)
19710 nphy_papd_pga_gain_delta_ipa_5g
19713 wlc_phy_table_write_nphy(
19715 NPHY_TBL_ID_CORE1TXPWRCTL,
19718 wlc_phy_table_write_nphy(
19720 NPHY_TBL_ID_CORE2TXPWRCTL,
19728 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19729 192, 32, nphy_tpc_txgain);
19730 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19731 192, 32, nphy_tpc_txgain);
19734 if (pi->sh->phyrxchain != 0x3)
19735 wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub *) pi,
19736 pi->sh->phyrxchain);
19738 if (PHY_PERICAL_MPHASE_PENDING(pi))
19739 wlc_phy_cal_perical_mphase_restart(pi);
19741 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19742 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19743 (pi->nphy_rssical_chanspec_2G == 0) :
19744 (pi->nphy_rssical_chanspec_5G == 0);
19747 wlc_phy_rssi_cal_nphy(pi);
19749 wlc_phy_restore_rssical_nphy(pi);
19751 wlc_phy_rssi_cal_nphy(pi);
19754 if (!SCAN_RM_IN_PROGRESS(pi))
19755 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19756 (pi->nphy_iqcal_chanspec_2G == 0) :
19757 (pi->nphy_iqcal_chanspec_5G == 0);
19759 if (!pi->do_initcal)
19760 do_nphy_cal = false;
19764 target_gain = wlc_phy_get_tx_gain_nphy(pi);
19766 if (pi->antsel_type == ANTSEL_2x3)
19767 wlc_phy_antsel_init((struct brcms_phy_pub *) pi,
19770 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
19771 wlc_phy_rssi_cal_nphy(pi);
19773 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19774 pi->nphy_cal_orig_pwr_idx[0] =
19775 pi->nphy_txpwrindex[PHY_CORE_0]
19778 pi->nphy_cal_orig_pwr_idx[1] =
19779 pi->nphy_txpwrindex[PHY_CORE_1]
19783 wlc_phy_precal_txgain_nphy(pi);
19785 wlc_phy_get_tx_gain_nphy(pi);
19788 if (wlc_phy_cal_txiqlo_nphy
19789 (pi, target_gain, true,
19791 if (wlc_phy_cal_rxiq_nphy
19792 (pi, target_gain, 2,
19794 wlc_phy_savecal_nphy(pi);
19797 } else if (pi->mphase_cal_phase_id ==
19798 MPHASE_CAL_STATE_IDLE) {
19799 wlc_phy_cal_perical((struct brcms_phy_pub *) pi,
19800 PHY_PERICAL_PHYINIT);
19803 wlc_phy_restorecal_nphy(pi);
19806 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
19808 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
19810 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
19812 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
19814 write_phy_reg(pi, 0x70, 50);
19816 wlc_phy_txlpfbw_nphy(pi);
19818 wlc_phy_spurwar_nphy(pi);
19822 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
19826 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19828 val = read_phy_reg(pi, 0x01);
19829 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19831 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19833 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19835 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19838 void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
19840 u16 rfctrlintc_override_val;
19844 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
19845 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
19847 if (NREV_GE(pi->pubpi.phy_rev, 7))
19848 rfctrlintc_override_val = 0x1480;
19849 else if (NREV_GE(pi->pubpi.phy_rev, 3))
19850 rfctrlintc_override_val =
19851 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
19853 rfctrlintc_override_val =
19854 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
19856 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
19857 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
19859 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
19860 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
19865 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy *pi)
19869 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
19870 bool CoreActv_override = false;
19872 if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN0) {
19873 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
19874 CoreActv_override = true;
19876 if (NREV_LE(pi->pubpi.phy_rev, 2))
19877 and_phy_reg(pi, 0xa0, ~0x20);
19878 } else if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN1) {
19879 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
19880 CoreActv_override = true;
19882 if (NREV_LE(pi->pubpi.phy_rev, 2))
19883 or_phy_reg(pi, 0xa0, 0x20);
19886 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
19888 if (CoreActv_override) {
19889 pi->nphy_perical = PHY_PERICAL_DISABLE;
19890 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
19892 pi->nphy_perical = PHY_PERICAL_MPHASE;
19893 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
19897 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
19902 struct brcms_phy *pi = (struct brcms_phy *) pih;
19906 pi->sh->phyrxchain = rxcore_bitmask;
19911 suspend = (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
19913 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19915 if (pi->phyhang_avoid)
19916 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19918 regval = read_phy_reg(pi, 0xa2);
19919 regval &= ~(0xf << 4);
19920 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
19921 write_phy_reg(pi, 0xa2, regval);
19923 if ((rxcore_bitmask & 0x3) != 0x3) {
19925 write_phy_reg(pi, 0x20e, 1);
19927 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19928 if (pi->rx2tx_biasentry == -1) {
19929 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
19930 ARRAY_SIZE(tbl_buf), 80,
19933 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
19935 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
19936 pi->rx2tx_biasentry = (u8) i;
19938 NPHY_REV3_RFSEQ_CMD_NOP;
19939 wlc_phy_table_write_nphy(
19946 } else if (tbl_buf[i] ==
19947 NPHY_REV3_RFSEQ_CMD_END)
19954 write_phy_reg(pi, 0x20e, 30);
19956 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19957 if (pi->rx2tx_biasentry != -1) {
19958 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
19959 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
19960 1, pi->rx2tx_biasentry,
19962 pi->rx2tx_biasentry = -1;
19967 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19969 if (pi->phyhang_avoid)
19970 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19973 wlapi_enable_mac(pi->sh->physhim);
19976 u8 wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub *pih)
19978 u16 regval, rxen_bits;
19979 struct brcms_phy *pi = (struct brcms_phy *) pih;
19981 regval = read_phy_reg(pi, 0xa2);
19982 rxen_bits = (regval >> 4) & 0xf;
19984 return (u8) rxen_bits;
19987 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy *pi)
19989 return PHY_IPA(pi);
19992 void wlc_phy_cal_init_nphy(struct brcms_phy *pi)
19996 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
19999 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20000 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
20002 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
20003 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
20007 static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
20009 struct radio_20xx_regs *regs_2057_ptr = NULL;
20011 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
20012 regs_2057_ptr = regs_2057_rev4;
20013 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
20014 || NREV_IS(pi->pubpi.phy_rev, 9)) {
20015 switch (pi->pubpi.radiorev) {
20018 if (pi->pubpi.radiover == 0x0)
20019 regs_2057_ptr = regs_2057_rev5;
20020 else if (pi->pubpi.radiover == 0x1)
20021 regs_2057_ptr = regs_2057_rev5v1;
20027 regs_2057_ptr = regs_2057_rev7;
20032 regs_2057_ptr = regs_2057_rev8;
20040 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
20043 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
20048 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20050 if (pi->pubpi.radiorev == 5) {
20052 and_phy_reg(pi, 0x342, ~(0x1 << 1));
20056 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
20057 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
20060 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
20064 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
20066 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20067 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
20068 if (rcal_reg & 0x1)
20074 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
20075 "HW error: radio calib2"))
20078 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
20080 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
20082 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
20083 if (pi->pubpi.radiorev == 5) {
20085 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
20086 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
20090 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
20092 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
20094 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
20098 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20104 RADIO_2056_SYN_PLL_MAST2 |
20106 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
20110 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20114 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20117 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20118 rcal_reg = read_radio_reg(
20120 RADIO_2056_SYN_RCAL_CODE_OUT |
20122 if (rcal_reg & 0x80)
20128 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
20129 "HW error: radio calib3"))
20132 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20137 RADIO_2056_SYN_RCAL_CODE_OUT |
20140 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20143 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
20146 return rcal_reg & 0x1f;
20148 return rcal_reg & 0x3e;
20151 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
20155 bool chip43226_6362A0;
20157 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
20158 || (pi->pubpi.radiorev == 4)
20159 || (pi->pubpi.radiorev == 6));
20162 if (chip43226_6362A0) {
20163 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
20164 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
20166 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
20168 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
20170 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20171 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20173 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20174 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20175 if (rccal_valid & 0x2)
20181 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20184 if (chip43226_6362A0) {
20185 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
20186 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20188 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
20190 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
20192 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20193 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20195 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20196 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20197 if (rccal_valid & 0x2)
20203 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20206 if (chip43226_6362A0) {
20207 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
20209 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
20210 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20212 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
20213 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20214 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
20216 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20218 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20219 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20220 if (rccal_valid & 0x2)
20226 if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
20229 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20231 return rccal_valid;
20234 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
20237 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
20239 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
20240 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
20242 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
20243 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
20245 if (pi->phy_init_por) {
20246 wlc_phy_radio205x_rcal(pi);
20247 wlc_phy_radio2057_rccal(pi);
20250 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
20253 static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
20255 const struct radio_regs *regs_SYN_2056_ptr = NULL;
20256 const struct radio_regs *regs_TX_2056_ptr = NULL;
20257 const struct radio_regs *regs_RX_2056_ptr = NULL;
20259 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20260 regs_SYN_2056_ptr = regs_SYN_2056;
20261 regs_TX_2056_ptr = regs_TX_2056;
20262 regs_RX_2056_ptr = regs_RX_2056;
20263 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20264 regs_SYN_2056_ptr = regs_SYN_2056_A1;
20265 regs_TX_2056_ptr = regs_TX_2056_A1;
20266 regs_RX_2056_ptr = regs_RX_2056_A1;
20268 switch (pi->pubpi.radiorev) {
20270 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20271 regs_TX_2056_ptr = regs_TX_2056_rev5;
20272 regs_RX_2056_ptr = regs_RX_2056_rev5;
20276 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20277 regs_TX_2056_ptr = regs_TX_2056_rev6;
20278 regs_RX_2056_ptr = regs_RX_2056_rev6;
20283 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20284 regs_TX_2056_ptr = regs_TX_2056_rev7;
20285 regs_RX_2056_ptr = regs_RX_2056_rev7;
20289 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20290 regs_TX_2056_ptr = regs_TX_2056_rev8;
20291 regs_RX_2056_ptr = regs_RX_2056_rev8;
20295 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20296 regs_TX_2056_ptr = regs_TX_2056_rev11;
20297 regs_RX_2056_ptr = regs_RX_2056_rev11;
20305 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
20307 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
20309 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
20311 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
20313 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
20316 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
20318 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
20320 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
20321 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
20323 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
20325 if ((pi->sh->boardflags2 & BFL2_LEGACY)
20326 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN))
20327 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
20329 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
20331 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
20333 if (pi->phy_init_por)
20334 wlc_phy_radio205x_rcal(pi);
20337 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
20340 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
20341 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
20343 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
20346 static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
20348 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
20351 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
20354 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
20355 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
20357 if (((pi->sh->sromrev >= 4)
20358 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
20359 || ((pi->sh->sromrev < 4))) {
20360 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
20361 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
20364 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
20365 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
20367 and_radio_reg(pi, RADIO_2055_CAL_MISC,
20368 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
20370 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
20372 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
20376 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
20378 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20379 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
20381 if (WARN((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20382 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
20383 "HW error: radio calibration1\n"))
20386 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
20387 ~(RADIO_2055_CAL_LPO_ENABLE));
20389 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi, pi->radio_chanspec);
20391 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
20392 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
20394 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
20395 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
20397 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
20398 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20399 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
20400 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20401 if (pi->nphy_gain_boost) {
20402 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20403 ~(RADIO_2055_GAINBST_DISABLE));
20404 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20405 ~(RADIO_2055_GAINBST_DISABLE));
20407 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20408 RADIO_2055_GAINBST_DISABLE);
20409 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20410 RADIO_2055_GAINBST_DISABLE);
20416 void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
20419 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20420 if (!pi->radio_is_on) {
20421 wlc_phy_radio_preinit_205x(pi);
20422 wlc_phy_radio_init_2057(pi);
20423 wlc_phy_radio_postinit_2057(pi);
20426 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20427 pi->radio_chanspec);
20428 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20429 wlc_phy_radio_preinit_205x(pi);
20430 wlc_phy_radio_init_2056(pi);
20431 wlc_phy_radio_postinit_2056(pi);
20433 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20434 pi->radio_chanspec);
20436 wlc_phy_radio_preinit_2055(pi);
20437 wlc_phy_radio_init_2055(pi);
20438 wlc_phy_radio_postinit_2055(pi);
20441 pi->radio_is_on = true;
20445 if (NREV_GE(pi->pubpi.phy_rev, 3)
20446 && NREV_LT(pi->pubpi.phy_rev, 7)) {
20447 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20448 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
20450 write_radio_reg(pi,
20451 RADIO_2056_TX_PADA_BOOST_TUNE |
20452 RADIO_2056_TX0, 0);
20453 write_radio_reg(pi,
20454 RADIO_2056_TX_PADG_BOOST_TUNE |
20455 RADIO_2056_TX0, 0);
20456 write_radio_reg(pi,
20457 RADIO_2056_TX_PGAA_BOOST_TUNE |
20458 RADIO_2056_TX0, 0);
20459 write_radio_reg(pi,
20460 RADIO_2056_TX_PGAG_BOOST_TUNE |
20461 RADIO_2056_TX0, 0);
20463 RADIO_2056_TX_MIXA_BOOST_TUNE |
20464 RADIO_2056_TX0, 0xf0, 0);
20465 write_radio_reg(pi,
20466 RADIO_2056_TX_MIXG_BOOST_TUNE |
20467 RADIO_2056_TX0, 0);
20469 write_radio_reg(pi,
20470 RADIO_2056_TX_PADA_BOOST_TUNE |
20471 RADIO_2056_TX1, 0);
20472 write_radio_reg(pi,
20473 RADIO_2056_TX_PADG_BOOST_TUNE |
20474 RADIO_2056_TX1, 0);
20475 write_radio_reg(pi,
20476 RADIO_2056_TX_PGAA_BOOST_TUNE |
20477 RADIO_2056_TX1, 0);
20478 write_radio_reg(pi,
20479 RADIO_2056_TX_PGAG_BOOST_TUNE |
20480 RADIO_2056_TX1, 0);
20482 RADIO_2056_TX_MIXA_BOOST_TUNE |
20483 RADIO_2056_TX1, 0xf0, 0);
20484 write_radio_reg(pi,
20485 RADIO_2056_TX_MIXG_BOOST_TUNE |
20486 RADIO_2056_TX1, 0);
20488 pi->radio_is_on = false;
20491 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
20492 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20493 pi->radio_is_on = false;
20500 wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
20501 const struct chan_info_nphy_radio2057 **t0,
20502 const struct chan_info_nphy_radio205x **t1,
20503 const struct chan_info_nphy_radio2057_rev5 **t2,
20504 const struct chan_info_nphy_2055 **t3)
20507 const struct chan_info_nphy_radio2057 *chan_info_tbl_p_0 = NULL;
20508 const struct chan_info_nphy_radio205x *chan_info_tbl_p_1 = NULL;
20509 const struct chan_info_nphy_radio2057_rev5 *chan_info_tbl_p_2 = NULL;
20514 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20516 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
20518 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
20519 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
20521 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
20522 || NREV_IS(pi->pubpi.phy_rev, 9)) {
20523 switch (pi->pubpi.radiorev) {
20527 if (pi->pubpi.radiover == 0x0) {
20529 chan_info_tbl_p_2 =
20530 chan_info_nphyrev8_2057_rev5;
20531 tbl_len = ARRAY_SIZE(
20532 chan_info_nphyrev8_2057_rev5);
20534 } else if (pi->pubpi.radiover == 0x1) {
20536 chan_info_tbl_p_2 =
20537 chan_info_nphyrev9_2057_rev5v1;
20538 tbl_len = ARRAY_SIZE(
20539 chan_info_nphyrev9_2057_rev5v1);
20545 chan_info_tbl_p_0 =
20546 chan_info_nphyrev8_2057_rev7;
20547 tbl_len = ARRAY_SIZE(
20548 chan_info_nphyrev8_2057_rev7);
20552 chan_info_tbl_p_0 =
20553 chan_info_nphyrev8_2057_rev8;
20554 tbl_len = ARRAY_SIZE(
20555 chan_info_nphyrev8_2057_rev8);
20561 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
20563 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
20564 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
20569 for (i = 0; i < tbl_len; i++) {
20570 if (pi->pubpi.radiorev == 5) {
20572 if (chan_info_tbl_p_2[i].chan == channel)
20576 if (chan_info_tbl_p_0[i].chan == channel)
20584 if (pi->pubpi.radiorev == 5) {
20585 *t2 = &chan_info_tbl_p_2[i];
20586 freq = chan_info_tbl_p_2[i].freq;
20588 *t0 = &chan_info_tbl_p_0[i];
20589 freq = chan_info_tbl_p_0[i].freq;
20592 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20593 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20594 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
20595 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
20596 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20597 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
20598 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
20599 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
20600 || NREV_IS(pi->pubpi.phy_rev, 6)) {
20601 switch (pi->pubpi.radiorev) {
20603 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
20604 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
20607 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
20608 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
20612 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
20614 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
20617 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
20618 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
20621 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
20622 tbl_len = ARRAY_SIZE(
20623 chan_info_nphyrev6_2056v11);
20630 for (i = 0; i < tbl_len; i++) {
20631 if (chan_info_tbl_p_1[i].chan == channel)
20638 *t1 = &chan_info_tbl_p_1[i];
20639 freq = chan_info_tbl_p_1[i].freq;
20642 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
20643 if (chan_info_nphy_2055[i].chan == channel)
20646 if (i >= ARRAY_SIZE(chan_info_nphy_2055))
20649 *t3 = &chan_info_nphy_2055[i];
20650 freq = chan_info_nphy_2055[i].freq;
20657 *f = WL_CHAN_FREQ_RANGE_2G;
20661 u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
20664 const struct chan_info_nphy_radio2057 *t0 = NULL;
20665 const struct chan_info_nphy_radio205x *t1 = NULL;
20666 const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
20667 const struct chan_info_nphy_2055 *t3 = NULL;
20670 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
20672 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
20674 if (CHSPEC_IS2G(pi->radio_chanspec))
20675 return WL_CHAN_FREQ_RANGE_2G;
20677 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN))
20678 return WL_CHAN_FREQ_RANGE_5GL;
20679 else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN))
20680 return WL_CHAN_FREQ_RANGE_5GM;
20682 return WL_CHAN_FREQ_RANGE_5GH;
20686 wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
20687 const struct chan_info_nphy_2055 *ci)
20690 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
20691 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
20692 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
20693 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
20695 BRCMS_PHY_WAR_PR51571(pi);
20697 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
20698 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
20699 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
20700 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
20702 BRCMS_PHY_WAR_PR51571(pi);
20704 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
20705 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
20706 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
20707 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
20709 BRCMS_PHY_WAR_PR51571(pi);
20711 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
20712 ci->RF_core1_lgbuf_a_tune);
20713 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
20714 ci->RF_core1_lgbuf_g_tune);
20715 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
20716 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
20717 ci->RF_core1_tx_pga_pad_tn);
20719 BRCMS_PHY_WAR_PR51571(pi);
20721 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
20722 ci->RF_core1_tx_mx_bgtrim);
20723 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
20724 ci->RF_core2_lgbuf_a_tune);
20725 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
20726 ci->RF_core2_lgbuf_g_tune);
20727 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
20729 BRCMS_PHY_WAR_PR51571(pi);
20731 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
20732 ci->RF_core2_tx_pga_pad_tn);
20733 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
20734 ci->RF_core2_tx_mx_bgtrim);
20738 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
20739 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
20741 BRCMS_PHY_WAR_PR51571(pi);
20743 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
20749 wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
20750 const struct chan_info_nphy_radio205x *ci)
20752 const struct radio_regs *regs_SYN_2056_ptr = NULL;
20754 write_radio_reg(pi,
20755 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
20756 ci->RF_SYN_pll_vcocal1);
20757 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
20758 ci->RF_SYN_pll_vcocal2);
20759 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
20760 ci->RF_SYN_pll_refdiv);
20761 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
20762 ci->RF_SYN_pll_mmd2);
20763 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
20764 ci->RF_SYN_pll_mmd1);
20765 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20766 ci->RF_SYN_pll_loopfilter1);
20767 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20768 ci->RF_SYN_pll_loopfilter2);
20769 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
20770 ci->RF_SYN_pll_loopfilter3);
20771 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20772 ci->RF_SYN_pll_loopfilter4);
20773 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
20774 ci->RF_SYN_pll_loopfilter5);
20775 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
20776 ci->RF_SYN_reserved_addr27);
20777 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
20778 ci->RF_SYN_reserved_addr28);
20779 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
20780 ci->RF_SYN_reserved_addr29);
20781 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
20782 ci->RF_SYN_logen_VCOBUF1);
20783 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
20784 ci->RF_SYN_logen_MIXER2);
20785 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
20786 ci->RF_SYN_logen_BUF3);
20787 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
20788 ci->RF_SYN_logen_BUF4);
20790 write_radio_reg(pi,
20791 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
20792 ci->RF_RX0_lnaa_tune);
20793 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
20794 ci->RF_RX0_lnag_tune);
20795 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
20796 ci->RF_TX0_intpaa_boost_tune);
20797 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
20798 ci->RF_TX0_intpag_boost_tune);
20799 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
20800 ci->RF_TX0_pada_boost_tune);
20801 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
20802 ci->RF_TX0_padg_boost_tune);
20803 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
20804 ci->RF_TX0_pgaa_boost_tune);
20805 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
20806 ci->RF_TX0_pgag_boost_tune);
20807 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
20808 ci->RF_TX0_mixa_boost_tune);
20809 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
20810 ci->RF_TX0_mixg_boost_tune);
20812 write_radio_reg(pi,
20813 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
20814 ci->RF_RX1_lnaa_tune);
20815 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
20816 ci->RF_RX1_lnag_tune);
20817 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
20818 ci->RF_TX1_intpaa_boost_tune);
20819 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
20820 ci->RF_TX1_intpag_boost_tune);
20821 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
20822 ci->RF_TX1_pada_boost_tune);
20823 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
20824 ci->RF_TX1_padg_boost_tune);
20825 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
20826 ci->RF_TX1_pgaa_boost_tune);
20827 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
20828 ci->RF_TX1_pgag_boost_tune);
20829 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
20830 ci->RF_TX1_mixa_boost_tune);
20831 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
20832 ci->RF_TX1_mixg_boost_tune);
20834 if (NREV_IS(pi->pubpi.phy_rev, 3))
20835 regs_SYN_2056_ptr = regs_SYN_2056;
20836 else if (NREV_IS(pi->pubpi.phy_rev, 4))
20837 regs_SYN_2056_ptr = regs_SYN_2056_A1;
20839 switch (pi->pubpi.radiorev) {
20841 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20844 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20848 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20851 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20854 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20858 if (CHSPEC_IS2G(pi->radio_chanspec))
20859 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20861 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
20863 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20865 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
20867 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
20868 if (CHSPEC_IS2G(pi->radio_chanspec)) {
20869 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20870 RADIO_2056_SYN, 0x1f);
20871 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20872 RADIO_2056_SYN, 0x1f);
20874 write_radio_reg(pi,
20875 RADIO_2056_SYN_PLL_LOOPFILTER4 |
20876 RADIO_2056_SYN, 0xb);
20877 write_radio_reg(pi,
20878 RADIO_2056_SYN_PLL_CP2 |
20879 RADIO_2056_SYN, 0x14);
20883 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
20884 (CHSPEC_IS2G(pi->radio_chanspec))) {
20885 write_radio_reg(pi,
20886 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20888 write_radio_reg(pi,
20889 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20891 write_radio_reg(pi,
20892 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20894 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
20898 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
20899 if (CHSPEC_IS5G(pi->radio_chanspec)) {
20900 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20901 RADIO_2056_SYN, 0x1f);
20902 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20903 RADIO_2056_SYN, 0x1f);
20904 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
20905 RADIO_2056_SYN, 0x5);
20906 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20907 RADIO_2056_SYN, 0xc);
20911 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
20912 u16 pag_boost_tune;
20913 u16 padg_boost_tune;
20914 u16 pgag_boost_tune;
20915 u16 mixg_boost_tune;
20916 u16 bias, cascbias;
20919 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20921 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
20923 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20929 if ((pi->sh->chip ==
20931 || (pi->sh->chip ==
20932 BCM43225_CHIP_ID)) {
20933 if (pi->sh->chippkg ==
20934 BCM43224_FAB_SMIC) {
20940 pag_boost_tune = 0x4;
20941 pgag_boost_tune = 0x03;
20942 padg_boost_tune = 0x77;
20943 mixg_boost_tune = 0x65;
20945 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20946 INTPAG_IMAIN_STAT, bias);
20947 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20948 INTPAG_IAUX_STAT, bias);
20949 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20950 INTPAG_CASCBIAS, cascbias);
20952 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20955 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20958 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20961 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20966 bias = (pi->bw == WL_CHANSPEC_BW_40) ?
20969 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20970 INTPAG_IMAIN_STAT, bias);
20971 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20972 INTPAG_IAUX_STAT, bias);
20973 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20974 INTPAG_CASCBIAS, 0x30);
20976 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
20981 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
20982 && CHSPEC_IS5G(pi->radio_chanspec)) {
20983 u16 paa_boost_tune;
20984 u16 pada_boost_tune;
20985 u16 pgaa_boost_tune;
20986 u16 mixa_boost_tune;
20987 u16 freq, pabias, cascbias;
20990 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
20994 paa_boost_tune = 0xa;
20995 pada_boost_tune = 0x77;
20996 pgaa_boost_tune = 0xf;
20997 mixa_boost_tune = 0xf;
20998 } else if (freq < 5340) {
21000 paa_boost_tune = 0x8;
21001 pada_boost_tune = 0x77;
21002 pgaa_boost_tune = 0xfb;
21003 mixa_boost_tune = 0xf;
21004 } else if (freq < 5650) {
21006 paa_boost_tune = 0x0;
21007 pada_boost_tune = 0x77;
21008 pgaa_boost_tune = 0xb;
21009 mixa_boost_tune = 0xf;
21012 paa_boost_tune = 0x0;
21013 pada_boost_tune = 0x77;
21015 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
21017 pgaa_boost_tune = 6;
21019 mixa_boost_tune = 0xf;
21022 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21023 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21024 INTPAA_BOOST_TUNE, paa_boost_tune);
21025 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21026 PADA_BOOST_TUNE, pada_boost_tune);
21027 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21028 PGAA_BOOST_TUNE, pgaa_boost_tune);
21029 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21030 MIXA_BOOST_TUNE, mixa_boost_tune);
21032 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21034 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21037 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21038 PADA_CASCBIAS, 0x3);
21042 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
21043 (pi->sh->chip == BCM43225_CHIP_ID)) {
21044 if (pi->sh->chippkg == BCM43224_FAB_SMIC)
21048 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
21050 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21051 INTPAA_IAUX_STAT, pabias);
21052 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21053 INTPAA_IMAIN_STAT, pabias);
21054 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21055 INTPAA_CASCBIAS, cascbias);
21061 wlc_phy_radio205x_vcocal_nphy(pi);
21064 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy *pi)
21066 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21067 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
21068 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
21069 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
21071 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
21072 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21073 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
21074 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
21075 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
21076 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
21077 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
21084 wlc_phy_chanspec_radio2057_setup(
21085 struct brcms_phy *pi,
21086 const struct chan_info_nphy_radio2057 *ci,
21087 const struct chan_info_nphy_radio2057_rev5 *
21091 u16 txmix2g_tune_boost_pu = 0;
21092 u16 pad2g_tune_pus = 0;
21094 if (pi->pubpi.radiorev == 5) {
21096 write_radio_reg(pi,
21097 RADIO_2057_VCOCAL_COUNTVAL0,
21098 ci2->RF_vcocal_countval0);
21099 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
21100 ci2->RF_vcocal_countval1);
21101 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
21102 ci2->RF_rfpll_refmaster_sparextalsize);
21103 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21104 ci2->RF_rfpll_loopfilter_r1);
21105 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21106 ci2->RF_rfpll_loopfilter_c2);
21107 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21108 ci2->RF_rfpll_loopfilter_c1);
21109 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
21110 ci2->RF_cp_kpd_idac);
21111 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
21112 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
21113 write_radio_reg(pi,
21114 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
21115 write_radio_reg(pi,
21116 RADIO_2057_LOGEN_MX2G_TUNE,
21117 ci2->RF_logen_mx2g_tune);
21118 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21119 ci2->RF_logen_indbuf2g_tune);
21121 write_radio_reg(pi,
21122 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21123 ci2->RF_txmix2g_tune_boost_pu_core0);
21124 write_radio_reg(pi,
21125 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21126 ci2->RF_pad2g_tune_pus_core0);
21127 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21128 ci2->RF_lna2g_tune_core0);
21130 write_radio_reg(pi,
21131 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21132 ci2->RF_txmix2g_tune_boost_pu_core1);
21133 write_radio_reg(pi,
21134 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21135 ci2->RF_pad2g_tune_pus_core1);
21136 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21137 ci2->RF_lna2g_tune_core1);
21141 write_radio_reg(pi,
21142 RADIO_2057_VCOCAL_COUNTVAL0,
21143 ci->RF_vcocal_countval0);
21144 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
21145 ci->RF_vcocal_countval1);
21146 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
21147 ci->RF_rfpll_refmaster_sparextalsize);
21148 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21149 ci->RF_rfpll_loopfilter_r1);
21150 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21151 ci->RF_rfpll_loopfilter_c2);
21152 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21153 ci->RF_rfpll_loopfilter_c1);
21154 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
21155 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
21156 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
21157 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
21158 write_radio_reg(pi,
21159 RADIO_2057_LOGEN_MX2G_TUNE,
21160 ci->RF_logen_mx2g_tune);
21161 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
21162 ci->RF_logen_mx5g_tune);
21163 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21164 ci->RF_logen_indbuf2g_tune);
21165 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
21166 ci->RF_logen_indbuf5g_tune);
21168 write_radio_reg(pi,
21169 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21170 ci->RF_txmix2g_tune_boost_pu_core0);
21171 write_radio_reg(pi,
21172 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21173 ci->RF_pad2g_tune_pus_core0);
21174 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
21175 ci->RF_pga_boost_tune_core0);
21176 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
21177 ci->RF_txmix5g_boost_tune_core0);
21178 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
21179 ci->RF_pad5g_tune_misc_pus_core0);
21180 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21181 ci->RF_lna2g_tune_core0);
21182 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
21183 ci->RF_lna5g_tune_core0);
21185 write_radio_reg(pi,
21186 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21187 ci->RF_txmix2g_tune_boost_pu_core1);
21188 write_radio_reg(pi,
21189 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21190 ci->RF_pad2g_tune_pus_core1);
21191 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
21192 ci->RF_pga_boost_tune_core1);
21193 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
21194 ci->RF_txmix5g_boost_tune_core1);
21195 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
21196 ci->RF_pad5g_tune_misc_pus_core1);
21197 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21198 ci->RF_lna2g_tune_core1);
21199 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
21200 ci->RF_lna5g_tune_core1);
21203 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
21205 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21206 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21208 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21209 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21211 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21214 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21216 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21217 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21219 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21222 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
21223 (pi->pubpi.radiorev == 8)) {
21225 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21226 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21228 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
21229 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21231 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21234 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21236 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21237 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21239 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21245 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21247 if (pi->pubpi.radiorev == 3)
21248 txmix2g_tune_boost_pu = 0x6b;
21250 if (pi->pubpi.radiorev == 5)
21251 pad2g_tune_pus = 0x73;
21254 if (pi->pubpi.radiorev != 5) {
21255 pad2g_tune_pus = 0x3;
21257 txmix2g_tune_boost_pu = 0x61;
21261 for (coreNum = 0; coreNum <= 1; coreNum++) {
21263 if (txmix2g_tune_boost_pu != 0)
21264 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21265 TXMIX2G_TUNE_BOOST_PU,
21266 txmix2g_tune_boost_pu);
21268 if (pad2g_tune_pus != 0)
21269 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21277 wlc_phy_radio205x_vcocal_nphy(pi);
21281 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
21282 const struct nphy_sfo_cfg *ci)
21286 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
21287 if (CHSPEC_IS5G(chanspec) && !val) {
21289 val = R_REG(&pi->regs->psm_phy_hdr_param);
21290 W_REG(&pi->regs->psm_phy_hdr_param,
21291 (val | MAC_PHY_FORCE_CLK));
21293 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21294 (BBCFG_RESETCCA | BBCFG_RESETRX));
21296 W_REG(&pi->regs->psm_phy_hdr_param, val);
21298 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
21299 } else if (!CHSPEC_IS5G(chanspec) && val) {
21301 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
21303 val = R_REG(&pi->regs->psm_phy_hdr_param);
21304 W_REG(&pi->regs->psm_phy_hdr_param,
21305 (val | MAC_PHY_FORCE_CLK));
21307 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21308 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
21310 W_REG(&pi->regs->psm_phy_hdr_param, val);
21313 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
21314 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
21315 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
21317 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
21318 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
21319 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
21321 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
21322 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
21324 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
21326 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
21327 NPHY_ClassifierCtrl_ofdm_en);
21329 if (CHSPEC_IS2G(chanspec))
21330 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
21333 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF)
21334 wlc_phy_txpwr_fixpower_nphy(pi);
21336 if (NREV_LT(pi->pubpi.phy_rev, 3))
21337 wlc_phy_adjust_lnagaintbl_nphy(pi);
21339 wlc_phy_txlpfbw_nphy(pi);
21341 if (NREV_GE(pi->pubpi.phy_rev, 3)
21342 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
21345 val = CHSPEC_CHANNEL(chanspec);
21346 if (!CHSPEC_IS40(pi->radio_chanspec)) {
21347 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21348 if ((val == 13) || (val == 14) || (val == 153))
21350 } else if (((val >= 5) && (val <= 8)) || (val == 13)
21354 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21358 if (pi->nphy_aband_spurwar_en &&
21359 ((val == 38) || (val == 102)
21364 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
21367 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
21368 si_pmu_spuravoid(pi->sh->sih, spuravoid);
21369 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
21371 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
21372 (pi->sh->chip == BCM43225_CHIP_ID)) {
21374 if (spuravoid == 1) {
21376 W_REG(&pi->regs->tsf_clk_frac_l,
21378 W_REG(&pi->regs->tsf_clk_frac_h,
21382 W_REG(&pi->regs->tsf_clk_frac_l,
21384 W_REG(&pi->regs->tsf_clk_frac_h,
21389 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
21391 mod_phy_reg(pi, 0x01, (0x1 << 15),
21392 ((spuravoid > 0) ? (0x1 << 15) : 0));
21394 wlc_phy_resetcca_nphy(pi);
21396 pi->phy_isspuravoid = (spuravoid > 0);
21399 if (NREV_LT(pi->pubpi.phy_rev, 7))
21400 write_phy_reg(pi, 0x17e, 0x3830);
21402 wlc_phy_spurwar_nphy(pi);
21405 void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
21408 const struct chan_info_nphy_radio2057 *t0 = NULL;
21409 const struct chan_info_nphy_radio205x *t1 = NULL;
21410 const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
21411 const struct chan_info_nphy_2055 *t3 = NULL;
21413 if (!wlc_phy_chan2freq_nphy
21414 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
21417 wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
21419 if (CHSPEC_BW(chanspec) != pi->bw)
21420 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
21422 if (CHSPEC_IS40(chanspec)) {
21423 if (CHSPEC_SB_UPPER(chanspec)) {
21424 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
21425 if (NREV_GE(pi->pubpi.phy_rev, 7))
21426 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
21428 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
21429 if (NREV_GE(pi->pubpi.phy_rev, 7))
21430 and_phy_reg(pi, 0x310,
21431 (~PRIM_SEL_UP20 & 0xffff));
21435 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21436 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21438 if ((pi->pubpi.radiorev <= 4)
21439 || (pi->pubpi.radiorev == 6)) {
21440 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
21442 (CHSPEC_IS5G(chanspec) ? (1 << 1)
21444 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
21446 (CHSPEC_IS5G(chanspec) ? (1 << 1)
21450 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
21451 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21452 (pi->pubpi.radiorev == 5) ?
21453 (const struct nphy_sfo_cfg *)&(t2->PHY_BW1a) :
21454 (const struct nphy_sfo_cfg *)&(t0->PHY_BW1a));
21459 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
21461 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
21462 wlc_phy_chanspec_radio2056_setup(pi, t1);
21464 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21465 (const struct nphy_sfo_cfg *) &(t1->PHY_BW1a));
21470 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
21471 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
21474 wlc_phy_chanspec_radio2055_setup(pi, t3);
21475 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21476 (const struct nphy_sfo_cfg *)
21482 void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
21484 struct brcms_phy *pi = (struct brcms_phy *) ppi;
21488 if (NREV_GE(pi->pubpi.phy_rev, 7))
21491 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21492 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
21494 if (lut_init == false)
21497 if (pi->srom_fem2g.antswctrllut == 0) {
21498 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21500 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21502 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21504 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21508 if (pi->srom_fem5g.antswctrllut == 0) {
21509 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21511 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21513 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21515 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21520 write_phy_reg(pi, 0xc8, 0x0);
21521 write_phy_reg(pi, 0xc9, 0x0);
21523 ai_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
21525 mc = R_REG(&pi->regs->maccontrol);
21526 mc &= ~MCTL_GPOUT_SEL_MASK;
21527 W_REG(&pi->regs->maccontrol, mc);
21529 OR_REG(&pi->regs->psm_gpio_oe, mask);
21531 AND_REG(&pi->regs->psm_gpio_out, ~mask);
21534 write_phy_reg(pi, 0xf8, 0x02d8);
21535 write_phy_reg(pi, 0xf9, 0x0301);
21536 write_phy_reg(pi, 0xfa, 0x02d8);
21537 write_phy_reg(pi, 0xfb, 0x0301);
21542 u16 wlc_phy_classifier_nphy(struct brcms_phy *pi, u16 mask, u16 val)
21544 u16 curr_ctl, new_ctl;
21545 bool suspended = false;
21547 if (D11REV_IS(pi->sh->corerev, 16)) {
21549 (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC) ?
21552 wlapi_suspend_mac_and_wait(pi->sh->physhim);
21555 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
21557 new_ctl = (curr_ctl & (~mask)) | (val & mask);
21559 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
21561 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
21562 wlapi_enable_mac(pi->sh->physhim);
21567 void wlc_phy_force_rfseq_nphy(struct brcms_phy *pi, u8 cmd)
21569 u16 trigger_mask, status_mask;
21570 u16 orig_RfseqCoreActv;
21573 case NPHY_RFSEQ_RX2TX:
21574 trigger_mask = NPHY_RfseqTrigger_rx2tx;
21575 status_mask = NPHY_RfseqStatus_rx2tx;
21577 case NPHY_RFSEQ_TX2RX:
21578 trigger_mask = NPHY_RfseqTrigger_tx2rx;
21579 status_mask = NPHY_RfseqStatus_tx2rx;
21581 case NPHY_RFSEQ_RESET2RX:
21582 trigger_mask = NPHY_RfseqTrigger_reset2rx;
21583 status_mask = NPHY_RfseqStatus_reset2rx;
21585 case NPHY_RFSEQ_UPDATEGAINH:
21586 trigger_mask = NPHY_RfseqTrigger_updategainh;
21587 status_mask = NPHY_RfseqStatus_updategainh;
21589 case NPHY_RFSEQ_UPDATEGAINL:
21590 trigger_mask = NPHY_RfseqTrigger_updategainl;
21591 status_mask = NPHY_RfseqStatus_updategainl;
21593 case NPHY_RFSEQ_UPDATEGAINU:
21594 trigger_mask = NPHY_RfseqTrigger_updategainu;
21595 status_mask = NPHY_RfseqStatus_updategainu;
21601 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
21602 or_phy_reg(pi, 0xa1,
21603 (NPHY_RfseqMode_CoreActv_override |
21604 NPHY_RfseqMode_Trigger_override));
21605 or_phy_reg(pi, 0xa3, trigger_mask);
21606 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
21607 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
21608 WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
21612 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
21613 u8 core_mask, u8 off)
21615 u16 rfmxgain = 0, lpfgain = 0;
21618 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21621 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
21622 wlc_phy_rfctrl_override_nphy_rev7(
21624 value, core_mask, off,
21625 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21626 wlc_phy_rfctrl_override_nphy_rev7(
21627 pi, (0x1 << 4), value,
21629 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21630 wlc_phy_rfctrl_override_nphy_rev7(
21631 pi, (0x1 << 3), value,
21633 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21635 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
21636 wlc_phy_rfctrl_override_nphy_rev7(
21638 value, core_mask, off,
21639 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21640 wlc_phy_rfctrl_override_nphy_rev7(
21641 pi, (0x1 << 1), value,
21643 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21644 wlc_phy_rfctrl_override_nphy_rev7(
21645 pi, (0x1 << 0), value,
21647 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21648 wlc_phy_rfctrl_override_nphy_rev7(
21649 pi, (0x1 << 1), value,
21651 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21652 wlc_phy_rfctrl_override_nphy_rev7(
21653 pi, (0x1 << 11), 0,
21655 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21657 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
21658 wlc_phy_rfctrl_override_nphy_rev7(
21660 value, core_mask, off,
21661 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21662 wlc_phy_rfctrl_override_nphy_rev7(
21663 pi, (0x1 << 1), value,
21665 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21666 wlc_phy_rfctrl_override_nphy_rev7(
21667 pi, (0x1 << 0), value,
21669 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21670 wlc_phy_rfctrl_override_nphy_rev7(
21671 pi, (0x1 << 2), value,
21673 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21674 wlc_phy_rfctrl_override_nphy_rev7(
21675 pi, (0x1 << 11), 1,
21677 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21679 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
21680 rfmxgain = value & 0x000ff;
21681 lpfgain = value & 0x0ff00;
21682 lpfgain = lpfgain >> 8;
21684 wlc_phy_rfctrl_override_nphy_rev7(
21686 rfmxgain, core_mask,
21688 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21689 wlc_phy_rfctrl_override_nphy_rev7(
21691 lpfgain, core_mask,
21693 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21695 case NPHY_REV7_RfctrlOverride_cmd_txgain:
21696 tgain = value & 0x7fff;
21697 lpfgain = value & 0x8000;
21698 lpfgain = lpfgain >> 14;
21700 wlc_phy_rfctrl_override_nphy_rev7(
21702 tgain, core_mask, off,
21703 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21704 wlc_phy_rfctrl_override_nphy_rev7(
21706 lpfgain, core_mask,
21708 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21715 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
21716 u8 coresel, u8 rail, u8 rssi_type)
21720 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
21721 NPHY_RSSICAL_MAXREAD : offset;
21722 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
21723 -NPHY_RSSICAL_MAXREAD - 1 : offset;
21725 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
21727 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21728 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21729 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21730 write_phy_reg(pi, 0x1a6, valuetostuff);
21732 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21733 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21734 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21735 write_phy_reg(pi, 0x1ac, valuetostuff);
21737 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21738 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21739 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21740 write_phy_reg(pi, 0x1b2, valuetostuff);
21742 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21743 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21744 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21745 write_phy_reg(pi, 0x1b8, valuetostuff);
21747 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21748 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21749 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21750 write_phy_reg(pi, 0x1a4, valuetostuff);
21752 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21753 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21754 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21755 write_phy_reg(pi, 0x1aa, valuetostuff);
21757 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21758 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21759 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21760 write_phy_reg(pi, 0x1b0, valuetostuff);
21762 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21763 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21764 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21765 write_phy_reg(pi, 0x1b6, valuetostuff);
21767 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21768 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21769 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21770 write_phy_reg(pi, 0x1a5, valuetostuff);
21771 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21772 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21773 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21774 write_phy_reg(pi, 0x1ab, valuetostuff);
21776 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21777 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21778 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21779 write_phy_reg(pi, 0x1b1, valuetostuff);
21781 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21782 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21783 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21784 write_phy_reg(pi, 0x1b7, valuetostuff);
21786 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21787 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21788 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21789 write_phy_reg(pi, 0x1a7, valuetostuff);
21790 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21791 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21792 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21793 write_phy_reg(pi, 0x1ad, valuetostuff);
21794 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21795 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21796 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21797 write_phy_reg(pi, 0x1b3, valuetostuff);
21798 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21799 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21800 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21801 write_phy_reg(pi, 0x1b9, valuetostuff);
21803 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21804 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21805 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21806 write_phy_reg(pi, 0x1a8, valuetostuff);
21808 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21809 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21810 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21811 write_phy_reg(pi, 0x1ae, valuetostuff);
21813 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21814 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21815 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21816 write_phy_reg(pi, 0x1b4, valuetostuff);
21818 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21819 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21820 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21821 write_phy_reg(pi, 0x1ba, valuetostuff);
21823 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21824 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21825 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21826 write_phy_reg(pi, 0x1a9, valuetostuff);
21827 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21828 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21829 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21830 write_phy_reg(pi, 0x1b5, valuetostuff);
21832 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21833 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21834 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21835 write_phy_reg(pi, 0x1af, valuetostuff);
21837 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21838 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21839 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21840 write_phy_reg(pi, 0x1bb, valuetostuff);
21843 static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
21846 if (NREV_GE(pi->pubpi.phy_rev, 7))
21847 write_radio_reg(pi,
21848 ((core == PHY_CORE_0) ?
21849 RADIO_2057_TX0_TX_SSI_MUX :
21850 RADIO_2057_TX1_TX_SSI_MUX),
21851 (CHSPEC_IS5G(pi->radio_chanspec) ?
21854 write_radio_reg(pi,
21855 RADIO_2056_TX_TX_SSI_MUX |
21856 ((core == PHY_CORE_0) ?
21857 RADIO_2056_TX0 : RADIO_2056_TX1),
21858 (CHSPEC_IS5G(pi->radio_chanspec) ?
21861 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21862 write_radio_reg(pi,
21863 ((core == PHY_CORE_0) ?
21864 RADIO_2057_TX0_TX_SSI_MUX :
21865 RADIO_2057_TX1_TX_SSI_MUX),
21868 if (pi->pubpi.radioid == BCM2057_ID)
21869 write_radio_reg(pi,
21870 RADIO_2057_IQTEST_SEL_PU, 0x1);
21873 write_radio_reg(pi,
21874 RADIO_2056_TX_TX_SSI_MUX |
21875 ((core == PHY_CORE_0) ?
21876 RADIO_2056_TX0 : RADIO_2056_TX1),
21882 void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
21885 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
21887 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
21888 rfctrlovr_trigger_val;
21889 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
21890 u16 rfctrlcmd_val, rfctrlovr_val;
21893 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21894 if (core_code == RADIO_MIMO_CORESEL_OFF) {
21895 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
21896 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
21898 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
21899 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
21901 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
21902 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
21904 mask = (0x1 << 2) |
21905 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
21906 mod_phy_reg(pi, 0xf9, mask, 0);
21907 mod_phy_reg(pi, 0xfb, mask, 0);
21910 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21911 if (core_code == RADIO_MIMO_CORESEL_CORE1
21912 && core == PHY_CORE_1)
21914 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21915 && core == PHY_CORE_0)
21918 mod_phy_reg(pi, (core == PHY_CORE_0) ?
21919 0x8f : 0xa5, (0x1 << 9), 1 << 9);
21921 if (rssi_type == NPHY_RSSI_SEL_W1 ||
21922 rssi_type == NPHY_RSSI_SEL_W2 ||
21923 rssi_type == NPHY_RSSI_SEL_NB) {
21926 PHY_CORE_0) ? 0xa6 : 0xa7,
21929 mask = (0x1 << 2) |
21931 (0x1 << 4) | (0x1 << 5);
21934 PHY_CORE_0) ? 0xf9 : 0xfb,
21937 if (rssi_type == NPHY_RSSI_SEL_W1) {
21939 pi->radio_chanspec)) {
21946 } else if (rssi_type ==
21947 NPHY_RSSI_SEL_W2) {
21956 PHY_CORE_0) ? 0xf9 : 0xfb,
21961 mod_phy_reg(pi, (core == PHY_CORE_0) ?
21962 0xe5 : 0xe6, mask, val);
21964 if (rssi_type == NPHY_RSSI_SEL_TBD) {
21970 : 0xa7, mask, val);
21971 mask = (0x3 << 10);
21976 : 0xa7, mask, val);
21977 } else if (rssi_type ==
21978 NPHY_RSSI_SEL_IQ) {
21984 : 0xa7, mask, val);
21985 mask = (0x3 << 10);
21990 : 0xa7, mask, val);
21997 : 0xa7, mask, val);
21998 mask = (0x3 << 10);
22003 : 0xa7, mask, val);
22004 brcms_phy_wr_tx_mux(pi, core);
22005 afectrlovr_rssi_val = 1 << 9;
22009 : 0xa5, (0x1 << 9),
22010 afectrlovr_rssi_val);
22017 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
22018 (rssi_type == NPHY_RSSI_SEL_W2) ||
22019 (rssi_type == NPHY_RSSI_SEL_NB))
22021 else if (rssi_type == NPHY_RSSI_SEL_TBD)
22023 else if (rssi_type == NPHY_RSSI_SEL_IQ)
22028 mask = ((0x3 << 12) | (0x3 << 14));
22029 val = (val << 12) | (val << 14);
22030 mod_phy_reg(pi, 0xa6, mask, val);
22031 mod_phy_reg(pi, 0xa7, mask, val);
22033 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
22034 (rssi_type == NPHY_RSSI_SEL_W2) ||
22035 (rssi_type == NPHY_RSSI_SEL_NB)) {
22036 if (rssi_type == NPHY_RSSI_SEL_W1)
22038 if (rssi_type == NPHY_RSSI_SEL_W2)
22040 if (rssi_type == NPHY_RSSI_SEL_NB)
22045 mod_phy_reg(pi, 0x7a, mask, val);
22046 mod_phy_reg(pi, 0x7d, mask, val);
22049 if (core_code == RADIO_MIMO_CORESEL_OFF) {
22050 afectrlovr_rssi_val = 0;
22051 rfctrlcmd_rxen_val = 0;
22052 rfctrlcmd_coresel_val = 0;
22053 rfctrlovr_rssi_val = 0;
22054 rfctrlovr_rxen_val = 0;
22055 rfctrlovr_coresel_val = 0;
22056 rfctrlovr_trigger_val = 0;
22059 afectrlovr_rssi_val = 1;
22060 rfctrlcmd_rxen_val = 1;
22061 rfctrlcmd_coresel_val = core_code;
22062 rfctrlovr_rssi_val = 1;
22063 rfctrlovr_rxen_val = 1;
22064 rfctrlovr_coresel_val = 1;
22065 rfctrlovr_trigger_val = 1;
22069 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
22070 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
22071 12) | (afectrlovr_rssi_val << 13);
22072 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
22073 afectrlovr_rssi_val);
22075 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
22076 (rssi_type == NPHY_RSSI_SEL_W2) ||
22077 (rssi_type == NPHY_RSSI_SEL_NB)) {
22078 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
22079 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
22080 (rfctrlcmd_coresel_val << 3);
22082 rfctrlovr_mask = ((0x1 << 5) |
22084 (0x1 << 1) | (0x1 << 0));
22085 rfctrlovr_val = (rfctrlovr_rssi_val <<
22087 (rfctrlovr_rxen_val << 12) |
22088 (rfctrlovr_coresel_val << 1) |
22089 (rfctrlovr_trigger_val << 0);
22091 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
22092 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
22094 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
22097 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22103 wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
22107 u16 afectrlCore1_save = 0;
22108 u16 afectrlCore2_save = 0;
22109 u16 afectrlOverride1_save = 0;
22110 u16 afectrlOverride2_save = 0;
22111 u16 rfctrlOverrideAux0_save = 0;
22112 u16 rfctrlOverrideAux1_save = 0;
22113 u16 rfctrlMiscReg1_save = 0;
22114 u16 rfctrlMiscReg2_save = 0;
22115 u16 rfctrlcmd_save = 0;
22116 u16 rfctrloverride_save = 0;
22117 u16 rfctrlrssiothers1_save = 0;
22118 u16 rfctrlrssiothers2_save = 0;
22120 u8 ctr = 0, samp = 0;
22124 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22125 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22126 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22127 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22128 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22129 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
22130 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22131 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22132 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22134 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
22135 rfctrlcmd_save = read_phy_reg(pi, 0x78);
22136 rfctrloverride_save = read_phy_reg(pi, 0xec);
22137 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
22138 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
22141 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
22143 gpiosel_orig = read_phy_reg(pi, 0xca);
22144 if (NREV_LT(pi->pubpi.phy_rev, 2))
22145 write_phy_reg(pi, 0xca, 5);
22147 for (ctr = 0; ctr < 4; ctr++)
22150 for (samp = 0; samp < nsamps; samp++) {
22151 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
22152 rssi0 = read_phy_reg(pi, 0x1c9);
22153 rssi1 = read_phy_reg(pi, 0x1ca);
22155 rssi0 = read_phy_reg(pi, 0x219);
22156 rssi1 = read_phy_reg(pi, 0x21a);
22160 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
22161 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
22162 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
22163 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
22165 for (ctr = 0; ctr < 4; ctr++)
22166 rssi_buf[ctr] += tmp_buf[ctr];
22170 rssi_out_val = rssi_buf[3] & 0xff;
22171 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
22172 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
22173 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
22175 if (NREV_LT(pi->pubpi.phy_rev, 2))
22176 write_phy_reg(pi, 0xca, gpiosel_orig);
22178 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22179 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22180 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22181 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
22182 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
22183 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
22184 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22185 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
22186 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
22188 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
22189 write_phy_reg(pi, 0x78, rfctrlcmd_save);
22190 write_phy_reg(pi, 0xec, rfctrloverride_save);
22191 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
22192 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
22195 return rssi_out_val;
22198 s16 wlc_phy_tempsense_nphy(struct brcms_phy *pi)
22200 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
22201 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
22202 u16 pwrdet_rxtx_core1_save;
22203 u16 pwrdet_rxtx_core2_save;
22204 u16 afectrlCore1_save;
22205 u16 afectrlCore2_save;
22206 u16 afectrlOverride_save;
22207 u16 afectrlOverride2_save;
22208 u16 pd_pll_ts_save;
22211 s32 radio_temp2[4];
22212 u16 syn_tempprocsense_save;
22215 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22216 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
22217 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
22218 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
22220 u16 RfctrlOverride5_save, RfctrlOverride6_save;
22221 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
22222 u16 RSSIMultCoef0QPowerDet_save;
22223 u16 tempsense_Rcal;
22225 syn_tempprocsense_save =
22226 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
22228 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22229 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22230 afectrlOverride_save = read_phy_reg(pi, 0x8f);
22231 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22232 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
22233 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22234 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22235 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22236 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22238 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22239 &auxADC_Vmid_save);
22240 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22242 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22243 &auxADC_rssi_ctrlL_save);
22244 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22245 &auxADC_rssi_ctrlH_save);
22247 write_phy_reg(pi, 0x1ae, 0x0);
22249 auxADC_rssi_ctrlL = 0x0;
22250 auxADC_rssi_ctrlH = 0x20;
22251 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22252 &auxADC_rssi_ctrlL);
22253 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22254 &auxADC_rssi_ctrlH);
22256 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
22258 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22259 tempsense_Rcal | 0x01);
22261 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
22263 NPHY_REV7_RFCTRLOVERRIDE_ID2);
22264 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
22265 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
22266 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
22267 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
22269 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
22270 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
22271 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
22272 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
22274 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
22275 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
22276 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
22277 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
22278 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
22279 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
22280 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
22281 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
22282 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
22283 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
22285 auxADC_Vmid = 0xA3;
22287 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22289 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22294 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22295 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22296 tempsense_Rcal | 0x03);
22299 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22302 if (radio_temp[1] + radio_temp2[1] < -30) {
22303 auxADC_Vmid = 0x45;
22305 } else if (radio_temp[1] + radio_temp2[1] < -9) {
22306 auxADC_Vmid = 0x200;
22308 } else if (radio_temp[1] + radio_temp2[1] < 11) {
22309 auxADC_Vmid = 0x266;
22312 auxADC_Vmid = 0x2D5;
22316 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22318 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22323 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22324 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22325 tempsense_Rcal | 0x01);
22328 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22330 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22331 syn_tempprocsense_save);
22333 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22334 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22335 write_phy_reg(pi, 0x8f, afectrlOverride_save);
22336 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22337 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
22338 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
22339 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
22340 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
22341 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
22343 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22344 &auxADC_Vmid_save);
22345 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22347 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22348 &auxADC_rssi_ctrlL_save);
22349 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22350 &auxADC_rssi_ctrlH_save);
22352 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
22353 + 82 * (auxADC_Vl) - 28861 +
22356 offset = (s16) pi->phy_tempsense_offset;
22358 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22359 syn_tempprocsense_save =
22360 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
22362 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22363 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22364 afectrlOverride_save = read_phy_reg(pi, 0x8f);
22365 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22366 gpioSel_save = read_phy_reg(pi, 0xca);
22368 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22370 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22371 if (NREV_LT(pi->pubpi.phy_rev, 7))
22372 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
22374 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22375 if (NREV_GE(pi->pubpi.phy_rev, 7))
22376 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
22378 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22381 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
22383 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
22384 syn_tempprocsense_save);
22386 write_phy_reg(pi, 0xca, gpioSel_save);
22387 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22388 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22389 write_phy_reg(pi, 0x8f, afectrlOverride_save);
22390 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22392 offset = (s16) pi->phy_tempsense_offset;
22395 pwrdet_rxtx_core1_save =
22396 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
22397 pwrdet_rxtx_core2_save =
22398 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
22399 core1_txrf_iqcal1_save =
22400 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
22401 core1_txrf_iqcal2_save =
22402 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
22403 core2_txrf_iqcal1_save =
22404 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
22405 core2_txrf_iqcal2_save =
22406 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
22407 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
22409 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22410 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22411 afectrlOverride_save = read_phy_reg(pi, 0xa5);
22412 gpioSel_save = read_phy_reg(pi, 0xca);
22414 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
22415 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
22416 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
22417 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
22418 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
22419 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
22420 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
22422 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22423 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22425 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22426 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22428 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22429 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22431 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
22432 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
22433 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
22434 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
22437 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
22442 (8 * 32)) * (950 - 350) / 63 + (350 * 8);
22444 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
22446 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
22447 pwrdet_rxtx_core1_save);
22448 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
22449 pwrdet_rxtx_core2_save);
22450 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
22451 core1_txrf_iqcal1_save);
22452 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
22453 core2_txrf_iqcal1_save);
22454 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
22455 core1_txrf_iqcal2_save);
22456 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
22457 core2_txrf_iqcal2_save);
22458 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
22460 write_phy_reg(pi, 0xca, gpioSel_save);
22461 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22462 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22463 write_phy_reg(pi, 0xa5, afectrlOverride_save);
22466 return (s16) radio_temp[0] + offset;
22470 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
22474 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22475 if (rssi_type == NPHY_RSSI_SEL_NB) {
22476 if (core == PHY_CORE_0) {
22478 RADIO_2055_CORE1_B0_NBRSSI_VCM,
22479 RADIO_2055_NBRSSI_VCM_I_MASK,
22482 RADIO_2055_NBRSSI_VCM_I_SHIFT);
22484 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22485 RADIO_2055_NBRSSI_VCM_Q_MASK,
22488 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22491 RADIO_2055_CORE2_B0_NBRSSI_VCM,
22492 RADIO_2055_NBRSSI_VCM_I_MASK,
22495 RADIO_2055_NBRSSI_VCM_I_SHIFT);
22497 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22498 RADIO_2055_NBRSSI_VCM_Q_MASK,
22501 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22504 if (core == PHY_CORE_0)
22506 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22507 RADIO_2055_WBRSSI_VCM_IQ_MASK,
22510 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22513 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22514 RADIO_2055_WBRSSI_VCM_IQ_MASK,
22517 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22522 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
22526 u16 clip_off[] = { 0xffff, 0xffff };
22531 s32 poll_results[8][4] = {
22541 s32 poll_result_core[4] = { 0, 0, 0, 0 };
22542 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
22543 s32 fine_digital_offset[4];
22544 s32 poll_results_min[4] = { 0, 0, 0, 0 };
22550 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
22551 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
22552 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
22553 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
22554 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
22555 u16 NPHY_RfctrlCmd_save;
22556 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
22557 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
22559 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
22560 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
22561 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
22562 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
22564 NPHY_REV7_RfctrlOverride3_save =
22565 NPHY_REV7_RfctrlOverride4_save =
22566 NPHY_REV7_RfctrlOverride5_save =
22567 NPHY_REV7_RfctrlOverride6_save =
22568 NPHY_REV7_RfctrlMiscReg3_save =
22569 NPHY_REV7_RfctrlMiscReg4_save =
22570 NPHY_REV7_RfctrlMiscReg5_save =
22571 NPHY_REV7_RfctrlMiscReg6_save = 0;
22573 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22574 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22575 wlc_phy_clip_det_nphy(pi, 0, clip_state);
22576 wlc_phy_clip_det_nphy(pi, 1, clip_off);
22578 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
22579 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
22580 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
22581 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
22582 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
22583 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
22584 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
22585 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
22586 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22587 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
22588 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
22589 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22590 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22592 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22593 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22594 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
22595 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22596 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22597 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22598 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
22599 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
22600 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22601 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22603 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
22604 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
22606 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
22607 RADIO_MIMO_CORESEL_ALLRXTX);
22608 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
22609 RADIO_MIMO_CORESEL_ALLRXTX);
22611 if (NREV_GE(pi->pubpi.phy_rev, 7))
22612 wlc_phy_rfctrl_override_1tomany_nphy(
22614 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
22617 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
22619 if (NREV_GE(pi->pubpi.phy_rev, 7))
22620 wlc_phy_rfctrl_override_1tomany_nphy(
22622 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
22625 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
22627 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22628 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
22630 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22631 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
22632 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22634 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
22635 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
22638 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22639 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22640 wlc_phy_rfctrl_override_nphy_rev7(
22643 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22644 wlc_phy_rfctrl_override_nphy_rev7(
22645 pi, (0x1 << 4), 1, 0,
22647 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22649 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
22650 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
22654 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22655 wlc_phy_rfctrl_override_nphy_rev7(
22658 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22659 wlc_phy_rfctrl_override_nphy_rev7(
22660 pi, (0x1 << 5), 1, 0,
22662 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22664 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
22665 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
22669 rxcore_state = wlc_phy_rxcore_getstate_nphy(
22670 (struct brcms_phy_pub *) pi);
22674 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22676 if ((rxcore_state & (1 << core)) == 0)
22679 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22682 RADIO_MIMO_CORESEL_CORE1 :
22683 RADIO_MIMO_CORESEL_CORE2,
22684 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
22685 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22688 RADIO_MIMO_CORESEL_CORE1 :
22689 RADIO_MIMO_CORESEL_CORE2,
22690 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
22692 for (vcm = 0; vcm < vcm_level_max; vcm++) {
22693 if (NREV_GE(pi->pubpi.phy_rev, 7))
22694 mod_radio_reg(pi, (core == PHY_CORE_0) ?
22695 RADIO_2057_NB_MASTER_CORE0 :
22696 RADIO_2057_NB_MASTER_CORE1,
22697 RADIO_2057_VCM_MASK, vcm);
22699 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22701 PHY_CORE_0) ? RADIO_2056_RX0 :
22703 RADIO_2056_VCM_MASK,
22704 vcm << RADIO_2056_RSSI_VCM_SHIFT);
22706 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
22707 &poll_results[vcm][0],
22708 NPHY_RSSICAL_NPOLL);
22711 for (result_idx = 0; result_idx < 4; result_idx++) {
22712 if ((core == result_idx / 2) &&
22713 (result_idx % 2 == 0)) {
22715 min_d = NPHY_RSSICAL_MAXD;
22718 NPHY_RSSICAL_MAXREAD *
22719 NPHY_RSSICAL_NPOLL + 1;
22720 for (vcm = 0; vcm < vcm_level_max; vcm++) {
22722 poll_results[vcm][result_idx] *
22723 poll_results[vcm][result_idx] +
22724 poll_results[vcm][result_idx +
22726 poll_results[vcm][result_idx +
22728 if (curr_d < min_d) {
22732 if (poll_results[vcm][result_idx] <
22738 vcm_final = min_vcm;
22739 poll_results_min[result_idx] = min_poll;
22743 if (NREV_GE(pi->pubpi.phy_rev, 7))
22744 mod_radio_reg(pi, (core == PHY_CORE_0) ?
22745 RADIO_2057_NB_MASTER_CORE0 :
22746 RADIO_2057_NB_MASTER_CORE1,
22747 RADIO_2057_VCM_MASK, vcm_final);
22749 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22751 PHY_CORE_0) ? RADIO_2056_RX0 :
22752 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
22753 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
22755 for (result_idx = 0; result_idx < 4; result_idx++) {
22756 if (core == result_idx / 2) {
22757 fine_digital_offset[result_idx] =
22758 (NPHY_RSSICAL_NB_TARGET *
22759 NPHY_RSSICAL_NPOLL) -
22760 poll_results[vcm_final][result_idx];
22761 if (fine_digital_offset[result_idx] < 0) {
22762 fine_digital_offset[result_idx] =
22763 abs(fine_digital_offset
22765 fine_digital_offset[result_idx] +=
22766 (NPHY_RSSICAL_NPOLL / 2);
22767 fine_digital_offset[result_idx] /=
22768 NPHY_RSSICAL_NPOLL;
22769 fine_digital_offset[result_idx] =
22770 -fine_digital_offset[
22773 fine_digital_offset[result_idx] +=
22774 (NPHY_RSSICAL_NPOLL / 2);
22775 fine_digital_offset[result_idx] /=
22776 NPHY_RSSICAL_NPOLL;
22779 if (poll_results_min[result_idx] ==
22780 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
22781 fine_digital_offset[result_idx] =
22782 (NPHY_RSSICAL_NB_TARGET -
22783 NPHY_RSSICAL_MAXREAD - 1);
22785 wlc_phy_scale_offset_rssi_nphy(
22788 fine_digital_offset
22790 (result_idx / 2 == 0) ?
22791 RADIO_MIMO_CORESEL_CORE1 :
22792 RADIO_MIMO_CORESEL_CORE2,
22793 (result_idx % 2 == 0) ?
22794 NPHY_RAIL_I : NPHY_RAIL_Q,
22801 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22803 if ((rxcore_state & (1 << core)) == 0)
22806 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22808 rssi_type = NPHY_RSSI_SEL_W1;
22809 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22811 rssi_type = NPHY_RSSI_SEL_W2;
22812 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22815 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22818 RADIO_MIMO_CORESEL_CORE1
22820 RADIO_MIMO_CORESEL_CORE2,
22821 NPHY_RAIL_I, rssi_type);
22822 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22825 RADIO_MIMO_CORESEL_CORE1
22827 RADIO_MIMO_CORESEL_CORE2,
22828 NPHY_RAIL_Q, rssi_type);
22830 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22831 NPHY_RSSICAL_NPOLL);
22833 for (result_idx = 0; result_idx < 4; result_idx++) {
22834 if (core == result_idx / 2) {
22835 fine_digital_offset[result_idx] =
22837 NPHY_RSSICAL_NPOLL) -
22838 poll_result_core[result_idx];
22839 if (fine_digital_offset[result_idx] <
22841 fine_digital_offset[result_idx]
22843 fine_digital_offset
22845 fine_digital_offset[result_idx]
22846 += (NPHY_RSSICAL_NPOLL
22848 fine_digital_offset[result_idx]
22849 /= NPHY_RSSICAL_NPOLL;
22850 fine_digital_offset[result_idx]
22851 = -fine_digital_offset
22854 fine_digital_offset[result_idx]
22855 += (NPHY_RSSICAL_NPOLL
22857 fine_digital_offset[result_idx]
22858 /= NPHY_RSSICAL_NPOLL;
22861 wlc_phy_scale_offset_rssi_nphy(
22864 fine_digital_offset
22867 (core == PHY_CORE_0) ?
22868 RADIO_MIMO_CORESEL_CORE1 :
22869 RADIO_MIMO_CORESEL_CORE2,
22870 (result_idx % 2 == 0) ?
22880 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22881 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22883 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22885 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22886 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22887 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22889 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22890 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22891 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22893 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22894 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22895 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22896 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22897 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22898 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22899 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22900 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22901 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22902 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22903 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22905 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22906 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22907 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22908 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22909 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22910 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22911 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22912 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22913 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22914 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22916 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22917 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22919 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22920 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22921 pi->rssical_cache.rssical_radio_regs_2G[0] =
22922 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22923 pi->rssical_cache.rssical_radio_regs_2G[1] =
22924 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22926 pi->rssical_cache.rssical_radio_regs_2G[0] =
22928 RADIO_2056_RX_RSSI_MISC |
22930 pi->rssical_cache.rssical_radio_regs_2G[1] =
22932 RADIO_2056_RX_RSSI_MISC |
22936 pi->rssical_cache.rssical_phyregs_2G[0] =
22937 read_phy_reg(pi, 0x1a6);
22938 pi->rssical_cache.rssical_phyregs_2G[1] =
22939 read_phy_reg(pi, 0x1ac);
22940 pi->rssical_cache.rssical_phyregs_2G[2] =
22941 read_phy_reg(pi, 0x1b2);
22942 pi->rssical_cache.rssical_phyregs_2G[3] =
22943 read_phy_reg(pi, 0x1b8);
22944 pi->rssical_cache.rssical_phyregs_2G[4] =
22945 read_phy_reg(pi, 0x1a4);
22946 pi->rssical_cache.rssical_phyregs_2G[5] =
22947 read_phy_reg(pi, 0x1aa);
22948 pi->rssical_cache.rssical_phyregs_2G[6] =
22949 read_phy_reg(pi, 0x1b0);
22950 pi->rssical_cache.rssical_phyregs_2G[7] =
22951 read_phy_reg(pi, 0x1b6);
22952 pi->rssical_cache.rssical_phyregs_2G[8] =
22953 read_phy_reg(pi, 0x1a5);
22954 pi->rssical_cache.rssical_phyregs_2G[9] =
22955 read_phy_reg(pi, 0x1ab);
22956 pi->rssical_cache.rssical_phyregs_2G[10] =
22957 read_phy_reg(pi, 0x1b1);
22958 pi->rssical_cache.rssical_phyregs_2G[11] =
22959 read_phy_reg(pi, 0x1b7);
22961 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22963 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22964 pi->rssical_cache.rssical_radio_regs_5G[0] =
22965 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22966 pi->rssical_cache.rssical_radio_regs_5G[1] =
22967 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22969 pi->rssical_cache.rssical_radio_regs_5G[0] =
22971 RADIO_2056_RX_RSSI_MISC |
22973 pi->rssical_cache.rssical_radio_regs_5G[1] =
22975 RADIO_2056_RX_RSSI_MISC |
22979 pi->rssical_cache.rssical_phyregs_5G[0] =
22980 read_phy_reg(pi, 0x1a6);
22981 pi->rssical_cache.rssical_phyregs_5G[1] =
22982 read_phy_reg(pi, 0x1ac);
22983 pi->rssical_cache.rssical_phyregs_5G[2] =
22984 read_phy_reg(pi, 0x1b2);
22985 pi->rssical_cache.rssical_phyregs_5G[3] =
22986 read_phy_reg(pi, 0x1b8);
22987 pi->rssical_cache.rssical_phyregs_5G[4] =
22988 read_phy_reg(pi, 0x1a4);
22989 pi->rssical_cache.rssical_phyregs_5G[5] =
22990 read_phy_reg(pi, 0x1aa);
22991 pi->rssical_cache.rssical_phyregs_5G[6] =
22992 read_phy_reg(pi, 0x1b0);
22993 pi->rssical_cache.rssical_phyregs_5G[7] =
22994 read_phy_reg(pi, 0x1b6);
22995 pi->rssical_cache.rssical_phyregs_5G[8] =
22996 read_phy_reg(pi, 0x1a5);
22997 pi->rssical_cache.rssical_phyregs_5G[9] =
22998 read_phy_reg(pi, 0x1ab);
22999 pi->rssical_cache.rssical_phyregs_5G[10] =
23000 read_phy_reg(pi, 0x1b1);
23001 pi->rssical_cache.rssical_phyregs_5G[11] =
23002 read_phy_reg(pi, 0x1b7);
23004 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
23007 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
23008 wlc_phy_clip_det_nphy(pi, 1, clip_state);
23011 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
23016 u16 rssi_ctrl_state[2], pd_state[2];
23017 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
23018 u16 rfctrlintc_override_val;
23019 u16 clip_off[] = { 0xffff, 0xffff };
23020 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
23021 u8 vcm, min_vcm, vcm_tmp[4];
23022 u8 vcm_final[4] = { 0, 0, 0, 0 };
23023 u8 result_idx, ctr;
23024 s32 poll_results[4][4] = {
23030 s32 poll_miniq[4][2] = {
23037 s32 fine_digital_offset[4];
23038 s32 poll_results_min[4] = { 0, 0, 0, 0 };
23041 switch (rssi_type) {
23042 case NPHY_RSSI_SEL_NB:
23043 target_code = NPHY_RSSICAL_NB_TARGET;
23045 case NPHY_RSSI_SEL_W1:
23046 target_code = NPHY_RSSICAL_W1_TARGET;
23048 case NPHY_RSSI_SEL_W2:
23049 target_code = NPHY_RSSICAL_W2_TARGET;
23056 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
23057 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
23058 wlc_phy_clip_det_nphy(pi, 0, clip_state);
23059 wlc_phy_clip_det_nphy(pi, 1, clip_off);
23061 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
23062 rfctrlintc_override_val =
23063 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
23065 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
23066 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
23067 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
23068 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
23070 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
23071 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
23072 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
23073 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
23075 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
23076 RADIO_2055_WBRSSI_G2_PD;
23078 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
23080 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
23081 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
23082 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
23083 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
23084 RADIO_2055_WBRSSI_G2_SEL;
23085 rssi_ctrl_state[0] =
23086 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
23087 rssi_ctrl_state[1] =
23088 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
23089 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
23091 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
23092 NPHY_RAIL_I, rssi_type);
23093 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
23094 NPHY_RAIL_Q, rssi_type);
23096 for (vcm = 0; vcm < 4; vcm++) {
23098 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
23099 if (rssi_type != NPHY_RSSI_SEL_W2)
23100 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
23102 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
23103 NPHY_RSSICAL_NPOLL);
23105 if ((rssi_type == NPHY_RSSI_SEL_W1)
23106 || (rssi_type == NPHY_RSSI_SEL_W2)) {
23107 for (ctr = 0; ctr < 2; ctr++)
23108 poll_miniq[vcm][ctr] =
23109 min(poll_results[vcm][ctr * 2 + 0],
23110 poll_results[vcm][ctr * 2 + 1]);
23114 for (result_idx = 0; result_idx < 4; result_idx++) {
23115 min_d = NPHY_RSSICAL_MAXD;
23117 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
23118 for (vcm = 0; vcm < 4; vcm++) {
23119 curr_d = abs(((rssi_type == NPHY_RSSI_SEL_NB) ?
23120 poll_results[vcm][result_idx] :
23121 poll_miniq[vcm][result_idx / 2]) -
23122 (target_code * NPHY_RSSICAL_NPOLL));
23123 if (curr_d < min_d) {
23127 if (poll_results[vcm][result_idx] < min_poll)
23128 min_poll = poll_results[vcm][result_idx];
23130 vcm_final[result_idx] = min_vcm;
23131 poll_results_min[result_idx] = min_poll;
23134 if (rssi_type != NPHY_RSSI_SEL_W2)
23135 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
23137 for (result_idx = 0; result_idx < 4; result_idx++) {
23138 fine_digital_offset[result_idx] =
23139 (target_code * NPHY_RSSICAL_NPOLL) -
23140 poll_results[vcm_final[result_idx]][result_idx];
23141 if (fine_digital_offset[result_idx] < 0) {
23142 fine_digital_offset[result_idx] =
23143 abs(fine_digital_offset[result_idx]);
23144 fine_digital_offset[result_idx] +=
23145 (NPHY_RSSICAL_NPOLL / 2);
23146 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23147 fine_digital_offset[result_idx] =
23148 -fine_digital_offset[result_idx];
23150 fine_digital_offset[result_idx] +=
23151 (NPHY_RSSICAL_NPOLL / 2);
23152 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23155 if (poll_results_min[result_idx] ==
23156 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
23157 fine_digital_offset[result_idx] =
23158 (target_code - NPHY_RSSICAL_MAXREAD - 1);
23160 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
23162 fine_digital_offset[result_idx],
23164 0) ? RADIO_MIMO_CORESEL_CORE1 :
23165 RADIO_MIMO_CORESEL_CORE2,
23167 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
23171 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
23172 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
23173 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL)
23174 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23176 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL)
23177 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23179 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL)
23180 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23183 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23185 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL)
23186 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23188 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL)
23189 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23191 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL)
23192 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23195 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23198 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
23200 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
23201 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
23202 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
23203 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
23205 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
23206 wlc_phy_clip_det_nphy(pi, 1, clip_state);
23208 wlc_phy_resetcca_nphy(pi);
23211 void wlc_phy_rssi_cal_nphy(struct brcms_phy *pi)
23213 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23214 wlc_phy_rssi_cal_nphy_rev3(pi);
23216 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
23217 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
23218 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
23223 wlc_phy_rssi_compute_nphy(struct brcms_phy *pi, struct d11rxhdr *rxh)
23225 s16 rxpwr, rxpwr0, rxpwr1;
23226 s16 phyRx0_l, phyRx2_l;
23229 rxpwr0 = rxh->PhyRxStatus_1 & PRXS1_nphy_PWR0_MASK;
23230 rxpwr1 = (rxh->PhyRxStatus_1 & PRXS1_nphy_PWR1_MASK) >> 8;
23237 phyRx0_l = rxh->PhyRxStatus_0 & 0x00ff;
23238 phyRx2_l = rxh->PhyRxStatus_2 & 0x00ff;
23239 if (phyRx2_l > 127)
23242 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
23247 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
23248 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
23249 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
23250 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
23251 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
23252 rxpwr = (rxpwr0 + rxpwr1) >> 1;
23258 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
23262 u32 *data_buf = NULL;
23264 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
23265 if (data_buf == NULL)
23268 if (pi->phyhang_avoid)
23269 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23271 for (t = 0; t < num_samps; t++)
23272 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
23273 (((unsigned int)tone_buf[t].q) & 0x3ff);
23274 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
23279 if (pi->phyhang_avoid)
23280 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23284 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23287 u8 phy_bw, is_phybw40;
23288 u16 num_samps, t, spur;
23289 s32 theta = 0, rot = 0;
23291 struct cordic_iq *tone_buf = NULL;
23293 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
23294 phy_bw = (is_phybw40 == 1) ? 40 : 20;
23295 tbl_len = (phy_bw << 3);
23297 if (dac_test_mode == 1) {
23298 spur = read_phy_reg(pi, 0x01);
23299 spur = (spur >> 15) & 1;
23300 phy_bw = (spur == 1) ? 82 : 80;
23301 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
23303 tbl_len = (phy_bw << 1);
23306 tone_buf = kmalloc(sizeof(struct cordic_iq) * tbl_len, GFP_ATOMIC);
23307 if (tone_buf == NULL)
23310 num_samps = (u16) tbl_len;
23311 rot = ((f_kHz * 36) / phy_bw) / 100;
23314 for (t = 0; t < num_samps; t++) {
23316 tone_buf[t] = cordic_calc_iq(theta);
23320 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
23321 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
23324 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
23332 wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
23333 u16 wait, u8 iqmode, u8 dac_test_mode,
23334 bool modify_bbmult)
23337 u8 phy_bw, sample_cmd;
23338 u16 orig_RfseqCoreActv;
23339 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
23340 lpf_bw_ctl_miscreg4;
23342 if (pi->phyhang_avoid)
23343 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23346 if (CHSPEC_IS40(pi->radio_chanspec))
23349 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23351 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
23352 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
23353 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
23354 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23356 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23359 wlc_phy_rfctrl_override_nphy_rev7(
23362 wlc_phy_read_lpf_bw_ctl_nphy
23365 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23367 pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
23369 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23371 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23376 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
23378 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23380 pi->nphy_bb_mult_save =
23381 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
23384 if (modify_bbmult) {
23385 bb_mult = (phy_bw == 20) ? 100 : 71;
23386 bb_mult = (bb_mult << 8) + bb_mult;
23387 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23391 if (pi->phyhang_avoid)
23392 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23394 write_phy_reg(pi, 0xc6, num_samps - 1);
23396 if (loops != 0xffff)
23397 write_phy_reg(pi, 0xc4, loops - 1);
23399 write_phy_reg(pi, 0xc4, loops);
23401 write_phy_reg(pi, 0xc5, wait);
23403 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
23404 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
23407 and_phy_reg(pi, 0xc2, 0x7FFF);
23409 or_phy_reg(pi, 0xc2, 0x8000);
23412 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
23413 write_phy_reg(pi, 0xc3, sample_cmd);
23416 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
23418 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
23422 wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23423 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
23426 u16 loops = 0xffff;
23429 num_samps = wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val,
23431 if (num_samps == 0)
23434 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
23435 dac_test_mode, modify_bbmult);
23440 void wlc_phy_stopplayback_nphy(struct brcms_phy *pi)
23442 u16 playback_status;
23445 if (pi->phyhang_avoid)
23446 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23448 playback_status = read_phy_reg(pi, 0xc7);
23449 if (playback_status & 0x1)
23450 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
23451 else if (playback_status & 0x2)
23452 and_phy_reg(pi, 0xc2,
23453 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
23455 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
23457 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
23459 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
23460 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23463 pi->nphy_bb_mult_save = 0;
23466 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
23467 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
23468 wlc_phy_rfctrl_override_nphy_rev7(
23472 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23473 pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
23477 if (pi->phyhang_avoid)
23478 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23481 static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
23483 u32 *tx_pwrctrl_tbl = NULL;
23484 uint phyrev = pi->pubpi.phy_rev;
23488 wlc_phy_get_ipa_gaintbl_nphy(pi);
23490 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23491 if (NREV_IS(phyrev, 3))
23492 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev3;
23493 else if (NREV_IS(phyrev, 4))
23495 (pi->srom_fem5g.extpagain == 3) ?
23496 nphy_tpc_5GHz_txgain_HiPwrEPA :
23497 nphy_tpc_5GHz_txgain_rev4;
23499 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev5;
23501 if (NREV_GE(phyrev, 7)) {
23502 if (pi->pubpi.radiorev == 3)
23504 nphy_tpc_txgain_epa_2057rev3;
23505 else if (pi->pubpi.radiorev == 5)
23507 nphy_tpc_txgain_epa_2057rev5;
23509 if (NREV_GE(phyrev, 5) &&
23510 (pi->srom_fem2g.extpagain == 3))
23512 nphy_tpc_txgain_HiPwrEPA;
23515 nphy_tpc_txgain_rev3;
23519 return tx_pwrctrl_tbl;
23522 struct nphy_txgains wlc_phy_get_tx_gain_nphy(struct brcms_phy *pi)
23524 u16 base_idx[2], curr_gain[2];
23526 struct nphy_txgains target_gain;
23527 u32 *tx_pwrctrl_tbl = NULL;
23529 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
23530 if (pi->phyhang_avoid)
23531 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23533 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23536 if (pi->phyhang_avoid)
23537 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23539 for (core_no = 0; core_no < 2; core_no++) {
23540 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23541 target_gain.ipa[core_no] =
23542 curr_gain[core_no] & 0x0007;
23543 target_gain.pad[core_no] =
23544 ((curr_gain[core_no] & 0x00F8) >> 3);
23545 target_gain.pga[core_no] =
23546 ((curr_gain[core_no] & 0x0F00) >> 8);
23547 target_gain.txgm[core_no] =
23548 ((curr_gain[core_no] & 0x7000) >> 12);
23549 target_gain.txlpf[core_no] =
23550 ((curr_gain[core_no] & 0x8000) >> 15);
23551 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23552 target_gain.ipa[core_no] =
23553 curr_gain[core_no] & 0x000F;
23554 target_gain.pad[core_no] =
23555 ((curr_gain[core_no] & 0x00F0) >> 4);
23556 target_gain.pga[core_no] =
23557 ((curr_gain[core_no] & 0x0F00) >> 8);
23558 target_gain.txgm[core_no] =
23559 ((curr_gain[core_no] & 0x7000) >> 12);
23561 target_gain.ipa[core_no] =
23562 curr_gain[core_no] & 0x0003;
23563 target_gain.pad[core_no] =
23564 ((curr_gain[core_no] & 0x000C) >> 2);
23565 target_gain.pga[core_no] =
23566 ((curr_gain[core_no] & 0x0070) >> 4);
23567 target_gain.txgm[core_no] =
23568 ((curr_gain[core_no] & 0x0380) >> 7);
23572 uint phyrev = pi->pubpi.phy_rev;
23574 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
23575 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
23576 for (core_no = 0; core_no < 2; core_no++) {
23577 if (NREV_GE(phyrev, 3)) {
23579 brcms_phy_get_tx_pwrctrl_tbl(pi);
23580 if (NREV_GE(phyrev, 7)) {
23581 target_gain.ipa[core_no] =
23583 [base_idx[core_no]]
23585 target_gain.pad[core_no] =
23587 [base_idx[core_no]]
23589 target_gain.pga[core_no] =
23591 [base_idx[core_no]]
23593 target_gain.txgm[core_no] =
23595 [base_idx[core_no]]
23597 target_gain.txlpf[core_no] =
23599 [base_idx[core_no]]
23602 target_gain.ipa[core_no] =
23604 [base_idx[core_no]]
23606 target_gain.pad[core_no] =
23608 [base_idx[core_no]]
23610 target_gain.pga[core_no] =
23612 [base_idx[core_no]]
23614 target_gain.txgm[core_no] =
23616 [base_idx[core_no]]
23620 target_gain.ipa[core_no] =
23621 (nphy_tpc_txgain[base_idx[core_no]] >>
23623 target_gain.pad[core_no] =
23624 (nphy_tpc_txgain[base_idx[core_no]] >>
23626 target_gain.pga[core_no] =
23627 (nphy_tpc_txgain[base_idx[core_no]] >>
23629 target_gain.txgm[core_no] =
23630 (nphy_tpc_txgain[base_idx[core_no]] >>
23636 return target_gain;
23640 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
23641 struct nphy_txgains target_gain,
23642 struct nphy_iqcal_params *params)
23647 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
23649 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23650 if (NREV_GE(pi->pubpi.phy_rev, 7))
23651 params->txlpf = target_gain.txlpf[core_no];
23653 params->txgm = target_gain.txgm[core_no];
23654 params->pga = target_gain.pga[core_no];
23655 params->pad = target_gain.pad[core_no];
23656 params->ipa = target_gain.ipa[core_no];
23657 if (NREV_GE(pi->pubpi.phy_rev, 7))
23659 ((params->txlpf << 15) | (params->txgm << 12) |
23660 (params->pga << 8) |
23661 (params->pad << 3) | (params->ipa));
23664 ((params->txgm << 12) | (params->pga << 8) |
23665 (params->pad << 4) | (params->ipa));
23667 params->ncorr[0] = 0x79;
23668 params->ncorr[1] = 0x79;
23669 params->ncorr[2] = 0x79;
23670 params->ncorr[3] = 0x79;
23671 params->ncorr[4] = 0x79;
23674 gain_index = ((target_gain.pad[core_no] << 0) |
23675 (target_gain.pga[core_no] << 4) |
23676 (target_gain.txgm[core_no] << 8));
23679 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
23680 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
23687 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
23688 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
23689 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
23690 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
23691 (params->pad << 2));
23692 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
23693 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
23694 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
23695 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
23699 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
23701 u16 jtag_core, core;
23703 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23705 for (core = 0; core <= 1; core++) {
23707 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23708 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23711 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23712 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23715 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23716 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23719 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23720 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23723 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
23725 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23726 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23729 if (pi->pubpi.radiorev != 5)
23730 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23731 READ_RADIO_REG3(pi, RADIO_2057, TX,
23735 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23736 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
23738 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23739 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23742 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23743 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23744 TX_SSI_MASTER, 0x0a);
23745 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23746 IQCAL_VCM_HG, 0x43);
23747 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23749 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23751 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23753 if (pi->use_int_tx_iqlo_cal_nphy) {
23754 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23755 core, TX_SSI_MUX, 0x4);
23757 internal_tx_iqlo_cal_tapoff_intpa_nphy))
23758 WRITE_RADIO_REG3(pi, RADIO_2057,
23762 WRITE_RADIO_REG3(pi, RADIO_2057,
23766 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23769 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23770 TX_SSI_MASTER, 0x06);
23771 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23772 IQCAL_VCM_HG, 0x43);
23773 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23775 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23778 if (pi->pubpi.radiorev != 5)
23779 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23780 core, TSSIA, 0x00);
23781 if (pi->use_int_tx_iqlo_cal_nphy) {
23782 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23786 internal_tx_iqlo_cal_tapoff_intpa_nphy))
23787 WRITE_RADIO_REG3(pi, RADIO_2057,
23791 WRITE_RADIO_REG3(pi, RADIO_2057,
23795 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23799 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23801 for (core = 0; core <= 1; core++) {
23804 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23806 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23808 RADIO_2056_TX_TX_SSI_MASTER |
23811 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23813 RADIO_2056_TX_IQCAL_VCM_HG |
23816 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23818 RADIO_2056_TX_IQCAL_IDAC |
23821 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23824 RADIO_2056_TX_TSSI_VCM |
23827 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
23829 RADIO_2056_TX_TX_AMP_DET |
23832 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23834 RADIO_2056_TX_TX_SSI_MUX |
23837 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23839 RADIO_2056_TX_TSSIA | jtag_core);
23841 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23843 RADIO_2056_TX_TSSIG | jtag_core);
23845 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23847 RADIO_2056_TX_TSSI_MISC1 |
23850 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
23852 RADIO_2056_TX_TSSI_MISC2 |
23855 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
23857 RADIO_2056_TX_TSSI_MISC3 |
23860 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23861 write_radio_reg(pi,
23862 RADIO_2056_TX_TX_SSI_MASTER |
23864 write_radio_reg(pi,
23865 RADIO_2056_TX_IQCAL_VCM_HG |
23867 write_radio_reg(pi,
23868 RADIO_2056_TX_IQCAL_IDAC |
23870 write_radio_reg(pi,
23871 RADIO_2056_TX_TSSI_VCM |
23873 write_radio_reg(pi,
23874 RADIO_2056_TX_TX_AMP_DET |
23880 RADIO_2056_TX_TX_SSI_MUX
23882 write_radio_reg(pi,
23883 RADIO_2056_TX_TSSIA |
23888 RADIO_2056_TX_TX_SSI_MUX
23889 | jtag_core, 0x00);
23890 write_radio_reg(pi,
23891 RADIO_2056_TX_TSSIA |
23894 write_radio_reg(pi,
23895 RADIO_2056_TX_TSSIG | jtag_core,
23897 write_radio_reg(pi,
23898 RADIO_2056_TX_TSSI_MISC1 |
23901 write_radio_reg(pi,
23902 RADIO_2056_TX_TSSI_MISC2 |
23904 write_radio_reg(pi,
23905 RADIO_2056_TX_TSSI_MISC3 |
23908 write_radio_reg(pi,
23909 RADIO_2056_TX_TX_SSI_MASTER |
23911 write_radio_reg(pi,
23912 RADIO_2056_TX_IQCAL_VCM_HG |
23914 write_radio_reg(pi,
23915 RADIO_2056_TX_IQCAL_IDAC |
23917 write_radio_reg(pi,
23918 RADIO_2056_TX_TSSI_VCM |
23920 write_radio_reg(pi,
23921 RADIO_2056_TX_TX_AMP_DET |
23923 write_radio_reg(pi,
23924 RADIO_2056_TX_TSSIA | jtag_core,
23931 RADIO_2056_TX_TX_SSI_MUX
23932 | jtag_core, 0x06);
23933 if (NREV_LT(pi->pubpi.phy_rev, 5))
23936 RADIO_2056_TX_TSSIG
23942 RADIO_2056_TX_TSSIG
23948 RADIO_2056_TX_TX_SSI_MUX
23949 | jtag_core, 0x00);
23950 write_radio_reg(pi,
23951 RADIO_2056_TX_TSSIG |
23955 write_radio_reg(pi,
23956 RADIO_2056_TX_TSSI_MISC1 |
23958 write_radio_reg(pi,
23959 RADIO_2056_TX_TSSI_MISC2 |
23961 write_radio_reg(pi,
23962 RADIO_2056_TX_TSSI_MISC3 |
23968 pi->tx_rx_cal_radio_saveregs[0] =
23969 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23970 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23971 pi->tx_rx_cal_radio_saveregs[1] =
23972 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23973 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23975 pi->tx_rx_cal_radio_saveregs[2] =
23976 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23977 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23978 pi->tx_rx_cal_radio_saveregs[3] =
23979 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23980 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23982 pi->tx_rx_cal_radio_saveregs[4] =
23983 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23984 pi->tx_rx_cal_radio_saveregs[5] =
23985 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23987 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23990 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23991 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23994 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23995 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23998 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24000 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
24001 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
24004 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
24005 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
24010 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
24012 u16 jtag_core, core;
24014 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24015 for (core = 0; core <= 1; core++) {
24017 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24020 tx_rx_cal_radio_saveregs[(core * 11) +
24023 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
24025 tx_rx_cal_radio_saveregs[(core * 11) +
24028 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
24030 tx_rx_cal_radio_saveregs[(core * 11) +
24033 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
24035 tx_rx_cal_radio_saveregs[(core * 11) +
24038 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
24040 tx_rx_cal_radio_saveregs[(core * 11) +
24043 if (pi->pubpi.radiorev != 5)
24044 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24046 pi->tx_rx_cal_radio_saveregs
24047 [(core * 11) + 6]);
24049 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
24051 tx_rx_cal_radio_saveregs[(core * 11) +
24054 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
24056 tx_rx_cal_radio_saveregs[(core * 11) +
24059 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24060 for (core = 0; core <= 1; core++) {
24061 jtag_core = (core == PHY_CORE_0) ?
24062 RADIO_2056_TX0 : RADIO_2056_TX1;
24064 write_radio_reg(pi,
24065 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
24067 tx_rx_cal_radio_saveregs[(core * 11) +
24070 write_radio_reg(pi,
24071 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
24073 tx_rx_cal_radio_saveregs[(core * 11) +
24076 write_radio_reg(pi,
24077 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
24079 tx_rx_cal_radio_saveregs[(core * 11) +
24082 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
24084 tx_rx_cal_radio_saveregs[(core * 11) +
24087 write_radio_reg(pi,
24088 RADIO_2056_TX_TX_AMP_DET | jtag_core,
24090 tx_rx_cal_radio_saveregs[(core * 11) +
24093 write_radio_reg(pi,
24094 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
24096 tx_rx_cal_radio_saveregs[(core * 11) +
24099 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
24101 tx_rx_cal_radio_saveregs[(core * 11) +
24104 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
24106 tx_rx_cal_radio_saveregs[(core * 11) +
24109 write_radio_reg(pi,
24110 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
24112 tx_rx_cal_radio_saveregs[(core * 11) +
24115 write_radio_reg(pi,
24116 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
24118 tx_rx_cal_radio_saveregs[(core * 11) +
24121 write_radio_reg(pi,
24122 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
24124 tx_rx_cal_radio_saveregs[(core * 11) +
24129 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
24130 pi->tx_rx_cal_radio_saveregs[0]);
24131 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
24132 pi->tx_rx_cal_radio_saveregs[1]);
24133 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
24134 pi->tx_rx_cal_radio_saveregs[2]);
24135 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
24136 pi->tx_rx_cal_radio_saveregs[3]);
24137 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
24138 pi->tx_rx_cal_radio_saveregs[4]);
24139 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
24140 pi->tx_rx_cal_radio_saveregs[5]);
24144 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
24148 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24149 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24150 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24152 mask = ((0x3 << 8) | (0x3 << 10));
24154 val |= (0x2 << 10);
24155 mod_phy_reg(pi, 0xa6, mask, val);
24156 mod_phy_reg(pi, 0xa7, mask, val);
24158 val = read_phy_reg(pi, 0x8f);
24159 pi->tx_rx_cal_phy_saveregs[2] = val;
24160 val |= ((0x1 << 9) | (0x1 << 10));
24161 write_phy_reg(pi, 0x8f, val);
24163 val = read_phy_reg(pi, 0xa5);
24164 pi->tx_rx_cal_phy_saveregs[3] = val;
24165 val |= ((0x1 << 9) | (0x1 << 10));
24166 write_phy_reg(pi, 0xa5, val);
24168 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
24169 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
24171 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24173 pi->tx_rx_cal_phy_saveregs[5] = val;
24175 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24178 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24180 pi->tx_rx_cal_phy_saveregs[6] = val;
24182 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24185 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
24186 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
24188 if (!(pi->use_int_tx_iqlo_cal_nphy))
24189 wlc_phy_rfctrlintc_override_nphy(
24191 NPHY_RfctrlIntc_override_PA,
24193 RADIO_MIMO_CORESEL_CORE1
24195 RADIO_MIMO_CORESEL_CORE2);
24197 wlc_phy_rfctrlintc_override_nphy(
24199 NPHY_RfctrlIntc_override_PA,
24201 RADIO_MIMO_CORESEL_CORE1
24203 RADIO_MIMO_CORESEL_CORE2);
24205 wlc_phy_rfctrlintc_override_nphy(pi,
24206 NPHY_RfctrlIntc_override_TRSW,
24207 0x2, RADIO_MIMO_CORESEL_CORE1);
24208 wlc_phy_rfctrlintc_override_nphy(pi,
24209 NPHY_RfctrlIntc_override_TRSW,
24210 0x8, RADIO_MIMO_CORESEL_CORE2);
24212 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
24213 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
24214 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
24215 0x29b, (0x1 << 0), (0) << 0);
24217 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
24218 0x29b, (0x1 << 0), (0) << 0);
24220 if (NREV_IS(pi->pubpi.phy_rev, 7)
24221 || NREV_GE(pi->pubpi.phy_rev, 8))
24222 wlc_phy_rfctrl_override_nphy_rev7(
24224 wlc_phy_read_lpf_bw_ctl_nphy
24227 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24229 if (pi->use_int_tx_iqlo_cal_nphy
24230 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24232 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24234 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24237 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24240 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24244 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24249 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24253 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24256 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24257 wlc_phy_rfctrl_override_nphy_rev7(
24261 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24265 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24266 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24268 mask = ((0x3 << 12) | (0x3 << 14));
24270 val |= (0x2 << 14);
24271 mod_phy_reg(pi, 0xa6, mask, val);
24272 mod_phy_reg(pi, 0xa7, mask, val);
24274 val = read_phy_reg(pi, 0xa5);
24275 pi->tx_rx_cal_phy_saveregs[2] = val;
24276 val |= ((0x1 << 12) | (0x1 << 13));
24277 write_phy_reg(pi, 0xa5, val);
24279 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24281 pi->tx_rx_cal_phy_saveregs[3] = val;
24283 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24286 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24288 pi->tx_rx_cal_phy_saveregs[4] = val;
24290 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24293 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
24294 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
24295 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
24296 write_phy_reg(pi, 0x91, val);
24297 write_phy_reg(pi, 0x92, val);
24301 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
24305 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24306 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
24307 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
24308 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
24309 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
24310 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
24312 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24313 &pi->tx_rx_cal_phy_saveregs[5]);
24314 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24315 &pi->tx_rx_cal_phy_saveregs[6]);
24317 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
24318 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
24320 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
24321 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
24323 if (NREV_IS(pi->pubpi.phy_rev, 7)
24324 || NREV_GE(pi->pubpi.phy_rev, 8))
24325 wlc_phy_rfctrl_override_nphy_rev7(
24326 pi, (0x1 << 7), 0, 0,
24328 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24330 wlc_phy_resetcca_nphy(pi);
24332 if (pi->use_int_tx_iqlo_cal_nphy
24333 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24335 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24336 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24339 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24343 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24348 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24352 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24356 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24358 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24359 wlc_phy_rfctrl_override_nphy_rev7(
24363 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24367 mask = ((0x3 << 12) | (0x3 << 14));
24368 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
24369 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
24370 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
24372 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24373 &pi->tx_rx_cal_phy_saveregs[3]);
24375 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24376 &pi->tx_rx_cal_phy_saveregs[4]);
24378 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
24379 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
24384 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
24387 s32 temp, pwrindex[2];
24393 tssi_reg = read_phy_reg(pi, 0x1e9);
24395 temp = (s32) (tssi_reg & 0x3f);
24396 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
24398 temp = (s32) ((tssi_reg >> 8) & 0x3f);
24399 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
24402 CHSPEC_IS5G(pi->radio_chanspec) ?
24403 (u8)NPHY_RSSI_SEL_TSSI_5G : (u8)NPHY_RSSI_SEL_TSSI_2G;
24405 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
24407 tssival[0] = rssi_buf[0] / ((s32) num_samps);
24408 tssival[1] = rssi_buf[2] / ((s32) num_samps);
24410 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
24411 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
24413 if (pwrindex[0] < 0)
24415 else if (pwrindex[0] > 63)
24418 if (pwrindex[1] < 0)
24420 else if (pwrindex[1] > 63)
24423 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
24424 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
24425 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
24426 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
24429 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
24436 struct nphy_txiqcal_ladder ladder_lo[] = {
24437 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24438 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
24439 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
24442 struct nphy_txiqcal_ladder ladder_iq[] = {
24443 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24444 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
24445 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
24448 bbmult = (core == PHY_CORE_0) ?
24449 ((pi->nphy_txcal_bbmult >> 8) & 0xff) :
24450 (pi->nphy_txcal_bbmult & 0xff);
24452 for (index = 0; index < 18; index++) {
24453 bbmult_scale = ladder_lo[index].percent * bbmult;
24454 bbmult_scale /= 100;
24457 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
24458 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
24461 bbmult_scale = ladder_iq[index].percent * bbmult;
24462 bbmult_scale /= 100;
24465 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
24466 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
24471 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
24474 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
24476 tmp = (tmp & (0x7f << 8)) >> 8;
24481 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
24483 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
24485 if (NREV_GT(pi->pubpi.phy_rev, 1))
24486 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
24489 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
24493 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
24498 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
24500 u16 m0m1 = (u16) ((m0 << 8) | m1);
24502 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
24503 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
24507 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
24508 struct nphy_papd_restore_state *state, u8 core)
24514 off_core = core ^ 0x1;
24515 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24517 if (NREV_IS(pi->pubpi.phy_rev, 7)
24518 || NREV_GE(pi->pubpi.phy_rev, 8))
24519 wlc_phy_rfctrl_override_nphy_rev7(
24521 wlc_phy_read_lpf_bw_ctl_nphy
24524 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24526 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24527 if (pi->pubpi.radiorev == 5)
24528 mixgain = (core == 0) ? 0x20 : 0x00;
24529 else if ((pi->pubpi.radiorev == 7)
24530 || (pi->pubpi.radiorev == 8))
24532 else if ((pi->pubpi.radiorev <= 4)
24533 || (pi->pubpi.radiorev == 6))
24536 if ((pi->pubpi.radiorev == 4) ||
24537 (pi->pubpi.radiorev == 6))
24539 else if ((pi->pubpi.radiorev == 3)
24540 || (pi->pubpi.radiorev == 7)
24541 || (pi->pubpi.radiorev == 8))
24545 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
24546 mixgain, (1 << core), 0,
24547 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24549 wlc_phy_rfctrl_override_1tomany_nphy(
24551 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24552 1, (1 << core), 0);
24553 wlc_phy_rfctrl_override_1tomany_nphy(
24555 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24556 0, (1 << off_core), 0);
24558 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24560 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24561 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
24563 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24564 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
24566 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24567 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
24569 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24570 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
24572 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24573 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
24575 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24576 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
24578 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24579 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
24581 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24583 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
24585 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24586 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
24588 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24590 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24592 state->afeoverride[core] =
24593 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24594 state->afectrl[off_core] =
24595 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
24596 state->afeoverride[off_core] =
24597 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
24599 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24601 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24602 0xa5), (0x1 << 2), (0x1 << 2));
24604 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
24605 (0x1 << 2), (0x1 << 2));
24606 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
24607 0x8f), (0x1 << 2), (0x1 << 2));
24609 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24610 state->pwrup[core] =
24611 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24612 TXRXCOUPLE_2G_PWRUP);
24613 state->atten[core] =
24614 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24615 TXRXCOUPLE_2G_ATTEN);
24616 state->pwrup[off_core] =
24617 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24618 TXRXCOUPLE_2G_PWRUP);
24619 state->atten[off_core] =
24620 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24621 TXRXCOUPLE_2G_ATTEN);
24623 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24624 TXRXCOUPLE_2G_PWRUP, 0xc);
24626 if ((pi->pubpi.radiorev == 3) ||
24627 (pi->pubpi.radiorev == 4) ||
24628 (pi->pubpi.radiorev == 6))
24629 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24630 TXRXCOUPLE_2G_ATTEN, 0xf0);
24631 else if (pi->pubpi.radiorev == 5)
24632 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24633 TXRXCOUPLE_2G_ATTEN,
24634 (core == 0) ? 0xf7 : 0xf2);
24635 else if ((pi->pubpi.radiorev == 7)
24636 || (pi->pubpi.radiorev == 8))
24637 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24638 TXRXCOUPLE_2G_ATTEN, 0xf0);
24640 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24641 TXRXCOUPLE_2G_PWRUP, 0x0);
24642 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24643 TXRXCOUPLE_2G_ATTEN, 0xff);
24645 state->pwrup[core] =
24646 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24647 TXRXCOUPLE_5G_PWRUP);
24648 state->atten[core] =
24649 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24650 TXRXCOUPLE_5G_ATTEN);
24651 state->pwrup[off_core] =
24652 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24653 TXRXCOUPLE_5G_PWRUP);
24654 state->atten[off_core] =
24655 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24656 TXRXCOUPLE_5G_ATTEN);
24658 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24659 TXRXCOUPLE_5G_PWRUP, 0xc);
24661 if ((pi->pubpi.radiorev == 7)
24662 || (pi->pubpi.radiorev == 8))
24663 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24664 TXRXCOUPLE_5G_ATTEN, 0xf4);
24667 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24668 TXRXCOUPLE_5G_ATTEN, 0xf0);
24670 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24671 TXRXCOUPLE_5G_PWRUP, 0x0);
24672 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24673 TXRXCOUPLE_5G_ATTEN, 0xff);
24678 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24680 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24681 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
24683 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24684 0x2a4, (0x1 << 13), (1) << 13);
24686 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24687 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
24689 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
24690 0x2a4, (0x1 << 13), (0) << 13);
24694 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
24696 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
24698 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
24700 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
24701 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
24703 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24705 state->afeoverride[core] =
24706 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24708 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24709 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
24710 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24714 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
24716 state->vga_master[core] =
24717 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
24718 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
24719 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24720 state->fbmix[core] =
24721 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24723 state->intpa_master[core] =
24724 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24727 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
24729 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24730 INTPAG_MASTER, 0x04);
24732 state->fbmix[core] =
24733 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24735 state->intpa_master[core] =
24736 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24739 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
24741 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24742 INTPAA_MASTER, 0x04);
24748 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24750 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24751 0x29b, (0x1 << 0), (1) << 0);
24753 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24754 0x29b, (0x1 << 0), (0) << 0);
24756 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
24761 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
24762 struct nphy_papd_restore_state *state)
24766 wlc_phy_stopplayback_nphy(pi);
24768 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24770 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24772 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24773 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24774 TXRXCOUPLE_2G_PWRUP, 0);
24775 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24776 TXRXCOUPLE_2G_ATTEN,
24777 state->atten[core]);
24779 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24780 TXRXCOUPLE_5G_PWRUP, 0);
24781 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24782 TXRXCOUPLE_5G_ATTEN,
24783 state->atten[core]);
24787 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
24788 wlc_phy_rfctrl_override_nphy_rev7(
24791 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24793 wlc_phy_rfctrl_override_nphy_rev7(
24796 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24798 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
24800 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24801 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24802 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24803 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
24804 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24805 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
24806 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24807 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
24808 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24809 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
24810 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24811 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
24812 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24813 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
24814 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24815 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24816 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24817 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
24818 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24819 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
24820 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24821 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
24822 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24823 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
24824 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24825 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
24826 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24827 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
24828 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24829 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
24830 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24832 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24834 write_phy_reg(pi, (core == PHY_CORE_0) ?
24835 0xa6 : 0xa7, state->afectrl[core]);
24836 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24837 0xa5, state->afeoverride[core]);
24840 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24841 (state->mm & 0xff));
24843 if (NREV_IS(pi->pubpi.phy_rev, 7)
24844 || NREV_GE(pi->pubpi.phy_rev, 8))
24845 wlc_phy_rfctrl_override_nphy_rev7(
24846 pi, (0x1 << 7), 0, 0,
24848 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24850 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
24851 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
24852 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
24854 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
24855 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
24857 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24859 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
24860 state->vga_master[core]);
24861 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24862 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24863 TXFBMIX_G, state->fbmix[core]);
24864 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24866 state->intpa_master[core]);
24868 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24869 TXFBMIX_A, state->fbmix[core]);
24870 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24872 state->intpa_master[core]);
24875 write_phy_reg(pi, (core == PHY_CORE_0) ?
24876 0xa6 : 0xa7, state->afectrl[core]);
24877 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24878 0xa5, state->afeoverride[core]);
24881 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24882 (state->mm & 0xff));
24884 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
24889 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
24892 u32 *buf, *src, *dst, sz;
24894 sz = end - start + 1;
24896 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
24901 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
24903 wlc_phy_table_read_nphy(pi,
24905 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
24906 NPHY_TBL_ID_EPSILONTBL1),
24907 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
24910 u32 phy_a1, phy_a2;
24911 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
24913 phy_a1 = end - min(end, (winsz >> 1));
24914 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1,
24915 end + (winsz >> 1));
24916 phy_a3 = phy_a2 - phy_a1 + 1;
24921 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
24925 } while (phy_a2-- != phy_a1);
24929 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
24930 } while (end-- != start);
24932 wlc_phy_table_write_nphy(pi,
24934 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
24935 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
24941 wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
24942 enum phy_cal_mode cal_mode, u8 core)
24944 u16 phy_a1, phy_a2, phy_a3;
24945 u16 phy_a4, phy_a5;
24949 struct nphy_txgains phy_a9;
24951 if (NREV_LT(pi->pubpi.phy_rev, 3))
24954 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
24956 phy_a6 = ((cal_mode == CAL_GCTRL)
24957 || (cal_mode == CAL_SOFT)) ? true : false;
24959 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24961 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
24963 if (CHSPEC_IS2G(pi->radio_chanspec))
24964 phy_a5 = ((phy_a9.txlpf[core] << 15) |
24965 (phy_a9.txgm[core] << 12) |
24966 (phy_a9.pga[core] << 8) |
24967 (txgains->gains.pad[core] << 3) |
24968 (phy_a9.ipa[core]));
24970 phy_a5 = ((phy_a9.txlpf[core] << 15) |
24971 (phy_a9.txgm[core] << 12) |
24972 (txgains->gains.pga[core] << 8) |
24973 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
24975 wlc_phy_rfctrl_override_1tomany_nphy(
24977 NPHY_REV7_RfctrlOverride_cmd_txgain,
24978 phy_a5, (1 << core), 0);
24980 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24981 if ((pi->pubpi.radiorev <= 4)
24982 || (pi->pubpi.radiorev == 6))
24983 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24986 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24989 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
24993 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
24997 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24998 if ((pi->pubpi.radiorev == 4)
24999 || (pi->pubpi.radiorev == 6)) {
25007 if ((pi->pubpi.radiorev == 5)
25008 || (pi->pubpi.radiorev == 7)
25009 || (pi->pubpi.radiorev == 8)) {
25018 if (cal_mode == CAL_GCTRL) {
25019 if ((pi->pubpi.radiorev == 5)
25020 && (CHSPEC_IS2G(pi->radio_chanspec)))
25022 else if (((pi->pubpi.radiorev == 7) &&
25023 (CHSPEC_IS2G(pi->radio_chanspec))) ||
25024 ((pi->pubpi.radiorev == 8) &&
25025 (CHSPEC_IS2G(pi->radio_chanspec))))
25030 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
25036 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25037 0x29b, (0x1 << 0), (1) << 0);
25039 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25040 0x29b, (0x1 << 0), (0) << 0);
25042 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25043 0x2a4, (0x1 << 13), (1) << 13);
25045 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25046 0x2a4, (0x1 << 13), (0) << 13);
25048 write_phy_reg(pi, 0x2a1, 0x80);
25049 write_phy_reg(pi, 0x2a2, 0x100);
25051 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25052 0x2a4, (0x7 << 4), (11) << 4);
25054 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25055 0x2a4, (0x7 << 8), (11) << 8);
25057 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25058 0x2a4, (0x7 << 0), (0x3) << 0);
25060 write_phy_reg(pi, 0x2e5, 0x20);
25062 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25064 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25066 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25068 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25069 1, ((core == 0) ? 1 : 2), 0,
25070 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25071 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25072 0, ((core == 0) ? 2 : 1), 0,
25073 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25075 write_phy_reg(pi, 0x2be, 1);
25076 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25078 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25080 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25082 wlc_phy_table_write_nphy(pi,
25084 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
25085 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25088 if (cal_mode != CAL_GCTRL) {
25089 if (CHSPEC_IS5G(pi->radio_chanspec))
25090 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
25093 wlc_phy_rfctrl_override_1tomany_nphy(
25095 NPHY_REV7_RfctrlOverride_cmd_txgain,
25096 phy_a5, (1 << core), 1);
25101 if (txgains->useindex) {
25102 phy_a4 = 15 - ((txgains->index) >> 3);
25103 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25104 if (NREV_GE(pi->pubpi.phy_rev, 6))
25105 phy_a5 = 0x00f7 | (phy_a4 << 8);
25108 if (NREV_IS(pi->pubpi.phy_rev, 5))
25109 phy_a5 = 0x10f7 | (phy_a4 << 8);
25111 phy_a5 = 0x50f7 | (phy_a4 << 8);
25113 phy_a5 = 0x70f7 | (phy_a4 << 8);
25115 wlc_phy_rfctrl_override_nphy(pi,
25120 wlc_phy_rfctrl_override_nphy(pi,
25127 if (CHSPEC_IS2G(pi->radio_chanspec))
25128 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 45 : 64;
25130 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
25133 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
25137 if (cal_mode == CAL_FULL) {
25140 } else if (cal_mode == CAL_SOFT) {
25143 } else if (cal_mode == CAL_GCTRL) {
25152 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25153 0x29b, (0x1 << 0), (1) << 0);
25155 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25156 0x29b, (0x1 << 0), (0) << 0);
25158 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25159 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25160 0x2a4, (0x1 << 13), (1) << 13);
25162 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25163 0x2a4, (0x1 << 13), (0) << 13);
25165 write_phy_reg(pi, 0x2a1, 0x20);
25166 write_phy_reg(pi, 0x2a2, 0x60);
25168 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25169 0x2a4, (0xf << 4), (9) << 4);
25171 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25172 0x2a4, (0xf << 8), (9) << 8);
25174 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25175 0x2a4, (0xf << 0), (0x2) << 0);
25177 write_phy_reg(pi, 0x2e5, 0x20);
25179 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25180 0x2a4, (0x1 << 11), (1) << 11);
25182 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25183 0x2a4, (0x1 << 11), (0) << 11);
25185 write_phy_reg(pi, 0x2a1, 0x80);
25186 write_phy_reg(pi, 0x2a2, 0x600);
25188 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25189 0x2a4, (0x7 << 4), (0) << 4);
25191 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25192 0x2a4, (0x7 << 8), (0) << 8);
25194 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25195 0x2a4, (0x7 << 0), (0x3) << 0);
25197 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
25201 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25203 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25205 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25207 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
25209 write_phy_reg(pi, 0x2be, 1);
25210 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25212 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
25214 wlc_phy_table_write_nphy(pi,
25216 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
25217 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25220 if (cal_mode != CAL_GCTRL)
25221 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
25225 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
25230 struct nphy_ipa_txcalgains phy_a4;
25231 bool phy_a5 = false;
25232 bool phy_a6 = true;
25233 s32 phy_a7, phy_a8;
25236 bool phy_a11 = false;
25240 u8 *phy_a15 = NULL;
25242 phy_a4.useindex = true;
25243 phy_a12 = start_gain;
25245 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25250 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25251 if (pi->pubpi.radiorev == 5) {
25253 phy_a15 = pad_gain_codes_used_2057rev5;
25255 sizeof(pad_gain_codes_used_2057rev5) /
25256 sizeof(pad_gain_codes_used_2057rev5
25259 } else if ((pi->pubpi.radiorev == 7)
25260 || (pi->pubpi.radiorev == 8)) {
25262 phy_a15 = pad_gain_codes_used_2057rev7;
25264 sizeof(pad_gain_codes_used_2057rev7) /
25265 sizeof(pad_gain_codes_used_2057rev7
25270 phy_a15 = pad_all_gain_codes_2057;
25271 phy_a13 = sizeof(pad_all_gain_codes_2057) /
25272 sizeof(pad_all_gain_codes_2057[0]) -
25278 phy_a15 = pga_all_gain_codes_2057;
25279 phy_a13 = sizeof(pga_all_gain_codes_2057) /
25280 sizeof(pga_all_gain_codes_2057[0]) - 1;
25285 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25286 if (CHSPEC_IS2G(pi->radio_chanspec))
25287 phy_a4.gains.pad[core] =
25288 (u16) phy_a15[phy_a12];
25290 phy_a4.gains.pga[core] =
25291 (u16) phy_a15[phy_a12];
25293 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25295 wlc_phy_table_read_nphy(pi,
25298 NPHY_TBL_ID_EPSILONTBL0 :
25299 NPHY_TBL_ID_EPSILONTBL1), 1,
25302 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25304 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25305 (phy_a8 == 4095) || (phy_a8 == -4096));
25307 if (!phy_a6 && (phy_a3 != phy_a5)) {
25309 phy_a12 -= (u8) phy_a1;
25316 phy_a12 += (u8) phy_a1;
25318 phy_a12 -= (u8) phy_a1;
25320 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
25321 if (phy_a12 < phy_a14)
25337 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25338 phy_a4.index = (u8) phy_a12;
25339 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25341 wlc_phy_table_read_nphy(pi,
25344 NPHY_TBL_ID_EPSILONTBL0 :
25345 NPHY_TBL_ID_EPSILONTBL1), 1,
25348 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25350 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25351 (phy_a8 == 4095) || (phy_a8 == -4096));
25353 if (!phy_a6 && (phy_a3 != phy_a5)) {
25355 phy_a12 -= (u8) phy_a1;
25362 phy_a12 += (u8) phy_a1;
25364 phy_a12 -= (u8) phy_a1;
25366 if ((phy_a12 < 0) || (phy_a12 > 127)) {
25382 if (NREV_GE(pi->pubpi.phy_rev, 7))
25383 return (u8) phy_a15[phy_a12];
25385 return (u8) phy_a12;
25389 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
25391 struct nphy_ipa_txcalgains phy_b1[2];
25392 struct nphy_papd_restore_state phy_b2;
25396 s16 phy_b6, phy_b7, phy_b8;
25398 s16 phy_b10, phy_b11, phy_b12;
25406 if (pi->nphy_papd_skip == 1)
25409 phy_b3 = (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
25411 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25413 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25415 pi->nphy_force_papd_cal = false;
25417 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
25418 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
25419 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
25421 pi->nphy_papd_last_cal = pi->sh->now;
25422 pi->nphy_papd_recal_counter++;
25424 phy_b4 = pi->nphy_txpwrctrl;
25425 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25427 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
25428 nphy_papd_scaltbl);
25429 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
25430 nphy_papd_scaltbl);
25432 phy_b9 = read_phy_reg(pi, 0x01);
25433 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25435 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25437 for (i = 0; i < 64; i++)
25438 wlc_phy_table_write_nphy(pi,
25441 NPHY_TBL_ID_EPSILONTBL0 :
25442 NPHY_TBL_ID_EPSILONTBL1), 1,
25446 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
25448 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
25449 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25450 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
25452 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25453 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25454 if ((pi->pubpi.radiorev == 3)
25455 || (pi->pubpi.radiorev == 4)
25456 || (pi->pubpi.radiorev == 6)) {
25457 pi->nphy_papd_cal_gain_index[phy_b5] =
25459 } else if (pi->pubpi.radiorev == 5) {
25460 pi->nphy_papd_cal_gain_index[phy_b5] =
25462 pi->nphy_papd_cal_gain_index[phy_b5] =
25466 nphy_papd_cal_gain_index
25470 } else if ((pi->pubpi.radiorev == 7)
25471 || (pi->pubpi.radiorev == 8)) {
25473 pi->nphy_papd_cal_gain_index[phy_b5] =
25475 pi->nphy_papd_cal_gain_index[phy_b5] =
25479 nphy_papd_cal_gain_index
25485 phy_b1[phy_b5].gains.pad[phy_b5] =
25486 pi->nphy_papd_cal_gain_index[phy_b5];
25489 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
25490 pi->nphy_papd_cal_gain_index[phy_b5] =
25494 nphy_papd_cal_gain_index
25496 phy_b1[phy_b5].gains.pga[phy_b5] =
25497 pi->nphy_papd_cal_gain_index[phy_b5];
25500 phy_b1[phy_b5].useindex = true;
25501 phy_b1[phy_b5].index = 16;
25502 phy_b1[phy_b5].index =
25503 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index,
25506 pi->nphy_papd_cal_gain_index[phy_b5] =
25507 15 - ((phy_b1[phy_b5].index) >> 3);
25510 switch (pi->nphy_papd_cal_type) {
25512 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
25515 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
25519 if (NREV_GE(pi->pubpi.phy_rev, 7))
25520 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25523 if (NREV_LT(pi->pubpi.phy_rev, 7))
25524 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25526 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25527 int eps_offset = 0;
25529 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25530 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25531 if (pi->pubpi.radiorev == 3)
25533 else if (pi->pubpi.radiorev == 5)
25541 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25542 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
25544 if ((pi->pubpi.radiorev == 3) ||
25545 (pi->pubpi.radiorev == 4) ||
25546 (pi->pubpi.radiorev == 6)) {
25548 nphy_papd_padgain_dlt_2g_2057rev3n4
25551 } else if (pi->pubpi.radiorev == 5) {
25553 nphy_papd_padgain_dlt_2g_2057rev5
25555 } else if ((pi->pubpi.radiorev == 7) ||
25556 (pi->pubpi.radiorev == 8)) {
25558 nphy_papd_padgain_dlt_2g_2057rev7
25562 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
25563 if ((pi->pubpi.radiorev == 3) ||
25564 (pi->pubpi.radiorev == 4) ||
25565 (pi->pubpi.radiorev == 6))
25567 -(nphy_papd_pgagain_dlt_5g_2057
25570 else if ((pi->pubpi.radiorev == 7)
25571 || (pi->pubpi.radiorev == 8))
25573 nphy_papd_pgagain_dlt_5g_2057rev7
25579 if (CHSPEC_IS2G(pi->radio_chanspec))
25581 -60 + 27 + eps_offset + phy_b12 +
25585 -60 + 27 + eps_offset + phy_b11 +
25588 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25589 0x29c, (0x1ff << 7), (phy_b6) << 7);
25591 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25593 if (NREV_LT(pi->pubpi.phy_rev, 5))
25598 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
25600 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25602 -(nphy_papd_pga_gain_delta_ipa_2g[
25608 -(nphy_papd_pga_gain_delta_ipa_5g[
25614 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
25616 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25617 0x29c, (0x1ff << 7), (phy_b6) << 7);
25619 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25623 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25624 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25626 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25627 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25629 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25630 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25631 0x2a4, (0x1 << 13), (0) << 13);
25633 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25634 0x2a4, (0x1 << 13), (0) << 13);
25637 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25638 0x2a4, (0x1 << 11), (0) << 11);
25640 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25641 0x2a4, (0x1 << 11), (0) << 11);
25644 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
25646 write_phy_reg(pi, 0x01, phy_b9);
25648 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
25650 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
25651 if (phy_b4 == PHY_TPC_HW_OFF) {
25652 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25653 (s8) (pi->nphy_txpwrindex[0].
25654 index_internal), false);
25655 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25656 (s8) (pi->nphy_txpwrindex[1].
25657 index_internal), false);
25660 wlc_phy_stay_in_carriersearch_nphy(pi, false);
25663 wlapi_enable_mac(pi->sh->physhim);
25666 void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
25668 struct nphy_txgains target_gain;
25669 u8 tx_pwr_ctrl_state;
25670 bool fullcal = true;
25671 bool restore_tx_gain = false;
25677 if (caltype == PHY_PERICAL_AUTO)
25678 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
25679 else if (caltype == PHY_PERICAL_PARTIAL)
25682 if (pi->cal_type_override != PHY_PERICAL_AUTO)
25684 (pi->cal_type_override ==
25685 PHY_PERICAL_FULL) ? true : false;
25687 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
25688 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
25689 wlc_phy_cal_perical_mphase_restart(pi);
25692 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL))
25693 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
25695 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25697 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25699 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
25700 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
25701 pi->nphy_cal_orig_pwr_idx[0] =
25702 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
25703 pi->nphy_cal_orig_pwr_idx[1] =
25704 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
25706 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
25707 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
25709 pi->nphy_cal_orig_tx_gain);
25711 pi->nphy_cal_orig_tx_gain[0] = 0;
25712 pi->nphy_cal_orig_tx_gain[1] = 0;
25715 target_gain = wlc_phy_get_tx_gain_nphy(pi);
25716 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
25717 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25719 if (pi->antsel_type == ANTSEL_2x3)
25720 wlc_phy_antsel_init((struct brcms_phy_pub *) pi, true);
25722 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
25725 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25726 wlc_phy_precal_txgain_nphy(pi);
25727 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25728 restore_tx_gain = true;
25730 target_gain = pi->nphy_cal_target_gain;
25733 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal,
25736 wlc_phy_a4(pi, true);
25738 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25739 wlapi_enable_mac(pi->sh->physhim);
25740 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
25742 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25743 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25745 if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
25746 (pi->first_cal_after_assoc ||
25747 (pi->cal_type_override ==
25748 PHY_PERICAL_FULL)) ? 2 : 0, false)) {
25749 wlc_phy_savecal_nphy(pi);
25751 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25753 pi->nphy_perical_last = pi->sh->now;
25756 if (caltype != PHY_PERICAL_AUTO)
25757 wlc_phy_rssi_cal_nphy(pi);
25759 if (pi->first_cal_after_assoc
25760 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
25761 pi->first_cal_after_assoc = false;
25762 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25763 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25766 if (NREV_GE(pi->pubpi.phy_rev, 3))
25767 wlc_phy_radio205x_vcocal_nphy(pi);
25769 switch (pi->mphase_cal_phase_id) {
25770 case MPHASE_CAL_STATE_INIT:
25771 pi->nphy_perical_last = pi->sh->now;
25772 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
25774 if (NREV_GE(pi->pubpi.phy_rev, 3))
25775 wlc_phy_precal_txgain_nphy(pi);
25777 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25778 pi->mphase_cal_phase_id++;
25781 case MPHASE_CAL_STATE_TXPHASE0:
25782 case MPHASE_CAL_STATE_TXPHASE1:
25783 case MPHASE_CAL_STATE_TXPHASE2:
25784 case MPHASE_CAL_STATE_TXPHASE3:
25785 case MPHASE_CAL_STATE_TXPHASE4:
25786 case MPHASE_CAL_STATE_TXPHASE5:
25787 if ((pi->radar_percal_mask & 0x10) != 0)
25788 pi->nphy_rxcal_active = true;
25790 if (wlc_phy_cal_txiqlo_nphy
25791 (pi, pi->nphy_cal_target_gain, fullcal,
25794 wlc_phy_cal_perical_mphase_reset(pi);
25798 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
25799 (pi->mphase_cal_phase_id ==
25800 MPHASE_CAL_STATE_TXPHASE4))
25801 pi->mphase_cal_phase_id += 2;
25803 pi->mphase_cal_phase_id++;
25806 case MPHASE_CAL_STATE_PAPDCAL:
25807 if ((pi->radar_percal_mask & 0x2) != 0)
25808 pi->nphy_rxcal_active = true;
25811 wlc_phy_a4(pi, true);
25813 pi->mphase_cal_phase_id++;
25816 case MPHASE_CAL_STATE_RXCAL:
25817 if ((pi->radar_percal_mask & 0x1) != 0)
25818 pi->nphy_rxcal_active = true;
25819 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
25820 (pi->first_cal_after_assoc ||
25821 (pi->cal_type_override ==
25822 PHY_PERICAL_FULL)) ? 2 : 0,
25824 wlc_phy_savecal_nphy(pi);
25826 pi->mphase_cal_phase_id++;
25829 case MPHASE_CAL_STATE_RSSICAL:
25830 if ((pi->radar_percal_mask & 0x4) != 0)
25831 pi->nphy_rxcal_active = true;
25832 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25833 wlc_phy_rssi_cal_nphy(pi);
25835 if (NREV_GE(pi->pubpi.phy_rev, 3))
25836 wlc_phy_radio205x_vcocal_nphy(pi);
25838 restore_tx_gain = true;
25840 if (pi->first_cal_after_assoc)
25841 pi->mphase_cal_phase_id++;
25843 wlc_phy_cal_perical_mphase_reset(pi);
25847 case MPHASE_CAL_STATE_IDLETSSI:
25848 if ((pi->radar_percal_mask & 0x8) != 0)
25849 pi->nphy_rxcal_active = true;
25851 if (pi->first_cal_after_assoc) {
25852 pi->first_cal_after_assoc = false;
25853 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25854 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25857 wlc_phy_cal_perical_mphase_reset(pi);
25861 wlc_phy_cal_perical_mphase_reset(pi);
25866 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25867 if (restore_tx_gain) {
25868 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
25870 wlc_phy_txpwr_index_nphy(pi, 1,
25872 nphy_cal_orig_pwr_idx
25874 wlc_phy_txpwr_index_nphy(pi, 2,
25876 nphy_cal_orig_pwr_idx
25879 pi->nphy_txpwrindex[0].index = -1;
25880 pi->nphy_txpwrindex[1].index = -1;
25882 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25888 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25898 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
25899 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25900 wlapi_enable_mac(pi->sh->physhim);
25904 wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
25905 bool fullcal, bool mphase)
25911 u8 num_cals, max_cal_cmds;
25912 u16 core_no, cal_type;
25919 struct nphy_iqcal_params cal_params[2];
25922 bool ladder_updated[2];
25923 u8 mphase_cal_lastphase = 0;
25925 bool phyhang_avoid_state = false;
25927 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
25928 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
25930 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
25934 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
25935 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
25937 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
25941 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
25942 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
25944 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
25948 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
25949 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
25951 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
25955 u16 tbl_tx_iqlo_cal_startcoefs[] = {
25956 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25960 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
25961 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
25962 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
25965 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
25966 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
25967 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
25970 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
25971 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25972 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25976 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
25977 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
25978 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
25981 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
25982 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
25983 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
25986 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25988 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25989 phyhang_avoid_state = pi->phyhang_avoid;
25990 pi->phyhang_avoid = false;
25993 if (CHSPEC_IS40(pi->radio_chanspec))
25998 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
26000 for (core_no = 0; core_no <= 1; core_no++) {
26001 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
26002 &cal_params[core_no]);
26003 cal_gain[core_no] = cal_params[core_no].cal_gain;
26006 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
26008 wlc_phy_txcal_radio_setup_nphy(pi);
26010 wlc_phy_txcal_physetup_nphy(pi);
26012 ladder_updated[0] = ladder_updated[1] = false;
26013 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
26014 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
26015 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
26017 if (phy_bw == 40) {
26018 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
26019 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
26021 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
26022 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
26024 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
26027 if (phy_bw == 40) {
26028 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
26029 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
26031 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
26032 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
26034 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
26038 if (NREV_GE(pi->pubpi.phy_rev, 7))
26039 write_phy_reg(pi, 0xc2, 0x8ad9);
26041 write_phy_reg(pi, 0xc2, 0x8aa9);
26044 tone_freq = (phy_bw == 20) ? 2500 : 5000;
26046 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
26047 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
26051 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0,
26055 if (bcmerror == 0) {
26057 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
26058 tbl_ptr = pi->mphase_txcal_bestcoeffs;
26059 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26060 if (NREV_LT(pi->pubpi.phy_rev, 3))
26063 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
26065 tbl_ptr = pi->nphy_txiqlocal_bestc;
26066 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26067 if (NREV_LT(pi->pubpi.phy_rev, 3))
26073 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26075 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
26076 tbl_len = ARRAY_SIZE(
26077 tbl_tx_iqlo_cal_startcoefs_nphyrev3);
26079 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
26080 tbl_len = ARRAY_SIZE(
26081 tbl_tx_iqlo_cal_startcoefs);
26085 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
26089 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26091 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
26092 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
26094 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26096 tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
26097 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
26101 cal_cnt = pi->mphase_txcal_cmdidx;
26102 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds)
26103 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
26105 num_cals = max_cal_cmds;
26108 num_cals = max_cal_cmds;
26111 for (; cal_cnt < num_cals; cal_cnt++) {
26114 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26115 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
26117 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
26119 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26120 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[
26122 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
26125 core_no = ((cal_cmd & 0x3000) >> 12);
26126 cal_type = ((cal_cmd & 0x0F00) >> 8);
26128 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
26129 (NREV_IS(pi->pubpi.phy_rev, 5) &&
26131 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
26132 if (!ladder_updated[core_no]) {
26133 wlc_phy_update_txcal_ladder_nphy(
26136 ladder_updated[core_no] = true;
26141 (cal_params[core_no].
26142 ncorr[cal_type] << 8) | NPHY_N_GCTL;
26143 write_phy_reg(pi, 0xc1, val);
26145 if ((cal_type == 1) || (cal_type == 3)
26146 || (cal_type == 4)) {
26148 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26149 1, 69 + core_no, 16,
26152 diq_start = tbl_buf[0];
26155 wlc_phy_table_write_nphy(pi,
26156 NPHY_TBL_ID_IQLOCAL, 1,
26161 write_phy_reg(pi, 0xc0, cal_cmd);
26163 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
26165 if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
26166 "HW error: txiq calib"))
26169 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26170 tbl_len, 96, 16, tbl_buf);
26171 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26172 tbl_len, 64, 16, tbl_buf);
26174 if ((cal_type == 1) || (cal_type == 3)
26175 || (cal_type == 4)) {
26177 tbl_buf[0] = diq_start;
26184 pi->mphase_txcal_cmdidx = num_cals;
26185 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
26186 pi->mphase_txcal_cmdidx = 0;
26189 mphase_cal_lastphase =
26190 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
26191 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
26194 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
26196 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
26198 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26201 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26209 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26212 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
26214 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26217 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26220 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26221 if (NREV_LT(pi->pubpi.phy_rev, 3))
26224 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26226 pi->nphy_txiqlocal_bestc);
26228 pi->nphy_txiqlocal_coeffsvalid = true;
26229 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
26231 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26232 if (NREV_LT(pi->pubpi.phy_rev, 3))
26235 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26237 pi->mphase_txcal_bestcoeffs);
26240 wlc_phy_stopplayback_nphy(pi);
26242 write_phy_reg(pi, 0xc2, 0x0000);
26246 wlc_phy_txcal_phycleanup_nphy(pi);
26248 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26251 wlc_phy_txcal_radio_cleanup_nphy(pi);
26253 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26255 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
26256 wlc_phy_tx_iq_war_nphy(pi);
26259 if (NREV_GE(pi->pubpi.phy_rev, 4))
26260 pi->phyhang_avoid = phyhang_avoid_state;
26262 wlc_phy_stay_in_carriersearch_nphy(pi, false);
26267 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
26271 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
26272 (pi->nphy_txiqlocal_coeffsvalid)) {
26273 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26274 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
26276 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
26277 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
26278 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
26279 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
26281 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26282 16, pi->nphy_txiqlocal_bestc);
26288 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26291 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26293 &pi->nphy_txiqlocal_bestc[5]);
26295 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26297 &pi->nphy_txiqlocal_bestc[5]);
26303 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
26304 struct nphy_iq_comp *pcomp)
26307 write_phy_reg(pi, 0x9a, pcomp->a0);
26308 write_phy_reg(pi, 0x9b, pcomp->b0);
26309 write_phy_reg(pi, 0x9c, pcomp->a1);
26310 write_phy_reg(pi, 0x9d, pcomp->b1);
26312 pcomp->a0 = read_phy_reg(pi, 0x9a);
26313 pcomp->b0 = read_phy_reg(pi, 0x9b);
26314 pcomp->a1 = read_phy_reg(pi, 0x9c);
26315 pcomp->b1 = read_phy_reg(pi, 0x9d);
26320 wlc_phy_rx_iq_est_nphy(struct brcms_phy *pi, struct phy_iq_est *est,
26321 u16 num_samps, u8 wait_time, u8 wait_for_crs)
26325 write_phy_reg(pi, 0x12b, num_samps);
26326 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
26327 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
26328 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
26330 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
26332 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
26334 if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
26335 "HW error: rxiq est"))
26338 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
26339 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26342 NPHY_IqestipwrAccHi(core)) << 16)
26343 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
26346 NPHY_IqestqpwrAccHi(core)) << 16)
26347 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
26348 est[core].iq_prod =
26350 NPHY_IqestIqAccHi(core)) << 16) |
26351 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
26356 #define CAL_RETRY_CNT 2
26357 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
26360 struct phy_iq_est est[PHY_CORE_MAX];
26361 struct nphy_iq_comp old_comp, new_comp;
26363 u32 ii = 0, qq = 0;
26364 s16 iq_nbits, qq_nbits, brsh, arsh;
26367 uint cal_retry = 0;
26369 if (core_mask == 0x0)
26372 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
26373 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
26374 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26377 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
26379 new_comp = old_comp;
26381 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
26383 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26384 iq = est[curr_core].iq_prod;
26385 ii = est[curr_core].i_pwr;
26386 qq = est[curr_core].q_pwr;
26387 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26388 iq = est[curr_core].iq_prod;
26389 ii = est[curr_core].i_pwr;
26390 qq = est[curr_core].q_pwr;
26395 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
26400 iq_nbits = wlc_phy_nbits(iq);
26401 qq_nbits = wlc_phy_nbits(qq);
26403 arsh = 10 - (30 - iq_nbits);
26405 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
26406 temp = (s32) (ii >> arsh);
26412 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
26413 temp = (s32) (ii << -arsh);
26422 brsh = qq_nbits - 31 + 20;
26424 b = (qq << (31 - qq_nbits));
26425 temp = (s32) (ii >> brsh);
26431 b = (qq << (31 - qq_nbits));
26432 temp = (s32) (ii << -brsh);
26440 b = (s32) int_sqrt((unsigned long) b);
26443 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26444 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26445 new_comp.a0 = (s16) a & 0x3ff;
26446 new_comp.b0 = (s16) b & 0x3ff;
26449 new_comp.a0 = (s16) b & 0x3ff;
26450 new_comp.b0 = (s16) a & 0x3ff;
26453 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26454 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26455 new_comp.a1 = (s16) a & 0x3ff;
26456 new_comp.b1 = (s16) b & 0x3ff;
26459 new_comp.a1 = (s16) b & 0x3ff;
26460 new_comp.b1 = (s16) a & 0x3ff;
26465 if (bcmerror != 0) {
26466 printk(KERN_DEBUG "%s: Failed, cnt = %d\n", __func__,
26469 if (cal_retry < CAL_RETRY_CNT) {
26474 new_comp = old_comp;
26477 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26480 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
26486 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26487 if (rx_core == PHY_CORE_0) {
26488 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26489 pi->tx_rx_cal_radio_saveregs[0] =
26491 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
26492 pi->tx_rx_cal_radio_saveregs[1] =
26494 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
26496 write_radio_reg(pi,
26497 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26499 write_radio_reg(pi,
26500 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26504 pi->tx_rx_cal_radio_saveregs[0] =
26506 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
26507 pi->tx_rx_cal_radio_saveregs[1] =
26509 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
26513 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26517 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26522 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26523 pi->tx_rx_cal_radio_saveregs[0] =
26525 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
26526 pi->tx_rx_cal_radio_saveregs[1] =
26528 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
26532 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26536 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26540 pi->tx_rx_cal_radio_saveregs[0] =
26542 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
26543 pi->tx_rx_cal_radio_saveregs[1] =
26545 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
26547 write_radio_reg(pi,
26548 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26550 write_radio_reg(pi,
26551 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26557 if (rx_core == PHY_CORE_0) {
26558 pi->tx_rx_cal_radio_saveregs[0] =
26560 RADIO_2056_TX_RXIQCAL_TXMUX |
26562 pi->tx_rx_cal_radio_saveregs[1] =
26564 RADIO_2056_RX_RXIQCAL_RXMUX |
26567 if (pi->pubpi.radiorev >= 5) {
26568 pi->tx_rx_cal_radio_saveregs[2] =
26570 RADIO_2056_RX_RXSPARE2 |
26572 pi->tx_rx_cal_radio_saveregs[3] =
26574 RADIO_2056_TX_TXSPARE2 |
26578 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26580 if (pi->pubpi.radiorev >= 5) {
26581 pi->tx_rx_cal_radio_saveregs[4] =
26583 RADIO_2056_RX_LNAA_MASTER
26588 RADIO_2056_RX_LNAA_MASTER
26589 | RADIO_2056_RX0, 0x40);
26591 write_radio_reg(pi,
26592 RADIO_2056_TX_TXSPARE2 |
26593 RADIO_2056_TX1, bias_a);
26595 write_radio_reg(pi,
26596 RADIO_2056_RX_RXSPARE2 |
26597 RADIO_2056_RX0, bias_a);
26599 pi->tx_rx_cal_radio_saveregs[4] =
26601 RADIO_2056_RX_LNAA_TUNE
26605 (pi->tx_rx_cal_radio_saveregs
26608 (offtune_val <= 0x7) ? 0xF : 0;
26611 RADIO_2056_RX_LNAA_TUNE |
26612 RADIO_2056_RX0, 0xF0,
26613 (offtune_val << 8));
26616 write_radio_reg(pi,
26617 RADIO_2056_TX_RXIQCAL_TXMUX |
26618 RADIO_2056_TX1, 0x9);
26619 write_radio_reg(pi,
26620 RADIO_2056_RX_RXIQCAL_RXMUX |
26621 RADIO_2056_RX0, 0x9);
26623 if (pi->pubpi.radiorev >= 5) {
26624 pi->tx_rx_cal_radio_saveregs[4] =
26627 RADIO_2056_RX_LNAG_MASTER
26632 RADIO_2056_RX_LNAG_MASTER
26633 | RADIO_2056_RX0, 0x40);
26637 RADIO_2056_TX_TXSPARE2
26639 RADIO_2056_TX1, bias_g);
26643 RADIO_2056_RX_RXSPARE2
26645 RADIO_2056_RX0, bias_g);
26648 pi->tx_rx_cal_radio_saveregs[4] =
26651 RADIO_2056_RX_LNAG_TUNE
26656 tx_rx_cal_radio_saveregs[2] &
26659 (offtune_val <= 0x7) ? 0xF : 0;
26662 RADIO_2056_RX_LNAG_TUNE |
26663 RADIO_2056_RX0, 0xF0,
26664 (offtune_val << 8));
26667 write_radio_reg(pi,
26668 RADIO_2056_TX_RXIQCAL_TXMUX |
26669 RADIO_2056_TX1, 0x6);
26670 write_radio_reg(pi,
26671 RADIO_2056_RX_RXIQCAL_RXMUX |
26672 RADIO_2056_RX0, 0x6);
26676 pi->tx_rx_cal_radio_saveregs[0] =
26678 RADIO_2056_TX_RXIQCAL_TXMUX |
26680 pi->tx_rx_cal_radio_saveregs[1] =
26682 RADIO_2056_RX_RXIQCAL_RXMUX |
26685 if (pi->pubpi.radiorev >= 5) {
26686 pi->tx_rx_cal_radio_saveregs[2] =
26688 RADIO_2056_RX_RXSPARE2 |
26690 pi->tx_rx_cal_radio_saveregs[3] =
26692 RADIO_2056_TX_TXSPARE2 |
26696 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26698 if (pi->pubpi.radiorev >= 5) {
26699 pi->tx_rx_cal_radio_saveregs[4] =
26702 RADIO_2056_RX_LNAA_MASTER
26707 RADIO_2056_RX_LNAA_MASTER |
26708 RADIO_2056_RX1, 0x40);
26712 RADIO_2056_TX_TXSPARE2
26714 RADIO_2056_TX0, bias_a);
26718 RADIO_2056_RX_RXSPARE2
26720 RADIO_2056_RX1, bias_a);
26722 pi->tx_rx_cal_radio_saveregs[4] =
26725 RADIO_2056_RX_LNAA_TUNE
26730 tx_rx_cal_radio_saveregs[2] &
26733 (offtune_val <= 0x7) ? 0xF : 0;
26736 RADIO_2056_RX_LNAA_TUNE |
26737 RADIO_2056_RX1, 0xF0,
26738 (offtune_val << 8));
26741 write_radio_reg(pi,
26742 RADIO_2056_TX_RXIQCAL_TXMUX |
26743 RADIO_2056_TX0, 0x9);
26744 write_radio_reg(pi,
26745 RADIO_2056_RX_RXIQCAL_RXMUX |
26746 RADIO_2056_RX1, 0x9);
26748 if (pi->pubpi.radiorev >= 5) {
26749 pi->tx_rx_cal_radio_saveregs[4] =
26752 RADIO_2056_RX_LNAG_MASTER
26757 RADIO_2056_RX_LNAG_MASTER
26758 | RADIO_2056_RX1, 0x40);
26762 RADIO_2056_TX_TXSPARE2
26764 RADIO_2056_TX0, bias_g);
26768 RADIO_2056_RX_RXSPARE2
26770 RADIO_2056_RX1, bias_g);
26772 pi->tx_rx_cal_radio_saveregs[4] =
26775 RADIO_2056_RX_LNAG_TUNE
26780 tx_rx_cal_radio_saveregs[2] &
26783 (offtune_val <= 0x7) ? 0xF : 0;
26786 RADIO_2056_RX_LNAG_TUNE |
26787 RADIO_2056_RX1, 0xF0,
26788 (offtune_val << 8));
26791 write_radio_reg(pi,
26792 RADIO_2056_TX_RXIQCAL_TXMUX |
26793 RADIO_2056_TX0, 0x6);
26794 write_radio_reg(pi,
26795 RADIO_2056_RX_RXIQCAL_RXMUX |
26796 RADIO_2056_RX1, 0x6);
26802 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26804 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26805 if (rx_core == PHY_CORE_0) {
26806 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26809 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26811 tx_rx_cal_radio_saveregs[0]);
26814 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26816 tx_rx_cal_radio_saveregs[1]);
26821 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26823 tx_rx_cal_radio_saveregs[0]);
26826 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26828 tx_rx_cal_radio_saveregs[1]);
26832 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26835 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26837 tx_rx_cal_radio_saveregs[0]);
26840 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26842 tx_rx_cal_radio_saveregs[1]);
26847 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26849 tx_rx_cal_radio_saveregs[0]);
26852 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26854 tx_rx_cal_radio_saveregs[1]);
26859 if (rx_core == PHY_CORE_0) {
26860 write_radio_reg(pi,
26861 RADIO_2056_TX_RXIQCAL_TXMUX |
26863 pi->tx_rx_cal_radio_saveregs[0]);
26865 write_radio_reg(pi,
26866 RADIO_2056_RX_RXIQCAL_RXMUX |
26868 pi->tx_rx_cal_radio_saveregs[1]);
26870 if (pi->pubpi.radiorev >= 5) {
26871 write_radio_reg(pi,
26872 RADIO_2056_RX_RXSPARE2 |
26875 tx_rx_cal_radio_saveregs[2]);
26877 write_radio_reg(pi,
26878 RADIO_2056_TX_TXSPARE2 |
26881 tx_rx_cal_radio_saveregs[3]);
26884 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26885 if (pi->pubpi.radiorev >= 5)
26888 RADIO_2056_RX_LNAA_MASTER
26891 tx_rx_cal_radio_saveregs
26896 RADIO_2056_RX_LNAA_TUNE
26899 tx_rx_cal_radio_saveregs
26902 if (pi->pubpi.radiorev >= 5)
26905 RADIO_2056_RX_LNAG_MASTER
26908 tx_rx_cal_radio_saveregs
26913 RADIO_2056_RX_LNAG_TUNE
26916 tx_rx_cal_radio_saveregs
26921 write_radio_reg(pi,
26922 RADIO_2056_TX_RXIQCAL_TXMUX |
26924 pi->tx_rx_cal_radio_saveregs[0]);
26926 write_radio_reg(pi,
26927 RADIO_2056_RX_RXIQCAL_RXMUX |
26929 pi->tx_rx_cal_radio_saveregs[1]);
26931 if (pi->pubpi.radiorev >= 5) {
26932 write_radio_reg(pi,
26933 RADIO_2056_RX_RXSPARE2 |
26936 tx_rx_cal_radio_saveregs[2]);
26938 write_radio_reg(pi,
26939 RADIO_2056_TX_TXSPARE2 |
26942 tx_rx_cal_radio_saveregs[3]);
26945 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26946 if (pi->pubpi.radiorev >= 5)
26949 RADIO_2056_RX_LNAA_MASTER
26952 tx_rx_cal_radio_saveregs
26957 RADIO_2056_RX_LNAA_TUNE
26960 tx_rx_cal_radio_saveregs
26963 if (pi->pubpi.radiorev >= 5)
26966 RADIO_2056_RX_LNAG_MASTER
26969 tx_rx_cal_radio_saveregs
26974 RADIO_2056_RX_LNAG_TUNE
26977 tx_rx_cal_radio_saveregs
26984 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
26987 u16 rx_antval, tx_antval;
26989 if (NREV_GE(pi->pubpi.phy_rev, 7))
26992 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
26994 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
26995 pi->tx_rx_cal_phy_saveregs[1] =
26996 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
26997 pi->tx_rx_cal_phy_saveregs[2] =
26998 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
26999 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
27000 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
27001 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
27002 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
27003 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
27004 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
27005 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27006 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
27007 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
27008 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
27009 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
27012 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
27013 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
27014 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
27015 0x29b, (0x1 << 0), (0) << 0);
27017 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
27018 0x29b, (0x1 << 0), (0) << 0);
27020 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27022 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27024 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
27028 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27029 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27030 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
27031 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
27034 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
27035 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
27036 (0x1 << 2), (0x1 << 2));
27037 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27038 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27039 (0x1 << 0) | (0x1 << 1), 0);
27040 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27042 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
27045 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
27046 RADIO_MIMO_CORESEL_CORE1 |
27047 RADIO_MIMO_CORESEL_CORE2);
27049 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27050 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
27052 NPHY_REV7_RFCTRLOVERRIDE_ID0);
27053 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
27054 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27055 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
27056 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27057 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
27058 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27059 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
27060 NPHY_REV7_RFCTRLOVERRIDE_ID2);
27061 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
27062 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27063 if (CHSPEC_IS40(pi->radio_chanspec))
27064 wlc_phy_rfctrl_override_nphy_rev7(
27068 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27070 wlc_phy_rfctrl_override_nphy_rev7(
27074 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27076 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
27078 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27079 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
27080 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27082 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
27085 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
27087 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27089 wlc_phy_rfctrlintc_override_nphy(pi,
27090 NPHY_RfctrlIntc_override_TRSW,
27094 if (rx_core == PHY_CORE_0) {
27102 wlc_phy_rfctrlintc_override_nphy(pi,
27103 NPHY_RfctrlIntc_override_TRSW,
27104 rx_antval, rx_core + 1);
27105 wlc_phy_rfctrlintc_override_nphy(pi,
27106 NPHY_RfctrlIntc_override_TRSW,
27107 tx_antval, tx_core + 1);
27111 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
27114 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
27115 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
27116 pi->tx_rx_cal_phy_saveregs[1]);
27117 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
27118 pi->tx_rx_cal_phy_saveregs[2]);
27119 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
27120 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
27122 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
27123 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
27124 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
27125 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
27126 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27127 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
27128 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
27129 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
27130 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
27133 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
27134 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
27138 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
27139 u16 *rxgain, u8 cal_type)
27143 struct phy_iq_est est[PHY_CORE_MAX];
27145 struct nphy_iq_comp save_comp, zero_comp;
27146 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0,
27147 thresh_pwr = 10000;
27148 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
27149 bool gainctrl_done = false;
27150 u8 mix_tia_gain = 3;
27151 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
27152 s8 curr_gaintbl_index = 3;
27153 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
27154 const struct nphy_ipa_txrxgain *nphy_rxcal_gaintbl;
27155 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
27158 u16 nphy_rxcal_txgain[2];
27160 if (NREV_GE(pi->pubpi.phy_rev, 7))
27163 tx_core = 1 - rx_core;
27166 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
27168 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
27169 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
27170 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
27172 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27173 if (NREV_GE(pi->pubpi.phy_rev, 7))
27175 else if (NREV_GE(pi->pubpi.phy_rev, 4))
27179 if (NREV_GE(pi->pubpi.phy_rev, 7))
27180 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
27182 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
27184 if (NREV_GE(pi->pubpi.phy_rev, 7))
27185 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
27187 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
27192 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
27193 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
27194 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
27195 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
27196 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
27197 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
27198 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
27200 if (NREV_GE(pi->pubpi.phy_rev, 7))
27201 wlc_phy_rfctrl_override_1tomany_nphy(
27203 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27204 ((lpf_biq1 << 12) |
27206 (mix_tia_gain << 4) | (lna2 << 2)
27209 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27213 (mix_tia_gain << 4) |
27214 (lna2 << 2) | lna1), 0x3,
27217 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
27219 if (txpwrindex == -1) {
27220 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
27221 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
27222 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
27224 nphy_rxcal_txgain);
27226 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
27230 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
27231 NPHY_RXCAL_TONEFREQ_40MHz :
27232 NPHY_RXCAL_TONEFREQ_20MHz,
27233 NPHY_RXCAL_TONEAMP, 0, cal_type, false);
27235 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27236 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
27237 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
27238 curr_pwr = i_pwr + q_pwr;
27240 switch (gainctrl_dirn) {
27241 case NPHY_RXCAL_GAIN_INIT:
27242 if (curr_pwr > thresh_pwr) {
27243 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
27244 prev_gaintbl_index = curr_gaintbl_index;
27245 curr_gaintbl_index--;
27247 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
27248 prev_gaintbl_index = curr_gaintbl_index;
27249 curr_gaintbl_index++;
27253 case NPHY_RXCAL_GAIN_UP:
27254 if (curr_pwr > thresh_pwr) {
27255 gainctrl_done = true;
27256 optim_pwr = prev_pwr;
27257 optim_gaintbl_index = prev_gaintbl_index;
27259 prev_gaintbl_index = curr_gaintbl_index;
27260 curr_gaintbl_index++;
27264 case NPHY_RXCAL_GAIN_DOWN:
27265 if (curr_pwr > thresh_pwr) {
27266 prev_gaintbl_index = curr_gaintbl_index;
27267 curr_gaintbl_index--;
27269 gainctrl_done = true;
27270 optim_pwr = curr_pwr;
27271 optim_gaintbl_index = curr_gaintbl_index;
27279 if ((curr_gaintbl_index < 0) ||
27280 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
27281 gainctrl_done = true;
27282 optim_pwr = curr_pwr;
27283 optim_gaintbl_index = prev_gaintbl_index;
27285 prev_pwr = curr_pwr;
27288 wlc_phy_stopplayback_nphy(pi);
27289 } while (!gainctrl_done);
27291 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
27292 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
27293 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
27294 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
27295 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
27296 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
27298 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
27299 delta_pwr = desired_log2_pwr - actual_log2_pwr;
27301 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27302 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
27304 if (fine_gain_idx + (int)lpf_biq0 > 10)
27305 lpf_biq1 = 10 - lpf_biq0;
27307 lpf_biq1 = (u16) max(fine_gain_idx, 0);
27309 wlc_phy_rfctrl_override_1tomany_nphy(
27311 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27312 ((lpf_biq1 << 12) |
27314 (mix_tia_gain << 4) |
27315 (lna2 << 2) | lna1), 0x3,
27318 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
27319 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27323 (mix_tia_gain << 4) |
27328 if (rxgain != NULL) {
27331 *rxgain++ = mix_tia_gain;
27332 *rxgain++ = lpf_biq0;
27333 *rxgain++ = lpf_biq1;
27337 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
27341 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
27344 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
27348 wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
27350 u32 target_bws[2] = { 9500, 21000 };
27351 u32 ref_tones[2] = { 3000, 6000 };
27352 u32 target_bw, ref_tone;
27354 u32 target_pwr_ratios[2] = { 28606, 18468 };
27355 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
27357 u16 start_rccal_ovr_val = 128;
27358 u16 txlpf_rccal_lpc_ovr_val = 128;
27359 u16 rxlpf_rccal_hpc_ovr_val = 159;
27361 u16 orig_txlpf_rccal_lpc_ovr_val;
27362 u16 orig_rxlpf_rccal_hpc_ovr_val;
27363 u16 radio_addr_offset_rx;
27364 u16 radio_addr_offset_tx;
27366 u16 orig_RxStrnFilt40Num[6];
27367 u16 orig_RxStrnFilt40Den[4];
27368 u16 orig_rfctrloverride[2];
27369 u16 orig_rfctrlauxreg[2];
27370 u16 orig_rfctrlrssiothers;
27373 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
27374 u16 lpf_hpc = 7, hpvga_hpc = 7;
27377 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
27378 u32 ref_iq_vals = 0, target_iq_vals = 0;
27379 u16 num_samps, log_num_samps = 10;
27380 struct phy_iq_est est[PHY_CORE_MAX];
27382 if (NREV_GE(pi->pubpi.phy_rev, 7))
27385 num_samps = (1 << log_num_samps);
27387 if (CHSPEC_IS40(pi->radio_chanspec)) {
27388 target_bw = target_bws[1];
27389 target_pwr_ratio = target_pwr_ratios[1];
27390 ref_tone = ref_tones[1];
27391 rx_lpf_bw = rx_lpf_bws[1];
27393 target_bw = target_bws[0];
27394 target_pwr_ratio = target_pwr_ratios[0];
27395 ref_tone = ref_tones[0];
27396 rx_lpf_bw = rx_lpf_bws[0];
27399 if (core_idx == 0) {
27400 radio_addr_offset_rx = RADIO_2056_RX0;
27401 radio_addr_offset_tx =
27402 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
27404 radio_addr_offset_rx = RADIO_2056_RX1;
27405 radio_addr_offset_tx =
27406 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
27409 orig_txlpf_rccal_lpc_ovr_val =
27411 (RADIO_2056_TX_TXLPF_RCCAL |
27412 radio_addr_offset_tx));
27413 orig_rxlpf_rccal_hpc_ovr_val =
27415 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27416 radio_addr_offset_rx));
27418 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
27420 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
27421 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
27422 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
27423 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
27424 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
27425 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
27426 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
27427 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
27428 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
27429 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
27431 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
27432 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
27433 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
27434 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
27435 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
27437 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27438 txlpf_rccal_lpc_ovr_val);
27440 write_radio_reg(pi,
27441 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27442 rxlpf_rccal_hpc_ovr_val);
27444 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
27446 write_phy_reg(pi, 0x267, 0x02d4);
27447 write_phy_reg(pi, 0x268, 0x0000);
27448 write_phy_reg(pi, 0x269, 0x0000);
27449 write_phy_reg(pi, 0x26a, 0x0000);
27450 write_phy_reg(pi, 0x26b, 0x0000);
27451 write_phy_reg(pi, 0x26c, 0x02d4);
27452 write_phy_reg(pi, 0x26d, 0x0000);
27453 write_phy_reg(pi, 0x26e, 0x0000);
27454 write_phy_reg(pi, 0x26f, 0x0000);
27455 write_phy_reg(pi, 0x270, 0x0000);
27457 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
27458 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
27459 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
27460 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
27462 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
27463 (0x7 << 10), (tx_lpf_bw << 10));
27464 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27465 (0x7 << 0), (hpvga_hpc << 0));
27466 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27467 (0x7 << 4), (lpf_hpc << 4));
27468 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
27469 (0x7 << 8), (rx_lpf_bw << 8));
27471 rccal_stepsize = 16;
27472 rccal_val = start_rccal_ovr_val + rccal_stepsize;
27474 while (rccal_stepsize >= 0) {
27475 write_radio_reg(pi,
27476 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27477 radio_addr_offset_rx), rccal_val);
27479 if (rccal_stepsize == 16) {
27481 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
27485 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27489 max_t(u32, (est[0].i_pwr +
27491 (log_num_samps + 1),
27495 max_t(u32, (est[1].i_pwr +
27497 (log_num_samps + 1),
27500 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
27505 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27508 target_iq_vals = (est[0].i_pwr + est[0].q_pwr) >>
27509 (log_num_samps + 1);
27513 est[1].q_pwr) >> (log_num_samps + 1);
27515 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
27517 if (rccal_stepsize == 0)
27519 else if (rccal_stepsize == 1) {
27520 last_rccal_val = rccal_val;
27521 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
27522 last_pwr_ratio = pwr_ratio;
27525 rccal_stepsize = (rccal_stepsize >> 1);
27526 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
27527 rccal_stepsize : (-rccal_stepsize));
27530 if (rccal_stepsize == -1) {
27532 (abs((int)last_pwr_ratio -
27533 (int)target_pwr_ratio) <
27534 abs((int)pwr_ratio -
27535 (int)target_pwr_ratio)) ? last_rccal_val :
27538 if (CHSPEC_IS40(pi->radio_chanspec)) {
27539 if ((best_rccal_val > 140)
27540 || (best_rccal_val < 135))
27541 best_rccal_val = 138;
27543 if ((best_rccal_val > 142)
27544 || (best_rccal_val < 137))
27545 best_rccal_val = 140;
27548 write_radio_reg(pi,
27549 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27550 radio_addr_offset_rx), best_rccal_val);
27554 wlc_phy_stopplayback_nphy(pi);
27556 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27557 orig_txlpf_rccal_lpc_ovr_val);
27558 write_radio_reg(pi,
27559 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27560 orig_rxlpf_rccal_hpc_ovr_val);
27562 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
27564 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
27565 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
27566 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
27567 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
27568 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
27569 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
27570 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
27571 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
27572 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
27573 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
27575 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
27576 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
27577 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
27578 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
27579 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
27581 pi->nphy_anarxlpf_adjusted = false;
27583 return best_rccal_val - 0x80;
27586 #define WAIT_FOR_SCOPE 4000
27587 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
27588 struct nphy_txgains target_gain,
27589 u8 cal_type, bool debug)
27592 u8 core_no, rx_core;
27596 struct nphy_iqcal_params cal_params[2];
27598 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
27600 bool phyhang_avoid_state = false;
27601 bool skip_rxiqcal = false;
27603 orig_BBConfig = read_phy_reg(pi, 0x01);
27604 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27606 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27608 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
27609 phyhang_avoid_state = pi->phyhang_avoid;
27610 pi->phyhang_avoid = false;
27613 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27615 for (core_no = 0; core_no <= 1; core_no++) {
27616 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27617 &cal_params[core_no]);
27618 cal_gain[core_no] = cal_params[core_no].cal_gain;
27621 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27623 rxcore_state = wlc_phy_rxcore_getstate_nphy(
27624 (struct brcms_phy_pub *) pi);
27626 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27629 ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
27631 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
27633 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
27635 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
27637 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
27639 wlc_phy_tx_tone_nphy(pi,
27641 pi->radio_chanspec)) ?
27642 NPHY_RXCAL_TONEFREQ_40MHz :
27643 NPHY_RXCAL_TONEFREQ_20MHz,
27644 NPHY_RXCAL_TONEAMP, 0, cal_type,
27648 mdelay(WAIT_FOR_SCOPE);
27650 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
27651 wlc_phy_stopplayback_nphy(pi);
27654 if (((cal_type == 1) || (cal_type == 2))
27655 && NREV_LT(pi->pubpi.phy_rev, 7)) {
27657 if (rx_core == PHY_CORE_1) {
27659 if (rxcore_state == 1)
27660 wlc_phy_rxcore_setstate_nphy(
27661 (struct brcms_phy_pub *) pi, 3);
27663 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
27666 best_rccal[rx_core] =
27667 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
27668 pi->nphy_rccal_value = best_rccal[rx_core];
27670 if (rxcore_state == 1)
27671 wlc_phy_rxcore_setstate_nphy(
27672 (struct brcms_phy_pub *) pi,
27677 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
27679 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
27680 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27683 if ((cal_type == 1) || (cal_type == 2)) {
27685 best_rccal[0] = best_rccal[1];
27686 write_radio_reg(pi,
27687 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27688 RADIO_2056_RX0), (best_rccal[0] | 0x80));
27690 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27692 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
27693 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
27697 (pi->bw == WL_CHANSPEC_BW_40) ? 24 : 12;
27698 txlpf_idac = (pi->bw == WL_CHANSPEC_BW_40) ?
27700 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
27701 TXLPF_IDAC_4, txlpf_idac);
27704 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31),
27706 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31),
27709 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27711 PHY_CORE_0) ? RADIO_2056_RX0 :
27713 (rxlpf_rccal_hpc | 0x80));
27715 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
27717 PHY_CORE_0) ? RADIO_2056_TX0 :
27719 (txlpf_rccal_lpc | 0x80));
27723 write_phy_reg(pi, 0x01, orig_BBConfig);
27725 wlc_phy_resetcca_nphy(pi);
27727 if (NREV_GE(pi->pubpi.phy_rev, 7))
27728 wlc_phy_rfctrl_override_1tomany_nphy(
27730 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27733 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
27735 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27737 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27740 if (NREV_GE(pi->pubpi.phy_rev, 4))
27741 pi->phyhang_avoid = phyhang_avoid_state;
27743 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27749 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
27750 struct nphy_txgains target_gain, bool debug)
27752 struct phy_iq_est est[PHY_CORE_MAX];
27753 u8 core_num, rx_core, tx_core;
27754 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
27755 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
27756 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
27757 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
27758 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
27759 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
27760 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
27762 u32 i_pwr, q_pwr, tot_pwr[3];
27763 u8 gain_pass, use_hpf_num;
27764 u16 mask, val1, val2;
27768 struct nphy_iqcal_params cal_params[2];
27771 bool first_playtone = true;
27773 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27775 if (NREV_LT(pi->pubpi.phy_rev, 2))
27776 wlc_phy_reapply_txcal_coeffs_nphy(pi);
27778 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27780 for (core_no = 0; core_no <= 1; core_no++) {
27781 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27782 &cal_params[core_no]);
27783 cal_gain[core_no] = cal_params[core_no].cal_gain;
27786 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27789 desired_log2_pwr = 13;
27791 for (core_num = 0; core_num < 2; core_num++) {
27793 rx_core = core_num;
27794 tx_core = 1 - core_num;
27796 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
27797 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27799 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
27800 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27802 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
27805 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27806 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27808 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27809 ((0x1 << 1) | (0x1 << 2)));
27810 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
27812 if (((pi->nphy_rxcalparams) & 0xff000000))
27814 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27815 (CHSPEC_IS5G(pi->radio_chanspec) ?
27819 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27820 (CHSPEC_IS5G(pi->radio_chanspec) ?
27823 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
27824 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
27827 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
27828 if (rx_core == PHY_CORE_0) {
27829 val1 = RADIO_2055_COUPLE_RX_MASK;
27830 val2 = RADIO_2055_COUPLE_TX_MASK;
27832 val1 = RADIO_2055_COUPLE_TX_MASK;
27833 val2 = RADIO_2055_COUPLE_RX_MASK;
27836 if ((pi->nphy_rxcalparams & 0x10000)) {
27837 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
27839 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
27843 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
27846 mdelay(WAIT_FOR_SCOPE);
27848 if (gain_pass < 3) {
27849 curr_lna = lna_vals[gain_pass];
27850 curr_hpf1 = hpf1_vals[gain_pass];
27851 curr_hpf2 = hpf2_vals[gain_pass];
27854 if (tot_pwr[1] > 10000) {
27855 curr_lna = lna_vals[2];
27856 curr_hpf1 = hpf1_vals[2];
27857 curr_hpf2 = hpf2_vals[2];
27859 curr_hpf = curr_hpf1;
27861 wlc_phy_nbits(tot_pwr[2]);
27863 if (tot_pwr[0] > 10000) {
27864 curr_lna = lna_vals[1];
27865 curr_hpf1 = hpf1_vals[1];
27866 curr_hpf2 = hpf2_vals[1];
27868 curr_hpf = curr_hpf1;
27873 curr_lna = lna_vals[0];
27874 curr_hpf1 = hpf1_vals[0];
27875 curr_hpf2 = hpf2_vals[0];
27877 curr_hpf = curr_hpf2;
27884 hpf_change = desired_log2_pwr - actual_log2_pwr;
27885 curr_hpf += hpf_change;
27886 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
27887 if (use_hpf_num == 1)
27888 curr_hpf1 = curr_hpf;
27890 curr_hpf2 = curr_hpf;
27893 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
27894 ((curr_hpf2 << 8) |
27896 (curr_lna << 2)), 0x3, 0);
27897 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27899 wlc_phy_stopplayback_nphy(pi);
27901 if (first_playtone) {
27902 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
27903 (u16) (pi->nphy_rxcalparams &
27904 0xffff), 0, 0, true);
27905 first_playtone = false;
27907 phy_bw = (CHSPEC_IS40(pi->radio_chanspec)) ?
27909 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
27913 if (bcmerror == 0) {
27914 if (gain_pass < 3) {
27916 wlc_phy_rx_iq_est_nphy(pi, est,
27919 i_pwr = (est[rx_core].i_pwr +
27920 num_samps / 2) / num_samps;
27921 q_pwr = (est[rx_core].q_pwr +
27922 num_samps / 2) / num_samps;
27923 tot_pwr[gain_pass] = i_pwr + q_pwr;
27926 wlc_phy_calc_rx_iq_comp_nphy(pi,
27931 wlc_phy_stopplayback_nphy(pi);
27938 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
27939 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
27941 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
27942 0x92, orig_RfctrlIntcTx);
27943 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
27944 0x92, orig_RfctrlIntcRx);
27945 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
27946 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
27947 0xa7, orig_AfectrlCore);
27948 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
27954 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
27955 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27957 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27960 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27966 wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
27967 u8 cal_type, bool debug)
27969 if (NREV_GE(pi->pubpi.phy_rev, 7))
27972 if (NREV_GE(pi->pubpi.phy_rev, 3))
27973 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
27976 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
27979 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
27983 u16 rad_gain, dac_gain, bbmult, m1m2;
27984 u8 txpi[2], chan_freq_range;
27987 if (pi->phyhang_avoid)
27988 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27990 if (pi->sh->sromrev < 4) {
27991 txpi[0] = txpi[1] = 72;
27994 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27995 switch (chan_freq_range) {
27996 case WL_CHAN_FREQ_RANGE_2G:
27997 txpi[0] = pi->nphy_txpid2g[0];
27998 txpi[1] = pi->nphy_txpid2g[1];
28000 case WL_CHAN_FREQ_RANGE_5GL:
28001 txpi[0] = pi->nphy_txpid5gl[0];
28002 txpi[1] = pi->nphy_txpid5gl[1];
28004 case WL_CHAN_FREQ_RANGE_5GM:
28005 txpi[0] = pi->nphy_txpid5g[0];
28006 txpi[1] = pi->nphy_txpid5g[1];
28008 case WL_CHAN_FREQ_RANGE_5GH:
28009 txpi[0] = pi->nphy_txpid5gh[0];
28010 txpi[1] = pi->nphy_txpid5gh[1];
28013 txpi[0] = txpi[1] = 91;
28018 if (NREV_GE(pi->pubpi.phy_rev, 7))
28019 txpi[0] = txpi[1] = 30;
28020 else if (NREV_GE(pi->pubpi.phy_rev, 3))
28021 txpi[0] = txpi[1] = 40;
28023 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
28025 if ((txpi[0] < 40) || (txpi[0] > 100) ||
28026 (txpi[1] < 40) || (txpi[1] > 100))
28027 txpi[0] = txpi[1] = 91;
28030 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
28031 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
28032 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
28033 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
28035 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28036 uint phyrev = pi->pubpi.phy_rev;
28038 if (NREV_GE(phyrev, 3)) {
28041 wlc_phy_get_ipa_gaintbl_nphy(pi);
28042 txgain = tx_gaintbl[txpi[core]];
28044 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28045 if (NREV_IS(phyrev, 3)) {
28047 nphy_tpc_5GHz_txgain_rev3
28049 } else if (NREV_IS(phyrev, 4)) {
28051 pi->srom_fem5g.extpagain ==
28053 nphy_tpc_5GHz_txgain_HiPwrEPA
28055 nphy_tpc_5GHz_txgain_rev4
28059 nphy_tpc_5GHz_txgain_rev5
28063 if (NREV_GE(phyrev, 5) &&
28064 (pi->srom_fem2g.extpagain == 3)) {
28066 nphy_tpc_txgain_HiPwrEPA
28069 txgain = nphy_tpc_txgain_rev3
28075 txgain = nphy_tpc_txgain[txpi[core]];
28078 if (NREV_GE(phyrev, 3))
28079 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
28081 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
28083 if (NREV_GE(phyrev, 7))
28084 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
28086 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28088 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28090 if (NREV_GE(phyrev, 3))
28091 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28092 0xa5), (0x1 << 8), (0x1 << 8));
28094 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28096 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
28098 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28101 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28102 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28103 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
28104 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28107 wlc_phy_table_read_nphy(pi,
28110 NPHY_TBL_ID_CORE1TXPWRCTL :
28111 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
28112 576 + txpi[core], 32,
28115 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28116 0x29b, (0x1ff << 4),
28117 ((s16) rfpwr_offset) << 4);
28119 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28120 0x29b, (0x1 << 2), (1) << 2);
28125 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
28127 if (pi->phyhang_avoid)
28128 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28132 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
28133 u8 tmp_max_pwr, u8 rate_start,
28137 u8 word_num, nibble_num;
28140 for (rate = rate_start; rate <= rate_end; rate++) {
28141 word_num = (rate - rate_start) >> 2;
28142 nibble_num = (rate - rate_start) & 0x3;
28143 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
28145 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
28150 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
28151 u8 rate_start, u8 rate_end)
28155 for (rate = rate_start; rate <= rate_end; rate++)
28156 srom_max[rate] -= 2 * pwr_offset;
28160 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
28161 u8 rate_mcs_end, u8 rate_ofdm_start)
28165 rate2 = rate_ofdm_start;
28166 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
28167 power[rate1] = power[rate2];
28168 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
28170 power[rate_mcs_end] = power[rate_mcs_end - 1];
28174 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
28175 u8 rate_ofdm_end, u8 rate_mcs_start)
28179 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
28180 rate1 <= rate_ofdm_end; rate1++, rate2++) {
28181 power[rate1] = power[rate2];
28182 if (rate1 == rate_ofdm_start)
28183 power[++rate1] = power[rate2];
28187 void wlc_phy_txpwr_apply_nphy(struct brcms_phy *pi)
28189 uint rate1, rate2, band_num;
28190 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
28191 u8 tmp_max_pwr = 0;
28192 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
28193 u8 *tx_srom_max_rate = NULL;
28195 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
28197 switch (band_num) {
28200 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
28201 pi->nphy_pwrctrl_info[1].max_pwr_2g);
28203 pwr_offsets1[0] = pi->cck2gpo;
28204 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
28210 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
28212 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
28214 pwr_offsets2 = pi->mcs2gpo;
28216 tmp_cddpo = pi->cdd2gpo;
28217 tmp_stbcpo = pi->stbc2gpo;
28218 tmp_bw40po = pi->bw402gpo;
28220 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
28224 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
28225 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
28227 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
28229 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
28231 pwr_offsets2 = pi->mcs5gpo;
28233 tmp_cddpo = pi->cdd5gpo;
28234 tmp_stbcpo = pi->stbc5gpo;
28235 tmp_bw40po = pi->bw405gpo;
28237 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
28241 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
28242 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
28244 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
28246 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
28248 pwr_offsets2 = pi->mcs5glpo;
28250 tmp_cddpo = pi->cdd5glpo;
28251 tmp_stbcpo = pi->stbc5glpo;
28252 tmp_bw40po = pi->bw405glpo;
28254 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
28258 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
28259 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
28261 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
28263 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
28265 pwr_offsets2 = pi->mcs5ghpo;
28267 tmp_cddpo = pi->cdd5ghpo;
28268 tmp_stbcpo = pi->stbc5ghpo;
28269 tmp_bw40po = pi->bw405ghpo;
28271 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
28275 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
28276 tmp_max_pwr, TXP_FIRST_OFDM,
28279 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
28280 TXP_FIRST_MCS_20_SISO,
28281 TXP_LAST_MCS_20_SISO,
28284 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28286 TXP_FIRST_MCS_20_CDD,
28287 TXP_LAST_MCS_20_CDD);
28289 if (NREV_GE(pi->pubpi.phy_rev, 3))
28290 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28291 TXP_FIRST_MCS_20_CDD,
28292 TXP_LAST_MCS_20_CDD);
28294 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28295 TXP_FIRST_OFDM_20_CDD,
28296 TXP_LAST_OFDM_20_CDD,
28297 TXP_FIRST_MCS_20_CDD);
28299 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28301 TXP_FIRST_MCS_20_STBC,
28302 TXP_LAST_MCS_20_STBC);
28304 if (NREV_GE(pi->pubpi.phy_rev, 3))
28305 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28307 TXP_FIRST_MCS_20_STBC,
28308 TXP_LAST_MCS_20_STBC);
28310 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28311 &pwr_offsets2[2], tmp_max_pwr,
28312 TXP_FIRST_MCS_20_SDM,
28313 TXP_LAST_MCS_20_SDM);
28315 if (NPHY_IS_SROM_REINTERPRET) {
28317 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28320 TXP_FIRST_MCS_40_SISO,
28321 TXP_LAST_MCS_40_SISO);
28323 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28324 TXP_FIRST_OFDM_40_SISO,
28325 TXP_LAST_OFDM_40_SISO,
28326 TXP_FIRST_MCS_40_SISO);
28328 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28331 TXP_FIRST_MCS_40_CDD,
28332 TXP_LAST_MCS_40_CDD);
28334 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28335 TXP_FIRST_MCS_40_CDD,
28336 TXP_LAST_MCS_40_CDD);
28338 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28339 TXP_FIRST_OFDM_40_CDD,
28340 TXP_LAST_OFDM_40_CDD,
28341 TXP_FIRST_MCS_40_CDD);
28343 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28346 TXP_FIRST_MCS_40_STBC,
28347 TXP_LAST_MCS_40_STBC);
28349 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28351 TXP_FIRST_MCS_40_STBC,
28352 TXP_LAST_MCS_40_STBC);
28354 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28357 TXP_FIRST_MCS_40_SDM,
28358 TXP_LAST_MCS_40_SDM);
28361 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
28363 rate1 <= TXP_LAST_MCS_40_SDM;
28365 tx_srom_max_rate[rate1] =
28366 tx_srom_max_rate[rate2];
28369 if (NREV_GE(pi->pubpi.phy_rev, 3))
28370 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28372 TXP_FIRST_OFDM_40_SISO,
28373 TXP_LAST_MCS_40_SDM);
28375 tx_srom_max_rate[TXP_MCS_32] =
28376 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
28382 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy *pi)
28384 u8 tx_pwr_ctrl_state;
28385 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28386 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28388 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28390 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28391 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28392 (void)R_REG(&pi->regs->maccontrol);
28396 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28398 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28399 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28402 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
28404 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28405 (0x1 << 14) | (0x1 << 13));
28408 u16 wlc_phy_txpwr_idx_get_nphy(struct brcms_phy *pi)
28413 if (wlc_phy_txpwr_ison_nphy(pi)) {
28414 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28415 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28417 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28419 tmp = ((pi->nphy_txpwrindex[PHY_CORE_0].index_internal & 0xff)
28421 (pi->nphy_txpwrindex[PHY_CORE_1].index_internal & 0xff);
28427 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
28430 && (pi->nphy_force_papd_cal
28431 || (wlc_phy_txpwr_ison_nphy(pi)
28434 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28435 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28437 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28438 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4)))))
28439 wlc_phy_a4(pi, true);
28442 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
28444 u16 mask = 0, val = 0, ishw = 0;
28451 if (pi->phyhang_avoid)
28452 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28454 switch (ctrl_type) {
28455 case PHY_TPC_HW_OFF:
28456 case PHY_TPC_HW_ON:
28457 pi->nphy_txpwrctrl = ctrl_type;
28463 if (ctrl_type == PHY_TPC_HW_OFF) {
28464 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28466 if (wlc_phy_txpwr_ison_nphy(pi)) {
28467 for (core = 0; core < pi->pubpi.phy_corenum;
28469 pi->nphy_txpwr_idx[core] =
28470 wlc_phy_txpwr_idx_cur_get_nphy(
28479 for (ctr = 0; ctr < tbl_len; ctr++)
28481 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28483 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28486 if (NREV_GE(pi->pubpi.phy_rev, 3))
28487 and_phy_reg(pi, 0x1e7,
28488 (u16) (~((0x1 << 15) |
28489 (0x1 << 14) | (0x1 << 13))));
28491 and_phy_reg(pi, 0x1e7,
28492 (u16) (~((0x1 << 14) | (0x1 << 13))));
28494 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28495 or_phy_reg(pi, 0x8f, (0x1 << 8));
28496 or_phy_reg(pi, 0xa5, (0x1 << 8));
28498 or_phy_reg(pi, 0xa5, (0x1 << 14));
28501 if (NREV_IS(pi->pubpi.phy_rev, 2))
28502 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28503 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28504 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28506 if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28507 pi->bw == WL_CHANSPEC_BW_40)
28508 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28509 MHF1_IQSWAP_WAR, BRCM_BAND_ALL);
28513 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28514 8, pi->adj_pwr_tbl_nphy);
28515 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28516 8, pi->adj_pwr_tbl_nphy);
28518 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28519 mask = (0x1 << 14) | (0x1 << 13);
28520 val = (ishw << 14) | (ishw << 13);
28522 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28523 mask |= (0x1 << 15);
28524 val |= (ishw << 15);
28527 mod_phy_reg(pi, 0x1e7, mask, val);
28529 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28530 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28531 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28532 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28534 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28535 if (NREV_GT(pi->pubpi.phy_rev, 1))
28536 mod_phy_reg(pi, 0x222,
28537 (0xff << 0), 0x64);
28541 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28542 if ((pi->nphy_txpwr_idx[0] != 128)
28543 && (pi->nphy_txpwr_idx[1] != 128))
28544 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28553 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28554 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28555 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28557 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28560 if (NREV_IS(pi->pubpi.phy_rev, 2))
28561 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28562 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28563 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28565 if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28566 pi->bw == WL_CHANSPEC_BW_40)
28567 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28568 0x0, BRCM_BAND_ALL);
28571 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28572 0x29b, (0x1 << 2), (0) << 2);
28574 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28575 0x29b, (0x1 << 2), (0) << 2);
28581 if (pi->phyhang_avoid)
28582 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28586 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28589 u8 core, txpwrctl_tbl;
28590 u16 tx_ind0, iq_ind0, lo_ind0;
28593 u16 rad_gain, dac_gain;
28596 u16 iqcomp_a, iqcomp_b;
28599 u8 tx_pwr_ctrl_state;
28603 if (pi->phyhang_avoid)
28604 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28610 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28612 if ((core_mask & (1 << core)) == 0)
28615 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28617 if (txpwrindex < 0) {
28618 if (pi->nphy_txpwrindex[core].index < 0)
28621 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28622 mod_phy_reg(pi, 0x8f,
28624 pi->nphy_txpwrindex[core].
28626 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28627 pi->nphy_txpwrindex[core].
28630 mod_phy_reg(pi, 0xa5,
28632 pi->nphy_txpwrindex[core].
28636 write_phy_reg(pi, (core == PHY_CORE_0) ?
28638 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28640 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28641 &pi->nphy_txpwrindex[core].
28644 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28645 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28646 m1m2 |= ((core == PHY_CORE_0) ?
28647 (pi->nphy_txpwrindex[core].bbmult << 8) :
28648 (pi->nphy_txpwrindex[core].bbmult << 0));
28649 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28651 if (restore_cals) {
28652 wlc_phy_table_write_nphy(
28653 pi, 15, 2, (80 + 2 * core), 16,
28654 &pi->nphy_txpwrindex[core].iqcomp_a);
28655 wlc_phy_table_write_nphy(
28656 pi, 15, 1, (85 + core), 16,
28657 &pi->nphy_txpwrindex[core].locomp);
28658 wlc_phy_table_write_nphy(
28659 pi, 15, 1, (93 + core), 16,
28660 &pi->nphy_txpwrindex[core].locomp);
28663 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
28665 pi->nphy_txpwrindex[core].index_internal =
28666 pi->nphy_txpwrindex[core].index_internal_save;
28669 if (pi->nphy_txpwrindex[core].index < 0) {
28671 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28672 mod_phy_reg(pi, 0x8f,
28674 pi->nphy_txpwrindex[core].
28676 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28677 pi->nphy_txpwrindex[core].
28680 pi->nphy_txpwrindex[core].
28682 read_phy_reg(pi, 0xa5);
28685 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28686 read_phy_reg(pi, (core == PHY_CORE_0) ?
28689 wlc_phy_table_read_nphy(pi, 7, 1,
28690 (0x110 + core), 16,
28692 nphy_txpwrindex[core].
28695 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28697 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28699 pi->nphy_txpwrindex[core].bbmult = (u8) tmpval;
28701 wlc_phy_table_read_nphy(pi, 15, 2,
28702 (80 + 2 * core), 16,
28704 nphy_txpwrindex[core].
28707 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28710 nphy_txpwrindex[core].
28713 pi->nphy_txpwrindex[core].index_internal_save =
28714 pi->nphy_txpwrindex[core].
28718 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28719 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
28721 if (NREV_IS(pi->pubpi.phy_rev, 1))
28722 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
28724 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28725 (tx_ind0 + txpwrindex), 32,
28728 if (NREV_GE(pi->pubpi.phy_rev, 3))
28729 rad_gain = (txgain >> 16) &
28730 ((1 << (32 - 16 + 1)) - 1);
28732 rad_gain = (txgain >> 16) &
28733 ((1 << (28 - 16 + 1)) - 1);
28735 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28736 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28738 if (NREV_GE(pi->pubpi.phy_rev, 3))
28739 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28740 0xa5), (0x1 << 8), (0x1 << 8));
28742 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28744 write_phy_reg(pi, (core == PHY_CORE_0) ?
28745 0xaa : 0xab, dac_gain);
28747 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28750 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28751 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28752 m1m2 |= ((core == PHY_CORE_0) ?
28753 (bbmult << 8) : (bbmult << 0));
28755 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28757 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28758 (iq_ind0 + txpwrindex), 32,
28760 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
28761 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
28763 if (restore_cals) {
28764 regval[0] = (u16) iqcomp_a;
28765 regval[1] = (u16) iqcomp_b;
28766 wlc_phy_table_write_nphy(pi, 15, 2,
28767 (80 + 2 * core), 16,
28771 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28772 (lo_ind0 + txpwrindex), 32,
28775 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28778 if (NREV_IS(pi->pubpi.phy_rev, 1))
28779 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28782 wlc_phy_table_read_nphy(pi,
28783 (core == PHY_CORE_0 ?
28784 NPHY_TBL_ID_CORE1TXPWRCTL :
28785 NPHY_TBL_ID_CORE2TXPWRCTL),
28786 1, 576 + txpwrindex, 32,
28789 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28790 0x29b, (0x1ff << 4),
28791 ((s16) rfpwr_offset) << 4);
28793 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28794 0x29b, (0x1 << 2), (1) << 2);
28798 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28801 pi->nphy_txpwrindex[core].index = txpwrindex;
28804 if (pi->phyhang_avoid)
28805 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28809 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
28812 u8 chan_freq_range;
28814 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
28815 switch (chan_freq_range) {
28816 case WL_CHAN_FREQ_RANGE_2G:
28817 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28819 case WL_CHAN_FREQ_RANGE_5GM:
28820 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
28822 case WL_CHAN_FREQ_RANGE_5GL:
28823 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
28825 case WL_CHAN_FREQ_RANGE_5GH:
28826 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
28829 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28836 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
28838 u16 clip_off[] = { 0xffff, 0xffff };
28841 if (pi->nphy_deaf_count == 0) {
28842 pi->classifier_state =
28843 wlc_phy_classifier_nphy(pi, 0, 0);
28844 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
28845 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
28846 wlc_phy_clip_det_nphy(pi, 1, clip_off);
28849 pi->nphy_deaf_count++;
28851 wlc_phy_resetcca_nphy(pi);
28854 pi->nphy_deaf_count--;
28856 if (pi->nphy_deaf_count == 0) {
28857 wlc_phy_classifier_nphy(pi, (0x7 << 0),
28858 pi->classifier_state);
28859 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
28864 void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
28866 wlapi_suspend_mac_and_wait(pi->sh->physhim);
28869 if (pi->nphy_deaf_count == 0)
28870 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28871 } else if (pi->nphy_deaf_count > 0) {
28872 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28875 wlapi_enable_mac(pi->sh->physhim);