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"
34 #define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
35 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
36 ((core == PHY_CORE_0) ? \
37 radio_type##_##jspace##0 : \
38 radio_type##_##jspace##1))
40 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
41 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
42 ((core == PHY_CORE_0) ? \
43 radio_type##_##jspace##0 : \
44 radio_type##_##jspace##1), value)
46 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
47 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value)
49 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
50 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
51 radio_type##_##jspace##0##_##reg_name : \
52 radio_type##_##jspace##1##_##reg_name))
54 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
55 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
56 radio_type##_##jspace##0##_##reg_name : \
57 radio_type##_##jspace##1##_##reg_name), \
60 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
61 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
62 radio_type##_##reg_name##_##jspace##0 : \
63 radio_type##_##reg_name##_##jspace##1))
65 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
66 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
67 radio_type##_##reg_name##_##jspace##0 : \
68 radio_type##_##reg_name##_##jspace##1), \
71 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
72 #define NPHY_ACI_CHANNEL_DELTA 5
73 #define NPHY_ACI_CHANNEL_SKIP 4
74 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
75 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
76 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
77 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
78 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
79 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
81 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
83 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
85 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
87 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
89 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
91 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
93 #define NPHY_NOISE_NOASSOC_ENTER_TH 400
95 #define NPHY_NOISE_ASSOC_ENTER_TH 400
97 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
99 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
100 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
102 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
104 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
106 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
108 #define NPHY_RSSICAL_MAXREAD 31
110 #define NPHY_RSSICAL_NPOLL 8
111 #define NPHY_RSSICAL_MAXD (1<<20)
112 #define NPHY_MIN_RXIQ_PWR 2
114 #define NPHY_RSSICAL_W1_TARGET 25
115 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
116 #define NPHY_RSSICAL_NB_TARGET 0
118 #define NPHY_RSSICAL_W1_TARGET_REV3 29
119 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
121 #define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
122 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
123 #define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
124 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - \
125 NPHY_RSSICAL_MAXREAD)
126 #define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
127 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - \
128 NPHY_RSSICAL_MAXREAD)
129 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
130 #define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
131 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
132 #define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
133 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
134 #define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
135 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
137 #define NPHY_IQCAL_NUMGAINS 9
138 #define NPHY_N_GCTL 0x66
140 #define NPHY_PAPD_EPS_TBL_SIZE 64
141 #define NPHY_PAPD_SCL_TBL_SIZE 64
142 #define NPHY_NUM_DIG_FILT_COEFFS 15
144 #define NPHY_PAPD_COMP_OFF 0
145 #define NPHY_PAPD_COMP_ON 1
147 #define NPHY_SROM_TEMPSHIFT 32
148 #define NPHY_SROM_MAXTEMPOFFSET 16
149 #define NPHY_SROM_MINTEMPOFFSET -16
151 #define NPHY_CAL_MAXTEMPDELTA 64
153 #define NPHY_NOISEVAR_TBLLEN40 256
154 #define NPHY_NOISEVAR_TBLLEN20 128
156 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
158 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
160 /* 5357 Chip specific ChipControl register bits */
161 #define CCTRL5357_EXTPA (1<<14) /* extPA in ChipControl 1, bit 14 */
162 #define CCTRL5357_ANT_MUX_2o3 (1<<15) /* 2o3 in ChipControl 1, bit 15 */
164 #define NPHY_CAL_TSSISAMPS 64
165 #define NPHY_TEST_TONE_FREQ_40MHz 4000
166 #define NPHY_TEST_TONE_FREQ_20MHz 2500
168 #define MAX_205x_RCAL_WAITLOOPS 10000
170 #define NPHY_RXCAL_TONEAMP 181
171 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
172 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
174 #define TXFILT_SHAPING_OFDM20 0
175 #define TXFILT_SHAPING_OFDM40 1
176 #define TXFILT_SHAPING_CCK 2
177 #define TXFILT_DEFAULT_OFDM20 3
178 #define TXFILT_DEFAULT_OFDM40 4
180 struct nphy_iqcal_params {
190 struct nphy_txiqcal_ladder {
195 struct nphy_ipa_txcalgains {
196 struct nphy_txgains gains;
201 struct nphy_papd_restore_state {
212 struct nphy_ipa_txrxgain {
221 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
223 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz[] = {
224 {0, 0, 0, 0, 0, 100},
232 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz[] = {
233 {0, 0, 0, 0, 0, 128},
241 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = {
242 {0, 0, 0, 0, 0, 100},
250 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = {
260 NPHY_RXCAL_GAIN_INIT = 0,
265 #define wlc_phy_get_papd_nphy(pi) \
266 (read_phy_reg((pi), 0x1e7) & \
271 static const u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
272 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
273 230, -44, 230, 201, -191, 201},
274 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
276 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
277 121, -73, 121, 91, 124, 91},
278 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
279 151, 301, 151, 602, -752, 602},
280 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
281 12, 25, 12, 13, 27, 13},
282 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
283 230, -44, 230, 201, -191, 201},
284 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
285 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
288 struct chan_info_nphy_2055 {
304 u8 RF_core1_lgbuf_a_tune;
305 u8 RF_core1_lgbuf_g_tune;
306 u8 RF_core1_rxrf_reg1;
307 u8 RF_core1_tx_pga_pad_tn;
308 u8 RF_core1_tx_mx_bgtrim;
309 u8 RF_core2_lgbuf_a_tune;
310 u8 RF_core2_lgbuf_g_tune;
311 u8 RF_core2_rxrf_reg1;
312 u8 RF_core2_tx_pga_pad_tn;
313 u8 RF_core2_tx_mx_bgtrim;
322 struct chan_info_nphy_radio205x {
325 u8 RF_SYN_pll_vcocal1;
326 u8 RF_SYN_pll_vcocal2;
327 u8 RF_SYN_pll_refdiv;
330 u8 RF_SYN_pll_loopfilter1;
331 u8 RF_SYN_pll_loopfilter2;
332 u8 RF_SYN_pll_loopfilter3;
333 u8 RF_SYN_pll_loopfilter4;
334 u8 RF_SYN_pll_loopfilter5;
335 u8 RF_SYN_reserved_addr27;
336 u8 RF_SYN_reserved_addr28;
337 u8 RF_SYN_reserved_addr29;
338 u8 RF_SYN_logen_VCOBUF1;
339 u8 RF_SYN_logen_MIXER2;
340 u8 RF_SYN_logen_BUF3;
341 u8 RF_SYN_logen_BUF4;
344 u8 RF_TX0_intpaa_boost_tune;
345 u8 RF_TX0_intpag_boost_tune;
346 u8 RF_TX0_pada_boost_tune;
347 u8 RF_TX0_padg_boost_tune;
348 u8 RF_TX0_pgaa_boost_tune;
349 u8 RF_TX0_pgag_boost_tune;
350 u8 RF_TX0_mixa_boost_tune;
351 u8 RF_TX0_mixg_boost_tune;
354 u8 RF_TX1_intpaa_boost_tune;
355 u8 RF_TX1_intpag_boost_tune;
356 u8 RF_TX1_pada_boost_tune;
357 u8 RF_TX1_padg_boost_tune;
358 u8 RF_TX1_pgaa_boost_tune;
359 u8 RF_TX1_pgag_boost_tune;
360 u8 RF_TX1_mixa_boost_tune;
361 u8 RF_TX1_mixg_boost_tune;
370 struct chan_info_nphy_radio2057 {
373 u8 RF_vcocal_countval0;
374 u8 RF_vcocal_countval1;
375 u8 RF_rfpll_refmaster_sparextalsize;
376 u8 RF_rfpll_loopfilter_r1;
377 u8 RF_rfpll_loopfilter_c2;
378 u8 RF_rfpll_loopfilter_c1;
383 u8 RF_logen_mx2g_tune;
384 u8 RF_logen_mx5g_tune;
385 u8 RF_logen_indbuf2g_tune;
386 u8 RF_logen_indbuf5g_tune;
387 u8 RF_txmix2g_tune_boost_pu_core0;
388 u8 RF_pad2g_tune_pus_core0;
389 u8 RF_pga_boost_tune_core0;
390 u8 RF_txmix5g_boost_tune_core0;
391 u8 RF_pad5g_tune_misc_pus_core0;
392 u8 RF_lna2g_tune_core0;
393 u8 RF_lna5g_tune_core0;
394 u8 RF_txmix2g_tune_boost_pu_core1;
395 u8 RF_pad2g_tune_pus_core1;
396 u8 RF_pga_boost_tune_core1;
397 u8 RF_txmix5g_boost_tune_core1;
398 u8 RF_pad5g_tune_misc_pus_core1;
399 u8 RF_lna2g_tune_core1;
400 u8 RF_lna5g_tune_core1;
409 struct chan_info_nphy_radio2057_rev5 {
412 u8 RF_vcocal_countval0;
413 u8 RF_vcocal_countval1;
414 u8 RF_rfpll_refmaster_sparextalsize;
415 u8 RF_rfpll_loopfilter_r1;
416 u8 RF_rfpll_loopfilter_c2;
417 u8 RF_rfpll_loopfilter_c1;
422 u8 RF_logen_mx2g_tune;
423 u8 RF_logen_indbuf2g_tune;
424 u8 RF_txmix2g_tune_boost_pu_core0;
425 u8 RF_pad2g_tune_pus_core0;
426 u8 RF_lna2g_tune_core0;
427 u8 RF_txmix2g_tune_boost_pu_core1;
428 u8 RF_pad2g_tune_pus_core1;
429 u8 RF_lna2g_tune_core1;
438 struct nphy_sfo_cfg {
447 static const struct chan_info_nphy_2055 chan_info_nphy_2055[] = {
449 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
450 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
451 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
453 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
454 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
455 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
457 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
458 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
459 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
461 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
462 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
463 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
465 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
466 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
467 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
469 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
470 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
471 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
473 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
474 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
475 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
477 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
478 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
479 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
481 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
482 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
483 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
485 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
486 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
487 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
489 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
490 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
491 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
493 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
494 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
495 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
497 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
498 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
499 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
501 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
502 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
503 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
505 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
506 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
507 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
509 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
510 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
511 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
513 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
514 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
515 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
517 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
518 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
519 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
521 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
522 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
523 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
525 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
526 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
527 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
529 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
530 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
531 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
533 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
534 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
535 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
537 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
538 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
539 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
541 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
542 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
543 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
545 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
546 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
547 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
549 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
550 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
551 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
553 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
554 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
555 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
557 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
558 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
559 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
561 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
562 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
563 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
565 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
566 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
567 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
569 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
570 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
571 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
573 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
574 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
575 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
577 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
578 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
579 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
581 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
582 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
583 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
585 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
586 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
587 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
589 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
590 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
591 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
593 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
594 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
595 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
597 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
598 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
599 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
601 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
602 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
603 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
605 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
606 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
607 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
609 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
610 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
611 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
613 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
614 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
615 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
617 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
618 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
619 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
621 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
622 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
623 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
625 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
626 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
627 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
629 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
630 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
631 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
633 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
634 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
635 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
637 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
638 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
639 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
641 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
642 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
643 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
645 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
646 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
647 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
649 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
650 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
651 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
653 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
654 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
655 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
657 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
658 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
659 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
661 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
662 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
663 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
665 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
666 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
667 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
669 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
670 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
671 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
673 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
674 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
675 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
677 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
678 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
679 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
681 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
682 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
683 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
685 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
686 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
687 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
689 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
690 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
691 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
693 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
694 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
695 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
697 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
698 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
699 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
701 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
702 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
703 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
705 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
706 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
707 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
709 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
710 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
711 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
713 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
714 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
715 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
717 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
718 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
719 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
721 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
722 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
723 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
725 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
726 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
727 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
729 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
730 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
731 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
733 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
734 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
735 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
737 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
738 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
739 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
741 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
742 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
743 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
745 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
746 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
747 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
749 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
750 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
751 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
753 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
754 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
755 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
757 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
758 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
759 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
761 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
762 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
763 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
765 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
766 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
767 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
769 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
770 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
771 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
773 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
774 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
775 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
777 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
778 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
779 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
781 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
782 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
783 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
785 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
786 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
787 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
789 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
790 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
791 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
793 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
794 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
795 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
797 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
798 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
799 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
801 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
802 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
803 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
805 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
806 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
807 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
809 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
810 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
811 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
813 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
814 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
815 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
817 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
818 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
819 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
821 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
822 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
823 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
825 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
826 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
827 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
829 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
830 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
831 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
833 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
834 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
835 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
837 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
838 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
839 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
841 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
842 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
843 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
845 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
846 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
847 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
849 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
850 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
851 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
853 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
854 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
855 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
857 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
858 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
859 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
861 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
862 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
863 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
865 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
866 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
867 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
869 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
870 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
871 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
873 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
874 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
875 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
877 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
878 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
879 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
881 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
882 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
883 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
885 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
886 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
887 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
889 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
890 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
891 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
893 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
894 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
895 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
897 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
898 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
899 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
901 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
902 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
903 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
905 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
906 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
907 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
909 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
910 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
911 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
913 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
914 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
915 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
917 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
918 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
919 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
921 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
922 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
923 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
925 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
926 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
927 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
929 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
930 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
931 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
933 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
934 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
935 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
937 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
938 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
939 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
941 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
942 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
943 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
946 static const struct chan_info_nphy_radio205x chan_info_nphyrev3_2056[] = {
948 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
949 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
950 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
951 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
953 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
954 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
955 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
956 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
958 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
959 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
960 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
961 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
963 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
964 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
965 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
966 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
968 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
969 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
970 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
971 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
973 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
974 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
975 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
976 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
978 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
979 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
980 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
981 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
983 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
984 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
985 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
986 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
988 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
989 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
990 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
991 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
993 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
994 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
995 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
996 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
998 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
999 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1000 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1001 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1003 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1004 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1005 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1006 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1008 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1009 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1010 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1011 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1013 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1014 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1015 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1016 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1018 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1019 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1020 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1021 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1023 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1024 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1025 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1026 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1028 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1029 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1030 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1031 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1033 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1034 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1035 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1036 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1038 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1039 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1040 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1041 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1043 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1044 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1045 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1046 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1048 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1049 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1050 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1051 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1053 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1054 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1055 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1056 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1058 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1059 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1060 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1061 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1063 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1064 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1065 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1066 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1068 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1069 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1070 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1071 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1073 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1074 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1075 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1076 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1078 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1079 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1080 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1081 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1083 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1084 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1085 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1086 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1088 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1089 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1090 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1091 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1093 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1094 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1095 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1096 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1098 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1099 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1100 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1101 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1103 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1104 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1105 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1106 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1108 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1109 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1110 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1111 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1113 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1114 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1115 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1116 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1118 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1119 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1120 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1121 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1123 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1124 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1125 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1126 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1128 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1129 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1130 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1131 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1133 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1134 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1135 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1136 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1138 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1139 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1140 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1141 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1143 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1144 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1145 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1146 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1148 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1149 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1150 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1151 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1153 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1154 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1155 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1156 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1158 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1159 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1160 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1161 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1163 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1164 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1165 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1166 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1168 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1169 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1170 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1171 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1173 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1174 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1175 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1176 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1178 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1179 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1180 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1181 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1183 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1184 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1185 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1186 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1188 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1189 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1190 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1191 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1193 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1194 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1195 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1196 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1198 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1199 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1200 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1201 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1203 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1204 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1205 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1206 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1208 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1209 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1210 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1211 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1213 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1214 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1215 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1216 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1218 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1219 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1220 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1221 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1223 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1224 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1225 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1226 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1228 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1229 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1230 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1231 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1233 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1234 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1235 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1236 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1238 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1239 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1240 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1241 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1243 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1244 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1245 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1246 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1248 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1249 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1250 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1251 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1253 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1254 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1255 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1256 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1258 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1259 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1260 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1261 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1263 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1264 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1265 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1266 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1268 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1269 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1270 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1271 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1273 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1274 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1275 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1276 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1278 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1279 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1280 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1281 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1283 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1284 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1285 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1286 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1288 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1289 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1290 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1291 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1293 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1294 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1295 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1296 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1298 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1299 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1300 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1301 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1303 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1304 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1305 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1306 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1308 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1309 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1310 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1311 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1313 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1314 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1315 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1316 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1318 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1319 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1320 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1321 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1323 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1324 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1325 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1326 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1328 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1329 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1330 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1331 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1333 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1334 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1335 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1336 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1338 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1339 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1340 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1341 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1343 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1344 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1345 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1346 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1348 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1349 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1350 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1351 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1353 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1354 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1355 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1356 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1358 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1359 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1360 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1361 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1363 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1364 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1365 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1366 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1368 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1369 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1370 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1371 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1373 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1374 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1375 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1376 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1378 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1379 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1380 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1381 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1383 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1384 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1385 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1386 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1388 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1389 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1390 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1391 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1393 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1394 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1395 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1396 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1398 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1399 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1400 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1401 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1403 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1404 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1405 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1406 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1408 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1409 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1410 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1411 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1413 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1414 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1415 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1416 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1418 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1419 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1420 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1421 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1423 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1424 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1425 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1426 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1428 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1429 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1430 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1431 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1433 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1434 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1435 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1436 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1438 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1439 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1440 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1441 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1443 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1444 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1445 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1446 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1448 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1449 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1450 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1451 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1453 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1454 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1455 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1456 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1458 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1459 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1460 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1461 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1463 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1464 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1465 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1466 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1468 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1469 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1470 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1471 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1473 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1474 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1475 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1476 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1478 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1479 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1480 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1481 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1483 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1484 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1485 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1486 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1488 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1489 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1490 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1491 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1493 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1494 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1495 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1496 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1498 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1499 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1500 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1501 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1503 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1504 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1505 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1506 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1508 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1509 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1510 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1511 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1513 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1514 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1515 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1516 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1518 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1519 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1520 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1521 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1523 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1524 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1525 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1526 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1528 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1529 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1530 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1531 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1533 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1534 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1535 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1536 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1538 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1539 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1540 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1541 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1543 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1544 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1545 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1546 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1548 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1549 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1550 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1551 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1553 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1554 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1555 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1556 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1558 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1559 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1560 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1561 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1563 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1564 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1565 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1566 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1569 static const struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1[] = {
1571 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1572 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1573 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1574 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1576 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1577 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1578 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1579 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1581 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1582 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1583 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1584 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1586 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1587 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1588 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1589 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1591 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1592 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1593 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1594 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1596 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1597 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1598 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1599 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1601 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1602 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1603 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1604 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1606 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1607 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1608 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1609 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1611 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1612 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1613 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1614 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1616 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1617 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1618 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1619 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1621 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1622 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1623 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1624 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1626 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1627 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1628 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1629 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1631 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1632 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1633 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1634 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1636 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1637 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1638 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1639 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1641 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1642 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1643 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1644 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1646 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1647 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1648 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1649 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1651 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1652 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1653 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1654 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1656 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1657 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1658 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1659 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1661 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1662 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1663 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1664 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1666 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1667 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1668 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1669 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1671 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1672 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1673 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1674 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1676 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1677 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1678 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1679 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1681 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1682 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1683 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1684 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1686 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1687 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1688 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1689 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1691 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1692 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1693 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1694 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1696 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1697 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1698 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1699 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1701 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1702 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1703 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1704 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1706 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1707 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1708 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1709 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1711 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1712 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1713 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1714 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1716 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1717 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1718 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1719 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1721 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1722 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1723 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1724 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1726 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1727 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1728 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1729 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1731 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1732 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1733 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1734 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1736 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1737 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1738 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1739 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1741 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1742 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1743 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1744 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1746 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1747 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1748 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1749 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1751 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1752 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1753 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1754 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1756 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1757 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1758 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1759 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1761 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1762 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1763 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1764 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1766 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1767 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1768 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1769 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1771 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1772 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1773 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1774 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1776 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1777 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1778 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1779 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1781 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1782 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1783 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1784 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1786 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1787 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1788 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1789 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1791 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1792 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1793 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1794 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1796 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1797 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1798 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1799 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1801 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1802 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1803 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1804 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1806 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1807 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1808 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1809 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1811 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1812 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1813 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1814 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1816 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1817 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1818 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1819 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1821 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1822 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1823 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1824 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1826 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1827 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1828 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1829 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1831 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1832 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1833 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1834 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1836 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1837 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1838 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1839 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1841 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1842 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1843 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1844 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1846 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1847 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1848 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1849 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1851 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1852 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1853 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1854 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1856 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1857 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1858 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1859 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1861 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1862 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1863 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1864 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1866 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1867 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1868 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1869 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1871 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1872 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1873 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1874 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1876 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1877 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1878 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1879 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1881 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1882 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1883 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1884 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1886 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1887 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1888 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1889 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1891 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1892 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1893 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1894 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1896 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1897 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1898 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1899 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1901 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1902 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1903 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1904 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1906 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1907 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1908 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1909 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1911 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1912 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1913 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1914 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1916 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1917 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1918 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1919 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1921 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1922 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1923 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1924 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1926 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1927 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1928 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1929 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1931 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1932 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1933 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1934 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1936 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1937 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1938 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1939 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1941 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1942 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1943 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1944 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1946 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1947 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1948 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1949 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1951 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1952 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1953 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1954 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1956 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1957 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1958 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1959 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1961 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1962 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1963 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1964 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1966 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1967 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1968 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1969 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1971 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1972 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1973 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1974 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1976 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1977 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1978 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1979 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1981 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1982 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1983 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1984 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1986 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1987 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1988 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1989 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1991 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1992 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1993 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1994 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1996 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1997 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1998 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1999 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2001 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2002 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2003 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2004 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2006 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2007 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2008 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2009 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2011 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2012 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2013 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2014 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2016 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2017 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2018 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2019 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2021 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2022 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2023 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2024 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2026 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2027 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2028 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2029 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2031 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2032 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2033 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2034 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2036 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2037 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2038 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2039 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2041 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2042 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2043 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2044 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2046 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2047 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2048 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2049 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2051 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2052 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2053 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2054 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2056 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2057 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2058 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2059 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2061 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2062 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2063 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2064 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2066 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2067 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2068 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2069 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2071 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2072 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2073 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2074 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2076 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2077 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2078 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2079 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2081 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2082 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2083 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2084 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2086 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2087 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2088 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2089 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2091 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2092 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2093 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2094 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2096 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2097 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2098 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2099 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2101 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2102 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2103 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2104 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2106 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2107 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2108 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2109 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2111 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2112 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2113 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2114 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2116 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2117 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2118 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2119 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2121 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2122 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2123 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2124 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2126 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2127 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2128 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2129 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2131 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2132 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2133 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2134 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2136 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2137 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2138 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2139 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2141 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2142 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2143 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2144 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2146 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2147 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2148 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2149 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2151 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2152 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2153 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2154 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2156 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2157 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2158 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2159 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2161 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2162 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2163 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2164 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2166 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2167 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2168 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2169 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2171 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2172 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2173 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2174 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2176 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2177 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2178 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2179 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2181 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2182 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2183 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2184 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2186 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2187 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2188 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2189 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2192 static const struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5[] = {
2194 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2195 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2196 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2197 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2199 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2200 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2201 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2202 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2204 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2205 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2206 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2207 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2209 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2210 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2211 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2212 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2214 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2215 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2216 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2217 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2219 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2220 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2221 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2222 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2224 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2225 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2226 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2227 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2229 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2230 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2231 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2232 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2234 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2235 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2236 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2237 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2239 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2240 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2241 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2242 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2244 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2245 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2246 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2247 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2249 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2250 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2251 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2252 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2254 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2255 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2256 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2257 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2259 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2260 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2261 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2262 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2264 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2265 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2266 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2267 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2269 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2270 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2271 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2272 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2274 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2275 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2276 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2277 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2279 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2280 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2281 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2282 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2284 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2285 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2286 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2287 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2289 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2290 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2291 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2292 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2294 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2295 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2296 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2297 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2299 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2300 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2301 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2302 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2304 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2305 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2306 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2307 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2309 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2310 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2311 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2312 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2314 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2315 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2316 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2317 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2319 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2320 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2321 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2322 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2324 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2325 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2326 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2327 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2329 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2330 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2331 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2332 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2334 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2335 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2336 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2337 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2339 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2340 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2341 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2342 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2344 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2345 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2346 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2347 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2349 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2350 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2351 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2352 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2354 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2355 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2356 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2357 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2359 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2360 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2361 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2362 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2364 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2365 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2366 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2367 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2369 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2370 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2371 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2372 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2374 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2375 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2376 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2377 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2379 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2380 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2381 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2382 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2384 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2385 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2386 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2387 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2389 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2390 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2391 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2392 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2394 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2395 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2396 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2397 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2399 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2400 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2401 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2402 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2404 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2405 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2406 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2407 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2409 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2410 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2411 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2412 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2414 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2415 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2416 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2417 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2419 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2420 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2421 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2422 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2424 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2425 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2426 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2427 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2429 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2430 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2431 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2432 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2434 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2435 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2436 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2437 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2439 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2440 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2441 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2442 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2444 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2445 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2446 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2447 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2449 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2450 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2451 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2452 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2454 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2455 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2456 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2457 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2459 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2460 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2461 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2462 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2464 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2465 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2466 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2467 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2469 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2470 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2471 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2472 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2474 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2475 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2476 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2477 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2479 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2480 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2481 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2482 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2484 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2485 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2486 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2487 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2489 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2490 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2491 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2492 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2494 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2495 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2496 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2497 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2499 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2500 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2501 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2502 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2504 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2505 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2506 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2507 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2509 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2510 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2511 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2512 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2514 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2515 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2516 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2517 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2519 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2520 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2521 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2522 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2524 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2525 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2526 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2527 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2529 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2530 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2531 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2532 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2534 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2535 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2536 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2537 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2539 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2540 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2541 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2542 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2544 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2545 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2546 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2547 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2549 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2550 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2551 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2552 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2554 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2555 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2556 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2557 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2559 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2560 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2561 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2562 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2564 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2565 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2566 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2567 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2569 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2570 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2571 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2572 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2574 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2575 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2576 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2577 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2579 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2580 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2581 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2582 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2584 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2585 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2586 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2587 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2589 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2590 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2591 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2592 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2594 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2595 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2596 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2597 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2599 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2600 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2601 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2602 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2604 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2605 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2606 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2607 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2609 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2610 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2611 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2612 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2614 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2615 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2616 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2617 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2619 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2620 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2621 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2622 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2624 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2625 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2626 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2627 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2629 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2630 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2631 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2632 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2634 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2635 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2636 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2637 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2639 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2640 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2641 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2642 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2644 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2645 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2646 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2647 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2649 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2650 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2651 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2652 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2654 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2655 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2656 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2657 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2659 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2660 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2661 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2662 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2664 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2665 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2666 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2667 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2669 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2670 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2671 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2672 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2674 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2675 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2676 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2677 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2679 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2680 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2681 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2682 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2684 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2685 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2686 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2687 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2689 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2690 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2691 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2692 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2694 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2695 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2696 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2697 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2699 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2700 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2701 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2702 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2704 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2705 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2706 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2707 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2709 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2710 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2711 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2712 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2714 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2715 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2716 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2717 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2719 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2720 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2721 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2722 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2724 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2725 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2726 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2727 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2729 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2730 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2731 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2732 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2734 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2735 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2736 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2737 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2739 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2740 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2741 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2742 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2744 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2745 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2746 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2747 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2749 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2750 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2751 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2752 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2754 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2755 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2756 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2757 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2759 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2760 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2761 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2762 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2764 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2765 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2766 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2767 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2769 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2770 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2771 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2772 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2774 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2775 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2776 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2777 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2779 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2780 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2781 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2782 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2784 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2785 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2786 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2787 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2789 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2790 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2791 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2792 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2794 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2795 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2796 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2797 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2799 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2800 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2801 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2802 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2804 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2805 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2806 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2807 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2809 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2810 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2811 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2812 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2815 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6[] = {
2817 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2818 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2819 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2820 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2822 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2823 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2824 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2825 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2827 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2828 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2829 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2830 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2832 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2833 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2834 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2835 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2837 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2838 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2839 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2840 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2842 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2843 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2844 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2845 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2847 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2848 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2849 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2850 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2852 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2853 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2854 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2855 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2857 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2858 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2859 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2860 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2862 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2863 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2864 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2865 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2867 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2868 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2869 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2870 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2872 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2873 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2874 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2875 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2877 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2878 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2879 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2880 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2882 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2883 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2884 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2885 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2887 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2888 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2889 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2890 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2892 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2893 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2894 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2895 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2897 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2898 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2899 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2900 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2902 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2903 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2904 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2905 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2907 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2908 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2909 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2910 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2912 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2913 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2914 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2915 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2917 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2918 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2919 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2920 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2922 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2923 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2924 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2925 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2927 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2928 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2929 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2930 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2932 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2933 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2934 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2935 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2937 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2938 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2939 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2940 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2942 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2943 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2944 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2945 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2947 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2948 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2949 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2950 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2952 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2953 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2954 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2955 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2957 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2958 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2959 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2960 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2962 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2963 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2964 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2965 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2967 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2968 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2969 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2970 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2972 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2973 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2974 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2975 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2977 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2978 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2979 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2980 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2982 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2983 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2984 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2985 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2987 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2988 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2989 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2990 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2992 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2993 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2994 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2995 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2997 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2998 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2999 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3000 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3002 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3003 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3004 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3005 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3007 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3008 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3009 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3010 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3012 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3013 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
3014 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3015 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3017 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3018 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
3019 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3020 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3022 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3023 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3024 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3025 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3027 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3028 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3029 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3030 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3032 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3033 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3034 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3035 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3037 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3038 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3039 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3040 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3042 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3043 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3044 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3045 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3047 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3048 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3049 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3050 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3052 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3053 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3054 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3055 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3057 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3058 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3059 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3060 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3062 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3063 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3064 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3065 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3067 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3068 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3069 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3070 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3072 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3073 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3074 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3075 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3077 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3078 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3079 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3080 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3082 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3083 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3084 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3085 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3087 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3088 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3089 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3090 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3092 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3093 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3094 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3095 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3097 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3098 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3099 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3100 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3102 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3103 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3104 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3105 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3107 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3108 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3109 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3110 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3112 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3113 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3114 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3115 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3117 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3118 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3119 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3120 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3122 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3123 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3124 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3125 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3127 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3128 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3129 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3130 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3132 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3133 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3134 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3135 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3137 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3138 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3139 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3140 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3142 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3143 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3144 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3145 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3147 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3148 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3149 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3150 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3152 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3153 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3154 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3155 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3157 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3158 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3159 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3160 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3162 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3163 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3164 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3165 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3167 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3168 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3169 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3170 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3172 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3173 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3174 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3175 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3177 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3178 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3179 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3180 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3182 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3183 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3184 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3185 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3187 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3188 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3189 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3190 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3192 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3193 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3194 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3195 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3197 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3198 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3199 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3200 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3202 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3203 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3204 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3205 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3207 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3208 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3209 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3210 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3212 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3213 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3214 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3215 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3217 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3218 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3219 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3220 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3222 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3223 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3224 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3225 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3227 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3228 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3229 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3230 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3232 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3233 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3234 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3235 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3237 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3238 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3239 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3240 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3242 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3243 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3244 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3245 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3247 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3248 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3249 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3250 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3252 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3253 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3254 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3255 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3257 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3258 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3259 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3260 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3262 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3263 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3264 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3265 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3267 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3268 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3269 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3270 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3272 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3273 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3274 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3275 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3277 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3278 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3279 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3280 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3282 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3283 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3284 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3285 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3287 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3288 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3289 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3290 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3292 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3293 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3294 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3295 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3297 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3298 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3299 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3300 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3302 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3303 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3304 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3305 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3307 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3308 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3309 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3310 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3312 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3313 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3314 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3315 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3317 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3318 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3319 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3320 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3322 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3323 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3324 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3325 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3327 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3328 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3329 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3330 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3332 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3333 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3334 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3335 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3337 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3338 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3339 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3340 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3342 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3343 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3344 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3345 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3347 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3348 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3349 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3350 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3352 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3353 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3354 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3355 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3357 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3358 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3359 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3360 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3362 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3363 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3364 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3365 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3367 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3368 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3369 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3370 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3372 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3373 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3374 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3375 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3377 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3378 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3379 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3380 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3382 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3383 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3384 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3385 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3387 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3388 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3389 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3390 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3392 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3393 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3394 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3395 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3397 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3398 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3399 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3400 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3402 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3403 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3404 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3405 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3407 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3408 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3409 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3410 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3412 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3413 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3414 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3415 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3417 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3418 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3419 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3420 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3422 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3423 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3424 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3425 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3427 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3428 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3429 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3430 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3432 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3433 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3434 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3435 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3438 static const struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7[] = {
3440 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3441 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3442 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3443 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3445 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3446 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3447 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3448 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3450 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3451 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3452 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3453 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3455 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3456 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3457 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3458 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3460 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3461 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3462 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3463 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3465 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3466 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3467 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3468 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3470 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3471 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3472 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3473 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3475 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3476 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3477 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3478 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3480 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3481 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3482 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3483 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3485 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3486 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3487 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3488 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3490 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3491 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3492 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3493 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3495 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3496 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3497 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3498 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3500 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3501 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3502 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3503 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3505 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3506 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3507 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3508 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3510 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3511 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3512 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3513 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3515 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3516 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3517 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3518 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3520 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3521 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3522 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3523 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3525 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3526 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3527 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3528 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3530 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3531 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3532 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3533 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3535 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3536 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3537 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3538 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3540 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3541 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3542 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3543 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3545 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3546 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3547 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3548 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3550 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3551 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3552 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3553 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3555 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3556 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3557 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3558 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3560 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3561 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3562 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3563 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3565 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3566 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3567 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3568 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3570 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3571 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3572 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3573 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3575 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3576 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3577 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3578 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3580 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3581 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3582 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3583 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3585 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3586 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3587 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3588 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3590 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3591 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3592 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3593 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3595 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3596 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3597 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3598 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3600 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3601 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3602 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3603 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3605 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3606 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3607 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3608 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3610 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3611 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3612 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3613 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3615 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3616 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3617 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3618 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3620 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3621 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3622 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3623 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3625 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3626 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3627 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3628 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3630 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3631 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3632 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3633 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3635 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3636 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3637 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3638 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3640 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3641 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3642 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3643 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3645 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3646 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3647 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3648 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3650 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3651 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3652 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3653 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3655 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3656 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3657 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3658 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3660 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3661 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3662 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3663 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3665 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3666 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3667 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3668 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3670 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3671 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3672 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3673 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3675 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3676 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3677 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3678 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3680 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3681 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3682 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3683 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3685 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3686 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3687 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3688 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3690 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3691 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3692 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3693 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3695 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3696 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3697 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3698 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3700 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3701 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3702 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3703 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3705 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3706 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3707 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3708 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3710 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3711 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3712 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3713 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3715 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3716 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3717 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3718 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3720 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3721 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3722 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3723 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3725 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3726 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3727 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3728 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3730 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3731 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3732 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3733 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3735 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3736 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3737 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3738 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3740 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3741 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3742 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3743 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3745 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3746 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3747 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3748 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3750 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3751 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3752 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3753 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3755 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3756 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3757 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3758 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3760 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3761 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3762 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3763 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3765 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3766 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3767 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3768 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3770 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3771 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3772 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3773 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3775 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3776 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3777 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3778 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3780 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3781 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3782 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3783 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3785 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3786 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3787 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3788 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3790 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3791 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3792 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3793 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3795 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3796 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3797 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3798 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3800 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3801 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3802 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3803 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3805 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3806 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3807 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3808 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3810 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3811 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3812 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3813 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3815 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3816 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3817 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3818 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3820 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3821 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3822 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3823 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3825 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3826 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3827 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3828 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3830 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3831 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3832 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3833 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3835 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3836 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3837 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3838 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3840 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3841 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3842 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3843 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3845 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3846 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3847 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3848 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3850 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3851 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3852 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3853 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3855 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3856 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3857 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3858 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3860 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3861 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3862 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3863 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3865 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3866 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3867 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3868 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3870 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3871 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3872 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3873 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3875 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3876 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3877 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3878 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3880 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3881 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3882 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3883 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3885 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3886 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3887 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3888 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3890 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3891 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3892 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3893 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3895 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3896 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3897 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3898 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3900 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3901 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3902 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3903 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3905 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3906 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3907 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3908 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3910 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3911 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3912 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3913 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3915 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3916 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3917 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3918 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3920 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3921 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3922 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3923 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3925 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3926 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3927 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3928 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3930 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3931 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3932 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3933 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3935 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3936 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3937 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3938 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3940 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3941 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3942 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3943 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3945 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3946 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3947 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3948 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3950 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3951 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3952 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3953 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3955 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3956 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3957 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3958 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3960 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3961 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3962 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3963 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3965 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3966 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3967 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3968 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3970 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3971 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3972 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3973 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3975 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3976 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3977 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3978 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3980 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3981 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3982 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3983 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3985 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3986 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3987 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3988 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3990 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3991 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3992 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3993 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3995 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3996 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3997 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3998 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4000 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4001 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
4002 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4003 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4005 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4006 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4007 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4008 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4010 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4011 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
4012 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4013 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4015 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4016 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
4017 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4018 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4020 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4021 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
4022 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
4023 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4025 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4026 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
4027 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4028 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4030 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4031 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4032 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4033 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4035 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4036 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4037 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4038 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4040 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4041 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4042 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4043 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4045 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4046 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4047 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4048 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4050 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4051 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4052 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4053 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4055 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4056 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4057 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4058 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4061 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8[] = {
4063 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4064 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4065 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4066 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4068 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4069 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4070 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4071 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4073 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4074 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4075 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4076 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4078 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4079 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4080 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4081 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4083 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4084 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4085 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4086 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4088 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4089 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4090 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4091 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4093 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4094 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4095 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4096 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4098 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4099 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4100 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4101 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4103 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4104 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4105 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4106 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4108 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4109 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4110 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4111 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4113 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4114 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4115 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4116 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4118 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4119 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4120 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4121 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4123 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4124 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4125 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4126 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4128 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4129 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4130 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4131 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4133 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4134 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4135 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4136 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4138 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4139 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4140 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4141 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4143 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4144 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4145 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4146 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4148 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4149 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4150 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4151 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4153 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4154 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4155 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4156 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4158 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4159 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4160 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4161 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4163 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4164 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4165 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4166 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4168 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4169 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4170 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4171 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4173 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4174 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4175 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4176 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4178 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4179 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4180 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4181 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4183 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4184 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4185 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4186 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4188 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4189 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4190 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4191 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4193 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4194 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4195 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4196 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4198 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4199 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4200 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4201 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4203 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4204 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4205 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4206 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4208 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4209 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4210 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4211 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4213 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4214 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4215 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4216 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4218 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4219 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4220 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4221 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4223 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4224 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4225 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4226 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4228 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4229 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4230 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4231 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4233 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4234 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4235 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4236 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4238 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4239 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4240 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4241 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4243 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4244 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4245 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4246 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4248 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4249 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4250 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4251 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4253 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4254 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4255 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4256 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4258 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4259 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4260 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4261 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4263 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4264 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4265 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4266 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4268 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4269 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4270 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4271 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4273 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4274 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4275 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4276 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4278 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4279 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4280 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4281 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4283 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4284 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4285 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4286 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4288 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4289 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4290 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4291 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4293 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4294 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4295 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4296 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4298 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4299 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4300 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4301 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4303 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4304 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4305 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4306 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4308 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4309 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4310 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4311 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4313 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4314 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4315 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4316 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4318 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4319 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4320 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4321 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4323 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4324 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4325 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4326 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4328 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4329 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4330 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4331 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4333 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4334 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4335 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4336 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4338 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4339 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4340 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4341 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4343 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4344 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4345 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4346 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4348 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4349 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4350 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4351 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4353 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4354 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4355 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4356 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4358 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4359 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4360 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4361 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4363 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4364 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4365 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4366 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4368 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4369 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4370 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4371 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4373 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4374 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4375 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4376 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4378 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4379 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4380 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4381 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4383 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4384 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4385 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4386 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4388 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4389 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4390 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4391 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4393 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4394 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4395 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4396 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4398 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4399 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4400 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4401 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4403 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4404 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4405 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4406 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4408 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4409 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4410 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4411 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4413 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4414 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4415 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4416 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4418 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4419 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4420 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4421 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4423 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4424 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4425 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4426 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4428 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4429 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4430 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4431 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4433 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4434 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4435 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4436 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4438 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4439 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4440 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4441 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4443 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4444 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4445 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4446 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4448 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4449 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4450 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4451 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4453 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4454 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4455 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4456 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4458 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4459 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4460 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4461 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4463 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4464 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4465 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4466 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4468 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4469 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4470 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4471 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4473 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4474 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4475 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4476 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4478 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4479 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4480 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4481 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4483 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4484 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4485 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4486 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4488 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4489 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4490 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4491 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4493 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4494 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4495 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4496 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4498 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4499 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4500 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4501 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4503 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4504 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4505 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4506 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4508 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4509 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4510 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4511 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4513 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4514 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4515 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4516 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4518 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4519 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4520 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4521 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4523 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4524 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4525 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4526 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4528 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4529 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4530 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4531 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4533 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4534 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4535 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4536 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4538 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4539 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4540 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4541 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4543 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4544 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4545 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4546 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4548 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4549 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4550 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4551 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4553 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4554 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4555 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4556 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4558 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4559 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4560 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4561 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4563 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4564 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4565 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4566 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4568 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4569 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4570 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4571 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4573 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4574 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4575 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4576 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4578 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4579 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4580 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4581 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4583 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4584 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4585 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4586 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4588 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4589 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4590 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4591 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4593 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4594 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4595 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4596 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4598 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4599 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4600 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4601 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4603 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4604 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4605 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4606 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4608 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4609 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4610 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4611 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4613 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4614 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4615 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4616 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4618 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4619 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4620 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4621 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4623 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4624 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4625 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4626 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4628 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4629 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4630 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4631 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4633 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4634 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4635 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4636 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4638 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4639 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4640 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4641 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4643 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4644 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4645 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4646 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4648 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4649 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4650 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4651 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4653 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4654 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4655 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4656 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4658 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4659 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4660 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4661 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4663 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4664 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4665 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4666 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4668 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4669 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4670 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4671 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4673 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4674 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4675 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4676 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4678 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4679 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4680 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4681 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4684 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11[] = {
4686 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4687 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4688 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4689 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4691 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4692 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4693 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4694 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4696 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4697 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4698 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4699 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4701 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4702 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4703 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4704 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4706 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4707 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4708 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4709 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4711 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4712 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4713 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4714 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4716 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4717 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4718 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4719 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4721 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4722 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4723 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4724 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4726 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4727 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4728 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4729 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4731 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4732 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4733 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4734 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4736 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4737 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4738 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4739 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4741 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4742 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4743 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4744 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4746 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4747 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4748 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4749 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4751 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4752 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4753 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4754 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4756 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4757 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4758 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4759 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4761 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4762 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4763 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4764 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4766 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4767 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4768 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4769 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4771 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4772 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4773 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4774 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4776 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4777 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4778 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4779 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4781 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4782 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4783 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4784 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4786 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4787 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4788 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4789 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4791 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4792 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4793 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4794 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4796 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4797 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4798 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4799 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4801 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4802 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4803 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4804 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4806 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4807 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4808 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4809 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4811 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4812 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4813 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4814 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4816 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4817 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4818 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4819 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4821 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4822 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4823 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4824 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4826 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4827 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4828 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4829 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4831 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4832 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4833 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4834 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4836 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4837 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4838 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4839 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4841 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4842 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4843 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4844 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4846 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4847 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4848 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4849 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4851 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4852 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4853 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4854 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4856 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4857 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4858 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4859 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4861 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4862 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4863 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4864 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4866 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4867 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4868 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4869 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4871 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4872 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4873 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4874 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4876 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4877 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4878 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4879 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4881 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4882 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4883 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4884 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4886 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4887 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4888 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4889 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4891 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4892 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4893 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4894 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4896 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4897 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4898 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4899 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4901 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4902 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4903 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4904 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4906 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4907 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4908 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4909 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4911 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4912 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4913 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4914 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4916 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4917 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4918 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4919 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4921 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4922 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4923 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4924 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4926 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4927 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4928 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4929 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4931 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4932 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4933 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4934 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4936 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4937 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4938 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4939 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4941 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4942 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4943 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4944 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4946 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4947 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4948 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4949 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4951 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4952 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4953 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4954 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4956 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4957 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4958 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4959 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4961 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4962 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4963 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4964 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4966 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4967 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4968 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4969 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4971 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4972 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4973 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4974 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4976 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4977 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4978 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4979 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4981 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4982 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4983 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4984 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4986 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4987 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4988 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4989 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4991 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4992 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4993 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4994 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4996 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4997 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4998 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4999 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
5001 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5002 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5003 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5004 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
5006 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5007 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
5008 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5009 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
5011 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5012 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
5013 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5014 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
5016 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5017 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
5018 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5019 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
5021 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
5022 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5023 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5024 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
5026 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
5027 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5028 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5029 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5031 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5032 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5033 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5034 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5036 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5037 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5038 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5039 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5041 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5042 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5043 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5044 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5046 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5047 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5048 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5049 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5051 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5052 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5053 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5054 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5056 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5057 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5058 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5059 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5061 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5062 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5063 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5064 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5066 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5067 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5068 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5069 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5071 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5072 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5073 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5074 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5076 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5077 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5078 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5079 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5081 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5082 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5083 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5084 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5086 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5087 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5088 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5089 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5091 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5092 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5093 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5094 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5096 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5097 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5098 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5099 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5101 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5102 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5103 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5104 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5106 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5107 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5108 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5109 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5111 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5112 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5113 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5114 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5116 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5117 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5118 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5119 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5121 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5122 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5123 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5124 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5126 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5127 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5128 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5129 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5131 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5132 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5133 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5134 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5136 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5137 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5138 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5139 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5141 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5142 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5143 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5144 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5146 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5147 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5148 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5149 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5151 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5152 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5153 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5154 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5156 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5157 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5158 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5159 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5161 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5162 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5163 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5164 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5166 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5167 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5168 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5169 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5171 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5172 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5173 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5174 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5176 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5177 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5178 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5179 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5181 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5182 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5183 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5184 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5186 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5187 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5188 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5189 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5191 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5192 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5193 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5194 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5196 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5197 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5198 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5199 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5201 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5202 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5203 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5204 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5206 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5207 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5208 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5209 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5211 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5212 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5213 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5214 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5216 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5217 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5218 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5219 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5221 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5222 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5223 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5224 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5226 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5227 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5228 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5229 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5231 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5232 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5233 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5234 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5236 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5237 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5238 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5239 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5241 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5242 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5243 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5244 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5246 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5247 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5248 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5249 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5251 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5252 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5253 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5254 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5256 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5257 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5258 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5259 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5261 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5262 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5263 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5264 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5266 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5267 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5268 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5269 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5271 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5272 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5273 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5274 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5276 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5277 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5278 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5279 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5281 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5282 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5283 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5284 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5286 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5287 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5288 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5289 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5291 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5292 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5293 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5294 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5296 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5297 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5298 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5299 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5301 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5302 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5303 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5304 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5307 static const struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4[] = {
5309 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5310 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5311 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5316 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5317 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5318 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5323 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5324 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5325 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5330 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5331 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5332 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5337 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5338 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5339 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5344 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5345 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5346 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5351 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5352 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5353 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5358 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5359 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5360 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5365 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5366 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5367 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5372 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5373 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5374 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5379 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5380 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5381 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5386 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5387 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5388 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5393 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5394 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5395 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5400 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5401 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5402 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5407 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5408 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5409 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5414 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5415 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5416 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5421 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5422 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5423 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5428 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5429 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5430 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5435 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5436 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5437 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5442 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5443 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5444 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5449 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5450 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5451 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5456 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5457 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5458 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5463 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5464 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5465 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5470 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5471 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5472 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5477 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5478 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5479 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5484 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5485 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5486 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5491 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5492 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5493 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5498 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5499 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5500 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5505 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5506 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5507 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5512 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5513 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5514 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5519 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5520 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5521 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5526 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5527 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5528 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5533 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5534 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5535 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5540 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5541 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5542 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5547 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5548 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5549 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5554 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5555 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5556 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5561 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5562 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5563 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5568 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5569 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5570 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5575 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5576 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5577 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5582 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5583 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5584 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5589 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5590 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5591 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5596 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5597 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5598 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5603 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5604 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5605 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5610 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5611 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5612 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5617 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5618 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5619 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5624 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5625 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5626 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5631 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5632 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5633 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5638 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5639 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5640 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5645 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5646 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5647 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5652 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5653 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5654 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5659 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5660 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5661 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5666 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5667 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5668 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5673 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5674 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5675 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5680 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5681 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5682 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5687 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5688 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5689 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5694 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5695 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5696 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5701 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5702 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5703 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5708 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5709 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5710 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5715 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5716 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5717 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5722 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5723 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5724 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5729 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5730 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5731 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5736 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5737 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5738 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5743 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5744 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5745 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5750 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5751 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5752 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5757 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5758 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5759 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5764 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5765 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5766 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5771 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5772 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5773 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5778 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5779 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5780 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5785 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5786 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5787 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5792 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5793 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5794 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5799 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5800 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5801 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5806 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5807 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5808 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5813 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5814 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5815 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5820 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5821 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5822 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5827 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5828 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5829 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5834 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5835 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5836 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5841 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5842 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5843 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5848 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5849 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5850 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5855 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5856 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5857 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5862 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5863 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5864 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5869 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5870 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5871 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5876 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5877 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5878 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5883 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5884 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5885 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5890 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5891 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5892 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5897 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5898 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5899 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5904 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5905 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5906 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5911 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5912 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5913 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5918 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5919 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5920 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5925 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5926 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5927 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5932 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5933 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5934 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5939 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5940 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5941 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5946 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5947 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5948 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5953 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5954 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5955 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5960 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5961 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5962 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5967 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5968 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5969 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5974 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5975 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5976 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5981 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5982 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5983 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5988 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5989 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5990 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5995 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5996 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5997 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6002 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6003 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6004 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6009 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6010 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6011 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6016 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6017 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6018 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6023 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6024 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6025 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6030 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6031 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6032 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6037 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6038 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6039 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6044 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6045 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6046 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6051 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6052 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6053 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6058 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6059 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6060 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6065 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6066 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6067 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6072 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6073 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6074 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6079 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6080 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6081 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6086 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6087 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6088 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6093 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6094 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6095 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6100 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6101 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6102 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6107 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6108 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6109 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6114 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6115 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6116 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6121 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6122 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6123 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6128 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6129 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6130 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6135 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6136 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6137 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6142 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6143 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6144 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6149 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6150 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6151 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6156 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6157 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6158 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6163 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6164 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6165 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6170 static const struct chan_info_nphy_radio2057_rev5
6171 chan_info_nphyrev8_2057_rev5[] = {
6173 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6174 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6175 0x043a, 0x043f, 0x0443},
6177 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6178 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6179 0x0438, 0x043d, 0x0441},
6181 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6182 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6183 0x0436, 0x043a, 0x043f},
6185 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6186 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6187 0x0434, 0x0438, 0x043d},
6189 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6190 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6191 0x0431, 0x0436, 0x043a},
6193 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6194 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6195 0x042f, 0x0434, 0x0438},
6197 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6198 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6199 0x042d, 0x0431, 0x0436},
6201 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6202 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6203 0x042b, 0x042f, 0x0434},
6205 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6206 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6207 0x0429, 0x042d, 0x0431},
6209 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6210 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6211 0x0427, 0x042b, 0x042f},
6213 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6214 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6215 0x0424, 0x0429, 0x042d},
6217 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6218 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6219 0x0422, 0x0427, 0x042b},
6221 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6222 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6223 0x0420, 0x0424, 0x0429},
6225 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6226 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6227 0x041b, 0x041f, 0x0424}
6230 static const struct chan_info_nphy_radio2057_rev5
6231 chan_info_nphyrev9_2057_rev5v1[] = {
6233 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6234 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6235 0x043a, 0x043f, 0x0443},
6237 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6238 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6239 0x0438, 0x043d, 0x0441},
6241 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6242 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6243 0x0436, 0x043a, 0x043f},
6245 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6246 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6247 0x0434, 0x0438, 0x043d},
6249 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6250 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6251 0x0431, 0x0436, 0x043a},
6253 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6254 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6255 0x042f, 0x0434, 0x0438},
6257 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6258 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6259 0x042d, 0x0431, 0x0436},
6261 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6262 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6263 0x042b, 0x042f, 0x0434},
6265 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6266 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6267 0x0429, 0x042d, 0x0431},
6269 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6270 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6271 0x0427, 0x042b, 0x042f},
6273 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6274 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6275 0x0424, 0x0429, 0x042d},
6277 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6278 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6279 0x0422, 0x0427, 0x042b},
6281 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6282 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6283 0x0420, 0x0424, 0x0429},
6285 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6286 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6287 0x041b, 0x041f, 0x0424}
6290 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7[] = {
6292 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6293 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6294 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6298 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6299 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6300 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6304 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6305 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6306 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6310 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6311 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6312 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6316 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6317 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6318 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6322 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6323 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6324 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6328 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6329 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6330 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6334 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6335 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6336 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6340 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6341 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6342 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6346 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6347 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6348 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6352 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6353 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6354 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6358 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6359 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6360 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6364 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6365 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6366 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6370 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6371 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6372 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6376 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6377 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6378 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6382 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6383 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6384 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6388 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6389 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6390 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6394 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6395 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6396 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6400 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6401 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6402 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6406 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6407 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6408 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6412 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6413 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6414 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6418 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6419 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6420 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6424 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6425 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6426 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6430 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6431 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6432 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6436 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6437 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6438 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6442 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6443 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6444 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6448 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6449 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6450 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6454 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6455 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6456 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6460 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6461 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6462 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6466 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6467 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6468 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6472 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6473 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6474 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6478 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6479 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6480 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6484 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6485 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6486 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6490 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6491 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6492 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6496 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6497 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6498 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6502 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6503 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6504 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6508 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6509 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6510 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6514 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6515 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6516 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6520 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6521 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6522 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6526 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6527 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6528 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6532 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6533 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6534 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6538 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6539 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6540 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6544 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6545 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6546 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6550 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6551 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6552 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6556 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6557 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6558 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6562 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6563 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6564 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6568 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6569 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6570 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6574 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6575 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6576 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6580 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6581 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6582 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6586 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6587 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6588 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6592 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6593 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6594 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6598 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6599 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6600 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6604 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6605 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6606 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6610 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6611 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6612 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6616 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6617 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6618 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6622 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6623 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6624 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6628 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6629 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6630 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6634 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6635 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6636 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6640 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6641 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6642 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6646 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6647 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6648 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6652 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6653 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6654 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6658 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6659 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6660 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6664 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6665 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6666 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6670 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6671 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6672 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6676 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6677 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6678 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6682 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6683 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6684 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6688 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6689 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6690 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6694 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6695 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6696 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6700 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6701 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6702 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6706 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6707 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6708 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6712 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6713 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6714 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6718 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6719 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6720 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6724 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6725 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6726 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6730 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6731 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6732 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6736 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6737 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6738 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6742 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6743 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6744 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6748 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6749 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6750 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6754 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6755 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6756 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6760 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6761 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6762 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6766 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6767 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6768 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6772 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6773 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6774 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6778 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6779 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6780 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6784 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6785 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6786 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6790 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6791 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6792 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6796 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6797 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6798 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6802 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6803 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6804 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6808 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6809 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6810 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6814 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6815 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6816 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6820 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6821 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6822 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6826 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6827 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6828 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6832 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6833 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6834 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6838 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6839 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6840 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6844 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6845 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6846 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6850 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6851 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6852 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6856 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6857 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6858 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6862 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6863 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6864 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6868 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6869 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6870 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6874 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6875 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6876 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6880 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6881 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6882 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6886 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6887 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6888 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6892 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6893 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6894 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6898 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6899 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6900 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6904 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6905 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6906 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6910 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6911 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6912 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6916 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6917 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6918 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6922 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6923 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6924 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6928 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6929 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6930 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6934 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6935 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6936 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6940 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6941 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6942 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6946 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6947 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6948 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6952 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6953 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6954 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6958 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6959 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6960 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6964 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6965 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6966 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6970 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6971 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6972 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6976 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6977 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6978 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6982 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6983 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6984 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6988 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6989 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6990 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6994 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6995 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6996 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7000 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7001 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7002 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7006 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7007 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7008 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7012 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7013 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7014 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7018 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7019 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7020 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7024 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7025 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7026 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7031 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8[] = {
7033 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7034 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7035 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7039 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7040 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7041 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7045 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7046 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7047 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7051 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7052 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7053 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7057 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7058 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7059 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7063 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7064 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7065 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7069 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7070 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7071 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7075 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7076 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7077 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7081 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7082 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7083 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7087 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7088 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7089 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7093 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7094 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7095 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7099 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7100 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7101 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7105 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7106 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7107 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7111 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7112 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7113 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7117 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7118 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7119 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7123 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7124 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7125 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7129 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7130 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7131 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7135 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7136 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7137 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7141 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7142 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7143 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7147 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7148 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7149 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7153 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7154 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7155 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7159 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7160 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7161 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7165 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7166 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7167 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7171 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7172 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7173 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7177 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7178 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7179 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7183 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7184 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7185 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7189 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7190 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7191 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7195 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7196 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7197 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7201 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7202 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7203 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7207 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7208 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7209 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7213 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7214 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7215 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7219 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7220 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7221 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7225 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7226 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7227 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7231 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7232 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7233 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7237 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7238 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7239 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7243 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7244 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7245 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7249 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7250 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7251 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7255 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7256 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7257 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7261 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7262 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7263 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7267 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7268 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7269 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7273 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7274 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7275 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7279 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7280 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7281 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7285 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7286 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7287 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7291 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7292 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7293 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7297 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7298 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7299 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7303 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7304 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7305 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7309 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7310 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7311 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7315 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7316 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7317 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7321 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7322 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7323 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7327 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7328 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7329 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7333 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7334 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7335 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7339 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7340 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7341 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7345 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7346 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7347 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7351 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7352 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7353 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7357 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7358 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7359 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7363 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7364 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7365 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7369 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7370 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7371 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7375 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7376 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7377 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7381 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7382 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7383 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7387 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7388 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7389 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7393 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7394 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7395 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7399 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7400 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7401 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7405 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7406 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7407 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7411 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7412 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7413 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7417 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7418 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7419 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7423 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7424 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7425 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7429 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7430 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7431 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7435 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7436 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7437 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7441 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7442 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7443 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7447 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7448 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7449 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7453 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7454 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7455 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7459 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7460 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7461 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7465 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7466 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7467 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7471 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7472 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7473 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7477 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7478 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7479 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7483 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7484 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7485 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7489 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7490 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7491 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7495 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7496 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7497 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7501 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7502 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7503 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7507 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7508 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7509 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7513 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7514 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7515 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7519 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7520 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7521 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7525 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7526 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7527 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7531 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7532 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7533 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7537 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7538 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7539 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7543 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7544 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7545 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7549 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7550 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7551 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7555 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7556 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7557 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7561 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7562 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7563 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7567 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7568 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7569 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7573 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7574 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7575 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7579 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7580 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7581 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7585 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7586 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7587 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7591 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7592 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7593 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7597 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7598 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7599 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7603 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7604 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7605 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7609 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7610 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7611 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7615 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7616 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7617 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7621 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7622 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7623 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7627 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7628 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7629 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7633 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7634 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7635 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7639 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7640 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7641 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7645 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7646 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7647 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7651 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7652 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7653 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7657 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7658 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7659 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7663 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7664 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7665 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7669 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7670 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7671 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7675 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7676 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7677 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7681 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7682 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7683 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7687 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7688 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7689 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7693 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7694 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7695 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7699 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7700 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7701 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7705 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7706 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7707 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7711 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7712 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7713 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7717 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7718 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7719 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7723 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7724 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7725 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7729 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7730 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7731 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7735 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7736 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7737 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7741 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7742 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7743 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7747 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7748 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7749 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7753 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7754 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7755 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7759 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7760 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7761 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7766 static struct radio_regs regs_2055[] = {
7767 {0x02, 0x80, 0x80, 0, 0},
7769 {0x04, 0x27, 0x27, 0, 0},
7771 {0x06, 0x27, 0x27, 0, 0},
7772 {0x07, 0x7f, 0x7f, 1, 1},
7773 {0x08, 0x7, 0x7, 1, 1},
7774 {0x09, 0x7f, 0x7f, 1, 1},
7775 {0x0A, 0x7, 0x7, 1, 1},
7776 {0x0B, 0x15, 0x15, 0, 0},
7777 {0x0C, 0x15, 0x15, 0, 0},
7778 {0x0D, 0x4f, 0x4f, 1, 1},
7779 {0x0E, 0x5, 0x5, 1, 1},
7780 {0x0F, 0x4f, 0x4f, 1, 1},
7781 {0x10, 0x5, 0x5, 1, 1},
7782 {0x11, 0xd0, 0xd0, 0, 0},
7783 {0x12, 0x2, 0x2, 0, 0},
7785 {0x14, 0x40, 0x40, 0, 0},
7794 {0x1D, 0xc0, 0xc0, 0, 0},
7795 {0x1E, 0xff, 0xff, 0, 0},
7796 {0x1F, 0xc0, 0xc0, 0, 0},
7797 {0x20, 0xff, 0xff, 0, 0},
7798 {0x21, 0xc0, 0xc0, 0, 0},
7800 {0x23, 0x2c, 0x2c, 0, 0},
7810 {0x2D, 0xa4, 0xa4, 0, 0},
7811 {0x2E, 0x38, 0x38, 0, 0},
7813 {0x30, 0x4, 0x4, 1, 1},
7815 {0x32, 0xa, 0xa, 0, 0},
7816 {0x33, 0x87, 0x87, 0, 0},
7817 {0x34, 0x9, 0x9, 0, 0},
7818 {0x35, 0x70, 0x70, 0, 0},
7819 {0x36, 0x11, 0x11, 0, 0},
7820 {0x37, 0x18, 0x18, 1, 1},
7821 {0x38, 0x6, 0x6, 0, 0},
7822 {0x39, 0x4, 0x4, 1, 1},
7823 {0x3A, 0x6, 0x6, 0, 0},
7824 {0x3B, 0x9e, 0x9e, 0, 0},
7825 {0x3C, 0x9, 0x9, 0, 0},
7826 {0x3D, 0xc8, 0xc8, 1, 1},
7827 {0x3E, 0x88, 0x88, 0, 0},
7831 {0x42, 0x1, 0x1, 0, 0},
7832 {0x43, 0x2, 0x2, 0, 0},
7833 {0x44, 0x96, 0x96, 0, 0},
7834 {0x45, 0x3e, 0x3e, 0, 0},
7835 {0x46, 0x3e, 0x3e, 0, 0},
7836 {0x47, 0x13, 0x13, 0, 0},
7837 {0x48, 0x2, 0x2, 0, 0},
7838 {0x49, 0x15, 0x15, 0, 0},
7839 {0x4A, 0x7, 0x7, 0, 0},
7845 {0x50, 0x8, 0x8, 0, 0},
7846 {0x51, 0x8, 0x8, 0, 0},
7847 {0x52, 0x6, 0x6, 0, 0},
7848 {0x53, 0x84, 0x84, 1, 1},
7849 {0x54, 0xc3, 0xc3, 0, 0},
7850 {0x55, 0x8f, 0x8f, 0, 0},
7851 {0x56, 0xff, 0xff, 0, 0},
7852 {0x57, 0xff, 0xff, 0, 0},
7853 {0x58, 0x88, 0x88, 0, 0},
7854 {0x59, 0x88, 0x88, 0, 0},
7856 {0x5B, 0xcc, 0xcc, 0, 0},
7857 {0x5C, 0x6, 0x6, 0, 0},
7858 {0x5D, 0x80, 0x80, 0, 0},
7859 {0x5E, 0x80, 0x80, 0, 0},
7860 {0x5F, 0xf8, 0xf8, 0, 0},
7861 {0x60, 0x88, 0x88, 0, 0},
7862 {0x61, 0x88, 0x88, 0, 0},
7863 {0x62, 0x88, 0x8, 1, 1},
7864 {0x63, 0x88, 0x88, 0, 0},
7866 {0x65, 0x1, 0x1, 1, 1},
7867 {0x66, 0x8a, 0x8a, 0, 0},
7868 {0x67, 0x8, 0x8, 0, 0},
7869 {0x68, 0x83, 0x83, 0, 0},
7870 {0x69, 0x6, 0x6, 0, 0},
7871 {0x6A, 0xa0, 0xa0, 0, 0},
7872 {0x6B, 0xa, 0xa, 0, 0},
7873 {0x6C, 0x87, 0x87, 1, 1},
7874 {0x6D, 0x2a, 0x2a, 0, 0},
7875 {0x6E, 0x2a, 0x2a, 0, 0},
7876 {0x6F, 0x2a, 0x2a, 0, 0},
7877 {0x70, 0x2a, 0x2a, 0, 0},
7878 {0x71, 0x18, 0x18, 0, 0},
7879 {0x72, 0x6a, 0x6a, 1, 1},
7880 {0x73, 0xab, 0xab, 1, 1},
7881 {0x74, 0x13, 0x13, 1, 1},
7882 {0x75, 0xc1, 0xc1, 1, 1},
7883 {0x76, 0xaa, 0xaa, 1, 1},
7884 {0x77, 0x87, 0x87, 1, 1},
7886 {0x79, 0x6, 0x6, 0, 0},
7887 {0x7A, 0x7, 0x7, 0, 0},
7888 {0x7B, 0x7, 0x7, 0, 0},
7889 {0x7C, 0x15, 0x15, 0, 0},
7890 {0x7D, 0x55, 0x55, 0, 0},
7891 {0x7E, 0x97, 0x97, 1, 1},
7892 {0x7F, 0x8, 0x8, 0, 0},
7893 {0x80, 0x14, 0x14, 1, 1},
7894 {0x81, 0x33, 0x33, 0, 0},
7895 {0x82, 0x88, 0x88, 0, 0},
7896 {0x83, 0x6, 0x6, 0, 0},
7897 {0x84, 0x3, 0x3, 1, 1},
7898 {0x85, 0xa, 0xa, 0, 0},
7899 {0x86, 0x3, 0x3, 1, 1},
7900 {0x87, 0x2a, 0x2a, 0, 0},
7901 {0x88, 0xa4, 0xa4, 0, 0},
7902 {0x89, 0x18, 0x18, 0, 0},
7903 {0x8A, 0x28, 0x28, 0, 0},
7905 {0x8C, 0x4a, 0x4a, 0, 0},
7907 {0x8E, 0xf8, 0xf8, 0, 0},
7908 {0x8F, 0x88, 0x88, 0, 0},
7909 {0x90, 0x88, 0x88, 0, 0},
7910 {0x91, 0x88, 0x8, 1, 1},
7911 {0x92, 0x88, 0x88, 0, 0},
7913 {0x94, 0x1, 0x1, 1, 1},
7914 {0x95, 0x8a, 0x8a, 0, 0},
7915 {0x96, 0x8, 0x8, 0, 0},
7916 {0x97, 0x83, 0x83, 0, 0},
7917 {0x98, 0x6, 0x6, 0, 0},
7918 {0x99, 0xa0, 0xa0, 0, 0},
7919 {0x9A, 0xa, 0xa, 0, 0},
7920 {0x9B, 0x87, 0x87, 1, 1},
7921 {0x9C, 0x2a, 0x2a, 0, 0},
7922 {0x9D, 0x2a, 0x2a, 0, 0},
7923 {0x9E, 0x2a, 0x2a, 0, 0},
7924 {0x9F, 0x2a, 0x2a, 0, 0},
7925 {0xA0, 0x18, 0x18, 0, 0},
7926 {0xA1, 0x6a, 0x6a, 1, 1},
7927 {0xA2, 0xab, 0xab, 1, 1},
7928 {0xA3, 0x13, 0x13, 1, 1},
7929 {0xA4, 0xc1, 0xc1, 1, 1},
7930 {0xA5, 0xaa, 0xaa, 1, 1},
7931 {0xA6, 0x87, 0x87, 1, 1},
7933 {0xA8, 0x6, 0x6, 0, 0},
7934 {0xA9, 0x7, 0x7, 0, 0},
7935 {0xAA, 0x7, 0x7, 0, 0},
7936 {0xAB, 0x15, 0x15, 0, 0},
7937 {0xAC, 0x55, 0x55, 0, 0},
7938 {0xAD, 0x97, 0x97, 1, 1},
7939 {0xAE, 0x8, 0x8, 0, 0},
7940 {0xAF, 0x14, 0x14, 1, 1},
7941 {0xB0, 0x33, 0x33, 0, 0},
7942 {0xB1, 0x88, 0x88, 0, 0},
7943 {0xB2, 0x6, 0x6, 0, 0},
7944 {0xB3, 0x3, 0x3, 1, 1},
7945 {0xB4, 0xa, 0xa, 0, 0},
7946 {0xB5, 0x3, 0x3, 1, 1},
7947 {0xB6, 0x2a, 0x2a, 0, 0},
7948 {0xB7, 0xa4, 0xa4, 0, 0},
7949 {0xB8, 0x18, 0x18, 0, 0},
7950 {0xB9, 0x28, 0x28, 0, 0},
7952 {0xBB, 0x4a, 0x4a, 0, 0},
7954 {0xBD, 0x71, 0x71, 0, 0},
7955 {0xBE, 0x72, 0x72, 0, 0},
7956 {0xBF, 0x73, 0x73, 0, 0},
7957 {0xC0, 0x74, 0x74, 0, 0},
7958 {0xC1, 0x75, 0x75, 0, 0},
7959 {0xC2, 0x76, 0x76, 0, 0},
7960 {0xC3, 0x77, 0x77, 0, 0},
7961 {0xC4, 0x78, 0x78, 0, 0},
7962 {0xC5, 0x79, 0x79, 0, 0},
7963 {0xC6, 0x7a, 0x7a, 0, 0},
7971 {0xCE, 0x6, 0x6, 0, 0},
7974 {0xD1, 0x18, 0x18, 0, 0},
7975 {0xD2, 0x88, 0x88, 0, 0},
7983 {0xDA, 0x6, 0x6, 0, 0},
7986 {0xDD, 0x18, 0x18, 0, 0},
7987 {0xDE, 0x88, 0x88, 0, 0},
7992 {0xFFFF, 0, 0, 0, 0},
7995 static struct radio_regs regs_SYN_2056[] = {
8003 {0x09, 0x1, 0x1, 0, 0},
8028 {0x22, 0x60, 0x60, 0, 0},
8029 {0x23, 0x6, 0x6, 0, 0},
8030 {0x24, 0xc, 0xc, 0, 0},
8034 {0x28, 0x1, 0x1, 0, 0},
8040 {0x2E, 0xd, 0xd, 0, 0},
8041 {0x2F, 0x1f, 0x1f, 0, 0},
8042 {0x30, 0x15, 0x15, 0, 0},
8043 {0x31, 0xf, 0xf, 0, 0},
8054 {0x3C, 0x13, 0x13, 0, 0},
8055 {0x3D, 0xf, 0xf, 0, 0},
8056 {0x3E, 0x18, 0x18, 0, 0},
8059 {0x41, 0x20, 0x20, 0, 0},
8060 {0x42, 0x20, 0x20, 0, 0},
8062 {0x44, 0x77, 0x77, 0, 0},
8063 {0x45, 0x7, 0x7, 0, 0},
8064 {0x46, 0x1, 0x1, 0, 0},
8065 {0x47, 0x4, 0x4, 0, 0},
8066 {0x48, 0xf, 0xf, 0, 0},
8067 {0x49, 0x30, 0x30, 0, 0},
8068 {0x4A, 0x32, 0x32, 0, 0},
8069 {0x4B, 0xd, 0xd, 0, 0},
8070 {0x4C, 0xd, 0xd, 0, 0},
8071 {0x4D, 0x4, 0x4, 0, 0},
8072 {0x4E, 0x6, 0x6, 0, 0},
8073 {0x4F, 0x1, 0x1, 0, 0},
8074 {0x50, 0x1c, 0x1c, 0, 0},
8075 {0x51, 0x2, 0x2, 0, 0},
8076 {0x52, 0x2, 0x2, 0, 0},
8077 {0x53, 0xf7, 0xf7, 1, 1},
8078 {0x54, 0xb4, 0xb4, 0, 0},
8079 {0x55, 0xd2, 0xd2, 0, 0},
8082 {0x58, 0x4, 0x4, 0, 0},
8083 {0x59, 0x96, 0x96, 0, 0},
8084 {0x5A, 0x3e, 0x3e, 0, 0},
8085 {0x5B, 0x3e, 0x3e, 0, 0},
8086 {0x5C, 0x13, 0x13, 0, 0},
8087 {0x5D, 0x2, 0x2, 0, 0},
8089 {0x5F, 0x7, 0x7, 0, 0},
8090 {0x60, 0x7, 0x7, 1, 1},
8091 {0x61, 0x8, 0x8, 0, 0},
8092 {0x62, 0x3, 0x3, 0, 0},
8098 {0x68, 0x40, 0x40, 0, 0},
8103 {0x6D, 0x1, 0x1, 0, 0},
8106 {0x70, 0x60, 0x60, 0, 0},
8107 {0x71, 0x66, 0x66, 0, 0},
8108 {0x72, 0xc, 0xc, 0, 0},
8109 {0x73, 0x66, 0x66, 0, 0},
8110 {0x74, 0x8f, 0x8f, 1, 1},
8112 {0x76, 0xcc, 0xcc, 0, 0},
8113 {0x77, 0x1, 0x1, 0, 0},
8114 {0x78, 0x66, 0x66, 0, 0},
8115 {0x79, 0x66, 0x66, 0, 0},
8127 {0x85, 0xff, 0xff, 0, 0},
8153 {0x9F, 0x6, 0x6, 0, 0},
8154 {0xA0, 0x66, 0x66, 0, 0},
8155 {0xA1, 0x66, 0x66, 0, 0},
8156 {0xA2, 0x66, 0x66, 0, 0},
8157 {0xA3, 0x66, 0x66, 0, 0},
8158 {0xA4, 0x66, 0x66, 0, 0},
8159 {0xA5, 0x66, 0x66, 0, 0},
8160 {0xA6, 0x66, 0x66, 0, 0},
8161 {0xA7, 0x66, 0x66, 0, 0},
8162 {0xA8, 0x66, 0x66, 0, 0},
8163 {0xA9, 0x66, 0x66, 0, 0},
8164 {0xAA, 0x66, 0x66, 0, 0},
8165 {0xAB, 0x66, 0x66, 0, 0},
8166 {0xAC, 0x66, 0x66, 0, 0},
8167 {0xAD, 0x66, 0x66, 0, 0},
8168 {0xAE, 0x66, 0x66, 0, 0},
8169 {0xAF, 0x66, 0x66, 0, 0},
8170 {0xB0, 0x66, 0x66, 0, 0},
8171 {0xB1, 0x66, 0x66, 0, 0},
8172 {0xB2, 0x66, 0x66, 0, 0},
8173 {0xB3, 0xa, 0xa, 0, 0},
8177 {0xFFFF, 0, 0, 0, 0}
8180 static struct radio_regs regs_TX_2056[] = {
8212 {0x21, 0x88, 0x88, 0, 0},
8213 {0x22, 0x88, 0x88, 0, 0},
8214 {0x23, 0x88, 0x88, 0, 0},
8215 {0x24, 0x88, 0x88, 0, 0},
8216 {0x25, 0xc, 0xc, 0, 0},
8218 {0x27, 0x3, 0x3, 0, 0},
8220 {0x29, 0x3, 0x3, 0, 0},
8221 {0x2A, 0x37, 0x37, 0, 0},
8222 {0x2B, 0x3, 0x3, 0, 0},
8225 {0x2E, 0x1, 0x1, 0, 0},
8226 {0x2F, 0x1, 0x1, 0, 0},
8230 {0x33, 0x11, 0x11, 0, 0},
8231 {0x34, 0x11, 0x11, 0, 0},
8234 {0x37, 0x3, 0x3, 0, 0},
8235 {0x38, 0xf, 0xf, 0, 0},
8237 {0x3A, 0x2d, 0x2d, 0, 0},
8239 {0x3C, 0x6e, 0x6e, 0, 0},
8240 {0x3D, 0xf0, 0xf0, 1, 1},
8244 {0x41, 0x3, 0x3, 0, 0},
8245 {0x42, 0x3, 0x3, 0, 0},
8247 {0x44, 0x1e, 0x1e, 0, 0},
8249 {0x46, 0x6e, 0x6e, 0, 0},
8250 {0x47, 0xf0, 0xf0, 1, 1},
8252 {0x49, 0x2, 0x2, 0, 0},
8253 {0x4A, 0xff, 0xff, 1, 1},
8254 {0x4B, 0xc, 0xc, 0, 0},
8256 {0x4D, 0x38, 0x38, 0, 0},
8257 {0x4E, 0x70, 0x70, 1, 1},
8258 {0x4F, 0x2, 0x2, 0, 0},
8259 {0x50, 0x88, 0x88, 0, 0},
8260 {0x51, 0xc, 0xc, 0, 0},
8262 {0x53, 0x8, 0x8, 0, 0},
8263 {0x54, 0x70, 0x70, 1, 1},
8264 {0x55, 0x2, 0x2, 0, 0},
8265 {0x56, 0xff, 0xff, 1, 1},
8267 {0x58, 0x83, 0x83, 0, 0},
8268 {0x59, 0x77, 0x77, 1, 1},
8270 {0x5B, 0x2, 0x2, 0, 0},
8271 {0x5C, 0x88, 0x88, 0, 0},
8273 {0x5E, 0x8, 0x8, 0, 0},
8274 {0x5F, 0x77, 0x77, 1, 1},
8275 {0x60, 0x1, 0x1, 0, 0},
8277 {0x62, 0x7, 0x7, 0, 0},
8279 {0x64, 0x7, 0x7, 0, 0},
8282 {0x67, 0x74, 0x74, 1, 1},
8284 {0x69, 0xa, 0xa, 0, 0},
8292 {0x71, 0x2, 0x2, 0, 0},
8295 {0x74, 0xe, 0xe, 0, 0},
8296 {0x75, 0xe, 0xe, 0, 0},
8297 {0x76, 0xe, 0xe, 0, 0},
8298 {0x77, 0x13, 0x13, 0, 0},
8299 {0x78, 0x13, 0x13, 0, 0},
8300 {0x79, 0x1b, 0x1b, 0, 0},
8301 {0x7A, 0x1b, 0x1b, 0, 0},
8302 {0x7B, 0x55, 0x55, 0, 0},
8303 {0x7C, 0x5b, 0x5b, 0, 0},
8326 {0xFFFF, 0, 0, 0, 0}
8329 static struct radio_regs regs_RX_2056[] = {
8360 {0x20, 0x3, 0x3, 0, 0},
8363 {0x23, 0x90, 0x90, 0, 0},
8364 {0x24, 0x55, 0x55, 0, 0},
8365 {0x25, 0x15, 0x15, 0, 0},
8366 {0x26, 0x5, 0x5, 0, 0},
8367 {0x27, 0x15, 0x15, 0, 0},
8368 {0x28, 0x5, 0x5, 0, 0},
8369 {0x29, 0x20, 0x20, 0, 0},
8370 {0x2A, 0x11, 0x11, 0, 0},
8371 {0x2B, 0x90, 0x90, 0, 0},
8373 {0x2D, 0x88, 0x88, 0, 0},
8374 {0x2E, 0x32, 0x32, 0, 0},
8375 {0x2F, 0x77, 0x77, 0, 0},
8376 {0x30, 0x17, 0x17, 1, 1},
8377 {0x31, 0xff, 0xff, 1, 1},
8378 {0x32, 0x20, 0x20, 0, 0},
8380 {0x34, 0x88, 0x88, 0, 0},
8381 {0x35, 0x32, 0x32, 0, 0},
8382 {0x36, 0x77, 0x77, 0, 0},
8383 {0x37, 0x17, 0x17, 1, 1},
8384 {0x38, 0xf0, 0xf0, 1, 1},
8385 {0x39, 0x20, 0x20, 0, 0},
8386 {0x3A, 0x8, 0x8, 0, 0},
8387 {0x3B, 0x99, 0x99, 0, 0},
8389 {0x3D, 0x44, 0x44, 1, 1},
8391 {0x3F, 0x44, 0x44, 0, 0},
8392 {0x40, 0xf, 0xf, 1, 1},
8393 {0x41, 0x6, 0x6, 0, 0},
8394 {0x42, 0x4, 0x4, 0, 0},
8395 {0x43, 0x50, 0x50, 1, 1},
8396 {0x44, 0x8, 0x8, 0, 0},
8397 {0x45, 0x99, 0x99, 0, 0},
8399 {0x47, 0x11, 0x11, 0, 0},
8401 {0x49, 0x44, 0x44, 0, 0},
8402 {0x4A, 0x7, 0x7, 0, 0},
8403 {0x4B, 0x6, 0x6, 0, 0},
8404 {0x4C, 0x4, 0x4, 0, 0},
8407 {0x4F, 0x66, 0x66, 0, 0},
8408 {0x50, 0x66, 0x66, 0, 0},
8409 {0x51, 0x57, 0x57, 0, 0},
8410 {0x52, 0x57, 0x57, 0, 0},
8411 {0x53, 0x44, 0x44, 0, 0},
8414 {0x56, 0x8, 0x8, 0, 0},
8415 {0x57, 0x8, 0x8, 0, 0},
8416 {0x58, 0x7, 0x7, 0, 0},
8417 {0x59, 0x22, 0x22, 0, 0},
8418 {0x5A, 0x22, 0x22, 0, 0},
8419 {0x5B, 0x2, 0x2, 0, 0},
8420 {0x5C, 0x23, 0x23, 0, 0},
8421 {0x5D, 0x7, 0x7, 0, 0},
8422 {0x5E, 0x55, 0x55, 0, 0},
8423 {0x5F, 0x23, 0x23, 0, 0},
8424 {0x60, 0x41, 0x41, 0, 0},
8425 {0x61, 0x1, 0x1, 0, 0},
8426 {0x62, 0xa, 0xa, 0, 0},
8435 {0x6B, 0xc, 0xc, 0, 0},
8442 {0x72, 0x22, 0x22, 0, 0},
8443 {0x73, 0x22, 0x22, 0, 0},
8444 {0x74, 0x2, 0x2, 0, 0},
8445 {0x75, 0xa, 0xa, 0, 0},
8446 {0x76, 0x1, 0x1, 0, 0},
8447 {0x77, 0x22, 0x22, 0, 0},
8448 {0x78, 0x30, 0x30, 0, 0},
8477 {0xFFFF, 0, 0, 0, 0}
8480 static struct radio_regs regs_SYN_2056_A1[] = {
8488 {0x09, 0x1, 0x1, 0, 0},
8513 {0x22, 0x60, 0x60, 0, 0},
8514 {0x23, 0x6, 0x6, 0, 0},
8515 {0x24, 0xc, 0xc, 0, 0},
8519 {0x28, 0x1, 0x1, 0, 0},
8525 {0x2E, 0xd, 0xd, 0, 0},
8526 {0x2F, 0x1f, 0x1f, 0, 0},
8527 {0x30, 0x15, 0x15, 0, 0},
8528 {0x31, 0xf, 0xf, 0, 0},
8539 {0x3C, 0x13, 0x13, 0, 0},
8540 {0x3D, 0xf, 0xf, 0, 0},
8541 {0x3E, 0x18, 0x18, 0, 0},
8544 {0x41, 0x20, 0x20, 0, 0},
8545 {0x42, 0x20, 0x20, 0, 0},
8547 {0x44, 0x77, 0x77, 0, 0},
8548 {0x45, 0x7, 0x7, 0, 0},
8549 {0x46, 0x1, 0x1, 0, 0},
8550 {0x47, 0x4, 0x4, 0, 0},
8551 {0x48, 0xf, 0xf, 0, 0},
8552 {0x49, 0x30, 0x30, 0, 0},
8553 {0x4A, 0x32, 0x32, 0, 0},
8554 {0x4B, 0xd, 0xd, 0, 0},
8555 {0x4C, 0xd, 0xd, 0, 0},
8556 {0x4D, 0x4, 0x4, 0, 0},
8557 {0x4E, 0x6, 0x6, 0, 0},
8558 {0x4F, 0x1, 0x1, 0, 0},
8559 {0x50, 0x1c, 0x1c, 0, 0},
8560 {0x51, 0x2, 0x2, 0, 0},
8561 {0x52, 0x2, 0x2, 0, 0},
8562 {0x53, 0xf7, 0xf7, 1, 1},
8563 {0x54, 0xb4, 0xb4, 0, 0},
8564 {0x55, 0xd2, 0xd2, 0, 0},
8567 {0x58, 0x4, 0x4, 0, 0},
8568 {0x59, 0x96, 0x96, 0, 0},
8569 {0x5A, 0x3e, 0x3e, 0, 0},
8570 {0x5B, 0x3e, 0x3e, 0, 0},
8571 {0x5C, 0x13, 0x13, 0, 0},
8572 {0x5D, 0x2, 0x2, 0, 0},
8574 {0x5F, 0x7, 0x7, 0, 0},
8575 {0x60, 0x7, 0x7, 1, 1},
8576 {0x61, 0x8, 0x8, 0, 0},
8577 {0x62, 0x3, 0x3, 0, 0},
8583 {0x68, 0x40, 0x40, 0, 0},
8588 {0x6D, 0x1, 0x1, 0, 0},
8591 {0x70, 0x60, 0x60, 0, 0},
8592 {0x71, 0x66, 0x66, 0, 0},
8593 {0x72, 0xc, 0xc, 0, 0},
8594 {0x73, 0x66, 0x66, 0, 0},
8595 {0x74, 0x8f, 0x8f, 1, 1},
8597 {0x76, 0xcc, 0xcc, 0, 0},
8598 {0x77, 0x1, 0x1, 0, 0},
8599 {0x78, 0x66, 0x66, 0, 0},
8600 {0x79, 0x66, 0x66, 0, 0},
8612 {0x85, 0xff, 0xff, 0, 0},
8638 {0x9F, 0x6, 0x6, 0, 0},
8639 {0xA0, 0x66, 0x66, 0, 0},
8640 {0xA1, 0x66, 0x66, 0, 0},
8641 {0xA2, 0x66, 0x66, 0, 0},
8642 {0xA3, 0x66, 0x66, 0, 0},
8643 {0xA4, 0x66, 0x66, 0, 0},
8644 {0xA5, 0x66, 0x66, 0, 0},
8645 {0xA6, 0x66, 0x66, 0, 0},
8646 {0xA7, 0x66, 0x66, 0, 0},
8647 {0xA8, 0x66, 0x66, 0, 0},
8648 {0xA9, 0x66, 0x66, 0, 0},
8649 {0xAA, 0x66, 0x66, 0, 0},
8650 {0xAB, 0x66, 0x66, 0, 0},
8651 {0xAC, 0x66, 0x66, 0, 0},
8652 {0xAD, 0x66, 0x66, 0, 0},
8653 {0xAE, 0x66, 0x66, 0, 0},
8654 {0xAF, 0x66, 0x66, 0, 0},
8655 {0xB0, 0x66, 0x66, 0, 0},
8656 {0xB1, 0x66, 0x66, 0, 0},
8657 {0xB2, 0x66, 0x66, 0, 0},
8658 {0xB3, 0xa, 0xa, 0, 0},
8662 {0xFFFF, 0, 0, 0, 0}
8665 static struct radio_regs regs_TX_2056_A1[] = {
8697 {0x21, 0x88, 0x88, 0, 0},
8698 {0x22, 0x88, 0x88, 0, 0},
8699 {0x23, 0x88, 0x88, 0, 0},
8700 {0x24, 0x88, 0x88, 0, 0},
8701 {0x25, 0xc, 0xc, 0, 0},
8703 {0x27, 0x3, 0x3, 0, 0},
8705 {0x29, 0x3, 0x3, 0, 0},
8706 {0x2A, 0x37, 0x37, 0, 0},
8707 {0x2B, 0x3, 0x3, 0, 0},
8710 {0x2E, 0x1, 0x1, 0, 0},
8711 {0x2F, 0x1, 0x1, 0, 0},
8715 {0x33, 0x11, 0x11, 0, 0},
8716 {0x34, 0x11, 0x11, 0, 0},
8719 {0x37, 0x3, 0x3, 0, 0},
8720 {0x38, 0xf, 0xf, 0, 0},
8722 {0x3A, 0x2d, 0x2d, 0, 0},
8724 {0x3C, 0x6e, 0x6e, 0, 0},
8725 {0x3D, 0xf0, 0xf0, 1, 1},
8729 {0x41, 0x3, 0x3, 0, 0},
8730 {0x42, 0x3, 0x3, 0, 0},
8732 {0x44, 0x1e, 0x1e, 0, 0},
8734 {0x46, 0x6e, 0x6e, 0, 0},
8735 {0x47, 0xf0, 0xf0, 1, 1},
8737 {0x49, 0x2, 0x2, 0, 0},
8738 {0x4A, 0xff, 0xff, 1, 1},
8739 {0x4B, 0xc, 0xc, 0, 0},
8741 {0x4D, 0x38, 0x38, 0, 0},
8742 {0x4E, 0x70, 0x70, 1, 1},
8743 {0x4F, 0x2, 0x2, 0, 0},
8744 {0x50, 0x88, 0x88, 0, 0},
8745 {0x51, 0xc, 0xc, 0, 0},
8747 {0x53, 0x8, 0x8, 0, 0},
8748 {0x54, 0x70, 0x70, 1, 1},
8749 {0x55, 0x2, 0x2, 0, 0},
8750 {0x56, 0xff, 0xff, 1, 1},
8752 {0x58, 0x83, 0x83, 0, 0},
8753 {0x59, 0x77, 0x77, 1, 1},
8755 {0x5B, 0x2, 0x2, 0, 0},
8756 {0x5C, 0x88, 0x88, 0, 0},
8758 {0x5E, 0x8, 0x8, 0, 0},
8759 {0x5F, 0x77, 0x77, 1, 1},
8760 {0x60, 0x1, 0x1, 0, 0},
8762 {0x62, 0x7, 0x7, 0, 0},
8764 {0x64, 0x7, 0x7, 0, 0},
8767 {0x67, 0x72, 0x72, 1, 1},
8769 {0x69, 0xa, 0xa, 0, 0},
8777 {0x71, 0x2, 0x2, 0, 0},
8780 {0x74, 0xe, 0xe, 0, 0},
8781 {0x75, 0xe, 0xe, 0, 0},
8782 {0x76, 0xe, 0xe, 0, 0},
8783 {0x77, 0x13, 0x13, 0, 0},
8784 {0x78, 0x13, 0x13, 0, 0},
8785 {0x79, 0x1b, 0x1b, 0, 0},
8786 {0x7A, 0x1b, 0x1b, 0, 0},
8787 {0x7B, 0x55, 0x55, 0, 0},
8788 {0x7C, 0x5b, 0x5b, 0, 0},
8811 {0xFFFF, 0, 0, 0, 0}
8814 static struct radio_regs regs_RX_2056_A1[] = {
8845 {0x20, 0x3, 0x3, 0, 0},
8848 {0x23, 0x90, 0x90, 0, 0},
8849 {0x24, 0x55, 0x55, 0, 0},
8850 {0x25, 0x15, 0x15, 0, 0},
8851 {0x26, 0x5, 0x5, 0, 0},
8852 {0x27, 0x15, 0x15, 0, 0},
8853 {0x28, 0x5, 0x5, 0, 0},
8854 {0x29, 0x20, 0x20, 0, 0},
8855 {0x2A, 0x11, 0x11, 0, 0},
8856 {0x2B, 0x90, 0x90, 0, 0},
8858 {0x2D, 0x88, 0x88, 0, 0},
8859 {0x2E, 0x32, 0x32, 0, 0},
8860 {0x2F, 0x77, 0x77, 0, 0},
8861 {0x30, 0x17, 0x17, 1, 1},
8862 {0x31, 0xff, 0xff, 1, 1},
8863 {0x32, 0x20, 0x20, 0, 0},
8865 {0x34, 0x88, 0x88, 0, 0},
8866 {0x35, 0x32, 0x32, 0, 0},
8867 {0x36, 0x77, 0x77, 0, 0},
8868 {0x37, 0x17, 0x17, 1, 1},
8869 {0x38, 0xf0, 0xf0, 1, 1},
8870 {0x39, 0x20, 0x20, 0, 0},
8871 {0x3A, 0x8, 0x8, 0, 0},
8872 {0x3B, 0x55, 0x55, 1, 1},
8874 {0x3D, 0x44, 0x44, 1, 1},
8876 {0x3F, 0x44, 0x44, 0, 0},
8877 {0x40, 0xf, 0xf, 1, 1},
8878 {0x41, 0x6, 0x6, 0, 0},
8879 {0x42, 0x4, 0x4, 0, 0},
8880 {0x43, 0x50, 0x50, 1, 1},
8881 {0x44, 0x8, 0x8, 0, 0},
8882 {0x45, 0x55, 0x55, 1, 1},
8884 {0x47, 0x11, 0x11, 0, 0},
8886 {0x49, 0x44, 0x44, 0, 0},
8887 {0x4A, 0x7, 0x7, 0, 0},
8888 {0x4B, 0x6, 0x6, 0, 0},
8889 {0x4C, 0x4, 0x4, 0, 0},
8892 {0x4F, 0x26, 0x26, 1, 1},
8893 {0x50, 0x26, 0x26, 1, 1},
8894 {0x51, 0xf, 0xf, 1, 1},
8895 {0x52, 0xf, 0xf, 1, 1},
8896 {0x53, 0x44, 0x44, 0, 0},
8899 {0x56, 0x8, 0x8, 0, 0},
8900 {0x57, 0x8, 0x8, 0, 0},
8901 {0x58, 0x7, 0x7, 0, 0},
8902 {0x59, 0x22, 0x22, 0, 0},
8903 {0x5A, 0x22, 0x22, 0, 0},
8904 {0x5B, 0x2, 0x2, 0, 0},
8905 {0x5C, 0x2f, 0x2f, 1, 1},
8906 {0x5D, 0x7, 0x7, 0, 0},
8907 {0x5E, 0x55, 0x55, 0, 0},
8908 {0x5F, 0x23, 0x23, 0, 0},
8909 {0x60, 0x41, 0x41, 0, 0},
8910 {0x61, 0x1, 0x1, 0, 0},
8911 {0x62, 0xa, 0xa, 0, 0},
8920 {0x6B, 0xc, 0xc, 0, 0},
8927 {0x72, 0x22, 0x22, 0, 0},
8928 {0x73, 0x22, 0x22, 0, 0},
8930 {0x75, 0xa, 0xa, 0, 0},
8931 {0x76, 0x1, 0x1, 0, 0},
8932 {0x77, 0x22, 0x22, 0, 0},
8933 {0x78, 0x30, 0x30, 0, 0},
8962 {0xFFFF, 0, 0, 0, 0}
8965 static struct radio_regs regs_SYN_2056_rev5[] = {
8973 {0x09, 0x1, 0x1, 0, 0},
8998 {0x22, 0x60, 0x60, 0, 0},
8999 {0x23, 0x6, 0x6, 0, 0},
9000 {0x24, 0xc, 0xc, 0, 0},
9004 {0x28, 0x1, 0x1, 0, 0},
9011 {0x2F, 0x1f, 0x1f, 0, 0},
9012 {0x30, 0x15, 0x15, 0, 0},
9013 {0x31, 0xf, 0xf, 0, 0},
9024 {0x3C, 0x13, 0x13, 0, 0},
9025 {0x3D, 0xf, 0xf, 0, 0},
9026 {0x3E, 0x18, 0x18, 0, 0},
9029 {0x41, 0x20, 0x20, 0, 0},
9030 {0x42, 0x20, 0x20, 0, 0},
9032 {0x44, 0x77, 0x77, 0, 0},
9033 {0x45, 0x7, 0x7, 0, 0},
9034 {0x46, 0x1, 0x1, 0, 0},
9035 {0x47, 0x4, 0x4, 0, 0},
9036 {0x48, 0xf, 0xf, 0, 0},
9037 {0x49, 0x30, 0x30, 0, 0},
9038 {0x4A, 0x32, 0x32, 0, 0},
9039 {0x4B, 0xd, 0xd, 0, 0},
9040 {0x4C, 0xd, 0xd, 0, 0},
9041 {0x4D, 0x4, 0x4, 0, 0},
9042 {0x4E, 0x6, 0x6, 0, 0},
9043 {0x4F, 0x1, 0x1, 0, 0},
9044 {0x50, 0x1c, 0x1c, 0, 0},
9045 {0x51, 0x2, 0x2, 0, 0},
9046 {0x52, 0x2, 0x2, 0, 0},
9047 {0x53, 0xf7, 0xf7, 1, 1},
9048 {0x54, 0xb4, 0xb4, 0, 0},
9049 {0x55, 0xd2, 0xd2, 0, 0},
9052 {0x58, 0x4, 0x4, 0, 0},
9053 {0x59, 0x96, 0x96, 0, 0},
9054 {0x5A, 0x3e, 0x3e, 0, 0},
9055 {0x5B, 0x3e, 0x3e, 0, 0},
9056 {0x5C, 0x13, 0x13, 0, 0},
9057 {0x5D, 0x2, 0x2, 0, 0},
9059 {0x5F, 0x7, 0x7, 0, 0},
9060 {0x60, 0x7, 0x7, 1, 1},
9061 {0x61, 0x8, 0x8, 0, 0},
9062 {0x62, 0x3, 0x3, 0, 0},
9068 {0x68, 0x40, 0x40, 0, 0},
9073 {0x6D, 0x1, 0x1, 0, 0},
9076 {0x70, 0x60, 0x60, 0, 0},
9077 {0x71, 0x66, 0x66, 0, 0},
9078 {0x72, 0xc, 0xc, 0, 0},
9079 {0x73, 0x66, 0x66, 0, 0},
9080 {0x74, 0x8f, 0x8f, 1, 1},
9082 {0x76, 0xcc, 0xcc, 0, 0},
9083 {0x77, 0x1, 0x1, 0, 0},
9084 {0x78, 0x66, 0x66, 0, 0},
9085 {0x79, 0x66, 0x66, 0, 0},
9097 {0x85, 0xff, 0xff, 0, 0},
9123 {0x9F, 0x6, 0x6, 0, 0},
9124 {0xA0, 0x66, 0x66, 0, 0},
9125 {0xA1, 0x66, 0x66, 0, 0},
9126 {0xA2, 0x66, 0x66, 0, 0},
9127 {0xA3, 0x66, 0x66, 0, 0},
9128 {0xA4, 0x66, 0x66, 0, 0},
9129 {0xA5, 0x66, 0x66, 0, 0},
9130 {0xA6, 0x66, 0x66, 0, 0},
9131 {0xA7, 0x66, 0x66, 0, 0},
9132 {0xA8, 0x66, 0x66, 0, 0},
9133 {0xA9, 0x66, 0x66, 0, 0},
9134 {0xAA, 0x66, 0x66, 0, 0},
9135 {0xAB, 0x66, 0x66, 0, 0},
9136 {0xAC, 0x66, 0x66, 0, 0},
9137 {0xAD, 0x66, 0x66, 0, 0},
9138 {0xAE, 0x66, 0x66, 0, 0},
9139 {0xAF, 0x66, 0x66, 0, 0},
9140 {0xB0, 0x66, 0x66, 0, 0},
9141 {0xB1, 0x66, 0x66, 0, 0},
9142 {0xB2, 0x66, 0x66, 0, 0},
9143 {0xB3, 0xa, 0xa, 0, 0},
9147 {0xFFFF, 0, 0, 0, 0}
9150 static struct radio_regs regs_TX_2056_rev5[] = {
9182 {0x21, 0x88, 0x88, 0, 0},
9183 {0x22, 0x88, 0x88, 0, 0},
9184 {0x23, 0x88, 0x88, 0, 0},
9185 {0x24, 0x88, 0x88, 0, 0},
9186 {0x25, 0xc, 0xc, 0, 0},
9188 {0x27, 0x3, 0x3, 0, 0},
9190 {0x29, 0x3, 0x3, 0, 0},
9191 {0x2A, 0x37, 0x37, 0, 0},
9192 {0x2B, 0x3, 0x3, 0, 0},
9195 {0x2E, 0x1, 0x1, 0, 0},
9196 {0x2F, 0x1, 0x1, 0, 0},
9200 {0x33, 0x11, 0x11, 0, 0},
9201 {0x34, 0x11, 0x11, 0, 0},
9204 {0x37, 0x3, 0x3, 0, 0},
9205 {0x38, 0xf, 0xf, 0, 0},
9207 {0x3A, 0x2d, 0x2d, 0, 0},
9209 {0x3C, 0x6e, 0x6e, 0, 0},
9210 {0x3D, 0xf0, 0xf0, 1, 1},
9214 {0x41, 0x3, 0x3, 0, 0},
9215 {0x42, 0x3, 0x3, 0, 0},
9217 {0x44, 0x1e, 0x1e, 0, 0},
9219 {0x46, 0x6e, 0x6e, 0, 0},
9220 {0x47, 0xf0, 0xf0, 1, 1},
9222 {0x49, 0x2, 0x2, 0, 0},
9223 {0x4A, 0xff, 0xff, 1, 1},
9224 {0x4B, 0xc, 0xc, 0, 0},
9226 {0x4D, 0x38, 0x38, 0, 0},
9227 {0x4E, 0x70, 0x70, 1, 1},
9228 {0x4F, 0x2, 0x2, 0, 0},
9229 {0x50, 0x88, 0x88, 0, 0},
9230 {0x51, 0xc, 0xc, 0, 0},
9232 {0x53, 0x8, 0x8, 0, 0},
9233 {0x54, 0x70, 0x70, 1, 1},
9234 {0x55, 0x2, 0x2, 0, 0},
9235 {0x56, 0xff, 0xff, 1, 1},
9237 {0x58, 0x83, 0x83, 0, 0},
9238 {0x59, 0x77, 0x77, 1, 1},
9240 {0x5B, 0x2, 0x2, 0, 0},
9241 {0x5C, 0x88, 0x88, 0, 0},
9243 {0x5E, 0x8, 0x8, 0, 0},
9244 {0x5F, 0x77, 0x77, 1, 1},
9245 {0x60, 0x1, 0x1, 0, 0},
9247 {0x62, 0x7, 0x7, 0, 0},
9249 {0x64, 0x7, 0x7, 0, 0},
9254 {0x69, 0xa, 0xa, 0, 0},
9262 {0x71, 0x2, 0x2, 0, 0},
9265 {0x74, 0xe, 0xe, 0, 0},
9266 {0x75, 0xe, 0xe, 0, 0},
9267 {0x76, 0xe, 0xe, 0, 0},
9268 {0x77, 0x13, 0x13, 0, 0},
9269 {0x78, 0x13, 0x13, 0, 0},
9270 {0x79, 0x1b, 0x1b, 0, 0},
9271 {0x7A, 0x1b, 0x1b, 0, 0},
9272 {0x7B, 0x55, 0x55, 0, 0},
9273 {0x7C, 0x5b, 0x5b, 0, 0},
9296 {0x93, 0x70, 0x70, 0, 0},
9297 {0x94, 0x70, 0x70, 0, 0},
9298 {0x95, 0x71, 0x71, 1, 1},
9299 {0x96, 0x71, 0x71, 1, 1},
9300 {0x97, 0x72, 0x72, 1, 1},
9301 {0x98, 0x73, 0x73, 1, 1},
9302 {0x99, 0x74, 0x74, 1, 1},
9303 {0x9A, 0x75, 0x75, 1, 1},
9304 {0xFFFF, 0, 0, 0, 0}
9307 static struct radio_regs regs_RX_2056_rev5[] = {
9338 {0x20, 0x3, 0x3, 0, 0},
9341 {0x23, 0x90, 0x90, 0, 0},
9342 {0x24, 0x55, 0x55, 0, 0},
9343 {0x25, 0x15, 0x15, 0, 0},
9344 {0x26, 0x5, 0x5, 0, 0},
9345 {0x27, 0x15, 0x15, 0, 0},
9346 {0x28, 0x5, 0x5, 0, 0},
9347 {0x29, 0x20, 0x20, 0, 0},
9348 {0x2A, 0x11, 0x11, 0, 0},
9349 {0x2B, 0x90, 0x90, 0, 0},
9351 {0x2D, 0x88, 0x88, 0, 0},
9352 {0x2E, 0x32, 0x32, 0, 0},
9353 {0x2F, 0x77, 0x77, 0, 0},
9354 {0x30, 0x17, 0x17, 1, 1},
9355 {0x31, 0xff, 0xff, 1, 1},
9356 {0x32, 0x20, 0x20, 0, 0},
9358 {0x34, 0x88, 0x88, 0, 0},
9359 {0x35, 0x32, 0x32, 0, 0},
9360 {0x36, 0x77, 0x77, 0, 0},
9361 {0x37, 0x17, 0x17, 1, 1},
9362 {0x38, 0xf0, 0xf0, 1, 1},
9363 {0x39, 0x20, 0x20, 0, 0},
9364 {0x3A, 0x8, 0x8, 0, 0},
9365 {0x3B, 0x55, 0x55, 1, 1},
9367 {0x3D, 0x88, 0x88, 1, 1},
9370 {0x40, 0x7, 0x7, 1, 1},
9371 {0x41, 0x6, 0x6, 0, 0},
9372 {0x42, 0x4, 0x4, 0, 0},
9374 {0x44, 0x8, 0x8, 0, 0},
9375 {0x45, 0x55, 0x55, 1, 1},
9377 {0x47, 0x11, 0x11, 0, 0},
9380 {0x4A, 0x7, 0x7, 0, 0},
9381 {0x4B, 0x6, 0x6, 0, 0},
9382 {0x4C, 0x4, 0x4, 0, 0},
9385 {0x4F, 0x26, 0x26, 1, 1},
9386 {0x50, 0x26, 0x26, 1, 1},
9387 {0x51, 0xf, 0xf, 1, 1},
9388 {0x52, 0xf, 0xf, 1, 1},
9389 {0x53, 0x44, 0x44, 0, 0},
9392 {0x56, 0x8, 0x8, 0, 0},
9393 {0x57, 0x8, 0x8, 0, 0},
9394 {0x58, 0x7, 0x7, 0, 0},
9395 {0x59, 0x22, 0x22, 0, 0},
9396 {0x5A, 0x22, 0x22, 0, 0},
9397 {0x5B, 0x2, 0x2, 0, 0},
9398 {0x5C, 0x4, 0x4, 1, 1},
9399 {0x5D, 0x7, 0x7, 0, 0},
9400 {0x5E, 0x55, 0x55, 0, 0},
9401 {0x5F, 0x23, 0x23, 0, 0},
9402 {0x60, 0x41, 0x41, 0, 0},
9403 {0x61, 0x1, 0x1, 0, 0},
9404 {0x62, 0xa, 0xa, 0, 0},
9413 {0x6B, 0xc, 0xc, 0, 0},
9420 {0x72, 0x22, 0x22, 0, 0},
9421 {0x73, 0x22, 0x22, 0, 0},
9423 {0x75, 0xa, 0xa, 0, 0},
9424 {0x76, 0x1, 0x1, 0, 0},
9425 {0x77, 0x22, 0x22, 0, 0},
9426 {0x78, 0x30, 0x30, 0, 0},
9455 {0xFFFF, 0, 0, 0, 0}
9458 static struct radio_regs regs_SYN_2056_rev6[] = {
9466 {0x09, 0x1, 0x1, 0, 0},
9491 {0x22, 0x60, 0x60, 0, 0},
9492 {0x23, 0x6, 0x6, 0, 0},
9493 {0x24, 0xc, 0xc, 0, 0},
9497 {0x28, 0x1, 0x1, 0, 0},
9504 {0x2F, 0x1f, 0x1f, 0, 0},
9505 {0x30, 0x15, 0x15, 0, 0},
9506 {0x31, 0xf, 0xf, 0, 0},
9517 {0x3C, 0x13, 0x13, 0, 0},
9518 {0x3D, 0xf, 0xf, 0, 0},
9519 {0x3E, 0x18, 0x18, 0, 0},
9522 {0x41, 0x20, 0x20, 0, 0},
9523 {0x42, 0x20, 0x20, 0, 0},
9525 {0x44, 0x77, 0x77, 0, 0},
9526 {0x45, 0x7, 0x7, 0, 0},
9527 {0x46, 0x1, 0x1, 0, 0},
9528 {0x47, 0x4, 0x4, 0, 0},
9529 {0x48, 0xf, 0xf, 0, 0},
9530 {0x49, 0x30, 0x30, 0, 0},
9531 {0x4A, 0x32, 0x32, 0, 0},
9532 {0x4B, 0xd, 0xd, 0, 0},
9533 {0x4C, 0xd, 0xd, 0, 0},
9534 {0x4D, 0x4, 0x4, 0, 0},
9535 {0x4E, 0x6, 0x6, 0, 0},
9536 {0x4F, 0x1, 0x1, 0, 0},
9537 {0x50, 0x1c, 0x1c, 0, 0},
9538 {0x51, 0x2, 0x2, 0, 0},
9539 {0x52, 0x2, 0x2, 0, 0},
9540 {0x53, 0xf7, 0xf7, 1, 1},
9541 {0x54, 0xb4, 0xb4, 0, 0},
9542 {0x55, 0xd2, 0xd2, 0, 0},
9545 {0x58, 0x4, 0x4, 0, 0},
9546 {0x59, 0x96, 0x96, 0, 0},
9547 {0x5A, 0x3e, 0x3e, 0, 0},
9548 {0x5B, 0x3e, 0x3e, 0, 0},
9549 {0x5C, 0x13, 0x13, 0, 0},
9550 {0x5D, 0x2, 0x2, 0, 0},
9552 {0x5F, 0x7, 0x7, 0, 0},
9553 {0x60, 0x7, 0x7, 1, 1},
9554 {0x61, 0x8, 0x8, 0, 0},
9555 {0x62, 0x3, 0x3, 0, 0},
9561 {0x68, 0x40, 0x40, 0, 0},
9566 {0x6D, 0x1, 0x1, 0, 0},
9569 {0x70, 0x60, 0x60, 0, 0},
9570 {0x71, 0x66, 0x66, 0, 0},
9571 {0x72, 0xc, 0xc, 0, 0},
9572 {0x73, 0x66, 0x66, 0, 0},
9573 {0x74, 0x8f, 0x8f, 1, 1},
9575 {0x76, 0xcc, 0xcc, 0, 0},
9576 {0x77, 0x1, 0x1, 0, 0},
9577 {0x78, 0x66, 0x66, 0, 0},
9578 {0x79, 0x66, 0x66, 0, 0},
9590 {0x85, 0xff, 0xff, 0, 0},
9616 {0x9F, 0x6, 0x6, 0, 0},
9617 {0xA0, 0x66, 0x66, 0, 0},
9618 {0xA1, 0x66, 0x66, 0, 0},
9619 {0xA2, 0x66, 0x66, 0, 0},
9620 {0xA3, 0x66, 0x66, 0, 0},
9621 {0xA4, 0x66, 0x66, 0, 0},
9622 {0xA5, 0x66, 0x66, 0, 0},
9623 {0xA6, 0x66, 0x66, 0, 0},
9624 {0xA7, 0x66, 0x66, 0, 0},
9625 {0xA8, 0x66, 0x66, 0, 0},
9626 {0xA9, 0x66, 0x66, 0, 0},
9627 {0xAA, 0x66, 0x66, 0, 0},
9628 {0xAB, 0x66, 0x66, 0, 0},
9629 {0xAC, 0x66, 0x66, 0, 0},
9630 {0xAD, 0x66, 0x66, 0, 0},
9631 {0xAE, 0x66, 0x66, 0, 0},
9632 {0xAF, 0x66, 0x66, 0, 0},
9633 {0xB0, 0x66, 0x66, 0, 0},
9634 {0xB1, 0x66, 0x66, 0, 0},
9635 {0xB2, 0x66, 0x66, 0, 0},
9636 {0xB3, 0xa, 0xa, 0, 0},
9640 {0xFFFF, 0, 0, 0, 0}
9643 static struct radio_regs regs_TX_2056_rev6[] = {
9675 {0x21, 0x88, 0x88, 0, 0},
9676 {0x22, 0x88, 0x88, 0, 0},
9677 {0x23, 0x88, 0x88, 0, 0},
9678 {0x24, 0x88, 0x88, 0, 0},
9679 {0x25, 0xc, 0xc, 0, 0},
9681 {0x27, 0x3, 0x3, 0, 0},
9683 {0x29, 0x3, 0x3, 0, 0},
9684 {0x2A, 0x37, 0x37, 0, 0},
9685 {0x2B, 0x3, 0x3, 0, 0},
9688 {0x2E, 0x1, 0x1, 0, 0},
9689 {0x2F, 0x1, 0x1, 0, 0},
9693 {0x33, 0x11, 0x11, 0, 0},
9694 {0x34, 0xee, 0xee, 1, 1},
9697 {0x37, 0x3, 0x3, 0, 0},
9698 {0x38, 0x50, 0x50, 1, 1},
9700 {0x3A, 0x50, 0x50, 1, 1},
9702 {0x3C, 0x6e, 0x6e, 0, 0},
9703 {0x3D, 0xf0, 0xf0, 1, 1},
9707 {0x41, 0x3, 0x3, 0, 0},
9708 {0x42, 0x3, 0x3, 0, 0},
9710 {0x44, 0x1e, 0x1e, 0, 0},
9712 {0x46, 0x6e, 0x6e, 0, 0},
9713 {0x47, 0xf0, 0xf0, 1, 1},
9715 {0x49, 0x2, 0x2, 0, 0},
9716 {0x4A, 0xff, 0xff, 1, 1},
9717 {0x4B, 0xc, 0xc, 0, 0},
9719 {0x4D, 0x38, 0x38, 0, 0},
9720 {0x4E, 0x70, 0x70, 1, 1},
9721 {0x4F, 0x2, 0x2, 0, 0},
9722 {0x50, 0x88, 0x88, 0, 0},
9723 {0x51, 0xc, 0xc, 0, 0},
9725 {0x53, 0x8, 0x8, 0, 0},
9726 {0x54, 0x70, 0x70, 1, 1},
9727 {0x55, 0x2, 0x2, 0, 0},
9728 {0x56, 0xff, 0xff, 1, 1},
9730 {0x58, 0x83, 0x83, 0, 0},
9731 {0x59, 0x77, 0x77, 1, 1},
9733 {0x5B, 0x2, 0x2, 0, 0},
9734 {0x5C, 0x88, 0x88, 0, 0},
9736 {0x5E, 0x8, 0x8, 0, 0},
9737 {0x5F, 0x77, 0x77, 1, 1},
9738 {0x60, 0x1, 0x1, 0, 0},
9740 {0x62, 0x7, 0x7, 0, 0},
9742 {0x64, 0x7, 0x7, 0, 0},
9747 {0x69, 0xa, 0xa, 0, 0},
9755 {0x71, 0x2, 0x2, 0, 0},
9758 {0x74, 0xe, 0xe, 0, 0},
9759 {0x75, 0xe, 0xe, 0, 0},
9760 {0x76, 0xe, 0xe, 0, 0},
9761 {0x77, 0x13, 0x13, 0, 0},
9762 {0x78, 0x13, 0x13, 0, 0},
9763 {0x79, 0x1b, 0x1b, 0, 0},
9764 {0x7A, 0x1b, 0x1b, 0, 0},
9765 {0x7B, 0x55, 0x55, 0, 0},
9766 {0x7C, 0x5b, 0x5b, 0, 0},
9767 {0x7D, 0x30, 0x30, 1, 1},
9789 {0x93, 0x70, 0x70, 0, 0},
9790 {0x94, 0x70, 0x70, 0, 0},
9791 {0x95, 0x70, 0x70, 0, 0},
9792 {0x96, 0x70, 0x70, 0, 0},
9793 {0x97, 0x70, 0x70, 0, 0},
9794 {0x98, 0x70, 0x70, 0, 0},
9795 {0x99, 0x70, 0x70, 0, 0},
9796 {0x9A, 0x70, 0x70, 0, 0},
9797 {0xFFFF, 0, 0, 0, 0}
9800 static struct radio_regs regs_RX_2056_rev6[] = {
9831 {0x20, 0x3, 0x3, 0, 0},
9834 {0x23, 0x90, 0x90, 0, 0},
9835 {0x24, 0x55, 0x55, 0, 0},
9836 {0x25, 0x15, 0x15, 0, 0},
9837 {0x26, 0x5, 0x5, 0, 0},
9838 {0x27, 0x15, 0x15, 0, 0},
9839 {0x28, 0x5, 0x5, 0, 0},
9840 {0x29, 0x20, 0x20, 0, 0},
9841 {0x2A, 0x11, 0x11, 0, 0},
9842 {0x2B, 0x90, 0x90, 0, 0},
9844 {0x2D, 0x88, 0x88, 0, 0},
9845 {0x2E, 0x32, 0x32, 0, 0},
9846 {0x2F, 0x77, 0x77, 0, 0},
9847 {0x30, 0x17, 0x17, 1, 1},
9848 {0x31, 0xff, 0xff, 1, 1},
9849 {0x32, 0x20, 0x20, 0, 0},
9851 {0x34, 0x88, 0x88, 0, 0},
9852 {0x35, 0x32, 0x32, 0, 0},
9853 {0x36, 0x77, 0x77, 0, 0},
9854 {0x37, 0x17, 0x17, 1, 1},
9855 {0x38, 0xf0, 0xf0, 1, 1},
9856 {0x39, 0x20, 0x20, 0, 0},
9857 {0x3A, 0x8, 0x8, 0, 0},
9858 {0x3B, 0x55, 0x55, 1, 1},
9860 {0x3D, 0x88, 0x88, 1, 1},
9862 {0x3F, 0x44, 0x44, 0, 0},
9863 {0x40, 0x7, 0x7, 1, 1},
9864 {0x41, 0x6, 0x6, 0, 0},
9865 {0x42, 0x4, 0x4, 0, 0},
9867 {0x44, 0x8, 0x8, 0, 0},
9868 {0x45, 0x55, 0x55, 1, 1},
9870 {0x47, 0x11, 0x11, 0, 0},
9872 {0x49, 0x44, 0x44, 0, 0},
9873 {0x4A, 0x7, 0x7, 0, 0},
9874 {0x4B, 0x6, 0x6, 0, 0},
9875 {0x4C, 0x4, 0x4, 0, 0},
9878 {0x4F, 0x26, 0x26, 1, 1},
9879 {0x50, 0x26, 0x26, 1, 1},
9880 {0x51, 0xf, 0xf, 1, 1},
9881 {0x52, 0xf, 0xf, 1, 1},
9882 {0x53, 0x44, 0x44, 0, 0},
9885 {0x56, 0x8, 0x8, 0, 0},
9886 {0x57, 0x8, 0x8, 0, 0},
9887 {0x58, 0x7, 0x7, 0, 0},
9888 {0x59, 0x22, 0x22, 0, 0},
9889 {0x5A, 0x22, 0x22, 0, 0},
9890 {0x5B, 0x2, 0x2, 0, 0},
9891 {0x5C, 0x4, 0x4, 1, 1},
9892 {0x5D, 0x7, 0x7, 0, 0},
9893 {0x5E, 0x55, 0x55, 0, 0},
9894 {0x5F, 0x23, 0x23, 0, 0},
9895 {0x60, 0x41, 0x41, 0, 0},
9896 {0x61, 0x1, 0x1, 0, 0},
9897 {0x62, 0xa, 0xa, 0, 0},
9906 {0x6B, 0xc, 0xc, 0, 0},
9913 {0x72, 0x22, 0x22, 0, 0},
9914 {0x73, 0x22, 0x22, 0, 0},
9916 {0x75, 0xa, 0xa, 0, 0},
9917 {0x76, 0x1, 0x1, 0, 0},
9918 {0x77, 0x22, 0x22, 0, 0},
9919 {0x78, 0x30, 0x30, 0, 0},
9924 {0x7D, 0x5, 0x5, 1, 1},
9948 {0xFFFF, 0, 0, 0, 0}
9951 static struct radio_regs regs_SYN_2056_rev7[] = {
9959 {0x09, 0x1, 0x1, 0, 0},
9984 {0x22, 0x60, 0x60, 0, 0},
9985 {0x23, 0x6, 0x6, 0, 0},
9986 {0x24, 0xc, 0xc, 0, 0},
9990 {0x28, 0x1, 0x1, 0, 0},
9997 {0x2F, 0x1f, 0x1f, 0, 0},
9998 {0x30, 0x15, 0x15, 0, 0},
9999 {0x31, 0xf, 0xf, 0, 0},
10000 {0x32, 0, 0, 0, 0},
10001 {0x33, 0, 0, 0, 0},
10002 {0x34, 0, 0, 0, 0},
10003 {0x35, 0, 0, 0, 0},
10004 {0x36, 0, 0, 0, 0},
10005 {0x37, 0, 0, 0, 0},
10006 {0x38, 0, 0, 0, 0},
10007 {0x39, 0, 0, 0, 0},
10008 {0x3A, 0, 0, 0, 0},
10009 {0x3B, 0, 0, 0, 0},
10010 {0x3C, 0x13, 0x13, 0, 0},
10011 {0x3D, 0xf, 0xf, 0, 0},
10012 {0x3E, 0x18, 0x18, 0, 0},
10013 {0x3F, 0, 0, 0, 0},
10014 {0x40, 0, 0, 0, 0},
10015 {0x41, 0x20, 0x20, 0, 0},
10016 {0x42, 0x20, 0x20, 0, 0},
10017 {0x43, 0, 0, 0, 0},
10018 {0x44, 0x77, 0x77, 0, 0},
10019 {0x45, 0x7, 0x7, 0, 0},
10020 {0x46, 0x1, 0x1, 0, 0},
10021 {0x47, 0x4, 0x4, 0, 0},
10022 {0x48, 0xf, 0xf, 0, 0},
10023 {0x49, 0x30, 0x30, 0, 0},
10024 {0x4A, 0x32, 0x32, 0, 0},
10025 {0x4B, 0xd, 0xd, 0, 0},
10026 {0x4C, 0xd, 0xd, 0, 0},
10027 {0x4D, 0x4, 0x4, 0, 0},
10028 {0x4E, 0x6, 0x6, 0, 0},
10029 {0x4F, 0x1, 0x1, 0, 0},
10030 {0x50, 0x1c, 0x1c, 0, 0},
10031 {0x51, 0x2, 0x2, 0, 0},
10032 {0x52, 0x2, 0x2, 0, 0},
10033 {0x53, 0xf7, 0xf7, 1, 1},
10034 {0x54, 0xb4, 0xb4, 0, 0},
10035 {0x55, 0xd2, 0xd2, 0, 0},
10036 {0x56, 0, 0, 0, 0},
10037 {0x57, 0, 0, 0, 0},
10038 {0x58, 0x4, 0x4, 0, 0},
10039 {0x59, 0x96, 0x96, 0, 0},
10040 {0x5A, 0x3e, 0x3e, 0, 0},
10041 {0x5B, 0x3e, 0x3e, 0, 0},
10042 {0x5C, 0x13, 0x13, 0, 0},
10043 {0x5D, 0x2, 0x2, 0, 0},
10044 {0x5E, 0, 0, 0, 0},
10045 {0x5F, 0x7, 0x7, 0, 0},
10046 {0x60, 0x7, 0x7, 1, 1},
10047 {0x61, 0x8, 0x8, 0, 0},
10048 {0x62, 0x3, 0x3, 0, 0},
10049 {0x63, 0, 0, 0, 0},
10050 {0x64, 0, 0, 0, 0},
10051 {0x65, 0, 0, 0, 0},
10052 {0x66, 0, 0, 0, 0},
10053 {0x67, 0, 0, 0, 0},
10054 {0x68, 0x40, 0x40, 0, 0},
10055 {0x69, 0, 0, 0, 0},
10056 {0x6A, 0, 0, 0, 0},
10057 {0x6B, 0, 0, 0, 0},
10058 {0x6C, 0, 0, 0, 0},
10059 {0x6D, 0x1, 0x1, 0, 0},
10060 {0x6E, 0, 0, 0, 0},
10061 {0x6F, 0, 0, 0, 0},
10062 {0x70, 0x60, 0x60, 0, 0},
10063 {0x71, 0x66, 0x66, 0, 0},
10064 {0x72, 0xc, 0xc, 0, 0},
10065 {0x73, 0x66, 0x66, 0, 0},
10066 {0x74, 0x8f, 0x8f, 1, 1},
10067 {0x75, 0, 0, 0, 0},
10068 {0x76, 0xcc, 0xcc, 0, 0},
10069 {0x77, 0x1, 0x1, 0, 0},
10070 {0x78, 0x66, 0x66, 0, 0},
10071 {0x79, 0x66, 0x66, 0, 0},
10072 {0x7A, 0, 0, 0, 0},
10073 {0x7B, 0, 0, 0, 0},
10074 {0x7C, 0, 0, 0, 0},
10075 {0x7D, 0, 0, 0, 0},
10076 {0x7E, 0, 0, 0, 0},
10077 {0x7F, 0, 0, 0, 0},
10078 {0x80, 0, 0, 0, 0},
10079 {0x81, 0, 0, 0, 0},
10080 {0x82, 0, 0, 0, 0},
10081 {0x83, 0, 0, 0, 0},
10082 {0x84, 0, 0, 0, 0},
10083 {0x85, 0xff, 0xff, 0, 0},
10084 {0x86, 0, 0, 0, 0},
10085 {0x87, 0, 0, 0, 0},
10086 {0x88, 0, 0, 0, 0},
10087 {0x89, 0, 0, 0, 0},
10088 {0x8A, 0, 0, 0, 0},
10089 {0x8B, 0, 0, 0, 0},
10090 {0x8C, 0, 0, 0, 0},
10091 {0x8D, 0, 0, 0, 0},
10092 {0x8E, 0, 0, 0, 0},
10093 {0x8F, 0, 0, 0, 0},
10094 {0x90, 0, 0, 0, 0},
10095 {0x91, 0, 0, 0, 0},
10096 {0x92, 0, 0, 0, 0},
10097 {0x93, 0, 0, 0, 0},
10098 {0x94, 0, 0, 0, 0},
10099 {0x95, 0, 0, 0, 0},
10100 {0x96, 0, 0, 0, 0},
10101 {0x97, 0, 0, 0, 0},
10102 {0x98, 0, 0, 0, 0},
10103 {0x99, 0, 0, 0, 0},
10104 {0x9A, 0, 0, 0, 0},
10105 {0x9B, 0, 0, 0, 0},
10106 {0x9C, 0, 0, 0, 0},
10107 {0x9D, 0, 0, 0, 0},
10108 {0x9E, 0, 0, 0, 0},
10109 {0x9F, 0x6, 0x6, 0, 0},
10110 {0xA0, 0x66, 0x66, 0, 0},
10111 {0xA1, 0x66, 0x66, 0, 0},
10112 {0xA2, 0x66, 0x66, 0, 0},
10113 {0xA3, 0x66, 0x66, 0, 0},
10114 {0xA4, 0x66, 0x66, 0, 0},
10115 {0xA5, 0x66, 0x66, 0, 0},
10116 {0xA6, 0x66, 0x66, 0, 0},
10117 {0xA7, 0x66, 0x66, 0, 0},
10118 {0xA8, 0x66, 0x66, 0, 0},
10119 {0xA9, 0x66, 0x66, 0, 0},
10120 {0xAA, 0x66, 0x66, 0, 0},
10121 {0xAB, 0x66, 0x66, 0, 0},
10122 {0xAC, 0x66, 0x66, 0, 0},
10123 {0xAD, 0x66, 0x66, 0, 0},
10124 {0xAE, 0x66, 0x66, 0, 0},
10125 {0xAF, 0x66, 0x66, 0, 0},
10126 {0xB0, 0x66, 0x66, 0, 0},
10127 {0xB1, 0x66, 0x66, 0, 0},
10128 {0xB2, 0x66, 0x66, 0, 0},
10129 {0xB3, 0xa, 0xa, 0, 0},
10130 {0xB4, 0, 0, 0, 0},
10131 {0xB5, 0, 0, 0, 0},
10132 {0xB6, 0, 0, 0, 0},
10133 {0xFFFF, 0, 0, 0, 0},
10136 static struct radio_regs regs_TX_2056_rev7[] = {
10137 {0x02, 0, 0, 0, 0},
10138 {0x03, 0, 0, 0, 0},
10139 {0x04, 0, 0, 0, 0},
10140 {0x05, 0, 0, 0, 0},
10141 {0x06, 0, 0, 0, 0},
10142 {0x07, 0, 0, 0, 0},
10143 {0x08, 0, 0, 0, 0},
10144 {0x09, 0, 0, 0, 0},
10145 {0x0A, 0, 0, 0, 0},
10146 {0x0B, 0, 0, 0, 0},
10147 {0x0C, 0, 0, 0, 0},
10148 {0x0D, 0, 0, 0, 0},
10149 {0x0E, 0, 0, 0, 0},
10150 {0x0F, 0, 0, 0, 0},
10151 {0x10, 0, 0, 0, 0},
10152 {0x11, 0, 0, 0, 0},
10153 {0x12, 0, 0, 0, 0},
10154 {0x13, 0, 0, 0, 0},
10155 {0x14, 0, 0, 0, 0},
10156 {0x15, 0, 0, 0, 0},
10157 {0x16, 0, 0, 0, 0},
10158 {0x17, 0, 0, 0, 0},
10159 {0x18, 0, 0, 0, 0},
10160 {0x19, 0, 0, 0, 0},
10161 {0x1A, 0, 0, 0, 0},
10162 {0x1B, 0, 0, 0, 0},
10163 {0x1C, 0, 0, 0, 0},
10164 {0x1D, 0, 0, 0, 0},
10165 {0x1E, 0, 0, 0, 0},
10166 {0x1F, 0, 0, 0, 0},
10167 {0x20, 0, 0, 0, 0},
10168 {0x21, 0x88, 0x88, 0, 0},
10169 {0x22, 0x88, 0x88, 0, 0},
10170 {0x23, 0x88, 0x88, 0, 0},
10171 {0x24, 0x88, 0x88, 0, 0},
10172 {0x25, 0xc, 0xc, 0, 0},
10173 {0x26, 0, 0, 0, 0},
10174 {0x27, 0x3, 0x3, 0, 0},
10175 {0x28, 0, 0, 0, 0},
10176 {0x29, 0x3, 0x3, 0, 0},
10177 {0x2A, 0x37, 0x37, 0, 0},
10178 {0x2B, 0x3, 0x3, 0, 0},
10179 {0x2C, 0, 0, 0, 0},
10180 {0x2D, 0, 0, 0, 0},
10181 {0x2E, 0x1, 0x1, 0, 0},
10182 {0x2F, 0x1, 0x1, 0, 0},
10183 {0x30, 0, 0, 0, 0},
10184 {0x31, 0, 0, 0, 0},
10185 {0x32, 0, 0, 0, 0},
10186 {0x33, 0x11, 0x11, 0, 0},
10187 {0x34, 0xee, 0xee, 1, 1},
10188 {0x35, 0, 0, 0, 0},
10189 {0x36, 0, 0, 0, 0},
10190 {0x37, 0x3, 0x3, 0, 0},
10191 {0x38, 0x50, 0x50, 1, 1},
10192 {0x39, 0, 0, 0, 0},
10193 {0x3A, 0x50, 0x50, 1, 1},
10194 {0x3B, 0, 0, 0, 0},
10195 {0x3C, 0x6e, 0x6e, 0, 0},
10196 {0x3D, 0xf0, 0xf0, 1, 1},
10197 {0x3E, 0, 0, 0, 0},
10198 {0x3F, 0, 0, 0, 0},
10199 {0x40, 0, 0, 0, 0},
10200 {0x41, 0x3, 0x3, 0, 0},
10201 {0x42, 0x3, 0x3, 0, 0},
10202 {0x43, 0, 0, 0, 0},
10203 {0x44, 0x1e, 0x1e, 0, 0},
10204 {0x45, 0, 0, 0, 0},
10205 {0x46, 0x6e, 0x6e, 0, 0},
10206 {0x47, 0xf0, 0xf0, 1, 1},
10207 {0x48, 0, 0, 0, 0},
10208 {0x49, 0x2, 0x2, 0, 0},
10209 {0x4A, 0xff, 0xff, 1, 1},
10210 {0x4B, 0xc, 0xc, 0, 0},
10211 {0x4C, 0, 0, 0, 0},
10212 {0x4D, 0x38, 0x38, 0, 0},
10213 {0x4E, 0x70, 0x70, 1, 1},
10214 {0x4F, 0x2, 0x2, 0, 0},
10215 {0x50, 0x88, 0x88, 0, 0},
10216 {0x51, 0xc, 0xc, 0, 0},
10217 {0x52, 0, 0, 0, 0},
10218 {0x53, 0x8, 0x8, 0, 0},
10219 {0x54, 0x70, 0x70, 1, 1},
10220 {0x55, 0x2, 0x2, 0, 0},
10221 {0x56, 0xff, 0xff, 1, 1},
10222 {0x57, 0, 0, 0, 0},
10223 {0x58, 0x83, 0x83, 0, 0},
10224 {0x59, 0x77, 0x77, 1, 1},
10225 {0x5A, 0, 0, 0, 0},
10226 {0x5B, 0x2, 0x2, 0, 0},
10227 {0x5C, 0x88, 0x88, 0, 0},
10228 {0x5D, 0, 0, 0, 0},
10229 {0x5E, 0x8, 0x8, 0, 0},
10230 {0x5F, 0x77, 0x77, 1, 1},
10231 {0x60, 0x1, 0x1, 0, 0},
10232 {0x61, 0, 0, 0, 0},
10233 {0x62, 0x7, 0x7, 0, 0},
10234 {0x63, 0, 0, 0, 0},
10235 {0x64, 0x7, 0x7, 0, 0},
10236 {0x65, 0, 0, 0, 0},
10237 {0x66, 0, 0, 0, 0},
10238 {0x67, 0, 0, 1, 1},
10239 {0x68, 0, 0, 0, 0},
10240 {0x69, 0xa, 0xa, 0, 0},
10241 {0x6A, 0, 0, 0, 0},
10242 {0x6B, 0, 0, 0, 0},
10243 {0x6C, 0, 0, 0, 0},
10244 {0x6D, 0, 0, 0, 0},
10245 {0x6E, 0, 0, 0, 0},
10246 {0x6F, 0, 0, 0, 0},
10247 {0x70, 0, 0, 0, 0},
10248 {0x71, 0x2, 0x2, 0, 0},
10249 {0x72, 0, 0, 0, 0},
10250 {0x73, 0, 0, 0, 0},
10251 {0x74, 0xe, 0xe, 0, 0},
10252 {0x75, 0xe, 0xe, 0, 0},
10253 {0x76, 0xe, 0xe, 0, 0},
10254 {0x77, 0x13, 0x13, 0, 0},
10255 {0x78, 0x13, 0x13, 0, 0},
10256 {0x79, 0x1b, 0x1b, 0, 0},
10257 {0x7A, 0x1b, 0x1b, 0, 0},
10258 {0x7B, 0x55, 0x55, 0, 0},
10259 {0x7C, 0x5b, 0x5b, 0, 0},
10260 {0x7D, 0x30, 0x30, 1, 1},
10261 {0x7E, 0, 0, 0, 0},
10262 {0x7F, 0, 0, 0, 0},
10263 {0x80, 0, 0, 0, 0},
10264 {0x81, 0, 0, 0, 0},
10265 {0x82, 0, 0, 0, 0},
10266 {0x83, 0, 0, 0, 0},
10267 {0x84, 0, 0, 0, 0},
10268 {0x85, 0, 0, 0, 0},
10269 {0x86, 0, 0, 0, 0},
10270 {0x87, 0, 0, 0, 0},
10271 {0x88, 0, 0, 0, 0},
10272 {0x89, 0, 0, 0, 0},
10273 {0x8A, 0, 0, 0, 0},
10274 {0x8B, 0, 0, 0, 0},
10275 {0x8C, 0, 0, 0, 0},
10276 {0x8D, 0, 0, 0, 0},
10277 {0x8E, 0, 0, 0, 0},
10278 {0x8F, 0, 0, 0, 0},
10279 {0x90, 0, 0, 0, 0},
10280 {0x91, 0, 0, 0, 0},
10281 {0x92, 0, 0, 0, 0},
10282 {0x93, 0x70, 0x70, 0, 0},
10283 {0x94, 0x70, 0x70, 0, 0},
10284 {0x95, 0x71, 0x71, 1, 1},
10285 {0x96, 0x71, 0x71, 1, 1},
10286 {0x97, 0x72, 0x72, 1, 1},
10287 {0x98, 0x73, 0x73, 1, 1},
10288 {0x99, 0x74, 0x74, 1, 1},
10289 {0x9A, 0x75, 0x75, 1, 1},
10290 {0xFFFF, 0, 0, 0, 0},
10293 static struct radio_regs regs_RX_2056_rev7[] = {
10294 {0x02, 0, 0, 0, 0},
10295 {0x03, 0, 0, 0, 0},
10296 {0x04, 0, 0, 0, 0},
10297 {0x05, 0, 0, 0, 0},
10298 {0x06, 0, 0, 0, 0},
10299 {0x07, 0, 0, 0, 0},
10300 {0x08, 0, 0, 0, 0},
10301 {0x09, 0, 0, 0, 0},
10302 {0x0A, 0, 0, 0, 0},
10303 {0x0B, 0, 0, 0, 0},
10304 {0x0C, 0, 0, 0, 0},
10305 {0x0D, 0, 0, 0, 0},
10306 {0x0E, 0, 0, 0, 0},
10307 {0x0F, 0, 0, 0, 0},
10308 {0x10, 0, 0, 0, 0},
10309 {0x11, 0, 0, 0, 0},
10310 {0x12, 0, 0, 0, 0},
10311 {0x13, 0, 0, 0, 0},
10312 {0x14, 0, 0, 0, 0},
10313 {0x15, 0, 0, 0, 0},
10314 {0x16, 0, 0, 0, 0},
10315 {0x17, 0, 0, 0, 0},
10316 {0x18, 0, 0, 0, 0},
10317 {0x19, 0, 0, 0, 0},
10318 {0x1A, 0, 0, 0, 0},
10319 {0x1B, 0, 0, 0, 0},
10320 {0x1C, 0, 0, 0, 0},
10321 {0x1D, 0, 0, 0, 0},
10322 {0x1E, 0, 0, 0, 0},
10323 {0x1F, 0, 0, 0, 0},
10324 {0x20, 0x3, 0x3, 0, 0},
10325 {0x21, 0, 0, 0, 0},
10326 {0x22, 0, 0, 0, 0},
10327 {0x23, 0x90, 0x90, 0, 0},
10328 {0x24, 0x55, 0x55, 0, 0},
10329 {0x25, 0x15, 0x15, 0, 0},
10330 {0x26, 0x5, 0x5, 0, 0},
10331 {0x27, 0x15, 0x15, 0, 0},
10332 {0x28, 0x5, 0x5, 0, 0},
10333 {0x29, 0x20, 0x20, 0, 0},
10334 {0x2A, 0x11, 0x11, 0, 0},
10335 {0x2B, 0x90, 0x90, 0, 0},
10336 {0x2C, 0, 0, 0, 0},
10337 {0x2D, 0x88, 0x88, 0, 0},
10338 {0x2E, 0x32, 0x32, 0, 0},
10339 {0x2F, 0x77, 0x77, 0, 0},
10340 {0x30, 0x17, 0x17, 1, 1},
10341 {0x31, 0xff, 0xff, 1, 1},
10342 {0x32, 0x20, 0x20, 0, 0},
10343 {0x33, 0, 0, 0, 0},
10344 {0x34, 0x88, 0x88, 0, 0},
10345 {0x35, 0x32, 0x32, 0, 0},
10346 {0x36, 0x77, 0x77, 0, 0},
10347 {0x37, 0x17, 0x17, 1, 1},
10348 {0x38, 0xf0, 0xf0, 1, 1},
10349 {0x39, 0x20, 0x20, 0, 0},
10350 {0x3A, 0x8, 0x8, 0, 0},
10351 {0x3B, 0x55, 0x55, 1, 1},
10352 {0x3C, 0, 0, 0, 0},
10353 {0x3D, 0x88, 0x88, 1, 1},
10354 {0x3E, 0, 0, 0, 0},
10355 {0x3F, 0, 0, 1, 1},
10356 {0x40, 0x7, 0x7, 1, 1},
10357 {0x41, 0x6, 0x6, 0, 0},
10358 {0x42, 0x4, 0x4, 0, 0},
10359 {0x43, 0, 0, 0, 0},
10360 {0x44, 0x8, 0x8, 0, 0},
10361 {0x45, 0x55, 0x55, 1, 1},
10362 {0x46, 0, 0, 0, 0},
10363 {0x47, 0x11, 0x11, 0, 0},
10364 {0x48, 0, 0, 0, 0},
10365 {0x49, 0, 0, 1, 1},
10366 {0x4A, 0x7, 0x7, 0, 0},
10367 {0x4B, 0x6, 0x6, 0, 0},
10368 {0x4C, 0x4, 0x4, 0, 0},
10369 {0x4D, 0, 0, 0, 0},
10370 {0x4E, 0, 0, 0, 0},
10371 {0x4F, 0x26, 0x26, 1, 1},
10372 {0x50, 0x26, 0x26, 1, 1},
10373 {0x51, 0xf, 0xf, 1, 1},
10374 {0x52, 0xf, 0xf, 1, 1},
10375 {0x53, 0x44, 0x44, 0, 0},
10376 {0x54, 0, 0, 0, 0},
10377 {0x55, 0, 0, 0, 0},
10378 {0x56, 0x8, 0x8, 0, 0},
10379 {0x57, 0x8, 0x8, 0, 0},
10380 {0x58, 0x7, 0x7, 0, 0},
10381 {0x59, 0x22, 0x22, 0, 0},
10382 {0x5A, 0x22, 0x22, 0, 0},
10383 {0x5B, 0x2, 0x2, 0, 0},
10384 {0x5C, 0x4, 0x4, 1, 1},
10385 {0x5D, 0x7, 0x7, 0, 0},
10386 {0x5E, 0x55, 0x55, 0, 0},
10387 {0x5F, 0x23, 0x23, 0, 0},
10388 {0x60, 0x41, 0x41, 0, 0},
10389 {0x61, 0x1, 0x1, 0, 0},
10390 {0x62, 0xa, 0xa, 0, 0},
10391 {0x63, 0, 0, 0, 0},
10392 {0x64, 0, 0, 0, 0},
10393 {0x65, 0, 0, 0, 0},
10394 {0x66, 0, 0, 0, 0},
10395 {0x67, 0, 0, 0, 0},
10396 {0x68, 0, 0, 0, 0},
10397 {0x69, 0, 0, 0, 0},
10398 {0x6A, 0, 0, 0, 0},
10399 {0x6B, 0xc, 0xc, 0, 0},
10400 {0x6C, 0, 0, 0, 0},
10401 {0x6D, 0, 0, 0, 0},
10402 {0x6E, 0, 0, 0, 0},
10403 {0x6F, 0, 0, 0, 0},
10404 {0x70, 0, 0, 0, 0},
10405 {0x71, 0, 0, 0, 0},
10406 {0x72, 0x22, 0x22, 0, 0},
10407 {0x73, 0x22, 0x22, 0, 0},
10408 {0x74, 0, 0, 1, 1},
10409 {0x75, 0xa, 0xa, 0, 0},
10410 {0x76, 0x1, 0x1, 0, 0},
10411 {0x77, 0x22, 0x22, 0, 0},
10412 {0x78, 0x30, 0x30, 0, 0},
10413 {0x79, 0, 0, 0, 0},
10414 {0x7A, 0, 0, 0, 0},
10415 {0x7B, 0, 0, 0, 0},
10416 {0x7C, 0, 0, 0, 0},
10417 {0x7D, 0, 0, 0, 0},
10418 {0x7E, 0, 0, 0, 0},
10419 {0x7F, 0, 0, 0, 0},
10420 {0x80, 0, 0, 0, 0},
10421 {0x81, 0, 0, 0, 0},
10422 {0x82, 0, 0, 0, 0},
10423 {0x83, 0, 0, 0, 0},
10424 {0x84, 0, 0, 0, 0},
10425 {0x85, 0, 0, 0, 0},
10426 {0x86, 0, 0, 0, 0},
10427 {0x87, 0, 0, 0, 0},
10428 {0x88, 0, 0, 0, 0},
10429 {0x89, 0, 0, 0, 0},
10430 {0x8A, 0, 0, 0, 0},
10431 {0x8B, 0, 0, 0, 0},
10432 {0x8C, 0, 0, 0, 0},
10433 {0x8D, 0, 0, 0, 0},
10434 {0x8E, 0, 0, 0, 0},
10435 {0x8F, 0, 0, 0, 0},
10436 {0x90, 0, 0, 0, 0},
10437 {0x91, 0, 0, 0, 0},
10438 {0x92, 0, 0, 0, 0},
10439 {0x93, 0, 0, 0, 0},
10440 {0x94, 0, 0, 0, 0},
10441 {0xFFFF, 0, 0, 0, 0},
10444 static struct radio_regs regs_SYN_2056_rev8[] = {
10445 {0x02, 0, 0, 0, 0},
10446 {0x03, 0, 0, 0, 0},
10447 {0x04, 0, 0, 0, 0},
10448 {0x05, 0, 0, 0, 0},
10449 {0x06, 0, 0, 0, 0},
10450 {0x07, 0, 0, 0, 0},
10451 {0x08, 0, 0, 0, 0},
10452 {0x09, 0x1, 0x1, 0, 0},
10453 {0x0A, 0, 0, 0, 0},
10454 {0x0B, 0, 0, 0, 0},
10455 {0x0C, 0, 0, 0, 0},
10456 {0x0D, 0, 0, 0, 0},
10457 {0x0E, 0, 0, 0, 0},
10458 {0x0F, 0, 0, 0, 0},
10459 {0x10, 0, 0, 0, 0},
10460 {0x11, 0, 0, 0, 0},
10461 {0x12, 0, 0, 0, 0},
10462 {0x13, 0, 0, 0, 0},
10463 {0x14, 0, 0, 0, 0},
10464 {0x15, 0, 0, 0, 0},
10465 {0x16, 0, 0, 0, 0},
10466 {0x17, 0, 0, 0, 0},
10467 {0x18, 0, 0, 0, 0},
10468 {0x19, 0, 0, 0, 0},
10469 {0x1A, 0, 0, 0, 0},
10470 {0x1B, 0, 0, 0, 0},
10471 {0x1C, 0, 0, 0, 0},
10472 {0x1D, 0, 0, 0, 0},
10473 {0x1E, 0, 0, 0, 0},
10474 {0x1F, 0, 0, 0, 0},
10475 {0x20, 0, 0, 0, 0},
10476 {0x21, 0, 0, 0, 0},
10477 {0x22, 0x60, 0x60, 0, 0},
10478 {0x23, 0x6, 0x6, 0, 0},
10479 {0x24, 0xc, 0xc, 0, 0},
10480 {0x25, 0, 0, 0, 0},
10481 {0x26, 0, 0, 0, 0},
10482 {0x27, 0, 0, 0, 0},
10483 {0x28, 0x1, 0x1, 0, 0},
10484 {0x29, 0, 0, 0, 0},
10485 {0x2A, 0, 0, 0, 0},
10486 {0x2B, 0, 0, 0, 0},
10487 {0x2C, 0, 0, 0, 0},
10488 {0x2D, 0, 0, 0, 0},
10489 {0x2E, 0, 0, 0, 0},
10490 {0x2F, 0x1f, 0x1f, 0, 0},
10491 {0x30, 0x15, 0x15, 0, 0},
10492 {0x31, 0xf, 0xf, 0, 0},
10493 {0x32, 0, 0, 0, 0},
10494 {0x33, 0, 0, 0, 0},
10495 {0x34, 0, 0, 0, 0},
10496 {0x35, 0, 0, 0, 0},
10497 {0x36, 0, 0, 0, 0},
10498 {0x37, 0, 0, 0, 0},
10499 {0x38, 0, 0, 0, 0},
10500 {0x39, 0, 0, 0, 0},
10501 {0x3A, 0, 0, 0, 0},
10502 {0x3B, 0, 0, 0, 0},
10503 {0x3C, 0x13, 0x13, 0, 0},
10504 {0x3D, 0xf, 0xf, 0, 0},
10505 {0x3E, 0x18, 0x18, 0, 0},
10506 {0x3F, 0, 0, 0, 0},
10507 {0x40, 0, 0, 0, 0},
10508 {0x41, 0x20, 0x20, 0, 0},
10509 {0x42, 0x20, 0x20, 0, 0},
10510 {0x43, 0, 0, 0, 0},
10511 {0x44, 0x77, 0x77, 0, 0},
10512 {0x45, 0x7, 0x7, 0, 0},
10513 {0x46, 0x1, 0x1, 0, 0},
10514 {0x47, 0x4, 0x4, 0, 0},
10515 {0x48, 0xf, 0xf, 0, 0},
10516 {0x49, 0x30, 0x30, 0, 0},
10517 {0x4A, 0x32, 0x32, 0, 0},
10518 {0x4B, 0xd, 0xd, 0, 0},
10519 {0x4C, 0xd, 0xd, 0, 0},
10520 {0x4D, 0x4, 0x4, 0, 0},
10521 {0x4E, 0x6, 0x6, 0, 0},
10522 {0x4F, 0x1, 0x1, 0, 0},
10523 {0x50, 0x1c, 0x1c, 0, 0},
10524 {0x51, 0x2, 0x2, 0, 0},
10525 {0x52, 0x2, 0x2, 0, 0},
10526 {0x53, 0xf7, 0xf7, 1, 1},
10527 {0x54, 0xb4, 0xb4, 0, 0},
10528 {0x55, 0xd2, 0xd2, 0, 0},
10529 {0x56, 0, 0, 0, 0},
10530 {0x57, 0, 0, 0, 0},
10531 {0x58, 0x4, 0x4, 0, 0},
10532 {0x59, 0x96, 0x96, 0, 0},
10533 {0x5A, 0x3e, 0x3e, 0, 0},
10534 {0x5B, 0x3e, 0x3e, 0, 0},
10535 {0x5C, 0x13, 0x13, 0, 0},
10536 {0x5D, 0x2, 0x2, 0, 0},
10537 {0x5E, 0, 0, 0, 0},
10538 {0x5F, 0x7, 0x7, 0, 0},
10539 {0x60, 0x7, 0x7, 1, 1},
10540 {0x61, 0x8, 0x8, 0, 0},
10541 {0x62, 0x3, 0x3, 0, 0},
10542 {0x63, 0, 0, 0, 0},
10543 {0x64, 0, 0, 0, 0},
10544 {0x65, 0, 0, 0, 0},
10545 {0x66, 0, 0, 0, 0},
10546 {0x67, 0, 0, 0, 0},
10547 {0x68, 0x40, 0x40, 0, 0},
10548 {0x69, 0, 0, 0, 0},
10549 {0x6A, 0, 0, 0, 0},
10550 {0x6B, 0, 0, 0, 0},
10551 {0x6C, 0, 0, 0, 0},
10552 {0x6D, 0x1, 0x1, 0, 0},
10553 {0x6E, 0, 0, 0, 0},
10554 {0x6F, 0, 0, 0, 0},
10555 {0x70, 0x60, 0x60, 0, 0},
10556 {0x71, 0x66, 0x66, 0, 0},
10557 {0x72, 0xc, 0xc, 0, 0},
10558 {0x73, 0x66, 0x66, 0, 0},
10559 {0x74, 0x8f, 0x8f, 1, 1},
10560 {0x75, 0, 0, 0, 0},
10561 {0x76, 0xcc, 0xcc, 0, 0},
10562 {0x77, 0x1, 0x1, 0, 0},
10563 {0x78, 0x66, 0x66, 0, 0},
10564 {0x79, 0x66, 0x66, 0, 0},
10565 {0x7A, 0, 0, 0, 0},
10566 {0x7B, 0, 0, 0, 0},
10567 {0x7C, 0, 0, 0, 0},
10568 {0x7D, 0, 0, 0, 0},
10569 {0x7E, 0, 0, 0, 0},
10570 {0x7F, 0, 0, 0, 0},
10571 {0x80, 0, 0, 0, 0},
10572 {0x81, 0, 0, 0, 0},
10573 {0x82, 0, 0, 0, 0},
10574 {0x83, 0, 0, 0, 0},
10575 {0x84, 0, 0, 0, 0},
10576 {0x85, 0xff, 0xff, 0, 0},
10577 {0x86, 0, 0, 0, 0},
10578 {0x87, 0, 0, 0, 0},
10579 {0x88, 0, 0, 0, 0},
10580 {0x89, 0, 0, 0, 0},
10581 {0x8A, 0, 0, 0, 0},
10582 {0x8B, 0, 0, 0, 0},
10583 {0x8C, 0, 0, 0, 0},
10584 {0x8D, 0, 0, 0, 0},
10585 {0x8E, 0, 0, 0, 0},
10586 {0x8F, 0, 0, 0, 0},
10587 {0x90, 0, 0, 0, 0},
10588 {0x91, 0, 0, 0, 0},
10589 {0x92, 0, 0, 0, 0},
10590 {0x93, 0, 0, 0, 0},
10591 {0x94, 0, 0, 0, 0},
10592 {0x95, 0, 0, 0, 0},
10593 {0x96, 0, 0, 0, 0},
10594 {0x97, 0, 0, 0, 0},
10595 {0x98, 0, 0, 0, 0},
10596 {0x99, 0, 0, 0, 0},
10597 {0x9A, 0, 0, 0, 0},
10598 {0x9B, 0, 0, 0, 0},
10599 {0x9C, 0, 0, 0, 0},
10600 {0x9D, 0, 0, 0, 0},
10601 {0x9E, 0, 0, 0, 0},
10602 {0x9F, 0x6, 0x6, 0, 0},
10603 {0xA0, 0x66, 0x66, 0, 0},
10604 {0xA1, 0x66, 0x66, 0, 0},
10605 {0xA2, 0x66, 0x66, 0, 0},
10606 {0xA3, 0x66, 0x66, 0, 0},
10607 {0xA4, 0x66, 0x66, 0, 0},
10608 {0xA5, 0x66, 0x66, 0, 0},
10609 {0xA6, 0x66, 0x66, 0, 0},
10610 {0xA7, 0x66, 0x66, 0, 0},
10611 {0xA8, 0x66, 0x66, 0, 0},
10612 {0xA9, 0x66, 0x66, 0, 0},
10613 {0xAA, 0x66, 0x66, 0, 0},
10614 {0xAB, 0x66, 0x66, 0, 0},
10615 {0xAC, 0x66, 0x66, 0, 0},
10616 {0xAD, 0x66, 0x66, 0, 0},
10617 {0xAE, 0x66, 0x66, 0, 0},
10618 {0xAF, 0x66, 0x66, 0, 0},
10619 {0xB0, 0x66, 0x66, 0, 0},
10620 {0xB1, 0x66, 0x66, 0, 0},
10621 {0xB2, 0x66, 0x66, 0, 0},
10622 {0xB3, 0xa, 0xa, 0, 0},
10623 {0xB4, 0, 0, 0, 0},
10624 {0xB5, 0, 0, 0, 0},
10625 {0xB6, 0, 0, 0, 0},
10626 {0xFFFF, 0, 0, 0, 0},
10629 static struct radio_regs regs_TX_2056_rev8[] = {
10630 {0x02, 0, 0, 0, 0},
10631 {0x03, 0, 0, 0, 0},
10632 {0x04, 0, 0, 0, 0},
10633 {0x05, 0, 0, 0, 0},
10634 {0x06, 0, 0, 0, 0},
10635 {0x07, 0, 0, 0, 0},
10636 {0x08, 0, 0, 0, 0},
10637 {0x09, 0, 0, 0, 0},
10638 {0x0A, 0, 0, 0, 0},
10639 {0x0B, 0, 0, 0, 0},
10640 {0x0C, 0, 0, 0, 0},
10641 {0x0D, 0, 0, 0, 0},
10642 {0x0E, 0, 0, 0, 0},
10643 {0x0F, 0, 0, 0, 0},
10644 {0x10, 0, 0, 0, 0},
10645 {0x11, 0, 0, 0, 0},
10646 {0x12, 0, 0, 0, 0},
10647 {0x13, 0, 0, 0, 0},
10648 {0x14, 0, 0, 0, 0},
10649 {0x15, 0, 0, 0, 0},
10650 {0x16, 0, 0, 0, 0},
10651 {0x17, 0, 0, 0, 0},
10652 {0x18, 0, 0, 0, 0},
10653 {0x19, 0, 0, 0, 0},
10654 {0x1A, 0, 0, 0, 0},
10655 {0x1B, 0, 0, 0, 0},
10656 {0x1C, 0, 0, 0, 0},
10657 {0x1D, 0, 0, 0, 0},
10658 {0x1E, 0, 0, 0, 0},
10659 {0x1F, 0, 0, 0, 0},
10660 {0x20, 0, 0, 0, 0},
10661 {0x21, 0x88, 0x88, 0, 0},
10662 {0x22, 0x88, 0x88, 0, 0},
10663 {0x23, 0x88, 0x88, 0, 0},
10664 {0x24, 0x88, 0x88, 0, 0},
10665 {0x25, 0xc, 0xc, 0, 0},
10666 {0x26, 0, 0, 0, 0},
10667 {0x27, 0x3, 0x3, 0, 0},
10668 {0x28, 0, 0, 0, 0},
10669 {0x29, 0x3, 0x3, 0, 0},
10670 {0x2A, 0x37, 0x37, 0, 0},
10671 {0x2B, 0x3, 0x3, 0, 0},
10672 {0x2C, 0, 0, 0, 0},
10673 {0x2D, 0, 0, 0, 0},
10674 {0x2E, 0x1, 0x1, 0, 0},
10675 {0x2F, 0x1, 0x1, 0, 0},
10676 {0x30, 0, 0, 0, 0},
10677 {0x31, 0, 0, 0, 0},
10678 {0x32, 0, 0, 0, 0},
10679 {0x33, 0x11, 0x11, 0, 0},
10680 {0x34, 0xee, 0xee, 1, 1},
10681 {0x35, 0, 0, 0, 0},
10682 {0x36, 0, 0, 0, 0},
10683 {0x37, 0x3, 0x3, 0, 0},
10684 {0x38, 0x50, 0x50, 1, 1},
10685 {0x39, 0, 0, 0, 0},
10686 {0x3A, 0x50, 0x50, 1, 1},
10687 {0x3B, 0, 0, 0, 0},
10688 {0x3C, 0x6e, 0x6e, 0, 0},
10689 {0x3D, 0xf0, 0xf0, 1, 1},
10690 {0x3E, 0, 0, 0, 0},
10691 {0x3F, 0, 0, 0, 0},
10692 {0x40, 0, 0, 0, 0},
10693 {0x41, 0x3, 0x3, 0, 0},
10694 {0x42, 0x3, 0x3, 0, 0},
10695 {0x43, 0, 0, 0, 0},
10696 {0x44, 0x1e, 0x1e, 0, 0},
10697 {0x45, 0, 0, 0, 0},
10698 {0x46, 0x6e, 0x6e, 0, 0},
10699 {0x47, 0xf0, 0xf0, 1, 1},
10700 {0x48, 0, 0, 0, 0},
10701 {0x49, 0x2, 0x2, 0, 0},
10702 {0x4A, 0xff, 0xff, 1, 1},
10703 {0x4B, 0xc, 0xc, 0, 0},
10704 {0x4C, 0, 0, 0, 0},
10705 {0x4D, 0x38, 0x38, 0, 0},
10706 {0x4E, 0x70, 0x70, 1, 1},
10707 {0x4F, 0x2, 0x2, 0, 0},
10708 {0x50, 0x88, 0x88, 0, 0},
10709 {0x51, 0xc, 0xc, 0, 0},
10710 {0x52, 0, 0, 0, 0},
10711 {0x53, 0x8, 0x8, 0, 0},
10712 {0x54, 0x70, 0x70, 1, 1},
10713 {0x55, 0x2, 0x2, 0, 0},
10714 {0x56, 0xff, 0xff, 1, 1},
10715 {0x57, 0, 0, 0, 0},
10716 {0x58, 0x83, 0x83, 0, 0},
10717 {0x59, 0x77, 0x77, 1, 1},
10718 {0x5A, 0, 0, 0, 0},
10719 {0x5B, 0x2, 0x2, 0, 0},
10720 {0x5C, 0x88, 0x88, 0, 0},
10721 {0x5D, 0, 0, 0, 0},
10722 {0x5E, 0x8, 0x8, 0, 0},
10723 {0x5F, 0x77, 0x77, 1, 1},
10724 {0x60, 0x1, 0x1, 0, 0},
10725 {0x61, 0, 0, 0, 0},
10726 {0x62, 0x7, 0x7, 0, 0},
10727 {0x63, 0, 0, 0, 0},
10728 {0x64, 0x7, 0x7, 0, 0},
10729 {0x65, 0, 0, 0, 0},
10730 {0x66, 0, 0, 0, 0},
10731 {0x67, 0, 0, 1, 1},
10732 {0x68, 0, 0, 0, 0},
10733 {0x69, 0xa, 0xa, 0, 0},
10734 {0x6A, 0, 0, 0, 0},
10735 {0x6B, 0, 0, 0, 0},
10736 {0x6C, 0, 0, 0, 0},
10737 {0x6D, 0, 0, 0, 0},
10738 {0x6E, 0, 0, 0, 0},
10739 {0x6F, 0, 0, 0, 0},
10740 {0x70, 0, 0, 0, 0},
10741 {0x71, 0x2, 0x2, 0, 0},
10742 {0x72, 0, 0, 0, 0},
10743 {0x73, 0, 0, 0, 0},
10744 {0x74, 0xe, 0xe, 0, 0},
10745 {0x75, 0xe, 0xe, 0, 0},
10746 {0x76, 0xe, 0xe, 0, 0},
10747 {0x77, 0x13, 0x13, 0, 0},
10748 {0x78, 0x13, 0x13, 0, 0},
10749 {0x79, 0x1b, 0x1b, 0, 0},
10750 {0x7A, 0x1b, 0x1b, 0, 0},
10751 {0x7B, 0x55, 0x55, 0, 0},
10752 {0x7C, 0x5b, 0x5b, 0, 0},
10753 {0x7D, 0x30, 0x30, 1, 1},
10754 {0x7E, 0, 0, 0, 0},
10755 {0x7F, 0, 0, 0, 0},
10756 {0x80, 0, 0, 0, 0},
10757 {0x81, 0, 0, 0, 0},
10758 {0x82, 0, 0, 0, 0},
10759 {0x83, 0, 0, 0, 0},
10760 {0x84, 0, 0, 0, 0},
10761 {0x85, 0, 0, 0, 0},
10762 {0x86, 0, 0, 0, 0},
10763 {0x87, 0, 0, 0, 0},
10764 {0x88, 0, 0, 0, 0},
10765 {0x89, 0, 0, 0, 0},
10766 {0x8A, 0, 0, 0, 0},
10767 {0x8B, 0, 0, 0, 0},
10768 {0x8C, 0, 0, 0, 0},
10769 {0x8D, 0, 0, 0, 0},
10770 {0x8E, 0, 0, 0, 0},
10771 {0x8F, 0, 0, 0, 0},
10772 {0x90, 0, 0, 0, 0},
10773 {0x91, 0, 0, 0, 0},
10774 {0x92, 0, 0, 0, 0},
10775 {0x93, 0x70, 0x70, 0, 0},
10776 {0x94, 0x70, 0x70, 0, 0},
10777 {0x95, 0x70, 0x70, 0, 0},
10778 {0x96, 0x70, 0x70, 0, 0},
10779 {0x97, 0x70, 0x70, 0, 0},
10780 {0x98, 0x70, 0x70, 0, 0},
10781 {0x99, 0x70, 0x70, 0, 0},
10782 {0x9A, 0x70, 0x70, 0, 0},
10783 {0xFFFF, 0, 0, 0, 0},
10786 static struct radio_regs regs_RX_2056_rev8[] = {
10787 {0x02, 0, 0, 0, 0},
10788 {0x03, 0, 0, 0, 0},
10789 {0x04, 0, 0, 0, 0},
10790 {0x05, 0, 0, 0, 0},
10791 {0x06, 0, 0, 0, 0},
10792 {0x07, 0, 0, 0, 0},
10793 {0x08, 0, 0, 0, 0},
10794 {0x09, 0, 0, 0, 0},
10795 {0x0A, 0, 0, 0, 0},
10796 {0x0B, 0, 0, 0, 0},
10797 {0x0C, 0, 0, 0, 0},
10798 {0x0D, 0, 0, 0, 0},
10799 {0x0E, 0, 0, 0, 0},
10800 {0x0F, 0, 0, 0, 0},
10801 {0x10, 0, 0, 0, 0},
10802 {0x11, 0, 0, 0, 0},
10803 {0x12, 0, 0, 0, 0},
10804 {0x13, 0, 0, 0, 0},
10805 {0x14, 0, 0, 0, 0},
10806 {0x15, 0, 0, 0, 0},
10807 {0x16, 0, 0, 0, 0},
10808 {0x17, 0, 0, 0, 0},
10809 {0x18, 0, 0, 0, 0},
10810 {0x19, 0, 0, 0, 0},
10811 {0x1A, 0, 0, 0, 0},
10812 {0x1B, 0, 0, 0, 0},
10813 {0x1C, 0, 0, 0, 0},
10814 {0x1D, 0, 0, 0, 0},
10815 {0x1E, 0, 0, 0, 0},
10816 {0x1F, 0, 0, 0, 0},
10817 {0x20, 0x3, 0x3, 0, 0},
10818 {0x21, 0, 0, 0, 0},
10819 {0x22, 0, 0, 0, 0},
10820 {0x23, 0x90, 0x90, 0, 0},
10821 {0x24, 0x55, 0x55, 0, 0},
10822 {0x25, 0x15, 0x15, 0, 0},
10823 {0x26, 0x5, 0x5, 0, 0},
10824 {0x27, 0x15, 0x15, 0, 0},
10825 {0x28, 0x5, 0x5, 0, 0},
10826 {0x29, 0x20, 0x20, 0, 0},
10827 {0x2A, 0x11, 0x11, 0, 0},
10828 {0x2B, 0x90, 0x90, 0, 0},
10829 {0x2C, 0, 0, 0, 0},
10830 {0x2D, 0x88, 0x88, 0, 0},
10831 {0x2E, 0x32, 0x32, 0, 0},
10832 {0x2F, 0x77, 0x77, 0, 0},
10833 {0x30, 0x17, 0x17, 1, 1},
10834 {0x31, 0xff, 0xff, 1, 1},
10835 {0x32, 0x20, 0x20, 0, 0},
10836 {0x33, 0, 0, 0, 0},
10837 {0x34, 0x88, 0x88, 0, 0},
10838 {0x35, 0x32, 0x32, 0, 0},
10839 {0x36, 0x77, 0x77, 0, 0},
10840 {0x37, 0x17, 0x17, 1, 1},
10841 {0x38, 0xf0, 0xf0, 1, 1},
10842 {0x39, 0x20, 0x20, 0, 0},
10843 {0x3A, 0x8, 0x8, 0, 0},
10844 {0x3B, 0x55, 0x55, 1, 1},
10845 {0x3C, 0, 0, 0, 0},
10846 {0x3D, 0x88, 0x88, 1, 1},
10847 {0x3E, 0, 0, 0, 0},
10848 {0x3F, 0x44, 0x44, 0, 0},
10849 {0x40, 0x7, 0x7, 1, 1},
10850 {0x41, 0x6, 0x6, 0, 0},
10851 {0x42, 0x4, 0x4, 0, 0},
10852 {0x43, 0, 0, 0, 0},
10853 {0x44, 0x8, 0x8, 0, 0},
10854 {0x45, 0x55, 0x55, 1, 1},
10855 {0x46, 0, 0, 0, 0},
10856 {0x47, 0x11, 0x11, 0, 0},
10857 {0x48, 0, 0, 0, 0},
10858 {0x49, 0x44, 0x44, 0, 0},
10859 {0x4A, 0x7, 0x7, 0, 0},
10860 {0x4B, 0x6, 0x6, 0, 0},
10861 {0x4C, 0x4, 0x4, 0, 0},
10862 {0x4D, 0, 0, 0, 0},
10863 {0x4E, 0, 0, 0, 0},
10864 {0x4F, 0x26, 0x26, 1, 1},
10865 {0x50, 0x26, 0x26, 1, 1},
10866 {0x51, 0xf, 0xf, 1, 1},
10867 {0x52, 0xf, 0xf, 1, 1},
10868 {0x53, 0x44, 0x44, 0, 0},
10869 {0x54, 0, 0, 0, 0},
10870 {0x55, 0, 0, 0, 0},
10871 {0x56, 0x8, 0x8, 0, 0},
10872 {0x57, 0x8, 0x8, 0, 0},
10873 {0x58, 0x7, 0x7, 0, 0},
10874 {0x59, 0x22, 0x22, 0, 0},
10875 {0x5A, 0x22, 0x22, 0, 0},
10876 {0x5B, 0x2, 0x2, 0, 0},
10877 {0x5C, 0x4, 0x4, 1, 1},
10878 {0x5D, 0x7, 0x7, 0, 0},
10879 {0x5E, 0x55, 0x55, 0, 0},
10880 {0x5F, 0x23, 0x23, 0, 0},
10881 {0x60, 0x41, 0x41, 0, 0},
10882 {0x61, 0x1, 0x1, 0, 0},
10883 {0x62, 0xa, 0xa, 0, 0},
10884 {0x63, 0, 0, 0, 0},
10885 {0x64, 0, 0, 0, 0},
10886 {0x65, 0, 0, 0, 0},
10887 {0x66, 0, 0, 0, 0},
10888 {0x67, 0, 0, 0, 0},
10889 {0x68, 0, 0, 0, 0},
10890 {0x69, 0, 0, 0, 0},
10891 {0x6A, 0, 0, 0, 0},
10892 {0x6B, 0xc, 0xc, 0, 0},
10893 {0x6C, 0, 0, 0, 0},
10894 {0x6D, 0, 0, 0, 0},
10895 {0x6E, 0, 0, 0, 0},
10896 {0x6F, 0, 0, 0, 0},
10897 {0x70, 0, 0, 0, 0},
10898 {0x71, 0, 0, 0, 0},
10899 {0x72, 0x22, 0x22, 0, 0},
10900 {0x73, 0x22, 0x22, 0, 0},
10901 {0x74, 0, 0, 1, 1},
10902 {0x75, 0xa, 0xa, 0, 0},
10903 {0x76, 0x1, 0x1, 0, 0},
10904 {0x77, 0x22, 0x22, 0, 0},
10905 {0x78, 0x30, 0x30, 0, 0},
10906 {0x79, 0, 0, 0, 0},
10907 {0x7A, 0, 0, 0, 0},
10908 {0x7B, 0, 0, 0, 0},
10909 {0x7C, 0, 0, 0, 0},
10910 {0x7D, 0x5, 0x5, 1, 1},
10911 {0x7E, 0, 0, 0, 0},
10912 {0x7F, 0, 0, 0, 0},
10913 {0x80, 0, 0, 0, 0},
10914 {0x81, 0, 0, 0, 0},
10915 {0x82, 0, 0, 0, 0},
10916 {0x83, 0, 0, 0, 0},
10917 {0x84, 0, 0, 0, 0},
10918 {0x85, 0, 0, 0, 0},
10919 {0x86, 0, 0, 0, 0},
10920 {0x87, 0, 0, 0, 0},
10921 {0x88, 0, 0, 0, 0},
10922 {0x89, 0, 0, 0, 0},
10923 {0x8A, 0, 0, 0, 0},
10924 {0x8B, 0, 0, 0, 0},
10925 {0x8C, 0, 0, 0, 0},
10926 {0x8D, 0, 0, 0, 0},
10927 {0x8E, 0, 0, 0, 0},
10928 {0x8F, 0, 0, 0, 0},
10929 {0x90, 0, 0, 0, 0},
10930 {0x91, 0, 0, 0, 0},
10931 {0x92, 0, 0, 0, 0},
10932 {0x93, 0, 0, 0, 0},
10933 {0x94, 0, 0, 0, 0},
10934 {0xFFFF, 0, 0, 0, 0},
10937 static const struct radio_regs regs_SYN_2056_rev11[] = {
10938 {0x02, 0, 0, 0, 0},
10939 {0x03, 0, 0, 0, 0},
10940 {0x04, 0, 0, 0, 0},
10941 {0x05, 0, 0, 0, 0},
10942 {0x06, 0, 0, 0, 0},
10943 {0x07, 0, 0, 0, 0},
10944 {0x08, 0, 0, 0, 0},
10945 {0x09, 0x1, 0x1, 0, 0},
10946 {0x0A, 0, 0, 0, 0},
10947 {0x0B, 0, 0, 0, 0},
10948 {0x0C, 0, 0, 0, 0},
10949 {0x0D, 0, 0, 0, 0},
10950 {0x0E, 0, 0, 0, 0},
10951 {0x0F, 0, 0, 0, 0},
10952 {0x10, 0, 0, 0, 0},
10953 {0x11, 0, 0, 0, 0},
10954 {0x12, 0, 0, 0, 0},
10955 {0x13, 0, 0, 0, 0},
10956 {0x14, 0, 0, 0, 0},
10957 {0x15, 0, 0, 0, 0},
10958 {0x16, 0, 0, 0, 0},
10959 {0x17, 0, 0, 0, 0},
10960 {0x18, 0, 0, 0, 0},
10961 {0x19, 0, 0, 0, 0},
10962 {0x1A, 0, 0, 0, 0},
10963 {0x1B, 0, 0, 0, 0},
10964 {0x1C, 0, 0, 0, 0},
10965 {0x1D, 0, 0, 0, 0},
10966 {0x1E, 0, 0, 0, 0},
10967 {0x1F, 0, 0, 0, 0},
10968 {0x20, 0, 0, 0, 0},
10969 {0x21, 0, 0, 0, 0},
10970 {0x22, 0x60, 0x60, 0, 0},
10971 {0x23, 0x6, 0x6, 0, 0},
10972 {0x24, 0xc, 0xc, 0, 0},
10973 {0x25, 0, 0, 0, 0},
10974 {0x26, 0, 0, 0, 0},
10975 {0x27, 0, 0, 0, 0},
10976 {0x28, 0x1, 0x1, 0, 0},
10977 {0x29, 0, 0, 0, 0},
10978 {0x2A, 0, 0, 0, 0},
10979 {0x2B, 0, 0, 0, 0},
10980 {0x2C, 0, 0, 0, 0},
10981 {0x2D, 0, 0, 0, 0},
10982 {0x2E, 0, 0, 0, 0},
10983 {0x2F, 0x1f, 0x1f, 0, 0},
10984 {0x30, 0x15, 0x15, 0, 0},
10985 {0x31, 0xf, 0xf, 0, 0},
10986 {0x32, 0, 0, 0, 0},
10987 {0x33, 0, 0, 0, 0},
10988 {0x34, 0, 0, 0, 0},
10989 {0x35, 0, 0, 0, 0},
10990 {0x36, 0, 0, 0, 0},
10991 {0x37, 0, 0, 0, 0},
10992 {0x38, 0, 0, 0, 0},
10993 {0x39, 0, 0, 0, 0},
10994 {0x3A, 0, 0, 0, 0},
10995 {0x3B, 0, 0, 0, 0},
10996 {0x3C, 0x13, 0x13, 0, 0},
10997 {0x3D, 0xf, 0xf, 0, 0},
10998 {0x3E, 0x18, 0x18, 0, 0},
10999 {0x3F, 0, 0, 0, 0},
11000 {0x40, 0, 0, 0, 0},
11001 {0x41, 0x20, 0x20, 0, 0},
11002 {0x42, 0x20, 0x20, 0, 0},
11003 {0x43, 0, 0, 0, 0},
11004 {0x44, 0x77, 0x77, 0, 0},
11005 {0x45, 0x7, 0x7, 0, 0},
11006 {0x46, 0x1, 0x1, 0, 0},
11007 {0x47, 0x6, 0x6, 1, 1},
11008 {0x48, 0xf, 0xf, 0, 0},
11009 {0x49, 0x3f, 0x3f, 1, 1},
11010 {0x4A, 0x32, 0x32, 0, 0},
11011 {0x4B, 0x6, 0x6, 1, 1},
11012 {0x4C, 0x6, 0x6, 1, 1},
11013 {0x4D, 0x4, 0x4, 0, 0},
11014 {0x4E, 0x2b, 0x2b, 1, 1},
11015 {0x4F, 0x1, 0x1, 0, 0},
11016 {0x50, 0x1c, 0x1c, 0, 0},
11017 {0x51, 0x2, 0x2, 0, 0},
11018 {0x52, 0x2, 0x2, 0, 0},
11019 {0x53, 0xf7, 0xf7, 1, 1},
11020 {0x54, 0xb4, 0xb4, 0, 0},
11021 {0x55, 0xd2, 0xd2, 0, 0},
11022 {0x56, 0, 0, 0, 0},
11023 {0x57, 0, 0, 0, 0},
11024 {0x58, 0x4, 0x4, 0, 0},
11025 {0x59, 0x96, 0x96, 0, 0},
11026 {0x5A, 0x3e, 0x3e, 0, 0},
11027 {0x5B, 0x3e, 0x3e, 0, 0},
11028 {0x5C, 0x13, 0x13, 0, 0},
11029 {0x5D, 0x2, 0x2, 0, 0},
11030 {0x5E, 0, 0, 0, 0},
11031 {0x5F, 0x7, 0x7, 0, 0},
11032 {0x60, 0x7, 0x7, 1, 1},
11033 {0x61, 0x8, 0x8, 0, 0},
11034 {0x62, 0x3, 0x3, 0, 0},
11035 {0x63, 0, 0, 0, 0},
11036 {0x64, 0, 0, 0, 0},
11037 {0x65, 0, 0, 0, 0},
11038 {0x66, 0, 0, 0, 0},
11039 {0x67, 0, 0, 0, 0},
11040 {0x68, 0x40, 0x40, 0, 0},
11041 {0x69, 0, 0, 0, 0},
11042 {0x6A, 0, 0, 0, 0},
11043 {0x6B, 0, 0, 0, 0},
11044 {0x6C, 0, 0, 0, 0},
11045 {0x6D, 0x1, 0x1, 0, 0},
11046 {0x6E, 0, 0, 0, 0},
11047 {0x6F, 0, 0, 0, 0},
11048 {0x70, 0x60, 0x60, 0, 0},
11049 {0x71, 0x66, 0x66, 0, 0},
11050 {0x72, 0xc, 0xc, 0, 0},
11051 {0x73, 0x66, 0x66, 0, 0},
11052 {0x74, 0x8f, 0x8f, 1, 1},
11053 {0x75, 0, 0, 0, 0},
11054 {0x76, 0xcc, 0xcc, 0, 0},
11055 {0x77, 0x1, 0x1, 0, 0},
11056 {0x78, 0x66, 0x66, 0, 0},
11057 {0x79, 0x66, 0x66, 0, 0},
11058 {0x7A, 0, 0, 0, 0},
11059 {0x7B, 0, 0, 0, 0},
11060 {0x7C, 0, 0, 0, 0},
11061 {0x7D, 0, 0, 0, 0},
11062 {0x7E, 0, 0, 0, 0},
11063 {0x7F, 0, 0, 0, 0},
11064 {0x80, 0, 0, 0, 0},
11065 {0x81, 0, 0, 0, 0},
11066 {0x82, 0, 0, 0, 0},
11067 {0x83, 0, 0, 0, 0},
11068 {0x84, 0, 0, 0, 0},
11069 {0x85, 0xff, 0xff, 0, 0},
11070 {0x86, 0, 0, 0, 0},
11071 {0x87, 0, 0, 0, 0},
11072 {0x88, 0, 0, 0, 0},
11073 {0x89, 0, 0, 0, 0},
11074 {0x8A, 0, 0, 0, 0},
11075 {0x8B, 0, 0, 0, 0},
11076 {0x8C, 0, 0, 0, 0},
11077 {0x8D, 0, 0, 0, 0},
11078 {0x8E, 0, 0, 0, 0},
11079 {0x8F, 0, 0, 0, 0},
11080 {0x90, 0, 0, 0, 0},
11081 {0x91, 0, 0, 0, 0},
11082 {0x92, 0, 0, 0, 0},
11083 {0x93, 0, 0, 0, 0},
11084 {0x94, 0, 0, 0, 0},
11085 {0x95, 0, 0, 0, 0},
11086 {0x96, 0, 0, 0, 0},
11087 {0x97, 0, 0, 0, 0},
11088 {0x98, 0, 0, 0, 0},
11089 {0x99, 0, 0, 0, 0},
11090 {0x9A, 0, 0, 0, 0},
11091 {0x9B, 0, 0, 0, 0},
11092 {0x9C, 0, 0, 0, 0},
11093 {0x9D, 0, 0, 0, 0},
11094 {0x9E, 0, 0, 0, 0},
11095 {0x9F, 0x6, 0x6, 0, 0},
11096 {0xA0, 0x66, 0x66, 0, 0},
11097 {0xA1, 0x66, 0x66, 0, 0},
11098 {0xA2, 0x66, 0x66, 0, 0},
11099 {0xA3, 0x66, 0x66, 0, 0},
11100 {0xA4, 0x66, 0x66, 0, 0},
11101 {0xA5, 0x66, 0x66, 0, 0},
11102 {0xA6, 0x66, 0x66, 0, 0},
11103 {0xA7, 0x66, 0x66, 0, 0},
11104 {0xA8, 0x66, 0x66, 0, 0},
11105 {0xA9, 0x66, 0x66, 0, 0},
11106 {0xAA, 0x66, 0x66, 0, 0},
11107 {0xAB, 0x66, 0x66, 0, 0},
11108 {0xAC, 0x66, 0x66, 0, 0},
11109 {0xAD, 0x66, 0x66, 0, 0},
11110 {0xAE, 0x66, 0x66, 0, 0},
11111 {0xAF, 0x66, 0x66, 0, 0},
11112 {0xB0, 0x66, 0x66, 0, 0},
11113 {0xB1, 0x66, 0x66, 0, 0},
11114 {0xB2, 0x66, 0x66, 0, 0},
11115 {0xB3, 0xa, 0xa, 0, 0},
11116 {0xB4, 0, 0, 0, 0},
11117 {0xB5, 0, 0, 0, 0},
11118 {0xB6, 0, 0, 0, 0},
11119 {0xFFFF, 0, 0, 0, 0},
11122 static const struct radio_regs regs_TX_2056_rev11[] = {
11123 {0x02, 0, 0, 0, 0},
11124 {0x03, 0, 0, 0, 0},
11125 {0x04, 0, 0, 0, 0},
11126 {0x05, 0, 0, 0, 0},
11127 {0x06, 0, 0, 0, 0},
11128 {0x07, 0, 0, 0, 0},
11129 {0x08, 0, 0, 0, 0},
11130 {0x09, 0, 0, 0, 0},
11131 {0x0A, 0, 0, 0, 0},
11132 {0x0B, 0, 0, 0, 0},
11133 {0x0C, 0, 0, 0, 0},
11134 {0x0D, 0, 0, 0, 0},
11135 {0x0E, 0, 0, 0, 0},
11136 {0x0F, 0, 0, 0, 0},
11137 {0x10, 0, 0, 0, 0},
11138 {0x11, 0, 0, 0, 0},
11139 {0x12, 0, 0, 0, 0},
11140 {0x13, 0, 0, 0, 0},
11141 {0x14, 0, 0, 0, 0},
11142 {0x15, 0, 0, 0, 0},
11143 {0x16, 0, 0, 0, 0},
11144 {0x17, 0, 0, 0, 0},
11145 {0x18, 0, 0, 0, 0},
11146 {0x19, 0, 0, 0, 0},
11147 {0x1A, 0, 0, 0, 0},
11148 {0x1B, 0, 0, 0, 0},
11149 {0x1C, 0, 0, 0, 0},
11150 {0x1D, 0, 0, 0, 0},
11151 {0x1E, 0, 0, 0, 0},
11152 {0x1F, 0, 0, 0, 0},
11153 {0x20, 0, 0, 0, 0},
11154 {0x21, 0x88, 0x88, 0, 0},
11155 {0x22, 0x88, 0x88, 0, 0},
11156 {0x23, 0x88, 0x88, 0, 0},
11157 {0x24, 0x88, 0x88, 0, 0},
11158 {0x25, 0xc, 0xc, 0, 0},
11159 {0x26, 0, 0, 0, 0},
11160 {0x27, 0x3, 0x3, 0, 0},
11161 {0x28, 0, 0, 0, 0},
11162 {0x29, 0x3, 0x3, 0, 0},
11163 {0x2A, 0x37, 0x37, 0, 0},
11164 {0x2B, 0x3, 0x3, 0, 0},
11165 {0x2C, 0, 0, 0, 0},
11166 {0x2D, 0, 0, 0, 0},
11167 {0x2E, 0x1, 0x1, 0, 0},
11168 {0x2F, 0x1, 0x1, 0, 0},
11169 {0x30, 0, 0, 0, 0},
11170 {0x31, 0, 0, 0, 0},
11171 {0x32, 0, 0, 0, 0},
11172 {0x33, 0x11, 0x11, 0, 0},
11173 {0x34, 0xee, 0xee, 1, 1},
11174 {0x35, 0, 0, 0, 0},
11175 {0x36, 0, 0, 0, 0},
11176 {0x37, 0x3, 0x3, 0, 0},
11177 {0x38, 0x50, 0x50, 1, 1},
11178 {0x39, 0, 0, 0, 0},
11179 {0x3A, 0x50, 0x50, 1, 1},
11180 {0x3B, 0, 0, 0, 0},
11181 {0x3C, 0x6e, 0x6e, 0, 0},
11182 {0x3D, 0xf0, 0xf0, 1, 1},
11183 {0x3E, 0, 0, 0, 0},
11184 {0x3F, 0, 0, 0, 0},
11185 {0x40, 0, 0, 0, 0},
11186 {0x41, 0x3, 0x3, 0, 0},
11187 {0x42, 0x3, 0x3, 0, 0},
11188 {0x43, 0, 0, 0, 0},
11189 {0x44, 0x1e, 0x1e, 0, 0},
11190 {0x45, 0, 0, 0, 0},
11191 {0x46, 0x6e, 0x6e, 0, 0},
11192 {0x47, 0xf0, 0xf0, 1, 1},
11193 {0x48, 0, 0, 0, 0},
11194 {0x49, 0x2, 0x2, 0, 0},
11195 {0x4A, 0xff, 0xff, 1, 1},
11196 {0x4B, 0xc, 0xc, 0, 0},
11197 {0x4C, 0, 0, 0, 0},
11198 {0x4D, 0x38, 0x38, 0, 0},
11199 {0x4E, 0x70, 0x70, 1, 1},
11200 {0x4F, 0x2, 0x2, 0, 0},
11201 {0x50, 0x88, 0x88, 0, 0},
11202 {0x51, 0xc, 0xc, 0, 0},
11203 {0x52, 0, 0, 0, 0},
11204 {0x53, 0x8, 0x8, 0, 0},
11205 {0x54, 0x70, 0x70, 1, 1},
11206 {0x55, 0x2, 0x2, 0, 0},
11207 {0x56, 0xff, 0xff, 1, 1},
11208 {0x57, 0, 0, 0, 0},
11209 {0x58, 0x83, 0x83, 0, 0},
11210 {0x59, 0x77, 0x77, 1, 1},
11211 {0x5A, 0, 0, 0, 0},
11212 {0x5B, 0x2, 0x2, 0, 0},
11213 {0x5C, 0x88, 0x88, 0, 0},
11214 {0x5D, 0, 0, 0, 0},
11215 {0x5E, 0x8, 0x8, 0, 0},
11216 {0x5F, 0x77, 0x77, 1, 1},
11217 {0x60, 0x1, 0x1, 0, 0},
11218 {0x61, 0, 0, 0, 0},
11219 {0x62, 0x7, 0x7, 0, 0},
11220 {0x63, 0, 0, 0, 0},
11221 {0x64, 0x7, 0x7, 0, 0},
11222 {0x65, 0, 0, 0, 0},
11223 {0x66, 0, 0, 0, 0},
11224 {0x67, 0, 0, 1, 1},
11225 {0x68, 0, 0, 0, 0},
11226 {0x69, 0xa, 0xa, 0, 0},
11227 {0x6A, 0, 0, 0, 0},
11228 {0x6B, 0, 0, 0, 0},
11229 {0x6C, 0, 0, 0, 0},
11230 {0x6D, 0, 0, 0, 0},
11231 {0x6E, 0, 0, 0, 0},
11232 {0x6F, 0, 0, 0, 0},
11233 {0x70, 0, 0, 0, 0},
11234 {0x71, 0x2, 0x2, 0, 0},
11235 {0x72, 0, 0, 0, 0},
11236 {0x73, 0, 0, 0, 0},
11237 {0x74, 0xe, 0xe, 0, 0},
11238 {0x75, 0xe, 0xe, 0, 0},
11239 {0x76, 0xe, 0xe, 0, 0},
11240 {0x77, 0x13, 0x13, 0, 0},
11241 {0x78, 0x13, 0x13, 0, 0},
11242 {0x79, 0x1b, 0x1b, 0, 0},
11243 {0x7A, 0x1b, 0x1b, 0, 0},
11244 {0x7B, 0x55, 0x55, 0, 0},
11245 {0x7C, 0x5b, 0x5b, 0, 0},
11246 {0x7D, 0x30, 0x30, 1, 1},
11247 {0x7E, 0, 0, 0, 0},
11248 {0x7F, 0, 0, 0, 0},
11249 {0x80, 0, 0, 0, 0},
11250 {0x81, 0, 0, 0, 0},
11251 {0x82, 0, 0, 0, 0},
11252 {0x83, 0, 0, 0, 0},
11253 {0x84, 0, 0, 0, 0},
11254 {0x85, 0, 0, 0, 0},
11255 {0x86, 0, 0, 0, 0},
11256 {0x87, 0, 0, 0, 0},
11257 {0x88, 0, 0, 0, 0},
11258 {0x89, 0, 0, 0, 0},
11259 {0x8A, 0, 0, 0, 0},
11260 {0x8B, 0, 0, 0, 0},
11261 {0x8C, 0, 0, 0, 0},
11262 {0x8D, 0, 0, 0, 0},
11263 {0x8E, 0, 0, 0, 0},
11264 {0x8F, 0, 0, 0, 0},
11265 {0x90, 0, 0, 0, 0},
11266 {0x91, 0, 0, 0, 0},
11267 {0x92, 0, 0, 0, 0},
11268 {0x93, 0x70, 0x70, 0, 0},
11269 {0x94, 0x70, 0x70, 0, 0},
11270 {0x95, 0x70, 0x70, 0, 0},
11271 {0x96, 0x70, 0x70, 0, 0},
11272 {0x97, 0x70, 0x70, 0, 0},
11273 {0x98, 0x70, 0x70, 0, 0},
11274 {0x99, 0x70, 0x70, 0, 0},
11275 {0x9A, 0x70, 0x70, 0, 0},
11276 {0xFFFF, 0, 0, 0, 0},
11279 static const struct radio_regs regs_RX_2056_rev11[] = {
11280 {0x02, 0, 0, 0, 0},
11281 {0x03, 0, 0, 0, 0},
11282 {0x04, 0, 0, 0, 0},
11283 {0x05, 0, 0, 0, 0},
11284 {0x06, 0, 0, 0, 0},
11285 {0x07, 0, 0, 0, 0},
11286 {0x08, 0, 0, 0, 0},
11287 {0x09, 0, 0, 0, 0},
11288 {0x0A, 0, 0, 0, 0},
11289 {0x0B, 0, 0, 0, 0},
11290 {0x0C, 0, 0, 0, 0},
11291 {0x0D, 0, 0, 0, 0},
11292 {0x0E, 0, 0, 0, 0},
11293 {0x0F, 0, 0, 0, 0},
11294 {0x10, 0, 0, 0, 0},
11295 {0x11, 0, 0, 0, 0},
11296 {0x12, 0, 0, 0, 0},
11297 {0x13, 0, 0, 0, 0},
11298 {0x14, 0, 0, 0, 0},
11299 {0x15, 0, 0, 0, 0},
11300 {0x16, 0, 0, 0, 0},
11301 {0x17, 0, 0, 0, 0},
11302 {0x18, 0, 0, 0, 0},
11303 {0x19, 0, 0, 0, 0},
11304 {0x1A, 0, 0, 0, 0},
11305 {0x1B, 0, 0, 0, 0},
11306 {0x1C, 0, 0, 0, 0},
11307 {0x1D, 0, 0, 0, 0},
11308 {0x1E, 0, 0, 0, 0},
11309 {0x1F, 0, 0, 0, 0},
11310 {0x20, 0x3, 0x3, 0, 0},
11311 {0x21, 0, 0, 0, 0},
11312 {0x22, 0, 0, 0, 0},
11313 {0x23, 0x90, 0x90, 0, 0},
11314 {0x24, 0x55, 0x55, 0, 0},
11315 {0x25, 0x15, 0x15, 0, 0},
11316 {0x26, 0x5, 0x5, 0, 0},
11317 {0x27, 0x15, 0x15, 0, 0},
11318 {0x28, 0x5, 0x5, 0, 0},
11319 {0x29, 0x20, 0x20, 0, 0},
11320 {0x2A, 0x11, 0x11, 0, 0},
11321 {0x2B, 0x90, 0x90, 0, 0},
11322 {0x2C, 0, 0, 0, 0},
11323 {0x2D, 0x88, 0x88, 0, 0},
11324 {0x2E, 0x32, 0x32, 0, 0},
11325 {0x2F, 0x77, 0x77, 0, 0},
11326 {0x30, 0x17, 0x17, 1, 1},
11327 {0x31, 0xff, 0xff, 1, 1},
11328 {0x32, 0x20, 0x20, 0, 0},
11329 {0x33, 0, 0, 0, 0},
11330 {0x34, 0x88, 0x88, 0, 0},
11331 {0x35, 0x32, 0x32, 0, 0},
11332 {0x36, 0x77, 0x77, 0, 0},
11333 {0x37, 0x17, 0x17, 1, 1},
11334 {0x38, 0xf0, 0xf0, 1, 1},
11335 {0x39, 0x20, 0x20, 0, 0},
11336 {0x3A, 0x8, 0x8, 0, 0},
11337 {0x3B, 0x55, 0x55, 1, 1},
11338 {0x3C, 0, 0, 0, 0},
11339 {0x3D, 0x88, 0x88, 1, 1},
11340 {0x3E, 0, 0, 0, 0},
11341 {0x3F, 0x44, 0x44, 0, 0},
11342 {0x40, 0x7, 0x7, 1, 1},
11343 {0x41, 0x6, 0x6, 0, 0},
11344 {0x42, 0x4, 0x4, 0, 0},
11345 {0x43, 0, 0, 0, 0},
11346 {0x44, 0x8, 0x8, 0, 0},
11347 {0x45, 0x55, 0x55, 1, 1},
11348 {0x46, 0, 0, 0, 0},
11349 {0x47, 0x11, 0x11, 0, 0},
11350 {0x48, 0, 0, 0, 0},
11351 {0x49, 0x44, 0x44, 0, 0},
11352 {0x4A, 0x7, 0x7, 0, 0},
11353 {0x4B, 0x6, 0x6, 0, 0},
11354 {0x4C, 0x4, 0x4, 0, 0},
11355 {0x4D, 0, 0, 0, 0},
11356 {0x4E, 0, 0, 0, 0},
11357 {0x4F, 0x26, 0x26, 1, 1},
11358 {0x50, 0x26, 0x26, 1, 1},
11359 {0x51, 0xf, 0xf, 1, 1},
11360 {0x52, 0xf, 0xf, 1, 1},
11361 {0x53, 0x44, 0x44, 0, 0},
11362 {0x54, 0, 0, 0, 0},
11363 {0x55, 0, 0, 0, 0},
11364 {0x56, 0x8, 0x8, 0, 0},
11365 {0x57, 0x8, 0x8, 0, 0},
11366 {0x58, 0x7, 0x7, 0, 0},
11367 {0x59, 0x22, 0x22, 0, 0},
11368 {0x5A, 0x22, 0x22, 0, 0},
11369 {0x5B, 0x2, 0x2, 0, 0},
11370 {0x5C, 0x4, 0x4, 1, 1},
11371 {0x5D, 0x7, 0x7, 0, 0},
11372 {0x5E, 0x55, 0x55, 0, 0},
11373 {0x5F, 0x23, 0x23, 0, 0},
11374 {0x60, 0x41, 0x41, 0, 0},
11375 {0x61, 0x1, 0x1, 0, 0},
11376 {0x62, 0xa, 0xa, 0, 0},
11377 {0x63, 0, 0, 0, 0},
11378 {0x64, 0, 0, 0, 0},
11379 {0x65, 0, 0, 0, 0},
11380 {0x66, 0, 0, 0, 0},
11381 {0x67, 0, 0, 0, 0},
11382 {0x68, 0, 0, 0, 0},
11383 {0x69, 0, 0, 0, 0},
11384 {0x6A, 0, 0, 0, 0},
11385 {0x6B, 0xc, 0xc, 0, 0},
11386 {0x6C, 0, 0, 0, 0},
11387 {0x6D, 0, 0, 0, 0},
11388 {0x6E, 0, 0, 0, 0},
11389 {0x6F, 0, 0, 0, 0},
11390 {0x70, 0, 0, 0, 0},
11391 {0x71, 0, 0, 0, 0},
11392 {0x72, 0x22, 0x22, 0, 0},
11393 {0x73, 0x22, 0x22, 0, 0},
11394 {0x74, 0, 0, 1, 1},
11395 {0x75, 0xa, 0xa, 0, 0},
11396 {0x76, 0x1, 0x1, 0, 0},
11397 {0x77, 0x22, 0x22, 0, 0},
11398 {0x78, 0x30, 0x30, 0, 0},
11399 {0x79, 0, 0, 0, 0},
11400 {0x7A, 0, 0, 0, 0},
11401 {0x7B, 0, 0, 0, 0},
11402 {0x7C, 0, 0, 0, 0},
11403 {0x7D, 0x5, 0x5, 1, 1},
11404 {0x7E, 0, 0, 0, 0},
11405 {0x7F, 0, 0, 0, 0},
11406 {0x80, 0, 0, 0, 0},
11407 {0x81, 0, 0, 0, 0},
11408 {0x82, 0, 0, 0, 0},
11409 {0x83, 0, 0, 0, 0},
11410 {0x84, 0, 0, 0, 0},
11411 {0x85, 0, 0, 0, 0},
11412 {0x86, 0, 0, 0, 0},
11413 {0x87, 0, 0, 0, 0},
11414 {0x88, 0, 0, 0, 0},
11415 {0x89, 0, 0, 0, 0},
11416 {0x8A, 0, 0, 0, 0},
11417 {0x8B, 0, 0, 0, 0},
11418 {0x8C, 0, 0, 0, 0},
11419 {0x8D, 0, 0, 0, 0},
11420 {0x8E, 0, 0, 0, 0},
11421 {0x8F, 0, 0, 0, 0},
11422 {0x90, 0, 0, 0, 0},
11423 {0x91, 0, 0, 0, 0},
11424 {0x92, 0, 0, 0, 0},
11425 {0x93, 0, 0, 0, 0},
11426 {0x94, 0, 0, 0, 0},
11427 {0xFFFF, 0, 0, 0, 0},
11430 static struct radio_20xx_regs regs_2057_rev4[] = {
11820 static struct radio_20xx_regs regs_2057_rev5[] = {
12152 static struct radio_20xx_regs regs_2057_rev5v1[] = {
12484 static struct radio_20xx_regs regs_2057_rev7[] = {
12900 static struct radio_20xx_regs regs_2057_rev8[] = {
13316 static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
13318 static s32 nphy_lnagain_est0[] = { -315, 40370 };
13319 static s32 nphy_lnagain_est1[] = { -224, 23242 };
13321 static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
13323 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13324 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13325 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13326 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13327 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13328 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13329 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13330 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13331 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13334 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13335 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13336 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13337 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13338 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13339 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13340 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13341 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13342 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13346 static const u32 nphy_tpc_txgain[] = {
13347 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13348 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13349 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13350 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13351 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13352 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13353 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13354 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13355 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13356 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13357 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13358 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13359 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13360 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13361 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13362 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13363 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13364 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13365 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13366 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13367 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13368 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13369 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13370 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13371 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13372 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13373 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13374 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13375 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13376 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13377 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13378 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13381 static const u16 nphy_tpc_loscale[] = {
13382 256, 256, 271, 271, 287, 256, 256, 271,
13383 271, 287, 287, 304, 304, 256, 256, 271,
13384 271, 287, 287, 304, 304, 322, 322, 341,
13385 341, 362, 362, 383, 383, 256, 256, 271,
13386 271, 287, 287, 304, 304, 322, 322, 256,
13387 256, 271, 271, 287, 287, 304, 304, 322,
13388 322, 341, 341, 362, 362, 256, 256, 271,
13389 271, 287, 287, 304, 304, 322, 322, 256,
13390 256, 271, 271, 287, 287, 304, 304, 322,
13391 322, 341, 341, 362, 362, 256, 256, 271,
13392 271, 287, 287, 304, 304, 322, 322, 341,
13393 341, 362, 362, 383, 383, 406, 406, 430,
13394 430, 455, 455, 482, 482, 511, 511, 541,
13395 541, 573, 573, 607, 607, 643, 643, 681,
13396 681, 722, 722, 764, 764, 810, 810, 858,
13397 858, 908, 908, 962, 962, 1019, 1019, 256
13400 static u32 nphy_tpc_txgain_ipa[] = {
13401 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13402 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13403 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13404 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13405 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13406 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13407 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13408 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13409 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13410 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13411 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13412 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13413 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13414 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13415 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13416 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13417 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13418 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13419 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13420 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13421 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13422 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13423 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13424 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13425 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13426 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13427 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13428 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13429 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13430 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13431 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13432 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13435 static u32 nphy_tpc_txgain_ipa_rev5[] = {
13436 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13437 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13438 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13439 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13440 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13441 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13442 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13443 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13444 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13445 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13446 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13447 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13448 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13449 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13450 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13451 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13452 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13453 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13454 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13455 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13456 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13457 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13458 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13459 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13460 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13461 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13462 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13463 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13464 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13465 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13466 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13467 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13470 static u32 nphy_tpc_txgain_ipa_rev6[] = {
13471 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13472 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13473 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13474 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13475 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13476 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13477 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13478 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13479 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13480 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13481 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13482 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13483 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13484 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13485 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13486 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13487 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13488 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13489 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13490 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13491 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13492 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13493 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13494 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13495 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13496 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13497 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13498 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13499 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13500 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13501 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13502 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13505 static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
13506 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13507 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13508 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13509 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13510 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13511 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13512 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13513 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13514 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13515 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13516 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13517 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13518 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13519 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13520 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13521 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13522 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13523 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13524 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13525 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13526 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13527 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13528 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13529 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13530 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13531 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13532 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13533 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13534 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13535 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13536 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13537 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13540 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
13541 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13542 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13543 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13544 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13545 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13546 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13547 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13548 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13549 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13550 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13551 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13552 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13553 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13554 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13555 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13556 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13557 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13558 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13559 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13560 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13561 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13562 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13563 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13564 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13565 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13566 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13567 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13568 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13569 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13570 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13571 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13572 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13575 static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
13576 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13577 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13578 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13579 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13580 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13581 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13582 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13583 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13584 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13585 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13586 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13587 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13588 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13589 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13590 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13591 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13592 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13593 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13594 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
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,
13607 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13610 static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
13611 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13612 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13613 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13614 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13615 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13616 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13617 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13618 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13619 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13620 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13621 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13622 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13623 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13624 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13625 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13626 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13627 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13628 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13629 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
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,
13642 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13645 static u32 nphy_tpc_txgain_ipa_5g[] = {
13646 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13647 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13648 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13649 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13650 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13651 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13652 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13653 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13654 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13655 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13656 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13657 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13658 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13659 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13660 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13661 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13662 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13663 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13664 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13665 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13666 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13667 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13668 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13669 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13670 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13671 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13672 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13673 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13674 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13675 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13676 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13677 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13680 static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
13681 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13682 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13683 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13684 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13685 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13686 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13687 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13688 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13689 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13690 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13691 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13692 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13693 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13694 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13695 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13696 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13697 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13698 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13699 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13700 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13701 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13702 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13703 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13704 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13705 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13706 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13707 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13708 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13709 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13710 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13711 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13712 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13715 static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
13716 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13717 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13718 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13719 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13720 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13721 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13722 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13723 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13724 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13725 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13726 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13727 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13728 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13729 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13730 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13731 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13732 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13733 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13734 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13735 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13736 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13737 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13738 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13739 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13740 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13741 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13742 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13743 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13744 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13745 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13746 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13747 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13750 static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
13751 -114, -108, -98, -91, -84, -78, -70, -62,
13752 -54, -46, -39, -31, -23, -15, -8, 0
13755 static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
13756 -100, -95, -89, -83, -77, -70, -63, -56,
13757 -48, -41, -33, -25, -19, -12, -6, 0
13760 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
13761 -159, -113, -86, -72, -62, -54, -48, -43,
13762 -39, -35, -31, -28, -25, -23, -20, -18,
13763 -17, -15, -13, -11, -10, -8, -7, -6,
13764 -5, -4, -3, -3, -2, -1, -1, 0
13767 static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
13768 -109, -109, -82, -68, -58, -50, -44, -39,
13769 -35, -31, -28, -26, -23, -21, -19, -17,
13770 -16, -14, -13, -11, -10, -9, -8, -7,
13771 -5, -5, -4, -3, -2, -1, -1, 0
13774 static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
13775 -122, -122, -95, -80, -69, -61, -54, -49,
13776 -43, -39, -35, -32, -28, -26, -23, -21,
13777 -18, -16, -15, -13, -11, -10, -8, -7,
13778 -6, -5, -4, -3, -2, -1, -1, 0
13781 static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
13782 -107, -101, -92, -85, -78, -71, -62, -55,
13783 -47, -39, -32, -24, -19, -12, -6, 0
13786 static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
13787 -110, -104, -95, -88, -81, -74, -66, -58,
13788 -50, -44, -36, -28, -23, -15, -8, 0
13791 static u8 pad_gain_codes_used_2057rev5[] = {
13792 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13793 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13796 static u8 pad_gain_codes_used_2057rev7[] = {
13797 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13801 static u8 pad_all_gain_codes_2057[] = {
13802 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13803 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13804 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13808 static u8 pga_all_gain_codes_2057[] = {
13809 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13812 static u32 nphy_papd_scaltbl[] = {
13813 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13814 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13815 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13816 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13817 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13818 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13819 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13820 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13821 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13822 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13823 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13824 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13825 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13826 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13827 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13828 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13831 static u32 nphy_tpc_txgain_rev3[] = {
13832 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13833 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13834 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13835 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13836 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13837 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13838 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13839 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13840 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13841 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13842 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13843 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13844 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13845 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13846 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13847 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13848 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13849 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13850 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13851 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13852 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13853 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13854 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13855 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13856 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13857 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13858 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13859 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13860 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13861 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13862 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13863 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13866 static u32 nphy_tpc_txgain_HiPwrEPA[] = {
13867 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13868 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13869 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13870 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13871 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13872 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13873 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13874 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13875 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13876 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13877 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13878 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13879 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13880 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13881 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13882 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13883 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13884 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13885 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13886 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13887 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13888 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13889 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13890 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13891 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13892 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13893 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13894 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13895 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13896 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13897 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13898 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13901 static u32 nphy_tpc_txgain_epa_2057rev3[] = {
13902 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13903 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13904 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13905 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13906 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13907 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13908 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13909 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13910 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13911 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13912 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13913 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13914 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13915 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13916 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13917 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13918 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13919 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13920 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13921 0x8009061d, 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,
13933 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13936 static u32 nphy_tpc_txgain_epa_2057rev5[] = {
13937 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13938 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13939 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13940 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13941 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13942 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13943 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13944 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13945 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13946 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13947 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13948 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13949 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13950 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13951 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13952 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13953 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13954 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13955 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13956 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13957 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13958 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13959 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13960 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13961 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13962 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13963 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13964 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13965 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13966 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13967 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13968 0x10090001, 0x10090001, 0x10090001, 0x10090001
13971 static u32 nphy_tpc_5GHz_txgain_rev3[] = {
13972 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13973 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13974 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13975 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13976 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13977 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13978 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13979 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13980 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13981 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13982 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13983 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13984 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13985 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13986 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13987 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13988 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13989 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13990 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13991 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13992 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13993 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13994 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13995 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13996 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13997 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13998 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13999 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
14000 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
14001 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
14002 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
14003 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
14006 static u32 nphy_tpc_5GHz_txgain_rev4[] = {
14007 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
14008 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
14009 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
14010 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
14011 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
14012 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
14013 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
14014 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
14015 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
14016 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
14017 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
14018 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
14019 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
14020 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
14021 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
14022 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
14023 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
14024 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
14025 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
14026 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
14027 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
14028 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
14029 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14030 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14031 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14032 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14033 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14034 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14035 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14036 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14037 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14038 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14041 static u32 nphy_tpc_5GHz_txgain_rev5[] = {
14042 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14043 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14044 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14045 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14046 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14047 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14048 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14049 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14050 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14051 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14052 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14053 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14054 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14055 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14056 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14057 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14058 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14059 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14060 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14061 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14062 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14063 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14064 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14065 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14066 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14067 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14068 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14069 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14070 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14071 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14072 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14073 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14076 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
14077 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14078 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14079 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14080 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14081 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14082 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14083 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14084 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14085 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14086 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14087 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14088 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14089 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14090 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14091 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14092 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14093 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14094 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14095 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14096 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14097 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14098 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14099 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14100 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14101 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14102 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14103 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14104 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14105 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14106 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14107 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14108 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14111 static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14112 static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14113 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
14114 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a
14116 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
14117 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16
14120 bool wlc_phy_bist_check_phy(struct brcms_phy_pub *pih)
14122 struct brcms_phy *pi = (struct brcms_phy *) pih;
14123 u32 phybist0, phybist1, phybist2, phybist3, phybist4;
14125 if (NREV_GE(pi->pubpi.phy_rev, 16))
14128 phybist0 = read_phy_reg(pi, 0x0e);
14129 phybist1 = read_phy_reg(pi, 0x0f);
14130 phybist2 = read_phy_reg(pi, 0xea);
14131 phybist3 = read_phy_reg(pi, 0xeb);
14132 phybist4 = read_phy_reg(pi, 0x156);
14134 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14135 (phybist3 == 0) && (phybist4 == 0))
14141 static void wlc_phy_bphy_init_nphy(struct brcms_phy *pi)
14146 for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14147 addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14148 write_phy_reg(pi, addr, val);
14149 if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14155 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14159 wlc_phy_table_write_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14160 u32 width, const void *data)
14162 struct phytbl_info tbl;
14166 tbl.tbl_offset = offset;
14167 tbl.tbl_width = width;
14168 tbl.tbl_ptr = data;
14169 wlc_phy_write_table_nphy(pi, &tbl);
14173 wlc_phy_table_read_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14174 u32 width, void *data)
14176 struct phytbl_info tbl;
14180 tbl.tbl_offset = offset;
14181 tbl.tbl_width = width;
14182 tbl.tbl_ptr = data;
14183 wlc_phy_read_table_nphy(pi, &tbl);
14187 wlc_phy_static_table_download_nphy(struct brcms_phy *pi)
14191 if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14192 for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14193 wlc_phy_write_table_nphy(pi,
14194 &mimophytbl_info_rev16[idx]);
14195 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14196 for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14197 wlc_phy_write_table_nphy(pi,
14198 &mimophytbl_info_rev7[idx]);
14199 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14200 for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14201 wlc_phy_write_table_nphy(pi,
14202 &mimophytbl_info_rev3[idx]);
14204 for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14205 wlc_phy_write_table_nphy(pi,
14206 &mimophytbl_info_rev0[idx]);
14210 static void wlc_phy_tbl_init_nphy(struct brcms_phy *pi)
14215 if (pi->phy_init_por)
14216 wlc_phy_static_table_download_nphy(pi);
14218 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14220 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14221 pi->srom_fem2g.antswctrllut : pi->srom_fem5g.
14224 switch (antswctrllut) {
14232 wlc_phy_table_write_nphy(
14234 NPHY_TBL_ID_ANTSWCTRLLUT,
14236 &ant_sw_ctrl_tbl_rev8_2o3[0]);
14238 wlc_phy_table_write_nphy(
14240 NPHY_TBL_ID_ANTSWCTRLLUT,
14242 &ant_sw_ctrl_tbl_rev8
14245 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14247 &ant_sw_ctrl_tbl_rev8[2]);
14248 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14250 &ant_sw_ctrl_tbl_rev8[4]);
14255 wlc_phy_table_write_nphy(
14256 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14258 &ant_sw_ctrl_tbl_rev8_2057v7_core0[0]);
14259 wlc_phy_table_write_nphy(
14260 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14262 &ant_sw_ctrl_tbl_rev8_2057v7_core0[2]);
14263 wlc_phy_table_write_nphy(
14264 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14266 &ant_sw_ctrl_tbl_rev8_2057v7_core0[4]);
14268 wlc_phy_table_write_nphy(
14269 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14271 &ant_sw_ctrl_tbl_rev8_2057v7_core1[0]);
14272 wlc_phy_table_write_nphy(
14273 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14275 &ant_sw_ctrl_tbl_rev8_2057v7_core1[2]);
14276 wlc_phy_table_write_nphy(
14277 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14279 &ant_sw_ctrl_tbl_rev8_2057v7_core1[4]);
14286 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14287 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14289 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14291 CHSPEC_IS2G(pi->radio_chanspec) ?
14292 pi->srom_fem2g.antswctrllut :
14293 pi->srom_fem5g.antswctrllut;
14294 switch (antswctrllut) {
14296 wlc_phy_write_table_nphy(
14298 &mimophytbl_info_rev3_volatile
14302 wlc_phy_write_table_nphy(
14304 &mimophytbl_info_rev3_volatile1
14308 wlc_phy_write_table_nphy(
14310 &mimophytbl_info_rev3_volatile2
14314 wlc_phy_write_table_nphy(
14316 &mimophytbl_info_rev3_volatile3
14323 wlc_phy_write_table_nphy(
14325 &mimophytbl_info_rev3_volatile[idx]);
14329 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++)
14330 wlc_phy_write_table_nphy(pi,
14331 &mimophytbl_info_rev0_volatile
14337 wlc_phy_write_txmacreg_nphy(struct brcms_phy *pi, u16 holdoff, u16 delay)
14339 write_phy_reg(pi, 0x77, holdoff);
14340 write_phy_reg(pi, 0xb4, delay);
14343 void wlc_phy_nphy_tkip_rifs_war(struct brcms_phy *pi, u8 rifs)
14345 u16 holdoff, delay;
14357 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14359 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs))
14360 pi->sh->_rifs_phy = rifs;
14363 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi)
14366 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14367 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14368 pi->phy_5g_pwrgain = true;
14372 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
14373 pi->phy_5g_pwrgain = false;
14375 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14376 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14377 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14378 else if ((pi->sh->sromrev >= 4)
14379 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14380 pi->phy_5g_pwrgain = true;
14383 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy *pi)
14385 u16 bw40po, cddpo, stbcpo, bwduppo;
14387 struct phy_shim_info *shim = pi->sh->physhim;
14389 if (pi->sh->sromrev >= 9)
14392 bw40po = (u16) wlapi_getintvar(shim, BRCMS_SROM_BW40PO);
14393 pi->bw402gpo = bw40po & 0xf;
14394 pi->bw405gpo = (bw40po & 0xf0) >> 4;
14395 pi->bw405glpo = (bw40po & 0xf00) >> 8;
14396 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
14398 cddpo = (u16) wlapi_getintvar(shim, BRCMS_SROM_CDDPO);
14399 pi->cdd2gpo = cddpo & 0xf;
14400 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
14401 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
14402 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
14404 stbcpo = (u16) wlapi_getintvar(shim, BRCMS_SROM_STBCPO);
14405 pi->stbc2gpo = stbcpo & 0xf;
14406 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
14407 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
14408 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
14410 bwduppo = (u16) wlapi_getintvar(shim, BRCMS_SROM_BWDUPPO);
14411 pi->bwdup2gpo = bwduppo & 0xf;
14412 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
14413 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
14414 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
14416 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
14418 switch (band_num) {
14421 pi->nphy_txpid2g[PHY_CORE_0] =
14422 (u8) wlapi_getintvar(shim,
14423 BRCMS_SROM_TXPID2GA0);
14424 pi->nphy_txpid2g[PHY_CORE_1] =
14425 (u8) wlapi_getintvar(shim,
14426 BRCMS_SROM_TXPID2GA1);
14427 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
14428 (s8) wlapi_getintvar(shim,
14429 BRCMS_SROM_MAXP2GA0);
14430 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
14431 (s8) wlapi_getintvar(shim,
14432 BRCMS_SROM_MAXP2GA1);
14433 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
14434 (s16) wlapi_getintvar(shim,
14435 BRCMS_SROM_PA2GW0A0);
14436 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
14437 (s16) wlapi_getintvar(shim,
14438 BRCMS_SROM_PA2GW0A1);
14439 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
14440 (s16) wlapi_getintvar(shim,
14441 BRCMS_SROM_PA2GW1A0);
14442 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
14443 (s16) wlapi_getintvar(shim,
14444 BRCMS_SROM_PA2GW1A1);
14445 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
14446 (s16) wlapi_getintvar(shim,
14447 BRCMS_SROM_PA2GW2A0);
14448 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
14449 (s16) wlapi_getintvar(shim,
14450 BRCMS_SROM_PA2GW2A1);
14451 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
14452 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT2GA0);
14453 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
14454 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT2GA1);
14456 pi->cck2gpo = (u16) wlapi_getintvar(shim,
14457 BRCMS_SROM_CCK2GPO);
14460 (u32) wlapi_getintvar(shim,
14461 BRCMS_SROM_OFDM2GPO);
14464 (u16) wlapi_getintvar(shim,
14465 BRCMS_SROM_MCS2GPO0);
14467 (u16) wlapi_getintvar(shim,
14468 BRCMS_SROM_MCS2GPO1);
14470 (u16) wlapi_getintvar(shim,
14471 BRCMS_SROM_MCS2GPO2);
14473 (u16) wlapi_getintvar(shim,
14474 BRCMS_SROM_MCS2GPO3);
14476 (u16) wlapi_getintvar(shim,
14477 BRCMS_SROM_MCS2GPO4);
14479 (u16) wlapi_getintvar(shim,
14480 BRCMS_SROM_MCS2GPO5);
14482 (u16) wlapi_getintvar(shim,
14483 BRCMS_SROM_MCS2GPO6);
14485 (u16) wlapi_getintvar(shim,
14486 BRCMS_SROM_MCS2GPO7);
14490 pi->nphy_txpid5g[PHY_CORE_0] =
14491 (u8) wlapi_getintvar(shim,
14492 BRCMS_SROM_TXPID5GA0);
14493 pi->nphy_txpid5g[PHY_CORE_1] =
14494 (u8) wlapi_getintvar(shim,
14495 BRCMS_SROM_TXPID5GA1);
14496 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
14497 (s8) wlapi_getintvar(shim, BRCMS_SROM_MAXP5GA0);
14498 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
14499 (s8) wlapi_getintvar(shim,
14500 BRCMS_SROM_MAXP5GA1);
14501 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
14502 (s16) wlapi_getintvar(shim,
14503 BRCMS_SROM_PA5GW0A0);
14504 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
14505 (s16) wlapi_getintvar(shim,
14506 BRCMS_SROM_PA5GW0A1);
14507 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
14508 (s16) wlapi_getintvar(shim,
14509 BRCMS_SROM_PA5GW1A0);
14510 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
14511 (s16) wlapi_getintvar(shim,
14512 BRCMS_SROM_PA5GW1A1);
14513 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
14514 (s16) wlapi_getintvar(shim,
14515 BRCMS_SROM_PA5GW2A0);
14516 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
14517 (s16) wlapi_getintvar(shim,
14518 BRCMS_SROM_PA5GW2A1);
14519 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
14520 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT5GA0);
14521 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
14522 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT5GA1);
14525 (u32) wlapi_getintvar(shim,
14526 BRCMS_SROM_OFDM5GPO);
14529 (u16) wlapi_getintvar(shim,
14530 BRCMS_SROM_MCS5GPO0);
14532 (u16) wlapi_getintvar(shim,
14533 BRCMS_SROM_MCS5GPO1);
14535 (u16) wlapi_getintvar(shim,
14536 BRCMS_SROM_MCS5GPO2);
14538 (u16) wlapi_getintvar(shim,
14539 BRCMS_SROM_MCS5GPO3);
14541 (u16) wlapi_getintvar(shim,
14542 BRCMS_SROM_MCS5GPO4);
14544 (u16) wlapi_getintvar(shim,
14545 BRCMS_SROM_MCS5GPO5);
14547 (u16) wlapi_getintvar(shim,
14548 BRCMS_SROM_MCS5GPO6);
14550 (u16) wlapi_getintvar(shim,
14551 BRCMS_SROM_MCS5GPO7);
14555 pi->nphy_txpid5gl[0] =
14556 (u8) wlapi_getintvar(shim,
14557 BRCMS_SROM_TXPID5GLA0);
14558 pi->nphy_txpid5gl[1] =
14559 (u8) wlapi_getintvar(shim,
14560 BRCMS_SROM_TXPID5GLA1);
14561 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
14562 (s8) wlapi_getintvar(shim,
14563 BRCMS_SROM_MAXP5GLA0);
14564 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
14565 (s8) wlapi_getintvar(shim,
14566 BRCMS_SROM_MAXP5GLA1);
14567 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
14568 (s16) wlapi_getintvar(shim,
14569 BRCMS_SROM_PA5GLW0A0);
14570 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
14571 (s16) wlapi_getintvar(shim,
14572 BRCMS_SROM_PA5GLW0A1);
14573 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
14574 (s16) wlapi_getintvar(shim,
14575 BRCMS_SROM_PA5GLW1A0);
14576 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
14577 (s16) wlapi_getintvar(shim,
14578 BRCMS_SROM_PA5GLW1A1);
14579 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
14580 (s16) wlapi_getintvar(shim,
14581 BRCMS_SROM_PA5GLW2A0);
14582 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
14583 (s16) wlapi_getintvar(shim,
14584 BRCMS_SROM_PA5GLW2A1);
14585 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
14586 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
14589 (u32) wlapi_getintvar(shim,
14590 BRCMS_SROM_OFDM5GLPO);
14593 (u16) wlapi_getintvar(shim,
14594 BRCMS_SROM_MCS5GLPO0);
14596 (u16) wlapi_getintvar(shim,
14597 BRCMS_SROM_MCS5GLPO1);
14599 (u16) wlapi_getintvar(shim,
14600 BRCMS_SROM_MCS5GLPO2);
14602 (u16) wlapi_getintvar(shim,
14603 BRCMS_SROM_MCS5GLPO3);
14605 (u16) wlapi_getintvar(shim,
14606 BRCMS_SROM_MCS5GLPO4);
14608 (u16) wlapi_getintvar(shim,
14609 BRCMS_SROM_MCS5GLPO5);
14611 (u16) wlapi_getintvar(shim,
14612 BRCMS_SROM_MCS5GLPO6);
14614 (u16) wlapi_getintvar(shim,
14615 BRCMS_SROM_MCS5GLPO7);
14619 pi->nphy_txpid5gh[0] =
14620 (u8) wlapi_getintvar(shim,
14621 BRCMS_SROM_TXPID5GHA0);
14622 pi->nphy_txpid5gh[1] =
14623 (u8) wlapi_getintvar(shim,
14624 BRCMS_SROM_TXPID5GHA1);
14625 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
14626 (s8) wlapi_getintvar(shim,
14627 BRCMS_SROM_MAXP5GHA0);
14628 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
14629 (s8) wlapi_getintvar(shim,
14630 BRCMS_SROM_MAXP5GHA1);
14631 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
14632 (s16) wlapi_getintvar(shim,
14633 BRCMS_SROM_PA5GHW0A0);
14634 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
14635 (s16) wlapi_getintvar(shim,
14636 BRCMS_SROM_PA5GHW0A1);
14637 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
14638 (s16) wlapi_getintvar(shim,
14639 BRCMS_SROM_PA5GHW1A0);
14640 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
14641 (s16) wlapi_getintvar(shim,
14642 BRCMS_SROM_PA5GHW1A1);
14643 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
14644 (s16) wlapi_getintvar(shim,
14645 BRCMS_SROM_PA5GHW2A0);
14646 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
14647 (s16) wlapi_getintvar(shim,
14648 BRCMS_SROM_PA5GHW2A1);
14649 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
14650 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
14653 (u32) wlapi_getintvar(shim,
14654 BRCMS_SROM_OFDM5GHPO);
14657 (u16) wlapi_getintvar(shim,
14658 BRCMS_SROM_MCS5GHPO0);
14660 (u16) wlapi_getintvar(shim,
14661 BRCMS_SROM_MCS5GHPO1);
14663 (u16) wlapi_getintvar(shim,
14664 BRCMS_SROM_MCS5GHPO2);
14666 (u16) wlapi_getintvar(shim,
14667 BRCMS_SROM_MCS5GHPO3);
14669 (u16) wlapi_getintvar(shim,
14670 BRCMS_SROM_MCS5GHPO4);
14672 (u16) wlapi_getintvar(shim,
14673 BRCMS_SROM_MCS5GHPO5);
14675 (u16) wlapi_getintvar(shim,
14676 BRCMS_SROM_MCS5GHPO6);
14678 (u16) wlapi_getintvar(shim,
14679 BRCMS_SROM_MCS5GHPO7);
14684 wlc_phy_txpwr_apply_nphy(pi);
14687 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi)
14689 struct phy_shim_info *shim = pi->sh->physhim;
14691 pi->antswitch = (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWITCH);
14692 pi->aa2g = (u8) wlapi_getintvar(shim, BRCMS_SROM_AA2G);
14693 pi->aa5g = (u8) wlapi_getintvar(shim, BRCMS_SROM_AA5G);
14695 pi->srom_fem2g.tssipos = (u8) wlapi_getintvar(shim,
14696 BRCMS_SROM_TSSIPOS2G);
14697 pi->srom_fem2g.extpagain = (u8) wlapi_getintvar(shim,
14698 BRCMS_SROM_EXTPAGAIN2G);
14699 pi->srom_fem2g.pdetrange = (u8) wlapi_getintvar(shim,
14700 BRCMS_SROM_PDETRANGE2G);
14701 pi->srom_fem2g.triso = (u8) wlapi_getintvar(shim, BRCMS_SROM_TRISO2G);
14702 pi->srom_fem2g.antswctrllut =
14703 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL2G);
14705 pi->srom_fem5g.tssipos = (u8) wlapi_getintvar(shim,
14706 BRCMS_SROM_TSSIPOS5G);
14707 pi->srom_fem5g.extpagain = (u8) wlapi_getintvar(shim,
14708 BRCMS_SROM_EXTPAGAIN5G);
14709 pi->srom_fem5g.pdetrange = (u8) wlapi_getintvar(shim,
14710 BRCMS_SROM_PDETRANGE5G);
14711 pi->srom_fem5g.triso = (u8) wlapi_getintvar(shim, BRCMS_SROM_TRISO5G);
14712 if (wlapi_getvar(shim, BRCMS_SROM_ANTSWCTL5G))
14713 pi->srom_fem5g.antswctrllut =
14714 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL5G);
14716 pi->srom_fem5g.antswctrllut =
14717 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL2G);
14719 wlc_phy_txpower_ipa_upd(pi);
14721 pi->phy_txcore_disable_temp =
14722 (s16) wlapi_getintvar(shim, BRCMS_SROM_TEMPTHRESH);
14723 if (pi->phy_txcore_disable_temp == 0)
14724 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
14726 pi->phy_tempsense_offset = (s8) wlapi_getintvar(shim,
14727 BRCMS_SROM_TEMPOFFSET);
14728 if (pi->phy_tempsense_offset != 0) {
14729 if (pi->phy_tempsense_offset >
14730 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET))
14731 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
14732 else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
14733 NPHY_SROM_MINTEMPOFFSET))
14734 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
14736 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
14739 pi->phy_txcore_enable_temp =
14740 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
14742 pi->phycal_tempdelta =
14743 (u8) wlapi_getintvar(shim, BRCMS_SROM_PHYCAL_TEMPDELTA);
14744 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA)
14745 pi->phycal_tempdelta = 0;
14747 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
14752 bool wlc_phy_attach_nphy(struct brcms_phy *pi)
14756 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6))
14757 pi->phyhang_avoid = true;
14759 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14760 pi->nphy_gband_spurwar_en = true;
14761 if (pi->sh->boardflags2 & BFL2_SPUR_WAR)
14762 pi->nphy_aband_spurwar_en = true;
14764 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14765 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR)
14766 pi->nphy_gband_spurwar2_en = true;
14769 pi->n_preamble_override = AUTO;
14770 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14771 pi->n_preamble_override = BRCMS_N_PREAMBLE_MIXEDMODE;
14773 pi->nphy_txrx_chain = AUTO;
14774 pi->phy_scraminit = AUTO;
14776 pi->nphy_rxcalparams = 0x010100B5;
14778 pi->nphy_perical = PHY_PERICAL_MPHASE;
14779 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14780 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14782 pi->nphy_gain_boost = true;
14783 pi->nphy_elna_gain_config = false;
14784 pi->radio_is_on = false;
14786 for (i = 0; i < pi->pubpi.phy_corenum; i++)
14787 pi->nphy_txpwrindex[i].index = AUTO;
14789 wlc_phy_txpwrctrl_config_nphy(pi);
14790 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14791 pi->hwpwrctrl_capable = true;
14793 pi->pi_fptr.init = wlc_phy_init_nphy;
14794 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14795 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14796 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14798 if (!wlc_phy_txpwr_srom_read_nphy(pi))
14804 static s32 get_rf_pwr_offset(struct brcms_phy *pi, s16 pga_gn, s16 pad_gn)
14806 s32 rfpwr_offset = 0;
14808 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14809 if ((pi->pubpi.radiorev == 3) ||
14810 (pi->pubpi.radiorev == 4) ||
14811 (pi->pubpi.radiorev == 6))
14812 rfpwr_offset = (s16)
14813 nphy_papd_padgain_dlt_2g_2057rev3n4
14815 else if (pi->pubpi.radiorev == 5)
14816 rfpwr_offset = (s16)
14817 nphy_papd_padgain_dlt_2g_2057rev5
14819 else if ((pi->pubpi.radiorev == 7)
14820 || (pi->pubpi.radiorev ==
14822 rfpwr_offset = (s16)
14823 nphy_papd_padgain_dlt_2g_2057rev7
14826 if ((pi->pubpi.radiorev == 3) ||
14827 (pi->pubpi.radiorev == 4) ||
14828 (pi->pubpi.radiorev == 6))
14829 rfpwr_offset = (s16)
14830 nphy_papd_pgagain_dlt_5g_2057
14832 else if ((pi->pubpi.radiorev == 7)
14833 || (pi->pubpi.radiorev ==
14835 rfpwr_offset = (s16)
14836 nphy_papd_pgagain_dlt_5g_2057rev7
14839 return rfpwr_offset;
14842 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble)
14844 bool gf_preamble = false;
14847 if (preamble == BRCMS_N_PREAMBLE_GF)
14848 gf_preamble = true;
14850 val = read_phy_reg(pi, 0xed);
14852 val |= RX_GF_MM_AUTO;
14853 val &= ~RX_GF_OR_MM;
14855 val |= RX_GF_OR_MM;
14857 write_phy_reg(pi, 0xed, val);
14860 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
14863 u16 addr_offset[] = { 0x186, 0x195, 0x2c5};
14865 for (type = 0; type < 3; type++) {
14866 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14867 write_phy_reg(pi, addr_offset[type] + j,
14868 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
14871 if (pi->bw == WL_CHANSPEC_BW_40) {
14872 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14873 write_phy_reg(pi, 0x186 + j,
14874 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14876 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14877 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14878 write_phy_reg(pi, 0x186 + j,
14879 NPHY_IPA_REV4_txdigi_filtcoeffs[5][j]);
14882 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
14883 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14884 write_phy_reg(pi, 0x2c5 + j,
14885 NPHY_IPA_REV4_txdigi_filtcoeffs[6][j]);
14890 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
14894 if (pi->bw == WL_CHANSPEC_BW_40) {
14895 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14896 write_phy_reg(pi, 0x195 + j,
14897 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
14899 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14900 write_phy_reg(pi, 0x186 + j,
14901 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14906 wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys,
14909 u32 t1_offset, t2_offset;
14912 NREV_GE(pi->pubpi.phy_rev,
14913 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
14916 if (pi->phyhang_avoid)
14917 wlc_phy_stay_in_carriersearch_nphy(pi, true);
14919 t1_offset = cmd << 4;
14920 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
14922 t2_offset = t1_offset + 0x080;
14923 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
14926 for (ctr = len; ctr < 16; ctr++) {
14927 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14928 t1_offset + ctr, 8, &end_event);
14929 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14930 t2_offset + ctr, 8, &end_dly);
14933 if (pi->phyhang_avoid)
14934 wlc_phy_stay_in_carriersearch_nphy(pi, false);
14937 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset)
14939 u16 lpf_bw_ctl_val = 0;
14940 u16 rx2tx_lpf_rc_lut_offset = 0;
14943 if (CHSPEC_IS40(pi->radio_chanspec))
14944 rx2tx_lpf_rc_lut_offset = 0x159;
14946 rx2tx_lpf_rc_lut_offset = 0x154;
14948 rx2tx_lpf_rc_lut_offset = offset;
14950 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14951 (u32) rx2tx_lpf_rc_lut_offset, 16,
14954 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
14956 return lpf_bw_ctl_val;
14960 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
14961 u8 core_mask, u8 off, u8 override_id)
14964 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
14967 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14969 for (core_num = 0; core_num < 2; core_num++) {
14970 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
14974 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14975 val_addr = (core_num == 0) ? 0x7a :
14977 val_mask = (0x1 << 1);
14981 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14982 val_addr = (core_num == 0) ? 0x7a :
14984 val_mask = (0x1 << 2);
14988 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14989 val_addr = (core_num == 0) ? 0x7a :
14991 val_mask = (0x1 << 4);
14995 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14996 val_addr = (core_num == 0) ? 0x7a :
14998 val_mask = (0x1 << 5);
15002 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15003 val_addr = (core_num == 0) ? 0x7a :
15005 val_mask = (0x1 << 6);
15009 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15010 val_addr = (core_num == 0) ? 0x7a :
15012 val_mask = (0x1 << 7);
15016 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15017 val_addr = (core_num == 0) ? 0xf8 :
15019 val_mask = (0x7 << 4);
15023 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15024 val_addr = (core_num == 0) ? 0x7b :
15026 val_mask = (0xffff << 0);
15030 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15031 val_addr = (core_num == 0) ? 0x7c :
15033 val_mask = (0xffff << 0);
15037 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15038 val_addr = (core_num == 0) ? 0x348 :
15040 val_mask = (0xff << 0);
15044 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15045 val_addr = (core_num == 0) ? 0x348 :
15047 val_mask = (0xf << 0);
15054 } else if (override_id ==
15055 NPHY_REV7_RFCTRLOVERRIDE_ID1) {
15059 en_addr = (core_num == 0) ? 0x342 :
15061 val_addr = (core_num == 0) ? 0x340 :
15063 val_mask = (0x1 << 1);
15067 en_addr = (core_num == 0) ? 0x342 :
15069 val_addr = (core_num == 0) ? 0x340 :
15071 val_mask = (0x1 << 3);
15075 en_addr = (core_num == 0) ? 0x342 :
15077 val_addr = (core_num == 0) ? 0x340 :
15079 val_mask = (0x1 << 5);
15083 en_addr = (core_num == 0) ? 0x342 :
15085 val_addr = (core_num == 0) ? 0x340 :
15087 val_mask = (0x1 << 4);
15092 en_addr = (core_num == 0) ? 0x342 :
15094 val_addr = (core_num == 0) ? 0x340 :
15096 val_mask = (0x1 << 2);
15101 en_addr = (core_num == 0) ? 0x342 :
15103 val_addr = (core_num == 0) ? 0x340 :
15105 val_mask = (0x7 << 8);
15109 en_addr = (core_num == 0) ? 0x342 :
15111 val_addr = (core_num == 0) ? 0x340 :
15113 val_mask = (0x1 << 14);
15117 en_addr = (core_num == 0) ? 0x342 :
15119 val_addr = (core_num == 0) ? 0x340 :
15121 val_mask = (0x1 << 13);
15125 en_addr = (core_num == 0) ? 0x342 :
15127 val_addr = (core_num == 0) ? 0x340 :
15129 val_mask = (0x1 << 12);
15133 en_addr = (core_num == 0) ? 0x342 :
15135 val_addr = (core_num == 0) ? 0x340 :
15137 val_mask = (0x1 << 11);
15141 en_addr = (core_num == 0) ? 0x342 :
15143 val_addr = (core_num == 0) ? 0x340 :
15145 val_mask = (0x1 << 6);
15149 en_addr = (core_num == 0) ? 0x342 :
15151 val_addr = (core_num == 0) ? 0x340 :
15153 val_mask = (0x1 << 0);
15160 } else if (override_id ==
15161 NPHY_REV7_RFCTRLOVERRIDE_ID2) {
15165 en_addr = (core_num == 0) ? 0x346 :
15167 val_addr = (core_num == 0) ? 0x344 :
15169 val_mask = (0x1 << 3);
15173 en_addr = (core_num == 0) ? 0x346 :
15175 val_addr = (core_num == 0) ? 0x344 :
15177 val_mask = (0x1 << 1);
15181 en_addr = (core_num == 0) ? 0x346 :
15183 val_addr = (core_num == 0) ? 0x344 :
15185 val_mask = (0x1 << 0);
15189 en_addr = (core_num == 0) ? 0x346 :
15191 val_addr = (core_num == 0) ? 0x344 :
15193 val_mask = (0x1 << 2);
15197 en_addr = (core_num == 0) ? 0x346 :
15199 val_addr = (core_num == 0) ? 0x344 :
15201 val_mask = (0x1 << 4);
15211 and_phy_reg(pi, en_addr, ~en_mask);
15212 and_phy_reg(pi, val_addr, ~val_mask);
15215 if ((core_mask == 0)
15216 || (core_mask & (1 << core_num))) {
15217 or_phy_reg(pi, en_addr, en_mask);
15219 if (addr != 0xffff)
15220 mod_phy_reg(pi, val_addr,
15230 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
15236 u16 minmax_gain[2];
15239 if (pi->phyhang_avoid)
15240 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15242 if (pi->nphy_gain_boost) {
15243 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
15249 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
15252 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
15254 nphy_lnagain_est0[1]), 13);
15257 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
15259 nphy_lnagain_est1[1]), 13);
15267 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
15268 if (pi->nphy_elna_gain_config) {
15270 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
15271 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
15272 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
15273 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
15275 for (ctr = 0; ctr < 4; ctr++)
15277 nphy_def_lnagains[ctr] +
15280 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
15282 minmax_gain[core] =
15283 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
15286 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
15287 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
15289 if (pi->phyhang_avoid)
15290 wlc_phy_stay_in_carriersearch_nphy(pi, false);
15294 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy *pi, u8 core)
15296 if (core == PHY_CORE_0) {
15297 write_phy_reg(pi, 0x38, 0x4);
15298 if (CHSPEC_IS2G(pi->radio_chanspec))
15299 write_phy_reg(pi, 0x37, 0x0060);
15301 write_phy_reg(pi, 0x37, 0x1080);
15302 } else if (core == PHY_CORE_1) {
15303 write_phy_reg(pi, 0x2ae, 0x4);
15304 if (CHSPEC_IS2G(pi->radio_chanspec))
15305 write_phy_reg(pi, 0x2ad, 0x0060);
15307 write_phy_reg(pi, 0x2ad, 0x1080);
15311 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy *pi, u8 txchain)
15313 u8 txchain0, txchain1;
15315 txchain0 = txchain & 0x1;
15316 txchain1 = (txchain & 0x2) >> 1;
15318 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15321 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15324 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)
15326 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
15327 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
15328 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
15329 s8 tia_gainbits[] = {
15330 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15332 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15333 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15335 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15337 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
15338 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
15340 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
15342 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
15345 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
15347 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
15350 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15352 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15355 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15357 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15360 write_phy_reg(pi, 0x37, 0x74);
15361 write_phy_reg(pi, 0x2ad, 0x74);
15362 write_phy_reg(pi, 0x38, 0x18);
15363 write_phy_reg(pi, 0x2ae, 0x18);
15365 write_phy_reg(pi, 0x2b, 0xe8);
15366 write_phy_reg(pi, 0x41, 0xe8);
15368 if (CHSPEC_IS20(pi->radio_chanspec)) {
15370 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
15371 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
15374 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
15375 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
15379 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
15382 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
15383 s8 *lna1_gain_db = NULL;
15384 s8 *lna1_gain_db_2 = NULL;
15385 s8 *lna2_gain_db = NULL;
15386 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
15388 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
15390 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
15391 u16 *rfseq_init_gain;
15393 u16 clip1hi_gaincode;
15394 u16 clip1md_gaincode = 0;
15395 u16 clip1md_gaincode_B;
15396 u16 clip1lo_gaincode;
15397 u16 clip1lo_gaincode_B;
15403 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
15404 u8 chg_nbclip_th = 0;
15406 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15407 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15409 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15410 if (currband == 0) {
15412 lna1_gain_db = lna1G_gain_db_rev7;
15414 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15416 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15419 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
15421 if (CHSPEC_IS40(pi->radio_chanspec)) {
15422 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
15423 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
15426 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15428 if (CHSPEC_IS20(pi->radio_chanspec)) {
15429 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
15430 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
15434 init_gaincode = 0x9e;
15435 clip1hi_gaincode = 0x9e;
15436 clip1md_gaincode_B = 0x24;
15437 clip1lo_gaincode = 0x8a;
15438 clip1lo_gaincode_B = 8;
15439 rfseq_init_gain = rfseqA_init_gain_rev7;
15441 tia_gain_db = tiaA_gain_db_rev7;
15442 tia_gainbits = tiaA_gainbits_rev7;
15444 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
15445 if (CHSPEC_IS20(pi->radio_chanspec)) {
15448 clip1md_gaincode = 0x82;
15450 if ((freq <= 5080) || (freq == 5825)) {
15452 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
15453 s8 lna1A_gain_db_2_rev7[] = {
15455 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15458 lna1_gain_db = lna1A_gain_db_rev7;
15459 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15460 lna2_gain_db = lna2A_gain_db_rev7;
15461 } else if ((freq >= 5500) && (freq <= 5700)) {
15463 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
15464 s8 lna1A_gain_db_2_rev7[] = {
15466 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
15469 clip1md_gaincode_B = 0x14;
15472 lna1_gain_db = lna1A_gain_db_rev7;
15473 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15474 lna2_gain_db = lna2A_gain_db_rev7;
15477 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
15478 s8 lna1A_gain_db_2_rev7[] = {
15480 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15483 lna1_gain_db = lna1A_gain_db_rev7;
15484 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15485 lna2_gain_db = lna2A_gain_db_rev7;
15488 if (freq <= 4920) {
15489 nvar_baseline_offset0 = 5;
15490 nvar_baseline_offset1 = 5;
15491 } else if ((freq > 4920) && (freq <= 5320)) {
15492 nvar_baseline_offset0 = 3;
15493 nvar_baseline_offset1 = 5;
15494 } else if ((freq > 5320) && (freq <= 5700)) {
15495 nvar_baseline_offset0 = 3;
15496 nvar_baseline_offset1 = 2;
15498 nvar_baseline_offset0 = 4;
15499 nvar_baseline_offset1 = 0;
15507 if ((freq >= 4920) && (freq <= 5320)) {
15508 nvar_baseline_offset0 = 4;
15509 nvar_baseline_offset1 = 5;
15510 } else if ((freq > 5320) && (freq <= 5550)) {
15511 nvar_baseline_offset0 = 4;
15512 nvar_baseline_offset1 = 2;
15514 nvar_baseline_offset0 = 5;
15515 nvar_baseline_offset1 = 3;
15519 write_phy_reg(pi, 0x20, init_gaincode);
15520 write_phy_reg(pi, 0x2a7, init_gaincode);
15522 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15523 pi->pubpi.phy_corenum, 0x106, 16,
15526 write_phy_reg(pi, 0x22, clip1hi_gaincode);
15527 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
15529 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
15530 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
15532 write_phy_reg(pi, 0x37, clip1lo_gaincode);
15533 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
15534 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
15535 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
15537 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15539 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15542 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15544 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15547 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
15549 if (chg_nbclip_th == 1) {
15550 write_phy_reg(pi, 0x2b, nbclip_th);
15551 write_phy_reg(pi, 0x41, nbclip_th);
15554 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
15555 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
15557 mod_phy_reg(pi, 0x2e4,
15558 (0x3f << 0), (nvar_baseline_offset0 << 0));
15560 mod_phy_reg(pi, 0x2e4,
15561 (0x3f << 6), (nvar_baseline_offset1 << 6));
15563 if (CHSPEC_IS20(pi->radio_chanspec)) {
15565 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15567 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15570 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
15572 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
15575 write_phy_reg(pi, 0x24, clip1md_gaincode);
15576 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
15578 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
15583 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)
15585 u16 w1th, hpf_code, currband;
15587 u8 rfseq_updategainu_events[] = {
15588 NPHY_RFSEQ_CMD_RX_GAIN,
15589 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15590 NPHY_RFSEQ_CMD_SET_HPF_BW
15592 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
15593 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
15594 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
15595 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
15596 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
15597 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
15598 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
15599 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
15600 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
15601 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
15602 s8 *lna1_gain_db = NULL;
15603 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
15604 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
15605 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
15606 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
15607 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
15608 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
15609 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
15610 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
15611 s8 *lna2_gain_db = NULL;
15612 s8 tiaG_gain_db[] = {
15613 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
15614 s8 tiaA_gain_db[] = {
15615 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
15616 s8 tiaA_gain_db_rev4[] = {
15617 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15618 s8 tiaA_gain_db_rev5[] = {
15619 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15620 s8 tiaA_gain_db_rev6[] = {
15621 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15623 s8 tiaG_gainbits[] = {
15624 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15625 s8 tiaA_gainbits[] = {
15626 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
15627 s8 tiaA_gainbits_rev4[] = {
15628 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15629 s8 tiaA_gainbits_rev5[] = {
15630 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15631 s8 tiaA_gainbits_rev6[] = {
15632 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15634 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
15635 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
15636 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
15637 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
15638 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
15639 u16 rfseqG_init_gain_rev5_elna[] = {
15640 0x013f, 0x013f, 0x013f, 0x013f };
15641 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
15642 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
15643 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
15644 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
15645 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
15646 u16 rfseqA_init_gain_rev4_elna[] = {
15647 0x314f, 0x314f, 0x314f, 0x314f };
15648 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
15649 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
15650 u16 *rfseq_init_gain;
15651 u16 initG_gaincode = 0x627e;
15652 u16 initG_gaincode_rev4 = 0x527e;
15653 u16 initG_gaincode_rev5 = 0x427e;
15654 u16 initG_gaincode_rev5_elna = 0x027e;
15655 u16 initG_gaincode_rev6 = 0x527e;
15656 u16 initG_gaincode_rev6_224B0 = 0x427e;
15657 u16 initG_gaincode_rev6_elna = 0x127e;
15658 u16 initA_gaincode = 0x52de;
15659 u16 initA_gaincode_rev4 = 0x629e;
15660 u16 initA_gaincode_rev4_elna = 0x329e;
15661 u16 initA_gaincode_rev5 = 0x729e;
15662 u16 initA_gaincode_rev6 = 0x729e;
15664 u16 clip1hiG_gaincode = 0x107e;
15665 u16 clip1hiG_gaincode_rev4 = 0x007e;
15666 u16 clip1hiG_gaincode_rev5 = 0x1076;
15667 u16 clip1hiG_gaincode_rev6 = 0x007e;
15668 u16 clip1hiA_gaincode = 0x00de;
15669 u16 clip1hiA_gaincode_rev4 = 0x029e;
15670 u16 clip1hiA_gaincode_rev5 = 0x029e;
15671 u16 clip1hiA_gaincode_rev6 = 0x029e;
15672 u16 clip1hi_gaincode;
15673 u16 clip1mdG_gaincode = 0x0066;
15674 u16 clip1mdA_gaincode = 0x00ca;
15675 u16 clip1mdA_gaincode_rev4 = 0x1084;
15676 u16 clip1mdA_gaincode_rev5 = 0x2084;
15677 u16 clip1mdA_gaincode_rev6 = 0x2084;
15678 u16 clip1md_gaincode = 0;
15679 u16 clip1loG_gaincode = 0x0074;
15680 u16 clip1loG_gaincode_rev5[] = {
15681 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
15683 u16 clip1loG_gaincode_rev6[] = {
15684 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
15686 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
15687 u16 clip1loA_gaincode = 0x00cc;
15688 u16 clip1loA_gaincode_rev4 = 0x0086;
15689 u16 clip1loA_gaincode_rev5 = 0x2086;
15690 u16 clip1loA_gaincode_rev6 = 0x2086;
15691 u16 clip1lo_gaincode;
15692 u8 crsminG_th = 0x18;
15693 u8 crsminG_th_rev5 = 0x18;
15694 u8 crsminG_th_rev6 = 0x18;
15695 u8 crsminA_th = 0x1e;
15696 u8 crsminA_th_rev4 = 0x24;
15697 u8 crsminA_th_rev5 = 0x24;
15698 u8 crsminA_th_rev6 = 0x24;
15700 u8 crsminlG_th = 0x18;
15701 u8 crsminlG_th_rev5 = 0x18;
15702 u8 crsminlG_th_rev6 = 0x18;
15703 u8 crsminlA_th = 0x1e;
15704 u8 crsminlA_th_rev4 = 0x24;
15705 u8 crsminlA_th_rev5 = 0x24;
15706 u8 crsminlA_th_rev6 = 0x24;
15708 u8 crsminuG_th = 0x18;
15709 u8 crsminuG_th_rev5 = 0x18;
15710 u8 crsminuG_th_rev6 = 0x18;
15711 u8 crsminuA_th = 0x1e;
15712 u8 crsminuA_th_rev4 = 0x24;
15713 u8 crsminuA_th_rev5 = 0x24;
15714 u8 crsminuA_th_rev6 = 0x24;
15715 u8 crsminuA_th_rev6_224B0 = 0x2d;
15717 u16 nbclipG_th = 0x20d;
15718 u16 nbclipG_th_rev4 = 0x1a1;
15719 u16 nbclipG_th_rev5 = 0x1d0;
15720 u16 nbclipG_th_rev6 = 0x1d0;
15721 u16 nbclipA_th = 0x1a1;
15722 u16 nbclipA_th_rev4 = 0x107;
15723 u16 nbclipA_th_rev5 = 0x0a9;
15724 u16 nbclipA_th_rev6 = 0x0f0;
15727 u8 w1clipG_th_rev5 = 9;
15728 u8 w1clipG_th_rev6 = 5;
15729 u8 w1clipA_th = 25, w1clip_th;
15730 u8 rssi_gain_default = 0x50;
15731 u8 rssiG_gain_rev6_224B0 = 0x50;
15732 u8 rssiA_gain_rev5 = 0x90;
15733 u8 rssiA_gain_rev6 = 0x90;
15738 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
15739 pi->srom_fem2g.triso;
15741 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15742 if (pi->pubpi.radiorev == 5) {
15743 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
15744 } else if (pi->pubpi.radiorev == 7) {
15745 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15747 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
15748 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
15750 } else if ((pi->pubpi.radiorev == 3)
15751 || (pi->pubpi.radiorev == 8)) {
15752 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15754 if (pi->pubpi.radiorev == 8) {
15755 mod_phy_reg(pi, 0x283,
15756 (0xff << 0), (0x44 << 0));
15757 mod_phy_reg(pi, 0x280,
15758 (0xff << 0), (0x44 << 0));
15761 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15763 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15765 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
15767 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15768 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15771 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15772 if (currband == 0) {
15773 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15774 if (pi->pubpi.radiorev == 11) {
15775 lna1_gain_db = lna1G_gain_db_rev6_224B0;
15776 lna2_gain_db = lna2G_gain_db_rev6_224B0;
15778 rfseqG_init_gain_rev6_224B0;
15780 initG_gaincode_rev6_224B0;
15782 clip1hiG_gaincode_rev6;
15784 clip1loG_gaincode_rev6_224B0;
15785 nbclip_th = nbclipG_th_rev6;
15786 w1clip_th = w1clipG_th_rev6;
15787 crsmin_th = crsminG_th_rev6;
15788 crsminl_th = crsminlG_th_rev6;
15789 crsminu_th = crsminuG_th_rev6;
15790 rssi_gain = rssiG_gain_rev6_224B0;
15792 lna1_gain_db = lna1G_gain_db_rev6;
15793 lna2_gain_db = lna2G_gain_db_rev6;
15794 if (pi->sh->boardflags & BFL_EXTLNA) {
15797 rfseqG_init_gain_rev6_elna;
15799 initG_gaincode_rev6_elna;
15802 rfseqG_init_gain_rev6;
15804 initG_gaincode_rev6;
15807 clip1hiG_gaincode_rev6;
15811 clip1loG_gaincode_rev6
15816 clip1loG_gaincode_rev6
15821 clip1loG_gaincode_rev6
15828 clip1loG_gaincode_rev6
15833 clip1loG_gaincode_rev6
15838 clip1loG_gaincode_rev6
15843 clip1loG_gaincode_rev6
15848 clip1loG_gaincode_rev6
15852 nbclip_th = nbclipG_th_rev6;
15853 w1clip_th = w1clipG_th_rev6;
15854 crsmin_th = crsminG_th_rev6;
15855 crsminl_th = crsminlG_th_rev6;
15856 crsminu_th = crsminuG_th_rev6;
15857 rssi_gain = rssi_gain_default;
15859 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15860 lna1_gain_db = lna1G_gain_db_rev5;
15861 lna2_gain_db = lna2G_gain_db_rev5;
15862 if (pi->sh->boardflags & BFL_EXTLNA) {
15865 rfseqG_init_gain_rev5_elna;
15867 initG_gaincode_rev5_elna;
15869 rfseq_init_gain = rfseqG_init_gain_rev5;
15870 init_gaincode = initG_gaincode_rev5;
15872 clip1hi_gaincode = clip1hiG_gaincode_rev5;
15876 clip1loG_gaincode_rev5[0];
15880 clip1loG_gaincode_rev5[1];
15884 clip1loG_gaincode_rev5[2];
15889 clip1loG_gaincode_rev5[3];
15893 clip1loG_gaincode_rev5[4];
15897 clip1loG_gaincode_rev5[5];
15901 clip1loG_gaincode_rev5[6];
15905 clip1loG_gaincode_rev5[7];
15909 clip1loG_gaincode_rev5[3];
15912 nbclip_th = nbclipG_th_rev5;
15913 w1clip_th = w1clipG_th_rev5;
15914 crsmin_th = crsminG_th_rev5;
15915 crsminl_th = crsminlG_th_rev5;
15916 crsminu_th = crsminuG_th_rev5;
15917 rssi_gain = rssi_gain_default;
15918 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15919 lna1_gain_db = lna1G_gain_db_rev4;
15920 lna2_gain_db = lna2G_gain_db;
15921 rfseq_init_gain = rfseqG_init_gain_rev4;
15922 init_gaincode = initG_gaincode_rev4;
15923 clip1hi_gaincode = clip1hiG_gaincode_rev4;
15924 clip1lo_gaincode = clip1loG_gaincode;
15925 nbclip_th = nbclipG_th_rev4;
15926 w1clip_th = w1clipG_th;
15927 crsmin_th = crsminG_th;
15928 crsminl_th = crsminlG_th;
15929 crsminu_th = crsminuG_th;
15930 rssi_gain = rssi_gain_default;
15932 lna1_gain_db = lna1G_gain_db;
15933 lna2_gain_db = lna2G_gain_db;
15934 rfseq_init_gain = rfseqG_init_gain;
15935 init_gaincode = initG_gaincode;
15936 clip1hi_gaincode = clip1hiG_gaincode;
15937 clip1lo_gaincode = clip1loG_gaincode;
15938 nbclip_th = nbclipG_th;
15939 w1clip_th = w1clipG_th;
15940 crsmin_th = crsminG_th;
15941 crsminl_th = crsminlG_th;
15942 crsminu_th = crsminuG_th;
15943 rssi_gain = rssi_gain_default;
15945 tia_gain_db = tiaG_gain_db;
15946 tia_gainbits = tiaG_gainbits;
15947 clip1md_gaincode = clip1mdG_gaincode;
15949 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15950 lna1_gain_db = lna1A_gain_db_rev6;
15951 lna2_gain_db = lna2A_gain_db_rev6;
15952 tia_gain_db = tiaA_gain_db_rev6;
15953 tia_gainbits = tiaA_gainbits_rev6;
15954 rfseq_init_gain = rfseqA_init_gain_rev6;
15955 init_gaincode = initA_gaincode_rev6;
15956 clip1hi_gaincode = clip1hiA_gaincode_rev6;
15957 clip1md_gaincode = clip1mdA_gaincode_rev6;
15958 clip1lo_gaincode = clip1loA_gaincode_rev6;
15959 crsmin_th = crsminA_th_rev6;
15960 crsminl_th = crsminlA_th_rev6;
15961 if ((pi->pubpi.radiorev == 11) &&
15962 (CHSPEC_IS40(pi->radio_chanspec) == 0))
15963 crsminu_th = crsminuA_th_rev6_224B0;
15965 crsminu_th = crsminuA_th_rev6;
15967 nbclip_th = nbclipA_th_rev6;
15968 rssi_gain = rssiA_gain_rev6;
15969 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15970 lna1_gain_db = lna1A_gain_db_rev5;
15971 lna2_gain_db = lna2A_gain_db_rev5;
15972 tia_gain_db = tiaA_gain_db_rev5;
15973 tia_gainbits = tiaA_gainbits_rev5;
15974 rfseq_init_gain = rfseqA_init_gain_rev5;
15975 init_gaincode = initA_gaincode_rev5;
15976 clip1hi_gaincode = clip1hiA_gaincode_rev5;
15977 clip1md_gaincode = clip1mdA_gaincode_rev5;
15978 clip1lo_gaincode = clip1loA_gaincode_rev5;
15979 crsmin_th = crsminA_th_rev5;
15980 crsminl_th = crsminlA_th_rev5;
15981 crsminu_th = crsminuA_th_rev5;
15982 nbclip_th = nbclipA_th_rev5;
15983 rssi_gain = rssiA_gain_rev5;
15984 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15985 lna1_gain_db = lna1A_gain_db_rev4;
15986 lna2_gain_db = lna2A_gain_db_rev4;
15987 tia_gain_db = tiaA_gain_db_rev4;
15988 tia_gainbits = tiaA_gainbits_rev4;
15989 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
15992 rfseqA_init_gain_rev4_elna;
15994 initA_gaincode_rev4_elna;
15996 rfseq_init_gain = rfseqA_init_gain_rev4;
15997 init_gaincode = initA_gaincode_rev4;
15999 clip1hi_gaincode = clip1hiA_gaincode_rev4;
16000 clip1md_gaincode = clip1mdA_gaincode_rev4;
16001 clip1lo_gaincode = clip1loA_gaincode_rev4;
16002 crsmin_th = crsminA_th_rev4;
16003 crsminl_th = crsminlA_th_rev4;
16004 crsminu_th = crsminuA_th_rev4;
16005 nbclip_th = nbclipA_th_rev4;
16006 rssi_gain = rssi_gain_default;
16008 lna1_gain_db = lna1A_gain_db;
16009 lna2_gain_db = lna2A_gain_db;
16010 tia_gain_db = tiaA_gain_db;
16011 tia_gainbits = tiaA_gainbits;
16012 rfseq_init_gain = rfseqA_init_gain;
16013 init_gaincode = initA_gaincode;
16014 clip1hi_gaincode = clip1hiA_gaincode;
16015 clip1md_gaincode = clip1mdA_gaincode;
16016 clip1lo_gaincode = clip1loA_gaincode;
16017 crsmin_th = crsminA_th;
16018 crsminl_th = crsminlA_th;
16019 crsminu_th = crsminuA_th;
16020 nbclip_th = nbclipA_th;
16021 rssi_gain = rssi_gain_default;
16023 w1clip_th = w1clipA_th;
16026 write_radio_reg(pi,
16027 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16028 RADIO_2056_RX0), 0x17);
16029 write_radio_reg(pi,
16030 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16031 RADIO_2056_RX1), 0x17);
16033 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16035 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16038 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16040 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16043 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16045 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16048 write_radio_reg(pi,
16049 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16050 RADIO_2056_RX0), 0x17);
16051 write_radio_reg(pi,
16052 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16053 RADIO_2056_RX1), 0x17);
16055 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16057 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16060 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16062 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16065 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16067 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16070 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16072 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16075 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16077 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16080 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16082 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16084 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16086 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16089 write_phy_reg(pi, 0x20, init_gaincode);
16090 write_phy_reg(pi, 0x2a7, init_gaincode);
16092 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16093 pi->pubpi.phy_corenum, 0x106, 16,
16096 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16097 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16099 write_phy_reg(pi, 0x24, clip1md_gaincode);
16100 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16102 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16103 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16105 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16106 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16107 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16109 write_phy_reg(pi, 0x2b, nbclip_th);
16110 write_phy_reg(pi, 0x41, nbclip_th);
16112 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16113 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16115 write_phy_reg(pi, 0x150, 0x809c);
16119 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16120 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16122 write_phy_reg(pi, 0x2b, 0x84);
16123 write_phy_reg(pi, 0x41, 0x84);
16125 if (CHSPEC_IS20(pi->radio_chanspec)) {
16126 write_phy_reg(pi, 0x6b, 0x2b);
16127 write_phy_reg(pi, 0x6c, 0x2b);
16128 write_phy_reg(pi, 0x6d, 0x9);
16129 write_phy_reg(pi, 0x6e, 0x9);
16132 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16133 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16134 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16136 if (CHSPEC_IS20(pi->radio_chanspec)) {
16137 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16138 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16140 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16141 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16144 write_phy_reg(pi, 0x150, 0x809c);
16146 if (pi->nphy_gain_boost)
16147 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16148 (CHSPEC_IS40(pi->radio_chanspec)))
16152 else if (CHSPEC_IS40(pi->radio_chanspec))
16157 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16158 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16160 for (ctr = 0; ctr < 4; ctr++)
16161 regval[ctr] = (hpf_code << 8) | 0x7c;
16162 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16164 wlc_phy_adjust_lnagaintbl_nphy(pi);
16166 if (pi->nphy_elna_gain_config) {
16171 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16172 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16174 for (ctr = 0; ctr < 4; ctr++)
16175 regval[ctr] = (hpf_code << 8) | 0x74;
16176 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16179 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16180 for (ctr = 0; ctr < 21; ctr++)
16181 regval[ctr] = 3 * ctr;
16182 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16183 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16185 for (ctr = 0; ctr < 21; ctr++)
16186 regval[ctr] = (u16) ctr;
16187 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16188 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16191 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16192 rfseq_updategainu_events,
16193 rfseq_updategainu_dlys,
16194 sizeof(rfseq_updategainu_events) /
16195 sizeof(rfseq_updategainu_events[0]));
16197 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16199 if (CHSPEC_IS2G(pi->radio_chanspec))
16201 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16206 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
16208 u8 rfseq_rx2tx_events[] = {
16209 NPHY_RFSEQ_CMD_NOP,
16210 NPHY_RFSEQ_CMD_RXG_FBW,
16211 NPHY_RFSEQ_CMD_TR_SWITCH,
16212 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16213 NPHY_RFSEQ_CMD_RXPD_TXPD,
16214 NPHY_RFSEQ_CMD_TX_GAIN,
16215 NPHY_RFSEQ_CMD_EXT_PA
16217 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
16218 u8 rfseq_tx2rx_events[] = {
16219 NPHY_RFSEQ_CMD_NOP,
16220 NPHY_RFSEQ_CMD_EXT_PA,
16221 NPHY_RFSEQ_CMD_TX_GAIN,
16222 NPHY_RFSEQ_CMD_RXPD_TXPD,
16223 NPHY_RFSEQ_CMD_TR_SWITCH,
16224 NPHY_RFSEQ_CMD_RXG_FBW,
16225 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
16227 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
16228 u8 rfseq_tx2rx_events_rev3[] = {
16229 NPHY_REV3_RFSEQ_CMD_EXT_PA,
16230 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16231 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16232 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16233 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16234 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16235 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16236 NPHY_REV3_RFSEQ_CMD_END
16238 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
16239 u8 rfseq_rx2tx_events_rev3[] = {
16240 NPHY_REV3_RFSEQ_CMD_NOP,
16241 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16242 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16243 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16244 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16245 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16246 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16247 NPHY_REV3_RFSEQ_CMD_EXT_PA,
16248 NPHY_REV3_RFSEQ_CMD_END
16250 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
16252 u8 rfseq_rx2tx_events_rev3_ipa[] = {
16253 NPHY_REV3_RFSEQ_CMD_NOP,
16254 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16255 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16256 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16257 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16258 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16259 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
16260 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16261 NPHY_REV3_RFSEQ_CMD_END
16263 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
16264 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
16266 s16 alpha0, alpha1, alpha2;
16267 s16 beta0, beta1, beta2;
16268 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
16270 u8 chan_freq_range = 0;
16271 u16 dac_control = 0x0002;
16272 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
16273 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
16274 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16275 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16277 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
16278 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
16279 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
16281 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
16282 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
16283 s32 min_nvar_val = 0x18d;
16284 s32 min_nvar_offset_6mbps = 20;
16288 u16 afectrl_adc_ctrl1_rev7 = 0x20;
16289 u16 afectrl_adc_ctrl2_rev7 = 0x0;
16290 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
16291 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
16292 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
16293 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
16294 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16295 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16296 u16 ipalvlshift_3p3_war_en = 0;
16297 u16 rccal_bcap_val, rccal_scap_val;
16298 u16 rccal_tx20_11b_bcap = 0;
16299 u16 rccal_tx20_11b_scap = 0;
16300 u16 rccal_tx20_11n_bcap = 0;
16301 u16 rccal_tx20_11n_scap = 0;
16302 u16 rccal_tx40_11n_bcap = 0;
16303 u16 rccal_tx40_11n_scap = 0;
16304 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
16305 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
16306 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
16307 u16 tx_lpf_bw_ofdm_20mhz = 0;
16308 u16 tx_lpf_bw_ofdm_40mhz = 0;
16309 u16 tx_lpf_bw_11b = 0;
16310 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
16311 u16 txgm_idac_bleed = 0;
16312 bool rccal_ovrd = false;
16316 if (CHSPEC_IS5G(pi->radio_chanspec))
16317 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
16319 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
16321 if (pi->phyhang_avoid)
16322 wlc_phy_stay_in_carriersearch_nphy(pi, true);
16324 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
16326 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16328 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
16329 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
16331 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
16332 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
16333 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
16334 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
16335 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
16336 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
16337 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
16338 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
16339 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
16340 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
16341 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
16342 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
16343 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
16344 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
16345 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
16346 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
16349 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
16350 write_phy_reg(pi, 0x23f, 0x1b0);
16351 write_phy_reg(pi, 0x240, 0x1b0);
16354 if (NREV_GE(pi->pubpi.phy_rev, 8))
16355 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
16357 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16359 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16362 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16363 1, 0, 32, &leg_data_weights);
16364 leg_data_weights = leg_data_weights & 0xffffff;
16365 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16366 1, 0, 32, &leg_data_weights);
16368 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16370 rfseq_rx2tx_dacbufpu_rev7);
16371 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
16372 rfseq_rx2tx_dacbufpu_rev7);
16375 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16376 rfseq_rx2tx_events_rev3_ipa,
16377 rfseq_rx2tx_dlys_rev3_ipa,
16379 (rfseq_rx2tx_events_rev3_ipa) /
16381 (rfseq_rx2tx_events_rev3_ipa
16384 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
16385 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
16387 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
16388 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
16389 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
16393 if (((pi->pubpi.radiorev == 5)
16394 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
16395 || (pi->pubpi.radiorev == 7)
16396 || (pi->pubpi.radiorev == 8)) {
16401 RADIO_2057_RCCAL_BCAP_VAL);
16405 RADIO_2057_RCCAL_SCAP_VAL);
16407 rccal_tx20_11b_bcap = rccal_bcap_val;
16408 rccal_tx20_11b_scap = rccal_scap_val;
16410 if ((pi->pubpi.radiorev == 5) &&
16411 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
16413 rccal_tx20_11n_bcap = rccal_bcap_val;
16414 rccal_tx20_11n_scap = rccal_scap_val;
16415 rccal_tx40_11n_bcap = 0xc;
16416 rccal_tx40_11n_scap = 0xc;
16420 } else if ((pi->pubpi.radiorev == 7)
16421 || (pi->pubpi.radiorev == 8)) {
16423 tx_lpf_bw_ofdm_20mhz = 4;
16426 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16427 rccal_tx20_11n_bcap = 0xc;
16428 rccal_tx20_11n_scap = 0xc;
16429 rccal_tx40_11n_bcap = 0xa;
16430 rccal_tx40_11n_scap = 0xa;
16432 rccal_tx20_11n_bcap = 0x14;
16433 rccal_tx20_11n_scap = 0x14;
16434 rccal_tx40_11n_bcap = 0xf;
16435 rccal_tx40_11n_scap = 0xf;
16444 if (pi->pubpi.radiorev == 5) {
16446 tx_lpf_bw_ofdm_20mhz = 1;
16447 tx_lpf_bw_ofdm_40mhz = 3;
16452 RADIO_2057_RCCAL_BCAP_VAL);
16456 RADIO_2057_RCCAL_SCAP_VAL);
16458 rccal_tx20_11b_bcap = rccal_bcap_val;
16459 rccal_tx20_11b_scap = rccal_scap_val;
16461 rccal_tx20_11n_bcap = 0x13;
16462 rccal_tx20_11n_scap = 0x11;
16463 rccal_tx40_11n_bcap = 0x13;
16464 rccal_tx40_11n_scap = 0x11;
16472 rx2tx_lpf_rc_lut_tx20_11b =
16473 (rccal_tx20_11b_bcap << 8) |
16474 (rccal_tx20_11b_scap << 3) |
16476 rx2tx_lpf_rc_lut_tx20_11n =
16477 (rccal_tx20_11n_bcap << 8) |
16478 (rccal_tx20_11n_scap << 3) |
16479 tx_lpf_bw_ofdm_20mhz;
16480 rx2tx_lpf_rc_lut_tx40_11n =
16481 (rccal_tx40_11n_bcap << 8) |
16482 (rccal_tx40_11n_scap << 3) |
16483 tx_lpf_bw_ofdm_40mhz;
16485 for (coreNum = 0; coreNum <= 1; coreNum++) {
16486 wlc_phy_table_write_nphy(
16487 pi, NPHY_TBL_ID_RFSEQ,
16489 0x152 + coreNum * 0x10,
16491 &rx2tx_lpf_rc_lut_tx20_11b);
16492 wlc_phy_table_write_nphy(
16493 pi, NPHY_TBL_ID_RFSEQ,
16495 0x153 + coreNum * 0x10,
16497 &rx2tx_lpf_rc_lut_tx20_11n);
16498 wlc_phy_table_write_nphy(
16499 pi, NPHY_TBL_ID_RFSEQ,
16501 0x154 + coreNum * 0x10,
16503 &rx2tx_lpf_rc_lut_tx20_11n);
16504 wlc_phy_table_write_nphy(
16505 pi, NPHY_TBL_ID_RFSEQ,
16507 0x155 + coreNum * 0x10,
16509 &rx2tx_lpf_rc_lut_tx40_11n);
16510 wlc_phy_table_write_nphy(
16511 pi, NPHY_TBL_ID_RFSEQ,
16513 0x156 + coreNum * 0x10,
16515 &rx2tx_lpf_rc_lut_tx40_11n);
16516 wlc_phy_table_write_nphy(
16517 pi, NPHY_TBL_ID_RFSEQ,
16519 0x157 + coreNum * 0x10,
16521 &rx2tx_lpf_rc_lut_tx40_11n);
16522 wlc_phy_table_write_nphy(
16523 pi, NPHY_TBL_ID_RFSEQ,
16525 0x158 + coreNum * 0x10,
16527 &rx2tx_lpf_rc_lut_tx40_11n);
16528 wlc_phy_table_write_nphy(
16529 pi, NPHY_TBL_ID_RFSEQ,
16531 0x159 + coreNum * 0x10,
16533 &rx2tx_lpf_rc_lut_tx40_11n);
16536 wlc_phy_rfctrl_override_nphy_rev7(
16539 NPHY_REV7_RFCTRLOVERRIDE_ID2);
16542 write_phy_reg(pi, 0x32f, 0x3);
16544 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
16545 wlc_phy_rfctrl_override_nphy_rev7(
16548 NPHY_REV7_RFCTRLOVERRIDE_ID0);
16550 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
16551 (pi->pubpi.radiorev == 6)) {
16552 if ((pi->sh->sromrev >= 8)
16553 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
16554 ipalvlshift_3p3_war_en = 1;
16556 if (ipalvlshift_3p3_war_en) {
16557 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
16559 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
16561 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
16563 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
16566 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
16569 ipa2g_mainbias = 0x1f;
16571 ipa2g_casconv = 0x6f;
16573 ipa2g_biasfilt = 0xaa;
16576 ipa2g_mainbias = 0x2b;
16578 ipa2g_casconv = 0x7f;
16580 ipa2g_biasfilt = 0xee;
16583 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16584 for (coreNum = 0; coreNum <= 1; coreNum++) {
16585 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16586 coreNum, IPA2G_IMAIN,
16588 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16589 coreNum, IPA2G_CASCONV,
16591 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16600 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16601 if ((pi->pubpi.radiorev == 3)
16602 || (pi->pubpi.radiorev == 4)
16603 || (pi->pubpi.radiorev == 6))
16604 txgm_idac_bleed = 0x7f;
16606 for (coreNum = 0; coreNum <= 1; coreNum++) {
16607 if (txgm_idac_bleed != 0)
16615 if (pi->pubpi.radiorev == 5) {
16617 for (coreNum = 0; coreNum <= 1;
16619 WRITE_RADIO_REG4(pi, RADIO_2057,
16623 WRITE_RADIO_REG4(pi, RADIO_2057,
16632 WRITE_RADIO_REG4(pi, RADIO_2057,
16639 PAD_BIAS_FILTER_BWS,
16643 } else if ((pi->pubpi.radiorev == 7)
16644 || (pi->pubpi.radiorev == 8)) {
16646 if (CHSPEC_IS40(pi->radio_chanspec) ==
16648 WRITE_RADIO_REG4(pi, RADIO_2057,
16652 WRITE_RADIO_REG4(pi, RADIO_2057,
16657 WRITE_RADIO_REG4(pi, RADIO_2057,
16661 WRITE_RADIO_REG4(pi, RADIO_2057,
16669 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(
16670 pi->radio_chanspec));
16671 if (((freq >= 5180) && (freq <= 5230))
16672 || ((freq >= 5745) && (freq <= 5805))) {
16673 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16674 0, IPA5G_BIAS_FILTER,
16676 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16677 1, IPA5G_BIAS_FILTER,
16683 if (pi->pubpi.radiorev != 5) {
16684 for (coreNum = 0; coreNum <= 1; coreNum++) {
16685 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16687 TXMIX2G_TUNE_BOOST_PU,
16689 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16691 TXGM_IDAC_BLEED, 0x70);
16696 if (pi->pubpi.radiorev == 4) {
16697 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16699 &afectrl_adc_ctrl1_rev7);
16700 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16702 &afectrl_adc_ctrl1_rev7);
16704 for (coreNum = 0; coreNum <= 1; coreNum++) {
16705 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16706 AFE_VCM_CAL_MASTER, 0x0);
16707 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16708 AFE_SET_VCM_I, 0x3f);
16709 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16710 AFE_SET_VCM_Q, 0x3f);
16713 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
16714 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
16715 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
16716 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
16718 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
16719 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
16720 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
16721 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
16723 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16725 &afectrl_adc_ctrl2_rev7);
16726 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16728 &afectrl_adc_ctrl2_rev7);
16730 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
16731 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
16732 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
16733 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
16736 write_phy_reg(pi, 0x6a, 0x2);
16738 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
16739 &min_nvar_offset_6mbps);
16741 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
16742 &rfseq_pktgn_lpf_hpc_rev7);
16744 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
16745 &rfseq_pktgn_lpf_h_hpc_rev7);
16747 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
16748 &rfseq_htpktgn_lpf_hpc_rev7);
16750 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
16751 &rfseq_cckpktgn_lpf_hpc_rev7);
16753 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
16754 &rfseq_tx2rx_lpf_h_hpc_rev7);
16756 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
16757 &rfseq_rx2tx_lpf_h_hpc_rev7);
16759 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16760 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16761 32, &min_nvar_val);
16762 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16763 127, 32, &min_nvar_val);
16765 min_nvar_val = noise_var_tbl_rev7[3];
16766 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16767 32, &min_nvar_val);
16769 min_nvar_val = noise_var_tbl_rev7[127];
16770 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16771 127, 32, &min_nvar_val);
16774 wlc_phy_workarounds_nphy_gainctrl(pi);
16777 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16778 pdetrange : pi->srom_fem2g.pdetrange;
16780 if (pdetrange == 0) {
16782 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16783 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16784 aux_adc_vmid_rev7_core0[3] = 0x70;
16785 aux_adc_vmid_rev7_core1[3] = 0x70;
16786 aux_adc_gain_rev7[3] = 2;
16788 aux_adc_vmid_rev7_core0[3] = 0x80;
16789 aux_adc_vmid_rev7_core1[3] = 0x80;
16790 aux_adc_gain_rev7[3] = 3;
16792 } else if (pdetrange == 1) {
16793 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16794 aux_adc_vmid_rev7_core0[3] = 0x7c;
16795 aux_adc_vmid_rev7_core1[3] = 0x7c;
16796 aux_adc_gain_rev7[3] = 2;
16798 aux_adc_vmid_rev7_core0[3] = 0x8c;
16799 aux_adc_vmid_rev7_core1[3] = 0x8c;
16800 aux_adc_gain_rev7[3] = 1;
16802 } else if (pdetrange == 2) {
16803 if (pi->pubpi.radioid == BCM2057_ID) {
16804 if ((pi->pubpi.radiorev == 5)
16805 || (pi->pubpi.radiorev == 7)
16806 || (pi->pubpi.radiorev == 8)) {
16807 if (chan_freq_range ==
16808 WL_CHAN_FREQ_RANGE_2G) {
16809 aux_adc_vmid_rev7_core0[3] =
16811 aux_adc_vmid_rev7_core1[3] =
16813 aux_adc_gain_rev7[3] = 0;
16815 aux_adc_vmid_rev7_core0[3] =
16817 aux_adc_vmid_rev7_core1[3] =
16819 aux_adc_gain_rev7[3] = 0;
16824 } else if (pdetrange == 3) {
16825 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
16826 aux_adc_vmid_rev7_core0[3] = 0x89;
16827 aux_adc_vmid_rev7_core1[3] = 0x89;
16828 aux_adc_gain_rev7[3] = 0;
16831 } else if (pdetrange == 5) {
16833 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16834 aux_adc_vmid_rev7_core0[3] = 0x80;
16835 aux_adc_vmid_rev7_core1[3] = 0x80;
16836 aux_adc_gain_rev7[3] = 3;
16838 aux_adc_vmid_rev7_core0[3] = 0x70;
16839 aux_adc_vmid_rev7_core1[3] = 0x70;
16840 aux_adc_gain_rev7[3] = 2;
16844 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
16845 &aux_adc_vmid_rev7_core0);
16846 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
16847 &aux_adc_vmid_rev7_core1);
16848 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
16849 &aux_adc_gain_rev7);
16850 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
16851 &aux_adc_gain_rev7);
16853 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16855 write_phy_reg(pi, 0x23f, 0x1f8);
16856 write_phy_reg(pi, 0x240, 0x1f8);
16858 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16859 1, 0, 32, &leg_data_weights);
16860 leg_data_weights = leg_data_weights & 0xffffff;
16861 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16862 1, 0, 32, &leg_data_weights);
16870 write_phy_reg(pi, 0x145, alpha0);
16871 write_phy_reg(pi, 0x146, alpha1);
16872 write_phy_reg(pi, 0x147, alpha2);
16873 write_phy_reg(pi, 0x148, beta0);
16874 write_phy_reg(pi, 0x149, beta1);
16875 write_phy_reg(pi, 0x14a, beta2);
16877 write_phy_reg(pi, 0x38, 0xC);
16878 write_phy_reg(pi, 0x2ae, 0xC);
16880 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
16881 rfseq_tx2rx_events_rev3,
16882 rfseq_tx2rx_dlys_rev3,
16883 sizeof(rfseq_tx2rx_events_rev3) /
16884 sizeof(rfseq_tx2rx_events_rev3[0]));
16887 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16888 rfseq_rx2tx_events_rev3_ipa,
16889 rfseq_rx2tx_dlys_rev3_ipa,
16891 (rfseq_rx2tx_events_rev3_ipa) /
16893 (rfseq_rx2tx_events_rev3_ipa
16896 if ((pi->sh->hw_phyrxchain != 0x3) &&
16897 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
16900 rfseq_rx2tx_dlys_rev3[5] = 59;
16901 rfseq_rx2tx_dlys_rev3[6] = 1;
16902 rfseq_rx2tx_events_rev3[7] =
16903 NPHY_REV3_RFSEQ_CMD_END;
16906 wlc_phy_set_rfseq_nphy(
16907 pi, NPHY_RFSEQ_RX2TX,
16908 rfseq_rx2tx_events_rev3,
16909 rfseq_rx2tx_dlys_rev3,
16910 sizeof(rfseq_rx2tx_events_rev3) /
16911 sizeof(rfseq_rx2tx_events_rev3[0]));
16914 if (CHSPEC_IS2G(pi->radio_chanspec))
16915 write_phy_reg(pi, 0x6a, 0x2);
16917 write_phy_reg(pi, 0x6a, 0x9c40);
16919 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
16921 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16922 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16923 32, &min_nvar_val);
16924 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16925 127, 32, &min_nvar_val);
16927 min_nvar_val = noise_var_tbl_rev3[3];
16928 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16929 32, &min_nvar_val);
16931 min_nvar_val = noise_var_tbl_rev3[127];
16932 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16933 127, 32, &min_nvar_val);
16936 wlc_phy_workarounds_nphy_gainctrl(pi);
16938 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16940 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16944 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16945 pdetrange : pi->srom_fem2g.pdetrange;
16947 if (pdetrange == 0) {
16948 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16949 aux_adc_vmid = aux_adc_vmid_rev4;
16950 aux_adc_gain = aux_adc_gain_rev4;
16952 aux_adc_vmid = aux_adc_vmid_rev3;
16953 aux_adc_gain = aux_adc_gain_rev3;
16956 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16957 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16958 switch (chan_freq_range) {
16959 case WL_CHAN_FREQ_RANGE_5GL:
16960 aux_adc_vmid[3] = 0x89;
16961 aux_adc_gain[3] = 0;
16963 case WL_CHAN_FREQ_RANGE_5GM:
16964 aux_adc_vmid[3] = 0x89;
16965 aux_adc_gain[3] = 0;
16967 case WL_CHAN_FREQ_RANGE_5GH:
16968 aux_adc_vmid[3] = 0x89;
16969 aux_adc_gain[3] = 0;
16975 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16976 0x08, 16, aux_adc_vmid);
16977 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16978 0x18, 16, aux_adc_vmid);
16979 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16980 0x0c, 16, aux_adc_gain);
16981 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16982 0x1c, 16, aux_adc_gain);
16983 } else if (pdetrange == 1) {
16984 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16985 0x08, 16, sk_adc_vmid);
16986 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16987 0x18, 16, sk_adc_vmid);
16988 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16989 0x0c, 16, sk_adc_gain);
16990 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16991 0x1c, 16, sk_adc_gain);
16992 } else if (pdetrange == 2) {
16994 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16995 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16997 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16999 wlc_phy_get_chan_freq_range_nphy(pi, 0);
17000 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
17001 bcm_adc_vmid[3] = 0x8e;
17002 bcm_adc_gain[3] = 0x03;
17004 bcm_adc_vmid[3] = 0x94;
17005 bcm_adc_gain[3] = 0x03;
17007 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
17008 bcm_adc_vmid[3] = 0x84;
17009 bcm_adc_gain[3] = 0x02;
17012 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17013 0x08, 16, bcm_adc_vmid);
17014 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17015 0x18, 16, bcm_adc_vmid);
17016 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17017 0x0c, 16, bcm_adc_gain);
17018 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17019 0x1c, 16, bcm_adc_gain);
17020 } else if (pdetrange == 3) {
17022 wlc_phy_get_chan_freq_range_nphy(pi, 0);
17023 if ((NREV_GE(pi->pubpi.phy_rev, 4))
17024 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
17026 u16 auxadc_vmid[] = {
17027 0xa2, 0xb4, 0xb4, 0x270
17029 u16 auxadc_gain[] = {
17030 0x02, 0x02, 0x02, 0x00
17033 wlc_phy_table_write_nphy(pi,
17034 NPHY_TBL_ID_AFECTRL, 4,
17035 0x08, 16, auxadc_vmid);
17036 wlc_phy_table_write_nphy(pi,
17037 NPHY_TBL_ID_AFECTRL, 4,
17038 0x18, 16, auxadc_vmid);
17039 wlc_phy_table_write_nphy(pi,
17040 NPHY_TBL_ID_AFECTRL, 4,
17041 0x0c, 16, auxadc_gain);
17042 wlc_phy_table_write_nphy(pi,
17043 NPHY_TBL_ID_AFECTRL, 4,
17044 0x1c, 16, auxadc_gain);
17046 } else if ((pdetrange == 4) || (pdetrange == 5)) {
17047 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
17048 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
17049 u16 Vmid[2], Av[2];
17052 wlc_phy_get_chan_freq_range_nphy(pi, 0);
17053 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
17054 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
17055 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
17056 Av[0] = (pdetrange == 4) ? 2 : 0;
17057 Av[1] = (pdetrange == 4) ? 2 : 0;
17059 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
17060 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
17061 Av[0] = (pdetrange == 4) ? 2 : 0;
17062 Av[1] = (pdetrange == 4) ? 2 : 0;
17065 bcm_adc_vmid[3] = Vmid[0];
17066 bcm_adc_gain[3] = Av[0];
17067 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17068 0x08, 16, bcm_adc_vmid);
17069 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17070 0x0c, 16, bcm_adc_gain);
17072 bcm_adc_vmid[3] = Vmid[1];
17073 bcm_adc_gain[3] = Av[1];
17074 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17075 0x18, 16, bcm_adc_vmid);
17076 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17077 0x1c, 16, bcm_adc_gain);
17080 write_radio_reg(pi,
17081 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
17083 write_radio_reg(pi,
17084 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
17087 write_radio_reg(pi,
17088 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
17090 write_radio_reg(pi,
17091 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
17094 write_radio_reg(pi,
17095 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
17097 write_radio_reg(pi,
17098 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
17101 write_radio_reg(pi,
17102 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
17104 write_radio_reg(pi,
17105 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
17108 write_radio_reg(pi,
17109 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
17111 write_radio_reg(pi,
17112 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
17115 write_radio_reg(pi,
17116 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
17118 write_radio_reg(pi,
17119 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
17123 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
17124 triso : pi->srom_fem2g.triso;
17126 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
17127 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
17130 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
17132 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
17133 (CHSPEC_IS5G(pi->radio_chanspec))) ||
17134 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
17135 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
17136 (CHSPEC_IS2G(pi->radio_chanspec)))) {
17137 nss1_data_weights = 0x00088888;
17138 ht_data_weights = 0x00088888;
17139 stbc_data_weights = 0x00088888;
17141 nss1_data_weights = 0x88888888;
17142 ht_data_weights = 0x88888888;
17143 stbc_data_weights = 0x88888888;
17145 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17146 1, 1, 32, &nss1_data_weights);
17147 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17148 1, 2, 32, &ht_data_weights);
17149 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17150 1, 3, 32, &stbc_data_weights);
17152 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17153 if (CHSPEC_IS5G(pi->radio_chanspec)) {
17154 write_radio_reg(pi,
17155 RADIO_2056_TX_GMBB_IDAC |
17156 RADIO_2056_TX0, 0x70);
17157 write_radio_reg(pi,
17158 RADIO_2056_TX_GMBB_IDAC |
17159 RADIO_2056_TX1, 0x70);
17163 if (!pi->edcrs_threshold_lock) {
17164 write_phy_reg(pi, 0x224, 0x3eb);
17165 write_phy_reg(pi, 0x225, 0x3eb);
17166 write_phy_reg(pi, 0x226, 0x341);
17167 write_phy_reg(pi, 0x227, 0x341);
17168 write_phy_reg(pi, 0x228, 0x42b);
17169 write_phy_reg(pi, 0x229, 0x42b);
17170 write_phy_reg(pi, 0x22a, 0x381);
17171 write_phy_reg(pi, 0x22b, 0x381);
17172 write_phy_reg(pi, 0x22c, 0x42b);
17173 write_phy_reg(pi, 0x22d, 0x42b);
17174 write_phy_reg(pi, 0x22e, 0x381);
17175 write_phy_reg(pi, 0x22f, 0x381);
17178 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
17180 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK)
17181 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
17183 MHF4_BPHY_TXCORE0, BRCM_BAND_ALL);
17187 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
17188 (pi->sh->boardtype == 0x8b)) {
17190 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
17191 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
17192 rfseq_rx2tx_dlys[i] = war_dlys[i];
17195 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
17196 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
17197 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
17199 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
17200 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
17204 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, ®val);
17205 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, ®val);
17207 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17209 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, ®val);
17210 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, ®val);
17213 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17215 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, ®val);
17216 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, ®val);
17219 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, ®val);
17220 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, ®val);
17223 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, ®val);
17224 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, ®val);
17227 write_phy_reg(pi, 0xf8, 0x02d8);
17228 write_phy_reg(pi, 0xf9, 0x0301);
17229 write_phy_reg(pi, 0xfa, 0x02d8);
17230 write_phy_reg(pi, 0xfb, 0x0301);
17232 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
17234 sizeof(rfseq_rx2tx_events) /
17235 sizeof(rfseq_rx2tx_events[0]));
17237 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
17239 sizeof(rfseq_tx2rx_events) /
17240 sizeof(rfseq_tx2rx_events[0]));
17242 wlc_phy_workarounds_nphy_gainctrl(pi);
17244 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17246 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
17247 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
17248 MHF3_NPHY_MLADV_WAR,
17249 MHF3_NPHY_MLADV_WAR,
17252 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
17253 write_phy_reg(pi, 0x1e3, 0x0);
17254 write_phy_reg(pi, 0x1e4, 0x0);
17257 if (NREV_LT(pi->pubpi.phy_rev, 2))
17258 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
17266 write_phy_reg(pi, 0x145, alpha0);
17267 write_phy_reg(pi, 0x146, alpha1);
17268 write_phy_reg(pi, 0x147, alpha2);
17269 write_phy_reg(pi, 0x148, beta0);
17270 write_phy_reg(pi, 0x149, beta1);
17271 write_phy_reg(pi, 0x14a, beta2);
17273 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17274 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
17276 write_phy_reg(pi, 0x192, 0xb5);
17277 write_phy_reg(pi, 0x193, 0xa4);
17278 write_phy_reg(pi, 0x194, 0x0);
17281 if (NREV_IS(pi->pubpi.phy_rev, 2))
17282 mod_phy_reg(pi, 0x221,
17283 NPHY_FORCESIG_DECODEGATEDCLKS,
17284 NPHY_FORCESIG_DECODEGATEDCLKS);
17287 if (pi->phyhang_avoid)
17288 wlc_phy_stay_in_carriersearch_nphy(pi, false);
17291 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
17294 u16 addr_offset = 0x2c5;
17296 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
17297 write_phy_reg(pi, addr_offset + j,
17298 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
17301 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
17305 vals[0] = read_phy_reg(pi, 0x2c);
17306 vals[1] = read_phy_reg(pi, 0x42);
17308 write_phy_reg(pi, 0x2c, vals[0]);
17309 write_phy_reg(pi, 0x42, vals[1]);
17313 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
17317 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17318 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17319 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17320 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17321 TX_SSI_MASTER, 0x5);
17322 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17325 if (pi->pubpi.radiorev != 5)
17326 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17329 if (!NREV_IS(pi->pubpi.phy_rev, 7))
17330 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17333 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17334 core, TSSIG, 0x31);
17336 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17337 TX_SSI_MASTER, 0x9);
17338 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17340 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17343 if (pi->pubpi.radiorev != 5) {
17344 if (!NREV_IS(pi->pubpi.phy_rev, 7))
17345 WRITE_RADIO_REG3(pi, RADIO_2057,
17349 WRITE_RADIO_REG3(pi, RADIO_2057,
17354 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
17356 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
17358 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
17360 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
17364 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
17365 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
17367 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
17368 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
17370 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17371 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
17373 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
17375 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
17377 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
17379 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
17381 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
17383 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
17386 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17387 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17388 TX_SSI_MASTER, 0x5);
17390 if (pi->pubpi.radiorev != 5)
17391 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17393 if (NREV_GE(pi->pubpi.phy_rev, 5))
17394 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17395 core, TSSIG, 0x31);
17397 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17398 core, TSSIG, 0x11);
17399 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17402 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17403 TX_SSI_MASTER, 0x9);
17404 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17406 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17408 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17416 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
17417 u8 core_mask, u8 off)
17420 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
17422 u8 shift = 0, val_shift = 0;
17424 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
17427 for (core_num = 0; core_num < 2; core_num++) {
17431 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17432 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17433 val_mask = (0x1 << 0);
17437 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17438 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17439 val_mask = (0x1 << 1);
17443 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17444 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17445 val_mask = (0x1 << 2);
17449 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17450 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17451 val_mask = (0x1 << 4);
17455 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17456 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17457 val_mask = (0x1 << 5);
17461 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17462 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17463 val_mask = (0x1 << 6);
17467 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17468 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17469 val_mask = (0x1 << 7);
17473 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17474 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17475 val_mask = (0x7 << 8);
17479 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17480 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17481 val_mask = (0x7 << 13);
17486 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17487 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17488 val_mask = (0x7 << 0);
17493 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17494 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17495 val_mask = (0x7 << 4);
17500 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17501 val_addr = (core_num == 0) ? 0x7b : 0x7e;
17502 val_mask = (0xffff << 0);
17506 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17507 val_addr = (core_num == 0) ? 0x7c : 0x7f;
17508 val_mask = (0xffff << 0);
17512 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17513 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17514 val_mask = (0x3 << 6);
17518 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
17519 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17520 val_mask = (0x1 << 15);
17529 and_phy_reg(pi, en_addr, ~en_mask);
17530 and_phy_reg(pi, val_addr, ~val_mask);
17533 if ((core_mask == 0)
17534 || (core_mask & (1 << core_num))) {
17535 or_phy_reg(pi, en_addr, en_mask);
17537 if (addr != 0xffff)
17538 mod_phy_reg(pi, val_addr,
17548 and_phy_reg(pi, 0xec, ~field);
17551 or_phy_reg(pi, 0xec, field);
17554 for (core_num = 0; core_num < 2; core_num++) {
17573 addr = (core_num == 0) ? 0x7a : 0x7d;
17576 addr = (core_num == 0) ? 0x7b : 0x7e;
17579 addr = (core_num == 0) ? 0x7c : 0x7f;
17603 mask = (0xf << 12);
17648 if ((addr != 0xffff) && (core_mask & (1 << core_num)))
17649 mod_phy_reg(pi, addr, mask, (value << shift));
17652 or_phy_reg(pi, 0xec, (0x1 << 0));
17653 or_phy_reg(pi, 0x78, (0x1 << 0));
17655 and_phy_reg(pi, 0xec, ~(0x1 << 0));
17659 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
17664 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
17669 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
17671 if (NREV_GE(pi->pubpi.phy_rev, 7))
17672 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17674 NPHY_REV7_RFCTRLOVERRIDE_ID0);
17675 else if (NREV_GE(pi->pubpi.phy_rev, 3))
17676 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
17678 wlc_phy_stopplayback_nphy(pi);
17680 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
17684 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
17686 wlc_phy_stopplayback_nphy(pi);
17687 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
17689 if (NREV_GE(pi->pubpi.phy_rev, 7))
17690 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17692 NPHY_REV7_RFCTRLOVERRIDE_ID0);
17693 else if (NREV_GE(pi->pubpi.phy_rev, 3))
17694 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
17696 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17698 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17699 (u8) ((int_val >> 24) & 0xff);
17700 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17701 (u8) ((int_val >> 24) & 0xff);
17703 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17704 (u8) ((int_val >> 8) & 0xff);
17705 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17706 (u8) ((int_val >> 8) & 0xff);
17708 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17709 (u8) ((int_val >> 24) & 0xff);
17711 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17712 (u8) ((int_val >> 8) & 0xff);
17714 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17715 (u8) ((int_val >> 16) & 0xff);
17716 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17717 (u8) ((int_val) & 0xff);
17722 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
17724 u8 idx, idx2, i, delta_ind;
17726 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++)
17727 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
17729 for (i = 0; i < 4; i++) {
17737 if (CHSPEC_IS40(pi->radio_chanspec)
17738 && NPHY_IS_SROM_REINTERPRET) {
17739 idx = TXP_FIRST_MCS_40_SISO;
17741 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17742 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
17749 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17750 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
17755 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17756 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
17761 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17762 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
17766 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17767 pi->tx_power_offset[idx];
17768 idx = idx + delta_ind;
17769 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17770 pi->tx_power_offset[idx];
17771 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17772 pi->tx_power_offset[idx];
17773 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17774 pi->tx_power_offset[idx++];
17776 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17777 pi->tx_power_offset[idx++];
17778 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17779 pi->tx_power_offset[idx];
17780 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17781 pi->tx_power_offset[idx];
17782 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17783 pi->tx_power_offset[idx++];
17785 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17786 pi->tx_power_offset[idx++];
17787 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17788 pi->tx_power_offset[idx];
17789 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17790 pi->tx_power_offset[idx];
17791 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17792 pi->tx_power_offset[idx++];
17794 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17795 pi->tx_power_offset[idx];
17796 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17797 pi->tx_power_offset[idx++];
17798 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17799 pi->tx_power_offset[idx];
17800 idx = idx + 1 - delta_ind;
17801 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17802 pi->tx_power_offset[idx];
17804 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17805 pi->tx_power_offset[idx];
17806 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17807 pi->tx_power_offset[idx];
17808 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17809 pi->tx_power_offset[idx];
17810 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17811 pi->tx_power_offset[idx];
17815 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
17818 s16 a1[2], b0[2], b1[2];
17819 s8 target_pwr_qtrdbm[2];
17820 s32 num, den, pwr_est;
17821 u8 chan_freq_range;
17823 u32 tbl_id, tbl_len, tbl_offset;
17827 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17828 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17829 (void)R_REG(&pi->regs->maccontrol);
17833 if (pi->phyhang_avoid)
17834 wlc_phy_stay_in_carriersearch_nphy(pi, true);
17836 or_phy_reg(pi, 0x122, (0x1 << 0));
17838 if (NREV_GE(pi->pubpi.phy_rev, 3))
17839 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
17841 or_phy_reg(pi, 0x1e7, (0x1 << 15));
17843 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17844 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17846 if (pi->sh->sromrev < 4) {
17847 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17848 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17849 target_pwr_qtrdbm[0] = 13 * 4;
17850 target_pwr_qtrdbm[1] = 13 * 4;
17859 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
17860 switch (chan_freq_range) {
17861 case WL_CHAN_FREQ_RANGE_2G:
17862 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17863 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17864 target_pwr_qtrdbm[0] =
17865 pi->nphy_pwrctrl_info[0].max_pwr_2g;
17866 target_pwr_qtrdbm[1] =
17867 pi->nphy_pwrctrl_info[1].max_pwr_2g;
17868 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
17869 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
17870 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
17871 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
17872 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
17873 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
17875 case WL_CHAN_FREQ_RANGE_5GL:
17876 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17877 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17878 target_pwr_qtrdbm[0] =
17879 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
17880 target_pwr_qtrdbm[1] =
17881 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
17882 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
17883 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
17884 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
17885 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
17886 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
17887 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
17889 case WL_CHAN_FREQ_RANGE_5GM:
17890 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17891 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17892 target_pwr_qtrdbm[0] =
17893 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
17894 target_pwr_qtrdbm[1] =
17895 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
17896 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
17897 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
17898 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
17899 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
17900 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
17901 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
17903 case WL_CHAN_FREQ_RANGE_5GH:
17904 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17905 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17906 target_pwr_qtrdbm[0] =
17907 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
17908 target_pwr_qtrdbm[1] =
17909 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
17910 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
17911 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
17912 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
17913 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
17914 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
17915 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
17918 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17919 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17920 target_pwr_qtrdbm[0] = 13 * 4;
17921 target_pwr_qtrdbm[1] = 13 * 4;
17932 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
17933 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
17935 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17936 if (pi->srom_fem2g.tssipos)
17937 or_phy_reg(pi, 0x1e9, (0x1 << 14));
17939 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17940 for (core = 0; core <= 1; core++) {
17942 if (CHSPEC_IS2G(pi->radio_chanspec))
17943 WRITE_RADIO_REG3(pi, RADIO_2057,
17948 WRITE_RADIO_REG3(pi, RADIO_2057,
17957 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17960 (pi->radio_chanspec)) ?
17962 write_radio_reg(pi,
17963 RADIO_2056_TX_TX_SSI_MUX |
17966 (pi->radio_chanspec)) ?
17970 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17971 RADIO_2056_TX0, 0x11);
17972 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17973 RADIO_2056_TX1, 0x11);
17978 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17979 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17980 (void)R_REG(&pi->regs->maccontrol);
17984 if (NREV_GE(pi->pubpi.phy_rev, 7))
17985 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17986 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17988 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17989 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17991 if (NREV_GE(pi->pubpi.phy_rev, 7))
17992 mod_phy_reg(pi, 0x222, (0xff << 0),
17993 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17994 else if (NREV_GT(pi->pubpi.phy_rev, 1))
17995 mod_phy_reg(pi, 0x222, (0xff << 0),
17996 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17998 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17999 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
18001 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
18003 write_phy_reg(pi, 0x1e9,
18004 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
18006 write_phy_reg(pi, 0x1ea,
18007 (target_pwr_qtrdbm[0] << 0) |
18008 (target_pwr_qtrdbm[1] << 8));
18012 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
18013 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
18015 for (idx = 0; idx < tbl_len; idx++) {
18017 (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
18018 den = 32768 + a1[tbl_id - 26] * idx;
18019 pwr_est = max(((4 * num + den / 2) / den), -8);
18020 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
18022 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
18026 [tbl_id - 26] + 1);
18028 regval[idx] = (u32) pwr_est;
18030 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18034 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
18035 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
18036 pi->adj_pwr_tbl_nphy);
18037 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
18038 pi->adj_pwr_tbl_nphy);
18040 if (pi->phyhang_avoid)
18041 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18044 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
18046 u32 *tx_pwrctrl_tbl = NULL;
18048 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18049 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18050 if ((pi->pubpi.radiorev == 4)
18051 || (pi->pubpi.radiorev == 6))
18053 nphy_tpc_txgain_ipa_2g_2057rev4n6;
18054 else if (pi->pubpi.radiorev == 3)
18056 nphy_tpc_txgain_ipa_2g_2057rev3;
18057 else if (pi->pubpi.radiorev == 5)
18059 nphy_tpc_txgain_ipa_2g_2057rev5;
18060 else if ((pi->pubpi.radiorev == 7)
18061 || (pi->pubpi.radiorev == 8))
18063 nphy_tpc_txgain_ipa_2g_2057rev7;
18064 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18065 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
18066 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18067 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
18069 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
18073 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18074 if ((pi->pubpi.radiorev == 3) ||
18075 (pi->pubpi.radiorev == 4) ||
18076 (pi->pubpi.radiorev == 6))
18077 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
18078 else if ((pi->pubpi.radiorev == 7)
18079 || (pi->pubpi.radiorev == 8))
18081 nphy_tpc_txgain_ipa_5g_2057rev7;
18083 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
18087 return tx_pwrctrl_tbl;
18090 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
18092 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18093 if (pi->nphy_rssical_chanspec_2G == 0)
18096 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18097 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
18098 RADIO_2057_VCM_MASK,
18100 rssical_radio_regs_2G[0]);
18101 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
18102 RADIO_2057_VCM_MASK,
18104 rssical_radio_regs_2G[1]);
18107 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
18108 RADIO_2056_VCM_MASK,
18110 rssical_radio_regs_2G[0]);
18112 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
18113 RADIO_2056_VCM_MASK,
18115 rssical_radio_regs_2G[1]);
18118 write_phy_reg(pi, 0x1a6,
18119 pi->rssical_cache.rssical_phyregs_2G[0]);
18120 write_phy_reg(pi, 0x1ac,
18121 pi->rssical_cache.rssical_phyregs_2G[1]);
18122 write_phy_reg(pi, 0x1b2,
18123 pi->rssical_cache.rssical_phyregs_2G[2]);
18124 write_phy_reg(pi, 0x1b8,
18125 pi->rssical_cache.rssical_phyregs_2G[3]);
18126 write_phy_reg(pi, 0x1a4,
18127 pi->rssical_cache.rssical_phyregs_2G[4]);
18128 write_phy_reg(pi, 0x1aa,
18129 pi->rssical_cache.rssical_phyregs_2G[5]);
18130 write_phy_reg(pi, 0x1b0,
18131 pi->rssical_cache.rssical_phyregs_2G[6]);
18132 write_phy_reg(pi, 0x1b6,
18133 pi->rssical_cache.rssical_phyregs_2G[7]);
18134 write_phy_reg(pi, 0x1a5,
18135 pi->rssical_cache.rssical_phyregs_2G[8]);
18136 write_phy_reg(pi, 0x1ab,
18137 pi->rssical_cache.rssical_phyregs_2G[9]);
18138 write_phy_reg(pi, 0x1b1,
18139 pi->rssical_cache.rssical_phyregs_2G[10]);
18140 write_phy_reg(pi, 0x1b7,
18141 pi->rssical_cache.rssical_phyregs_2G[11]);
18144 if (pi->nphy_rssical_chanspec_5G == 0)
18147 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18148 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
18149 RADIO_2057_VCM_MASK,
18151 rssical_radio_regs_5G[0]);
18152 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
18153 RADIO_2057_VCM_MASK,
18155 rssical_radio_regs_5G[1]);
18158 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
18159 RADIO_2056_VCM_MASK,
18161 rssical_radio_regs_5G[0]);
18163 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
18164 RADIO_2056_VCM_MASK,
18166 rssical_radio_regs_5G[1]);
18169 write_phy_reg(pi, 0x1a6,
18170 pi->rssical_cache.rssical_phyregs_5G[0]);
18171 write_phy_reg(pi, 0x1ac,
18172 pi->rssical_cache.rssical_phyregs_5G[1]);
18173 write_phy_reg(pi, 0x1b2,
18174 pi->rssical_cache.rssical_phyregs_5G[2]);
18175 write_phy_reg(pi, 0x1b8,
18176 pi->rssical_cache.rssical_phyregs_5G[3]);
18177 write_phy_reg(pi, 0x1a4,
18178 pi->rssical_cache.rssical_phyregs_5G[4]);
18179 write_phy_reg(pi, 0x1aa,
18180 pi->rssical_cache.rssical_phyregs_5G[5]);
18181 write_phy_reg(pi, 0x1b0,
18182 pi->rssical_cache.rssical_phyregs_5G[6]);
18183 write_phy_reg(pi, 0x1b6,
18184 pi->rssical_cache.rssical_phyregs_5G[7]);
18185 write_phy_reg(pi, 0x1a5,
18186 pi->rssical_cache.rssical_phyregs_5G[8]);
18187 write_phy_reg(pi, 0x1ab,
18188 pi->rssical_cache.rssical_phyregs_5G[9]);
18189 write_phy_reg(pi, 0x1b1,
18190 pi->rssical_cache.rssical_phyregs_5G[10]);
18191 write_phy_reg(pi, 0x1b7,
18192 pi->rssical_cache.rssical_phyregs_5G[11]);
18196 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
18200 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
18201 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
18202 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18203 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18205 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18208 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18209 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
18210 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
18212 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
18213 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
18216 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18220 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
18222 bool save_bbmult = false;
18223 u8 txcal_index_2057_rev5n7 = 0;
18224 u8 txcal_index_2057_rev3n4n6 = 10;
18226 if (pi->use_int_tx_iqlo_cal_nphy) {
18227 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18228 if ((pi->pubpi.radiorev == 3) ||
18229 (pi->pubpi.radiorev == 4) ||
18230 (pi->pubpi.radiorev == 6)) {
18232 pi->nphy_txcal_pwr_idx[0] =
18233 txcal_index_2057_rev3n4n6;
18234 pi->nphy_txcal_pwr_idx[1] =
18235 txcal_index_2057_rev3n4n6;
18236 wlc_phy_txpwr_index_nphy(
18238 txcal_index_2057_rev3n4n6,
18242 pi->nphy_txcal_pwr_idx[0] =
18243 txcal_index_2057_rev5n7;
18244 pi->nphy_txcal_pwr_idx[1] =
18245 txcal_index_2057_rev5n7;
18246 wlc_phy_txpwr_index_nphy(
18248 txcal_index_2057_rev5n7,
18251 save_bbmult = true;
18253 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
18254 wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
18255 if (pi->sh->hw_phytxchain != 3) {
18256 pi->nphy_txcal_pwr_idx[1] =
18257 pi->nphy_txcal_pwr_idx[0];
18258 wlc_phy_txpwr_index_nphy(pi, 3,
18260 nphy_txcal_pwr_idx[0],
18262 save_bbmult = true;
18265 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18267 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18268 wlc_phy_cal_txgainctrl_nphy(pi, 12,
18271 pi->nphy_txcal_pwr_idx[0] = 80;
18272 pi->nphy_txcal_pwr_idx[1] = 80;
18273 wlc_phy_txpwr_index_nphy(pi, 3, 80,
18275 save_bbmult = true;
18278 wlc_phy_internal_cal_txgain_nphy(pi);
18279 save_bbmult = true;
18282 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18284 if (CHSPEC_IS2G(pi->radio_chanspec))
18285 wlc_phy_cal_txgainctrl_nphy(pi, 12,
18288 wlc_phy_cal_txgainctrl_nphy(pi, 14,
18291 wlc_phy_internal_cal_txgain_nphy(pi);
18292 save_bbmult = true;
18297 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
18301 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
18302 &pi->nphy_txcal_bbmult);
18306 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
18313 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18314 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18315 if (core_code == RADIO_MIMO_CORESEL_CORE1
18316 && core == PHY_CORE_1)
18318 else if (core_code == RADIO_MIMO_CORESEL_CORE2
18319 && core == PHY_CORE_0)
18322 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
18324 mask = (0x1 << 10);
18326 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18330 if (field == NPHY_RfctrlIntc_override_OFF) {
18332 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18335 wlc_phy_force_rfseq_nphy(pi,
18336 NPHY_RFSEQ_RESET2RX);
18337 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
18339 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18341 mask = (0x1 << 6) | (0x1 << 7);
18346 PHY_CORE_0) ? 0x91 : 0x92,
18351 PHY_CORE_0) ? 0x91 : 0x92,
18354 and_phy_reg(pi, 0x2ff, (u16)
18356 or_phy_reg(pi, 0x2ff, (0x1 << 13));
18357 or_phy_reg(pi, 0x2ff, (0x1 << 0));
18360 mask = (0x1 << 6) |
18362 (0x1 << 8) | (0x1 << 9);
18366 PHY_CORE_0) ? 0x91 : 0x92,
18373 PHY_CORE_0) ? 0xe7 : 0xec,
18376 mask = (core == PHY_CORE_0) ?
18377 (0x1 << 0) : (0x1 << 1);
18378 val = 1 << ((core == PHY_CORE_0) ?
18380 mod_phy_reg(pi, 0x78, mask, val);
18382 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
18384 if (WARN(read_phy_reg(pi, 0x78) & val,
18385 "HW error: override failed"))
18392 PHY_CORE_0) ? 0xe7 : 0xec,
18395 } else if (field == NPHY_RfctrlIntc_override_PA) {
18396 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18398 mask = (0x1 << 4) | (0x1 << 5);
18400 if (CHSPEC_IS5G(pi->radio_chanspec))
18407 PHY_CORE_0) ? 0x91 : 0x92,
18412 PHY_CORE_0) ? 0x91 : 0x92,
18416 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18425 PHY_CORE_0) ? 0x91 : 0x92,
18428 } else if (field ==
18429 NPHY_RfctrlIntc_override_EXT_LNA_PU) {
18430 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18431 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18438 : 0x92, mask, val);
18452 : 0x92, mask, val);
18461 mask = (0x1 << 11);
18465 PHY_CORE_0) ? 0x91 : 0x92,
18469 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18478 PHY_CORE_0) ? 0x91 : 0x92,
18481 } else if (field ==
18482 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
18483 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18484 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18491 : 0x92, mask, val);
18505 : 0x92, mask, val);
18514 mask = (0x1 << 11);
18518 PHY_CORE_0) ? 0x91 : 0x92,
18522 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18531 PHY_CORE_0) ? 0x91 : 0x92,
18540 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
18543 int gainctrl_loopidx;
18545 u16 m0m1, curr_m0m1;
18550 u16 phy_saveregs[4];
18552 u16 ampl_test = 250;
18554 bool phyhang_avoid_state = false;
18556 if (NREV_GE(pi->pubpi.phy_rev, 7))
18561 if (CHSPEC_IS40(pi->radio_chanspec))
18566 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18567 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18569 if (pi->phyhang_avoid)
18570 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18572 phyhang_avoid_state = pi->phyhang_avoid;
18573 pi->phyhang_avoid = false;
18575 phy_saveregs[0] = read_phy_reg(pi, 0x91);
18576 phy_saveregs[1] = read_phy_reg(pi, 0x92);
18577 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
18578 phy_saveregs[3] = read_phy_reg(pi, 0xec);
18579 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
18580 RADIO_MIMO_CORESEL_CORE1 |
18581 RADIO_MIMO_CORESEL_CORE2);
18584 wlc_phy_rfctrlintc_override_nphy(pi,
18585 NPHY_RfctrlIntc_override_TRSW,
18586 0x2, RADIO_MIMO_CORESEL_CORE1);
18587 wlc_phy_rfctrlintc_override_nphy(pi,
18588 NPHY_RfctrlIntc_override_TRSW,
18589 0x8, RADIO_MIMO_CORESEL_CORE2);
18591 wlc_phy_rfctrlintc_override_nphy(pi,
18592 NPHY_RfctrlIntc_override_TRSW,
18593 0x1, RADIO_MIMO_CORESEL_CORE1);
18594 wlc_phy_rfctrlintc_override_nphy(pi,
18595 NPHY_RfctrlIntc_override_TRSW,
18596 0x7, RADIO_MIMO_CORESEL_CORE2);
18599 orig_BBConfig = read_phy_reg(pi, 0x01);
18600 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
18602 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
18604 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18605 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
18607 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
18608 gainctrl_loopidx++) {
18609 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18612 if (core == PHY_CORE_0)
18613 curr_m0m1 = m0m1 & 0xff00;
18615 curr_m0m1 = m0m1 & 0x00ff;
18617 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
18618 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
18622 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18623 NPHY_CAL_TSSISAMPS);
18625 pi->nphy_bb_mult_save = 0;
18626 wlc_phy_stopplayback_nphy(pi);
18628 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
18630 txpwrindex -= stepsize * delta_power;
18631 if (txpwrindex < 0)
18633 else if (txpwrindex > 127)
18636 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18637 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
18638 (pi->srom_fem5g.extpagain == 3)) {
18639 if (txpwrindex < 30)
18643 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
18644 (pi->srom_fem2g.extpagain == 3)) {
18645 if (txpwrindex < 50)
18650 wlc_phy_txpwr_index_nphy(pi, (1 << core),
18651 (u8) txpwrindex, true);
18654 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
18660 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18662 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18665 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18666 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
18670 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18671 NPHY_CAL_TSSISAMPS);
18673 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
18677 pi->nphy_bb_mult_save = 0;
18678 wlc_phy_stopplayback_nphy(pi);
18682 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
18683 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
18685 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
18687 write_phy_reg(pi, 0x01, orig_BBConfig);
18689 write_phy_reg(pi, 0x91, phy_saveregs[0]);
18690 write_phy_reg(pi, 0x92, phy_saveregs[1]);
18691 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
18692 write_phy_reg(pi, 0xec, phy_saveregs[3]);
18694 pi->phyhang_avoid = phyhang_avoid_state;
18696 if (pi->phyhang_avoid)
18697 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18700 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
18704 u16 *txcal_radio_regs = NULL;
18706 if (pi->phyhang_avoid)
18707 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18709 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18711 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18712 &pi->calibration_cache.
18715 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18717 pi->calibration_cache.txcal_radio_regs_2G;
18718 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18720 pi->calibration_cache.txcal_radio_regs_2G[0] =
18722 RADIO_2056_TX_LOFT_FINE_I |
18724 pi->calibration_cache.txcal_radio_regs_2G[1] =
18726 RADIO_2056_TX_LOFT_FINE_Q |
18728 pi->calibration_cache.txcal_radio_regs_2G[2] =
18730 RADIO_2056_TX_LOFT_FINE_I |
18732 pi->calibration_cache.txcal_radio_regs_2G[3] =
18734 RADIO_2056_TX_LOFT_FINE_Q |
18737 pi->calibration_cache.txcal_radio_regs_2G[4] =
18739 RADIO_2056_TX_LOFT_COARSE_I |
18741 pi->calibration_cache.txcal_radio_regs_2G[5] =
18743 RADIO_2056_TX_LOFT_COARSE_Q |
18745 pi->calibration_cache.txcal_radio_regs_2G[6] =
18747 RADIO_2056_TX_LOFT_COARSE_I |
18749 pi->calibration_cache.txcal_radio_regs_2G[7] =
18751 RADIO_2056_TX_LOFT_COARSE_Q |
18754 pi->calibration_cache.txcal_radio_regs_2G[0] =
18755 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18756 pi->calibration_cache.txcal_radio_regs_2G[1] =
18757 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18758 pi->calibration_cache.txcal_radio_regs_2G[2] =
18759 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18760 pi->calibration_cache.txcal_radio_regs_2G[3] =
18761 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18764 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
18765 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18768 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18769 &pi->calibration_cache.
18772 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18774 pi->calibration_cache.txcal_radio_regs_5G;
18775 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18777 pi->calibration_cache.txcal_radio_regs_5G[0] =
18779 RADIO_2056_TX_LOFT_FINE_I |
18781 pi->calibration_cache.txcal_radio_regs_5G[1] =
18783 RADIO_2056_TX_LOFT_FINE_Q |
18785 pi->calibration_cache.txcal_radio_regs_5G[2] =
18787 RADIO_2056_TX_LOFT_FINE_I |
18789 pi->calibration_cache.txcal_radio_regs_5G[3] =
18791 RADIO_2056_TX_LOFT_FINE_Q |
18794 pi->calibration_cache.txcal_radio_regs_5G[4] =
18796 RADIO_2056_TX_LOFT_COARSE_I |
18798 pi->calibration_cache.txcal_radio_regs_5G[5] =
18800 RADIO_2056_TX_LOFT_COARSE_Q |
18802 pi->calibration_cache.txcal_radio_regs_5G[6] =
18804 RADIO_2056_TX_LOFT_COARSE_I |
18806 pi->calibration_cache.txcal_radio_regs_5G[7] =
18808 RADIO_2056_TX_LOFT_COARSE_Q |
18811 pi->calibration_cache.txcal_radio_regs_5G[0] =
18812 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18813 pi->calibration_cache.txcal_radio_regs_5G[1] =
18814 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18815 pi->calibration_cache.txcal_radio_regs_5G[2] =
18816 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18817 pi->calibration_cache.txcal_radio_regs_5G[3] =
18818 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18821 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
18822 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18824 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18825 for (coreNum = 0; coreNum <= 1; coreNum++) {
18827 txcal_radio_regs[2 * coreNum] =
18828 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18830 txcal_radio_regs[2 * coreNum + 1] =
18831 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18834 txcal_radio_regs[2 * coreNum + 4] =
18835 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18837 txcal_radio_regs[2 * coreNum + 5] =
18838 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18843 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
18845 if (pi->phyhang_avoid)
18846 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18849 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
18851 struct nphy_iq_comp tx_comp;
18853 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, &tx_comp);
18855 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
18856 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
18857 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
18858 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
18861 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
18864 u16 txcal_coeffs_bphy[4];
18867 u16 *txcal_radio_regs = NULL;
18869 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18870 if (pi->nphy_iqcal_chanspec_2G == 0)
18873 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18874 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
18876 if (pi->nphy_iqcal_chanspec_5G == 0)
18879 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18880 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
18883 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16, tbl_ptr);
18885 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18886 txcal_coeffs_bphy[0] = tbl_ptr[0];
18887 txcal_coeffs_bphy[1] = tbl_ptr[1];
18888 txcal_coeffs_bphy[2] = tbl_ptr[2];
18889 txcal_coeffs_bphy[3] = tbl_ptr[3];
18891 txcal_coeffs_bphy[0] = 0;
18892 txcal_coeffs_bphy[1] = 0;
18893 txcal_coeffs_bphy[2] = 0;
18894 txcal_coeffs_bphy[3] = 0;
18897 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
18898 txcal_coeffs_bphy);
18900 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
18902 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
18904 if (NREV_LT(pi->pubpi.phy_rev, 2))
18905 wlc_phy_tx_iq_war_nphy(pi);
18907 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18908 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18910 pi->calibration_cache.txcal_radio_regs_2G;
18911 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18913 write_radio_reg(pi,
18914 RADIO_2056_TX_LOFT_FINE_I |
18916 pi->calibration_cache.
18917 txcal_radio_regs_2G[0]);
18918 write_radio_reg(pi,
18919 RADIO_2056_TX_LOFT_FINE_Q |
18921 pi->calibration_cache.
18922 txcal_radio_regs_2G[1]);
18923 write_radio_reg(pi,
18924 RADIO_2056_TX_LOFT_FINE_I |
18926 pi->calibration_cache.
18927 txcal_radio_regs_2G[2]);
18928 write_radio_reg(pi,
18929 RADIO_2056_TX_LOFT_FINE_Q |
18931 pi->calibration_cache.
18932 txcal_radio_regs_2G[3]);
18934 write_radio_reg(pi,
18935 RADIO_2056_TX_LOFT_COARSE_I |
18937 pi->calibration_cache.
18938 txcal_radio_regs_2G[4]);
18939 write_radio_reg(pi,
18940 RADIO_2056_TX_LOFT_COARSE_Q |
18942 pi->calibration_cache.
18943 txcal_radio_regs_2G[5]);
18944 write_radio_reg(pi,
18945 RADIO_2056_TX_LOFT_COARSE_I |
18947 pi->calibration_cache.
18948 txcal_radio_regs_2G[6]);
18949 write_radio_reg(pi,
18950 RADIO_2056_TX_LOFT_COARSE_Q |
18952 pi->calibration_cache.
18953 txcal_radio_regs_2G[7]);
18955 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18956 pi->calibration_cache.
18957 txcal_radio_regs_2G[0]);
18958 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
18959 pi->calibration_cache.
18960 txcal_radio_regs_2G[1]);
18961 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
18962 pi->calibration_cache.
18963 txcal_radio_regs_2G[2]);
18964 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
18965 pi->calibration_cache.
18966 txcal_radio_regs_2G[3]);
18969 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
18970 &pi->calibration_cache.
18973 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18975 pi->calibration_cache.txcal_radio_regs_5G;
18976 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18978 write_radio_reg(pi,
18979 RADIO_2056_TX_LOFT_FINE_I |
18981 pi->calibration_cache.
18982 txcal_radio_regs_5G[0]);
18983 write_radio_reg(pi,
18984 RADIO_2056_TX_LOFT_FINE_Q |
18986 pi->calibration_cache.
18987 txcal_radio_regs_5G[1]);
18988 write_radio_reg(pi,
18989 RADIO_2056_TX_LOFT_FINE_I |
18991 pi->calibration_cache.
18992 txcal_radio_regs_5G[2]);
18993 write_radio_reg(pi,
18994 RADIO_2056_TX_LOFT_FINE_Q |
18996 pi->calibration_cache.
18997 txcal_radio_regs_5G[3]);
18999 write_radio_reg(pi,
19000 RADIO_2056_TX_LOFT_COARSE_I |
19002 pi->calibration_cache.
19003 txcal_radio_regs_5G[4]);
19004 write_radio_reg(pi,
19005 RADIO_2056_TX_LOFT_COARSE_Q |
19007 pi->calibration_cache.
19008 txcal_radio_regs_5G[5]);
19009 write_radio_reg(pi,
19010 RADIO_2056_TX_LOFT_COARSE_I |
19012 pi->calibration_cache.
19013 txcal_radio_regs_5G[6]);
19014 write_radio_reg(pi,
19015 RADIO_2056_TX_LOFT_COARSE_Q |
19017 pi->calibration_cache.
19018 txcal_radio_regs_5G[7]);
19020 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19021 pi->calibration_cache.
19022 txcal_radio_regs_5G[0]);
19023 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19024 pi->calibration_cache.
19025 txcal_radio_regs_5G[1]);
19026 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19027 pi->calibration_cache.
19028 txcal_radio_regs_5G[2]);
19029 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19030 pi->calibration_cache.
19031 txcal_radio_regs_5G[3]);
19034 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19035 &pi->calibration_cache.
19039 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19040 for (coreNum = 0; coreNum <= 1; coreNum++) {
19042 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19044 txcal_radio_regs[2 * coreNum]);
19045 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19047 txcal_radio_regs[2 * coreNum + 1]);
19049 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19051 txcal_radio_regs[2 * coreNum + 4]);
19052 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19054 txcal_radio_regs[2 * coreNum + 5]);
19059 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
19063 u32 iqcomp, locomp, curr_locomp;
19064 s8 locomp_i, locomp_q;
19065 s8 curr_locomp_i, curr_locomp_q;
19066 u32 tbl_id, tbl_len, tbl_offset;
19069 if (pi->phyhang_avoid)
19070 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19072 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
19076 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
19077 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
19080 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
19081 (iqloCalbuf[1] & 0x3ff)
19082 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
19083 (iqloCalbuf[3] & 0x3ff);
19085 for (idx = 0; idx < tbl_len; idx++)
19086 regval[idx] = iqcomp;
19087 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
19092 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
19093 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
19096 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
19097 locomp_i = (s8) ((locomp >> 8) & 0xff);
19098 locomp_q = (s8) ((locomp) & 0xff);
19099 for (idx = 0; idx < tbl_len; idx++) {
19100 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19101 curr_locomp_i = locomp_i;
19102 curr_locomp_q = locomp_q;
19104 curr_locomp_i = (s8) ((locomp_i *
19105 nphy_tpc_loscale[idx] +
19109 nphy_tpc_loscale[idx] +
19112 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
19113 curr_locomp |= (u32) (curr_locomp_q & 0xff);
19114 regval[idx] = curr_locomp;
19116 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
19120 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19122 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
19123 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
19126 if (pi->phyhang_avoid)
19127 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19130 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
19134 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19135 if (CHSPEC_IS40(pi->radio_chanspec))
19141 if (CHSPEC_IS40(pi->radio_chanspec))
19147 write_phy_reg(pi, 0xe8,
19150 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
19154 if (CHSPEC_IS40(pi->radio_chanspec))
19159 write_phy_reg(pi, 0xe9,
19162 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
19168 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
19170 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19171 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19172 CHSPEC_IS40(pi->radio_chanspec)) {
19173 if (!pi->nphy_anarxlpf_adjusted) {
19174 write_radio_reg(pi,
19175 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
19177 ((pi->nphy_rccal_value +
19178 reduction_factr) | 0x80));
19180 pi->nphy_anarxlpf_adjusted = true;
19183 if (pi->nphy_anarxlpf_adjusted) {
19184 write_radio_reg(pi,
19185 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
19187 (pi->nphy_rccal_value | 0x80));
19189 pi->nphy_anarxlpf_adjusted = false;
19196 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
19197 int *tone_id_buf, u32 *noise_var_buf)
19203 CHSPEC_IS40(pi->radio_chanspec) ?
19204 NPHY_NOISEVAR_TBLLEN40 : NPHY_NOISEVAR_TBLLEN20;
19206 if (pi->nphy_noisevars_adjusted) {
19207 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
19208 tone_id = pi->nphy_saved_noisevars.tone_id[i];
19209 offset = (tone_id >= 0) ?
19211 2) + 1) : (tbllen + (tone_id * 2) + 1);
19212 wlc_phy_table_write_nphy(
19213 pi, NPHY_TBL_ID_NOISEVAR, 1,
19215 &pi->nphy_saved_noisevars.min_noise_vars[i]);
19218 pi->nphy_saved_noisevars.bufcount = 0;
19219 pi->nphy_noisevars_adjusted = false;
19222 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
19223 pi->nphy_saved_noisevars.bufcount = 0;
19225 for (i = 0; i < ntones; i++) {
19226 tone_id = tone_id_buf[i];
19227 offset = (tone_id >= 0) ?
19228 ((tone_id * 2) + 1) :
19229 (tbllen + (tone_id * 2) + 1);
19230 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
19231 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19233 &pi->nphy_saved_noisevars.
19234 min_noise_vars[i]);
19235 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19236 offset, 32, &noise_var_buf[i]);
19237 pi->nphy_saved_noisevars.bufcount++;
19240 pi->nphy_noisevars_adjusted = true;
19244 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
19248 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19249 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19250 CHSPEC_IS40(pi->radio_chanspec)) {
19251 if (!pi->nphy_crsminpwr_adjusted) {
19252 regval = read_phy_reg(pi, 0x27d);
19253 pi->nphy_crsminpwr[0] = regval & 0xff;
19255 regval |= (u16) minpwr;
19256 write_phy_reg(pi, 0x27d, regval);
19258 regval = read_phy_reg(pi, 0x280);
19259 pi->nphy_crsminpwr[1] = regval & 0xff;
19261 regval |= (u16) minpwr;
19262 write_phy_reg(pi, 0x280, regval);
19264 regval = read_phy_reg(pi, 0x283);
19265 pi->nphy_crsminpwr[2] = regval & 0xff;
19267 regval |= (u16) minpwr;
19268 write_phy_reg(pi, 0x283, regval);
19270 pi->nphy_crsminpwr_adjusted = true;
19273 if (pi->nphy_crsminpwr_adjusted) {
19274 regval = read_phy_reg(pi, 0x27d);
19276 regval |= pi->nphy_crsminpwr[0];
19277 write_phy_reg(pi, 0x27d, regval);
19279 regval = read_phy_reg(pi, 0x280);
19281 regval |= pi->nphy_crsminpwr[1];
19282 write_phy_reg(pi, 0x280, regval);
19284 regval = read_phy_reg(pi, 0x283);
19286 regval |= pi->nphy_crsminpwr[2];
19287 write_phy_reg(pi, 0x283, regval);
19289 pi->nphy_crsminpwr_adjusted = false;
19295 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
19297 u16 cur_channel = 0;
19298 int nphy_adj_tone_id_buf[] = { 57, 58 };
19299 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
19300 bool isAdjustNoiseVar = false;
19301 uint numTonesAdjust = 0;
19304 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19305 if (pi->phyhang_avoid)
19306 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19308 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
19310 if (pi->nphy_gband_spurwar_en) {
19312 wlc_phy_adjust_rx_analpfbw_nphy(
19314 NPHY_ANARXLPFBW_REDUCTIONFACT);
19316 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19317 if ((cur_channel == 11)
19318 && CHSPEC_IS40(pi->radio_chanspec))
19319 wlc_phy_adjust_min_noisevar_nphy(
19321 nphy_adj_tone_id_buf,
19322 nphy_adj_noise_var_buf);
19324 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
19329 wlc_phy_adjust_crsminpwr_nphy(pi,
19330 NPHY_ADJUSTED_MINCRSPOWER);
19333 if ((pi->nphy_gband_spurwar2_en)
19334 && CHSPEC_IS2G(pi->radio_chanspec)) {
19336 if (CHSPEC_IS40(pi->radio_chanspec)) {
19337 switch (cur_channel) {
19339 nphy_adj_tone_id_buf[0] = 57;
19340 nphy_adj_tone_id_buf[1] = 58;
19341 nphy_adj_noise_var_buf[0] = 0x22f;
19342 nphy_adj_noise_var_buf[1] = 0x25f;
19343 isAdjustNoiseVar = true;
19346 nphy_adj_tone_id_buf[0] = 41;
19347 nphy_adj_tone_id_buf[1] = 42;
19348 nphy_adj_noise_var_buf[0] = 0x22f;
19349 nphy_adj_noise_var_buf[1] = 0x25f;
19350 isAdjustNoiseVar = true;
19353 nphy_adj_tone_id_buf[0] = 25;
19354 nphy_adj_tone_id_buf[1] = 26;
19355 nphy_adj_noise_var_buf[0] = 0x24f;
19356 nphy_adj_noise_var_buf[1] = 0x25f;
19357 isAdjustNoiseVar = true;
19360 nphy_adj_tone_id_buf[0] = 9;
19361 nphy_adj_tone_id_buf[1] = 10;
19362 nphy_adj_noise_var_buf[0] = 0x22f;
19363 nphy_adj_noise_var_buf[1] = 0x24f;
19364 isAdjustNoiseVar = true;
19367 nphy_adj_tone_id_buf[0] = 121;
19368 nphy_adj_tone_id_buf[1] = 122;
19369 nphy_adj_noise_var_buf[0] = 0x18f;
19370 nphy_adj_noise_var_buf[1] = 0x24f;
19371 isAdjustNoiseVar = true;
19374 nphy_adj_tone_id_buf[0] = 105;
19375 nphy_adj_tone_id_buf[1] = 106;
19376 nphy_adj_noise_var_buf[0] = 0x22f;
19377 nphy_adj_noise_var_buf[1] = 0x25f;
19378 isAdjustNoiseVar = true;
19381 nphy_adj_tone_id_buf[0] = 89;
19382 nphy_adj_tone_id_buf[1] = 90;
19383 nphy_adj_noise_var_buf[0] = 0x22f;
19384 nphy_adj_noise_var_buf[1] = 0x24f;
19385 isAdjustNoiseVar = true;
19388 nphy_adj_tone_id_buf[0] = 73;
19389 nphy_adj_tone_id_buf[1] = 74;
19390 nphy_adj_noise_var_buf[0] = 0x22f;
19391 nphy_adj_noise_var_buf[1] = 0x24f;
19392 isAdjustNoiseVar = true;
19395 isAdjustNoiseVar = false;
19400 if (isAdjustNoiseVar) {
19401 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
19402 sizeof(nphy_adj_tone_id_buf[0]);
19404 wlc_phy_adjust_min_noisevar_nphy(
19407 nphy_adj_tone_id_buf,
19408 nphy_adj_noise_var_buf);
19413 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19418 if ((pi->nphy_aband_spurwar_en) &&
19419 (CHSPEC_IS5G(pi->radio_chanspec))) {
19420 switch (cur_channel) {
19422 nphy_adj_tone_id_buf[0] = 32;
19423 nphy_adj_noise_var_buf[0] = 0x25f;
19428 nphy_adj_tone_id_buf[0] = 0;
19429 nphy_adj_noise_var_buf[0] = 0x0;
19432 nphy_adj_tone_id_buf[0] = 32;
19433 nphy_adj_noise_var_buf[0] = 0x21f;
19436 nphy_adj_tone_id_buf[0] = 16;
19437 nphy_adj_noise_var_buf[0] = 0x23f;
19441 nphy_adj_tone_id_buf[0] = 48;
19442 nphy_adj_noise_var_buf[0] = 0x23f;
19445 nphy_adj_tone_id_buf[0] = 0;
19446 nphy_adj_noise_var_buf[0] = 0x0;
19450 if (nphy_adj_tone_id_buf[0]
19451 && nphy_adj_noise_var_buf[0])
19452 wlc_phy_adjust_min_noisevar_nphy(
19454 nphy_adj_tone_id_buf,
19455 nphy_adj_noise_var_buf);
19457 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19461 if (pi->phyhang_avoid)
19462 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19466 void wlc_phy_init_nphy(struct brcms_phy *pi)
19470 struct nphy_txgains target_gain;
19471 u8 tx_pwr_ctrl_state;
19472 bool do_nphy_cal = false;
19474 uint origidx, intr_val;
19475 struct d11regs __iomem *regs;
19476 u32 d11_clk_ctl_st;
19477 bool do_rssi_cal = false;
19481 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN))
19482 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
19484 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
19485 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
19486 (pi->sh->chippkg == BCM4718_PKG_ID))) {
19487 if ((pi->sh->boardflags & BFL_EXTLNA) &&
19488 (CHSPEC_IS2G(pi->radio_chanspec)))
19489 ai_corereg(pi->sh->sih, SI_CC_IDX,
19490 offsetof(struct chipcregs, chipcontrol),
19494 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
19495 CHSPEC_IS40(pi->radio_chanspec)) {
19497 regs = (struct d11regs __iomem *)
19498 ai_switch_core(pi->sh->sih,
19499 D11_CORE_ID, &origidx,
19501 d11_clk_ctl_st = R_REG(®s->clk_ctl_st);
19502 AND_REG(®s->clk_ctl_st,
19503 ~(CCS_FORCEHT | CCS_HTAREQ));
19505 W_REG(®s->clk_ctl_st, d11_clk_ctl_st);
19507 ai_restore_core(pi->sh->sih, origidx, intr_val);
19510 pi->use_int_tx_iqlo_cal_nphy =
19512 (NREV_GE(pi->pubpi.phy_rev, 7) ||
19513 (NREV_GE(pi->pubpi.phy_rev, 5)
19514 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
19516 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
19518 pi->nphy_deaf_count = 0;
19520 wlc_phy_tbl_init_nphy(pi);
19522 pi->nphy_crsminpwr_adjusted = false;
19523 pi->nphy_noisevars_adjusted = false;
19525 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19526 write_phy_reg(pi, 0xe7, 0);
19527 write_phy_reg(pi, 0xec, 0);
19528 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19529 write_phy_reg(pi, 0x342, 0);
19530 write_phy_reg(pi, 0x343, 0);
19531 write_phy_reg(pi, 0x346, 0);
19532 write_phy_reg(pi, 0x347, 0);
19534 write_phy_reg(pi, 0xe5, 0);
19535 write_phy_reg(pi, 0xe6, 0);
19537 write_phy_reg(pi, 0xec, 0);
19540 write_phy_reg(pi, 0x91, 0);
19541 write_phy_reg(pi, 0x92, 0);
19542 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
19543 write_phy_reg(pi, 0x93, 0);
19544 write_phy_reg(pi, 0x94, 0);
19547 and_phy_reg(pi, 0xa1, ~3);
19549 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19550 write_phy_reg(pi, 0x8f, 0);
19551 write_phy_reg(pi, 0xa5, 0);
19553 write_phy_reg(pi, 0xa5, 0);
19556 if (NREV_IS(pi->pubpi.phy_rev, 2))
19557 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
19558 else if (NREV_LT(pi->pubpi.phy_rev, 2))
19559 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
19561 write_phy_reg(pi, 0x203, 32);
19562 write_phy_reg(pi, 0x201, 32);
19564 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
19565 write_phy_reg(pi, 0x20d, 160);
19567 write_phy_reg(pi, 0x20d, 184);
19569 write_phy_reg(pi, 0x13a, 200);
19571 write_phy_reg(pi, 0x70, 80);
19573 write_phy_reg(pi, 0x1ff, 48);
19575 if (NREV_LT(pi->pubpi.phy_rev, 8))
19576 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
19578 wlc_phy_stf_chain_upd_nphy(pi);
19580 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19581 write_phy_reg(pi, 0x180, 0xaa8);
19582 write_phy_reg(pi, 0x181, 0x9a4);
19586 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
19588 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
19589 0x29b, (0x1 << 0), (1) << 0);
19591 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
19592 0x29c, (0x1ff << 7),
19593 (pi->nphy_papd_epsilon_offset[core]) << 7);
19597 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
19598 } else if (NREV_GE(pi->pubpi.phy_rev, 5)) {
19599 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
19602 wlc_phy_workarounds_nphy(pi);
19604 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19606 val = read_phy_reg(pi, 0x01);
19607 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19608 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19609 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19611 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
19613 wlc_phy_pa_override_nphy(pi, OFF);
19614 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
19615 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19616 wlc_phy_pa_override_nphy(pi, ON);
19618 wlc_phy_classifier_nphy(pi, 0, 0);
19619 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
19621 if (CHSPEC_IS2G(pi->radio_chanspec))
19622 wlc_phy_bphy_init_nphy(pi);
19624 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
19625 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
19627 wlc_phy_txpwr_fixpower_nphy(pi);
19629 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
19631 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
19633 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19634 u32 *tx_pwrctrl_tbl = NULL;
19641 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
19643 if (CHSPEC_IS5G(pi->radio_chanspec)) {
19644 if (NREV_IS(pi->pubpi.phy_rev, 3))
19646 nphy_tpc_5GHz_txgain_rev3;
19647 else if (NREV_IS(pi->pubpi.phy_rev, 4))
19649 (pi->srom_fem5g.extpagain ==
19651 nphy_tpc_5GHz_txgain_HiPwrEPA :
19652 nphy_tpc_5GHz_txgain_rev4;
19655 nphy_tpc_5GHz_txgain_rev5;
19657 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19658 if (pi->pubpi.radiorev == 5)
19660 nphy_tpc_txgain_epa_2057rev5;
19661 else if (pi->pubpi.radiorev == 3)
19663 nphy_tpc_txgain_epa_2057rev3;
19665 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
19666 (pi->srom_fem2g.extpagain == 3))
19668 nphy_tpc_txgain_HiPwrEPA;
19671 nphy_tpc_txgain_rev3;
19676 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19677 192, 32, tx_pwrctrl_tbl);
19678 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19679 192, 32, tx_pwrctrl_tbl);
19681 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
19683 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19685 for (idx = 0; idx < 128; idx++) {
19686 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19687 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
19688 rfpwr_offset = get_rf_pwr_offset(pi, pga_gn,
19690 wlc_phy_table_write_nphy(
19692 NPHY_TBL_ID_CORE1TXPWRCTL,
19695 wlc_phy_table_write_nphy(
19697 NPHY_TBL_ID_CORE2TXPWRCTL,
19703 for (idx = 0; idx < 128; idx++) {
19704 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19705 if (CHSPEC_IS2G(pi->radio_chanspec))
19706 rfpwr_offset = (s16)
19707 nphy_papd_pga_gain_delta_ipa_2g
19710 rfpwr_offset = (s16)
19711 nphy_papd_pga_gain_delta_ipa_5g
19714 wlc_phy_table_write_nphy(
19716 NPHY_TBL_ID_CORE1TXPWRCTL,
19719 wlc_phy_table_write_nphy(
19721 NPHY_TBL_ID_CORE2TXPWRCTL,
19729 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19730 192, 32, nphy_tpc_txgain);
19731 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19732 192, 32, nphy_tpc_txgain);
19735 if (pi->sh->phyrxchain != 0x3)
19736 wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub *) pi,
19737 pi->sh->phyrxchain);
19739 if (PHY_PERICAL_MPHASE_PENDING(pi))
19740 wlc_phy_cal_perical_mphase_restart(pi);
19742 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19743 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19744 (pi->nphy_rssical_chanspec_2G == 0) :
19745 (pi->nphy_rssical_chanspec_5G == 0);
19748 wlc_phy_rssi_cal_nphy(pi);
19750 wlc_phy_restore_rssical_nphy(pi);
19752 wlc_phy_rssi_cal_nphy(pi);
19755 if (!SCAN_RM_IN_PROGRESS(pi))
19756 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19757 (pi->nphy_iqcal_chanspec_2G == 0) :
19758 (pi->nphy_iqcal_chanspec_5G == 0);
19760 if (!pi->do_initcal)
19761 do_nphy_cal = false;
19765 target_gain = wlc_phy_get_tx_gain_nphy(pi);
19767 if (pi->antsel_type == ANTSEL_2x3)
19768 wlc_phy_antsel_init((struct brcms_phy_pub *) pi,
19771 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
19772 wlc_phy_rssi_cal_nphy(pi);
19774 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19775 pi->nphy_cal_orig_pwr_idx[0] =
19776 pi->nphy_txpwrindex[PHY_CORE_0]
19779 pi->nphy_cal_orig_pwr_idx[1] =
19780 pi->nphy_txpwrindex[PHY_CORE_1]
19784 wlc_phy_precal_txgain_nphy(pi);
19786 wlc_phy_get_tx_gain_nphy(pi);
19789 if (wlc_phy_cal_txiqlo_nphy
19790 (pi, target_gain, true,
19792 if (wlc_phy_cal_rxiq_nphy
19793 (pi, target_gain, 2,
19795 wlc_phy_savecal_nphy(pi);
19798 } else if (pi->mphase_cal_phase_id ==
19799 MPHASE_CAL_STATE_IDLE) {
19800 wlc_phy_cal_perical((struct brcms_phy_pub *) pi,
19801 PHY_PERICAL_PHYINIT);
19804 wlc_phy_restorecal_nphy(pi);
19807 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
19809 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
19811 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
19813 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
19815 write_phy_reg(pi, 0x70, 50);
19817 wlc_phy_txlpfbw_nphy(pi);
19819 wlc_phy_spurwar_nphy(pi);
19823 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
19827 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19829 val = read_phy_reg(pi, 0x01);
19830 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19832 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19834 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19836 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19839 void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
19841 u16 rfctrlintc_override_val;
19845 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
19846 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
19848 if (NREV_GE(pi->pubpi.phy_rev, 7))
19849 rfctrlintc_override_val = 0x1480;
19850 else if (NREV_GE(pi->pubpi.phy_rev, 3))
19851 rfctrlintc_override_val =
19852 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
19854 rfctrlintc_override_val =
19855 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
19857 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
19858 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
19860 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
19861 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
19866 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy *pi)
19870 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
19871 bool CoreActv_override = false;
19873 if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN0) {
19874 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
19875 CoreActv_override = true;
19877 if (NREV_LE(pi->pubpi.phy_rev, 2))
19878 and_phy_reg(pi, 0xa0, ~0x20);
19879 } else if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN1) {
19880 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
19881 CoreActv_override = true;
19883 if (NREV_LE(pi->pubpi.phy_rev, 2))
19884 or_phy_reg(pi, 0xa0, 0x20);
19887 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
19889 if (CoreActv_override) {
19890 pi->nphy_perical = PHY_PERICAL_DISABLE;
19891 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
19893 pi->nphy_perical = PHY_PERICAL_MPHASE;
19894 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
19898 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
19903 struct brcms_phy *pi = (struct brcms_phy *) pih;
19907 pi->sh->phyrxchain = rxcore_bitmask;
19912 suspend = (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
19914 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19916 if (pi->phyhang_avoid)
19917 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19919 regval = read_phy_reg(pi, 0xa2);
19920 regval &= ~(0xf << 4);
19921 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
19922 write_phy_reg(pi, 0xa2, regval);
19924 if ((rxcore_bitmask & 0x3) != 0x3) {
19926 write_phy_reg(pi, 0x20e, 1);
19928 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19929 if (pi->rx2tx_biasentry == -1) {
19930 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
19931 ARRAY_SIZE(tbl_buf), 80,
19934 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
19936 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
19937 pi->rx2tx_biasentry = (u8) i;
19939 NPHY_REV3_RFSEQ_CMD_NOP;
19940 wlc_phy_table_write_nphy(
19947 } else if (tbl_buf[i] ==
19948 NPHY_REV3_RFSEQ_CMD_END)
19955 write_phy_reg(pi, 0x20e, 30);
19957 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19958 if (pi->rx2tx_biasentry != -1) {
19959 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
19960 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
19961 1, pi->rx2tx_biasentry,
19963 pi->rx2tx_biasentry = -1;
19968 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19970 if (pi->phyhang_avoid)
19971 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19974 wlapi_enable_mac(pi->sh->physhim);
19977 u8 wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub *pih)
19979 u16 regval, rxen_bits;
19980 struct brcms_phy *pi = (struct brcms_phy *) pih;
19982 regval = read_phy_reg(pi, 0xa2);
19983 rxen_bits = (regval >> 4) & 0xf;
19985 return (u8) rxen_bits;
19988 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy *pi)
19990 return PHY_IPA(pi);
19993 void wlc_phy_cal_init_nphy(struct brcms_phy *pi)
19997 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
20000 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20001 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
20003 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
20004 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
20008 static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
20010 struct radio_20xx_regs *regs_2057_ptr = NULL;
20012 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
20013 regs_2057_ptr = regs_2057_rev4;
20014 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
20015 || NREV_IS(pi->pubpi.phy_rev, 9)) {
20016 switch (pi->pubpi.radiorev) {
20019 if (pi->pubpi.radiover == 0x0)
20020 regs_2057_ptr = regs_2057_rev5;
20021 else if (pi->pubpi.radiover == 0x1)
20022 regs_2057_ptr = regs_2057_rev5v1;
20028 regs_2057_ptr = regs_2057_rev7;
20033 regs_2057_ptr = regs_2057_rev8;
20041 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
20044 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
20049 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20051 if (pi->pubpi.radiorev == 5) {
20053 and_phy_reg(pi, 0x342, ~(0x1 << 1));
20057 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
20058 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
20061 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
20065 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
20067 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20068 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
20069 if (rcal_reg & 0x1)
20075 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
20076 "HW error: radio calib2"))
20079 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
20081 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
20083 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
20084 if (pi->pubpi.radiorev == 5) {
20086 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
20087 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
20091 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
20093 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
20095 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
20099 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20105 RADIO_2056_SYN_PLL_MAST2 |
20107 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
20111 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20115 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20118 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20119 rcal_reg = read_radio_reg(
20121 RADIO_2056_SYN_RCAL_CODE_OUT |
20123 if (rcal_reg & 0x80)
20129 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
20130 "HW error: radio calib3"))
20133 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20138 RADIO_2056_SYN_RCAL_CODE_OUT |
20141 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20144 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
20147 return rcal_reg & 0x1f;
20149 return rcal_reg & 0x3e;
20152 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
20156 bool chip43226_6362A0;
20158 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
20159 || (pi->pubpi.radiorev == 4)
20160 || (pi->pubpi.radiorev == 6));
20163 if (chip43226_6362A0) {
20164 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
20165 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
20167 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
20169 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
20171 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20172 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20174 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20175 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20176 if (rccal_valid & 0x2)
20182 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20185 if (chip43226_6362A0) {
20186 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
20187 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20189 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
20191 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
20193 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20194 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20196 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20197 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20198 if (rccal_valid & 0x2)
20204 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20207 if (chip43226_6362A0) {
20208 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
20210 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
20211 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20213 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
20214 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20215 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
20217 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20219 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20220 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20221 if (rccal_valid & 0x2)
20227 if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
20230 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20232 return rccal_valid;
20235 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
20238 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
20240 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
20241 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
20243 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
20244 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
20246 if (pi->phy_init_por) {
20247 wlc_phy_radio205x_rcal(pi);
20248 wlc_phy_radio2057_rccal(pi);
20251 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
20254 static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
20256 const struct radio_regs *regs_SYN_2056_ptr = NULL;
20257 const struct radio_regs *regs_TX_2056_ptr = NULL;
20258 const struct radio_regs *regs_RX_2056_ptr = NULL;
20260 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20261 regs_SYN_2056_ptr = regs_SYN_2056;
20262 regs_TX_2056_ptr = regs_TX_2056;
20263 regs_RX_2056_ptr = regs_RX_2056;
20264 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20265 regs_SYN_2056_ptr = regs_SYN_2056_A1;
20266 regs_TX_2056_ptr = regs_TX_2056_A1;
20267 regs_RX_2056_ptr = regs_RX_2056_A1;
20269 switch (pi->pubpi.radiorev) {
20271 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20272 regs_TX_2056_ptr = regs_TX_2056_rev5;
20273 regs_RX_2056_ptr = regs_RX_2056_rev5;
20277 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20278 regs_TX_2056_ptr = regs_TX_2056_rev6;
20279 regs_RX_2056_ptr = regs_RX_2056_rev6;
20284 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20285 regs_TX_2056_ptr = regs_TX_2056_rev7;
20286 regs_RX_2056_ptr = regs_RX_2056_rev7;
20290 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20291 regs_TX_2056_ptr = regs_TX_2056_rev8;
20292 regs_RX_2056_ptr = regs_RX_2056_rev8;
20296 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20297 regs_TX_2056_ptr = regs_TX_2056_rev11;
20298 regs_RX_2056_ptr = regs_RX_2056_rev11;
20306 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
20308 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
20310 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
20312 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
20314 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
20317 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
20319 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
20321 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
20322 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
20324 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
20326 if ((pi->sh->boardflags2 & BFL2_LEGACY)
20327 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN))
20328 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
20330 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
20332 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
20334 if (pi->phy_init_por)
20335 wlc_phy_radio205x_rcal(pi);
20338 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
20341 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
20342 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
20344 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
20347 static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
20349 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
20352 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
20355 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
20356 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
20358 if (((pi->sh->sromrev >= 4)
20359 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
20360 || ((pi->sh->sromrev < 4))) {
20361 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
20362 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
20365 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
20366 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
20368 and_radio_reg(pi, RADIO_2055_CAL_MISC,
20369 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
20371 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
20373 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
20377 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
20379 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20380 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
20382 if (WARN((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20383 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
20384 "HW error: radio calibration1\n"))
20387 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
20388 ~(RADIO_2055_CAL_LPO_ENABLE));
20390 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi, pi->radio_chanspec);
20392 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
20393 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
20395 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
20396 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
20398 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
20399 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20400 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
20401 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20402 if (pi->nphy_gain_boost) {
20403 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20404 ~(RADIO_2055_GAINBST_DISABLE));
20405 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20406 ~(RADIO_2055_GAINBST_DISABLE));
20408 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20409 RADIO_2055_GAINBST_DISABLE);
20410 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20411 RADIO_2055_GAINBST_DISABLE);
20417 void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
20420 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20421 if (!pi->radio_is_on) {
20422 wlc_phy_radio_preinit_205x(pi);
20423 wlc_phy_radio_init_2057(pi);
20424 wlc_phy_radio_postinit_2057(pi);
20427 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20428 pi->radio_chanspec);
20429 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20430 wlc_phy_radio_preinit_205x(pi);
20431 wlc_phy_radio_init_2056(pi);
20432 wlc_phy_radio_postinit_2056(pi);
20434 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20435 pi->radio_chanspec);
20437 wlc_phy_radio_preinit_2055(pi);
20438 wlc_phy_radio_init_2055(pi);
20439 wlc_phy_radio_postinit_2055(pi);
20442 pi->radio_is_on = true;
20446 if (NREV_GE(pi->pubpi.phy_rev, 3)
20447 && NREV_LT(pi->pubpi.phy_rev, 7)) {
20448 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20449 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
20451 write_radio_reg(pi,
20452 RADIO_2056_TX_PADA_BOOST_TUNE |
20453 RADIO_2056_TX0, 0);
20454 write_radio_reg(pi,
20455 RADIO_2056_TX_PADG_BOOST_TUNE |
20456 RADIO_2056_TX0, 0);
20457 write_radio_reg(pi,
20458 RADIO_2056_TX_PGAA_BOOST_TUNE |
20459 RADIO_2056_TX0, 0);
20460 write_radio_reg(pi,
20461 RADIO_2056_TX_PGAG_BOOST_TUNE |
20462 RADIO_2056_TX0, 0);
20464 RADIO_2056_TX_MIXA_BOOST_TUNE |
20465 RADIO_2056_TX0, 0xf0, 0);
20466 write_radio_reg(pi,
20467 RADIO_2056_TX_MIXG_BOOST_TUNE |
20468 RADIO_2056_TX0, 0);
20470 write_radio_reg(pi,
20471 RADIO_2056_TX_PADA_BOOST_TUNE |
20472 RADIO_2056_TX1, 0);
20473 write_radio_reg(pi,
20474 RADIO_2056_TX_PADG_BOOST_TUNE |
20475 RADIO_2056_TX1, 0);
20476 write_radio_reg(pi,
20477 RADIO_2056_TX_PGAA_BOOST_TUNE |
20478 RADIO_2056_TX1, 0);
20479 write_radio_reg(pi,
20480 RADIO_2056_TX_PGAG_BOOST_TUNE |
20481 RADIO_2056_TX1, 0);
20483 RADIO_2056_TX_MIXA_BOOST_TUNE |
20484 RADIO_2056_TX1, 0xf0, 0);
20485 write_radio_reg(pi,
20486 RADIO_2056_TX_MIXG_BOOST_TUNE |
20487 RADIO_2056_TX1, 0);
20489 pi->radio_is_on = false;
20492 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
20493 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20494 pi->radio_is_on = false;
20501 wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
20502 const struct chan_info_nphy_radio2057 **t0,
20503 const struct chan_info_nphy_radio205x **t1,
20504 const struct chan_info_nphy_radio2057_rev5 **t2,
20505 const struct chan_info_nphy_2055 **t3)
20508 const struct chan_info_nphy_radio2057 *chan_info_tbl_p_0 = NULL;
20509 const struct chan_info_nphy_radio205x *chan_info_tbl_p_1 = NULL;
20510 const struct chan_info_nphy_radio2057_rev5 *chan_info_tbl_p_2 = NULL;
20515 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20517 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
20519 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
20520 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
20522 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
20523 || NREV_IS(pi->pubpi.phy_rev, 9)) {
20524 switch (pi->pubpi.radiorev) {
20528 if (pi->pubpi.radiover == 0x0) {
20530 chan_info_tbl_p_2 =
20531 chan_info_nphyrev8_2057_rev5;
20532 tbl_len = ARRAY_SIZE(
20533 chan_info_nphyrev8_2057_rev5);
20535 } else if (pi->pubpi.radiover == 0x1) {
20537 chan_info_tbl_p_2 =
20538 chan_info_nphyrev9_2057_rev5v1;
20539 tbl_len = ARRAY_SIZE(
20540 chan_info_nphyrev9_2057_rev5v1);
20546 chan_info_tbl_p_0 =
20547 chan_info_nphyrev8_2057_rev7;
20548 tbl_len = ARRAY_SIZE(
20549 chan_info_nphyrev8_2057_rev7);
20553 chan_info_tbl_p_0 =
20554 chan_info_nphyrev8_2057_rev8;
20555 tbl_len = ARRAY_SIZE(
20556 chan_info_nphyrev8_2057_rev8);
20562 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
20564 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
20565 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
20570 for (i = 0; i < tbl_len; i++) {
20571 if (pi->pubpi.radiorev == 5) {
20573 if (chan_info_tbl_p_2[i].chan == channel)
20577 if (chan_info_tbl_p_0[i].chan == channel)
20585 if (pi->pubpi.radiorev == 5) {
20586 *t2 = &chan_info_tbl_p_2[i];
20587 freq = chan_info_tbl_p_2[i].freq;
20589 *t0 = &chan_info_tbl_p_0[i];
20590 freq = chan_info_tbl_p_0[i].freq;
20593 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20594 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20595 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
20596 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
20597 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20598 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
20599 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
20600 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
20601 || NREV_IS(pi->pubpi.phy_rev, 6)) {
20602 switch (pi->pubpi.radiorev) {
20604 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
20605 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
20608 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
20609 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
20613 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
20615 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
20618 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
20619 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
20622 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
20623 tbl_len = ARRAY_SIZE(
20624 chan_info_nphyrev6_2056v11);
20631 for (i = 0; i < tbl_len; i++) {
20632 if (chan_info_tbl_p_1[i].chan == channel)
20639 *t1 = &chan_info_tbl_p_1[i];
20640 freq = chan_info_tbl_p_1[i].freq;
20643 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
20644 if (chan_info_nphy_2055[i].chan == channel)
20647 if (i >= ARRAY_SIZE(chan_info_nphy_2055))
20650 *t3 = &chan_info_nphy_2055[i];
20651 freq = chan_info_nphy_2055[i].freq;
20658 *f = WL_CHAN_FREQ_RANGE_2G;
20662 u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
20665 const struct chan_info_nphy_radio2057 *t0 = NULL;
20666 const struct chan_info_nphy_radio205x *t1 = NULL;
20667 const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
20668 const struct chan_info_nphy_2055 *t3 = NULL;
20671 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
20673 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
20675 if (CHSPEC_IS2G(pi->radio_chanspec))
20676 return WL_CHAN_FREQ_RANGE_2G;
20678 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN))
20679 return WL_CHAN_FREQ_RANGE_5GL;
20680 else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN))
20681 return WL_CHAN_FREQ_RANGE_5GM;
20683 return WL_CHAN_FREQ_RANGE_5GH;
20687 wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
20688 const struct chan_info_nphy_2055 *ci)
20691 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
20692 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
20693 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
20694 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
20696 BRCMS_PHY_WAR_PR51571(pi);
20698 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
20699 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
20700 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
20701 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
20703 BRCMS_PHY_WAR_PR51571(pi);
20705 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
20706 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
20707 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
20708 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
20710 BRCMS_PHY_WAR_PR51571(pi);
20712 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
20713 ci->RF_core1_lgbuf_a_tune);
20714 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
20715 ci->RF_core1_lgbuf_g_tune);
20716 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
20717 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
20718 ci->RF_core1_tx_pga_pad_tn);
20720 BRCMS_PHY_WAR_PR51571(pi);
20722 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
20723 ci->RF_core1_tx_mx_bgtrim);
20724 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
20725 ci->RF_core2_lgbuf_a_tune);
20726 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
20727 ci->RF_core2_lgbuf_g_tune);
20728 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
20730 BRCMS_PHY_WAR_PR51571(pi);
20732 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
20733 ci->RF_core2_tx_pga_pad_tn);
20734 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
20735 ci->RF_core2_tx_mx_bgtrim);
20739 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
20740 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
20742 BRCMS_PHY_WAR_PR51571(pi);
20744 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
20750 wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
20751 const struct chan_info_nphy_radio205x *ci)
20753 const struct radio_regs *regs_SYN_2056_ptr = NULL;
20755 write_radio_reg(pi,
20756 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
20757 ci->RF_SYN_pll_vcocal1);
20758 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
20759 ci->RF_SYN_pll_vcocal2);
20760 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
20761 ci->RF_SYN_pll_refdiv);
20762 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
20763 ci->RF_SYN_pll_mmd2);
20764 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
20765 ci->RF_SYN_pll_mmd1);
20766 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20767 ci->RF_SYN_pll_loopfilter1);
20768 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20769 ci->RF_SYN_pll_loopfilter2);
20770 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
20771 ci->RF_SYN_pll_loopfilter3);
20772 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20773 ci->RF_SYN_pll_loopfilter4);
20774 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
20775 ci->RF_SYN_pll_loopfilter5);
20776 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
20777 ci->RF_SYN_reserved_addr27);
20778 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
20779 ci->RF_SYN_reserved_addr28);
20780 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
20781 ci->RF_SYN_reserved_addr29);
20782 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
20783 ci->RF_SYN_logen_VCOBUF1);
20784 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
20785 ci->RF_SYN_logen_MIXER2);
20786 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
20787 ci->RF_SYN_logen_BUF3);
20788 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
20789 ci->RF_SYN_logen_BUF4);
20791 write_radio_reg(pi,
20792 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
20793 ci->RF_RX0_lnaa_tune);
20794 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
20795 ci->RF_RX0_lnag_tune);
20796 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
20797 ci->RF_TX0_intpaa_boost_tune);
20798 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
20799 ci->RF_TX0_intpag_boost_tune);
20800 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
20801 ci->RF_TX0_pada_boost_tune);
20802 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
20803 ci->RF_TX0_padg_boost_tune);
20804 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
20805 ci->RF_TX0_pgaa_boost_tune);
20806 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
20807 ci->RF_TX0_pgag_boost_tune);
20808 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
20809 ci->RF_TX0_mixa_boost_tune);
20810 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
20811 ci->RF_TX0_mixg_boost_tune);
20813 write_radio_reg(pi,
20814 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
20815 ci->RF_RX1_lnaa_tune);
20816 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
20817 ci->RF_RX1_lnag_tune);
20818 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
20819 ci->RF_TX1_intpaa_boost_tune);
20820 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
20821 ci->RF_TX1_intpag_boost_tune);
20822 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
20823 ci->RF_TX1_pada_boost_tune);
20824 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
20825 ci->RF_TX1_padg_boost_tune);
20826 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
20827 ci->RF_TX1_pgaa_boost_tune);
20828 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
20829 ci->RF_TX1_pgag_boost_tune);
20830 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
20831 ci->RF_TX1_mixa_boost_tune);
20832 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
20833 ci->RF_TX1_mixg_boost_tune);
20835 if (NREV_IS(pi->pubpi.phy_rev, 3))
20836 regs_SYN_2056_ptr = regs_SYN_2056;
20837 else if (NREV_IS(pi->pubpi.phy_rev, 4))
20838 regs_SYN_2056_ptr = regs_SYN_2056_A1;
20840 switch (pi->pubpi.radiorev) {
20842 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20845 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20849 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20852 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20855 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20859 if (CHSPEC_IS2G(pi->radio_chanspec))
20860 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20862 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
20864 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20866 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
20868 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
20869 if (CHSPEC_IS2G(pi->radio_chanspec)) {
20870 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20871 RADIO_2056_SYN, 0x1f);
20872 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20873 RADIO_2056_SYN, 0x1f);
20875 write_radio_reg(pi,
20876 RADIO_2056_SYN_PLL_LOOPFILTER4 |
20877 RADIO_2056_SYN, 0xb);
20878 write_radio_reg(pi,
20879 RADIO_2056_SYN_PLL_CP2 |
20880 RADIO_2056_SYN, 0x14);
20884 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
20885 (CHSPEC_IS2G(pi->radio_chanspec))) {
20886 write_radio_reg(pi,
20887 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20889 write_radio_reg(pi,
20890 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20892 write_radio_reg(pi,
20893 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20895 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
20899 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
20900 if (CHSPEC_IS5G(pi->radio_chanspec)) {
20901 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20902 RADIO_2056_SYN, 0x1f);
20903 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20904 RADIO_2056_SYN, 0x1f);
20905 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
20906 RADIO_2056_SYN, 0x5);
20907 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20908 RADIO_2056_SYN, 0xc);
20912 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
20913 u16 pag_boost_tune;
20914 u16 padg_boost_tune;
20915 u16 pgag_boost_tune;
20916 u16 mixg_boost_tune;
20917 u16 bias, cascbias;
20920 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20922 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
20924 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20930 if ((pi->sh->chip ==
20932 || (pi->sh->chip ==
20933 BCM43225_CHIP_ID)) {
20934 if (pi->sh->chippkg ==
20935 BCM43224_FAB_SMIC) {
20941 pag_boost_tune = 0x4;
20942 pgag_boost_tune = 0x03;
20943 padg_boost_tune = 0x77;
20944 mixg_boost_tune = 0x65;
20946 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20947 INTPAG_IMAIN_STAT, bias);
20948 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20949 INTPAG_IAUX_STAT, bias);
20950 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20951 INTPAG_CASCBIAS, cascbias);
20953 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20956 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20959 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20962 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20967 bias = (pi->bw == WL_CHANSPEC_BW_40) ?
20970 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20971 INTPAG_IMAIN_STAT, bias);
20972 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20973 INTPAG_IAUX_STAT, bias);
20974 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20975 INTPAG_CASCBIAS, 0x30);
20977 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
20982 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
20983 && CHSPEC_IS5G(pi->radio_chanspec)) {
20984 u16 paa_boost_tune;
20985 u16 pada_boost_tune;
20986 u16 pgaa_boost_tune;
20987 u16 mixa_boost_tune;
20988 u16 freq, pabias, cascbias;
20991 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
20995 paa_boost_tune = 0xa;
20996 pada_boost_tune = 0x77;
20997 pgaa_boost_tune = 0xf;
20998 mixa_boost_tune = 0xf;
20999 } else if (freq < 5340) {
21001 paa_boost_tune = 0x8;
21002 pada_boost_tune = 0x77;
21003 pgaa_boost_tune = 0xfb;
21004 mixa_boost_tune = 0xf;
21005 } else if (freq < 5650) {
21007 paa_boost_tune = 0x0;
21008 pada_boost_tune = 0x77;
21009 pgaa_boost_tune = 0xb;
21010 mixa_boost_tune = 0xf;
21013 paa_boost_tune = 0x0;
21014 pada_boost_tune = 0x77;
21016 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
21018 pgaa_boost_tune = 6;
21020 mixa_boost_tune = 0xf;
21023 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21024 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21025 INTPAA_BOOST_TUNE, paa_boost_tune);
21026 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21027 PADA_BOOST_TUNE, pada_boost_tune);
21028 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21029 PGAA_BOOST_TUNE, pgaa_boost_tune);
21030 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21031 MIXA_BOOST_TUNE, mixa_boost_tune);
21033 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21035 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21038 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21039 PADA_CASCBIAS, 0x3);
21043 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
21044 (pi->sh->chip == BCM43225_CHIP_ID)) {
21045 if (pi->sh->chippkg == BCM43224_FAB_SMIC)
21049 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
21051 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21052 INTPAA_IAUX_STAT, pabias);
21053 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21054 INTPAA_IMAIN_STAT, pabias);
21055 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21056 INTPAA_CASCBIAS, cascbias);
21062 wlc_phy_radio205x_vcocal_nphy(pi);
21065 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy *pi)
21067 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21068 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
21069 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
21070 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
21072 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
21073 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21074 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
21075 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
21076 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
21077 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
21078 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
21085 wlc_phy_chanspec_radio2057_setup(
21086 struct brcms_phy *pi,
21087 const struct chan_info_nphy_radio2057 *ci,
21088 const struct chan_info_nphy_radio2057_rev5 *
21092 u16 txmix2g_tune_boost_pu = 0;
21093 u16 pad2g_tune_pus = 0;
21095 if (pi->pubpi.radiorev == 5) {
21097 write_radio_reg(pi,
21098 RADIO_2057_VCOCAL_COUNTVAL0,
21099 ci2->RF_vcocal_countval0);
21100 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
21101 ci2->RF_vcocal_countval1);
21102 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
21103 ci2->RF_rfpll_refmaster_sparextalsize);
21104 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21105 ci2->RF_rfpll_loopfilter_r1);
21106 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21107 ci2->RF_rfpll_loopfilter_c2);
21108 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21109 ci2->RF_rfpll_loopfilter_c1);
21110 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
21111 ci2->RF_cp_kpd_idac);
21112 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
21113 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
21114 write_radio_reg(pi,
21115 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
21116 write_radio_reg(pi,
21117 RADIO_2057_LOGEN_MX2G_TUNE,
21118 ci2->RF_logen_mx2g_tune);
21119 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21120 ci2->RF_logen_indbuf2g_tune);
21122 write_radio_reg(pi,
21123 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21124 ci2->RF_txmix2g_tune_boost_pu_core0);
21125 write_radio_reg(pi,
21126 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21127 ci2->RF_pad2g_tune_pus_core0);
21128 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21129 ci2->RF_lna2g_tune_core0);
21131 write_radio_reg(pi,
21132 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21133 ci2->RF_txmix2g_tune_boost_pu_core1);
21134 write_radio_reg(pi,
21135 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21136 ci2->RF_pad2g_tune_pus_core1);
21137 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21138 ci2->RF_lna2g_tune_core1);
21142 write_radio_reg(pi,
21143 RADIO_2057_VCOCAL_COUNTVAL0,
21144 ci->RF_vcocal_countval0);
21145 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
21146 ci->RF_vcocal_countval1);
21147 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
21148 ci->RF_rfpll_refmaster_sparextalsize);
21149 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21150 ci->RF_rfpll_loopfilter_r1);
21151 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21152 ci->RF_rfpll_loopfilter_c2);
21153 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21154 ci->RF_rfpll_loopfilter_c1);
21155 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
21156 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
21157 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
21158 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
21159 write_radio_reg(pi,
21160 RADIO_2057_LOGEN_MX2G_TUNE,
21161 ci->RF_logen_mx2g_tune);
21162 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
21163 ci->RF_logen_mx5g_tune);
21164 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21165 ci->RF_logen_indbuf2g_tune);
21166 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
21167 ci->RF_logen_indbuf5g_tune);
21169 write_radio_reg(pi,
21170 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21171 ci->RF_txmix2g_tune_boost_pu_core0);
21172 write_radio_reg(pi,
21173 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21174 ci->RF_pad2g_tune_pus_core0);
21175 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
21176 ci->RF_pga_boost_tune_core0);
21177 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
21178 ci->RF_txmix5g_boost_tune_core0);
21179 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
21180 ci->RF_pad5g_tune_misc_pus_core0);
21181 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21182 ci->RF_lna2g_tune_core0);
21183 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
21184 ci->RF_lna5g_tune_core0);
21186 write_radio_reg(pi,
21187 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21188 ci->RF_txmix2g_tune_boost_pu_core1);
21189 write_radio_reg(pi,
21190 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21191 ci->RF_pad2g_tune_pus_core1);
21192 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
21193 ci->RF_pga_boost_tune_core1);
21194 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
21195 ci->RF_txmix5g_boost_tune_core1);
21196 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
21197 ci->RF_pad5g_tune_misc_pus_core1);
21198 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21199 ci->RF_lna2g_tune_core1);
21200 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
21201 ci->RF_lna5g_tune_core1);
21204 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
21206 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21207 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21209 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21210 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21212 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21215 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21217 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21218 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21220 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21223 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
21224 (pi->pubpi.radiorev == 8)) {
21226 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21227 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21229 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
21230 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21232 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21235 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21237 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21238 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21240 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21246 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21248 if (pi->pubpi.radiorev == 3)
21249 txmix2g_tune_boost_pu = 0x6b;
21251 if (pi->pubpi.radiorev == 5)
21252 pad2g_tune_pus = 0x73;
21255 if (pi->pubpi.radiorev != 5) {
21256 pad2g_tune_pus = 0x3;
21258 txmix2g_tune_boost_pu = 0x61;
21262 for (coreNum = 0; coreNum <= 1; coreNum++) {
21264 if (txmix2g_tune_boost_pu != 0)
21265 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21266 TXMIX2G_TUNE_BOOST_PU,
21267 txmix2g_tune_boost_pu);
21269 if (pad2g_tune_pus != 0)
21270 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21278 wlc_phy_radio205x_vcocal_nphy(pi);
21282 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
21283 const struct nphy_sfo_cfg *ci)
21287 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
21288 if (CHSPEC_IS5G(chanspec) && !val) {
21290 val = R_REG(&pi->regs->psm_phy_hdr_param);
21291 W_REG(&pi->regs->psm_phy_hdr_param,
21292 (val | MAC_PHY_FORCE_CLK));
21294 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21295 (BBCFG_RESETCCA | BBCFG_RESETRX));
21297 W_REG(&pi->regs->psm_phy_hdr_param, val);
21299 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
21300 } else if (!CHSPEC_IS5G(chanspec) && val) {
21302 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
21304 val = R_REG(&pi->regs->psm_phy_hdr_param);
21305 W_REG(&pi->regs->psm_phy_hdr_param,
21306 (val | MAC_PHY_FORCE_CLK));
21308 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21309 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
21311 W_REG(&pi->regs->psm_phy_hdr_param, val);
21314 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
21315 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
21316 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
21318 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
21319 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
21320 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
21322 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
21323 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
21325 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
21327 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
21328 NPHY_ClassifierCtrl_ofdm_en);
21330 if (CHSPEC_IS2G(chanspec))
21331 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
21334 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF)
21335 wlc_phy_txpwr_fixpower_nphy(pi);
21337 if (NREV_LT(pi->pubpi.phy_rev, 3))
21338 wlc_phy_adjust_lnagaintbl_nphy(pi);
21340 wlc_phy_txlpfbw_nphy(pi);
21342 if (NREV_GE(pi->pubpi.phy_rev, 3)
21343 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
21346 val = CHSPEC_CHANNEL(chanspec);
21347 if (!CHSPEC_IS40(pi->radio_chanspec)) {
21348 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21349 if ((val == 13) || (val == 14) || (val == 153))
21351 } else if (((val >= 5) && (val <= 8)) || (val == 13)
21355 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21359 if (pi->nphy_aband_spurwar_en &&
21360 ((val == 38) || (val == 102)
21365 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
21368 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
21369 si_pmu_spuravoid(pi->sh->sih, spuravoid);
21370 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
21372 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
21373 (pi->sh->chip == BCM43225_CHIP_ID)) {
21375 if (spuravoid == 1) {
21377 W_REG(&pi->regs->tsf_clk_frac_l,
21379 W_REG(&pi->regs->tsf_clk_frac_h,
21383 W_REG(&pi->regs->tsf_clk_frac_l,
21385 W_REG(&pi->regs->tsf_clk_frac_h,
21390 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
21392 mod_phy_reg(pi, 0x01, (0x1 << 15),
21393 ((spuravoid > 0) ? (0x1 << 15) : 0));
21395 wlc_phy_resetcca_nphy(pi);
21397 pi->phy_isspuravoid = (spuravoid > 0);
21400 if (NREV_LT(pi->pubpi.phy_rev, 7))
21401 write_phy_reg(pi, 0x17e, 0x3830);
21403 wlc_phy_spurwar_nphy(pi);
21406 void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
21409 const struct chan_info_nphy_radio2057 *t0 = NULL;
21410 const struct chan_info_nphy_radio205x *t1 = NULL;
21411 const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
21412 const struct chan_info_nphy_2055 *t3 = NULL;
21414 if (!wlc_phy_chan2freq_nphy
21415 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
21418 wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
21420 if (CHSPEC_BW(chanspec) != pi->bw)
21421 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
21423 if (CHSPEC_IS40(chanspec)) {
21424 if (CHSPEC_SB_UPPER(chanspec)) {
21425 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
21426 if (NREV_GE(pi->pubpi.phy_rev, 7))
21427 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
21429 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
21430 if (NREV_GE(pi->pubpi.phy_rev, 7))
21431 and_phy_reg(pi, 0x310,
21432 (~PRIM_SEL_UP20 & 0xffff));
21436 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21437 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21439 if ((pi->pubpi.radiorev <= 4)
21440 || (pi->pubpi.radiorev == 6)) {
21441 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
21443 (CHSPEC_IS5G(chanspec) ? (1 << 1)
21445 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
21447 (CHSPEC_IS5G(chanspec) ? (1 << 1)
21451 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
21452 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21453 (pi->pubpi.radiorev == 5) ?
21454 (const struct nphy_sfo_cfg *)&(t2->PHY_BW1a) :
21455 (const struct nphy_sfo_cfg *)&(t0->PHY_BW1a));
21460 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
21462 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
21463 wlc_phy_chanspec_radio2056_setup(pi, t1);
21465 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21466 (const struct nphy_sfo_cfg *) &(t1->PHY_BW1a));
21471 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
21472 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
21475 wlc_phy_chanspec_radio2055_setup(pi, t3);
21476 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21477 (const struct nphy_sfo_cfg *)
21483 void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
21485 struct brcms_phy *pi = (struct brcms_phy *) ppi;
21489 if (NREV_GE(pi->pubpi.phy_rev, 7))
21492 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21493 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
21495 if (lut_init == false)
21498 if (pi->srom_fem2g.antswctrllut == 0) {
21499 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21501 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21503 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21505 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21509 if (pi->srom_fem5g.antswctrllut == 0) {
21510 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21512 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21514 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21516 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21521 write_phy_reg(pi, 0xc8, 0x0);
21522 write_phy_reg(pi, 0xc9, 0x0);
21524 ai_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
21526 mc = R_REG(&pi->regs->maccontrol);
21527 mc &= ~MCTL_GPOUT_SEL_MASK;
21528 W_REG(&pi->regs->maccontrol, mc);
21530 OR_REG(&pi->regs->psm_gpio_oe, mask);
21532 AND_REG(&pi->regs->psm_gpio_out, ~mask);
21535 write_phy_reg(pi, 0xf8, 0x02d8);
21536 write_phy_reg(pi, 0xf9, 0x0301);
21537 write_phy_reg(pi, 0xfa, 0x02d8);
21538 write_phy_reg(pi, 0xfb, 0x0301);
21543 u16 wlc_phy_classifier_nphy(struct brcms_phy *pi, u16 mask, u16 val)
21545 u16 curr_ctl, new_ctl;
21546 bool suspended = false;
21548 if (D11REV_IS(pi->sh->corerev, 16)) {
21550 (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC) ?
21553 wlapi_suspend_mac_and_wait(pi->sh->physhim);
21556 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
21558 new_ctl = (curr_ctl & (~mask)) | (val & mask);
21560 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
21562 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
21563 wlapi_enable_mac(pi->sh->physhim);
21568 void wlc_phy_force_rfseq_nphy(struct brcms_phy *pi, u8 cmd)
21570 u16 trigger_mask, status_mask;
21571 u16 orig_RfseqCoreActv;
21574 case NPHY_RFSEQ_RX2TX:
21575 trigger_mask = NPHY_RfseqTrigger_rx2tx;
21576 status_mask = NPHY_RfseqStatus_rx2tx;
21578 case NPHY_RFSEQ_TX2RX:
21579 trigger_mask = NPHY_RfseqTrigger_tx2rx;
21580 status_mask = NPHY_RfseqStatus_tx2rx;
21582 case NPHY_RFSEQ_RESET2RX:
21583 trigger_mask = NPHY_RfseqTrigger_reset2rx;
21584 status_mask = NPHY_RfseqStatus_reset2rx;
21586 case NPHY_RFSEQ_UPDATEGAINH:
21587 trigger_mask = NPHY_RfseqTrigger_updategainh;
21588 status_mask = NPHY_RfseqStatus_updategainh;
21590 case NPHY_RFSEQ_UPDATEGAINL:
21591 trigger_mask = NPHY_RfseqTrigger_updategainl;
21592 status_mask = NPHY_RfseqStatus_updategainl;
21594 case NPHY_RFSEQ_UPDATEGAINU:
21595 trigger_mask = NPHY_RfseqTrigger_updategainu;
21596 status_mask = NPHY_RfseqStatus_updategainu;
21602 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
21603 or_phy_reg(pi, 0xa1,
21604 (NPHY_RfseqMode_CoreActv_override |
21605 NPHY_RfseqMode_Trigger_override));
21606 or_phy_reg(pi, 0xa3, trigger_mask);
21607 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
21608 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
21609 WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
21613 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
21614 u8 core_mask, u8 off)
21616 u16 rfmxgain = 0, lpfgain = 0;
21619 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21622 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
21623 wlc_phy_rfctrl_override_nphy_rev7(
21625 value, core_mask, off,
21626 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21627 wlc_phy_rfctrl_override_nphy_rev7(
21628 pi, (0x1 << 4), value,
21630 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21631 wlc_phy_rfctrl_override_nphy_rev7(
21632 pi, (0x1 << 3), value,
21634 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21636 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
21637 wlc_phy_rfctrl_override_nphy_rev7(
21639 value, core_mask, off,
21640 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21641 wlc_phy_rfctrl_override_nphy_rev7(
21642 pi, (0x1 << 1), value,
21644 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21645 wlc_phy_rfctrl_override_nphy_rev7(
21646 pi, (0x1 << 0), value,
21648 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21649 wlc_phy_rfctrl_override_nphy_rev7(
21650 pi, (0x1 << 1), value,
21652 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21653 wlc_phy_rfctrl_override_nphy_rev7(
21654 pi, (0x1 << 11), 0,
21656 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21658 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
21659 wlc_phy_rfctrl_override_nphy_rev7(
21661 value, core_mask, off,
21662 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21663 wlc_phy_rfctrl_override_nphy_rev7(
21664 pi, (0x1 << 1), value,
21666 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21667 wlc_phy_rfctrl_override_nphy_rev7(
21668 pi, (0x1 << 0), value,
21670 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21671 wlc_phy_rfctrl_override_nphy_rev7(
21672 pi, (0x1 << 2), value,
21674 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21675 wlc_phy_rfctrl_override_nphy_rev7(
21676 pi, (0x1 << 11), 1,
21678 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21680 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
21681 rfmxgain = value & 0x000ff;
21682 lpfgain = value & 0x0ff00;
21683 lpfgain = lpfgain >> 8;
21685 wlc_phy_rfctrl_override_nphy_rev7(
21687 rfmxgain, core_mask,
21689 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21690 wlc_phy_rfctrl_override_nphy_rev7(
21692 lpfgain, core_mask,
21694 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21696 case NPHY_REV7_RfctrlOverride_cmd_txgain:
21697 tgain = value & 0x7fff;
21698 lpfgain = value & 0x8000;
21699 lpfgain = lpfgain >> 14;
21701 wlc_phy_rfctrl_override_nphy_rev7(
21703 tgain, core_mask, off,
21704 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21705 wlc_phy_rfctrl_override_nphy_rev7(
21707 lpfgain, core_mask,
21709 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21716 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
21717 u8 coresel, u8 rail, u8 rssi_type)
21721 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
21722 NPHY_RSSICAL_MAXREAD : offset;
21723 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
21724 -NPHY_RSSICAL_MAXREAD - 1 : offset;
21726 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
21728 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21729 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21730 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21731 write_phy_reg(pi, 0x1a6, valuetostuff);
21733 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21734 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21735 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21736 write_phy_reg(pi, 0x1ac, valuetostuff);
21738 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21739 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21740 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21741 write_phy_reg(pi, 0x1b2, valuetostuff);
21743 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21744 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21745 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21746 write_phy_reg(pi, 0x1b8, valuetostuff);
21748 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21749 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21750 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21751 write_phy_reg(pi, 0x1a4, valuetostuff);
21753 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21754 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21755 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21756 write_phy_reg(pi, 0x1aa, valuetostuff);
21758 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21759 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21760 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21761 write_phy_reg(pi, 0x1b0, valuetostuff);
21763 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21764 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21765 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21766 write_phy_reg(pi, 0x1b6, valuetostuff);
21768 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21769 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21770 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21771 write_phy_reg(pi, 0x1a5, valuetostuff);
21772 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21773 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21774 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21775 write_phy_reg(pi, 0x1ab, valuetostuff);
21777 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21778 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21779 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21780 write_phy_reg(pi, 0x1b1, valuetostuff);
21782 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21783 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21784 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21785 write_phy_reg(pi, 0x1b7, valuetostuff);
21787 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21788 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21789 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21790 write_phy_reg(pi, 0x1a7, valuetostuff);
21791 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21792 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21793 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21794 write_phy_reg(pi, 0x1ad, valuetostuff);
21795 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21796 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21797 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21798 write_phy_reg(pi, 0x1b3, valuetostuff);
21799 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21800 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21801 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21802 write_phy_reg(pi, 0x1b9, valuetostuff);
21804 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21805 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21806 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21807 write_phy_reg(pi, 0x1a8, valuetostuff);
21809 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21810 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21811 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21812 write_phy_reg(pi, 0x1ae, valuetostuff);
21814 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21815 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21816 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21817 write_phy_reg(pi, 0x1b4, valuetostuff);
21819 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21820 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21821 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21822 write_phy_reg(pi, 0x1ba, valuetostuff);
21824 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21825 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21826 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21827 write_phy_reg(pi, 0x1a9, valuetostuff);
21828 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21829 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21830 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21831 write_phy_reg(pi, 0x1b5, valuetostuff);
21833 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21834 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21835 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21836 write_phy_reg(pi, 0x1af, valuetostuff);
21838 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21839 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21840 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21841 write_phy_reg(pi, 0x1bb, valuetostuff);
21844 static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
21847 if (NREV_GE(pi->pubpi.phy_rev, 7))
21848 write_radio_reg(pi,
21849 ((core == PHY_CORE_0) ?
21850 RADIO_2057_TX0_TX_SSI_MUX :
21851 RADIO_2057_TX1_TX_SSI_MUX),
21852 (CHSPEC_IS5G(pi->radio_chanspec) ?
21855 write_radio_reg(pi,
21856 RADIO_2056_TX_TX_SSI_MUX |
21857 ((core == PHY_CORE_0) ?
21858 RADIO_2056_TX0 : RADIO_2056_TX1),
21859 (CHSPEC_IS5G(pi->radio_chanspec) ?
21862 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21863 write_radio_reg(pi,
21864 ((core == PHY_CORE_0) ?
21865 RADIO_2057_TX0_TX_SSI_MUX :
21866 RADIO_2057_TX1_TX_SSI_MUX),
21869 if (pi->pubpi.radioid == BCM2057_ID)
21870 write_radio_reg(pi,
21871 RADIO_2057_IQTEST_SEL_PU, 0x1);
21874 write_radio_reg(pi,
21875 RADIO_2056_TX_TX_SSI_MUX |
21876 ((core == PHY_CORE_0) ?
21877 RADIO_2056_TX0 : RADIO_2056_TX1),
21883 void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
21886 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
21888 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
21889 rfctrlovr_trigger_val;
21890 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
21891 u16 rfctrlcmd_val, rfctrlovr_val;
21894 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21895 if (core_code == RADIO_MIMO_CORESEL_OFF) {
21896 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
21897 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
21899 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
21900 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
21902 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
21903 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
21905 mask = (0x1 << 2) |
21906 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
21907 mod_phy_reg(pi, 0xf9, mask, 0);
21908 mod_phy_reg(pi, 0xfb, mask, 0);
21911 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21912 if (core_code == RADIO_MIMO_CORESEL_CORE1
21913 && core == PHY_CORE_1)
21915 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21916 && core == PHY_CORE_0)
21919 mod_phy_reg(pi, (core == PHY_CORE_0) ?
21920 0x8f : 0xa5, (0x1 << 9), 1 << 9);
21922 if (rssi_type == NPHY_RSSI_SEL_W1 ||
21923 rssi_type == NPHY_RSSI_SEL_W2 ||
21924 rssi_type == NPHY_RSSI_SEL_NB) {
21927 PHY_CORE_0) ? 0xa6 : 0xa7,
21930 mask = (0x1 << 2) |
21932 (0x1 << 4) | (0x1 << 5);
21935 PHY_CORE_0) ? 0xf9 : 0xfb,
21938 if (rssi_type == NPHY_RSSI_SEL_W1) {
21940 pi->radio_chanspec)) {
21947 } else if (rssi_type ==
21948 NPHY_RSSI_SEL_W2) {
21957 PHY_CORE_0) ? 0xf9 : 0xfb,
21962 mod_phy_reg(pi, (core == PHY_CORE_0) ?
21963 0xe5 : 0xe6, mask, val);
21965 if (rssi_type == NPHY_RSSI_SEL_TBD) {
21971 : 0xa7, mask, val);
21972 mask = (0x3 << 10);
21977 : 0xa7, mask, val);
21978 } else if (rssi_type ==
21979 NPHY_RSSI_SEL_IQ) {
21985 : 0xa7, mask, val);
21986 mask = (0x3 << 10);
21991 : 0xa7, mask, val);
21998 : 0xa7, mask, val);
21999 mask = (0x3 << 10);
22004 : 0xa7, mask, val);
22005 brcms_phy_wr_tx_mux(pi, core);
22006 afectrlovr_rssi_val = 1 << 9;
22010 : 0xa5, (0x1 << 9),
22011 afectrlovr_rssi_val);
22018 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
22019 (rssi_type == NPHY_RSSI_SEL_W2) ||
22020 (rssi_type == NPHY_RSSI_SEL_NB))
22022 else if (rssi_type == NPHY_RSSI_SEL_TBD)
22024 else if (rssi_type == NPHY_RSSI_SEL_IQ)
22029 mask = ((0x3 << 12) | (0x3 << 14));
22030 val = (val << 12) | (val << 14);
22031 mod_phy_reg(pi, 0xa6, mask, val);
22032 mod_phy_reg(pi, 0xa7, mask, val);
22034 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
22035 (rssi_type == NPHY_RSSI_SEL_W2) ||
22036 (rssi_type == NPHY_RSSI_SEL_NB)) {
22037 if (rssi_type == NPHY_RSSI_SEL_W1)
22039 if (rssi_type == NPHY_RSSI_SEL_W2)
22041 if (rssi_type == NPHY_RSSI_SEL_NB)
22046 mod_phy_reg(pi, 0x7a, mask, val);
22047 mod_phy_reg(pi, 0x7d, mask, val);
22050 if (core_code == RADIO_MIMO_CORESEL_OFF) {
22051 afectrlovr_rssi_val = 0;
22052 rfctrlcmd_rxen_val = 0;
22053 rfctrlcmd_coresel_val = 0;
22054 rfctrlovr_rssi_val = 0;
22055 rfctrlovr_rxen_val = 0;
22056 rfctrlovr_coresel_val = 0;
22057 rfctrlovr_trigger_val = 0;
22060 afectrlovr_rssi_val = 1;
22061 rfctrlcmd_rxen_val = 1;
22062 rfctrlcmd_coresel_val = core_code;
22063 rfctrlovr_rssi_val = 1;
22064 rfctrlovr_rxen_val = 1;
22065 rfctrlovr_coresel_val = 1;
22066 rfctrlovr_trigger_val = 1;
22070 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
22071 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
22072 12) | (afectrlovr_rssi_val << 13);
22073 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
22074 afectrlovr_rssi_val);
22076 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
22077 (rssi_type == NPHY_RSSI_SEL_W2) ||
22078 (rssi_type == NPHY_RSSI_SEL_NB)) {
22079 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
22080 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
22081 (rfctrlcmd_coresel_val << 3);
22083 rfctrlovr_mask = ((0x1 << 5) |
22085 (0x1 << 1) | (0x1 << 0));
22086 rfctrlovr_val = (rfctrlovr_rssi_val <<
22088 (rfctrlovr_rxen_val << 12) |
22089 (rfctrlovr_coresel_val << 1) |
22090 (rfctrlovr_trigger_val << 0);
22092 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
22093 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
22095 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
22098 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22104 wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
22108 u16 afectrlCore1_save = 0;
22109 u16 afectrlCore2_save = 0;
22110 u16 afectrlOverride1_save = 0;
22111 u16 afectrlOverride2_save = 0;
22112 u16 rfctrlOverrideAux0_save = 0;
22113 u16 rfctrlOverrideAux1_save = 0;
22114 u16 rfctrlMiscReg1_save = 0;
22115 u16 rfctrlMiscReg2_save = 0;
22116 u16 rfctrlcmd_save = 0;
22117 u16 rfctrloverride_save = 0;
22118 u16 rfctrlrssiothers1_save = 0;
22119 u16 rfctrlrssiothers2_save = 0;
22121 u8 ctr = 0, samp = 0;
22125 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22126 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22127 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22128 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22129 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22130 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
22131 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22132 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22133 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22135 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
22136 rfctrlcmd_save = read_phy_reg(pi, 0x78);
22137 rfctrloverride_save = read_phy_reg(pi, 0xec);
22138 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
22139 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
22142 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
22144 gpiosel_orig = read_phy_reg(pi, 0xca);
22145 if (NREV_LT(pi->pubpi.phy_rev, 2))
22146 write_phy_reg(pi, 0xca, 5);
22148 for (ctr = 0; ctr < 4; ctr++)
22151 for (samp = 0; samp < nsamps; samp++) {
22152 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
22153 rssi0 = read_phy_reg(pi, 0x1c9);
22154 rssi1 = read_phy_reg(pi, 0x1ca);
22156 rssi0 = read_phy_reg(pi, 0x219);
22157 rssi1 = read_phy_reg(pi, 0x21a);
22161 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
22162 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
22163 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
22164 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
22166 for (ctr = 0; ctr < 4; ctr++)
22167 rssi_buf[ctr] += tmp_buf[ctr];
22171 rssi_out_val = rssi_buf[3] & 0xff;
22172 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
22173 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
22174 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
22176 if (NREV_LT(pi->pubpi.phy_rev, 2))
22177 write_phy_reg(pi, 0xca, gpiosel_orig);
22179 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22180 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22181 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22182 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
22183 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
22184 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
22185 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22186 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
22187 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
22189 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
22190 write_phy_reg(pi, 0x78, rfctrlcmd_save);
22191 write_phy_reg(pi, 0xec, rfctrloverride_save);
22192 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
22193 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
22196 return rssi_out_val;
22199 s16 wlc_phy_tempsense_nphy(struct brcms_phy *pi)
22201 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
22202 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
22203 u16 pwrdet_rxtx_core1_save;
22204 u16 pwrdet_rxtx_core2_save;
22205 u16 afectrlCore1_save;
22206 u16 afectrlCore2_save;
22207 u16 afectrlOverride_save;
22208 u16 afectrlOverride2_save;
22209 u16 pd_pll_ts_save;
22212 s32 radio_temp2[4];
22213 u16 syn_tempprocsense_save;
22216 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22217 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
22218 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
22219 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
22221 u16 RfctrlOverride5_save, RfctrlOverride6_save;
22222 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
22223 u16 RSSIMultCoef0QPowerDet_save;
22224 u16 tempsense_Rcal;
22226 syn_tempprocsense_save =
22227 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
22229 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22230 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22231 afectrlOverride_save = read_phy_reg(pi, 0x8f);
22232 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22233 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
22234 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22235 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22236 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22237 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22239 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22240 &auxADC_Vmid_save);
22241 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22243 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22244 &auxADC_rssi_ctrlL_save);
22245 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22246 &auxADC_rssi_ctrlH_save);
22248 write_phy_reg(pi, 0x1ae, 0x0);
22250 auxADC_rssi_ctrlL = 0x0;
22251 auxADC_rssi_ctrlH = 0x20;
22252 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22253 &auxADC_rssi_ctrlL);
22254 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22255 &auxADC_rssi_ctrlH);
22257 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
22259 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22260 tempsense_Rcal | 0x01);
22262 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
22264 NPHY_REV7_RFCTRLOVERRIDE_ID2);
22265 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
22266 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
22267 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
22268 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
22270 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
22271 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
22272 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
22273 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
22275 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
22276 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
22277 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
22278 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
22279 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
22280 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
22281 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
22282 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
22283 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
22284 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
22286 auxADC_Vmid = 0xA3;
22288 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22290 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22295 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22296 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22297 tempsense_Rcal | 0x03);
22300 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22303 if (radio_temp[1] + radio_temp2[1] < -30) {
22304 auxADC_Vmid = 0x45;
22306 } else if (radio_temp[1] + radio_temp2[1] < -9) {
22307 auxADC_Vmid = 0x200;
22309 } else if (radio_temp[1] + radio_temp2[1] < 11) {
22310 auxADC_Vmid = 0x266;
22313 auxADC_Vmid = 0x2D5;
22317 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22319 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22324 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22325 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22326 tempsense_Rcal | 0x01);
22329 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22331 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22332 syn_tempprocsense_save);
22334 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22335 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22336 write_phy_reg(pi, 0x8f, afectrlOverride_save);
22337 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22338 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
22339 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
22340 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
22341 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
22342 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
22344 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22345 &auxADC_Vmid_save);
22346 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22348 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22349 &auxADC_rssi_ctrlL_save);
22350 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22351 &auxADC_rssi_ctrlH_save);
22353 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
22354 + 82 * (auxADC_Vl) - 28861 +
22357 offset = (s16) pi->phy_tempsense_offset;
22359 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22360 syn_tempprocsense_save =
22361 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
22363 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22364 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22365 afectrlOverride_save = read_phy_reg(pi, 0x8f);
22366 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22367 gpioSel_save = read_phy_reg(pi, 0xca);
22369 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22371 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22372 if (NREV_LT(pi->pubpi.phy_rev, 7))
22373 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
22375 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22376 if (NREV_GE(pi->pubpi.phy_rev, 7))
22377 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
22379 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22382 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
22384 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
22385 syn_tempprocsense_save);
22387 write_phy_reg(pi, 0xca, gpioSel_save);
22388 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22389 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22390 write_phy_reg(pi, 0x8f, afectrlOverride_save);
22391 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22393 offset = (s16) pi->phy_tempsense_offset;
22396 pwrdet_rxtx_core1_save =
22397 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
22398 pwrdet_rxtx_core2_save =
22399 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
22400 core1_txrf_iqcal1_save =
22401 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
22402 core1_txrf_iqcal2_save =
22403 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
22404 core2_txrf_iqcal1_save =
22405 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
22406 core2_txrf_iqcal2_save =
22407 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
22408 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
22410 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22411 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22412 afectrlOverride_save = read_phy_reg(pi, 0xa5);
22413 gpioSel_save = read_phy_reg(pi, 0xca);
22415 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
22416 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
22417 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
22418 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
22419 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
22420 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
22421 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
22423 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22424 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22426 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22427 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22429 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22430 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22432 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
22433 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
22434 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
22435 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
22438 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
22443 (8 * 32)) * (950 - 350) / 63 + (350 * 8);
22445 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
22447 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
22448 pwrdet_rxtx_core1_save);
22449 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
22450 pwrdet_rxtx_core2_save);
22451 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
22452 core1_txrf_iqcal1_save);
22453 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
22454 core2_txrf_iqcal1_save);
22455 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
22456 core1_txrf_iqcal2_save);
22457 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
22458 core2_txrf_iqcal2_save);
22459 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
22461 write_phy_reg(pi, 0xca, gpioSel_save);
22462 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22463 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22464 write_phy_reg(pi, 0xa5, afectrlOverride_save);
22467 return (s16) radio_temp[0] + offset;
22471 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
22475 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22476 if (rssi_type == NPHY_RSSI_SEL_NB) {
22477 if (core == PHY_CORE_0) {
22479 RADIO_2055_CORE1_B0_NBRSSI_VCM,
22480 RADIO_2055_NBRSSI_VCM_I_MASK,
22483 RADIO_2055_NBRSSI_VCM_I_SHIFT);
22485 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22486 RADIO_2055_NBRSSI_VCM_Q_MASK,
22489 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22492 RADIO_2055_CORE2_B0_NBRSSI_VCM,
22493 RADIO_2055_NBRSSI_VCM_I_MASK,
22496 RADIO_2055_NBRSSI_VCM_I_SHIFT);
22498 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22499 RADIO_2055_NBRSSI_VCM_Q_MASK,
22502 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22505 if (core == PHY_CORE_0)
22507 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22508 RADIO_2055_WBRSSI_VCM_IQ_MASK,
22511 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22514 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22515 RADIO_2055_WBRSSI_VCM_IQ_MASK,
22518 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22523 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
22527 u16 clip_off[] = { 0xffff, 0xffff };
22532 s32 poll_results[8][4] = {
22542 s32 poll_result_core[4] = { 0, 0, 0, 0 };
22543 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
22544 s32 fine_digital_offset[4];
22545 s32 poll_results_min[4] = { 0, 0, 0, 0 };
22551 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
22552 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
22553 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
22554 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
22555 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
22556 u16 NPHY_RfctrlCmd_save;
22557 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
22558 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
22560 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
22561 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
22562 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
22563 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
22565 NPHY_REV7_RfctrlOverride3_save =
22566 NPHY_REV7_RfctrlOverride4_save =
22567 NPHY_REV7_RfctrlOverride5_save =
22568 NPHY_REV7_RfctrlOverride6_save =
22569 NPHY_REV7_RfctrlMiscReg3_save =
22570 NPHY_REV7_RfctrlMiscReg4_save =
22571 NPHY_REV7_RfctrlMiscReg5_save =
22572 NPHY_REV7_RfctrlMiscReg6_save = 0;
22574 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22575 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22576 wlc_phy_clip_det_nphy(pi, 0, clip_state);
22577 wlc_phy_clip_det_nphy(pi, 1, clip_off);
22579 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
22580 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
22581 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
22582 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
22583 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
22584 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
22585 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
22586 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
22587 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22588 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
22589 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
22590 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22591 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22593 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22594 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22595 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
22596 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22597 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22598 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22599 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
22600 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
22601 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22602 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22604 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
22605 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
22607 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
22608 RADIO_MIMO_CORESEL_ALLRXTX);
22609 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
22610 RADIO_MIMO_CORESEL_ALLRXTX);
22612 if (NREV_GE(pi->pubpi.phy_rev, 7))
22613 wlc_phy_rfctrl_override_1tomany_nphy(
22615 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
22618 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
22620 if (NREV_GE(pi->pubpi.phy_rev, 7))
22621 wlc_phy_rfctrl_override_1tomany_nphy(
22623 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
22626 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
22628 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22629 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
22631 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22632 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
22633 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22635 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
22636 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
22639 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22640 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22641 wlc_phy_rfctrl_override_nphy_rev7(
22644 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22645 wlc_phy_rfctrl_override_nphy_rev7(
22646 pi, (0x1 << 4), 1, 0,
22648 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22650 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
22651 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
22655 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22656 wlc_phy_rfctrl_override_nphy_rev7(
22659 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22660 wlc_phy_rfctrl_override_nphy_rev7(
22661 pi, (0x1 << 5), 1, 0,
22663 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22665 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
22666 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
22670 rxcore_state = wlc_phy_rxcore_getstate_nphy(
22671 (struct brcms_phy_pub *) pi);
22675 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22677 if ((rxcore_state & (1 << core)) == 0)
22680 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22683 RADIO_MIMO_CORESEL_CORE1 :
22684 RADIO_MIMO_CORESEL_CORE2,
22685 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
22686 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22689 RADIO_MIMO_CORESEL_CORE1 :
22690 RADIO_MIMO_CORESEL_CORE2,
22691 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
22693 for (vcm = 0; vcm < vcm_level_max; vcm++) {
22694 if (NREV_GE(pi->pubpi.phy_rev, 7))
22695 mod_radio_reg(pi, (core == PHY_CORE_0) ?
22696 RADIO_2057_NB_MASTER_CORE0 :
22697 RADIO_2057_NB_MASTER_CORE1,
22698 RADIO_2057_VCM_MASK, vcm);
22700 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22702 PHY_CORE_0) ? RADIO_2056_RX0 :
22704 RADIO_2056_VCM_MASK,
22705 vcm << RADIO_2056_RSSI_VCM_SHIFT);
22707 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
22708 &poll_results[vcm][0],
22709 NPHY_RSSICAL_NPOLL);
22712 for (result_idx = 0; result_idx < 4; result_idx++) {
22713 if ((core == result_idx / 2) &&
22714 (result_idx % 2 == 0)) {
22716 min_d = NPHY_RSSICAL_MAXD;
22719 NPHY_RSSICAL_MAXREAD *
22720 NPHY_RSSICAL_NPOLL + 1;
22721 for (vcm = 0; vcm < vcm_level_max; vcm++) {
22723 poll_results[vcm][result_idx] *
22724 poll_results[vcm][result_idx] +
22725 poll_results[vcm][result_idx +
22727 poll_results[vcm][result_idx +
22729 if (curr_d < min_d) {
22733 if (poll_results[vcm][result_idx] <
22739 vcm_final = min_vcm;
22740 poll_results_min[result_idx] = min_poll;
22744 if (NREV_GE(pi->pubpi.phy_rev, 7))
22745 mod_radio_reg(pi, (core == PHY_CORE_0) ?
22746 RADIO_2057_NB_MASTER_CORE0 :
22747 RADIO_2057_NB_MASTER_CORE1,
22748 RADIO_2057_VCM_MASK, vcm_final);
22750 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22752 PHY_CORE_0) ? RADIO_2056_RX0 :
22753 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
22754 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
22756 for (result_idx = 0; result_idx < 4; result_idx++) {
22757 if (core == result_idx / 2) {
22758 fine_digital_offset[result_idx] =
22759 (NPHY_RSSICAL_NB_TARGET *
22760 NPHY_RSSICAL_NPOLL) -
22761 poll_results[vcm_final][result_idx];
22762 if (fine_digital_offset[result_idx] < 0) {
22763 fine_digital_offset[result_idx] =
22764 abs(fine_digital_offset
22766 fine_digital_offset[result_idx] +=
22767 (NPHY_RSSICAL_NPOLL / 2);
22768 fine_digital_offset[result_idx] /=
22769 NPHY_RSSICAL_NPOLL;
22770 fine_digital_offset[result_idx] =
22771 -fine_digital_offset[
22774 fine_digital_offset[result_idx] +=
22775 (NPHY_RSSICAL_NPOLL / 2);
22776 fine_digital_offset[result_idx] /=
22777 NPHY_RSSICAL_NPOLL;
22780 if (poll_results_min[result_idx] ==
22781 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
22782 fine_digital_offset[result_idx] =
22783 (NPHY_RSSICAL_NB_TARGET -
22784 NPHY_RSSICAL_MAXREAD - 1);
22786 wlc_phy_scale_offset_rssi_nphy(
22789 fine_digital_offset
22791 (result_idx / 2 == 0) ?
22792 RADIO_MIMO_CORESEL_CORE1 :
22793 RADIO_MIMO_CORESEL_CORE2,
22794 (result_idx % 2 == 0) ?
22795 NPHY_RAIL_I : NPHY_RAIL_Q,
22802 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22804 if ((rxcore_state & (1 << core)) == 0)
22807 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22809 rssi_type = NPHY_RSSI_SEL_W1;
22810 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22812 rssi_type = NPHY_RSSI_SEL_W2;
22813 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22816 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22819 RADIO_MIMO_CORESEL_CORE1
22821 RADIO_MIMO_CORESEL_CORE2,
22822 NPHY_RAIL_I, rssi_type);
22823 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22826 RADIO_MIMO_CORESEL_CORE1
22828 RADIO_MIMO_CORESEL_CORE2,
22829 NPHY_RAIL_Q, rssi_type);
22831 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22832 NPHY_RSSICAL_NPOLL);
22834 for (result_idx = 0; result_idx < 4; result_idx++) {
22835 if (core == result_idx / 2) {
22836 fine_digital_offset[result_idx] =
22838 NPHY_RSSICAL_NPOLL) -
22839 poll_result_core[result_idx];
22840 if (fine_digital_offset[result_idx] <
22842 fine_digital_offset[result_idx]
22844 fine_digital_offset
22846 fine_digital_offset[result_idx]
22847 += (NPHY_RSSICAL_NPOLL
22849 fine_digital_offset[result_idx]
22850 /= NPHY_RSSICAL_NPOLL;
22851 fine_digital_offset[result_idx]
22852 = -fine_digital_offset
22855 fine_digital_offset[result_idx]
22856 += (NPHY_RSSICAL_NPOLL
22858 fine_digital_offset[result_idx]
22859 /= NPHY_RSSICAL_NPOLL;
22862 wlc_phy_scale_offset_rssi_nphy(
22865 fine_digital_offset
22868 (core == PHY_CORE_0) ?
22869 RADIO_MIMO_CORESEL_CORE1 :
22870 RADIO_MIMO_CORESEL_CORE2,
22871 (result_idx % 2 == 0) ?
22881 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22882 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22884 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22886 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22887 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22888 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22890 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22891 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22892 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22894 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22895 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22896 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22897 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22898 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22899 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22900 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22901 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22902 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22903 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22904 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22906 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22907 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22908 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22909 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22910 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22911 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22912 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22913 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22914 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22915 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22917 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22918 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22920 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22921 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22922 pi->rssical_cache.rssical_radio_regs_2G[0] =
22923 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22924 pi->rssical_cache.rssical_radio_regs_2G[1] =
22925 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22927 pi->rssical_cache.rssical_radio_regs_2G[0] =
22929 RADIO_2056_RX_RSSI_MISC |
22931 pi->rssical_cache.rssical_radio_regs_2G[1] =
22933 RADIO_2056_RX_RSSI_MISC |
22937 pi->rssical_cache.rssical_phyregs_2G[0] =
22938 read_phy_reg(pi, 0x1a6);
22939 pi->rssical_cache.rssical_phyregs_2G[1] =
22940 read_phy_reg(pi, 0x1ac);
22941 pi->rssical_cache.rssical_phyregs_2G[2] =
22942 read_phy_reg(pi, 0x1b2);
22943 pi->rssical_cache.rssical_phyregs_2G[3] =
22944 read_phy_reg(pi, 0x1b8);
22945 pi->rssical_cache.rssical_phyregs_2G[4] =
22946 read_phy_reg(pi, 0x1a4);
22947 pi->rssical_cache.rssical_phyregs_2G[5] =
22948 read_phy_reg(pi, 0x1aa);
22949 pi->rssical_cache.rssical_phyregs_2G[6] =
22950 read_phy_reg(pi, 0x1b0);
22951 pi->rssical_cache.rssical_phyregs_2G[7] =
22952 read_phy_reg(pi, 0x1b6);
22953 pi->rssical_cache.rssical_phyregs_2G[8] =
22954 read_phy_reg(pi, 0x1a5);
22955 pi->rssical_cache.rssical_phyregs_2G[9] =
22956 read_phy_reg(pi, 0x1ab);
22957 pi->rssical_cache.rssical_phyregs_2G[10] =
22958 read_phy_reg(pi, 0x1b1);
22959 pi->rssical_cache.rssical_phyregs_2G[11] =
22960 read_phy_reg(pi, 0x1b7);
22962 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22964 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22965 pi->rssical_cache.rssical_radio_regs_5G[0] =
22966 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22967 pi->rssical_cache.rssical_radio_regs_5G[1] =
22968 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22970 pi->rssical_cache.rssical_radio_regs_5G[0] =
22972 RADIO_2056_RX_RSSI_MISC |
22974 pi->rssical_cache.rssical_radio_regs_5G[1] =
22976 RADIO_2056_RX_RSSI_MISC |
22980 pi->rssical_cache.rssical_phyregs_5G[0] =
22981 read_phy_reg(pi, 0x1a6);
22982 pi->rssical_cache.rssical_phyregs_5G[1] =
22983 read_phy_reg(pi, 0x1ac);
22984 pi->rssical_cache.rssical_phyregs_5G[2] =
22985 read_phy_reg(pi, 0x1b2);
22986 pi->rssical_cache.rssical_phyregs_5G[3] =
22987 read_phy_reg(pi, 0x1b8);
22988 pi->rssical_cache.rssical_phyregs_5G[4] =
22989 read_phy_reg(pi, 0x1a4);
22990 pi->rssical_cache.rssical_phyregs_5G[5] =
22991 read_phy_reg(pi, 0x1aa);
22992 pi->rssical_cache.rssical_phyregs_5G[6] =
22993 read_phy_reg(pi, 0x1b0);
22994 pi->rssical_cache.rssical_phyregs_5G[7] =
22995 read_phy_reg(pi, 0x1b6);
22996 pi->rssical_cache.rssical_phyregs_5G[8] =
22997 read_phy_reg(pi, 0x1a5);
22998 pi->rssical_cache.rssical_phyregs_5G[9] =
22999 read_phy_reg(pi, 0x1ab);
23000 pi->rssical_cache.rssical_phyregs_5G[10] =
23001 read_phy_reg(pi, 0x1b1);
23002 pi->rssical_cache.rssical_phyregs_5G[11] =
23003 read_phy_reg(pi, 0x1b7);
23005 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
23008 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
23009 wlc_phy_clip_det_nphy(pi, 1, clip_state);
23012 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
23017 u16 rssi_ctrl_state[2], pd_state[2];
23018 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
23019 u16 rfctrlintc_override_val;
23020 u16 clip_off[] = { 0xffff, 0xffff };
23021 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
23022 u8 vcm, min_vcm, vcm_tmp[4];
23023 u8 vcm_final[4] = { 0, 0, 0, 0 };
23024 u8 result_idx, ctr;
23025 s32 poll_results[4][4] = {
23031 s32 poll_miniq[4][2] = {
23038 s32 fine_digital_offset[4];
23039 s32 poll_results_min[4] = { 0, 0, 0, 0 };
23042 switch (rssi_type) {
23043 case NPHY_RSSI_SEL_NB:
23044 target_code = NPHY_RSSICAL_NB_TARGET;
23046 case NPHY_RSSI_SEL_W1:
23047 target_code = NPHY_RSSICAL_W1_TARGET;
23049 case NPHY_RSSI_SEL_W2:
23050 target_code = NPHY_RSSICAL_W2_TARGET;
23057 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
23058 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
23059 wlc_phy_clip_det_nphy(pi, 0, clip_state);
23060 wlc_phy_clip_det_nphy(pi, 1, clip_off);
23062 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
23063 rfctrlintc_override_val =
23064 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
23066 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
23067 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
23068 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
23069 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
23071 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
23072 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
23073 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
23074 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
23076 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
23077 RADIO_2055_WBRSSI_G2_PD;
23079 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
23081 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
23082 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
23083 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
23084 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
23085 RADIO_2055_WBRSSI_G2_SEL;
23086 rssi_ctrl_state[0] =
23087 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
23088 rssi_ctrl_state[1] =
23089 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
23090 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
23092 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
23093 NPHY_RAIL_I, rssi_type);
23094 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
23095 NPHY_RAIL_Q, rssi_type);
23097 for (vcm = 0; vcm < 4; vcm++) {
23099 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
23100 if (rssi_type != NPHY_RSSI_SEL_W2)
23101 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
23103 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
23104 NPHY_RSSICAL_NPOLL);
23106 if ((rssi_type == NPHY_RSSI_SEL_W1)
23107 || (rssi_type == NPHY_RSSI_SEL_W2)) {
23108 for (ctr = 0; ctr < 2; ctr++)
23109 poll_miniq[vcm][ctr] =
23110 min(poll_results[vcm][ctr * 2 + 0],
23111 poll_results[vcm][ctr * 2 + 1]);
23115 for (result_idx = 0; result_idx < 4; result_idx++) {
23116 min_d = NPHY_RSSICAL_MAXD;
23118 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
23119 for (vcm = 0; vcm < 4; vcm++) {
23120 curr_d = abs(((rssi_type == NPHY_RSSI_SEL_NB) ?
23121 poll_results[vcm][result_idx] :
23122 poll_miniq[vcm][result_idx / 2]) -
23123 (target_code * NPHY_RSSICAL_NPOLL));
23124 if (curr_d < min_d) {
23128 if (poll_results[vcm][result_idx] < min_poll)
23129 min_poll = poll_results[vcm][result_idx];
23131 vcm_final[result_idx] = min_vcm;
23132 poll_results_min[result_idx] = min_poll;
23135 if (rssi_type != NPHY_RSSI_SEL_W2)
23136 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
23138 for (result_idx = 0; result_idx < 4; result_idx++) {
23139 fine_digital_offset[result_idx] =
23140 (target_code * NPHY_RSSICAL_NPOLL) -
23141 poll_results[vcm_final[result_idx]][result_idx];
23142 if (fine_digital_offset[result_idx] < 0) {
23143 fine_digital_offset[result_idx] =
23144 abs(fine_digital_offset[result_idx]);
23145 fine_digital_offset[result_idx] +=
23146 (NPHY_RSSICAL_NPOLL / 2);
23147 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23148 fine_digital_offset[result_idx] =
23149 -fine_digital_offset[result_idx];
23151 fine_digital_offset[result_idx] +=
23152 (NPHY_RSSICAL_NPOLL / 2);
23153 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23156 if (poll_results_min[result_idx] ==
23157 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
23158 fine_digital_offset[result_idx] =
23159 (target_code - NPHY_RSSICAL_MAXREAD - 1);
23161 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
23163 fine_digital_offset[result_idx],
23165 0) ? RADIO_MIMO_CORESEL_CORE1 :
23166 RADIO_MIMO_CORESEL_CORE2,
23168 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
23172 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
23173 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
23174 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL)
23175 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23177 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL)
23178 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23180 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL)
23181 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23184 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23186 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL)
23187 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23189 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL)
23190 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23192 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL)
23193 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23196 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23199 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
23201 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
23202 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
23203 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
23204 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
23206 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
23207 wlc_phy_clip_det_nphy(pi, 1, clip_state);
23209 wlc_phy_resetcca_nphy(pi);
23212 void wlc_phy_rssi_cal_nphy(struct brcms_phy *pi)
23214 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23215 wlc_phy_rssi_cal_nphy_rev3(pi);
23217 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
23218 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
23219 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
23224 wlc_phy_rssi_compute_nphy(struct brcms_phy *pi, struct d11rxhdr *rxh)
23226 s16 rxpwr, rxpwr0, rxpwr1;
23227 s16 phyRx0_l, phyRx2_l;
23230 rxpwr0 = rxh->PhyRxStatus_1 & PRXS1_nphy_PWR0_MASK;
23231 rxpwr1 = (rxh->PhyRxStatus_1 & PRXS1_nphy_PWR1_MASK) >> 8;
23238 phyRx0_l = rxh->PhyRxStatus_0 & 0x00ff;
23239 phyRx2_l = rxh->PhyRxStatus_2 & 0x00ff;
23240 if (phyRx2_l > 127)
23243 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
23248 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
23249 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
23250 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
23251 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
23252 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
23253 rxpwr = (rxpwr0 + rxpwr1) >> 1;
23259 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
23263 u32 *data_buf = NULL;
23265 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
23266 if (data_buf == NULL)
23269 if (pi->phyhang_avoid)
23270 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23272 for (t = 0; t < num_samps; t++)
23273 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
23274 (((unsigned int)tone_buf[t].q) & 0x3ff);
23275 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
23280 if (pi->phyhang_avoid)
23281 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23285 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23288 u8 phy_bw, is_phybw40;
23289 u16 num_samps, t, spur;
23290 s32 theta = 0, rot = 0;
23292 struct cordic_iq *tone_buf = NULL;
23294 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
23295 phy_bw = (is_phybw40 == 1) ? 40 : 20;
23296 tbl_len = (phy_bw << 3);
23298 if (dac_test_mode == 1) {
23299 spur = read_phy_reg(pi, 0x01);
23300 spur = (spur >> 15) & 1;
23301 phy_bw = (spur == 1) ? 82 : 80;
23302 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
23304 tbl_len = (phy_bw << 1);
23307 tone_buf = kmalloc(sizeof(struct cordic_iq) * tbl_len, GFP_ATOMIC);
23308 if (tone_buf == NULL)
23311 num_samps = (u16) tbl_len;
23312 rot = ((f_kHz * 36) / phy_bw) / 100;
23315 for (t = 0; t < num_samps; t++) {
23317 tone_buf[t] = cordic_calc_iq(theta);
23321 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
23322 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
23325 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
23333 wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
23334 u16 wait, u8 iqmode, u8 dac_test_mode,
23335 bool modify_bbmult)
23338 u8 phy_bw, sample_cmd;
23339 u16 orig_RfseqCoreActv;
23340 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
23341 lpf_bw_ctl_miscreg4;
23343 if (pi->phyhang_avoid)
23344 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23347 if (CHSPEC_IS40(pi->radio_chanspec))
23350 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23352 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
23353 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
23354 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
23355 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23357 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23360 wlc_phy_rfctrl_override_nphy_rev7(
23363 wlc_phy_read_lpf_bw_ctl_nphy
23366 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23368 pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
23370 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23372 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23377 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
23379 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23381 pi->nphy_bb_mult_save =
23382 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
23385 if (modify_bbmult) {
23386 bb_mult = (phy_bw == 20) ? 100 : 71;
23387 bb_mult = (bb_mult << 8) + bb_mult;
23388 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23392 if (pi->phyhang_avoid)
23393 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23395 write_phy_reg(pi, 0xc6, num_samps - 1);
23397 if (loops != 0xffff)
23398 write_phy_reg(pi, 0xc4, loops - 1);
23400 write_phy_reg(pi, 0xc4, loops);
23402 write_phy_reg(pi, 0xc5, wait);
23404 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
23405 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
23408 and_phy_reg(pi, 0xc2, 0x7FFF);
23410 or_phy_reg(pi, 0xc2, 0x8000);
23413 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
23414 write_phy_reg(pi, 0xc3, sample_cmd);
23417 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
23419 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
23423 wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23424 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
23427 u16 loops = 0xffff;
23430 num_samps = wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val,
23432 if (num_samps == 0)
23435 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
23436 dac_test_mode, modify_bbmult);
23441 void wlc_phy_stopplayback_nphy(struct brcms_phy *pi)
23443 u16 playback_status;
23446 if (pi->phyhang_avoid)
23447 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23449 playback_status = read_phy_reg(pi, 0xc7);
23450 if (playback_status & 0x1)
23451 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
23452 else if (playback_status & 0x2)
23453 and_phy_reg(pi, 0xc2,
23454 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
23456 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
23458 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
23460 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
23461 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23464 pi->nphy_bb_mult_save = 0;
23467 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
23468 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
23469 wlc_phy_rfctrl_override_nphy_rev7(
23473 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23474 pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
23478 if (pi->phyhang_avoid)
23479 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23482 static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
23484 u32 *tx_pwrctrl_tbl = NULL;
23485 uint phyrev = pi->pubpi.phy_rev;
23489 wlc_phy_get_ipa_gaintbl_nphy(pi);
23491 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23492 if (NREV_IS(phyrev, 3))
23493 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev3;
23494 else if (NREV_IS(phyrev, 4))
23496 (pi->srom_fem5g.extpagain == 3) ?
23497 nphy_tpc_5GHz_txgain_HiPwrEPA :
23498 nphy_tpc_5GHz_txgain_rev4;
23500 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev5;
23502 if (NREV_GE(phyrev, 7)) {
23503 if (pi->pubpi.radiorev == 3)
23505 nphy_tpc_txgain_epa_2057rev3;
23506 else if (pi->pubpi.radiorev == 5)
23508 nphy_tpc_txgain_epa_2057rev5;
23510 if (NREV_GE(phyrev, 5) &&
23511 (pi->srom_fem2g.extpagain == 3))
23513 nphy_tpc_txgain_HiPwrEPA;
23516 nphy_tpc_txgain_rev3;
23520 return tx_pwrctrl_tbl;
23523 struct nphy_txgains wlc_phy_get_tx_gain_nphy(struct brcms_phy *pi)
23525 u16 base_idx[2], curr_gain[2];
23527 struct nphy_txgains target_gain;
23528 u32 *tx_pwrctrl_tbl = NULL;
23530 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
23531 if (pi->phyhang_avoid)
23532 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23534 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23537 if (pi->phyhang_avoid)
23538 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23540 for (core_no = 0; core_no < 2; core_no++) {
23541 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23542 target_gain.ipa[core_no] =
23543 curr_gain[core_no] & 0x0007;
23544 target_gain.pad[core_no] =
23545 ((curr_gain[core_no] & 0x00F8) >> 3);
23546 target_gain.pga[core_no] =
23547 ((curr_gain[core_no] & 0x0F00) >> 8);
23548 target_gain.txgm[core_no] =
23549 ((curr_gain[core_no] & 0x7000) >> 12);
23550 target_gain.txlpf[core_no] =
23551 ((curr_gain[core_no] & 0x8000) >> 15);
23552 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23553 target_gain.ipa[core_no] =
23554 curr_gain[core_no] & 0x000F;
23555 target_gain.pad[core_no] =
23556 ((curr_gain[core_no] & 0x00F0) >> 4);
23557 target_gain.pga[core_no] =
23558 ((curr_gain[core_no] & 0x0F00) >> 8);
23559 target_gain.txgm[core_no] =
23560 ((curr_gain[core_no] & 0x7000) >> 12);
23562 target_gain.ipa[core_no] =
23563 curr_gain[core_no] & 0x0003;
23564 target_gain.pad[core_no] =
23565 ((curr_gain[core_no] & 0x000C) >> 2);
23566 target_gain.pga[core_no] =
23567 ((curr_gain[core_no] & 0x0070) >> 4);
23568 target_gain.txgm[core_no] =
23569 ((curr_gain[core_no] & 0x0380) >> 7);
23573 uint phyrev = pi->pubpi.phy_rev;
23575 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
23576 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
23577 for (core_no = 0; core_no < 2; core_no++) {
23578 if (NREV_GE(phyrev, 3)) {
23580 brcms_phy_get_tx_pwrctrl_tbl(pi);
23581 if (NREV_GE(phyrev, 7)) {
23582 target_gain.ipa[core_no] =
23584 [base_idx[core_no]]
23586 target_gain.pad[core_no] =
23588 [base_idx[core_no]]
23590 target_gain.pga[core_no] =
23592 [base_idx[core_no]]
23594 target_gain.txgm[core_no] =
23596 [base_idx[core_no]]
23598 target_gain.txlpf[core_no] =
23600 [base_idx[core_no]]
23603 target_gain.ipa[core_no] =
23605 [base_idx[core_no]]
23607 target_gain.pad[core_no] =
23609 [base_idx[core_no]]
23611 target_gain.pga[core_no] =
23613 [base_idx[core_no]]
23615 target_gain.txgm[core_no] =
23617 [base_idx[core_no]]
23621 target_gain.ipa[core_no] =
23622 (nphy_tpc_txgain[base_idx[core_no]] >>
23624 target_gain.pad[core_no] =
23625 (nphy_tpc_txgain[base_idx[core_no]] >>
23627 target_gain.pga[core_no] =
23628 (nphy_tpc_txgain[base_idx[core_no]] >>
23630 target_gain.txgm[core_no] =
23631 (nphy_tpc_txgain[base_idx[core_no]] >>
23637 return target_gain;
23641 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
23642 struct nphy_txgains target_gain,
23643 struct nphy_iqcal_params *params)
23648 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
23650 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23651 if (NREV_GE(pi->pubpi.phy_rev, 7))
23652 params->txlpf = target_gain.txlpf[core_no];
23654 params->txgm = target_gain.txgm[core_no];
23655 params->pga = target_gain.pga[core_no];
23656 params->pad = target_gain.pad[core_no];
23657 params->ipa = target_gain.ipa[core_no];
23658 if (NREV_GE(pi->pubpi.phy_rev, 7))
23660 ((params->txlpf << 15) | (params->txgm << 12) |
23661 (params->pga << 8) |
23662 (params->pad << 3) | (params->ipa));
23665 ((params->txgm << 12) | (params->pga << 8) |
23666 (params->pad << 4) | (params->ipa));
23668 params->ncorr[0] = 0x79;
23669 params->ncorr[1] = 0x79;
23670 params->ncorr[2] = 0x79;
23671 params->ncorr[3] = 0x79;
23672 params->ncorr[4] = 0x79;
23675 gain_index = ((target_gain.pad[core_no] << 0) |
23676 (target_gain.pga[core_no] << 4) |
23677 (target_gain.txgm[core_no] << 8));
23680 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
23681 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
23688 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
23689 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
23690 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
23691 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
23692 (params->pad << 2));
23693 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
23694 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
23695 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
23696 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
23700 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
23702 u16 jtag_core, core;
23704 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23706 for (core = 0; core <= 1; core++) {
23708 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23709 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23712 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23713 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23716 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23717 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23720 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23721 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23724 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
23726 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23727 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23730 if (pi->pubpi.radiorev != 5)
23731 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23732 READ_RADIO_REG3(pi, RADIO_2057, TX,
23736 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23737 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
23739 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23740 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23743 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23744 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23745 TX_SSI_MASTER, 0x0a);
23746 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23747 IQCAL_VCM_HG, 0x43);
23748 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23750 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23752 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23754 if (pi->use_int_tx_iqlo_cal_nphy) {
23755 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23756 core, TX_SSI_MUX, 0x4);
23758 internal_tx_iqlo_cal_tapoff_intpa_nphy))
23759 WRITE_RADIO_REG3(pi, RADIO_2057,
23763 WRITE_RADIO_REG3(pi, RADIO_2057,
23767 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23770 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23771 TX_SSI_MASTER, 0x06);
23772 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23773 IQCAL_VCM_HG, 0x43);
23774 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23776 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23779 if (pi->pubpi.radiorev != 5)
23780 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23781 core, TSSIA, 0x00);
23782 if (pi->use_int_tx_iqlo_cal_nphy) {
23783 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23787 internal_tx_iqlo_cal_tapoff_intpa_nphy))
23788 WRITE_RADIO_REG3(pi, RADIO_2057,
23792 WRITE_RADIO_REG3(pi, RADIO_2057,
23796 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23800 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23802 for (core = 0; core <= 1; core++) {
23805 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23807 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23809 RADIO_2056_TX_TX_SSI_MASTER |
23812 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23814 RADIO_2056_TX_IQCAL_VCM_HG |
23817 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23819 RADIO_2056_TX_IQCAL_IDAC |
23822 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23825 RADIO_2056_TX_TSSI_VCM |
23828 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
23830 RADIO_2056_TX_TX_AMP_DET |
23833 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23835 RADIO_2056_TX_TX_SSI_MUX |
23838 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23840 RADIO_2056_TX_TSSIA | jtag_core);
23842 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23844 RADIO_2056_TX_TSSIG | jtag_core);
23846 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23848 RADIO_2056_TX_TSSI_MISC1 |
23851 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
23853 RADIO_2056_TX_TSSI_MISC2 |
23856 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
23858 RADIO_2056_TX_TSSI_MISC3 |
23861 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23862 write_radio_reg(pi,
23863 RADIO_2056_TX_TX_SSI_MASTER |
23865 write_radio_reg(pi,
23866 RADIO_2056_TX_IQCAL_VCM_HG |
23868 write_radio_reg(pi,
23869 RADIO_2056_TX_IQCAL_IDAC |
23871 write_radio_reg(pi,
23872 RADIO_2056_TX_TSSI_VCM |
23874 write_radio_reg(pi,
23875 RADIO_2056_TX_TX_AMP_DET |
23881 RADIO_2056_TX_TX_SSI_MUX
23883 write_radio_reg(pi,
23884 RADIO_2056_TX_TSSIA |
23889 RADIO_2056_TX_TX_SSI_MUX
23890 | jtag_core, 0x00);
23891 write_radio_reg(pi,
23892 RADIO_2056_TX_TSSIA |
23895 write_radio_reg(pi,
23896 RADIO_2056_TX_TSSIG | jtag_core,
23898 write_radio_reg(pi,
23899 RADIO_2056_TX_TSSI_MISC1 |
23902 write_radio_reg(pi,
23903 RADIO_2056_TX_TSSI_MISC2 |
23905 write_radio_reg(pi,
23906 RADIO_2056_TX_TSSI_MISC3 |
23909 write_radio_reg(pi,
23910 RADIO_2056_TX_TX_SSI_MASTER |
23912 write_radio_reg(pi,
23913 RADIO_2056_TX_IQCAL_VCM_HG |
23915 write_radio_reg(pi,
23916 RADIO_2056_TX_IQCAL_IDAC |
23918 write_radio_reg(pi,
23919 RADIO_2056_TX_TSSI_VCM |
23921 write_radio_reg(pi,
23922 RADIO_2056_TX_TX_AMP_DET |
23924 write_radio_reg(pi,
23925 RADIO_2056_TX_TSSIA | jtag_core,
23932 RADIO_2056_TX_TX_SSI_MUX
23933 | jtag_core, 0x06);
23934 if (NREV_LT(pi->pubpi.phy_rev, 5))
23937 RADIO_2056_TX_TSSIG
23943 RADIO_2056_TX_TSSIG
23949 RADIO_2056_TX_TX_SSI_MUX
23950 | jtag_core, 0x00);
23951 write_radio_reg(pi,
23952 RADIO_2056_TX_TSSIG |
23956 write_radio_reg(pi,
23957 RADIO_2056_TX_TSSI_MISC1 |
23959 write_radio_reg(pi,
23960 RADIO_2056_TX_TSSI_MISC2 |
23962 write_radio_reg(pi,
23963 RADIO_2056_TX_TSSI_MISC3 |
23969 pi->tx_rx_cal_radio_saveregs[0] =
23970 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23971 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23972 pi->tx_rx_cal_radio_saveregs[1] =
23973 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23974 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23976 pi->tx_rx_cal_radio_saveregs[2] =
23977 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23978 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23979 pi->tx_rx_cal_radio_saveregs[3] =
23980 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23981 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23983 pi->tx_rx_cal_radio_saveregs[4] =
23984 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23985 pi->tx_rx_cal_radio_saveregs[5] =
23986 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23988 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23991 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23992 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23995 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23996 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23999 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24001 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
24002 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
24005 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
24006 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
24011 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
24013 u16 jtag_core, core;
24015 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24016 for (core = 0; core <= 1; core++) {
24018 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24021 tx_rx_cal_radio_saveregs[(core * 11) +
24024 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
24026 tx_rx_cal_radio_saveregs[(core * 11) +
24029 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
24031 tx_rx_cal_radio_saveregs[(core * 11) +
24034 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
24036 tx_rx_cal_radio_saveregs[(core * 11) +
24039 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
24041 tx_rx_cal_radio_saveregs[(core * 11) +
24044 if (pi->pubpi.radiorev != 5)
24045 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24047 pi->tx_rx_cal_radio_saveregs
24048 [(core * 11) + 6]);
24050 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
24052 tx_rx_cal_radio_saveregs[(core * 11) +
24055 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
24057 tx_rx_cal_radio_saveregs[(core * 11) +
24060 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24061 for (core = 0; core <= 1; core++) {
24062 jtag_core = (core == PHY_CORE_0) ?
24063 RADIO_2056_TX0 : RADIO_2056_TX1;
24065 write_radio_reg(pi,
24066 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
24068 tx_rx_cal_radio_saveregs[(core * 11) +
24071 write_radio_reg(pi,
24072 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
24074 tx_rx_cal_radio_saveregs[(core * 11) +
24077 write_radio_reg(pi,
24078 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
24080 tx_rx_cal_radio_saveregs[(core * 11) +
24083 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
24085 tx_rx_cal_radio_saveregs[(core * 11) +
24088 write_radio_reg(pi,
24089 RADIO_2056_TX_TX_AMP_DET | jtag_core,
24091 tx_rx_cal_radio_saveregs[(core * 11) +
24094 write_radio_reg(pi,
24095 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
24097 tx_rx_cal_radio_saveregs[(core * 11) +
24100 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
24102 tx_rx_cal_radio_saveregs[(core * 11) +
24105 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
24107 tx_rx_cal_radio_saveregs[(core * 11) +
24110 write_radio_reg(pi,
24111 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
24113 tx_rx_cal_radio_saveregs[(core * 11) +
24116 write_radio_reg(pi,
24117 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
24119 tx_rx_cal_radio_saveregs[(core * 11) +
24122 write_radio_reg(pi,
24123 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
24125 tx_rx_cal_radio_saveregs[(core * 11) +
24130 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
24131 pi->tx_rx_cal_radio_saveregs[0]);
24132 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
24133 pi->tx_rx_cal_radio_saveregs[1]);
24134 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
24135 pi->tx_rx_cal_radio_saveregs[2]);
24136 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
24137 pi->tx_rx_cal_radio_saveregs[3]);
24138 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
24139 pi->tx_rx_cal_radio_saveregs[4]);
24140 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
24141 pi->tx_rx_cal_radio_saveregs[5]);
24145 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
24149 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24150 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24151 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24153 mask = ((0x3 << 8) | (0x3 << 10));
24155 val |= (0x2 << 10);
24156 mod_phy_reg(pi, 0xa6, mask, val);
24157 mod_phy_reg(pi, 0xa7, mask, val);
24159 val = read_phy_reg(pi, 0x8f);
24160 pi->tx_rx_cal_phy_saveregs[2] = val;
24161 val |= ((0x1 << 9) | (0x1 << 10));
24162 write_phy_reg(pi, 0x8f, val);
24164 val = read_phy_reg(pi, 0xa5);
24165 pi->tx_rx_cal_phy_saveregs[3] = val;
24166 val |= ((0x1 << 9) | (0x1 << 10));
24167 write_phy_reg(pi, 0xa5, val);
24169 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
24170 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
24172 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24174 pi->tx_rx_cal_phy_saveregs[5] = val;
24176 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24179 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24181 pi->tx_rx_cal_phy_saveregs[6] = val;
24183 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24186 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
24187 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
24189 if (!(pi->use_int_tx_iqlo_cal_nphy))
24190 wlc_phy_rfctrlintc_override_nphy(
24192 NPHY_RfctrlIntc_override_PA,
24194 RADIO_MIMO_CORESEL_CORE1
24196 RADIO_MIMO_CORESEL_CORE2);
24198 wlc_phy_rfctrlintc_override_nphy(
24200 NPHY_RfctrlIntc_override_PA,
24202 RADIO_MIMO_CORESEL_CORE1
24204 RADIO_MIMO_CORESEL_CORE2);
24206 wlc_phy_rfctrlintc_override_nphy(pi,
24207 NPHY_RfctrlIntc_override_TRSW,
24208 0x2, RADIO_MIMO_CORESEL_CORE1);
24209 wlc_phy_rfctrlintc_override_nphy(pi,
24210 NPHY_RfctrlIntc_override_TRSW,
24211 0x8, RADIO_MIMO_CORESEL_CORE2);
24213 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
24214 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
24215 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
24216 0x29b, (0x1 << 0), (0) << 0);
24218 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
24219 0x29b, (0x1 << 0), (0) << 0);
24221 if (NREV_IS(pi->pubpi.phy_rev, 7)
24222 || NREV_GE(pi->pubpi.phy_rev, 8))
24223 wlc_phy_rfctrl_override_nphy_rev7(
24225 wlc_phy_read_lpf_bw_ctl_nphy
24228 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24230 if (pi->use_int_tx_iqlo_cal_nphy
24231 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24233 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24235 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24238 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24241 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24245 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24250 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24254 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24257 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24258 wlc_phy_rfctrl_override_nphy_rev7(
24262 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24266 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24267 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24269 mask = ((0x3 << 12) | (0x3 << 14));
24271 val |= (0x2 << 14);
24272 mod_phy_reg(pi, 0xa6, mask, val);
24273 mod_phy_reg(pi, 0xa7, mask, val);
24275 val = read_phy_reg(pi, 0xa5);
24276 pi->tx_rx_cal_phy_saveregs[2] = val;
24277 val |= ((0x1 << 12) | (0x1 << 13));
24278 write_phy_reg(pi, 0xa5, val);
24280 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24282 pi->tx_rx_cal_phy_saveregs[3] = val;
24284 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24287 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24289 pi->tx_rx_cal_phy_saveregs[4] = val;
24291 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24294 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
24295 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
24296 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
24297 write_phy_reg(pi, 0x91, val);
24298 write_phy_reg(pi, 0x92, val);
24302 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
24306 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24307 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
24308 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
24309 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
24310 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
24311 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
24313 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24314 &pi->tx_rx_cal_phy_saveregs[5]);
24315 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24316 &pi->tx_rx_cal_phy_saveregs[6]);
24318 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
24319 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
24321 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
24322 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
24324 if (NREV_IS(pi->pubpi.phy_rev, 7)
24325 || NREV_GE(pi->pubpi.phy_rev, 8))
24326 wlc_phy_rfctrl_override_nphy_rev7(
24327 pi, (0x1 << 7), 0, 0,
24329 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24331 wlc_phy_resetcca_nphy(pi);
24333 if (pi->use_int_tx_iqlo_cal_nphy
24334 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24336 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24337 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24340 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24344 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24349 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24353 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24357 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24359 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24360 wlc_phy_rfctrl_override_nphy_rev7(
24364 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24368 mask = ((0x3 << 12) | (0x3 << 14));
24369 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
24370 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
24371 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
24373 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24374 &pi->tx_rx_cal_phy_saveregs[3]);
24376 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24377 &pi->tx_rx_cal_phy_saveregs[4]);
24379 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
24380 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
24385 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
24388 s32 temp, pwrindex[2];
24394 tssi_reg = read_phy_reg(pi, 0x1e9);
24396 temp = (s32) (tssi_reg & 0x3f);
24397 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
24399 temp = (s32) ((tssi_reg >> 8) & 0x3f);
24400 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
24403 CHSPEC_IS5G(pi->radio_chanspec) ?
24404 (u8)NPHY_RSSI_SEL_TSSI_5G : (u8)NPHY_RSSI_SEL_TSSI_2G;
24406 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
24408 tssival[0] = rssi_buf[0] / ((s32) num_samps);
24409 tssival[1] = rssi_buf[2] / ((s32) num_samps);
24411 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
24412 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
24414 if (pwrindex[0] < 0)
24416 else if (pwrindex[0] > 63)
24419 if (pwrindex[1] < 0)
24421 else if (pwrindex[1] > 63)
24424 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
24425 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
24426 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
24427 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
24430 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
24437 struct nphy_txiqcal_ladder ladder_lo[] = {
24438 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24439 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
24440 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
24443 struct nphy_txiqcal_ladder ladder_iq[] = {
24444 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24445 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
24446 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
24449 bbmult = (core == PHY_CORE_0) ?
24450 ((pi->nphy_txcal_bbmult >> 8) & 0xff) :
24451 (pi->nphy_txcal_bbmult & 0xff);
24453 for (index = 0; index < 18; index++) {
24454 bbmult_scale = ladder_lo[index].percent * bbmult;
24455 bbmult_scale /= 100;
24458 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
24459 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
24462 bbmult_scale = ladder_iq[index].percent * bbmult;
24463 bbmult_scale /= 100;
24466 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
24467 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
24472 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
24475 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
24477 tmp = (tmp & (0x7f << 8)) >> 8;
24482 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
24484 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
24486 if (NREV_GT(pi->pubpi.phy_rev, 1))
24487 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
24490 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
24494 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
24499 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
24501 u16 m0m1 = (u16) ((m0 << 8) | m1);
24503 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
24504 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
24508 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
24509 struct nphy_papd_restore_state *state, u8 core)
24515 off_core = core ^ 0x1;
24516 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24518 if (NREV_IS(pi->pubpi.phy_rev, 7)
24519 || NREV_GE(pi->pubpi.phy_rev, 8))
24520 wlc_phy_rfctrl_override_nphy_rev7(
24522 wlc_phy_read_lpf_bw_ctl_nphy
24525 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24527 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24528 if (pi->pubpi.radiorev == 5)
24529 mixgain = (core == 0) ? 0x20 : 0x00;
24530 else if ((pi->pubpi.radiorev == 7)
24531 || (pi->pubpi.radiorev == 8))
24533 else if ((pi->pubpi.radiorev <= 4)
24534 || (pi->pubpi.radiorev == 6))
24537 if ((pi->pubpi.radiorev == 4) ||
24538 (pi->pubpi.radiorev == 6))
24540 else if ((pi->pubpi.radiorev == 3)
24541 || (pi->pubpi.radiorev == 7)
24542 || (pi->pubpi.radiorev == 8))
24546 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
24547 mixgain, (1 << core), 0,
24548 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24550 wlc_phy_rfctrl_override_1tomany_nphy(
24552 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24553 1, (1 << core), 0);
24554 wlc_phy_rfctrl_override_1tomany_nphy(
24556 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24557 0, (1 << off_core), 0);
24559 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24561 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24562 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
24564 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24565 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
24567 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24568 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
24570 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24571 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
24573 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24574 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
24576 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24577 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
24579 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24580 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
24582 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24584 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
24586 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24587 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
24589 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24591 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24593 state->afeoverride[core] =
24594 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24595 state->afectrl[off_core] =
24596 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
24597 state->afeoverride[off_core] =
24598 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
24600 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24602 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24603 0xa5), (0x1 << 2), (0x1 << 2));
24605 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
24606 (0x1 << 2), (0x1 << 2));
24607 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
24608 0x8f), (0x1 << 2), (0x1 << 2));
24610 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24611 state->pwrup[core] =
24612 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24613 TXRXCOUPLE_2G_PWRUP);
24614 state->atten[core] =
24615 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24616 TXRXCOUPLE_2G_ATTEN);
24617 state->pwrup[off_core] =
24618 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24619 TXRXCOUPLE_2G_PWRUP);
24620 state->atten[off_core] =
24621 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24622 TXRXCOUPLE_2G_ATTEN);
24624 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24625 TXRXCOUPLE_2G_PWRUP, 0xc);
24627 if ((pi->pubpi.radiorev == 3) ||
24628 (pi->pubpi.radiorev == 4) ||
24629 (pi->pubpi.radiorev == 6))
24630 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24631 TXRXCOUPLE_2G_ATTEN, 0xf0);
24632 else if (pi->pubpi.radiorev == 5)
24633 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24634 TXRXCOUPLE_2G_ATTEN,
24635 (core == 0) ? 0xf7 : 0xf2);
24636 else if ((pi->pubpi.radiorev == 7)
24637 || (pi->pubpi.radiorev == 8))
24638 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24639 TXRXCOUPLE_2G_ATTEN, 0xf0);
24641 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24642 TXRXCOUPLE_2G_PWRUP, 0x0);
24643 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24644 TXRXCOUPLE_2G_ATTEN, 0xff);
24646 state->pwrup[core] =
24647 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24648 TXRXCOUPLE_5G_PWRUP);
24649 state->atten[core] =
24650 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24651 TXRXCOUPLE_5G_ATTEN);
24652 state->pwrup[off_core] =
24653 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24654 TXRXCOUPLE_5G_PWRUP);
24655 state->atten[off_core] =
24656 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24657 TXRXCOUPLE_5G_ATTEN);
24659 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24660 TXRXCOUPLE_5G_PWRUP, 0xc);
24662 if ((pi->pubpi.radiorev == 7)
24663 || (pi->pubpi.radiorev == 8))
24664 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24665 TXRXCOUPLE_5G_ATTEN, 0xf4);
24668 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24669 TXRXCOUPLE_5G_ATTEN, 0xf0);
24671 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24672 TXRXCOUPLE_5G_PWRUP, 0x0);
24673 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24674 TXRXCOUPLE_5G_ATTEN, 0xff);
24679 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24681 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24682 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
24684 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24685 0x2a4, (0x1 << 13), (1) << 13);
24687 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24688 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
24690 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
24691 0x2a4, (0x1 << 13), (0) << 13);
24695 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
24697 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
24699 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
24701 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
24702 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
24704 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24706 state->afeoverride[core] =
24707 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24709 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24710 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
24711 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24715 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
24717 state->vga_master[core] =
24718 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
24719 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
24720 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24721 state->fbmix[core] =
24722 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24724 state->intpa_master[core] =
24725 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24728 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
24730 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24731 INTPAG_MASTER, 0x04);
24733 state->fbmix[core] =
24734 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24736 state->intpa_master[core] =
24737 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24740 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
24742 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24743 INTPAA_MASTER, 0x04);
24749 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24751 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24752 0x29b, (0x1 << 0), (1) << 0);
24754 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24755 0x29b, (0x1 << 0), (0) << 0);
24757 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
24762 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
24763 struct nphy_papd_restore_state *state)
24767 wlc_phy_stopplayback_nphy(pi);
24769 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24771 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24773 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24774 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24775 TXRXCOUPLE_2G_PWRUP, 0);
24776 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24777 TXRXCOUPLE_2G_ATTEN,
24778 state->atten[core]);
24780 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24781 TXRXCOUPLE_5G_PWRUP, 0);
24782 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24783 TXRXCOUPLE_5G_ATTEN,
24784 state->atten[core]);
24788 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
24789 wlc_phy_rfctrl_override_nphy_rev7(
24792 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24794 wlc_phy_rfctrl_override_nphy_rev7(
24797 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24799 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
24801 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24802 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24803 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24804 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
24805 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24806 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
24807 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24808 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
24809 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24810 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
24811 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24812 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
24813 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24814 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
24815 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24816 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24817 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24818 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
24819 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24820 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
24821 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24822 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
24823 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24824 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
24825 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24826 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
24827 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24828 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
24829 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24830 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
24831 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24833 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24835 write_phy_reg(pi, (core == PHY_CORE_0) ?
24836 0xa6 : 0xa7, state->afectrl[core]);
24837 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24838 0xa5, state->afeoverride[core]);
24841 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24842 (state->mm & 0xff));
24844 if (NREV_IS(pi->pubpi.phy_rev, 7)
24845 || NREV_GE(pi->pubpi.phy_rev, 8))
24846 wlc_phy_rfctrl_override_nphy_rev7(
24847 pi, (0x1 << 7), 0, 0,
24849 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24851 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
24852 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
24853 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
24855 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
24856 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
24858 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24860 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
24861 state->vga_master[core]);
24862 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24863 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24864 TXFBMIX_G, state->fbmix[core]);
24865 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24867 state->intpa_master[core]);
24869 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24870 TXFBMIX_A, state->fbmix[core]);
24871 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24873 state->intpa_master[core]);
24876 write_phy_reg(pi, (core == PHY_CORE_0) ?
24877 0xa6 : 0xa7, state->afectrl[core]);
24878 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24879 0xa5, state->afeoverride[core]);
24882 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24883 (state->mm & 0xff));
24885 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
24890 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
24893 u32 *buf, *src, *dst, sz;
24895 sz = end - start + 1;
24897 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
24902 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
24904 wlc_phy_table_read_nphy(pi,
24906 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
24907 NPHY_TBL_ID_EPSILONTBL1),
24908 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
24911 u32 phy_a1, phy_a2;
24912 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
24914 phy_a1 = end - min(end, (winsz >> 1));
24915 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1,
24916 end + (winsz >> 1));
24917 phy_a3 = phy_a2 - phy_a1 + 1;
24922 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
24926 } while (phy_a2-- != phy_a1);
24930 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
24931 } while (end-- != start);
24933 wlc_phy_table_write_nphy(pi,
24935 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
24936 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
24942 wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
24943 enum phy_cal_mode cal_mode, u8 core)
24945 u16 phy_a1, phy_a2, phy_a3;
24946 u16 phy_a4, phy_a5;
24950 struct nphy_txgains phy_a9;
24952 if (NREV_LT(pi->pubpi.phy_rev, 3))
24955 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
24957 phy_a6 = ((cal_mode == CAL_GCTRL)
24958 || (cal_mode == CAL_SOFT)) ? true : false;
24960 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24962 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
24964 if (CHSPEC_IS2G(pi->radio_chanspec))
24965 phy_a5 = ((phy_a9.txlpf[core] << 15) |
24966 (phy_a9.txgm[core] << 12) |
24967 (phy_a9.pga[core] << 8) |
24968 (txgains->gains.pad[core] << 3) |
24969 (phy_a9.ipa[core]));
24971 phy_a5 = ((phy_a9.txlpf[core] << 15) |
24972 (phy_a9.txgm[core] << 12) |
24973 (txgains->gains.pga[core] << 8) |
24974 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
24976 wlc_phy_rfctrl_override_1tomany_nphy(
24978 NPHY_REV7_RfctrlOverride_cmd_txgain,
24979 phy_a5, (1 << core), 0);
24981 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24982 if ((pi->pubpi.radiorev <= 4)
24983 || (pi->pubpi.radiorev == 6))
24984 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24987 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24990 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
24994 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
24998 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24999 if ((pi->pubpi.radiorev == 4)
25000 || (pi->pubpi.radiorev == 6)) {
25008 if ((pi->pubpi.radiorev == 5)
25009 || (pi->pubpi.radiorev == 7)
25010 || (pi->pubpi.radiorev == 8)) {
25019 if (cal_mode == CAL_GCTRL) {
25020 if ((pi->pubpi.radiorev == 5)
25021 && (CHSPEC_IS2G(pi->radio_chanspec)))
25023 else if (((pi->pubpi.radiorev == 7) &&
25024 (CHSPEC_IS2G(pi->radio_chanspec))) ||
25025 ((pi->pubpi.radiorev == 8) &&
25026 (CHSPEC_IS2G(pi->radio_chanspec))))
25031 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
25037 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25038 0x29b, (0x1 << 0), (1) << 0);
25040 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25041 0x29b, (0x1 << 0), (0) << 0);
25043 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25044 0x2a4, (0x1 << 13), (1) << 13);
25046 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25047 0x2a4, (0x1 << 13), (0) << 13);
25049 write_phy_reg(pi, 0x2a1, 0x80);
25050 write_phy_reg(pi, 0x2a2, 0x100);
25052 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25053 0x2a4, (0x7 << 4), (11) << 4);
25055 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25056 0x2a4, (0x7 << 8), (11) << 8);
25058 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25059 0x2a4, (0x7 << 0), (0x3) << 0);
25061 write_phy_reg(pi, 0x2e5, 0x20);
25063 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25065 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25067 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25069 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25070 1, ((core == 0) ? 1 : 2), 0,
25071 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25072 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25073 0, ((core == 0) ? 2 : 1), 0,
25074 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25076 write_phy_reg(pi, 0x2be, 1);
25077 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25079 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25081 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25083 wlc_phy_table_write_nphy(pi,
25085 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
25086 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25089 if (cal_mode != CAL_GCTRL) {
25090 if (CHSPEC_IS5G(pi->radio_chanspec))
25091 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
25094 wlc_phy_rfctrl_override_1tomany_nphy(
25096 NPHY_REV7_RfctrlOverride_cmd_txgain,
25097 phy_a5, (1 << core), 1);
25102 if (txgains->useindex) {
25103 phy_a4 = 15 - ((txgains->index) >> 3);
25104 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25105 if (NREV_GE(pi->pubpi.phy_rev, 6))
25106 phy_a5 = 0x00f7 | (phy_a4 << 8);
25109 if (NREV_IS(pi->pubpi.phy_rev, 5))
25110 phy_a5 = 0x10f7 | (phy_a4 << 8);
25112 phy_a5 = 0x50f7 | (phy_a4 << 8);
25114 phy_a5 = 0x70f7 | (phy_a4 << 8);
25116 wlc_phy_rfctrl_override_nphy(pi,
25121 wlc_phy_rfctrl_override_nphy(pi,
25128 if (CHSPEC_IS2G(pi->radio_chanspec))
25129 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 45 : 64;
25131 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
25134 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
25138 if (cal_mode == CAL_FULL) {
25141 } else if (cal_mode == CAL_SOFT) {
25144 } else if (cal_mode == CAL_GCTRL) {
25153 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25154 0x29b, (0x1 << 0), (1) << 0);
25156 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25157 0x29b, (0x1 << 0), (0) << 0);
25159 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25160 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25161 0x2a4, (0x1 << 13), (1) << 13);
25163 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25164 0x2a4, (0x1 << 13), (0) << 13);
25166 write_phy_reg(pi, 0x2a1, 0x20);
25167 write_phy_reg(pi, 0x2a2, 0x60);
25169 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25170 0x2a4, (0xf << 4), (9) << 4);
25172 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25173 0x2a4, (0xf << 8), (9) << 8);
25175 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25176 0x2a4, (0xf << 0), (0x2) << 0);
25178 write_phy_reg(pi, 0x2e5, 0x20);
25180 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25181 0x2a4, (0x1 << 11), (1) << 11);
25183 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25184 0x2a4, (0x1 << 11), (0) << 11);
25186 write_phy_reg(pi, 0x2a1, 0x80);
25187 write_phy_reg(pi, 0x2a2, 0x600);
25189 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25190 0x2a4, (0x7 << 4), (0) << 4);
25192 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25193 0x2a4, (0x7 << 8), (0) << 8);
25195 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25196 0x2a4, (0x7 << 0), (0x3) << 0);
25198 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
25202 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25204 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25206 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25208 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
25210 write_phy_reg(pi, 0x2be, 1);
25211 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25213 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
25215 wlc_phy_table_write_nphy(pi,
25217 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
25218 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25221 if (cal_mode != CAL_GCTRL)
25222 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
25226 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
25231 struct nphy_ipa_txcalgains phy_a4;
25232 bool phy_a5 = false;
25233 bool phy_a6 = true;
25234 s32 phy_a7, phy_a8;
25237 bool phy_a11 = false;
25241 u8 *phy_a15 = NULL;
25243 phy_a4.useindex = true;
25244 phy_a12 = start_gain;
25246 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25251 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25252 if (pi->pubpi.radiorev == 5) {
25254 phy_a15 = pad_gain_codes_used_2057rev5;
25256 sizeof(pad_gain_codes_used_2057rev5) /
25257 sizeof(pad_gain_codes_used_2057rev5
25260 } else if ((pi->pubpi.radiorev == 7)
25261 || (pi->pubpi.radiorev == 8)) {
25263 phy_a15 = pad_gain_codes_used_2057rev7;
25265 sizeof(pad_gain_codes_used_2057rev7) /
25266 sizeof(pad_gain_codes_used_2057rev7
25271 phy_a15 = pad_all_gain_codes_2057;
25272 phy_a13 = sizeof(pad_all_gain_codes_2057) /
25273 sizeof(pad_all_gain_codes_2057[0]) -
25279 phy_a15 = pga_all_gain_codes_2057;
25280 phy_a13 = sizeof(pga_all_gain_codes_2057) /
25281 sizeof(pga_all_gain_codes_2057[0]) - 1;
25286 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25287 if (CHSPEC_IS2G(pi->radio_chanspec))
25288 phy_a4.gains.pad[core] =
25289 (u16) phy_a15[phy_a12];
25291 phy_a4.gains.pga[core] =
25292 (u16) phy_a15[phy_a12];
25294 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25296 wlc_phy_table_read_nphy(pi,
25299 NPHY_TBL_ID_EPSILONTBL0 :
25300 NPHY_TBL_ID_EPSILONTBL1), 1,
25303 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25305 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25306 (phy_a8 == 4095) || (phy_a8 == -4096));
25308 if (!phy_a6 && (phy_a3 != phy_a5)) {
25310 phy_a12 -= (u8) phy_a1;
25317 phy_a12 += (u8) phy_a1;
25319 phy_a12 -= (u8) phy_a1;
25321 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
25322 if (phy_a12 < phy_a14)
25338 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25339 phy_a4.index = (u8) phy_a12;
25340 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25342 wlc_phy_table_read_nphy(pi,
25345 NPHY_TBL_ID_EPSILONTBL0 :
25346 NPHY_TBL_ID_EPSILONTBL1), 1,
25349 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25351 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25352 (phy_a8 == 4095) || (phy_a8 == -4096));
25354 if (!phy_a6 && (phy_a3 != phy_a5)) {
25356 phy_a12 -= (u8) phy_a1;
25363 phy_a12 += (u8) phy_a1;
25365 phy_a12 -= (u8) phy_a1;
25367 if ((phy_a12 < 0) || (phy_a12 > 127)) {
25383 if (NREV_GE(pi->pubpi.phy_rev, 7))
25384 return (u8) phy_a15[phy_a12];
25386 return (u8) phy_a12;
25390 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
25392 struct nphy_ipa_txcalgains phy_b1[2];
25393 struct nphy_papd_restore_state phy_b2;
25397 s16 phy_b6, phy_b7, phy_b8;
25399 s16 phy_b10, phy_b11, phy_b12;
25407 if (pi->nphy_papd_skip == 1)
25410 phy_b3 = (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
25412 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25414 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25416 pi->nphy_force_papd_cal = false;
25418 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
25419 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
25420 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
25422 pi->nphy_papd_last_cal = pi->sh->now;
25423 pi->nphy_papd_recal_counter++;
25425 phy_b4 = pi->nphy_txpwrctrl;
25426 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25428 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
25429 nphy_papd_scaltbl);
25430 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
25431 nphy_papd_scaltbl);
25433 phy_b9 = read_phy_reg(pi, 0x01);
25434 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25436 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25438 for (i = 0; i < 64; i++)
25439 wlc_phy_table_write_nphy(pi,
25442 NPHY_TBL_ID_EPSILONTBL0 :
25443 NPHY_TBL_ID_EPSILONTBL1), 1,
25447 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
25449 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
25450 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25451 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
25453 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25454 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25455 if ((pi->pubpi.radiorev == 3)
25456 || (pi->pubpi.radiorev == 4)
25457 || (pi->pubpi.radiorev == 6)) {
25458 pi->nphy_papd_cal_gain_index[phy_b5] =
25460 } else if (pi->pubpi.radiorev == 5) {
25461 pi->nphy_papd_cal_gain_index[phy_b5] =
25463 pi->nphy_papd_cal_gain_index[phy_b5] =
25467 nphy_papd_cal_gain_index
25471 } else if ((pi->pubpi.radiorev == 7)
25472 || (pi->pubpi.radiorev == 8)) {
25474 pi->nphy_papd_cal_gain_index[phy_b5] =
25476 pi->nphy_papd_cal_gain_index[phy_b5] =
25480 nphy_papd_cal_gain_index
25486 phy_b1[phy_b5].gains.pad[phy_b5] =
25487 pi->nphy_papd_cal_gain_index[phy_b5];
25490 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
25491 pi->nphy_papd_cal_gain_index[phy_b5] =
25495 nphy_papd_cal_gain_index
25497 phy_b1[phy_b5].gains.pga[phy_b5] =
25498 pi->nphy_papd_cal_gain_index[phy_b5];
25501 phy_b1[phy_b5].useindex = true;
25502 phy_b1[phy_b5].index = 16;
25503 phy_b1[phy_b5].index =
25504 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index,
25507 pi->nphy_papd_cal_gain_index[phy_b5] =
25508 15 - ((phy_b1[phy_b5].index) >> 3);
25511 switch (pi->nphy_papd_cal_type) {
25513 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
25516 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
25520 if (NREV_GE(pi->pubpi.phy_rev, 7))
25521 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25524 if (NREV_LT(pi->pubpi.phy_rev, 7))
25525 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25527 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25528 int eps_offset = 0;
25530 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25531 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25532 if (pi->pubpi.radiorev == 3)
25534 else if (pi->pubpi.radiorev == 5)
25542 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25543 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
25545 if ((pi->pubpi.radiorev == 3) ||
25546 (pi->pubpi.radiorev == 4) ||
25547 (pi->pubpi.radiorev == 6)) {
25549 nphy_papd_padgain_dlt_2g_2057rev3n4
25552 } else if (pi->pubpi.radiorev == 5) {
25554 nphy_papd_padgain_dlt_2g_2057rev5
25556 } else if ((pi->pubpi.radiorev == 7) ||
25557 (pi->pubpi.radiorev == 8)) {
25559 nphy_papd_padgain_dlt_2g_2057rev7
25563 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
25564 if ((pi->pubpi.radiorev == 3) ||
25565 (pi->pubpi.radiorev == 4) ||
25566 (pi->pubpi.radiorev == 6))
25568 -(nphy_papd_pgagain_dlt_5g_2057
25571 else if ((pi->pubpi.radiorev == 7)
25572 || (pi->pubpi.radiorev == 8))
25574 nphy_papd_pgagain_dlt_5g_2057rev7
25580 if (CHSPEC_IS2G(pi->radio_chanspec))
25582 -60 + 27 + eps_offset + phy_b12 +
25586 -60 + 27 + eps_offset + phy_b11 +
25589 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25590 0x29c, (0x1ff << 7), (phy_b6) << 7);
25592 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25594 if (NREV_LT(pi->pubpi.phy_rev, 5))
25599 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
25601 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25603 -(nphy_papd_pga_gain_delta_ipa_2g[
25609 -(nphy_papd_pga_gain_delta_ipa_5g[
25615 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
25617 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25618 0x29c, (0x1ff << 7), (phy_b6) << 7);
25620 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25624 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25625 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25627 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25628 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25630 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25631 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25632 0x2a4, (0x1 << 13), (0) << 13);
25634 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25635 0x2a4, (0x1 << 13), (0) << 13);
25638 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25639 0x2a4, (0x1 << 11), (0) << 11);
25641 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25642 0x2a4, (0x1 << 11), (0) << 11);
25645 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
25647 write_phy_reg(pi, 0x01, phy_b9);
25649 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
25651 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
25652 if (phy_b4 == PHY_TPC_HW_OFF) {
25653 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25654 (s8) (pi->nphy_txpwrindex[0].
25655 index_internal), false);
25656 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25657 (s8) (pi->nphy_txpwrindex[1].
25658 index_internal), false);
25661 wlc_phy_stay_in_carriersearch_nphy(pi, false);
25664 wlapi_enable_mac(pi->sh->physhim);
25667 void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
25669 struct nphy_txgains target_gain;
25670 u8 tx_pwr_ctrl_state;
25671 bool fullcal = true;
25672 bool restore_tx_gain = false;
25678 if (caltype == PHY_PERICAL_AUTO)
25679 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
25680 else if (caltype == PHY_PERICAL_PARTIAL)
25683 if (pi->cal_type_override != PHY_PERICAL_AUTO)
25685 (pi->cal_type_override ==
25686 PHY_PERICAL_FULL) ? true : false;
25688 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
25689 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
25690 wlc_phy_cal_perical_mphase_restart(pi);
25693 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL))
25694 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
25696 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25698 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25700 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
25701 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
25702 pi->nphy_cal_orig_pwr_idx[0] =
25703 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
25704 pi->nphy_cal_orig_pwr_idx[1] =
25705 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
25707 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
25708 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
25710 pi->nphy_cal_orig_tx_gain);
25712 pi->nphy_cal_orig_tx_gain[0] = 0;
25713 pi->nphy_cal_orig_tx_gain[1] = 0;
25716 target_gain = wlc_phy_get_tx_gain_nphy(pi);
25717 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
25718 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25720 if (pi->antsel_type == ANTSEL_2x3)
25721 wlc_phy_antsel_init((struct brcms_phy_pub *) pi, true);
25723 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
25726 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25727 wlc_phy_precal_txgain_nphy(pi);
25728 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25729 restore_tx_gain = true;
25731 target_gain = pi->nphy_cal_target_gain;
25734 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal,
25737 wlc_phy_a4(pi, true);
25739 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25740 wlapi_enable_mac(pi->sh->physhim);
25741 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
25743 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25744 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25746 if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
25747 (pi->first_cal_after_assoc ||
25748 (pi->cal_type_override ==
25749 PHY_PERICAL_FULL)) ? 2 : 0, false)) {
25750 wlc_phy_savecal_nphy(pi);
25752 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25754 pi->nphy_perical_last = pi->sh->now;
25757 if (caltype != PHY_PERICAL_AUTO)
25758 wlc_phy_rssi_cal_nphy(pi);
25760 if (pi->first_cal_after_assoc
25761 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
25762 pi->first_cal_after_assoc = false;
25763 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25764 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25767 if (NREV_GE(pi->pubpi.phy_rev, 3))
25768 wlc_phy_radio205x_vcocal_nphy(pi);
25770 switch (pi->mphase_cal_phase_id) {
25771 case MPHASE_CAL_STATE_INIT:
25772 pi->nphy_perical_last = pi->sh->now;
25773 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
25775 if (NREV_GE(pi->pubpi.phy_rev, 3))
25776 wlc_phy_precal_txgain_nphy(pi);
25778 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25779 pi->mphase_cal_phase_id++;
25782 case MPHASE_CAL_STATE_TXPHASE0:
25783 case MPHASE_CAL_STATE_TXPHASE1:
25784 case MPHASE_CAL_STATE_TXPHASE2:
25785 case MPHASE_CAL_STATE_TXPHASE3:
25786 case MPHASE_CAL_STATE_TXPHASE4:
25787 case MPHASE_CAL_STATE_TXPHASE5:
25788 if ((pi->radar_percal_mask & 0x10) != 0)
25789 pi->nphy_rxcal_active = true;
25791 if (wlc_phy_cal_txiqlo_nphy
25792 (pi, pi->nphy_cal_target_gain, fullcal,
25795 wlc_phy_cal_perical_mphase_reset(pi);
25799 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
25800 (pi->mphase_cal_phase_id ==
25801 MPHASE_CAL_STATE_TXPHASE4))
25802 pi->mphase_cal_phase_id += 2;
25804 pi->mphase_cal_phase_id++;
25807 case MPHASE_CAL_STATE_PAPDCAL:
25808 if ((pi->radar_percal_mask & 0x2) != 0)
25809 pi->nphy_rxcal_active = true;
25812 wlc_phy_a4(pi, true);
25814 pi->mphase_cal_phase_id++;
25817 case MPHASE_CAL_STATE_RXCAL:
25818 if ((pi->radar_percal_mask & 0x1) != 0)
25819 pi->nphy_rxcal_active = true;
25820 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
25821 (pi->first_cal_after_assoc ||
25822 (pi->cal_type_override ==
25823 PHY_PERICAL_FULL)) ? 2 : 0,
25825 wlc_phy_savecal_nphy(pi);
25827 pi->mphase_cal_phase_id++;
25830 case MPHASE_CAL_STATE_RSSICAL:
25831 if ((pi->radar_percal_mask & 0x4) != 0)
25832 pi->nphy_rxcal_active = true;
25833 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25834 wlc_phy_rssi_cal_nphy(pi);
25836 if (NREV_GE(pi->pubpi.phy_rev, 3))
25837 wlc_phy_radio205x_vcocal_nphy(pi);
25839 restore_tx_gain = true;
25841 if (pi->first_cal_after_assoc)
25842 pi->mphase_cal_phase_id++;
25844 wlc_phy_cal_perical_mphase_reset(pi);
25848 case MPHASE_CAL_STATE_IDLETSSI:
25849 if ((pi->radar_percal_mask & 0x8) != 0)
25850 pi->nphy_rxcal_active = true;
25852 if (pi->first_cal_after_assoc) {
25853 pi->first_cal_after_assoc = false;
25854 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25855 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25858 wlc_phy_cal_perical_mphase_reset(pi);
25862 wlc_phy_cal_perical_mphase_reset(pi);
25867 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25868 if (restore_tx_gain) {
25869 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
25871 wlc_phy_txpwr_index_nphy(pi, 1,
25873 nphy_cal_orig_pwr_idx
25875 wlc_phy_txpwr_index_nphy(pi, 2,
25877 nphy_cal_orig_pwr_idx
25880 pi->nphy_txpwrindex[0].index = -1;
25881 pi->nphy_txpwrindex[1].index = -1;
25883 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25889 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25899 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
25900 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25901 wlapi_enable_mac(pi->sh->physhim);
25905 wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
25906 bool fullcal, bool mphase)
25912 u8 num_cals, max_cal_cmds;
25913 u16 core_no, cal_type;
25920 struct nphy_iqcal_params cal_params[2];
25923 bool ladder_updated[2];
25924 u8 mphase_cal_lastphase = 0;
25926 bool phyhang_avoid_state = false;
25928 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
25929 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
25931 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
25935 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
25936 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
25938 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
25942 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
25943 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
25945 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
25949 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
25950 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
25952 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
25956 u16 tbl_tx_iqlo_cal_startcoefs[] = {
25957 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25961 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
25962 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
25963 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
25966 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
25967 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
25968 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
25971 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
25972 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25973 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25977 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
25978 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
25979 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
25982 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
25983 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
25984 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
25987 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25989 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25990 phyhang_avoid_state = pi->phyhang_avoid;
25991 pi->phyhang_avoid = false;
25994 if (CHSPEC_IS40(pi->radio_chanspec))
25999 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
26001 for (core_no = 0; core_no <= 1; core_no++) {
26002 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
26003 &cal_params[core_no]);
26004 cal_gain[core_no] = cal_params[core_no].cal_gain;
26007 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
26009 wlc_phy_txcal_radio_setup_nphy(pi);
26011 wlc_phy_txcal_physetup_nphy(pi);
26013 ladder_updated[0] = ladder_updated[1] = false;
26014 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
26015 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
26016 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
26018 if (phy_bw == 40) {
26019 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
26020 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
26022 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
26023 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
26025 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
26028 if (phy_bw == 40) {
26029 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
26030 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
26032 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
26033 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
26035 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
26039 if (NREV_GE(pi->pubpi.phy_rev, 7))
26040 write_phy_reg(pi, 0xc2, 0x8ad9);
26042 write_phy_reg(pi, 0xc2, 0x8aa9);
26045 tone_freq = (phy_bw == 20) ? 2500 : 5000;
26047 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
26048 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
26052 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0,
26056 if (bcmerror == 0) {
26058 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
26059 tbl_ptr = pi->mphase_txcal_bestcoeffs;
26060 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26061 if (NREV_LT(pi->pubpi.phy_rev, 3))
26064 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
26066 tbl_ptr = pi->nphy_txiqlocal_bestc;
26067 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26068 if (NREV_LT(pi->pubpi.phy_rev, 3))
26074 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26076 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
26077 tbl_len = ARRAY_SIZE(
26078 tbl_tx_iqlo_cal_startcoefs_nphyrev3);
26080 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
26081 tbl_len = ARRAY_SIZE(
26082 tbl_tx_iqlo_cal_startcoefs);
26086 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
26090 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26092 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
26093 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
26095 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26097 tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
26098 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
26102 cal_cnt = pi->mphase_txcal_cmdidx;
26103 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds)
26104 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
26106 num_cals = max_cal_cmds;
26109 num_cals = max_cal_cmds;
26112 for (; cal_cnt < num_cals; cal_cnt++) {
26115 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26116 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
26118 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
26120 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26121 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[
26123 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
26126 core_no = ((cal_cmd & 0x3000) >> 12);
26127 cal_type = ((cal_cmd & 0x0F00) >> 8);
26129 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
26130 (NREV_IS(pi->pubpi.phy_rev, 5) &&
26132 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
26133 if (!ladder_updated[core_no]) {
26134 wlc_phy_update_txcal_ladder_nphy(
26137 ladder_updated[core_no] = true;
26142 (cal_params[core_no].
26143 ncorr[cal_type] << 8) | NPHY_N_GCTL;
26144 write_phy_reg(pi, 0xc1, val);
26146 if ((cal_type == 1) || (cal_type == 3)
26147 || (cal_type == 4)) {
26149 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26150 1, 69 + core_no, 16,
26153 diq_start = tbl_buf[0];
26156 wlc_phy_table_write_nphy(pi,
26157 NPHY_TBL_ID_IQLOCAL, 1,
26162 write_phy_reg(pi, 0xc0, cal_cmd);
26164 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
26166 if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
26167 "HW error: txiq calib"))
26170 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26171 tbl_len, 96, 16, tbl_buf);
26172 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26173 tbl_len, 64, 16, tbl_buf);
26175 if ((cal_type == 1) || (cal_type == 3)
26176 || (cal_type == 4)) {
26178 tbl_buf[0] = diq_start;
26185 pi->mphase_txcal_cmdidx = num_cals;
26186 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
26187 pi->mphase_txcal_cmdidx = 0;
26190 mphase_cal_lastphase =
26191 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
26192 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
26195 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
26197 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
26199 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26202 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26210 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26213 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
26215 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26218 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26221 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26222 if (NREV_LT(pi->pubpi.phy_rev, 3))
26225 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26227 pi->nphy_txiqlocal_bestc);
26229 pi->nphy_txiqlocal_coeffsvalid = true;
26230 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
26232 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26233 if (NREV_LT(pi->pubpi.phy_rev, 3))
26236 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26238 pi->mphase_txcal_bestcoeffs);
26241 wlc_phy_stopplayback_nphy(pi);
26243 write_phy_reg(pi, 0xc2, 0x0000);
26247 wlc_phy_txcal_phycleanup_nphy(pi);
26249 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26252 wlc_phy_txcal_radio_cleanup_nphy(pi);
26254 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26256 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
26257 wlc_phy_tx_iq_war_nphy(pi);
26260 if (NREV_GE(pi->pubpi.phy_rev, 4))
26261 pi->phyhang_avoid = phyhang_avoid_state;
26263 wlc_phy_stay_in_carriersearch_nphy(pi, false);
26268 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
26272 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
26273 (pi->nphy_txiqlocal_coeffsvalid)) {
26274 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26275 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
26277 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
26278 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
26279 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
26280 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
26282 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26283 16, pi->nphy_txiqlocal_bestc);
26289 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26292 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26294 &pi->nphy_txiqlocal_bestc[5]);
26296 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26298 &pi->nphy_txiqlocal_bestc[5]);
26304 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
26305 struct nphy_iq_comp *pcomp)
26308 write_phy_reg(pi, 0x9a, pcomp->a0);
26309 write_phy_reg(pi, 0x9b, pcomp->b0);
26310 write_phy_reg(pi, 0x9c, pcomp->a1);
26311 write_phy_reg(pi, 0x9d, pcomp->b1);
26313 pcomp->a0 = read_phy_reg(pi, 0x9a);
26314 pcomp->b0 = read_phy_reg(pi, 0x9b);
26315 pcomp->a1 = read_phy_reg(pi, 0x9c);
26316 pcomp->b1 = read_phy_reg(pi, 0x9d);
26321 wlc_phy_rx_iq_est_nphy(struct brcms_phy *pi, struct phy_iq_est *est,
26322 u16 num_samps, u8 wait_time, u8 wait_for_crs)
26326 write_phy_reg(pi, 0x12b, num_samps);
26327 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
26328 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
26329 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
26331 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
26333 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
26335 if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
26336 "HW error: rxiq est"))
26339 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
26340 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26343 NPHY_IqestipwrAccHi(core)) << 16)
26344 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
26347 NPHY_IqestqpwrAccHi(core)) << 16)
26348 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
26349 est[core].iq_prod =
26351 NPHY_IqestIqAccHi(core)) << 16) |
26352 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
26357 #define CAL_RETRY_CNT 2
26358 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
26361 struct phy_iq_est est[PHY_CORE_MAX];
26362 struct nphy_iq_comp old_comp, new_comp;
26364 u32 ii = 0, qq = 0;
26365 s16 iq_nbits, qq_nbits, brsh, arsh;
26368 uint cal_retry = 0;
26370 if (core_mask == 0x0)
26373 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
26374 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
26375 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26378 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
26380 new_comp = old_comp;
26382 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
26384 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26385 iq = est[curr_core].iq_prod;
26386 ii = est[curr_core].i_pwr;
26387 qq = est[curr_core].q_pwr;
26388 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26389 iq = est[curr_core].iq_prod;
26390 ii = est[curr_core].i_pwr;
26391 qq = est[curr_core].q_pwr;
26396 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
26401 iq_nbits = wlc_phy_nbits(iq);
26402 qq_nbits = wlc_phy_nbits(qq);
26404 arsh = 10 - (30 - iq_nbits);
26406 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
26407 temp = (s32) (ii >> arsh);
26413 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
26414 temp = (s32) (ii << -arsh);
26423 brsh = qq_nbits - 31 + 20;
26425 b = (qq << (31 - qq_nbits));
26426 temp = (s32) (ii >> brsh);
26432 b = (qq << (31 - qq_nbits));
26433 temp = (s32) (ii << -brsh);
26441 b = (s32) int_sqrt((unsigned long) b);
26444 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26445 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26446 new_comp.a0 = (s16) a & 0x3ff;
26447 new_comp.b0 = (s16) b & 0x3ff;
26450 new_comp.a0 = (s16) b & 0x3ff;
26451 new_comp.b0 = (s16) a & 0x3ff;
26454 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26455 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26456 new_comp.a1 = (s16) a & 0x3ff;
26457 new_comp.b1 = (s16) b & 0x3ff;
26460 new_comp.a1 = (s16) b & 0x3ff;
26461 new_comp.b1 = (s16) a & 0x3ff;
26466 if (bcmerror != 0) {
26467 printk(KERN_DEBUG "%s: Failed, cnt = %d\n", __func__,
26470 if (cal_retry < CAL_RETRY_CNT) {
26475 new_comp = old_comp;
26478 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26481 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
26487 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26488 if (rx_core == PHY_CORE_0) {
26489 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26490 pi->tx_rx_cal_radio_saveregs[0] =
26492 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
26493 pi->tx_rx_cal_radio_saveregs[1] =
26495 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
26497 write_radio_reg(pi,
26498 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26500 write_radio_reg(pi,
26501 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26505 pi->tx_rx_cal_radio_saveregs[0] =
26507 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
26508 pi->tx_rx_cal_radio_saveregs[1] =
26510 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
26514 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26518 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26523 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26524 pi->tx_rx_cal_radio_saveregs[0] =
26526 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
26527 pi->tx_rx_cal_radio_saveregs[1] =
26529 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
26533 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26537 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26541 pi->tx_rx_cal_radio_saveregs[0] =
26543 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
26544 pi->tx_rx_cal_radio_saveregs[1] =
26546 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
26548 write_radio_reg(pi,
26549 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26551 write_radio_reg(pi,
26552 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26558 if (rx_core == PHY_CORE_0) {
26559 pi->tx_rx_cal_radio_saveregs[0] =
26561 RADIO_2056_TX_RXIQCAL_TXMUX |
26563 pi->tx_rx_cal_radio_saveregs[1] =
26565 RADIO_2056_RX_RXIQCAL_RXMUX |
26568 if (pi->pubpi.radiorev >= 5) {
26569 pi->tx_rx_cal_radio_saveregs[2] =
26571 RADIO_2056_RX_RXSPARE2 |
26573 pi->tx_rx_cal_radio_saveregs[3] =
26575 RADIO_2056_TX_TXSPARE2 |
26579 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26581 if (pi->pubpi.radiorev >= 5) {
26582 pi->tx_rx_cal_radio_saveregs[4] =
26584 RADIO_2056_RX_LNAA_MASTER
26589 RADIO_2056_RX_LNAA_MASTER
26590 | RADIO_2056_RX0, 0x40);
26592 write_radio_reg(pi,
26593 RADIO_2056_TX_TXSPARE2 |
26594 RADIO_2056_TX1, bias_a);
26596 write_radio_reg(pi,
26597 RADIO_2056_RX_RXSPARE2 |
26598 RADIO_2056_RX0, bias_a);
26600 pi->tx_rx_cal_radio_saveregs[4] =
26602 RADIO_2056_RX_LNAA_TUNE
26606 (pi->tx_rx_cal_radio_saveregs
26609 (offtune_val <= 0x7) ? 0xF : 0;
26612 RADIO_2056_RX_LNAA_TUNE |
26613 RADIO_2056_RX0, 0xF0,
26614 (offtune_val << 8));
26617 write_radio_reg(pi,
26618 RADIO_2056_TX_RXIQCAL_TXMUX |
26619 RADIO_2056_TX1, 0x9);
26620 write_radio_reg(pi,
26621 RADIO_2056_RX_RXIQCAL_RXMUX |
26622 RADIO_2056_RX0, 0x9);
26624 if (pi->pubpi.radiorev >= 5) {
26625 pi->tx_rx_cal_radio_saveregs[4] =
26628 RADIO_2056_RX_LNAG_MASTER
26633 RADIO_2056_RX_LNAG_MASTER
26634 | RADIO_2056_RX0, 0x40);
26638 RADIO_2056_TX_TXSPARE2
26640 RADIO_2056_TX1, bias_g);
26644 RADIO_2056_RX_RXSPARE2
26646 RADIO_2056_RX0, bias_g);
26649 pi->tx_rx_cal_radio_saveregs[4] =
26652 RADIO_2056_RX_LNAG_TUNE
26657 tx_rx_cal_radio_saveregs[2] &
26660 (offtune_val <= 0x7) ? 0xF : 0;
26663 RADIO_2056_RX_LNAG_TUNE |
26664 RADIO_2056_RX0, 0xF0,
26665 (offtune_val << 8));
26668 write_radio_reg(pi,
26669 RADIO_2056_TX_RXIQCAL_TXMUX |
26670 RADIO_2056_TX1, 0x6);
26671 write_radio_reg(pi,
26672 RADIO_2056_RX_RXIQCAL_RXMUX |
26673 RADIO_2056_RX0, 0x6);
26677 pi->tx_rx_cal_radio_saveregs[0] =
26679 RADIO_2056_TX_RXIQCAL_TXMUX |
26681 pi->tx_rx_cal_radio_saveregs[1] =
26683 RADIO_2056_RX_RXIQCAL_RXMUX |
26686 if (pi->pubpi.radiorev >= 5) {
26687 pi->tx_rx_cal_radio_saveregs[2] =
26689 RADIO_2056_RX_RXSPARE2 |
26691 pi->tx_rx_cal_radio_saveregs[3] =
26693 RADIO_2056_TX_TXSPARE2 |
26697 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26699 if (pi->pubpi.radiorev >= 5) {
26700 pi->tx_rx_cal_radio_saveregs[4] =
26703 RADIO_2056_RX_LNAA_MASTER
26708 RADIO_2056_RX_LNAA_MASTER |
26709 RADIO_2056_RX1, 0x40);
26713 RADIO_2056_TX_TXSPARE2
26715 RADIO_2056_TX0, bias_a);
26719 RADIO_2056_RX_RXSPARE2
26721 RADIO_2056_RX1, bias_a);
26723 pi->tx_rx_cal_radio_saveregs[4] =
26726 RADIO_2056_RX_LNAA_TUNE
26731 tx_rx_cal_radio_saveregs[2] &
26734 (offtune_val <= 0x7) ? 0xF : 0;
26737 RADIO_2056_RX_LNAA_TUNE |
26738 RADIO_2056_RX1, 0xF0,
26739 (offtune_val << 8));
26742 write_radio_reg(pi,
26743 RADIO_2056_TX_RXIQCAL_TXMUX |
26744 RADIO_2056_TX0, 0x9);
26745 write_radio_reg(pi,
26746 RADIO_2056_RX_RXIQCAL_RXMUX |
26747 RADIO_2056_RX1, 0x9);
26749 if (pi->pubpi.radiorev >= 5) {
26750 pi->tx_rx_cal_radio_saveregs[4] =
26753 RADIO_2056_RX_LNAG_MASTER
26758 RADIO_2056_RX_LNAG_MASTER
26759 | RADIO_2056_RX1, 0x40);
26763 RADIO_2056_TX_TXSPARE2
26765 RADIO_2056_TX0, bias_g);
26769 RADIO_2056_RX_RXSPARE2
26771 RADIO_2056_RX1, bias_g);
26773 pi->tx_rx_cal_radio_saveregs[4] =
26776 RADIO_2056_RX_LNAG_TUNE
26781 tx_rx_cal_radio_saveregs[2] &
26784 (offtune_val <= 0x7) ? 0xF : 0;
26787 RADIO_2056_RX_LNAG_TUNE |
26788 RADIO_2056_RX1, 0xF0,
26789 (offtune_val << 8));
26792 write_radio_reg(pi,
26793 RADIO_2056_TX_RXIQCAL_TXMUX |
26794 RADIO_2056_TX0, 0x6);
26795 write_radio_reg(pi,
26796 RADIO_2056_RX_RXIQCAL_RXMUX |
26797 RADIO_2056_RX1, 0x6);
26803 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26805 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26806 if (rx_core == PHY_CORE_0) {
26807 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26810 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26812 tx_rx_cal_radio_saveregs[0]);
26815 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26817 tx_rx_cal_radio_saveregs[1]);
26822 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26824 tx_rx_cal_radio_saveregs[0]);
26827 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26829 tx_rx_cal_radio_saveregs[1]);
26833 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26836 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26838 tx_rx_cal_radio_saveregs[0]);
26841 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26843 tx_rx_cal_radio_saveregs[1]);
26848 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26850 tx_rx_cal_radio_saveregs[0]);
26853 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26855 tx_rx_cal_radio_saveregs[1]);
26860 if (rx_core == PHY_CORE_0) {
26861 write_radio_reg(pi,
26862 RADIO_2056_TX_RXIQCAL_TXMUX |
26864 pi->tx_rx_cal_radio_saveregs[0]);
26866 write_radio_reg(pi,
26867 RADIO_2056_RX_RXIQCAL_RXMUX |
26869 pi->tx_rx_cal_radio_saveregs[1]);
26871 if (pi->pubpi.radiorev >= 5) {
26872 write_radio_reg(pi,
26873 RADIO_2056_RX_RXSPARE2 |
26876 tx_rx_cal_radio_saveregs[2]);
26878 write_radio_reg(pi,
26879 RADIO_2056_TX_TXSPARE2 |
26882 tx_rx_cal_radio_saveregs[3]);
26885 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26886 if (pi->pubpi.radiorev >= 5)
26889 RADIO_2056_RX_LNAA_MASTER
26892 tx_rx_cal_radio_saveregs
26897 RADIO_2056_RX_LNAA_TUNE
26900 tx_rx_cal_radio_saveregs
26903 if (pi->pubpi.radiorev >= 5)
26906 RADIO_2056_RX_LNAG_MASTER
26909 tx_rx_cal_radio_saveregs
26914 RADIO_2056_RX_LNAG_TUNE
26917 tx_rx_cal_radio_saveregs
26922 write_radio_reg(pi,
26923 RADIO_2056_TX_RXIQCAL_TXMUX |
26925 pi->tx_rx_cal_radio_saveregs[0]);
26927 write_radio_reg(pi,
26928 RADIO_2056_RX_RXIQCAL_RXMUX |
26930 pi->tx_rx_cal_radio_saveregs[1]);
26932 if (pi->pubpi.radiorev >= 5) {
26933 write_radio_reg(pi,
26934 RADIO_2056_RX_RXSPARE2 |
26937 tx_rx_cal_radio_saveregs[2]);
26939 write_radio_reg(pi,
26940 RADIO_2056_TX_TXSPARE2 |
26943 tx_rx_cal_radio_saveregs[3]);
26946 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26947 if (pi->pubpi.radiorev >= 5)
26950 RADIO_2056_RX_LNAA_MASTER
26953 tx_rx_cal_radio_saveregs
26958 RADIO_2056_RX_LNAA_TUNE
26961 tx_rx_cal_radio_saveregs
26964 if (pi->pubpi.radiorev >= 5)
26967 RADIO_2056_RX_LNAG_MASTER
26970 tx_rx_cal_radio_saveregs
26975 RADIO_2056_RX_LNAG_TUNE
26978 tx_rx_cal_radio_saveregs
26985 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
26988 u16 rx_antval, tx_antval;
26990 if (NREV_GE(pi->pubpi.phy_rev, 7))
26993 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
26995 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
26996 pi->tx_rx_cal_phy_saveregs[1] =
26997 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
26998 pi->tx_rx_cal_phy_saveregs[2] =
26999 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
27000 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
27001 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
27002 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
27003 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
27004 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
27005 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
27006 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27007 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
27008 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
27009 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
27010 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
27013 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
27014 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
27015 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
27016 0x29b, (0x1 << 0), (0) << 0);
27018 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
27019 0x29b, (0x1 << 0), (0) << 0);
27021 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27023 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27025 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
27029 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27030 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27031 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
27032 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
27035 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
27036 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
27037 (0x1 << 2), (0x1 << 2));
27038 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27039 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27040 (0x1 << 0) | (0x1 << 1), 0);
27041 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27043 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
27046 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
27047 RADIO_MIMO_CORESEL_CORE1 |
27048 RADIO_MIMO_CORESEL_CORE2);
27050 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27051 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
27053 NPHY_REV7_RFCTRLOVERRIDE_ID0);
27054 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
27055 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27056 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
27057 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27058 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
27059 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27060 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
27061 NPHY_REV7_RFCTRLOVERRIDE_ID2);
27062 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
27063 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27064 if (CHSPEC_IS40(pi->radio_chanspec))
27065 wlc_phy_rfctrl_override_nphy_rev7(
27069 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27071 wlc_phy_rfctrl_override_nphy_rev7(
27075 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27077 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
27079 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27080 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
27081 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27083 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
27086 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
27088 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27090 wlc_phy_rfctrlintc_override_nphy(pi,
27091 NPHY_RfctrlIntc_override_TRSW,
27095 if (rx_core == PHY_CORE_0) {
27103 wlc_phy_rfctrlintc_override_nphy(pi,
27104 NPHY_RfctrlIntc_override_TRSW,
27105 rx_antval, rx_core + 1);
27106 wlc_phy_rfctrlintc_override_nphy(pi,
27107 NPHY_RfctrlIntc_override_TRSW,
27108 tx_antval, tx_core + 1);
27112 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
27115 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
27116 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
27117 pi->tx_rx_cal_phy_saveregs[1]);
27118 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
27119 pi->tx_rx_cal_phy_saveregs[2]);
27120 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
27121 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
27123 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
27124 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
27125 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
27126 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
27127 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27128 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
27129 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
27130 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
27131 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
27134 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
27135 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
27139 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
27140 u16 *rxgain, u8 cal_type)
27144 struct phy_iq_est est[PHY_CORE_MAX];
27146 struct nphy_iq_comp save_comp, zero_comp;
27147 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0,
27148 thresh_pwr = 10000;
27149 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
27150 bool gainctrl_done = false;
27151 u8 mix_tia_gain = 3;
27152 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
27153 s8 curr_gaintbl_index = 3;
27154 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
27155 const struct nphy_ipa_txrxgain *nphy_rxcal_gaintbl;
27156 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
27159 u16 nphy_rxcal_txgain[2];
27161 if (NREV_GE(pi->pubpi.phy_rev, 7))
27164 tx_core = 1 - rx_core;
27167 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
27169 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
27170 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
27171 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
27173 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27174 if (NREV_GE(pi->pubpi.phy_rev, 7))
27176 else if (NREV_GE(pi->pubpi.phy_rev, 4))
27180 if (NREV_GE(pi->pubpi.phy_rev, 7))
27181 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
27183 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
27185 if (NREV_GE(pi->pubpi.phy_rev, 7))
27186 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
27188 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
27193 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
27194 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
27195 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
27196 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
27197 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
27198 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
27199 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
27201 if (NREV_GE(pi->pubpi.phy_rev, 7))
27202 wlc_phy_rfctrl_override_1tomany_nphy(
27204 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27205 ((lpf_biq1 << 12) |
27207 (mix_tia_gain << 4) | (lna2 << 2)
27210 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27214 (mix_tia_gain << 4) |
27215 (lna2 << 2) | lna1), 0x3,
27218 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
27220 if (txpwrindex == -1) {
27221 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
27222 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
27223 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
27225 nphy_rxcal_txgain);
27227 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
27231 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
27232 NPHY_RXCAL_TONEFREQ_40MHz :
27233 NPHY_RXCAL_TONEFREQ_20MHz,
27234 NPHY_RXCAL_TONEAMP, 0, cal_type, false);
27236 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27237 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
27238 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
27239 curr_pwr = i_pwr + q_pwr;
27241 switch (gainctrl_dirn) {
27242 case NPHY_RXCAL_GAIN_INIT:
27243 if (curr_pwr > thresh_pwr) {
27244 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
27245 prev_gaintbl_index = curr_gaintbl_index;
27246 curr_gaintbl_index--;
27248 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
27249 prev_gaintbl_index = curr_gaintbl_index;
27250 curr_gaintbl_index++;
27254 case NPHY_RXCAL_GAIN_UP:
27255 if (curr_pwr > thresh_pwr) {
27256 gainctrl_done = true;
27257 optim_pwr = prev_pwr;
27258 optim_gaintbl_index = prev_gaintbl_index;
27260 prev_gaintbl_index = curr_gaintbl_index;
27261 curr_gaintbl_index++;
27265 case NPHY_RXCAL_GAIN_DOWN:
27266 if (curr_pwr > thresh_pwr) {
27267 prev_gaintbl_index = curr_gaintbl_index;
27268 curr_gaintbl_index--;
27270 gainctrl_done = true;
27271 optim_pwr = curr_pwr;
27272 optim_gaintbl_index = curr_gaintbl_index;
27280 if ((curr_gaintbl_index < 0) ||
27281 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
27282 gainctrl_done = true;
27283 optim_pwr = curr_pwr;
27284 optim_gaintbl_index = prev_gaintbl_index;
27286 prev_pwr = curr_pwr;
27289 wlc_phy_stopplayback_nphy(pi);
27290 } while (!gainctrl_done);
27292 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
27293 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
27294 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
27295 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
27296 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
27297 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
27299 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
27300 delta_pwr = desired_log2_pwr - actual_log2_pwr;
27302 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27303 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
27305 if (fine_gain_idx + (int)lpf_biq0 > 10)
27306 lpf_biq1 = 10 - lpf_biq0;
27308 lpf_biq1 = (u16) max(fine_gain_idx, 0);
27310 wlc_phy_rfctrl_override_1tomany_nphy(
27312 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27313 ((lpf_biq1 << 12) |
27315 (mix_tia_gain << 4) |
27316 (lna2 << 2) | lna1), 0x3,
27319 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
27320 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27324 (mix_tia_gain << 4) |
27329 if (rxgain != NULL) {
27332 *rxgain++ = mix_tia_gain;
27333 *rxgain++ = lpf_biq0;
27334 *rxgain++ = lpf_biq1;
27338 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
27342 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
27345 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
27349 wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
27351 u32 target_bws[2] = { 9500, 21000 };
27352 u32 ref_tones[2] = { 3000, 6000 };
27353 u32 target_bw, ref_tone;
27355 u32 target_pwr_ratios[2] = { 28606, 18468 };
27356 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
27358 u16 start_rccal_ovr_val = 128;
27359 u16 txlpf_rccal_lpc_ovr_val = 128;
27360 u16 rxlpf_rccal_hpc_ovr_val = 159;
27362 u16 orig_txlpf_rccal_lpc_ovr_val;
27363 u16 orig_rxlpf_rccal_hpc_ovr_val;
27364 u16 radio_addr_offset_rx;
27365 u16 radio_addr_offset_tx;
27367 u16 orig_RxStrnFilt40Num[6];
27368 u16 orig_RxStrnFilt40Den[4];
27369 u16 orig_rfctrloverride[2];
27370 u16 orig_rfctrlauxreg[2];
27371 u16 orig_rfctrlrssiothers;
27374 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
27375 u16 lpf_hpc = 7, hpvga_hpc = 7;
27378 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
27379 u32 ref_iq_vals = 0, target_iq_vals = 0;
27380 u16 num_samps, log_num_samps = 10;
27381 struct phy_iq_est est[PHY_CORE_MAX];
27383 if (NREV_GE(pi->pubpi.phy_rev, 7))
27386 num_samps = (1 << log_num_samps);
27388 if (CHSPEC_IS40(pi->radio_chanspec)) {
27389 target_bw = target_bws[1];
27390 target_pwr_ratio = target_pwr_ratios[1];
27391 ref_tone = ref_tones[1];
27392 rx_lpf_bw = rx_lpf_bws[1];
27394 target_bw = target_bws[0];
27395 target_pwr_ratio = target_pwr_ratios[0];
27396 ref_tone = ref_tones[0];
27397 rx_lpf_bw = rx_lpf_bws[0];
27400 if (core_idx == 0) {
27401 radio_addr_offset_rx = RADIO_2056_RX0;
27402 radio_addr_offset_tx =
27403 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
27405 radio_addr_offset_rx = RADIO_2056_RX1;
27406 radio_addr_offset_tx =
27407 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
27410 orig_txlpf_rccal_lpc_ovr_val =
27412 (RADIO_2056_TX_TXLPF_RCCAL |
27413 radio_addr_offset_tx));
27414 orig_rxlpf_rccal_hpc_ovr_val =
27416 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27417 radio_addr_offset_rx));
27419 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
27421 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
27422 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
27423 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
27424 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
27425 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
27426 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
27427 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
27428 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
27429 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
27430 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
27432 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
27433 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
27434 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
27435 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
27436 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
27438 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27439 txlpf_rccal_lpc_ovr_val);
27441 write_radio_reg(pi,
27442 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27443 rxlpf_rccal_hpc_ovr_val);
27445 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
27447 write_phy_reg(pi, 0x267, 0x02d4);
27448 write_phy_reg(pi, 0x268, 0x0000);
27449 write_phy_reg(pi, 0x269, 0x0000);
27450 write_phy_reg(pi, 0x26a, 0x0000);
27451 write_phy_reg(pi, 0x26b, 0x0000);
27452 write_phy_reg(pi, 0x26c, 0x02d4);
27453 write_phy_reg(pi, 0x26d, 0x0000);
27454 write_phy_reg(pi, 0x26e, 0x0000);
27455 write_phy_reg(pi, 0x26f, 0x0000);
27456 write_phy_reg(pi, 0x270, 0x0000);
27458 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
27459 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
27460 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
27461 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
27463 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
27464 (0x7 << 10), (tx_lpf_bw << 10));
27465 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27466 (0x7 << 0), (hpvga_hpc << 0));
27467 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27468 (0x7 << 4), (lpf_hpc << 4));
27469 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
27470 (0x7 << 8), (rx_lpf_bw << 8));
27472 rccal_stepsize = 16;
27473 rccal_val = start_rccal_ovr_val + rccal_stepsize;
27475 while (rccal_stepsize >= 0) {
27476 write_radio_reg(pi,
27477 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27478 radio_addr_offset_rx), rccal_val);
27480 if (rccal_stepsize == 16) {
27482 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
27486 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27490 max_t(u32, (est[0].i_pwr +
27492 (log_num_samps + 1),
27496 max_t(u32, (est[1].i_pwr +
27498 (log_num_samps + 1),
27501 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
27506 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27509 target_iq_vals = (est[0].i_pwr + est[0].q_pwr) >>
27510 (log_num_samps + 1);
27514 est[1].q_pwr) >> (log_num_samps + 1);
27516 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
27518 if (rccal_stepsize == 0)
27520 else if (rccal_stepsize == 1) {
27521 last_rccal_val = rccal_val;
27522 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
27523 last_pwr_ratio = pwr_ratio;
27526 rccal_stepsize = (rccal_stepsize >> 1);
27527 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
27528 rccal_stepsize : (-rccal_stepsize));
27531 if (rccal_stepsize == -1) {
27533 (abs((int)last_pwr_ratio -
27534 (int)target_pwr_ratio) <
27535 abs((int)pwr_ratio -
27536 (int)target_pwr_ratio)) ? last_rccal_val :
27539 if (CHSPEC_IS40(pi->radio_chanspec)) {
27540 if ((best_rccal_val > 140)
27541 || (best_rccal_val < 135))
27542 best_rccal_val = 138;
27544 if ((best_rccal_val > 142)
27545 || (best_rccal_val < 137))
27546 best_rccal_val = 140;
27549 write_radio_reg(pi,
27550 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27551 radio_addr_offset_rx), best_rccal_val);
27555 wlc_phy_stopplayback_nphy(pi);
27557 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27558 orig_txlpf_rccal_lpc_ovr_val);
27559 write_radio_reg(pi,
27560 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27561 orig_rxlpf_rccal_hpc_ovr_val);
27563 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
27565 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
27566 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
27567 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
27568 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
27569 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
27570 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
27571 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
27572 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
27573 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
27574 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
27576 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
27577 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
27578 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
27579 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
27580 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
27582 pi->nphy_anarxlpf_adjusted = false;
27584 return best_rccal_val - 0x80;
27587 #define WAIT_FOR_SCOPE 4000
27588 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
27589 struct nphy_txgains target_gain,
27590 u8 cal_type, bool debug)
27593 u8 core_no, rx_core;
27597 struct nphy_iqcal_params cal_params[2];
27599 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
27601 bool phyhang_avoid_state = false;
27602 bool skip_rxiqcal = false;
27604 orig_BBConfig = read_phy_reg(pi, 0x01);
27605 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27607 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27609 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
27610 phyhang_avoid_state = pi->phyhang_avoid;
27611 pi->phyhang_avoid = false;
27614 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27616 for (core_no = 0; core_no <= 1; core_no++) {
27617 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27618 &cal_params[core_no]);
27619 cal_gain[core_no] = cal_params[core_no].cal_gain;
27622 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27624 rxcore_state = wlc_phy_rxcore_getstate_nphy(
27625 (struct brcms_phy_pub *) pi);
27627 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27630 ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
27632 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
27634 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
27636 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
27638 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
27640 wlc_phy_tx_tone_nphy(pi,
27642 pi->radio_chanspec)) ?
27643 NPHY_RXCAL_TONEFREQ_40MHz :
27644 NPHY_RXCAL_TONEFREQ_20MHz,
27645 NPHY_RXCAL_TONEAMP, 0, cal_type,
27649 mdelay(WAIT_FOR_SCOPE);
27651 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
27652 wlc_phy_stopplayback_nphy(pi);
27655 if (((cal_type == 1) || (cal_type == 2))
27656 && NREV_LT(pi->pubpi.phy_rev, 7)) {
27658 if (rx_core == PHY_CORE_1) {
27660 if (rxcore_state == 1)
27661 wlc_phy_rxcore_setstate_nphy(
27662 (struct brcms_phy_pub *) pi, 3);
27664 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
27667 best_rccal[rx_core] =
27668 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
27669 pi->nphy_rccal_value = best_rccal[rx_core];
27671 if (rxcore_state == 1)
27672 wlc_phy_rxcore_setstate_nphy(
27673 (struct brcms_phy_pub *) pi,
27678 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
27680 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
27681 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27684 if ((cal_type == 1) || (cal_type == 2)) {
27686 best_rccal[0] = best_rccal[1];
27687 write_radio_reg(pi,
27688 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27689 RADIO_2056_RX0), (best_rccal[0] | 0x80));
27691 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27693 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
27694 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
27698 (pi->bw == WL_CHANSPEC_BW_40) ? 24 : 12;
27699 txlpf_idac = (pi->bw == WL_CHANSPEC_BW_40) ?
27701 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
27702 TXLPF_IDAC_4, txlpf_idac);
27705 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31),
27707 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31),
27710 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27712 PHY_CORE_0) ? RADIO_2056_RX0 :
27714 (rxlpf_rccal_hpc | 0x80));
27716 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
27718 PHY_CORE_0) ? RADIO_2056_TX0 :
27720 (txlpf_rccal_lpc | 0x80));
27724 write_phy_reg(pi, 0x01, orig_BBConfig);
27726 wlc_phy_resetcca_nphy(pi);
27728 if (NREV_GE(pi->pubpi.phy_rev, 7))
27729 wlc_phy_rfctrl_override_1tomany_nphy(
27731 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27734 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
27736 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27738 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27741 if (NREV_GE(pi->pubpi.phy_rev, 4))
27742 pi->phyhang_avoid = phyhang_avoid_state;
27744 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27750 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
27751 struct nphy_txgains target_gain, bool debug)
27753 struct phy_iq_est est[PHY_CORE_MAX];
27754 u8 core_num, rx_core, tx_core;
27755 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
27756 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
27757 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
27758 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
27759 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
27760 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
27761 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
27763 u32 i_pwr, q_pwr, tot_pwr[3];
27764 u8 gain_pass, use_hpf_num;
27765 u16 mask, val1, val2;
27769 struct nphy_iqcal_params cal_params[2];
27772 bool first_playtone = true;
27774 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27776 if (NREV_LT(pi->pubpi.phy_rev, 2))
27777 wlc_phy_reapply_txcal_coeffs_nphy(pi);
27779 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27781 for (core_no = 0; core_no <= 1; core_no++) {
27782 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27783 &cal_params[core_no]);
27784 cal_gain[core_no] = cal_params[core_no].cal_gain;
27787 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27790 desired_log2_pwr = 13;
27792 for (core_num = 0; core_num < 2; core_num++) {
27794 rx_core = core_num;
27795 tx_core = 1 - core_num;
27797 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
27798 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27800 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
27801 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27803 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
27806 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27807 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27809 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27810 ((0x1 << 1) | (0x1 << 2)));
27811 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
27813 if (((pi->nphy_rxcalparams) & 0xff000000))
27815 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27816 (CHSPEC_IS5G(pi->radio_chanspec) ?
27820 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27821 (CHSPEC_IS5G(pi->radio_chanspec) ?
27824 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
27825 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
27828 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
27829 if (rx_core == PHY_CORE_0) {
27830 val1 = RADIO_2055_COUPLE_RX_MASK;
27831 val2 = RADIO_2055_COUPLE_TX_MASK;
27833 val1 = RADIO_2055_COUPLE_TX_MASK;
27834 val2 = RADIO_2055_COUPLE_RX_MASK;
27837 if ((pi->nphy_rxcalparams & 0x10000)) {
27838 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
27840 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
27844 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
27847 mdelay(WAIT_FOR_SCOPE);
27849 if (gain_pass < 3) {
27850 curr_lna = lna_vals[gain_pass];
27851 curr_hpf1 = hpf1_vals[gain_pass];
27852 curr_hpf2 = hpf2_vals[gain_pass];
27855 if (tot_pwr[1] > 10000) {
27856 curr_lna = lna_vals[2];
27857 curr_hpf1 = hpf1_vals[2];
27858 curr_hpf2 = hpf2_vals[2];
27860 curr_hpf = curr_hpf1;
27862 wlc_phy_nbits(tot_pwr[2]);
27864 if (tot_pwr[0] > 10000) {
27865 curr_lna = lna_vals[1];
27866 curr_hpf1 = hpf1_vals[1];
27867 curr_hpf2 = hpf2_vals[1];
27869 curr_hpf = curr_hpf1;
27874 curr_lna = lna_vals[0];
27875 curr_hpf1 = hpf1_vals[0];
27876 curr_hpf2 = hpf2_vals[0];
27878 curr_hpf = curr_hpf2;
27885 hpf_change = desired_log2_pwr - actual_log2_pwr;
27886 curr_hpf += hpf_change;
27887 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
27888 if (use_hpf_num == 1)
27889 curr_hpf1 = curr_hpf;
27891 curr_hpf2 = curr_hpf;
27894 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
27895 ((curr_hpf2 << 8) |
27897 (curr_lna << 2)), 0x3, 0);
27898 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27900 wlc_phy_stopplayback_nphy(pi);
27902 if (first_playtone) {
27903 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
27904 (u16) (pi->nphy_rxcalparams &
27905 0xffff), 0, 0, true);
27906 first_playtone = false;
27908 phy_bw = (CHSPEC_IS40(pi->radio_chanspec)) ?
27910 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
27914 if (bcmerror == 0) {
27915 if (gain_pass < 3) {
27917 wlc_phy_rx_iq_est_nphy(pi, est,
27920 i_pwr = (est[rx_core].i_pwr +
27921 num_samps / 2) / num_samps;
27922 q_pwr = (est[rx_core].q_pwr +
27923 num_samps / 2) / num_samps;
27924 tot_pwr[gain_pass] = i_pwr + q_pwr;
27927 wlc_phy_calc_rx_iq_comp_nphy(pi,
27932 wlc_phy_stopplayback_nphy(pi);
27939 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
27940 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
27942 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
27943 0x92, orig_RfctrlIntcTx);
27944 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
27945 0x92, orig_RfctrlIntcRx);
27946 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
27947 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
27948 0xa7, orig_AfectrlCore);
27949 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
27955 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
27956 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27958 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27961 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27967 wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
27968 u8 cal_type, bool debug)
27970 if (NREV_GE(pi->pubpi.phy_rev, 7))
27973 if (NREV_GE(pi->pubpi.phy_rev, 3))
27974 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
27977 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
27980 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
27984 u16 rad_gain, dac_gain, bbmult, m1m2;
27985 u8 txpi[2], chan_freq_range;
27988 if (pi->phyhang_avoid)
27989 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27991 if (pi->sh->sromrev < 4) {
27992 txpi[0] = txpi[1] = 72;
27995 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27996 switch (chan_freq_range) {
27997 case WL_CHAN_FREQ_RANGE_2G:
27998 txpi[0] = pi->nphy_txpid2g[0];
27999 txpi[1] = pi->nphy_txpid2g[1];
28001 case WL_CHAN_FREQ_RANGE_5GL:
28002 txpi[0] = pi->nphy_txpid5gl[0];
28003 txpi[1] = pi->nphy_txpid5gl[1];
28005 case WL_CHAN_FREQ_RANGE_5GM:
28006 txpi[0] = pi->nphy_txpid5g[0];
28007 txpi[1] = pi->nphy_txpid5g[1];
28009 case WL_CHAN_FREQ_RANGE_5GH:
28010 txpi[0] = pi->nphy_txpid5gh[0];
28011 txpi[1] = pi->nphy_txpid5gh[1];
28014 txpi[0] = txpi[1] = 91;
28019 if (NREV_GE(pi->pubpi.phy_rev, 7))
28020 txpi[0] = txpi[1] = 30;
28021 else if (NREV_GE(pi->pubpi.phy_rev, 3))
28022 txpi[0] = txpi[1] = 40;
28024 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
28026 if ((txpi[0] < 40) || (txpi[0] > 100) ||
28027 (txpi[1] < 40) || (txpi[1] > 100))
28028 txpi[0] = txpi[1] = 91;
28031 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
28032 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
28033 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
28034 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
28036 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28037 uint phyrev = pi->pubpi.phy_rev;
28039 if (NREV_GE(phyrev, 3)) {
28042 wlc_phy_get_ipa_gaintbl_nphy(pi);
28043 txgain = tx_gaintbl[txpi[core]];
28045 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28046 if (NREV_IS(phyrev, 3)) {
28048 nphy_tpc_5GHz_txgain_rev3
28050 } else if (NREV_IS(phyrev, 4)) {
28052 pi->srom_fem5g.extpagain ==
28054 nphy_tpc_5GHz_txgain_HiPwrEPA
28056 nphy_tpc_5GHz_txgain_rev4
28060 nphy_tpc_5GHz_txgain_rev5
28064 if (NREV_GE(phyrev, 5) &&
28065 (pi->srom_fem2g.extpagain == 3)) {
28067 nphy_tpc_txgain_HiPwrEPA
28070 txgain = nphy_tpc_txgain_rev3
28076 txgain = nphy_tpc_txgain[txpi[core]];
28079 if (NREV_GE(phyrev, 3))
28080 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
28082 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
28084 if (NREV_GE(phyrev, 7))
28085 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
28087 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28089 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28091 if (NREV_GE(phyrev, 3))
28092 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28093 0xa5), (0x1 << 8), (0x1 << 8));
28095 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28097 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
28099 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28102 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28103 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28104 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
28105 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28108 wlc_phy_table_read_nphy(pi,
28111 NPHY_TBL_ID_CORE1TXPWRCTL :
28112 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
28113 576 + txpi[core], 32,
28116 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28117 0x29b, (0x1ff << 4),
28118 ((s16) rfpwr_offset) << 4);
28120 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28121 0x29b, (0x1 << 2), (1) << 2);
28126 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
28128 if (pi->phyhang_avoid)
28129 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28133 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
28134 u8 tmp_max_pwr, u8 rate_start,
28138 u8 word_num, nibble_num;
28141 for (rate = rate_start; rate <= rate_end; rate++) {
28142 word_num = (rate - rate_start) >> 2;
28143 nibble_num = (rate - rate_start) & 0x3;
28144 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
28146 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
28151 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
28152 u8 rate_start, u8 rate_end)
28156 for (rate = rate_start; rate <= rate_end; rate++)
28157 srom_max[rate] -= 2 * pwr_offset;
28161 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
28162 u8 rate_mcs_end, u8 rate_ofdm_start)
28166 rate2 = rate_ofdm_start;
28167 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
28168 power[rate1] = power[rate2];
28169 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
28171 power[rate_mcs_end] = power[rate_mcs_end - 1];
28175 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
28176 u8 rate_ofdm_end, u8 rate_mcs_start)
28180 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
28181 rate1 <= rate_ofdm_end; rate1++, rate2++) {
28182 power[rate1] = power[rate2];
28183 if (rate1 == rate_ofdm_start)
28184 power[++rate1] = power[rate2];
28188 void wlc_phy_txpwr_apply_nphy(struct brcms_phy *pi)
28190 uint rate1, rate2, band_num;
28191 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
28192 u8 tmp_max_pwr = 0;
28193 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
28194 u8 *tx_srom_max_rate = NULL;
28196 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
28198 switch (band_num) {
28201 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
28202 pi->nphy_pwrctrl_info[1].max_pwr_2g);
28204 pwr_offsets1[0] = pi->cck2gpo;
28205 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
28211 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
28213 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
28215 pwr_offsets2 = pi->mcs2gpo;
28217 tmp_cddpo = pi->cdd2gpo;
28218 tmp_stbcpo = pi->stbc2gpo;
28219 tmp_bw40po = pi->bw402gpo;
28221 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
28225 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
28226 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
28228 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
28230 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
28232 pwr_offsets2 = pi->mcs5gpo;
28234 tmp_cddpo = pi->cdd5gpo;
28235 tmp_stbcpo = pi->stbc5gpo;
28236 tmp_bw40po = pi->bw405gpo;
28238 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
28242 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
28243 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
28245 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
28247 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
28249 pwr_offsets2 = pi->mcs5glpo;
28251 tmp_cddpo = pi->cdd5glpo;
28252 tmp_stbcpo = pi->stbc5glpo;
28253 tmp_bw40po = pi->bw405glpo;
28255 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
28259 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
28260 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
28262 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
28264 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
28266 pwr_offsets2 = pi->mcs5ghpo;
28268 tmp_cddpo = pi->cdd5ghpo;
28269 tmp_stbcpo = pi->stbc5ghpo;
28270 tmp_bw40po = pi->bw405ghpo;
28272 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
28276 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
28277 tmp_max_pwr, TXP_FIRST_OFDM,
28280 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
28281 TXP_FIRST_MCS_20_SISO,
28282 TXP_LAST_MCS_20_SISO,
28285 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28287 TXP_FIRST_MCS_20_CDD,
28288 TXP_LAST_MCS_20_CDD);
28290 if (NREV_GE(pi->pubpi.phy_rev, 3))
28291 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28292 TXP_FIRST_MCS_20_CDD,
28293 TXP_LAST_MCS_20_CDD);
28295 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28296 TXP_FIRST_OFDM_20_CDD,
28297 TXP_LAST_OFDM_20_CDD,
28298 TXP_FIRST_MCS_20_CDD);
28300 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28302 TXP_FIRST_MCS_20_STBC,
28303 TXP_LAST_MCS_20_STBC);
28305 if (NREV_GE(pi->pubpi.phy_rev, 3))
28306 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28308 TXP_FIRST_MCS_20_STBC,
28309 TXP_LAST_MCS_20_STBC);
28311 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28312 &pwr_offsets2[2], tmp_max_pwr,
28313 TXP_FIRST_MCS_20_SDM,
28314 TXP_LAST_MCS_20_SDM);
28316 if (NPHY_IS_SROM_REINTERPRET) {
28318 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28321 TXP_FIRST_MCS_40_SISO,
28322 TXP_LAST_MCS_40_SISO);
28324 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28325 TXP_FIRST_OFDM_40_SISO,
28326 TXP_LAST_OFDM_40_SISO,
28327 TXP_FIRST_MCS_40_SISO);
28329 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28332 TXP_FIRST_MCS_40_CDD,
28333 TXP_LAST_MCS_40_CDD);
28335 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28336 TXP_FIRST_MCS_40_CDD,
28337 TXP_LAST_MCS_40_CDD);
28339 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28340 TXP_FIRST_OFDM_40_CDD,
28341 TXP_LAST_OFDM_40_CDD,
28342 TXP_FIRST_MCS_40_CDD);
28344 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28347 TXP_FIRST_MCS_40_STBC,
28348 TXP_LAST_MCS_40_STBC);
28350 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28352 TXP_FIRST_MCS_40_STBC,
28353 TXP_LAST_MCS_40_STBC);
28355 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28358 TXP_FIRST_MCS_40_SDM,
28359 TXP_LAST_MCS_40_SDM);
28362 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
28364 rate1 <= TXP_LAST_MCS_40_SDM;
28366 tx_srom_max_rate[rate1] =
28367 tx_srom_max_rate[rate2];
28370 if (NREV_GE(pi->pubpi.phy_rev, 3))
28371 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28373 TXP_FIRST_OFDM_40_SISO,
28374 TXP_LAST_MCS_40_SDM);
28376 tx_srom_max_rate[TXP_MCS_32] =
28377 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
28383 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy *pi)
28385 u8 tx_pwr_ctrl_state;
28386 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28387 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28389 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28391 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28392 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28393 (void)R_REG(&pi->regs->maccontrol);
28397 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28399 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28400 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28403 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
28405 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28406 (0x1 << 14) | (0x1 << 13));
28409 u16 wlc_phy_txpwr_idx_get_nphy(struct brcms_phy *pi)
28414 if (wlc_phy_txpwr_ison_nphy(pi)) {
28415 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28416 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28418 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28420 tmp = ((pi->nphy_txpwrindex[PHY_CORE_0].index_internal & 0xff)
28422 (pi->nphy_txpwrindex[PHY_CORE_1].index_internal & 0xff);
28428 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
28431 && (pi->nphy_force_papd_cal
28432 || (wlc_phy_txpwr_ison_nphy(pi)
28435 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28436 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28438 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28439 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4)))))
28440 wlc_phy_a4(pi, true);
28443 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
28445 u16 mask = 0, val = 0, ishw = 0;
28452 if (pi->phyhang_avoid)
28453 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28455 switch (ctrl_type) {
28456 case PHY_TPC_HW_OFF:
28457 case PHY_TPC_HW_ON:
28458 pi->nphy_txpwrctrl = ctrl_type;
28464 if (ctrl_type == PHY_TPC_HW_OFF) {
28465 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28467 if (wlc_phy_txpwr_ison_nphy(pi)) {
28468 for (core = 0; core < pi->pubpi.phy_corenum;
28470 pi->nphy_txpwr_idx[core] =
28471 wlc_phy_txpwr_idx_cur_get_nphy(
28480 for (ctr = 0; ctr < tbl_len; ctr++)
28482 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28484 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28487 if (NREV_GE(pi->pubpi.phy_rev, 3))
28488 and_phy_reg(pi, 0x1e7,
28489 (u16) (~((0x1 << 15) |
28490 (0x1 << 14) | (0x1 << 13))));
28492 and_phy_reg(pi, 0x1e7,
28493 (u16) (~((0x1 << 14) | (0x1 << 13))));
28495 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28496 or_phy_reg(pi, 0x8f, (0x1 << 8));
28497 or_phy_reg(pi, 0xa5, (0x1 << 8));
28499 or_phy_reg(pi, 0xa5, (0x1 << 14));
28502 if (NREV_IS(pi->pubpi.phy_rev, 2))
28503 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28504 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28505 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28507 if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28508 pi->bw == WL_CHANSPEC_BW_40)
28509 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28510 MHF1_IQSWAP_WAR, BRCM_BAND_ALL);
28514 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28515 8, pi->adj_pwr_tbl_nphy);
28516 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28517 8, pi->adj_pwr_tbl_nphy);
28519 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28520 mask = (0x1 << 14) | (0x1 << 13);
28521 val = (ishw << 14) | (ishw << 13);
28523 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28524 mask |= (0x1 << 15);
28525 val |= (ishw << 15);
28528 mod_phy_reg(pi, 0x1e7, mask, val);
28530 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28531 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28532 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28533 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28535 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28536 if (NREV_GT(pi->pubpi.phy_rev, 1))
28537 mod_phy_reg(pi, 0x222,
28538 (0xff << 0), 0x64);
28542 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28543 if ((pi->nphy_txpwr_idx[0] != 128)
28544 && (pi->nphy_txpwr_idx[1] != 128))
28545 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28554 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28555 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28556 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28558 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28561 if (NREV_IS(pi->pubpi.phy_rev, 2))
28562 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28563 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28564 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28566 if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28567 pi->bw == WL_CHANSPEC_BW_40)
28568 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28569 0x0, BRCM_BAND_ALL);
28572 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28573 0x29b, (0x1 << 2), (0) << 2);
28575 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28576 0x29b, (0x1 << 2), (0) << 2);
28582 if (pi->phyhang_avoid)
28583 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28587 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28590 u8 core, txpwrctl_tbl;
28591 u16 tx_ind0, iq_ind0, lo_ind0;
28594 u16 rad_gain, dac_gain;
28597 u16 iqcomp_a, iqcomp_b;
28600 u8 tx_pwr_ctrl_state;
28604 if (pi->phyhang_avoid)
28605 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28611 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28613 if ((core_mask & (1 << core)) == 0)
28616 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28618 if (txpwrindex < 0) {
28619 if (pi->nphy_txpwrindex[core].index < 0)
28622 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28623 mod_phy_reg(pi, 0x8f,
28625 pi->nphy_txpwrindex[core].
28627 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28628 pi->nphy_txpwrindex[core].
28631 mod_phy_reg(pi, 0xa5,
28633 pi->nphy_txpwrindex[core].
28637 write_phy_reg(pi, (core == PHY_CORE_0) ?
28639 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28641 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28642 &pi->nphy_txpwrindex[core].
28645 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28646 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28647 m1m2 |= ((core == PHY_CORE_0) ?
28648 (pi->nphy_txpwrindex[core].bbmult << 8) :
28649 (pi->nphy_txpwrindex[core].bbmult << 0));
28650 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28652 if (restore_cals) {
28653 wlc_phy_table_write_nphy(
28654 pi, 15, 2, (80 + 2 * core), 16,
28655 &pi->nphy_txpwrindex[core].iqcomp_a);
28656 wlc_phy_table_write_nphy(
28657 pi, 15, 1, (85 + core), 16,
28658 &pi->nphy_txpwrindex[core].locomp);
28659 wlc_phy_table_write_nphy(
28660 pi, 15, 1, (93 + core), 16,
28661 &pi->nphy_txpwrindex[core].locomp);
28664 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
28666 pi->nphy_txpwrindex[core].index_internal =
28667 pi->nphy_txpwrindex[core].index_internal_save;
28670 if (pi->nphy_txpwrindex[core].index < 0) {
28672 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28673 mod_phy_reg(pi, 0x8f,
28675 pi->nphy_txpwrindex[core].
28677 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28678 pi->nphy_txpwrindex[core].
28681 pi->nphy_txpwrindex[core].
28683 read_phy_reg(pi, 0xa5);
28686 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28687 read_phy_reg(pi, (core == PHY_CORE_0) ?
28690 wlc_phy_table_read_nphy(pi, 7, 1,
28691 (0x110 + core), 16,
28693 nphy_txpwrindex[core].
28696 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28698 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28700 pi->nphy_txpwrindex[core].bbmult = (u8) tmpval;
28702 wlc_phy_table_read_nphy(pi, 15, 2,
28703 (80 + 2 * core), 16,
28705 nphy_txpwrindex[core].
28708 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28711 nphy_txpwrindex[core].
28714 pi->nphy_txpwrindex[core].index_internal_save =
28715 pi->nphy_txpwrindex[core].
28719 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28720 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
28722 if (NREV_IS(pi->pubpi.phy_rev, 1))
28723 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
28725 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28726 (tx_ind0 + txpwrindex), 32,
28729 if (NREV_GE(pi->pubpi.phy_rev, 3))
28730 rad_gain = (txgain >> 16) &
28731 ((1 << (32 - 16 + 1)) - 1);
28733 rad_gain = (txgain >> 16) &
28734 ((1 << (28 - 16 + 1)) - 1);
28736 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28737 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28739 if (NREV_GE(pi->pubpi.phy_rev, 3))
28740 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28741 0xa5), (0x1 << 8), (0x1 << 8));
28743 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28745 write_phy_reg(pi, (core == PHY_CORE_0) ?
28746 0xaa : 0xab, dac_gain);
28748 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28751 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28752 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28753 m1m2 |= ((core == PHY_CORE_0) ?
28754 (bbmult << 8) : (bbmult << 0));
28756 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28758 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28759 (iq_ind0 + txpwrindex), 32,
28761 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
28762 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
28764 if (restore_cals) {
28765 regval[0] = (u16) iqcomp_a;
28766 regval[1] = (u16) iqcomp_b;
28767 wlc_phy_table_write_nphy(pi, 15, 2,
28768 (80 + 2 * core), 16,
28772 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28773 (lo_ind0 + txpwrindex), 32,
28776 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28779 if (NREV_IS(pi->pubpi.phy_rev, 1))
28780 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28783 wlc_phy_table_read_nphy(pi,
28784 (core == PHY_CORE_0 ?
28785 NPHY_TBL_ID_CORE1TXPWRCTL :
28786 NPHY_TBL_ID_CORE2TXPWRCTL),
28787 1, 576 + txpwrindex, 32,
28790 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28791 0x29b, (0x1ff << 4),
28792 ((s16) rfpwr_offset) << 4);
28794 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28795 0x29b, (0x1 << 2), (1) << 2);
28799 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28802 pi->nphy_txpwrindex[core].index = txpwrindex;
28805 if (pi->phyhang_avoid)
28806 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28810 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
28813 u8 chan_freq_range;
28815 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
28816 switch (chan_freq_range) {
28817 case WL_CHAN_FREQ_RANGE_2G:
28818 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28820 case WL_CHAN_FREQ_RANGE_5GM:
28821 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
28823 case WL_CHAN_FREQ_RANGE_5GL:
28824 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
28826 case WL_CHAN_FREQ_RANGE_5GH:
28827 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
28830 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28837 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
28839 u16 clip_off[] = { 0xffff, 0xffff };
28842 if (pi->nphy_deaf_count == 0) {
28843 pi->classifier_state =
28844 wlc_phy_classifier_nphy(pi, 0, 0);
28845 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
28846 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
28847 wlc_phy_clip_det_nphy(pi, 1, clip_off);
28850 pi->nphy_deaf_count++;
28852 wlc_phy_resetcca_nphy(pi);
28855 pi->nphy_deaf_count--;
28857 if (pi->nphy_deaf_count == 0) {
28858 wlc_phy_classifier_nphy(pi, (0x7 << 0),
28859 pi->classifier_state);
28860 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
28865 void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
28867 wlapi_suspend_mac_and_wait(pi->sh->physhim);
28870 if (pi->nphy_deaf_count == 0)
28871 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28872 } else if (pi->nphy_deaf_count > 0) {
28873 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28876 wlapi_enable_mac(pi->sh->physhim);