2 * Copyright (c) 2010 Broadcom Corporation
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 #include <linux/delay.h>
19 #include <brcm_hw_ids.h>
21 #include <chipcommon.h>
27 #include "phy_radio.h"
31 #define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
32 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
33 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1))
34 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
35 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
36 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1), value);
37 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
38 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value);
40 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
41 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
42 radio_type##_##jspace##1##_##reg_name));
43 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
44 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
45 radio_type##_##jspace##1##_##reg_name), value);
46 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
47 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
48 radio_type##_##reg_name##_##jspace##1));
49 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
50 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
51 radio_type##_##reg_name##_##jspace##1), value);
53 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
54 #define NPHY_ACI_CHANNEL_DELTA 5
55 #define NPHY_ACI_CHANNEL_SKIP 4
56 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
57 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
58 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
59 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
60 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
61 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
63 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
65 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
67 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
69 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
71 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
73 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
75 #define NPHY_NOISE_NOASSOC_ENTER_TH 400
77 #define NPHY_NOISE_ASSOC_ENTER_TH 400
79 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
81 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
82 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
84 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
86 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
88 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
90 #define NPHY_RSSICAL_MAXREAD 31
92 #define NPHY_RSSICAL_NPOLL 8
93 #define NPHY_RSSICAL_MAXD (1<<20)
94 #define NPHY_MIN_RXIQ_PWR 2
96 #define NPHY_RSSICAL_W1_TARGET 25
97 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
98 #define NPHY_RSSICAL_NB_TARGET 0
100 #define NPHY_RSSICAL_W1_TARGET_REV3 29
101 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
103 #define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
104 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
105 #define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
106 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - NPHY_RSSICAL_MAXREAD)
107 #define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
108 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - NPHY_RSSICAL_MAXREAD)
109 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
110 #define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
111 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
112 #define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
113 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
114 #define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
115 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
117 #define NPHY_IQCAL_NUMGAINS 9
118 #define NPHY_N_GCTL 0x66
120 #define NPHY_PAPD_EPS_TBL_SIZE 64
121 #define NPHY_PAPD_SCL_TBL_SIZE 64
122 #define NPHY_NUM_DIG_FILT_COEFFS 15
124 #define NPHY_PAPD_COMP_OFF 0
125 #define NPHY_PAPD_COMP_ON 1
127 #define NPHY_SROM_TEMPSHIFT 32
128 #define NPHY_SROM_MAXTEMPOFFSET 16
129 #define NPHY_SROM_MINTEMPOFFSET -16
131 #define NPHY_CAL_MAXTEMPDELTA 64
133 #define NPHY_NOISEVAR_TBLLEN40 256
134 #define NPHY_NOISEVAR_TBLLEN20 128
136 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
138 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
140 /* 5357 Chip specific ChipControl register bits */
141 #define CCTRL5357_EXTPA (1<<14) /* extPA in ChipControl 1, bit 14 */
142 #define CCTRL5357_ANT_MUX_2o3 (1<<15) /* 2o3 in ChipControl 1, bit 15 */
144 struct nphy_iqcal_params
{
154 struct nphy_txiqcal_ladder
{
159 struct nphy_ipa_txcalgains
{
160 struct nphy_txgains gains
;
165 struct nphy_papd_restore_state
{
176 struct nphy_ipa_txrxgain
{
185 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
187 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz
[] = { {0, 0, 0, 0, 0, 100},
195 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz
[] = { {0, 0, 0, 0, 0, 128},
203 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7
[] = {
204 {0, 0, 0, 0, 0, 100},
212 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7
[] = {
221 #define NPHY_RXCAL_TONEAMP 181
222 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
223 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
226 NPHY_RXCAL_GAIN_INIT
= 0,
231 #define wlc_phy_get_papd_nphy(pi) \
232 (read_phy_reg((pi), 0x1e7) & \
237 #define TXFILT_SHAPING_OFDM20 0
238 #define TXFILT_SHAPING_OFDM40 1
239 #define TXFILT_SHAPING_CCK 2
240 #define TXFILT_DEFAULT_OFDM20 3
241 #define TXFILT_DEFAULT_OFDM40 4
243 u16 NPHY_IPA_REV4_txdigi_filtcoeffs
[][NPHY_NUM_DIG_FILT_COEFFS
] = {
244 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
245 230, -44, 230, 201, -191, 201},
246 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
248 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
249 121, -73, 121, 91, 124, 91},
250 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
251 151, 301, 151, 602, -752, 602},
252 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
253 12, 25, 12, 13, 27, 13},
254 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
255 230, -44, 230, 201, -191, 201},
256 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
257 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
260 struct chan_info_nphy_2055
{
276 u8 RF_core1_lgbuf_a_tune
;
277 u8 RF_core1_lgbuf_g_tune
;
278 u8 RF_core1_rxrf_reg1
;
279 u8 RF_core1_tx_pga_pad_tn
;
280 u8 RF_core1_tx_mx_bgtrim
;
281 u8 RF_core2_lgbuf_a_tune
;
282 u8 RF_core2_lgbuf_g_tune
;
283 u8 RF_core2_rxrf_reg1
;
284 u8 RF_core2_tx_pga_pad_tn
;
285 u8 RF_core2_tx_mx_bgtrim
;
294 struct chan_info_nphy_radio205x
{
297 u8 RF_SYN_pll_vcocal1
;
298 u8 RF_SYN_pll_vcocal2
;
299 u8 RF_SYN_pll_refdiv
;
302 u8 RF_SYN_pll_loopfilter1
;
303 u8 RF_SYN_pll_loopfilter2
;
304 u8 RF_SYN_pll_loopfilter3
;
305 u8 RF_SYN_pll_loopfilter4
;
306 u8 RF_SYN_pll_loopfilter5
;
307 u8 RF_SYN_reserved_addr27
;
308 u8 RF_SYN_reserved_addr28
;
309 u8 RF_SYN_reserved_addr29
;
310 u8 RF_SYN_logen_VCOBUF1
;
311 u8 RF_SYN_logen_MIXER2
;
312 u8 RF_SYN_logen_BUF3
;
313 u8 RF_SYN_logen_BUF4
;
316 u8 RF_TX0_intpaa_boost_tune
;
317 u8 RF_TX0_intpag_boost_tune
;
318 u8 RF_TX0_pada_boost_tune
;
319 u8 RF_TX0_padg_boost_tune
;
320 u8 RF_TX0_pgaa_boost_tune
;
321 u8 RF_TX0_pgag_boost_tune
;
322 u8 RF_TX0_mixa_boost_tune
;
323 u8 RF_TX0_mixg_boost_tune
;
326 u8 RF_TX1_intpaa_boost_tune
;
327 u8 RF_TX1_intpag_boost_tune
;
328 u8 RF_TX1_pada_boost_tune
;
329 u8 RF_TX1_padg_boost_tune
;
330 u8 RF_TX1_pgaa_boost_tune
;
331 u8 RF_TX1_pgag_boost_tune
;
332 u8 RF_TX1_mixa_boost_tune
;
333 u8 RF_TX1_mixg_boost_tune
;
342 struct chan_info_nphy_radio2057
{
345 u8 RF_vcocal_countval0
;
346 u8 RF_vcocal_countval1
;
347 u8 RF_rfpll_refmaster_sparextalsize
;
348 u8 RF_rfpll_loopfilter_r1
;
349 u8 RF_rfpll_loopfilter_c2
;
350 u8 RF_rfpll_loopfilter_c1
;
355 u8 RF_logen_mx2g_tune
;
356 u8 RF_logen_mx5g_tune
;
357 u8 RF_logen_indbuf2g_tune
;
358 u8 RF_logen_indbuf5g_tune
;
359 u8 RF_txmix2g_tune_boost_pu_core0
;
360 u8 RF_pad2g_tune_pus_core0
;
361 u8 RF_pga_boost_tune_core0
;
362 u8 RF_txmix5g_boost_tune_core0
;
363 u8 RF_pad5g_tune_misc_pus_core0
;
364 u8 RF_lna2g_tune_core0
;
365 u8 RF_lna5g_tune_core0
;
366 u8 RF_txmix2g_tune_boost_pu_core1
;
367 u8 RF_pad2g_tune_pus_core1
;
368 u8 RF_pga_boost_tune_core1
;
369 u8 RF_txmix5g_boost_tune_core1
;
370 u8 RF_pad5g_tune_misc_pus_core1
;
371 u8 RF_lna2g_tune_core1
;
372 u8 RF_lna5g_tune_core1
;
381 struct chan_info_nphy_radio2057_rev5
{
384 u8 RF_vcocal_countval0
;
385 u8 RF_vcocal_countval1
;
386 u8 RF_rfpll_refmaster_sparextalsize
;
387 u8 RF_rfpll_loopfilter_r1
;
388 u8 RF_rfpll_loopfilter_c2
;
389 u8 RF_rfpll_loopfilter_c1
;
394 u8 RF_logen_mx2g_tune
;
395 u8 RF_logen_indbuf2g_tune
;
396 u8 RF_txmix2g_tune_boost_pu_core0
;
397 u8 RF_pad2g_tune_pus_core0
;
398 u8 RF_lna2g_tune_core0
;
399 u8 RF_txmix2g_tune_boost_pu_core1
;
400 u8 RF_pad2g_tune_pus_core1
;
401 u8 RF_lna2g_tune_core1
;
410 struct nphy_sfo_cfg
{
419 static struct chan_info_nphy_2055 chan_info_nphy_2055
[] = {
421 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
422 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
423 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
425 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
426 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
427 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
429 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
430 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
431 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
433 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
434 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
435 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
437 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
438 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
439 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
441 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
442 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
443 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
445 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
446 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
447 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
449 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
450 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
451 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
453 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
454 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
455 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
457 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
458 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
459 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
461 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
462 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
463 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
465 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
466 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
467 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
469 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
470 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
471 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
473 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
474 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
475 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
477 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
478 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
479 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
481 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
482 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
483 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
485 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
486 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
487 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
489 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
490 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
491 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
493 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
494 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
495 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
497 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
498 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
499 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
501 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
502 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
503 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
505 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
506 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
507 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
509 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
510 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
511 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
513 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
514 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
515 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
517 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
518 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
519 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
521 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
522 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
523 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
525 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
526 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
527 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
529 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
530 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
531 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
533 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
534 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
535 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
537 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
538 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
539 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
541 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
542 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
543 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
545 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
546 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
547 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
549 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
550 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
551 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
553 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
554 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
555 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
557 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
558 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
559 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
561 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
562 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
563 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
565 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
566 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
567 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
569 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
570 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
571 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
573 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
574 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
575 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
577 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
578 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
579 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
581 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
582 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
583 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
585 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
586 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
587 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
589 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
590 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
591 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
593 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
594 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
595 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
597 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
598 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
599 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
601 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
602 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
603 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
605 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
606 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
607 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
609 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
610 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
611 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
613 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
614 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
615 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
617 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
618 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
619 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
621 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
622 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
623 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
625 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
626 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
627 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
629 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
630 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
631 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
633 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
634 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
635 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
637 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
638 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
639 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
641 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
642 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
643 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
645 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
646 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
647 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
649 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
650 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
651 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
653 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
654 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
655 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
657 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
658 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
659 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
661 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
662 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
663 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
665 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
666 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
667 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
669 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
670 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
671 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
673 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
674 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
675 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
677 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
678 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
679 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
681 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
682 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
683 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
685 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
686 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
687 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
689 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
690 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
691 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
693 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
694 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
695 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
697 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
698 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
699 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
701 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
702 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
703 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
705 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
706 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
707 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
709 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
710 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
711 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
713 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
714 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
715 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
717 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
718 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
719 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
721 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
722 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
723 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
725 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
726 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
727 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
729 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
730 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
731 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
733 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
734 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
735 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
737 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
738 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
739 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
741 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
742 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
743 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
745 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
746 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
747 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
749 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
750 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
751 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
753 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
754 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
755 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
757 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
758 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
759 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
761 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
762 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
763 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
765 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
766 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
767 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
769 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
770 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
771 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
773 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
774 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
775 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
777 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
778 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
779 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
781 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
782 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
783 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
785 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
786 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
787 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
789 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
790 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
791 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
793 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
794 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
795 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
797 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
798 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
799 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
801 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
802 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
803 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
805 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
806 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
807 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
809 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
810 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
811 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
813 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
814 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
815 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
817 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
818 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
819 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
821 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
822 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
823 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
825 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
826 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
827 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
829 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
830 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
831 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
833 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
834 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
835 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
837 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
838 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
839 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
841 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
842 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
843 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
845 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
846 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
847 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
849 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
850 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
851 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
853 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
854 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
855 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
857 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
858 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
859 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
861 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
862 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
863 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
865 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
866 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
867 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
869 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
870 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
871 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
873 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
874 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
875 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
877 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
878 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
879 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
881 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
882 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
883 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
885 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
886 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
887 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
889 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
890 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
891 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
893 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
894 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
895 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
897 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
898 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
899 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
901 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
902 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
903 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
905 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
906 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
907 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
909 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
910 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
911 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
913 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
914 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
915 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
918 static struct chan_info_nphy_radio205x chan_info_nphyrev3_2056
[] = {
920 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
921 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
922 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
923 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
925 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
926 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
927 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
928 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
930 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
931 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
932 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
933 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
935 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
936 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
937 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
938 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
940 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
941 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
942 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
943 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
945 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
946 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
947 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
948 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
950 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
951 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
952 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
953 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
955 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
956 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
957 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
958 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
960 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
961 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
962 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
963 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
965 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
966 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
967 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
968 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
970 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
971 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
972 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
973 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
975 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
976 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
977 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
978 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
980 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
981 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
982 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
983 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
985 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
986 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
987 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
988 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
990 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
991 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
992 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
993 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
995 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
996 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
997 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
998 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1000 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1001 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1002 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1003 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1005 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1006 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1007 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1008 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1010 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1011 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1012 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1013 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1015 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1016 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1017 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1018 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1020 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1021 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1022 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1023 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1025 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1026 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1027 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1028 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1030 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1031 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1032 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1033 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1035 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1036 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1037 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1038 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1040 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1041 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1042 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1043 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1045 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1046 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1047 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1048 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1050 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1051 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1052 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1053 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1055 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1056 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1057 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1058 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1060 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1061 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1062 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1063 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1065 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1066 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1067 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1068 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1070 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1071 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1072 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1073 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1075 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1076 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1077 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1078 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1080 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1081 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1082 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1083 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1085 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1086 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1087 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1088 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1090 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1091 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1092 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1093 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1095 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1096 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1097 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1098 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1100 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1101 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1102 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1103 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1105 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1106 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1107 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1108 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1110 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1111 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1112 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1113 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1115 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1116 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1117 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1118 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1120 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1121 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1122 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1123 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1125 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1126 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1127 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1128 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1130 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1131 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1132 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1133 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1135 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1136 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1137 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1138 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1140 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1141 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1142 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1143 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1145 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1146 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1147 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1148 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1150 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1151 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1152 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1153 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1155 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1156 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1157 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1158 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1160 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1161 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1162 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1163 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1165 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1166 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1167 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1168 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1170 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1171 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1172 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1173 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1175 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1176 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1177 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1178 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1180 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1181 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1182 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1183 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1185 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1186 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1187 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1188 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1190 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1191 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1192 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1193 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1195 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1196 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1197 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1198 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1200 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1201 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1202 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1203 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1205 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1206 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1207 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1208 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1210 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1211 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1212 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1213 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1215 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1216 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1217 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1218 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1220 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1221 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1222 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1223 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1225 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1226 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1227 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1228 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1230 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1231 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1232 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1233 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1235 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1236 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1237 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1238 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1240 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1241 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1242 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1243 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1245 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1246 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1247 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1248 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1250 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1251 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1252 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1253 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1255 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1256 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1257 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1258 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1260 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1261 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1262 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1263 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1265 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1266 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1267 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1268 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1270 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1271 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1272 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1273 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1275 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1276 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1277 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1278 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1280 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1281 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1282 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1283 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1285 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1286 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1287 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1288 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1290 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1291 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1292 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1293 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1295 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1296 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1297 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1298 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1300 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1301 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1302 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1303 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1305 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1306 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1307 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1308 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1310 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1311 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1312 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1313 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1315 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1316 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1317 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1318 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1320 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1321 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1322 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1323 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1325 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1326 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1327 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1328 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1330 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1331 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1332 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1333 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1335 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1336 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1337 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1338 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1340 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1341 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1342 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1343 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1345 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1346 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1347 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1348 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1350 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1351 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1352 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1353 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1355 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1356 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1357 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1358 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1360 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1361 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1362 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1363 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1365 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1366 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1367 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1368 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1370 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1371 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1372 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1373 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1375 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1376 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1377 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1378 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1380 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1381 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1382 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1383 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1385 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1386 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1387 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1388 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1390 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1391 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1392 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1393 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1395 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1396 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1397 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1398 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1400 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1401 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1402 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1403 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1405 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1406 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1407 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1408 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1410 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1411 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1412 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1413 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1415 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1416 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1417 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1418 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1420 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1421 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1422 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1423 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1425 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1426 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1427 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1428 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1430 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1431 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1432 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1433 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1435 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1436 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1437 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1438 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1440 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1441 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1442 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1443 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1445 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1446 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1447 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1448 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1450 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1451 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1452 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1453 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1455 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1456 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1457 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1458 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1460 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1461 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1462 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1463 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1465 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1466 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1467 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1468 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1470 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1471 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1472 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1473 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1475 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1476 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1477 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1478 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1480 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1481 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1482 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1483 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1485 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1486 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1487 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1488 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1490 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1491 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1492 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1493 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1495 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1496 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1497 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1498 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1500 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1501 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1502 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1503 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1505 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1506 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1507 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1508 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1510 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1511 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1512 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1513 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1515 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1516 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1517 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1518 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1520 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1521 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1522 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1523 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1525 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1526 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1527 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1528 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1530 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1531 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1532 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1533 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1535 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1536 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1537 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1538 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1541 static struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1
[] = {
1543 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1544 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1545 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1546 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1548 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1549 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1550 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1551 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1553 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1554 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1555 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1556 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1558 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1559 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1560 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1561 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1563 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1564 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1565 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1566 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1568 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1569 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1570 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1571 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1573 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1574 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1575 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1576 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1578 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1579 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1580 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1581 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1583 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1584 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1585 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1586 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1588 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1589 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1590 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1591 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1593 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1594 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1595 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1596 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1598 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1599 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1600 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1601 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1603 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1604 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1605 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1606 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1608 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1609 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1610 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1611 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1613 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1614 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1615 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1616 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1618 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1619 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1620 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1621 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1623 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1624 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1625 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1626 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1628 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1629 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1630 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1631 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1633 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1634 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1635 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1636 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1638 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1639 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1640 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1641 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1643 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1644 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1645 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1646 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1648 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1649 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1650 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1651 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1653 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1654 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1655 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1656 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1658 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1659 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1660 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1661 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1663 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1664 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1665 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1666 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1668 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1669 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1670 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1671 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1673 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1674 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1675 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1676 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1678 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1679 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1680 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1681 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1683 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1684 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1685 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1686 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1688 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1689 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1690 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1691 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1693 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1694 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1695 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1696 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1698 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1699 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1700 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1701 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1703 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1704 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1705 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1706 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1708 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1709 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1710 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1711 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1713 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1714 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1715 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1716 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1718 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1719 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1720 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1721 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1723 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1724 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1725 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1726 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1728 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1729 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1730 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1731 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1733 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1734 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1735 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1736 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1738 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1739 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1740 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1741 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1743 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1744 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1745 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1746 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1748 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1749 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1750 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1751 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1753 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1754 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1755 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1756 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1758 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1759 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1760 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1761 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1763 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1764 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1765 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1766 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1768 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1769 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1770 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1771 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1773 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1774 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1775 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1776 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1778 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1779 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1780 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1781 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1783 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1784 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1785 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1786 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1788 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1789 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1790 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1791 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1793 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1794 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1795 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1796 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1798 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1799 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1800 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1801 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1803 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1804 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1805 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1806 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1808 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1809 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1810 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1811 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1813 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1814 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1815 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1816 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1818 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1819 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1820 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1821 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1823 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1824 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1825 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1826 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1828 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1829 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1830 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1831 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1833 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1834 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1835 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1836 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1838 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1839 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1840 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1841 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1843 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1844 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1845 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1846 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1848 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1849 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1850 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1851 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1853 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1854 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1855 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1856 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1858 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1859 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1860 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1861 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1863 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1864 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1865 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1866 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1868 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1869 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1870 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1871 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1873 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1874 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1875 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1876 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1878 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1879 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1880 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1881 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1883 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1884 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1885 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1886 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1888 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1889 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1890 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1891 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1893 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1894 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1895 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1896 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1898 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1899 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1900 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1901 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1903 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1904 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1905 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1906 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1908 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1909 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1910 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1911 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1913 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1914 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1915 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1916 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1918 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1919 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1920 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1921 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1923 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1924 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1925 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1926 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1928 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1929 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1930 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1931 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1933 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1934 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1935 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1936 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1938 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1939 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1940 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1941 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1943 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1944 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1945 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1946 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1948 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1949 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1950 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1951 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1953 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1954 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1955 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1956 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1958 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1959 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1960 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1961 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1963 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1964 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1965 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1966 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1968 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1969 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1970 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1971 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1973 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1974 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1975 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1976 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1978 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1979 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1980 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1981 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1983 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1984 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1985 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1986 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1988 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1989 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1990 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1991 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1993 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1994 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1995 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1996 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1998 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1999 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2000 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2001 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2003 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2004 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2005 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2006 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2008 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2009 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2010 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2011 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2013 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2014 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2015 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2016 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2018 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2019 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2020 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2021 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2023 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2024 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2025 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2026 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2028 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2029 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2030 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2031 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2033 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2034 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2035 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2036 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2038 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2039 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2040 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2041 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2043 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2044 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2045 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2046 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2048 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2049 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2050 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2051 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2053 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2054 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2055 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2056 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2058 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2059 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2060 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2061 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2063 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2064 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2065 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2066 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2068 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2069 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2070 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2071 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2073 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2074 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2075 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2076 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2078 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2079 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2080 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2081 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2083 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2084 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2085 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2086 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2088 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2089 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2090 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2091 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2093 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2094 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2095 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2096 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2098 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2099 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2100 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2101 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2103 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2104 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2105 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2106 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2108 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2109 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2110 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2111 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2113 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2114 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2115 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2116 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2118 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2119 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2120 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2121 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2123 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2124 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2125 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2126 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2128 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2129 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2130 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2131 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2133 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2134 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2135 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2136 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2138 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2139 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2140 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2141 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2143 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2144 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2145 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2146 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2148 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2149 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2150 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2151 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2153 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2154 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2155 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2156 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2158 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2159 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2160 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2161 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2164 static struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5
[] = {
2166 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2167 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2168 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2169 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2171 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2172 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2173 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2174 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2176 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2177 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2178 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2179 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2181 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2182 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2183 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2184 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2186 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2187 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2188 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2189 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2191 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2192 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2193 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2194 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2196 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2197 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2198 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2199 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2201 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2202 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2203 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2204 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2206 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2207 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2208 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2209 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2211 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2212 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2213 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2214 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2216 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2217 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2218 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2219 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2221 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2222 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2223 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2224 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2226 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2227 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2228 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2229 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2231 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2232 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2233 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2234 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2236 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2237 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2238 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2239 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2241 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2242 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2243 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2244 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2246 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2247 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2248 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2249 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2251 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2252 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2253 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2254 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2256 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2257 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2258 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2259 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2261 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2262 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2263 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2264 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2266 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2267 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2268 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2269 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2271 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2272 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2273 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2274 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2276 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2277 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2278 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2279 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2281 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2282 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2283 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2284 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2286 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2287 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2288 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2289 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2291 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2292 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2293 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2294 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2296 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2297 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2298 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2299 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2301 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2302 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2303 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2304 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2306 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2307 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2308 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2309 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2311 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2312 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2313 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2314 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2316 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2317 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2318 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2319 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2321 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2322 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2323 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2324 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2326 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2327 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2328 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2329 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2331 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2332 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2333 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2334 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2336 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2337 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2338 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2339 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2341 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2342 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2343 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2344 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2346 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2347 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2348 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2349 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2351 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2352 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2353 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2354 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2356 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2357 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2358 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2359 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2361 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2362 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2363 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2364 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2366 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2367 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2368 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2369 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2371 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2372 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2373 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2374 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2376 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2377 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2378 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2379 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2381 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2382 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2383 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2384 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2386 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2387 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2388 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2389 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2391 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2392 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2393 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2394 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2396 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2397 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2398 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2399 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2401 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2402 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2403 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2404 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2406 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2407 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2408 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2409 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2411 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2412 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2413 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2414 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2416 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2417 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2418 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2419 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2421 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2422 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2423 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2424 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2426 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2427 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2428 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2429 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2431 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2432 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2433 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2434 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2436 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2437 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2438 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2439 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2441 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2442 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2443 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2444 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2446 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2447 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2448 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2449 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2451 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2452 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2453 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2454 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2456 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2457 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2458 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2459 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2461 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2462 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2463 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2464 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2466 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2467 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2468 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2469 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2471 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2472 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2473 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2474 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2476 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2477 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2478 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2479 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2481 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2482 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2483 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2484 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2486 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2487 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2488 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2489 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2491 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2492 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2493 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2494 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2496 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2497 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2498 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2499 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2501 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2502 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2503 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2504 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2506 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2507 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2508 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2509 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2511 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2512 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2513 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2514 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2516 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2517 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2518 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2519 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2521 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2522 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2523 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2524 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2526 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2527 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2528 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2529 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2531 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2532 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2533 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2534 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2536 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2537 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2538 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2539 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2541 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2542 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2543 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2544 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2546 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2547 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2548 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2549 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2551 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2552 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2553 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2554 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2556 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2557 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2558 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2559 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2561 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2562 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2563 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2564 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2566 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2567 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2568 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2569 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2571 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2572 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2573 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2574 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2576 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2577 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2578 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2579 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2581 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2582 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2583 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2584 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2586 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2587 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2588 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2589 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2591 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2592 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2593 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2594 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2596 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2597 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2598 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2599 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2601 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2602 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2603 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2604 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2606 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2607 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2608 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2609 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2611 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2612 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2613 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2614 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2616 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2617 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2618 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2619 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2621 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2622 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2623 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2624 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2626 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2627 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2628 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2629 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2631 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2632 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2633 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2634 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2636 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2637 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2638 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2639 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2641 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2642 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2643 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2644 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2646 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2647 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2648 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2649 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2651 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2652 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2653 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2654 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2656 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2657 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2658 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2659 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2661 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2662 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2663 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2664 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2666 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2667 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2668 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2669 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2671 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2672 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2673 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2674 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2676 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2677 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2678 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2679 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2681 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2682 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2683 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2684 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2686 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2687 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2688 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2689 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2691 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2692 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2693 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2694 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2696 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2697 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2698 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2699 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2701 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2702 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2703 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2704 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2706 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2707 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2708 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2709 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2711 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2712 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2713 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2714 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2716 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2717 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2718 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2719 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2721 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2722 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2723 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2724 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2726 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2727 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2728 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2729 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2731 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2732 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2733 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2734 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2736 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2737 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2738 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2739 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2741 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2742 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2743 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2744 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2746 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2747 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2748 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2749 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2751 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2752 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2753 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2754 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2756 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2757 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2758 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2759 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2761 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2762 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2763 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2764 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2766 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2767 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2768 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2769 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2771 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2772 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2773 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2774 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2776 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2777 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2778 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2779 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2781 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2782 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2783 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2784 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2787 static struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6
[] = {
2789 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2790 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2791 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2792 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2794 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2795 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2796 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2797 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2799 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2800 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2801 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2802 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2804 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2805 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2806 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2807 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2809 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2810 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2811 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2812 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2814 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2815 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2816 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2817 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2819 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2820 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2821 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2822 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2824 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2825 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2826 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2827 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2829 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2830 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2831 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2832 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2834 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2835 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2836 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2837 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2839 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2840 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2841 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2842 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2844 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2845 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2846 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2847 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2849 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2850 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2851 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2852 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2854 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2855 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2856 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2857 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2859 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2860 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2861 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2862 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2864 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2865 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2866 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2867 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2869 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2870 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2871 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2872 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2874 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2875 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2876 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2877 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2879 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2880 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2881 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2882 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2884 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2885 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2886 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2887 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2889 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2890 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2891 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2892 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2894 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2895 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2896 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2897 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2899 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2900 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2901 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2902 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2904 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2905 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2906 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2907 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2909 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2910 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2911 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2912 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2914 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2915 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2916 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2917 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2919 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2920 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2921 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2922 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2924 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2925 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2926 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2927 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2929 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2930 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2931 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2932 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2934 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2935 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2936 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2937 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2939 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2940 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2941 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2942 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2944 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2945 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2946 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2947 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2949 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2950 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2951 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2952 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2954 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2955 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2956 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2957 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2959 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2960 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2961 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2962 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2964 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2965 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2966 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2967 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2969 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2970 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2971 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2972 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2974 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2975 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2976 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2977 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2979 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2980 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2981 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2982 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2984 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2985 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
2986 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2987 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2989 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2990 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
2991 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2992 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2994 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2995 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
2996 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2997 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2999 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3000 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3001 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3002 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3004 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3005 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3006 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3007 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3009 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3010 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3011 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3012 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3014 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3015 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3016 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3017 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3019 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3020 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3021 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3022 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3024 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3025 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3026 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3027 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3029 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3030 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3031 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3032 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3034 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3035 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3036 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3037 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3039 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3040 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3041 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3042 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3044 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3045 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3046 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3047 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3049 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3050 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3051 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3052 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3054 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3055 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3056 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3057 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3059 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3060 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3061 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3062 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3064 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3065 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3066 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3067 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3069 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3070 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3071 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3072 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3074 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3075 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3076 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3077 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3079 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3080 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3081 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3082 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3084 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3085 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3086 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3087 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3089 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3090 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3091 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3092 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3094 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3095 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3096 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3097 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3099 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3100 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3101 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3102 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3104 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3105 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3106 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3107 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3109 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3110 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3111 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3112 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3114 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3115 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3116 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3117 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3119 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3120 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3121 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3122 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3124 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3125 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3126 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3127 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3129 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3130 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3131 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3132 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3134 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3135 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3136 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3137 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3139 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3140 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3141 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3142 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3144 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3145 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3146 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3147 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3149 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3150 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3151 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3152 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3154 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3155 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3156 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3157 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3159 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3160 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3161 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3162 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3164 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3165 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3166 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3167 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3169 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3170 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3171 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3172 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3174 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3175 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3176 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3177 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3179 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3180 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3181 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3182 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3184 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3185 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3186 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3187 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3189 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3190 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3191 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3192 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3194 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3195 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3196 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3197 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3199 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3200 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3201 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3202 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3204 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3205 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3206 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3207 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3209 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3210 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3211 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3212 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3214 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3215 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3216 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3217 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3219 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3220 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3221 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3222 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3224 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3225 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3226 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3227 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3229 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3230 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3231 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3232 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3234 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3235 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3236 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3237 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3239 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3240 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3241 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3242 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3244 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3245 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3246 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3247 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3249 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3250 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3251 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3252 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3254 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3255 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3256 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3257 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3259 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3260 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3261 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3262 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3264 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3265 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3266 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3267 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3269 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3270 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3271 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3272 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3274 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3275 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3276 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3277 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3279 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3280 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3281 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3282 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3284 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3285 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3286 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3287 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3289 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3290 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3291 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3292 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3294 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3295 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3296 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3297 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3299 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3300 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3301 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3302 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3304 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3305 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3306 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3307 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3309 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3310 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3311 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3312 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3314 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3315 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3316 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3317 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3319 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3320 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3321 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3322 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3324 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3325 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3326 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3327 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3329 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3330 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3331 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3332 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3334 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3335 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3336 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3337 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3339 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3340 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3341 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3342 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3344 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3345 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3346 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3347 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3349 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3350 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3351 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3352 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3354 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3355 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3356 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3357 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3359 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3360 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3361 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3362 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3364 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3365 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3366 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3367 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3369 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3370 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3371 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3372 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3374 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3375 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3376 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3377 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3379 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3380 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3381 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3382 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3384 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3385 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3386 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3387 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3389 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3390 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3391 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3392 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3394 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3395 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3396 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3397 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3399 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3400 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3401 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3402 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3404 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3405 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3406 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3407 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3410 static struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7
[] = {
3412 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3413 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3414 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3415 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3417 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3418 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3419 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3420 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3422 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3423 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3424 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3425 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3427 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3428 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3429 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3430 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3432 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3433 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3434 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3435 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3437 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3438 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3439 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3440 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3442 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3443 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3444 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3445 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3447 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3448 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3449 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3450 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3452 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3453 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3454 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3455 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3457 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3458 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3459 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3460 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3462 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3463 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3464 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3465 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3467 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3468 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3469 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3470 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3472 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3473 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3474 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3475 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3477 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3478 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3479 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3480 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3482 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3483 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3484 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3485 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3487 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3488 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3489 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3490 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3492 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3493 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3494 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3495 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3497 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3498 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3499 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3500 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3502 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3503 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3504 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3505 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3507 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3508 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3509 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3510 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3512 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3513 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3514 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3515 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3517 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3518 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3519 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3520 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3522 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3523 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3524 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3525 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3527 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3528 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3529 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3530 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3532 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3533 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3534 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3535 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3537 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3538 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3539 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3540 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3542 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3543 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3544 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3545 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3547 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3548 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3549 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3550 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3552 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3553 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3554 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3555 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3557 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3558 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3559 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3560 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3562 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3563 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3564 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3565 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3567 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3568 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3569 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3570 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3572 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3573 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3574 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3575 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3577 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3578 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3579 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3580 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3582 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3583 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3584 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3585 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3587 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3588 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3589 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3590 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3592 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3593 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3594 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3595 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3597 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3598 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3599 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3600 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3602 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3603 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3604 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3605 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3607 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3608 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3609 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3610 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3612 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3613 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3614 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3615 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3617 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3618 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3619 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3620 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3622 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3623 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3624 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3625 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3627 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3628 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3629 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3630 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3632 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3633 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3634 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3635 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3637 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3638 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3639 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3640 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3642 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3643 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3644 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3645 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3647 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3648 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3649 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3650 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3652 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3653 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3654 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3655 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3657 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3658 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3659 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3660 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3662 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3663 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3664 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3665 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3667 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3668 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3669 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3670 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3672 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3673 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3674 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3675 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3677 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3678 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3679 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3680 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3682 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3683 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3684 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3685 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3687 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3688 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3689 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3690 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3692 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3693 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3694 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3695 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3697 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3698 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3699 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3700 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3702 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3703 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3704 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3705 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3707 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3708 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3709 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3710 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3712 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3713 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3714 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3715 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3717 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3718 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3719 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3720 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3722 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3723 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3724 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3725 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3727 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3728 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3729 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3730 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3732 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3733 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3734 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3735 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3737 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3738 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3739 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3740 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3742 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3743 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3744 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3745 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3747 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3748 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3749 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3750 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3752 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3753 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3754 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3755 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3757 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3758 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3759 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3760 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3762 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3763 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3764 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3765 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3767 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3768 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3769 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3770 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3772 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3773 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3774 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3775 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3777 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3778 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3779 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3780 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3782 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3783 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3784 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3785 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3787 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3788 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3789 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3790 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3792 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3793 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3794 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3795 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3797 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3798 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3799 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3800 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3802 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3803 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3804 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3805 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3807 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3808 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3809 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3810 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3812 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3813 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3814 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3815 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3817 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3818 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3819 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3820 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3822 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3823 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3824 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3825 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3827 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3828 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3829 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3830 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3832 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3833 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3834 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3835 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3837 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3838 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3839 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3840 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3842 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3843 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3844 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3845 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3847 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3848 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3849 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3850 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3852 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3853 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3854 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3855 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3857 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3858 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3859 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3860 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3862 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3863 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3864 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3865 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3867 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3868 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3869 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3870 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3872 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3873 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3874 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3875 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3877 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3878 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3879 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3880 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3882 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3883 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3884 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3885 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3887 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3888 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3889 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3890 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3892 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3893 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3894 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3895 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3897 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3898 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3899 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3900 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3902 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3903 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3904 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3905 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3907 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3908 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3909 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3910 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3912 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3913 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3914 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3915 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3917 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3918 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3919 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3920 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3922 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3923 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3924 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3925 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3927 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3928 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3929 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3930 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3932 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3933 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3934 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3935 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3937 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3938 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3939 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3940 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3942 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3943 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3944 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3945 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3947 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3948 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3949 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3950 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3952 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3953 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3954 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3955 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3957 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3958 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3959 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3960 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3962 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3963 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3964 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3965 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3967 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3968 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3969 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3970 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3972 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3973 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3974 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3975 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3977 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3978 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3979 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3980 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3982 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3983 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
3984 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
3985 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3987 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3988 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
3989 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
3990 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3992 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3993 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
3994 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
3995 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3997 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3998 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
3999 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4000 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4002 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4003 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4004 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4005 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4007 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4008 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4009 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4010 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4012 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4013 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4014 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4015 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4017 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4018 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4019 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4020 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4022 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4023 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4024 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4025 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4027 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4028 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4029 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4030 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4033 static struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8
[] = {
4035 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4036 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4037 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4038 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4040 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4041 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4042 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4043 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4045 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4046 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4047 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4048 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4050 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4051 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4052 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4053 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4055 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4056 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4057 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4058 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4060 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4061 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4062 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4063 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4065 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4066 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4067 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4068 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4070 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4071 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4072 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4073 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4075 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4076 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4077 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4078 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4080 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4081 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4082 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4083 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4085 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4086 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4087 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4088 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4090 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4091 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4092 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4093 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4095 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4096 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4097 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4098 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4100 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4101 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4102 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4103 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4105 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4106 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4107 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4108 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4110 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4111 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4112 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4113 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4115 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4116 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4117 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4118 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4120 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4121 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4122 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4123 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4125 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4126 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4127 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4128 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4130 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4131 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4132 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4133 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4135 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4136 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4137 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4138 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4140 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4141 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4142 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4143 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4145 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4146 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4147 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4148 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4150 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4151 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4152 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4153 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4155 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4156 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4157 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4158 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4160 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4161 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4162 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4163 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4165 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4166 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4167 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4168 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4170 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4171 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4172 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4173 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4175 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4176 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4177 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4178 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4180 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4181 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4182 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4183 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4185 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4186 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4187 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4188 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4190 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4191 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4192 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4193 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4195 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4196 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4197 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4198 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4200 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4201 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4202 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4203 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4205 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4206 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4207 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4208 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4210 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4211 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4212 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4213 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4215 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4216 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4217 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4218 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4220 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4221 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4222 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4223 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4225 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4226 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4227 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4228 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4230 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4231 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4232 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4233 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4235 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4236 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4237 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4238 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4240 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4241 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4242 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4243 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4245 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4246 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4247 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4248 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4250 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4251 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4252 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4253 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4255 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4256 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4257 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4258 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4260 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4261 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4262 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4263 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4265 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4266 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4267 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4268 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4270 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4271 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4272 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4273 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4275 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4276 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4277 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4278 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4280 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4281 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4282 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4283 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4285 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4286 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4287 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4288 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4290 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4291 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4292 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4293 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4295 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4296 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4297 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4298 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4300 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4301 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4302 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4303 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4305 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4306 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4307 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4308 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4310 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4311 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4312 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4313 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4315 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4316 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4317 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4318 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4320 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4321 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4322 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4323 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4325 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4326 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4327 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4328 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4330 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4331 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4332 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4333 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4335 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4336 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4337 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4338 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4340 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4341 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4342 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4343 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4345 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4346 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4347 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4348 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4350 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4351 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4352 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4353 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4355 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4356 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4357 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4358 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4360 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4361 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4362 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4363 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4365 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4366 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4367 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4368 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4370 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4371 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4372 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4373 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4375 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4376 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4377 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4378 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4380 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4381 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4382 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4383 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4385 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4386 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4387 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4388 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4390 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4391 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4392 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4393 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4395 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4396 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4397 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4398 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4400 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4401 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4402 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4403 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4405 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4406 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4407 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4408 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4410 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4411 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4412 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4413 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4415 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4416 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4417 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4418 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4420 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4421 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4422 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4423 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4425 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4426 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4427 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4428 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4430 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4431 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4432 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4433 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4435 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4436 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4437 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4438 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4440 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4441 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4442 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4443 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4445 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4446 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4447 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4448 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4450 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4451 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4452 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4453 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4455 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4456 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4457 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4458 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4460 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4461 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4462 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4463 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4465 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4466 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4467 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4468 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4470 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4471 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4472 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4473 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4475 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4476 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4477 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4478 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4480 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4481 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4482 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4483 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4485 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4486 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4487 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4488 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4490 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4491 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4492 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4493 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4495 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4496 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4497 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4498 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4500 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4501 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4502 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4503 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4505 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4506 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4507 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4508 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4510 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4511 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4512 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4513 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4515 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4516 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4517 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4518 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4520 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4521 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4522 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4523 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4525 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4526 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4527 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4528 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4530 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4531 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4532 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4533 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4535 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4536 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4537 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4538 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4540 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4541 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4542 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4543 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4545 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4546 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4547 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4548 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4550 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4551 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4552 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4553 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4555 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4556 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4557 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4558 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4560 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4561 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4562 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4563 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4565 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4566 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4567 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4568 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4570 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4571 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4572 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4573 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4575 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4576 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4577 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4578 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4580 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4581 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4582 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4583 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4585 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4586 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4587 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4588 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4590 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4591 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4592 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4593 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4595 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4596 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4597 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4598 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4600 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4601 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4602 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4603 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4605 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4606 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4607 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4608 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4610 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4611 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4612 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4613 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4615 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4616 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4617 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4618 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4620 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4621 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4622 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4623 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4625 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4626 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4627 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4628 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4630 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4631 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4632 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4633 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4635 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4636 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4637 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4638 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4640 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4641 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4642 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4643 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4645 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4646 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4647 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4648 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4650 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4651 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4652 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4653 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4656 static struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11
[] = {
4658 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4659 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4660 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4661 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4663 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4664 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4665 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4666 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4668 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4669 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4670 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4671 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4673 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4674 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4675 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4676 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4678 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4679 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4680 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4681 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4683 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4684 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4685 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4686 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4688 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4689 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4690 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4691 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4693 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4694 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4695 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4696 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4698 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4699 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4700 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4701 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4703 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4704 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4705 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4706 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4708 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4709 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4710 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4711 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4713 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4714 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4715 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4716 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4718 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4719 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4720 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4721 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4723 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4724 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4725 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4726 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4728 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4729 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4730 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4731 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4733 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4734 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4735 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4736 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4738 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4739 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4740 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4741 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4743 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4744 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4745 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4746 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4748 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4749 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4750 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4751 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4753 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4754 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4755 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4756 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4758 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4759 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4760 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4761 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4763 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4764 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4765 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4766 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4768 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4769 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4770 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4771 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4773 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4774 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4775 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4776 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4778 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4779 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4780 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4781 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4783 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4784 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4785 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4786 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4788 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4789 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4790 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4791 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4793 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4794 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4795 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4796 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4798 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4799 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4800 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4801 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4803 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4804 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4805 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4806 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4808 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4809 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4810 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4811 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4813 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4814 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4815 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4816 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4818 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4819 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4820 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4821 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4823 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4824 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4825 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4826 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4828 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4829 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4830 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4831 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4833 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4834 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4835 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4836 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4838 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4839 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4840 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4841 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4843 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4844 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4845 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4846 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4848 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4849 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4850 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4851 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4853 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4854 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4855 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4856 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4858 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4859 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4860 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4861 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4863 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4864 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4865 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4866 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4868 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4869 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4870 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4871 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4873 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4874 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4875 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4876 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4878 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4879 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4880 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4881 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4883 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4884 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4885 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4886 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4888 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4889 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4890 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4891 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4893 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4894 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4895 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4896 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4898 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4899 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4900 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4901 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4903 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4904 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4905 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4906 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4908 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4909 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4910 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4911 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4913 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4914 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4915 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4916 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4918 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4919 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4920 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4921 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4923 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4924 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4925 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4926 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4928 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4929 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4930 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4931 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4933 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4934 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4935 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4936 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4938 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4939 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4940 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4941 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4943 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4944 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4945 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4946 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4948 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4949 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4950 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4951 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4953 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4954 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4955 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4956 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4958 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4959 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4960 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4961 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4963 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4964 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4965 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4966 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4968 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4969 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4970 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4971 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4973 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4974 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4975 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4976 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4978 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4979 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4980 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4981 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4983 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4984 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4985 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4986 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4988 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4989 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4990 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4991 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4993 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
4994 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4995 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4996 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4998 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
4999 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5000 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5001 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5003 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5004 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5005 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5006 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5008 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5009 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5010 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5011 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5013 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5014 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5015 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5016 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5018 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5019 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5020 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5021 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5023 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5024 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5025 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5026 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5028 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5029 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5030 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5031 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5033 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5034 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5035 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5036 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5038 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5039 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5040 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5041 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5043 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5044 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5045 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5046 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5048 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5049 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5050 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5051 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5053 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5054 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5055 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5056 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5058 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5059 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5060 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5061 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5063 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5064 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5065 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5066 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5068 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5069 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5070 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5071 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5073 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5074 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5075 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5076 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5078 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5079 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5080 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5081 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5083 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5084 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5085 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5086 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5088 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5089 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5090 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5091 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5093 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5094 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5095 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5096 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5098 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5099 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5100 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5101 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5103 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5104 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5105 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5106 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5108 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5109 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5110 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5111 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5113 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5114 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5115 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5116 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5118 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5119 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5120 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5121 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5123 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5124 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5125 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5126 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5128 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5129 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5130 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5131 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5133 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5134 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5135 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5136 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5138 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5139 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5140 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5141 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5143 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5144 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5145 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5146 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5148 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5149 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5150 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5151 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5153 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5154 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5155 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5156 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5158 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5159 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5160 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5161 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5163 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5164 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5165 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5166 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5168 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5169 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5170 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5171 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5173 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5174 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5175 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5176 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5178 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5179 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5180 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5181 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5183 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5184 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5185 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5186 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5188 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5189 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5190 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5191 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5193 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5194 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5195 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5196 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5198 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5199 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5200 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5201 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5203 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5204 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5205 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5206 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5208 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5209 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5210 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5211 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5213 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5214 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5215 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5216 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5218 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5219 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5220 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5221 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5223 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5224 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5225 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5226 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5228 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5229 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5230 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5231 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5233 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5234 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5235 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5236 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5238 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5239 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5240 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5241 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5243 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5244 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5245 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5246 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5248 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5249 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5250 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5251 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5253 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5254 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5255 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5256 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5258 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5259 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5260 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5261 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5263 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5264 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5265 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5266 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5268 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5269 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5270 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5271 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5273 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5274 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5275 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5276 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5279 static struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4
[] = {
5281 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5282 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5283 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5288 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5289 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5290 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5295 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5296 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5297 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5302 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5303 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5304 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5309 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5310 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5311 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5316 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5317 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5318 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5323 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5324 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5325 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5330 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5331 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5332 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5337 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5338 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5339 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5344 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5345 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5346 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5351 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5352 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5353 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5358 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5359 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5360 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5365 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5366 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5367 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5372 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5373 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5374 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5379 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5380 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5381 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5386 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5387 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5388 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5393 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5394 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5395 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5400 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5401 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5402 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5407 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5408 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5409 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5414 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5415 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5416 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5421 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5422 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5423 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5428 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5429 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5430 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5435 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5436 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5437 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5442 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5443 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5444 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5449 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5450 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5451 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5456 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5457 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5458 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5463 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5464 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5465 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5470 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5471 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5472 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5477 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5478 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5479 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5484 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5485 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5486 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5491 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5492 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5493 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5498 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5499 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5500 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5505 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5506 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5507 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5512 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5513 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5514 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5519 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5520 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5521 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5526 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5527 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5528 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5533 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5534 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5535 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5540 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5541 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5542 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5547 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5548 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5549 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5554 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5555 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5556 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5561 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5562 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5563 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5568 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5569 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5570 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5575 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5576 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5577 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5582 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5583 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5584 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5589 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5590 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5591 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5596 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5597 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5598 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5603 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5604 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5605 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5610 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5611 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5612 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5617 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5618 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5619 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5624 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5625 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5626 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5631 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5632 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5633 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5638 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5639 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5640 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5645 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5646 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5647 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5652 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5653 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5654 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5659 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5660 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5661 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5666 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5667 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5668 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5673 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5674 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5675 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5680 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5681 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5682 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5687 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5688 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5689 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5694 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5695 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5696 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5701 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5702 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5703 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5708 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5709 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5710 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5715 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5716 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5717 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5722 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5723 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5724 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5729 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5730 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5731 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5736 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5737 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5738 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5743 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5744 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5745 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5750 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5751 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5752 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5757 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5758 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5759 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5764 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5765 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5766 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5771 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5772 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5773 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5778 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5779 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5780 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5785 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5786 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5787 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5792 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5793 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5794 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5799 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5800 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5801 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5806 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5807 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5808 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5813 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5814 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5815 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5820 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5821 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5822 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5827 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5828 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5829 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5834 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5835 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5836 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5841 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5842 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5843 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5848 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5849 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5850 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5855 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5856 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5857 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5862 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5863 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5864 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5869 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5870 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5871 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5876 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5877 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5878 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5883 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5884 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5885 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5890 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5891 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5892 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5897 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5898 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5899 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5904 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5905 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5906 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5911 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5912 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5913 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5918 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5919 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5920 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5925 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5926 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5927 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5932 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5933 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5934 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5939 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5940 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5941 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5946 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5947 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5948 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5953 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5954 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5955 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5960 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5961 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5962 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5967 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5968 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5969 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
5974 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
5975 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5976 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
5981 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
5982 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5983 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
5988 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
5989 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5990 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
5995 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
5996 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5997 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6002 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6003 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6004 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6009 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6010 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6011 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6016 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6017 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6018 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6023 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6024 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6025 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6030 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6031 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6032 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6037 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6038 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6039 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6044 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6045 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6046 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6051 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6052 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6053 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6058 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6059 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6060 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6065 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6066 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6067 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6072 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6073 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6074 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6079 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6080 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6081 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6086 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6087 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6088 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6093 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6094 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6095 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6100 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6101 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6102 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6107 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6108 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6109 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6114 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6115 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6116 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6121 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6122 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6123 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6128 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6129 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6130 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6135 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6136 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6137 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6142 static struct chan_info_nphy_radio2057_rev5 chan_info_nphyrev8_2057_rev5
[] = {
6144 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6145 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6146 0x043a, 0x043f, 0x0443},
6148 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6149 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6150 0x0438, 0x043d, 0x0441},
6152 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6153 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6154 0x0436, 0x043a, 0x043f},
6156 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6157 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6158 0x0434, 0x0438, 0x043d},
6160 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6161 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6162 0x0431, 0x0436, 0x043a},
6164 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6165 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6166 0x042f, 0x0434, 0x0438},
6168 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6169 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6170 0x042d, 0x0431, 0x0436},
6172 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6173 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6174 0x042b, 0x042f, 0x0434},
6176 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6177 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6178 0x0429, 0x042d, 0x0431},
6180 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6181 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6182 0x0427, 0x042b, 0x042f},
6184 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6185 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6186 0x0424, 0x0429, 0x042d},
6188 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6189 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6190 0x0422, 0x0427, 0x042b},
6192 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6193 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6194 0x0420, 0x0424, 0x0429},
6196 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6197 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6198 0x041b, 0x041f, 0x0424}
6201 static struct chan_info_nphy_radio2057_rev5 chan_info_nphyrev9_2057_rev5v1
[] = {
6203 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6204 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6205 0x043a, 0x043f, 0x0443},
6207 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6208 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6209 0x0438, 0x043d, 0x0441},
6211 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6212 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6213 0x0436, 0x043a, 0x043f},
6215 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6216 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6217 0x0434, 0x0438, 0x043d},
6219 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6220 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6221 0x0431, 0x0436, 0x043a},
6223 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6224 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6225 0x042f, 0x0434, 0x0438},
6227 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6228 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6229 0x042d, 0x0431, 0x0436},
6231 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6232 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6233 0x042b, 0x042f, 0x0434},
6235 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6236 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6237 0x0429, 0x042d, 0x0431},
6239 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6240 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6241 0x0427, 0x042b, 0x042f},
6243 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6244 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6245 0x0424, 0x0429, 0x042d},
6247 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6248 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6249 0x0422, 0x0427, 0x042b},
6251 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6252 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6253 0x0420, 0x0424, 0x0429},
6255 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6256 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6257 0x041b, 0x041f, 0x0424}
6260 static struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7
[] = {
6262 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6263 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6264 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6268 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6269 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6270 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6274 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6275 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6276 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6280 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6281 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6282 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6286 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6287 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6288 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6292 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6293 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6294 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6298 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6299 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6300 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6304 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6305 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6306 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6310 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6311 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6312 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6316 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6317 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6318 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6322 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6323 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6324 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6328 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6329 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6330 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6334 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6335 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6336 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6340 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6341 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6342 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6346 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6347 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6348 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6352 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6353 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6354 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6358 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6359 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6360 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6364 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6365 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6366 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6370 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6371 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6372 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6376 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6377 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6378 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6382 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6383 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6384 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6388 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6389 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6390 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6394 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6395 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6396 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6400 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6401 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6402 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6406 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6407 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6408 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6412 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6413 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6414 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6418 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6419 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6420 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6424 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6425 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6426 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6430 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6431 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6432 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6436 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6437 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6438 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6442 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6443 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6444 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6448 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6449 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6450 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6454 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6455 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6456 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6460 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6461 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6462 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6466 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6467 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6468 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6472 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6473 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6474 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6478 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6479 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6480 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6484 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6485 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6486 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6490 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6491 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6492 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6496 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6497 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6498 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6502 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6503 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6504 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6508 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6509 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6510 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6514 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6515 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6516 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6520 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6521 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6522 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6526 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6527 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6528 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6532 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6533 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6534 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6538 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6539 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6540 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6544 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6545 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6546 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6550 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6551 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6552 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6556 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6557 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6558 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6562 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6563 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6564 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6568 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6569 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6570 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6574 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6575 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6576 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6580 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6581 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6582 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6586 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6587 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6588 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6592 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6593 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6594 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6598 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6599 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6600 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6604 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6605 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6606 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6610 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6611 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6612 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6616 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6617 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6618 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6622 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6623 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6624 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6628 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6629 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6630 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6634 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6635 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6636 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6640 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6641 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6642 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6646 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6647 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6648 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6652 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6653 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6654 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6658 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6659 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6660 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6664 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6665 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6666 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6670 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6671 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6672 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6676 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6677 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6678 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6682 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6683 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6684 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6688 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6689 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6690 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6694 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6695 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6696 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6700 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6701 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6702 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6706 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6707 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6708 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6712 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6713 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6714 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6718 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6719 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6720 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6724 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6725 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6726 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6730 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6731 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6732 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6736 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6737 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6738 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6742 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6743 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6744 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6748 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6749 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6750 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6754 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6755 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6756 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6760 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6761 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6762 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6766 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6767 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6768 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6772 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6773 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6774 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6778 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6779 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6780 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6784 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6785 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6786 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6790 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6791 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6792 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6796 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6797 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6798 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6802 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6803 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6804 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6808 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6809 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6810 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6814 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6815 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6816 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6820 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6821 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6822 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6826 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6827 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6828 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6832 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6833 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6834 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6838 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6839 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6840 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6844 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6845 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6846 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6850 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6851 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6852 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6856 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6857 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6858 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6862 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6863 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6864 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6868 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6869 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6870 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6874 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6875 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6876 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6880 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6881 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6882 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6886 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6887 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6888 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6892 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6893 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6894 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6898 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6899 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6900 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6904 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6905 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6906 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6910 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6911 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6912 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6916 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6917 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6918 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6922 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6923 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6924 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6928 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6929 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6930 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6934 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6935 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6936 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6940 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6941 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6942 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6946 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6947 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6948 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6952 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6953 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6954 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6958 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6959 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6960 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6964 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6965 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6966 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6970 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6971 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6972 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6976 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6977 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6978 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6982 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6983 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6984 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6988 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6989 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6990 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6994 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6995 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
6996 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7001 static struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8
[] = {
7003 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7004 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7005 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7009 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7010 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7011 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7015 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7016 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7017 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7021 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7022 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7023 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7027 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7028 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7029 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7033 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7034 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7035 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7039 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7040 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7041 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7045 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7046 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7047 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7051 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7052 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7053 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7057 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7058 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7059 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7063 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7064 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7065 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7069 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7070 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7071 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7075 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7076 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7077 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7081 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7082 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7083 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7087 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7088 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7089 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7093 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7094 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7095 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7099 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7100 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7101 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7105 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7106 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7107 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7111 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7112 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7113 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7117 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7118 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7119 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7123 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7124 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7125 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7129 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7130 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7131 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7135 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7136 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7137 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7141 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7142 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7143 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7147 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7148 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7149 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7153 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7154 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7155 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7159 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7160 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7161 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7165 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7166 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7167 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7171 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7172 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7173 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7177 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7178 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7179 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7183 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7184 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7185 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7189 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7190 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7191 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7195 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7196 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7197 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7201 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7202 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7203 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7207 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7208 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7209 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7213 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7214 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7215 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7219 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7220 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7221 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7225 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7226 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7227 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7231 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7232 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7233 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7237 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7238 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7239 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7243 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7244 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7245 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7249 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7250 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7251 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7255 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7256 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7257 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7261 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7262 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7263 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7267 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7268 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7269 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7273 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7274 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7275 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7279 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7280 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7281 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7285 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7286 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7287 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7291 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7292 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7293 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7297 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7298 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7299 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7303 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7304 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7305 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7309 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7310 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7311 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7315 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7316 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7317 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7321 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7322 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7323 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7327 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7328 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7329 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7333 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7334 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7335 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7339 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7340 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7341 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7345 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7346 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7347 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7351 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7352 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7353 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7357 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7358 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7359 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7363 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7364 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7365 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7369 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7370 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7371 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7375 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7376 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7377 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7381 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7382 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7383 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7387 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7388 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7389 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7393 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7394 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7395 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7399 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7400 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7401 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7405 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7406 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7407 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7411 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7412 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7413 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7417 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7418 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7419 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7423 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7424 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7425 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7429 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7430 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7431 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7435 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7436 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7437 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7441 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7442 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7443 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7447 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7448 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7449 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7453 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7454 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7455 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7459 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7460 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7461 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7465 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7466 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7467 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7471 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7472 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7473 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7477 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7478 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7479 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7483 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7484 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7485 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7489 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7490 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7491 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7495 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7496 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7497 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7501 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7502 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7503 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7507 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7508 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7509 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7513 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7514 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7515 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7519 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7520 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7521 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7525 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7526 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7527 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7531 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7532 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7533 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7537 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7538 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7539 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7543 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7544 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7545 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7549 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7550 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7551 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7555 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7556 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7557 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7561 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7562 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7563 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7567 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7568 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7569 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7573 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7574 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7575 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7579 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7580 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7581 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7585 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7586 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7587 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7591 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7592 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7593 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7597 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7598 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7599 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7603 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7604 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7605 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7609 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7610 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7611 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7615 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7616 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7617 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7621 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7622 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7623 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7627 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7628 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7629 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7633 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7634 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7635 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7639 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7640 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7641 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7645 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7646 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7647 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7651 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7652 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7653 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7657 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7658 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7659 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7663 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7664 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7665 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7669 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7670 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7671 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7675 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7676 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7677 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7681 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7682 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7683 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7687 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7688 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7689 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7693 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7694 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7695 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7699 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7700 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7701 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7705 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7706 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7707 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7711 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7712 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7713 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7717 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7718 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7719 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7723 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7724 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7725 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7729 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7730 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7731 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7736 struct radio_regs regs_2055
[] = {
7737 {0x02, 0x80, 0x80, 0, 0},
7739 {0x04, 0x27, 0x27, 0, 0},
7741 {0x06, 0x27, 0x27, 0, 0},
7742 {0x07, 0x7f, 0x7f, 1, 1},
7743 {0x08, 0x7, 0x7, 1, 1},
7744 {0x09, 0x7f, 0x7f, 1, 1},
7745 {0x0A, 0x7, 0x7, 1, 1},
7746 {0x0B, 0x15, 0x15, 0, 0},
7747 {0x0C, 0x15, 0x15, 0, 0},
7748 {0x0D, 0x4f, 0x4f, 1, 1},
7749 {0x0E, 0x5, 0x5, 1, 1},
7750 {0x0F, 0x4f, 0x4f, 1, 1},
7751 {0x10, 0x5, 0x5, 1, 1},
7752 {0x11, 0xd0, 0xd0, 0, 0},
7753 {0x12, 0x2, 0x2, 0, 0},
7755 {0x14, 0x40, 0x40, 0, 0},
7764 {0x1D, 0xc0, 0xc0, 0, 0},
7765 {0x1E, 0xff, 0xff, 0, 0},
7766 {0x1F, 0xc0, 0xc0, 0, 0},
7767 {0x20, 0xff, 0xff, 0, 0},
7768 {0x21, 0xc0, 0xc0, 0, 0},
7770 {0x23, 0x2c, 0x2c, 0, 0},
7780 {0x2D, 0xa4, 0xa4, 0, 0},
7781 {0x2E, 0x38, 0x38, 0, 0},
7783 {0x30, 0x4, 0x4, 1, 1},
7785 {0x32, 0xa, 0xa, 0, 0},
7786 {0x33, 0x87, 0x87, 0, 0},
7787 {0x34, 0x9, 0x9, 0, 0},
7788 {0x35, 0x70, 0x70, 0, 0},
7789 {0x36, 0x11, 0x11, 0, 0},
7790 {0x37, 0x18, 0x18, 1, 1},
7791 {0x38, 0x6, 0x6, 0, 0},
7792 {0x39, 0x4, 0x4, 1, 1},
7793 {0x3A, 0x6, 0x6, 0, 0},
7794 {0x3B, 0x9e, 0x9e, 0, 0},
7795 {0x3C, 0x9, 0x9, 0, 0},
7796 {0x3D, 0xc8, 0xc8, 1, 1},
7797 {0x3E, 0x88, 0x88, 0, 0},
7801 {0x42, 0x1, 0x1, 0, 0},
7802 {0x43, 0x2, 0x2, 0, 0},
7803 {0x44, 0x96, 0x96, 0, 0},
7804 {0x45, 0x3e, 0x3e, 0, 0},
7805 {0x46, 0x3e, 0x3e, 0, 0},
7806 {0x47, 0x13, 0x13, 0, 0},
7807 {0x48, 0x2, 0x2, 0, 0},
7808 {0x49, 0x15, 0x15, 0, 0},
7809 {0x4A, 0x7, 0x7, 0, 0},
7815 {0x50, 0x8, 0x8, 0, 0},
7816 {0x51, 0x8, 0x8, 0, 0},
7817 {0x52, 0x6, 0x6, 0, 0},
7818 {0x53, 0x84, 0x84, 1, 1},
7819 {0x54, 0xc3, 0xc3, 0, 0},
7820 {0x55, 0x8f, 0x8f, 0, 0},
7821 {0x56, 0xff, 0xff, 0, 0},
7822 {0x57, 0xff, 0xff, 0, 0},
7823 {0x58, 0x88, 0x88, 0, 0},
7824 {0x59, 0x88, 0x88, 0, 0},
7826 {0x5B, 0xcc, 0xcc, 0, 0},
7827 {0x5C, 0x6, 0x6, 0, 0},
7828 {0x5D, 0x80, 0x80, 0, 0},
7829 {0x5E, 0x80, 0x80, 0, 0},
7830 {0x5F, 0xf8, 0xf8, 0, 0},
7831 {0x60, 0x88, 0x88, 0, 0},
7832 {0x61, 0x88, 0x88, 0, 0},
7833 {0x62, 0x88, 0x8, 1, 1},
7834 {0x63, 0x88, 0x88, 0, 0},
7836 {0x65, 0x1, 0x1, 1, 1},
7837 {0x66, 0x8a, 0x8a, 0, 0},
7838 {0x67, 0x8, 0x8, 0, 0},
7839 {0x68, 0x83, 0x83, 0, 0},
7840 {0x69, 0x6, 0x6, 0, 0},
7841 {0x6A, 0xa0, 0xa0, 0, 0},
7842 {0x6B, 0xa, 0xa, 0, 0},
7843 {0x6C, 0x87, 0x87, 1, 1},
7844 {0x6D, 0x2a, 0x2a, 0, 0},
7845 {0x6E, 0x2a, 0x2a, 0, 0},
7846 {0x6F, 0x2a, 0x2a, 0, 0},
7847 {0x70, 0x2a, 0x2a, 0, 0},
7848 {0x71, 0x18, 0x18, 0, 0},
7849 {0x72, 0x6a, 0x6a, 1, 1},
7850 {0x73, 0xab, 0xab, 1, 1},
7851 {0x74, 0x13, 0x13, 1, 1},
7852 {0x75, 0xc1, 0xc1, 1, 1},
7853 {0x76, 0xaa, 0xaa, 1, 1},
7854 {0x77, 0x87, 0x87, 1, 1},
7856 {0x79, 0x6, 0x6, 0, 0},
7857 {0x7A, 0x7, 0x7, 0, 0},
7858 {0x7B, 0x7, 0x7, 0, 0},
7859 {0x7C, 0x15, 0x15, 0, 0},
7860 {0x7D, 0x55, 0x55, 0, 0},
7861 {0x7E, 0x97, 0x97, 1, 1},
7862 {0x7F, 0x8, 0x8, 0, 0},
7863 {0x80, 0x14, 0x14, 1, 1},
7864 {0x81, 0x33, 0x33, 0, 0},
7865 {0x82, 0x88, 0x88, 0, 0},
7866 {0x83, 0x6, 0x6, 0, 0},
7867 {0x84, 0x3, 0x3, 1, 1},
7868 {0x85, 0xa, 0xa, 0, 0},
7869 {0x86, 0x3, 0x3, 1, 1},
7870 {0x87, 0x2a, 0x2a, 0, 0},
7871 {0x88, 0xa4, 0xa4, 0, 0},
7872 {0x89, 0x18, 0x18, 0, 0},
7873 {0x8A, 0x28, 0x28, 0, 0},
7875 {0x8C, 0x4a, 0x4a, 0, 0},
7877 {0x8E, 0xf8, 0xf8, 0, 0},
7878 {0x8F, 0x88, 0x88, 0, 0},
7879 {0x90, 0x88, 0x88, 0, 0},
7880 {0x91, 0x88, 0x8, 1, 1},
7881 {0x92, 0x88, 0x88, 0, 0},
7883 {0x94, 0x1, 0x1, 1, 1},
7884 {0x95, 0x8a, 0x8a, 0, 0},
7885 {0x96, 0x8, 0x8, 0, 0},
7886 {0x97, 0x83, 0x83, 0, 0},
7887 {0x98, 0x6, 0x6, 0, 0},
7888 {0x99, 0xa0, 0xa0, 0, 0},
7889 {0x9A, 0xa, 0xa, 0, 0},
7890 {0x9B, 0x87, 0x87, 1, 1},
7891 {0x9C, 0x2a, 0x2a, 0, 0},
7892 {0x9D, 0x2a, 0x2a, 0, 0},
7893 {0x9E, 0x2a, 0x2a, 0, 0},
7894 {0x9F, 0x2a, 0x2a, 0, 0},
7895 {0xA0, 0x18, 0x18, 0, 0},
7896 {0xA1, 0x6a, 0x6a, 1, 1},
7897 {0xA2, 0xab, 0xab, 1, 1},
7898 {0xA3, 0x13, 0x13, 1, 1},
7899 {0xA4, 0xc1, 0xc1, 1, 1},
7900 {0xA5, 0xaa, 0xaa, 1, 1},
7901 {0xA6, 0x87, 0x87, 1, 1},
7903 {0xA8, 0x6, 0x6, 0, 0},
7904 {0xA9, 0x7, 0x7, 0, 0},
7905 {0xAA, 0x7, 0x7, 0, 0},
7906 {0xAB, 0x15, 0x15, 0, 0},
7907 {0xAC, 0x55, 0x55, 0, 0},
7908 {0xAD, 0x97, 0x97, 1, 1},
7909 {0xAE, 0x8, 0x8, 0, 0},
7910 {0xAF, 0x14, 0x14, 1, 1},
7911 {0xB0, 0x33, 0x33, 0, 0},
7912 {0xB1, 0x88, 0x88, 0, 0},
7913 {0xB2, 0x6, 0x6, 0, 0},
7914 {0xB3, 0x3, 0x3, 1, 1},
7915 {0xB4, 0xa, 0xa, 0, 0},
7916 {0xB5, 0x3, 0x3, 1, 1},
7917 {0xB6, 0x2a, 0x2a, 0, 0},
7918 {0xB7, 0xa4, 0xa4, 0, 0},
7919 {0xB8, 0x18, 0x18, 0, 0},
7920 {0xB9, 0x28, 0x28, 0, 0},
7922 {0xBB, 0x4a, 0x4a, 0, 0},
7924 {0xBD, 0x71, 0x71, 0, 0},
7925 {0xBE, 0x72, 0x72, 0, 0},
7926 {0xBF, 0x73, 0x73, 0, 0},
7927 {0xC0, 0x74, 0x74, 0, 0},
7928 {0xC1, 0x75, 0x75, 0, 0},
7929 {0xC2, 0x76, 0x76, 0, 0},
7930 {0xC3, 0x77, 0x77, 0, 0},
7931 {0xC4, 0x78, 0x78, 0, 0},
7932 {0xC5, 0x79, 0x79, 0, 0},
7933 {0xC6, 0x7a, 0x7a, 0, 0},
7941 {0xCE, 0x6, 0x6, 0, 0},
7944 {0xD1, 0x18, 0x18, 0, 0},
7945 {0xD2, 0x88, 0x88, 0, 0},
7953 {0xDA, 0x6, 0x6, 0, 0},
7956 {0xDD, 0x18, 0x18, 0, 0},
7957 {0xDE, 0x88, 0x88, 0, 0},
7962 {0xFFFF, 0, 0, 0, 0},
7965 struct radio_regs regs_SYN_2056
[] = {
7973 {0x09, 0x1, 0x1, 0, 0},
7998 {0x22, 0x60, 0x60, 0, 0},
7999 {0x23, 0x6, 0x6, 0, 0},
8000 {0x24, 0xc, 0xc, 0, 0},
8004 {0x28, 0x1, 0x1, 0, 0},
8010 {0x2E, 0xd, 0xd, 0, 0},
8011 {0x2F, 0x1f, 0x1f, 0, 0},
8012 {0x30, 0x15, 0x15, 0, 0},
8013 {0x31, 0xf, 0xf, 0, 0},
8024 {0x3C, 0x13, 0x13, 0, 0},
8025 {0x3D, 0xf, 0xf, 0, 0},
8026 {0x3E, 0x18, 0x18, 0, 0},
8029 {0x41, 0x20, 0x20, 0, 0},
8030 {0x42, 0x20, 0x20, 0, 0},
8032 {0x44, 0x77, 0x77, 0, 0},
8033 {0x45, 0x7, 0x7, 0, 0},
8034 {0x46, 0x1, 0x1, 0, 0},
8035 {0x47, 0x4, 0x4, 0, 0},
8036 {0x48, 0xf, 0xf, 0, 0},
8037 {0x49, 0x30, 0x30, 0, 0},
8038 {0x4A, 0x32, 0x32, 0, 0},
8039 {0x4B, 0xd, 0xd, 0, 0},
8040 {0x4C, 0xd, 0xd, 0, 0},
8041 {0x4D, 0x4, 0x4, 0, 0},
8042 {0x4E, 0x6, 0x6, 0, 0},
8043 {0x4F, 0x1, 0x1, 0, 0},
8044 {0x50, 0x1c, 0x1c, 0, 0},
8045 {0x51, 0x2, 0x2, 0, 0},
8046 {0x52, 0x2, 0x2, 0, 0},
8047 {0x53, 0xf7, 0xf7, 1, 1},
8048 {0x54, 0xb4, 0xb4, 0, 0},
8049 {0x55, 0xd2, 0xd2, 0, 0},
8052 {0x58, 0x4, 0x4, 0, 0},
8053 {0x59, 0x96, 0x96, 0, 0},
8054 {0x5A, 0x3e, 0x3e, 0, 0},
8055 {0x5B, 0x3e, 0x3e, 0, 0},
8056 {0x5C, 0x13, 0x13, 0, 0},
8057 {0x5D, 0x2, 0x2, 0, 0},
8059 {0x5F, 0x7, 0x7, 0, 0},
8060 {0x60, 0x7, 0x7, 1, 1},
8061 {0x61, 0x8, 0x8, 0, 0},
8062 {0x62, 0x3, 0x3, 0, 0},
8068 {0x68, 0x40, 0x40, 0, 0},
8073 {0x6D, 0x1, 0x1, 0, 0},
8076 {0x70, 0x60, 0x60, 0, 0},
8077 {0x71, 0x66, 0x66, 0, 0},
8078 {0x72, 0xc, 0xc, 0, 0},
8079 {0x73, 0x66, 0x66, 0, 0},
8080 {0x74, 0x8f, 0x8f, 1, 1},
8082 {0x76, 0xcc, 0xcc, 0, 0},
8083 {0x77, 0x1, 0x1, 0, 0},
8084 {0x78, 0x66, 0x66, 0, 0},
8085 {0x79, 0x66, 0x66, 0, 0},
8097 {0x85, 0xff, 0xff, 0, 0},
8123 {0x9F, 0x6, 0x6, 0, 0},
8124 {0xA0, 0x66, 0x66, 0, 0},
8125 {0xA1, 0x66, 0x66, 0, 0},
8126 {0xA2, 0x66, 0x66, 0, 0},
8127 {0xA3, 0x66, 0x66, 0, 0},
8128 {0xA4, 0x66, 0x66, 0, 0},
8129 {0xA5, 0x66, 0x66, 0, 0},
8130 {0xA6, 0x66, 0x66, 0, 0},
8131 {0xA7, 0x66, 0x66, 0, 0},
8132 {0xA8, 0x66, 0x66, 0, 0},
8133 {0xA9, 0x66, 0x66, 0, 0},
8134 {0xAA, 0x66, 0x66, 0, 0},
8135 {0xAB, 0x66, 0x66, 0, 0},
8136 {0xAC, 0x66, 0x66, 0, 0},
8137 {0xAD, 0x66, 0x66, 0, 0},
8138 {0xAE, 0x66, 0x66, 0, 0},
8139 {0xAF, 0x66, 0x66, 0, 0},
8140 {0xB0, 0x66, 0x66, 0, 0},
8141 {0xB1, 0x66, 0x66, 0, 0},
8142 {0xB2, 0x66, 0x66, 0, 0},
8143 {0xB3, 0xa, 0xa, 0, 0},
8147 {0xFFFF, 0, 0, 0, 0}
8150 struct radio_regs regs_TX_2056
[] = {
8182 {0x21, 0x88, 0x88, 0, 0},
8183 {0x22, 0x88, 0x88, 0, 0},
8184 {0x23, 0x88, 0x88, 0, 0},
8185 {0x24, 0x88, 0x88, 0, 0},
8186 {0x25, 0xc, 0xc, 0, 0},
8188 {0x27, 0x3, 0x3, 0, 0},
8190 {0x29, 0x3, 0x3, 0, 0},
8191 {0x2A, 0x37, 0x37, 0, 0},
8192 {0x2B, 0x3, 0x3, 0, 0},
8195 {0x2E, 0x1, 0x1, 0, 0},
8196 {0x2F, 0x1, 0x1, 0, 0},
8200 {0x33, 0x11, 0x11, 0, 0},
8201 {0x34, 0x11, 0x11, 0, 0},
8204 {0x37, 0x3, 0x3, 0, 0},
8205 {0x38, 0xf, 0xf, 0, 0},
8207 {0x3A, 0x2d, 0x2d, 0, 0},
8209 {0x3C, 0x6e, 0x6e, 0, 0},
8210 {0x3D, 0xf0, 0xf0, 1, 1},
8214 {0x41, 0x3, 0x3, 0, 0},
8215 {0x42, 0x3, 0x3, 0, 0},
8217 {0x44, 0x1e, 0x1e, 0, 0},
8219 {0x46, 0x6e, 0x6e, 0, 0},
8220 {0x47, 0xf0, 0xf0, 1, 1},
8222 {0x49, 0x2, 0x2, 0, 0},
8223 {0x4A, 0xff, 0xff, 1, 1},
8224 {0x4B, 0xc, 0xc, 0, 0},
8226 {0x4D, 0x38, 0x38, 0, 0},
8227 {0x4E, 0x70, 0x70, 1, 1},
8228 {0x4F, 0x2, 0x2, 0, 0},
8229 {0x50, 0x88, 0x88, 0, 0},
8230 {0x51, 0xc, 0xc, 0, 0},
8232 {0x53, 0x8, 0x8, 0, 0},
8233 {0x54, 0x70, 0x70, 1, 1},
8234 {0x55, 0x2, 0x2, 0, 0},
8235 {0x56, 0xff, 0xff, 1, 1},
8237 {0x58, 0x83, 0x83, 0, 0},
8238 {0x59, 0x77, 0x77, 1, 1},
8240 {0x5B, 0x2, 0x2, 0, 0},
8241 {0x5C, 0x88, 0x88, 0, 0},
8243 {0x5E, 0x8, 0x8, 0, 0},
8244 {0x5F, 0x77, 0x77, 1, 1},
8245 {0x60, 0x1, 0x1, 0, 0},
8247 {0x62, 0x7, 0x7, 0, 0},
8249 {0x64, 0x7, 0x7, 0, 0},
8252 {0x67, 0x74, 0x74, 1, 1},
8254 {0x69, 0xa, 0xa, 0, 0},
8262 {0x71, 0x2, 0x2, 0, 0},
8265 {0x74, 0xe, 0xe, 0, 0},
8266 {0x75, 0xe, 0xe, 0, 0},
8267 {0x76, 0xe, 0xe, 0, 0},
8268 {0x77, 0x13, 0x13, 0, 0},
8269 {0x78, 0x13, 0x13, 0, 0},
8270 {0x79, 0x1b, 0x1b, 0, 0},
8271 {0x7A, 0x1b, 0x1b, 0, 0},
8272 {0x7B, 0x55, 0x55, 0, 0},
8273 {0x7C, 0x5b, 0x5b, 0, 0},
8296 {0xFFFF, 0, 0, 0, 0}
8299 struct radio_regs regs_RX_2056
[] = {
8330 {0x20, 0x3, 0x3, 0, 0},
8333 {0x23, 0x90, 0x90, 0, 0},
8334 {0x24, 0x55, 0x55, 0, 0},
8335 {0x25, 0x15, 0x15, 0, 0},
8336 {0x26, 0x5, 0x5, 0, 0},
8337 {0x27, 0x15, 0x15, 0, 0},
8338 {0x28, 0x5, 0x5, 0, 0},
8339 {0x29, 0x20, 0x20, 0, 0},
8340 {0x2A, 0x11, 0x11, 0, 0},
8341 {0x2B, 0x90, 0x90, 0, 0},
8343 {0x2D, 0x88, 0x88, 0, 0},
8344 {0x2E, 0x32, 0x32, 0, 0},
8345 {0x2F, 0x77, 0x77, 0, 0},
8346 {0x30, 0x17, 0x17, 1, 1},
8347 {0x31, 0xff, 0xff, 1, 1},
8348 {0x32, 0x20, 0x20, 0, 0},
8350 {0x34, 0x88, 0x88, 0, 0},
8351 {0x35, 0x32, 0x32, 0, 0},
8352 {0x36, 0x77, 0x77, 0, 0},
8353 {0x37, 0x17, 0x17, 1, 1},
8354 {0x38, 0xf0, 0xf0, 1, 1},
8355 {0x39, 0x20, 0x20, 0, 0},
8356 {0x3A, 0x8, 0x8, 0, 0},
8357 {0x3B, 0x99, 0x99, 0, 0},
8359 {0x3D, 0x44, 0x44, 1, 1},
8361 {0x3F, 0x44, 0x44, 0, 0},
8362 {0x40, 0xf, 0xf, 1, 1},
8363 {0x41, 0x6, 0x6, 0, 0},
8364 {0x42, 0x4, 0x4, 0, 0},
8365 {0x43, 0x50, 0x50, 1, 1},
8366 {0x44, 0x8, 0x8, 0, 0},
8367 {0x45, 0x99, 0x99, 0, 0},
8369 {0x47, 0x11, 0x11, 0, 0},
8371 {0x49, 0x44, 0x44, 0, 0},
8372 {0x4A, 0x7, 0x7, 0, 0},
8373 {0x4B, 0x6, 0x6, 0, 0},
8374 {0x4C, 0x4, 0x4, 0, 0},
8377 {0x4F, 0x66, 0x66, 0, 0},
8378 {0x50, 0x66, 0x66, 0, 0},
8379 {0x51, 0x57, 0x57, 0, 0},
8380 {0x52, 0x57, 0x57, 0, 0},
8381 {0x53, 0x44, 0x44, 0, 0},
8384 {0x56, 0x8, 0x8, 0, 0},
8385 {0x57, 0x8, 0x8, 0, 0},
8386 {0x58, 0x7, 0x7, 0, 0},
8387 {0x59, 0x22, 0x22, 0, 0},
8388 {0x5A, 0x22, 0x22, 0, 0},
8389 {0x5B, 0x2, 0x2, 0, 0},
8390 {0x5C, 0x23, 0x23, 0, 0},
8391 {0x5D, 0x7, 0x7, 0, 0},
8392 {0x5E, 0x55, 0x55, 0, 0},
8393 {0x5F, 0x23, 0x23, 0, 0},
8394 {0x60, 0x41, 0x41, 0, 0},
8395 {0x61, 0x1, 0x1, 0, 0},
8396 {0x62, 0xa, 0xa, 0, 0},
8405 {0x6B, 0xc, 0xc, 0, 0},
8412 {0x72, 0x22, 0x22, 0, 0},
8413 {0x73, 0x22, 0x22, 0, 0},
8414 {0x74, 0x2, 0x2, 0, 0},
8415 {0x75, 0xa, 0xa, 0, 0},
8416 {0x76, 0x1, 0x1, 0, 0},
8417 {0x77, 0x22, 0x22, 0, 0},
8418 {0x78, 0x30, 0x30, 0, 0},
8447 {0xFFFF, 0, 0, 0, 0}
8450 struct radio_regs regs_SYN_2056_A1
[] = {
8458 {0x09, 0x1, 0x1, 0, 0},
8483 {0x22, 0x60, 0x60, 0, 0},
8484 {0x23, 0x6, 0x6, 0, 0},
8485 {0x24, 0xc, 0xc, 0, 0},
8489 {0x28, 0x1, 0x1, 0, 0},
8495 {0x2E, 0xd, 0xd, 0, 0},
8496 {0x2F, 0x1f, 0x1f, 0, 0},
8497 {0x30, 0x15, 0x15, 0, 0},
8498 {0x31, 0xf, 0xf, 0, 0},
8509 {0x3C, 0x13, 0x13, 0, 0},
8510 {0x3D, 0xf, 0xf, 0, 0},
8511 {0x3E, 0x18, 0x18, 0, 0},
8514 {0x41, 0x20, 0x20, 0, 0},
8515 {0x42, 0x20, 0x20, 0, 0},
8517 {0x44, 0x77, 0x77, 0, 0},
8518 {0x45, 0x7, 0x7, 0, 0},
8519 {0x46, 0x1, 0x1, 0, 0},
8520 {0x47, 0x4, 0x4, 0, 0},
8521 {0x48, 0xf, 0xf, 0, 0},
8522 {0x49, 0x30, 0x30, 0, 0},
8523 {0x4A, 0x32, 0x32, 0, 0},
8524 {0x4B, 0xd, 0xd, 0, 0},
8525 {0x4C, 0xd, 0xd, 0, 0},
8526 {0x4D, 0x4, 0x4, 0, 0},
8527 {0x4E, 0x6, 0x6, 0, 0},
8528 {0x4F, 0x1, 0x1, 0, 0},
8529 {0x50, 0x1c, 0x1c, 0, 0},
8530 {0x51, 0x2, 0x2, 0, 0},
8531 {0x52, 0x2, 0x2, 0, 0},
8532 {0x53, 0xf7, 0xf7, 1, 1},
8533 {0x54, 0xb4, 0xb4, 0, 0},
8534 {0x55, 0xd2, 0xd2, 0, 0},
8537 {0x58, 0x4, 0x4, 0, 0},
8538 {0x59, 0x96, 0x96, 0, 0},
8539 {0x5A, 0x3e, 0x3e, 0, 0},
8540 {0x5B, 0x3e, 0x3e, 0, 0},
8541 {0x5C, 0x13, 0x13, 0, 0},
8542 {0x5D, 0x2, 0x2, 0, 0},
8544 {0x5F, 0x7, 0x7, 0, 0},
8545 {0x60, 0x7, 0x7, 1, 1},
8546 {0x61, 0x8, 0x8, 0, 0},
8547 {0x62, 0x3, 0x3, 0, 0},
8553 {0x68, 0x40, 0x40, 0, 0},
8558 {0x6D, 0x1, 0x1, 0, 0},
8561 {0x70, 0x60, 0x60, 0, 0},
8562 {0x71, 0x66, 0x66, 0, 0},
8563 {0x72, 0xc, 0xc, 0, 0},
8564 {0x73, 0x66, 0x66, 0, 0},
8565 {0x74, 0x8f, 0x8f, 1, 1},
8567 {0x76, 0xcc, 0xcc, 0, 0},
8568 {0x77, 0x1, 0x1, 0, 0},
8569 {0x78, 0x66, 0x66, 0, 0},
8570 {0x79, 0x66, 0x66, 0, 0},
8582 {0x85, 0xff, 0xff, 0, 0},
8608 {0x9F, 0x6, 0x6, 0, 0},
8609 {0xA0, 0x66, 0x66, 0, 0},
8610 {0xA1, 0x66, 0x66, 0, 0},
8611 {0xA2, 0x66, 0x66, 0, 0},
8612 {0xA3, 0x66, 0x66, 0, 0},
8613 {0xA4, 0x66, 0x66, 0, 0},
8614 {0xA5, 0x66, 0x66, 0, 0},
8615 {0xA6, 0x66, 0x66, 0, 0},
8616 {0xA7, 0x66, 0x66, 0, 0},
8617 {0xA8, 0x66, 0x66, 0, 0},
8618 {0xA9, 0x66, 0x66, 0, 0},
8619 {0xAA, 0x66, 0x66, 0, 0},
8620 {0xAB, 0x66, 0x66, 0, 0},
8621 {0xAC, 0x66, 0x66, 0, 0},
8622 {0xAD, 0x66, 0x66, 0, 0},
8623 {0xAE, 0x66, 0x66, 0, 0},
8624 {0xAF, 0x66, 0x66, 0, 0},
8625 {0xB0, 0x66, 0x66, 0, 0},
8626 {0xB1, 0x66, 0x66, 0, 0},
8627 {0xB2, 0x66, 0x66, 0, 0},
8628 {0xB3, 0xa, 0xa, 0, 0},
8632 {0xFFFF, 0, 0, 0, 0}
8635 struct radio_regs regs_TX_2056_A1
[] = {
8667 {0x21, 0x88, 0x88, 0, 0},
8668 {0x22, 0x88, 0x88, 0, 0},
8669 {0x23, 0x88, 0x88, 0, 0},
8670 {0x24, 0x88, 0x88, 0, 0},
8671 {0x25, 0xc, 0xc, 0, 0},
8673 {0x27, 0x3, 0x3, 0, 0},
8675 {0x29, 0x3, 0x3, 0, 0},
8676 {0x2A, 0x37, 0x37, 0, 0},
8677 {0x2B, 0x3, 0x3, 0, 0},
8680 {0x2E, 0x1, 0x1, 0, 0},
8681 {0x2F, 0x1, 0x1, 0, 0},
8685 {0x33, 0x11, 0x11, 0, 0},
8686 {0x34, 0x11, 0x11, 0, 0},
8689 {0x37, 0x3, 0x3, 0, 0},
8690 {0x38, 0xf, 0xf, 0, 0},
8692 {0x3A, 0x2d, 0x2d, 0, 0},
8694 {0x3C, 0x6e, 0x6e, 0, 0},
8695 {0x3D, 0xf0, 0xf0, 1, 1},
8699 {0x41, 0x3, 0x3, 0, 0},
8700 {0x42, 0x3, 0x3, 0, 0},
8702 {0x44, 0x1e, 0x1e, 0, 0},
8704 {0x46, 0x6e, 0x6e, 0, 0},
8705 {0x47, 0xf0, 0xf0, 1, 1},
8707 {0x49, 0x2, 0x2, 0, 0},
8708 {0x4A, 0xff, 0xff, 1, 1},
8709 {0x4B, 0xc, 0xc, 0, 0},
8711 {0x4D, 0x38, 0x38, 0, 0},
8712 {0x4E, 0x70, 0x70, 1, 1},
8713 {0x4F, 0x2, 0x2, 0, 0},
8714 {0x50, 0x88, 0x88, 0, 0},
8715 {0x51, 0xc, 0xc, 0, 0},
8717 {0x53, 0x8, 0x8, 0, 0},
8718 {0x54, 0x70, 0x70, 1, 1},
8719 {0x55, 0x2, 0x2, 0, 0},
8720 {0x56, 0xff, 0xff, 1, 1},
8722 {0x58, 0x83, 0x83, 0, 0},
8723 {0x59, 0x77, 0x77, 1, 1},
8725 {0x5B, 0x2, 0x2, 0, 0},
8726 {0x5C, 0x88, 0x88, 0, 0},
8728 {0x5E, 0x8, 0x8, 0, 0},
8729 {0x5F, 0x77, 0x77, 1, 1},
8730 {0x60, 0x1, 0x1, 0, 0},
8732 {0x62, 0x7, 0x7, 0, 0},
8734 {0x64, 0x7, 0x7, 0, 0},
8737 {0x67, 0x72, 0x72, 1, 1},
8739 {0x69, 0xa, 0xa, 0, 0},
8747 {0x71, 0x2, 0x2, 0, 0},
8750 {0x74, 0xe, 0xe, 0, 0},
8751 {0x75, 0xe, 0xe, 0, 0},
8752 {0x76, 0xe, 0xe, 0, 0},
8753 {0x77, 0x13, 0x13, 0, 0},
8754 {0x78, 0x13, 0x13, 0, 0},
8755 {0x79, 0x1b, 0x1b, 0, 0},
8756 {0x7A, 0x1b, 0x1b, 0, 0},
8757 {0x7B, 0x55, 0x55, 0, 0},
8758 {0x7C, 0x5b, 0x5b, 0, 0},
8781 {0xFFFF, 0, 0, 0, 0}
8784 struct radio_regs regs_RX_2056_A1
[] = {
8815 {0x20, 0x3, 0x3, 0, 0},
8818 {0x23, 0x90, 0x90, 0, 0},
8819 {0x24, 0x55, 0x55, 0, 0},
8820 {0x25, 0x15, 0x15, 0, 0},
8821 {0x26, 0x5, 0x5, 0, 0},
8822 {0x27, 0x15, 0x15, 0, 0},
8823 {0x28, 0x5, 0x5, 0, 0},
8824 {0x29, 0x20, 0x20, 0, 0},
8825 {0x2A, 0x11, 0x11, 0, 0},
8826 {0x2B, 0x90, 0x90, 0, 0},
8828 {0x2D, 0x88, 0x88, 0, 0},
8829 {0x2E, 0x32, 0x32, 0, 0},
8830 {0x2F, 0x77, 0x77, 0, 0},
8831 {0x30, 0x17, 0x17, 1, 1},
8832 {0x31, 0xff, 0xff, 1, 1},
8833 {0x32, 0x20, 0x20, 0, 0},
8835 {0x34, 0x88, 0x88, 0, 0},
8836 {0x35, 0x32, 0x32, 0, 0},
8837 {0x36, 0x77, 0x77, 0, 0},
8838 {0x37, 0x17, 0x17, 1, 1},
8839 {0x38, 0xf0, 0xf0, 1, 1},
8840 {0x39, 0x20, 0x20, 0, 0},
8841 {0x3A, 0x8, 0x8, 0, 0},
8842 {0x3B, 0x55, 0x55, 1, 1},
8844 {0x3D, 0x44, 0x44, 1, 1},
8846 {0x3F, 0x44, 0x44, 0, 0},
8847 {0x40, 0xf, 0xf, 1, 1},
8848 {0x41, 0x6, 0x6, 0, 0},
8849 {0x42, 0x4, 0x4, 0, 0},
8850 {0x43, 0x50, 0x50, 1, 1},
8851 {0x44, 0x8, 0x8, 0, 0},
8852 {0x45, 0x55, 0x55, 1, 1},
8854 {0x47, 0x11, 0x11, 0, 0},
8856 {0x49, 0x44, 0x44, 0, 0},
8857 {0x4A, 0x7, 0x7, 0, 0},
8858 {0x4B, 0x6, 0x6, 0, 0},
8859 {0x4C, 0x4, 0x4, 0, 0},
8862 {0x4F, 0x26, 0x26, 1, 1},
8863 {0x50, 0x26, 0x26, 1, 1},
8864 {0x51, 0xf, 0xf, 1, 1},
8865 {0x52, 0xf, 0xf, 1, 1},
8866 {0x53, 0x44, 0x44, 0, 0},
8869 {0x56, 0x8, 0x8, 0, 0},
8870 {0x57, 0x8, 0x8, 0, 0},
8871 {0x58, 0x7, 0x7, 0, 0},
8872 {0x59, 0x22, 0x22, 0, 0},
8873 {0x5A, 0x22, 0x22, 0, 0},
8874 {0x5B, 0x2, 0x2, 0, 0},
8875 {0x5C, 0x2f, 0x2f, 1, 1},
8876 {0x5D, 0x7, 0x7, 0, 0},
8877 {0x5E, 0x55, 0x55, 0, 0},
8878 {0x5F, 0x23, 0x23, 0, 0},
8879 {0x60, 0x41, 0x41, 0, 0},
8880 {0x61, 0x1, 0x1, 0, 0},
8881 {0x62, 0xa, 0xa, 0, 0},
8890 {0x6B, 0xc, 0xc, 0, 0},
8897 {0x72, 0x22, 0x22, 0, 0},
8898 {0x73, 0x22, 0x22, 0, 0},
8900 {0x75, 0xa, 0xa, 0, 0},
8901 {0x76, 0x1, 0x1, 0, 0},
8902 {0x77, 0x22, 0x22, 0, 0},
8903 {0x78, 0x30, 0x30, 0, 0},
8932 {0xFFFF, 0, 0, 0, 0}
8935 struct radio_regs regs_SYN_2056_rev5
[] = {
8943 {0x09, 0x1, 0x1, 0, 0},
8968 {0x22, 0x60, 0x60, 0, 0},
8969 {0x23, 0x6, 0x6, 0, 0},
8970 {0x24, 0xc, 0xc, 0, 0},
8974 {0x28, 0x1, 0x1, 0, 0},
8981 {0x2F, 0x1f, 0x1f, 0, 0},
8982 {0x30, 0x15, 0x15, 0, 0},
8983 {0x31, 0xf, 0xf, 0, 0},
8994 {0x3C, 0x13, 0x13, 0, 0},
8995 {0x3D, 0xf, 0xf, 0, 0},
8996 {0x3E, 0x18, 0x18, 0, 0},
8999 {0x41, 0x20, 0x20, 0, 0},
9000 {0x42, 0x20, 0x20, 0, 0},
9002 {0x44, 0x77, 0x77, 0, 0},
9003 {0x45, 0x7, 0x7, 0, 0},
9004 {0x46, 0x1, 0x1, 0, 0},
9005 {0x47, 0x4, 0x4, 0, 0},
9006 {0x48, 0xf, 0xf, 0, 0},
9007 {0x49, 0x30, 0x30, 0, 0},
9008 {0x4A, 0x32, 0x32, 0, 0},
9009 {0x4B, 0xd, 0xd, 0, 0},
9010 {0x4C, 0xd, 0xd, 0, 0},
9011 {0x4D, 0x4, 0x4, 0, 0},
9012 {0x4E, 0x6, 0x6, 0, 0},
9013 {0x4F, 0x1, 0x1, 0, 0},
9014 {0x50, 0x1c, 0x1c, 0, 0},
9015 {0x51, 0x2, 0x2, 0, 0},
9016 {0x52, 0x2, 0x2, 0, 0},
9017 {0x53, 0xf7, 0xf7, 1, 1},
9018 {0x54, 0xb4, 0xb4, 0, 0},
9019 {0x55, 0xd2, 0xd2, 0, 0},
9022 {0x58, 0x4, 0x4, 0, 0},
9023 {0x59, 0x96, 0x96, 0, 0},
9024 {0x5A, 0x3e, 0x3e, 0, 0},
9025 {0x5B, 0x3e, 0x3e, 0, 0},
9026 {0x5C, 0x13, 0x13, 0, 0},
9027 {0x5D, 0x2, 0x2, 0, 0},
9029 {0x5F, 0x7, 0x7, 0, 0},
9030 {0x60, 0x7, 0x7, 1, 1},
9031 {0x61, 0x8, 0x8, 0, 0},
9032 {0x62, 0x3, 0x3, 0, 0},
9038 {0x68, 0x40, 0x40, 0, 0},
9043 {0x6D, 0x1, 0x1, 0, 0},
9046 {0x70, 0x60, 0x60, 0, 0},
9047 {0x71, 0x66, 0x66, 0, 0},
9048 {0x72, 0xc, 0xc, 0, 0},
9049 {0x73, 0x66, 0x66, 0, 0},
9050 {0x74, 0x8f, 0x8f, 1, 1},
9052 {0x76, 0xcc, 0xcc, 0, 0},
9053 {0x77, 0x1, 0x1, 0, 0},
9054 {0x78, 0x66, 0x66, 0, 0},
9055 {0x79, 0x66, 0x66, 0, 0},
9067 {0x85, 0xff, 0xff, 0, 0},
9093 {0x9F, 0x6, 0x6, 0, 0},
9094 {0xA0, 0x66, 0x66, 0, 0},
9095 {0xA1, 0x66, 0x66, 0, 0},
9096 {0xA2, 0x66, 0x66, 0, 0},
9097 {0xA3, 0x66, 0x66, 0, 0},
9098 {0xA4, 0x66, 0x66, 0, 0},
9099 {0xA5, 0x66, 0x66, 0, 0},
9100 {0xA6, 0x66, 0x66, 0, 0},
9101 {0xA7, 0x66, 0x66, 0, 0},
9102 {0xA8, 0x66, 0x66, 0, 0},
9103 {0xA9, 0x66, 0x66, 0, 0},
9104 {0xAA, 0x66, 0x66, 0, 0},
9105 {0xAB, 0x66, 0x66, 0, 0},
9106 {0xAC, 0x66, 0x66, 0, 0},
9107 {0xAD, 0x66, 0x66, 0, 0},
9108 {0xAE, 0x66, 0x66, 0, 0},
9109 {0xAF, 0x66, 0x66, 0, 0},
9110 {0xB0, 0x66, 0x66, 0, 0},
9111 {0xB1, 0x66, 0x66, 0, 0},
9112 {0xB2, 0x66, 0x66, 0, 0},
9113 {0xB3, 0xa, 0xa, 0, 0},
9117 {0xFFFF, 0, 0, 0, 0}
9120 struct radio_regs regs_TX_2056_rev5
[] = {
9152 {0x21, 0x88, 0x88, 0, 0},
9153 {0x22, 0x88, 0x88, 0, 0},
9154 {0x23, 0x88, 0x88, 0, 0},
9155 {0x24, 0x88, 0x88, 0, 0},
9156 {0x25, 0xc, 0xc, 0, 0},
9158 {0x27, 0x3, 0x3, 0, 0},
9160 {0x29, 0x3, 0x3, 0, 0},
9161 {0x2A, 0x37, 0x37, 0, 0},
9162 {0x2B, 0x3, 0x3, 0, 0},
9165 {0x2E, 0x1, 0x1, 0, 0},
9166 {0x2F, 0x1, 0x1, 0, 0},
9170 {0x33, 0x11, 0x11, 0, 0},
9171 {0x34, 0x11, 0x11, 0, 0},
9174 {0x37, 0x3, 0x3, 0, 0},
9175 {0x38, 0xf, 0xf, 0, 0},
9177 {0x3A, 0x2d, 0x2d, 0, 0},
9179 {0x3C, 0x6e, 0x6e, 0, 0},
9180 {0x3D, 0xf0, 0xf0, 1, 1},
9184 {0x41, 0x3, 0x3, 0, 0},
9185 {0x42, 0x3, 0x3, 0, 0},
9187 {0x44, 0x1e, 0x1e, 0, 0},
9189 {0x46, 0x6e, 0x6e, 0, 0},
9190 {0x47, 0xf0, 0xf0, 1, 1},
9192 {0x49, 0x2, 0x2, 0, 0},
9193 {0x4A, 0xff, 0xff, 1, 1},
9194 {0x4B, 0xc, 0xc, 0, 0},
9196 {0x4D, 0x38, 0x38, 0, 0},
9197 {0x4E, 0x70, 0x70, 1, 1},
9198 {0x4F, 0x2, 0x2, 0, 0},
9199 {0x50, 0x88, 0x88, 0, 0},
9200 {0x51, 0xc, 0xc, 0, 0},
9202 {0x53, 0x8, 0x8, 0, 0},
9203 {0x54, 0x70, 0x70, 1, 1},
9204 {0x55, 0x2, 0x2, 0, 0},
9205 {0x56, 0xff, 0xff, 1, 1},
9207 {0x58, 0x83, 0x83, 0, 0},
9208 {0x59, 0x77, 0x77, 1, 1},
9210 {0x5B, 0x2, 0x2, 0, 0},
9211 {0x5C, 0x88, 0x88, 0, 0},
9213 {0x5E, 0x8, 0x8, 0, 0},
9214 {0x5F, 0x77, 0x77, 1, 1},
9215 {0x60, 0x1, 0x1, 0, 0},
9217 {0x62, 0x7, 0x7, 0, 0},
9219 {0x64, 0x7, 0x7, 0, 0},
9224 {0x69, 0xa, 0xa, 0, 0},
9232 {0x71, 0x2, 0x2, 0, 0},
9235 {0x74, 0xe, 0xe, 0, 0},
9236 {0x75, 0xe, 0xe, 0, 0},
9237 {0x76, 0xe, 0xe, 0, 0},
9238 {0x77, 0x13, 0x13, 0, 0},
9239 {0x78, 0x13, 0x13, 0, 0},
9240 {0x79, 0x1b, 0x1b, 0, 0},
9241 {0x7A, 0x1b, 0x1b, 0, 0},
9242 {0x7B, 0x55, 0x55, 0, 0},
9243 {0x7C, 0x5b, 0x5b, 0, 0},
9266 {0x93, 0x70, 0x70, 0, 0},
9267 {0x94, 0x70, 0x70, 0, 0},
9268 {0x95, 0x71, 0x71, 1, 1},
9269 {0x96, 0x71, 0x71, 1, 1},
9270 {0x97, 0x72, 0x72, 1, 1},
9271 {0x98, 0x73, 0x73, 1, 1},
9272 {0x99, 0x74, 0x74, 1, 1},
9273 {0x9A, 0x75, 0x75, 1, 1},
9274 {0xFFFF, 0, 0, 0, 0}
9277 struct radio_regs regs_RX_2056_rev5
[] = {
9308 {0x20, 0x3, 0x3, 0, 0},
9311 {0x23, 0x90, 0x90, 0, 0},
9312 {0x24, 0x55, 0x55, 0, 0},
9313 {0x25, 0x15, 0x15, 0, 0},
9314 {0x26, 0x5, 0x5, 0, 0},
9315 {0x27, 0x15, 0x15, 0, 0},
9316 {0x28, 0x5, 0x5, 0, 0},
9317 {0x29, 0x20, 0x20, 0, 0},
9318 {0x2A, 0x11, 0x11, 0, 0},
9319 {0x2B, 0x90, 0x90, 0, 0},
9321 {0x2D, 0x88, 0x88, 0, 0},
9322 {0x2E, 0x32, 0x32, 0, 0},
9323 {0x2F, 0x77, 0x77, 0, 0},
9324 {0x30, 0x17, 0x17, 1, 1},
9325 {0x31, 0xff, 0xff, 1, 1},
9326 {0x32, 0x20, 0x20, 0, 0},
9328 {0x34, 0x88, 0x88, 0, 0},
9329 {0x35, 0x32, 0x32, 0, 0},
9330 {0x36, 0x77, 0x77, 0, 0},
9331 {0x37, 0x17, 0x17, 1, 1},
9332 {0x38, 0xf0, 0xf0, 1, 1},
9333 {0x39, 0x20, 0x20, 0, 0},
9334 {0x3A, 0x8, 0x8, 0, 0},
9335 {0x3B, 0x55, 0x55, 1, 1},
9337 {0x3D, 0x88, 0x88, 1, 1},
9340 {0x40, 0x7, 0x7, 1, 1},
9341 {0x41, 0x6, 0x6, 0, 0},
9342 {0x42, 0x4, 0x4, 0, 0},
9344 {0x44, 0x8, 0x8, 0, 0},
9345 {0x45, 0x55, 0x55, 1, 1},
9347 {0x47, 0x11, 0x11, 0, 0},
9350 {0x4A, 0x7, 0x7, 0, 0},
9351 {0x4B, 0x6, 0x6, 0, 0},
9352 {0x4C, 0x4, 0x4, 0, 0},
9355 {0x4F, 0x26, 0x26, 1, 1},
9356 {0x50, 0x26, 0x26, 1, 1},
9357 {0x51, 0xf, 0xf, 1, 1},
9358 {0x52, 0xf, 0xf, 1, 1},
9359 {0x53, 0x44, 0x44, 0, 0},
9362 {0x56, 0x8, 0x8, 0, 0},
9363 {0x57, 0x8, 0x8, 0, 0},
9364 {0x58, 0x7, 0x7, 0, 0},
9365 {0x59, 0x22, 0x22, 0, 0},
9366 {0x5A, 0x22, 0x22, 0, 0},
9367 {0x5B, 0x2, 0x2, 0, 0},
9368 {0x5C, 0x4, 0x4, 1, 1},
9369 {0x5D, 0x7, 0x7, 0, 0},
9370 {0x5E, 0x55, 0x55, 0, 0},
9371 {0x5F, 0x23, 0x23, 0, 0},
9372 {0x60, 0x41, 0x41, 0, 0},
9373 {0x61, 0x1, 0x1, 0, 0},
9374 {0x62, 0xa, 0xa, 0, 0},
9383 {0x6B, 0xc, 0xc, 0, 0},
9390 {0x72, 0x22, 0x22, 0, 0},
9391 {0x73, 0x22, 0x22, 0, 0},
9393 {0x75, 0xa, 0xa, 0, 0},
9394 {0x76, 0x1, 0x1, 0, 0},
9395 {0x77, 0x22, 0x22, 0, 0},
9396 {0x78, 0x30, 0x30, 0, 0},
9425 {0xFFFF, 0, 0, 0, 0}
9428 struct radio_regs regs_SYN_2056_rev6
[] = {
9436 {0x09, 0x1, 0x1, 0, 0},
9461 {0x22, 0x60, 0x60, 0, 0},
9462 {0x23, 0x6, 0x6, 0, 0},
9463 {0x24, 0xc, 0xc, 0, 0},
9467 {0x28, 0x1, 0x1, 0, 0},
9474 {0x2F, 0x1f, 0x1f, 0, 0},
9475 {0x30, 0x15, 0x15, 0, 0},
9476 {0x31, 0xf, 0xf, 0, 0},
9487 {0x3C, 0x13, 0x13, 0, 0},
9488 {0x3D, 0xf, 0xf, 0, 0},
9489 {0x3E, 0x18, 0x18, 0, 0},
9492 {0x41, 0x20, 0x20, 0, 0},
9493 {0x42, 0x20, 0x20, 0, 0},
9495 {0x44, 0x77, 0x77, 0, 0},
9496 {0x45, 0x7, 0x7, 0, 0},
9497 {0x46, 0x1, 0x1, 0, 0},
9498 {0x47, 0x4, 0x4, 0, 0},
9499 {0x48, 0xf, 0xf, 0, 0},
9500 {0x49, 0x30, 0x30, 0, 0},
9501 {0x4A, 0x32, 0x32, 0, 0},
9502 {0x4B, 0xd, 0xd, 0, 0},
9503 {0x4C, 0xd, 0xd, 0, 0},
9504 {0x4D, 0x4, 0x4, 0, 0},
9505 {0x4E, 0x6, 0x6, 0, 0},
9506 {0x4F, 0x1, 0x1, 0, 0},
9507 {0x50, 0x1c, 0x1c, 0, 0},
9508 {0x51, 0x2, 0x2, 0, 0},
9509 {0x52, 0x2, 0x2, 0, 0},
9510 {0x53, 0xf7, 0xf7, 1, 1},
9511 {0x54, 0xb4, 0xb4, 0, 0},
9512 {0x55, 0xd2, 0xd2, 0, 0},
9515 {0x58, 0x4, 0x4, 0, 0},
9516 {0x59, 0x96, 0x96, 0, 0},
9517 {0x5A, 0x3e, 0x3e, 0, 0},
9518 {0x5B, 0x3e, 0x3e, 0, 0},
9519 {0x5C, 0x13, 0x13, 0, 0},
9520 {0x5D, 0x2, 0x2, 0, 0},
9522 {0x5F, 0x7, 0x7, 0, 0},
9523 {0x60, 0x7, 0x7, 1, 1},
9524 {0x61, 0x8, 0x8, 0, 0},
9525 {0x62, 0x3, 0x3, 0, 0},
9531 {0x68, 0x40, 0x40, 0, 0},
9536 {0x6D, 0x1, 0x1, 0, 0},
9539 {0x70, 0x60, 0x60, 0, 0},
9540 {0x71, 0x66, 0x66, 0, 0},
9541 {0x72, 0xc, 0xc, 0, 0},
9542 {0x73, 0x66, 0x66, 0, 0},
9543 {0x74, 0x8f, 0x8f, 1, 1},
9545 {0x76, 0xcc, 0xcc, 0, 0},
9546 {0x77, 0x1, 0x1, 0, 0},
9547 {0x78, 0x66, 0x66, 0, 0},
9548 {0x79, 0x66, 0x66, 0, 0},
9560 {0x85, 0xff, 0xff, 0, 0},
9586 {0x9F, 0x6, 0x6, 0, 0},
9587 {0xA0, 0x66, 0x66, 0, 0},
9588 {0xA1, 0x66, 0x66, 0, 0},
9589 {0xA2, 0x66, 0x66, 0, 0},
9590 {0xA3, 0x66, 0x66, 0, 0},
9591 {0xA4, 0x66, 0x66, 0, 0},
9592 {0xA5, 0x66, 0x66, 0, 0},
9593 {0xA6, 0x66, 0x66, 0, 0},
9594 {0xA7, 0x66, 0x66, 0, 0},
9595 {0xA8, 0x66, 0x66, 0, 0},
9596 {0xA9, 0x66, 0x66, 0, 0},
9597 {0xAA, 0x66, 0x66, 0, 0},
9598 {0xAB, 0x66, 0x66, 0, 0},
9599 {0xAC, 0x66, 0x66, 0, 0},
9600 {0xAD, 0x66, 0x66, 0, 0},
9601 {0xAE, 0x66, 0x66, 0, 0},
9602 {0xAF, 0x66, 0x66, 0, 0},
9603 {0xB0, 0x66, 0x66, 0, 0},
9604 {0xB1, 0x66, 0x66, 0, 0},
9605 {0xB2, 0x66, 0x66, 0, 0},
9606 {0xB3, 0xa, 0xa, 0, 0},
9610 {0xFFFF, 0, 0, 0, 0}
9613 struct radio_regs regs_TX_2056_rev6
[] = {
9645 {0x21, 0x88, 0x88, 0, 0},
9646 {0x22, 0x88, 0x88, 0, 0},
9647 {0x23, 0x88, 0x88, 0, 0},
9648 {0x24, 0x88, 0x88, 0, 0},
9649 {0x25, 0xc, 0xc, 0, 0},
9651 {0x27, 0x3, 0x3, 0, 0},
9653 {0x29, 0x3, 0x3, 0, 0},
9654 {0x2A, 0x37, 0x37, 0, 0},
9655 {0x2B, 0x3, 0x3, 0, 0},
9658 {0x2E, 0x1, 0x1, 0, 0},
9659 {0x2F, 0x1, 0x1, 0, 0},
9663 {0x33, 0x11, 0x11, 0, 0},
9664 {0x34, 0xee, 0xee, 1, 1},
9667 {0x37, 0x3, 0x3, 0, 0},
9668 {0x38, 0x50, 0x50, 1, 1},
9670 {0x3A, 0x50, 0x50, 1, 1},
9672 {0x3C, 0x6e, 0x6e, 0, 0},
9673 {0x3D, 0xf0, 0xf0, 1, 1},
9677 {0x41, 0x3, 0x3, 0, 0},
9678 {0x42, 0x3, 0x3, 0, 0},
9680 {0x44, 0x1e, 0x1e, 0, 0},
9682 {0x46, 0x6e, 0x6e, 0, 0},
9683 {0x47, 0xf0, 0xf0, 1, 1},
9685 {0x49, 0x2, 0x2, 0, 0},
9686 {0x4A, 0xff, 0xff, 1, 1},
9687 {0x4B, 0xc, 0xc, 0, 0},
9689 {0x4D, 0x38, 0x38, 0, 0},
9690 {0x4E, 0x70, 0x70, 1, 1},
9691 {0x4F, 0x2, 0x2, 0, 0},
9692 {0x50, 0x88, 0x88, 0, 0},
9693 {0x51, 0xc, 0xc, 0, 0},
9695 {0x53, 0x8, 0x8, 0, 0},
9696 {0x54, 0x70, 0x70, 1, 1},
9697 {0x55, 0x2, 0x2, 0, 0},
9698 {0x56, 0xff, 0xff, 1, 1},
9700 {0x58, 0x83, 0x83, 0, 0},
9701 {0x59, 0x77, 0x77, 1, 1},
9703 {0x5B, 0x2, 0x2, 0, 0},
9704 {0x5C, 0x88, 0x88, 0, 0},
9706 {0x5E, 0x8, 0x8, 0, 0},
9707 {0x5F, 0x77, 0x77, 1, 1},
9708 {0x60, 0x1, 0x1, 0, 0},
9710 {0x62, 0x7, 0x7, 0, 0},
9712 {0x64, 0x7, 0x7, 0, 0},
9717 {0x69, 0xa, 0xa, 0, 0},
9725 {0x71, 0x2, 0x2, 0, 0},
9728 {0x74, 0xe, 0xe, 0, 0},
9729 {0x75, 0xe, 0xe, 0, 0},
9730 {0x76, 0xe, 0xe, 0, 0},
9731 {0x77, 0x13, 0x13, 0, 0},
9732 {0x78, 0x13, 0x13, 0, 0},
9733 {0x79, 0x1b, 0x1b, 0, 0},
9734 {0x7A, 0x1b, 0x1b, 0, 0},
9735 {0x7B, 0x55, 0x55, 0, 0},
9736 {0x7C, 0x5b, 0x5b, 0, 0},
9737 {0x7D, 0x30, 0x30, 1, 1},
9759 {0x93, 0x70, 0x70, 0, 0},
9760 {0x94, 0x70, 0x70, 0, 0},
9761 {0x95, 0x70, 0x70, 0, 0},
9762 {0x96, 0x70, 0x70, 0, 0},
9763 {0x97, 0x70, 0x70, 0, 0},
9764 {0x98, 0x70, 0x70, 0, 0},
9765 {0x99, 0x70, 0x70, 0, 0},
9766 {0x9A, 0x70, 0x70, 0, 0},
9767 {0xFFFF, 0, 0, 0, 0}
9770 struct radio_regs regs_RX_2056_rev6
[] = {
9801 {0x20, 0x3, 0x3, 0, 0},
9804 {0x23, 0x90, 0x90, 0, 0},
9805 {0x24, 0x55, 0x55, 0, 0},
9806 {0x25, 0x15, 0x15, 0, 0},
9807 {0x26, 0x5, 0x5, 0, 0},
9808 {0x27, 0x15, 0x15, 0, 0},
9809 {0x28, 0x5, 0x5, 0, 0},
9810 {0x29, 0x20, 0x20, 0, 0},
9811 {0x2A, 0x11, 0x11, 0, 0},
9812 {0x2B, 0x90, 0x90, 0, 0},
9814 {0x2D, 0x88, 0x88, 0, 0},
9815 {0x2E, 0x32, 0x32, 0, 0},
9816 {0x2F, 0x77, 0x77, 0, 0},
9817 {0x30, 0x17, 0x17, 1, 1},
9818 {0x31, 0xff, 0xff, 1, 1},
9819 {0x32, 0x20, 0x20, 0, 0},
9821 {0x34, 0x88, 0x88, 0, 0},
9822 {0x35, 0x32, 0x32, 0, 0},
9823 {0x36, 0x77, 0x77, 0, 0},
9824 {0x37, 0x17, 0x17, 1, 1},
9825 {0x38, 0xf0, 0xf0, 1, 1},
9826 {0x39, 0x20, 0x20, 0, 0},
9827 {0x3A, 0x8, 0x8, 0, 0},
9828 {0x3B, 0x55, 0x55, 1, 1},
9830 {0x3D, 0x88, 0x88, 1, 1},
9832 {0x3F, 0x44, 0x44, 0, 0},
9833 {0x40, 0x7, 0x7, 1, 1},
9834 {0x41, 0x6, 0x6, 0, 0},
9835 {0x42, 0x4, 0x4, 0, 0},
9837 {0x44, 0x8, 0x8, 0, 0},
9838 {0x45, 0x55, 0x55, 1, 1},
9840 {0x47, 0x11, 0x11, 0, 0},
9842 {0x49, 0x44, 0x44, 0, 0},
9843 {0x4A, 0x7, 0x7, 0, 0},
9844 {0x4B, 0x6, 0x6, 0, 0},
9845 {0x4C, 0x4, 0x4, 0, 0},
9848 {0x4F, 0x26, 0x26, 1, 1},
9849 {0x50, 0x26, 0x26, 1, 1},
9850 {0x51, 0xf, 0xf, 1, 1},
9851 {0x52, 0xf, 0xf, 1, 1},
9852 {0x53, 0x44, 0x44, 0, 0},
9855 {0x56, 0x8, 0x8, 0, 0},
9856 {0x57, 0x8, 0x8, 0, 0},
9857 {0x58, 0x7, 0x7, 0, 0},
9858 {0x59, 0x22, 0x22, 0, 0},
9859 {0x5A, 0x22, 0x22, 0, 0},
9860 {0x5B, 0x2, 0x2, 0, 0},
9861 {0x5C, 0x4, 0x4, 1, 1},
9862 {0x5D, 0x7, 0x7, 0, 0},
9863 {0x5E, 0x55, 0x55, 0, 0},
9864 {0x5F, 0x23, 0x23, 0, 0},
9865 {0x60, 0x41, 0x41, 0, 0},
9866 {0x61, 0x1, 0x1, 0, 0},
9867 {0x62, 0xa, 0xa, 0, 0},
9876 {0x6B, 0xc, 0xc, 0, 0},
9883 {0x72, 0x22, 0x22, 0, 0},
9884 {0x73, 0x22, 0x22, 0, 0},
9886 {0x75, 0xa, 0xa, 0, 0},
9887 {0x76, 0x1, 0x1, 0, 0},
9888 {0x77, 0x22, 0x22, 0, 0},
9889 {0x78, 0x30, 0x30, 0, 0},
9894 {0x7D, 0x5, 0x5, 1, 1},
9918 {0xFFFF, 0, 0, 0, 0}
9921 struct radio_regs regs_SYN_2056_rev7
[] = {
9929 {0x09, 0x1, 0x1, 0, 0},
9954 {0x22, 0x60, 0x60, 0, 0},
9955 {0x23, 0x6, 0x6, 0, 0},
9956 {0x24, 0xc, 0xc, 0, 0},
9960 {0x28, 0x1, 0x1, 0, 0},
9967 {0x2F, 0x1f, 0x1f, 0, 0},
9968 {0x30, 0x15, 0x15, 0, 0},
9969 {0x31, 0xf, 0xf, 0, 0},
9980 {0x3C, 0x13, 0x13, 0, 0},
9981 {0x3D, 0xf, 0xf, 0, 0},
9982 {0x3E, 0x18, 0x18, 0, 0},
9985 {0x41, 0x20, 0x20, 0, 0},
9986 {0x42, 0x20, 0x20, 0, 0},
9988 {0x44, 0x77, 0x77, 0, 0},
9989 {0x45, 0x7, 0x7, 0, 0},
9990 {0x46, 0x1, 0x1, 0, 0},
9991 {0x47, 0x4, 0x4, 0, 0},
9992 {0x48, 0xf, 0xf, 0, 0},
9993 {0x49, 0x30, 0x30, 0, 0},
9994 {0x4A, 0x32, 0x32, 0, 0},
9995 {0x4B, 0xd, 0xd, 0, 0},
9996 {0x4C, 0xd, 0xd, 0, 0},
9997 {0x4D, 0x4, 0x4, 0, 0},
9998 {0x4E, 0x6, 0x6, 0, 0},
9999 {0x4F, 0x1, 0x1, 0, 0},
10000 {0x50, 0x1c, 0x1c, 0, 0},
10001 {0x51, 0x2, 0x2, 0, 0},
10002 {0x52, 0x2, 0x2, 0, 0},
10003 {0x53, 0xf7, 0xf7, 1, 1},
10004 {0x54, 0xb4, 0xb4, 0, 0},
10005 {0x55, 0xd2, 0xd2, 0, 0},
10006 {0x56, 0, 0, 0, 0},
10007 {0x57, 0, 0, 0, 0},
10008 {0x58, 0x4, 0x4, 0, 0},
10009 {0x59, 0x96, 0x96, 0, 0},
10010 {0x5A, 0x3e, 0x3e, 0, 0},
10011 {0x5B, 0x3e, 0x3e, 0, 0},
10012 {0x5C, 0x13, 0x13, 0, 0},
10013 {0x5D, 0x2, 0x2, 0, 0},
10014 {0x5E, 0, 0, 0, 0},
10015 {0x5F, 0x7, 0x7, 0, 0},
10016 {0x60, 0x7, 0x7, 1, 1},
10017 {0x61, 0x8, 0x8, 0, 0},
10018 {0x62, 0x3, 0x3, 0, 0},
10019 {0x63, 0, 0, 0, 0},
10020 {0x64, 0, 0, 0, 0},
10021 {0x65, 0, 0, 0, 0},
10022 {0x66, 0, 0, 0, 0},
10023 {0x67, 0, 0, 0, 0},
10024 {0x68, 0x40, 0x40, 0, 0},
10025 {0x69, 0, 0, 0, 0},
10026 {0x6A, 0, 0, 0, 0},
10027 {0x6B, 0, 0, 0, 0},
10028 {0x6C, 0, 0, 0, 0},
10029 {0x6D, 0x1, 0x1, 0, 0},
10030 {0x6E, 0, 0, 0, 0},
10031 {0x6F, 0, 0, 0, 0},
10032 {0x70, 0x60, 0x60, 0, 0},
10033 {0x71, 0x66, 0x66, 0, 0},
10034 {0x72, 0xc, 0xc, 0, 0},
10035 {0x73, 0x66, 0x66, 0, 0},
10036 {0x74, 0x8f, 0x8f, 1, 1},
10037 {0x75, 0, 0, 0, 0},
10038 {0x76, 0xcc, 0xcc, 0, 0},
10039 {0x77, 0x1, 0x1, 0, 0},
10040 {0x78, 0x66, 0x66, 0, 0},
10041 {0x79, 0x66, 0x66, 0, 0},
10042 {0x7A, 0, 0, 0, 0},
10043 {0x7B, 0, 0, 0, 0},
10044 {0x7C, 0, 0, 0, 0},
10045 {0x7D, 0, 0, 0, 0},
10046 {0x7E, 0, 0, 0, 0},
10047 {0x7F, 0, 0, 0, 0},
10048 {0x80, 0, 0, 0, 0},
10049 {0x81, 0, 0, 0, 0},
10050 {0x82, 0, 0, 0, 0},
10051 {0x83, 0, 0, 0, 0},
10052 {0x84, 0, 0, 0, 0},
10053 {0x85, 0xff, 0xff, 0, 0},
10054 {0x86, 0, 0, 0, 0},
10055 {0x87, 0, 0, 0, 0},
10056 {0x88, 0, 0, 0, 0},
10057 {0x89, 0, 0, 0, 0},
10058 {0x8A, 0, 0, 0, 0},
10059 {0x8B, 0, 0, 0, 0},
10060 {0x8C, 0, 0, 0, 0},
10061 {0x8D, 0, 0, 0, 0},
10062 {0x8E, 0, 0, 0, 0},
10063 {0x8F, 0, 0, 0, 0},
10064 {0x90, 0, 0, 0, 0},
10065 {0x91, 0, 0, 0, 0},
10066 {0x92, 0, 0, 0, 0},
10067 {0x93, 0, 0, 0, 0},
10068 {0x94, 0, 0, 0, 0},
10069 {0x95, 0, 0, 0, 0},
10070 {0x96, 0, 0, 0, 0},
10071 {0x97, 0, 0, 0, 0},
10072 {0x98, 0, 0, 0, 0},
10073 {0x99, 0, 0, 0, 0},
10074 {0x9A, 0, 0, 0, 0},
10075 {0x9B, 0, 0, 0, 0},
10076 {0x9C, 0, 0, 0, 0},
10077 {0x9D, 0, 0, 0, 0},
10078 {0x9E, 0, 0, 0, 0},
10079 {0x9F, 0x6, 0x6, 0, 0},
10080 {0xA0, 0x66, 0x66, 0, 0},
10081 {0xA1, 0x66, 0x66, 0, 0},
10082 {0xA2, 0x66, 0x66, 0, 0},
10083 {0xA3, 0x66, 0x66, 0, 0},
10084 {0xA4, 0x66, 0x66, 0, 0},
10085 {0xA5, 0x66, 0x66, 0, 0},
10086 {0xA6, 0x66, 0x66, 0, 0},
10087 {0xA7, 0x66, 0x66, 0, 0},
10088 {0xA8, 0x66, 0x66, 0, 0},
10089 {0xA9, 0x66, 0x66, 0, 0},
10090 {0xAA, 0x66, 0x66, 0, 0},
10091 {0xAB, 0x66, 0x66, 0, 0},
10092 {0xAC, 0x66, 0x66, 0, 0},
10093 {0xAD, 0x66, 0x66, 0, 0},
10094 {0xAE, 0x66, 0x66, 0, 0},
10095 {0xAF, 0x66, 0x66, 0, 0},
10096 {0xB0, 0x66, 0x66, 0, 0},
10097 {0xB1, 0x66, 0x66, 0, 0},
10098 {0xB2, 0x66, 0x66, 0, 0},
10099 {0xB3, 0xa, 0xa, 0, 0},
10100 {0xB4, 0, 0, 0, 0},
10101 {0xB5, 0, 0, 0, 0},
10102 {0xB6, 0, 0, 0, 0},
10103 {0xFFFF, 0, 0, 0, 0},
10106 struct radio_regs regs_TX_2056_rev7
[] = {
10107 {0x02, 0, 0, 0, 0},
10108 {0x03, 0, 0, 0, 0},
10109 {0x04, 0, 0, 0, 0},
10110 {0x05, 0, 0, 0, 0},
10111 {0x06, 0, 0, 0, 0},
10112 {0x07, 0, 0, 0, 0},
10113 {0x08, 0, 0, 0, 0},
10114 {0x09, 0, 0, 0, 0},
10115 {0x0A, 0, 0, 0, 0},
10116 {0x0B, 0, 0, 0, 0},
10117 {0x0C, 0, 0, 0, 0},
10118 {0x0D, 0, 0, 0, 0},
10119 {0x0E, 0, 0, 0, 0},
10120 {0x0F, 0, 0, 0, 0},
10121 {0x10, 0, 0, 0, 0},
10122 {0x11, 0, 0, 0, 0},
10123 {0x12, 0, 0, 0, 0},
10124 {0x13, 0, 0, 0, 0},
10125 {0x14, 0, 0, 0, 0},
10126 {0x15, 0, 0, 0, 0},
10127 {0x16, 0, 0, 0, 0},
10128 {0x17, 0, 0, 0, 0},
10129 {0x18, 0, 0, 0, 0},
10130 {0x19, 0, 0, 0, 0},
10131 {0x1A, 0, 0, 0, 0},
10132 {0x1B, 0, 0, 0, 0},
10133 {0x1C, 0, 0, 0, 0},
10134 {0x1D, 0, 0, 0, 0},
10135 {0x1E, 0, 0, 0, 0},
10136 {0x1F, 0, 0, 0, 0},
10137 {0x20, 0, 0, 0, 0},
10138 {0x21, 0x88, 0x88, 0, 0},
10139 {0x22, 0x88, 0x88, 0, 0},
10140 {0x23, 0x88, 0x88, 0, 0},
10141 {0x24, 0x88, 0x88, 0, 0},
10142 {0x25, 0xc, 0xc, 0, 0},
10143 {0x26, 0, 0, 0, 0},
10144 {0x27, 0x3, 0x3, 0, 0},
10145 {0x28, 0, 0, 0, 0},
10146 {0x29, 0x3, 0x3, 0, 0},
10147 {0x2A, 0x37, 0x37, 0, 0},
10148 {0x2B, 0x3, 0x3, 0, 0},
10149 {0x2C, 0, 0, 0, 0},
10150 {0x2D, 0, 0, 0, 0},
10151 {0x2E, 0x1, 0x1, 0, 0},
10152 {0x2F, 0x1, 0x1, 0, 0},
10153 {0x30, 0, 0, 0, 0},
10154 {0x31, 0, 0, 0, 0},
10155 {0x32, 0, 0, 0, 0},
10156 {0x33, 0x11, 0x11, 0, 0},
10157 {0x34, 0xee, 0xee, 1, 1},
10158 {0x35, 0, 0, 0, 0},
10159 {0x36, 0, 0, 0, 0},
10160 {0x37, 0x3, 0x3, 0, 0},
10161 {0x38, 0x50, 0x50, 1, 1},
10162 {0x39, 0, 0, 0, 0},
10163 {0x3A, 0x50, 0x50, 1, 1},
10164 {0x3B, 0, 0, 0, 0},
10165 {0x3C, 0x6e, 0x6e, 0, 0},
10166 {0x3D, 0xf0, 0xf0, 1, 1},
10167 {0x3E, 0, 0, 0, 0},
10168 {0x3F, 0, 0, 0, 0},
10169 {0x40, 0, 0, 0, 0},
10170 {0x41, 0x3, 0x3, 0, 0},
10171 {0x42, 0x3, 0x3, 0, 0},
10172 {0x43, 0, 0, 0, 0},
10173 {0x44, 0x1e, 0x1e, 0, 0},
10174 {0x45, 0, 0, 0, 0},
10175 {0x46, 0x6e, 0x6e, 0, 0},
10176 {0x47, 0xf0, 0xf0, 1, 1},
10177 {0x48, 0, 0, 0, 0},
10178 {0x49, 0x2, 0x2, 0, 0},
10179 {0x4A, 0xff, 0xff, 1, 1},
10180 {0x4B, 0xc, 0xc, 0, 0},
10181 {0x4C, 0, 0, 0, 0},
10182 {0x4D, 0x38, 0x38, 0, 0},
10183 {0x4E, 0x70, 0x70, 1, 1},
10184 {0x4F, 0x2, 0x2, 0, 0},
10185 {0x50, 0x88, 0x88, 0, 0},
10186 {0x51, 0xc, 0xc, 0, 0},
10187 {0x52, 0, 0, 0, 0},
10188 {0x53, 0x8, 0x8, 0, 0},
10189 {0x54, 0x70, 0x70, 1, 1},
10190 {0x55, 0x2, 0x2, 0, 0},
10191 {0x56, 0xff, 0xff, 1, 1},
10192 {0x57, 0, 0, 0, 0},
10193 {0x58, 0x83, 0x83, 0, 0},
10194 {0x59, 0x77, 0x77, 1, 1},
10195 {0x5A, 0, 0, 0, 0},
10196 {0x5B, 0x2, 0x2, 0, 0},
10197 {0x5C, 0x88, 0x88, 0, 0},
10198 {0x5D, 0, 0, 0, 0},
10199 {0x5E, 0x8, 0x8, 0, 0},
10200 {0x5F, 0x77, 0x77, 1, 1},
10201 {0x60, 0x1, 0x1, 0, 0},
10202 {0x61, 0, 0, 0, 0},
10203 {0x62, 0x7, 0x7, 0, 0},
10204 {0x63, 0, 0, 0, 0},
10205 {0x64, 0x7, 0x7, 0, 0},
10206 {0x65, 0, 0, 0, 0},
10207 {0x66, 0, 0, 0, 0},
10208 {0x67, 0, 0, 1, 1},
10209 {0x68, 0, 0, 0, 0},
10210 {0x69, 0xa, 0xa, 0, 0},
10211 {0x6A, 0, 0, 0, 0},
10212 {0x6B, 0, 0, 0, 0},
10213 {0x6C, 0, 0, 0, 0},
10214 {0x6D, 0, 0, 0, 0},
10215 {0x6E, 0, 0, 0, 0},
10216 {0x6F, 0, 0, 0, 0},
10217 {0x70, 0, 0, 0, 0},
10218 {0x71, 0x2, 0x2, 0, 0},
10219 {0x72, 0, 0, 0, 0},
10220 {0x73, 0, 0, 0, 0},
10221 {0x74, 0xe, 0xe, 0, 0},
10222 {0x75, 0xe, 0xe, 0, 0},
10223 {0x76, 0xe, 0xe, 0, 0},
10224 {0x77, 0x13, 0x13, 0, 0},
10225 {0x78, 0x13, 0x13, 0, 0},
10226 {0x79, 0x1b, 0x1b, 0, 0},
10227 {0x7A, 0x1b, 0x1b, 0, 0},
10228 {0x7B, 0x55, 0x55, 0, 0},
10229 {0x7C, 0x5b, 0x5b, 0, 0},
10230 {0x7D, 0x30, 0x30, 1, 1},
10231 {0x7E, 0, 0, 0, 0},
10232 {0x7F, 0, 0, 0, 0},
10233 {0x80, 0, 0, 0, 0},
10234 {0x81, 0, 0, 0, 0},
10235 {0x82, 0, 0, 0, 0},
10236 {0x83, 0, 0, 0, 0},
10237 {0x84, 0, 0, 0, 0},
10238 {0x85, 0, 0, 0, 0},
10239 {0x86, 0, 0, 0, 0},
10240 {0x87, 0, 0, 0, 0},
10241 {0x88, 0, 0, 0, 0},
10242 {0x89, 0, 0, 0, 0},
10243 {0x8A, 0, 0, 0, 0},
10244 {0x8B, 0, 0, 0, 0},
10245 {0x8C, 0, 0, 0, 0},
10246 {0x8D, 0, 0, 0, 0},
10247 {0x8E, 0, 0, 0, 0},
10248 {0x8F, 0, 0, 0, 0},
10249 {0x90, 0, 0, 0, 0},
10250 {0x91, 0, 0, 0, 0},
10251 {0x92, 0, 0, 0, 0},
10252 {0x93, 0x70, 0x70, 0, 0},
10253 {0x94, 0x70, 0x70, 0, 0},
10254 {0x95, 0x71, 0x71, 1, 1},
10255 {0x96, 0x71, 0x71, 1, 1},
10256 {0x97, 0x72, 0x72, 1, 1},
10257 {0x98, 0x73, 0x73, 1, 1},
10258 {0x99, 0x74, 0x74, 1, 1},
10259 {0x9A, 0x75, 0x75, 1, 1},
10260 {0xFFFF, 0, 0, 0, 0},
10263 struct radio_regs regs_RX_2056_rev7
[] = {
10264 {0x02, 0, 0, 0, 0},
10265 {0x03, 0, 0, 0, 0},
10266 {0x04, 0, 0, 0, 0},
10267 {0x05, 0, 0, 0, 0},
10268 {0x06, 0, 0, 0, 0},
10269 {0x07, 0, 0, 0, 0},
10270 {0x08, 0, 0, 0, 0},
10271 {0x09, 0, 0, 0, 0},
10272 {0x0A, 0, 0, 0, 0},
10273 {0x0B, 0, 0, 0, 0},
10274 {0x0C, 0, 0, 0, 0},
10275 {0x0D, 0, 0, 0, 0},
10276 {0x0E, 0, 0, 0, 0},
10277 {0x0F, 0, 0, 0, 0},
10278 {0x10, 0, 0, 0, 0},
10279 {0x11, 0, 0, 0, 0},
10280 {0x12, 0, 0, 0, 0},
10281 {0x13, 0, 0, 0, 0},
10282 {0x14, 0, 0, 0, 0},
10283 {0x15, 0, 0, 0, 0},
10284 {0x16, 0, 0, 0, 0},
10285 {0x17, 0, 0, 0, 0},
10286 {0x18, 0, 0, 0, 0},
10287 {0x19, 0, 0, 0, 0},
10288 {0x1A, 0, 0, 0, 0},
10289 {0x1B, 0, 0, 0, 0},
10290 {0x1C, 0, 0, 0, 0},
10291 {0x1D, 0, 0, 0, 0},
10292 {0x1E, 0, 0, 0, 0},
10293 {0x1F, 0, 0, 0, 0},
10294 {0x20, 0x3, 0x3, 0, 0},
10295 {0x21, 0, 0, 0, 0},
10296 {0x22, 0, 0, 0, 0},
10297 {0x23, 0x90, 0x90, 0, 0},
10298 {0x24, 0x55, 0x55, 0, 0},
10299 {0x25, 0x15, 0x15, 0, 0},
10300 {0x26, 0x5, 0x5, 0, 0},
10301 {0x27, 0x15, 0x15, 0, 0},
10302 {0x28, 0x5, 0x5, 0, 0},
10303 {0x29, 0x20, 0x20, 0, 0},
10304 {0x2A, 0x11, 0x11, 0, 0},
10305 {0x2B, 0x90, 0x90, 0, 0},
10306 {0x2C, 0, 0, 0, 0},
10307 {0x2D, 0x88, 0x88, 0, 0},
10308 {0x2E, 0x32, 0x32, 0, 0},
10309 {0x2F, 0x77, 0x77, 0, 0},
10310 {0x30, 0x17, 0x17, 1, 1},
10311 {0x31, 0xff, 0xff, 1, 1},
10312 {0x32, 0x20, 0x20, 0, 0},
10313 {0x33, 0, 0, 0, 0},
10314 {0x34, 0x88, 0x88, 0, 0},
10315 {0x35, 0x32, 0x32, 0, 0},
10316 {0x36, 0x77, 0x77, 0, 0},
10317 {0x37, 0x17, 0x17, 1, 1},
10318 {0x38, 0xf0, 0xf0, 1, 1},
10319 {0x39, 0x20, 0x20, 0, 0},
10320 {0x3A, 0x8, 0x8, 0, 0},
10321 {0x3B, 0x55, 0x55, 1, 1},
10322 {0x3C, 0, 0, 0, 0},
10323 {0x3D, 0x88, 0x88, 1, 1},
10324 {0x3E, 0, 0, 0, 0},
10325 {0x3F, 0, 0, 1, 1},
10326 {0x40, 0x7, 0x7, 1, 1},
10327 {0x41, 0x6, 0x6, 0, 0},
10328 {0x42, 0x4, 0x4, 0, 0},
10329 {0x43, 0, 0, 0, 0},
10330 {0x44, 0x8, 0x8, 0, 0},
10331 {0x45, 0x55, 0x55, 1, 1},
10332 {0x46, 0, 0, 0, 0},
10333 {0x47, 0x11, 0x11, 0, 0},
10334 {0x48, 0, 0, 0, 0},
10335 {0x49, 0, 0, 1, 1},
10336 {0x4A, 0x7, 0x7, 0, 0},
10337 {0x4B, 0x6, 0x6, 0, 0},
10338 {0x4C, 0x4, 0x4, 0, 0},
10339 {0x4D, 0, 0, 0, 0},
10340 {0x4E, 0, 0, 0, 0},
10341 {0x4F, 0x26, 0x26, 1, 1},
10342 {0x50, 0x26, 0x26, 1, 1},
10343 {0x51, 0xf, 0xf, 1, 1},
10344 {0x52, 0xf, 0xf, 1, 1},
10345 {0x53, 0x44, 0x44, 0, 0},
10346 {0x54, 0, 0, 0, 0},
10347 {0x55, 0, 0, 0, 0},
10348 {0x56, 0x8, 0x8, 0, 0},
10349 {0x57, 0x8, 0x8, 0, 0},
10350 {0x58, 0x7, 0x7, 0, 0},
10351 {0x59, 0x22, 0x22, 0, 0},
10352 {0x5A, 0x22, 0x22, 0, 0},
10353 {0x5B, 0x2, 0x2, 0, 0},
10354 {0x5C, 0x4, 0x4, 1, 1},
10355 {0x5D, 0x7, 0x7, 0, 0},
10356 {0x5E, 0x55, 0x55, 0, 0},
10357 {0x5F, 0x23, 0x23, 0, 0},
10358 {0x60, 0x41, 0x41, 0, 0},
10359 {0x61, 0x1, 0x1, 0, 0},
10360 {0x62, 0xa, 0xa, 0, 0},
10361 {0x63, 0, 0, 0, 0},
10362 {0x64, 0, 0, 0, 0},
10363 {0x65, 0, 0, 0, 0},
10364 {0x66, 0, 0, 0, 0},
10365 {0x67, 0, 0, 0, 0},
10366 {0x68, 0, 0, 0, 0},
10367 {0x69, 0, 0, 0, 0},
10368 {0x6A, 0, 0, 0, 0},
10369 {0x6B, 0xc, 0xc, 0, 0},
10370 {0x6C, 0, 0, 0, 0},
10371 {0x6D, 0, 0, 0, 0},
10372 {0x6E, 0, 0, 0, 0},
10373 {0x6F, 0, 0, 0, 0},
10374 {0x70, 0, 0, 0, 0},
10375 {0x71, 0, 0, 0, 0},
10376 {0x72, 0x22, 0x22, 0, 0},
10377 {0x73, 0x22, 0x22, 0, 0},
10378 {0x74, 0, 0, 1, 1},
10379 {0x75, 0xa, 0xa, 0, 0},
10380 {0x76, 0x1, 0x1, 0, 0},
10381 {0x77, 0x22, 0x22, 0, 0},
10382 {0x78, 0x30, 0x30, 0, 0},
10383 {0x79, 0, 0, 0, 0},
10384 {0x7A, 0, 0, 0, 0},
10385 {0x7B, 0, 0, 0, 0},
10386 {0x7C, 0, 0, 0, 0},
10387 {0x7D, 0, 0, 0, 0},
10388 {0x7E, 0, 0, 0, 0},
10389 {0x7F, 0, 0, 0, 0},
10390 {0x80, 0, 0, 0, 0},
10391 {0x81, 0, 0, 0, 0},
10392 {0x82, 0, 0, 0, 0},
10393 {0x83, 0, 0, 0, 0},
10394 {0x84, 0, 0, 0, 0},
10395 {0x85, 0, 0, 0, 0},
10396 {0x86, 0, 0, 0, 0},
10397 {0x87, 0, 0, 0, 0},
10398 {0x88, 0, 0, 0, 0},
10399 {0x89, 0, 0, 0, 0},
10400 {0x8A, 0, 0, 0, 0},
10401 {0x8B, 0, 0, 0, 0},
10402 {0x8C, 0, 0, 0, 0},
10403 {0x8D, 0, 0, 0, 0},
10404 {0x8E, 0, 0, 0, 0},
10405 {0x8F, 0, 0, 0, 0},
10406 {0x90, 0, 0, 0, 0},
10407 {0x91, 0, 0, 0, 0},
10408 {0x92, 0, 0, 0, 0},
10409 {0x93, 0, 0, 0, 0},
10410 {0x94, 0, 0, 0, 0},
10411 {0xFFFF, 0, 0, 0, 0},
10414 struct radio_regs regs_SYN_2056_rev8
[] = {
10415 {0x02, 0, 0, 0, 0},
10416 {0x03, 0, 0, 0, 0},
10417 {0x04, 0, 0, 0, 0},
10418 {0x05, 0, 0, 0, 0},
10419 {0x06, 0, 0, 0, 0},
10420 {0x07, 0, 0, 0, 0},
10421 {0x08, 0, 0, 0, 0},
10422 {0x09, 0x1, 0x1, 0, 0},
10423 {0x0A, 0, 0, 0, 0},
10424 {0x0B, 0, 0, 0, 0},
10425 {0x0C, 0, 0, 0, 0},
10426 {0x0D, 0, 0, 0, 0},
10427 {0x0E, 0, 0, 0, 0},
10428 {0x0F, 0, 0, 0, 0},
10429 {0x10, 0, 0, 0, 0},
10430 {0x11, 0, 0, 0, 0},
10431 {0x12, 0, 0, 0, 0},
10432 {0x13, 0, 0, 0, 0},
10433 {0x14, 0, 0, 0, 0},
10434 {0x15, 0, 0, 0, 0},
10435 {0x16, 0, 0, 0, 0},
10436 {0x17, 0, 0, 0, 0},
10437 {0x18, 0, 0, 0, 0},
10438 {0x19, 0, 0, 0, 0},
10439 {0x1A, 0, 0, 0, 0},
10440 {0x1B, 0, 0, 0, 0},
10441 {0x1C, 0, 0, 0, 0},
10442 {0x1D, 0, 0, 0, 0},
10443 {0x1E, 0, 0, 0, 0},
10444 {0x1F, 0, 0, 0, 0},
10445 {0x20, 0, 0, 0, 0},
10446 {0x21, 0, 0, 0, 0},
10447 {0x22, 0x60, 0x60, 0, 0},
10448 {0x23, 0x6, 0x6, 0, 0},
10449 {0x24, 0xc, 0xc, 0, 0},
10450 {0x25, 0, 0, 0, 0},
10451 {0x26, 0, 0, 0, 0},
10452 {0x27, 0, 0, 0, 0},
10453 {0x28, 0x1, 0x1, 0, 0},
10454 {0x29, 0, 0, 0, 0},
10455 {0x2A, 0, 0, 0, 0},
10456 {0x2B, 0, 0, 0, 0},
10457 {0x2C, 0, 0, 0, 0},
10458 {0x2D, 0, 0, 0, 0},
10459 {0x2E, 0, 0, 0, 0},
10460 {0x2F, 0x1f, 0x1f, 0, 0},
10461 {0x30, 0x15, 0x15, 0, 0},
10462 {0x31, 0xf, 0xf, 0, 0},
10463 {0x32, 0, 0, 0, 0},
10464 {0x33, 0, 0, 0, 0},
10465 {0x34, 0, 0, 0, 0},
10466 {0x35, 0, 0, 0, 0},
10467 {0x36, 0, 0, 0, 0},
10468 {0x37, 0, 0, 0, 0},
10469 {0x38, 0, 0, 0, 0},
10470 {0x39, 0, 0, 0, 0},
10471 {0x3A, 0, 0, 0, 0},
10472 {0x3B, 0, 0, 0, 0},
10473 {0x3C, 0x13, 0x13, 0, 0},
10474 {0x3D, 0xf, 0xf, 0, 0},
10475 {0x3E, 0x18, 0x18, 0, 0},
10476 {0x3F, 0, 0, 0, 0},
10477 {0x40, 0, 0, 0, 0},
10478 {0x41, 0x20, 0x20, 0, 0},
10479 {0x42, 0x20, 0x20, 0, 0},
10480 {0x43, 0, 0, 0, 0},
10481 {0x44, 0x77, 0x77, 0, 0},
10482 {0x45, 0x7, 0x7, 0, 0},
10483 {0x46, 0x1, 0x1, 0, 0},
10484 {0x47, 0x4, 0x4, 0, 0},
10485 {0x48, 0xf, 0xf, 0, 0},
10486 {0x49, 0x30, 0x30, 0, 0},
10487 {0x4A, 0x32, 0x32, 0, 0},
10488 {0x4B, 0xd, 0xd, 0, 0},
10489 {0x4C, 0xd, 0xd, 0, 0},
10490 {0x4D, 0x4, 0x4, 0, 0},
10491 {0x4E, 0x6, 0x6, 0, 0},
10492 {0x4F, 0x1, 0x1, 0, 0},
10493 {0x50, 0x1c, 0x1c, 0, 0},
10494 {0x51, 0x2, 0x2, 0, 0},
10495 {0x52, 0x2, 0x2, 0, 0},
10496 {0x53, 0xf7, 0xf7, 1, 1},
10497 {0x54, 0xb4, 0xb4, 0, 0},
10498 {0x55, 0xd2, 0xd2, 0, 0},
10499 {0x56, 0, 0, 0, 0},
10500 {0x57, 0, 0, 0, 0},
10501 {0x58, 0x4, 0x4, 0, 0},
10502 {0x59, 0x96, 0x96, 0, 0},
10503 {0x5A, 0x3e, 0x3e, 0, 0},
10504 {0x5B, 0x3e, 0x3e, 0, 0},
10505 {0x5C, 0x13, 0x13, 0, 0},
10506 {0x5D, 0x2, 0x2, 0, 0},
10507 {0x5E, 0, 0, 0, 0},
10508 {0x5F, 0x7, 0x7, 0, 0},
10509 {0x60, 0x7, 0x7, 1, 1},
10510 {0x61, 0x8, 0x8, 0, 0},
10511 {0x62, 0x3, 0x3, 0, 0},
10512 {0x63, 0, 0, 0, 0},
10513 {0x64, 0, 0, 0, 0},
10514 {0x65, 0, 0, 0, 0},
10515 {0x66, 0, 0, 0, 0},
10516 {0x67, 0, 0, 0, 0},
10517 {0x68, 0x40, 0x40, 0, 0},
10518 {0x69, 0, 0, 0, 0},
10519 {0x6A, 0, 0, 0, 0},
10520 {0x6B, 0, 0, 0, 0},
10521 {0x6C, 0, 0, 0, 0},
10522 {0x6D, 0x1, 0x1, 0, 0},
10523 {0x6E, 0, 0, 0, 0},
10524 {0x6F, 0, 0, 0, 0},
10525 {0x70, 0x60, 0x60, 0, 0},
10526 {0x71, 0x66, 0x66, 0, 0},
10527 {0x72, 0xc, 0xc, 0, 0},
10528 {0x73, 0x66, 0x66, 0, 0},
10529 {0x74, 0x8f, 0x8f, 1, 1},
10530 {0x75, 0, 0, 0, 0},
10531 {0x76, 0xcc, 0xcc, 0, 0},
10532 {0x77, 0x1, 0x1, 0, 0},
10533 {0x78, 0x66, 0x66, 0, 0},
10534 {0x79, 0x66, 0x66, 0, 0},
10535 {0x7A, 0, 0, 0, 0},
10536 {0x7B, 0, 0, 0, 0},
10537 {0x7C, 0, 0, 0, 0},
10538 {0x7D, 0, 0, 0, 0},
10539 {0x7E, 0, 0, 0, 0},
10540 {0x7F, 0, 0, 0, 0},
10541 {0x80, 0, 0, 0, 0},
10542 {0x81, 0, 0, 0, 0},
10543 {0x82, 0, 0, 0, 0},
10544 {0x83, 0, 0, 0, 0},
10545 {0x84, 0, 0, 0, 0},
10546 {0x85, 0xff, 0xff, 0, 0},
10547 {0x86, 0, 0, 0, 0},
10548 {0x87, 0, 0, 0, 0},
10549 {0x88, 0, 0, 0, 0},
10550 {0x89, 0, 0, 0, 0},
10551 {0x8A, 0, 0, 0, 0},
10552 {0x8B, 0, 0, 0, 0},
10553 {0x8C, 0, 0, 0, 0},
10554 {0x8D, 0, 0, 0, 0},
10555 {0x8E, 0, 0, 0, 0},
10556 {0x8F, 0, 0, 0, 0},
10557 {0x90, 0, 0, 0, 0},
10558 {0x91, 0, 0, 0, 0},
10559 {0x92, 0, 0, 0, 0},
10560 {0x93, 0, 0, 0, 0},
10561 {0x94, 0, 0, 0, 0},
10562 {0x95, 0, 0, 0, 0},
10563 {0x96, 0, 0, 0, 0},
10564 {0x97, 0, 0, 0, 0},
10565 {0x98, 0, 0, 0, 0},
10566 {0x99, 0, 0, 0, 0},
10567 {0x9A, 0, 0, 0, 0},
10568 {0x9B, 0, 0, 0, 0},
10569 {0x9C, 0, 0, 0, 0},
10570 {0x9D, 0, 0, 0, 0},
10571 {0x9E, 0, 0, 0, 0},
10572 {0x9F, 0x6, 0x6, 0, 0},
10573 {0xA0, 0x66, 0x66, 0, 0},
10574 {0xA1, 0x66, 0x66, 0, 0},
10575 {0xA2, 0x66, 0x66, 0, 0},
10576 {0xA3, 0x66, 0x66, 0, 0},
10577 {0xA4, 0x66, 0x66, 0, 0},
10578 {0xA5, 0x66, 0x66, 0, 0},
10579 {0xA6, 0x66, 0x66, 0, 0},
10580 {0xA7, 0x66, 0x66, 0, 0},
10581 {0xA8, 0x66, 0x66, 0, 0},
10582 {0xA9, 0x66, 0x66, 0, 0},
10583 {0xAA, 0x66, 0x66, 0, 0},
10584 {0xAB, 0x66, 0x66, 0, 0},
10585 {0xAC, 0x66, 0x66, 0, 0},
10586 {0xAD, 0x66, 0x66, 0, 0},
10587 {0xAE, 0x66, 0x66, 0, 0},
10588 {0xAF, 0x66, 0x66, 0, 0},
10589 {0xB0, 0x66, 0x66, 0, 0},
10590 {0xB1, 0x66, 0x66, 0, 0},
10591 {0xB2, 0x66, 0x66, 0, 0},
10592 {0xB3, 0xa, 0xa, 0, 0},
10593 {0xB4, 0, 0, 0, 0},
10594 {0xB5, 0, 0, 0, 0},
10595 {0xB6, 0, 0, 0, 0},
10596 {0xFFFF, 0, 0, 0, 0},
10599 struct radio_regs regs_TX_2056_rev8
[] = {
10600 {0x02, 0, 0, 0, 0},
10601 {0x03, 0, 0, 0, 0},
10602 {0x04, 0, 0, 0, 0},
10603 {0x05, 0, 0, 0, 0},
10604 {0x06, 0, 0, 0, 0},
10605 {0x07, 0, 0, 0, 0},
10606 {0x08, 0, 0, 0, 0},
10607 {0x09, 0, 0, 0, 0},
10608 {0x0A, 0, 0, 0, 0},
10609 {0x0B, 0, 0, 0, 0},
10610 {0x0C, 0, 0, 0, 0},
10611 {0x0D, 0, 0, 0, 0},
10612 {0x0E, 0, 0, 0, 0},
10613 {0x0F, 0, 0, 0, 0},
10614 {0x10, 0, 0, 0, 0},
10615 {0x11, 0, 0, 0, 0},
10616 {0x12, 0, 0, 0, 0},
10617 {0x13, 0, 0, 0, 0},
10618 {0x14, 0, 0, 0, 0},
10619 {0x15, 0, 0, 0, 0},
10620 {0x16, 0, 0, 0, 0},
10621 {0x17, 0, 0, 0, 0},
10622 {0x18, 0, 0, 0, 0},
10623 {0x19, 0, 0, 0, 0},
10624 {0x1A, 0, 0, 0, 0},
10625 {0x1B, 0, 0, 0, 0},
10626 {0x1C, 0, 0, 0, 0},
10627 {0x1D, 0, 0, 0, 0},
10628 {0x1E, 0, 0, 0, 0},
10629 {0x1F, 0, 0, 0, 0},
10630 {0x20, 0, 0, 0, 0},
10631 {0x21, 0x88, 0x88, 0, 0},
10632 {0x22, 0x88, 0x88, 0, 0},
10633 {0x23, 0x88, 0x88, 0, 0},
10634 {0x24, 0x88, 0x88, 0, 0},
10635 {0x25, 0xc, 0xc, 0, 0},
10636 {0x26, 0, 0, 0, 0},
10637 {0x27, 0x3, 0x3, 0, 0},
10638 {0x28, 0, 0, 0, 0},
10639 {0x29, 0x3, 0x3, 0, 0},
10640 {0x2A, 0x37, 0x37, 0, 0},
10641 {0x2B, 0x3, 0x3, 0, 0},
10642 {0x2C, 0, 0, 0, 0},
10643 {0x2D, 0, 0, 0, 0},
10644 {0x2E, 0x1, 0x1, 0, 0},
10645 {0x2F, 0x1, 0x1, 0, 0},
10646 {0x30, 0, 0, 0, 0},
10647 {0x31, 0, 0, 0, 0},
10648 {0x32, 0, 0, 0, 0},
10649 {0x33, 0x11, 0x11, 0, 0},
10650 {0x34, 0xee, 0xee, 1, 1},
10651 {0x35, 0, 0, 0, 0},
10652 {0x36, 0, 0, 0, 0},
10653 {0x37, 0x3, 0x3, 0, 0},
10654 {0x38, 0x50, 0x50, 1, 1},
10655 {0x39, 0, 0, 0, 0},
10656 {0x3A, 0x50, 0x50, 1, 1},
10657 {0x3B, 0, 0, 0, 0},
10658 {0x3C, 0x6e, 0x6e, 0, 0},
10659 {0x3D, 0xf0, 0xf0, 1, 1},
10660 {0x3E, 0, 0, 0, 0},
10661 {0x3F, 0, 0, 0, 0},
10662 {0x40, 0, 0, 0, 0},
10663 {0x41, 0x3, 0x3, 0, 0},
10664 {0x42, 0x3, 0x3, 0, 0},
10665 {0x43, 0, 0, 0, 0},
10666 {0x44, 0x1e, 0x1e, 0, 0},
10667 {0x45, 0, 0, 0, 0},
10668 {0x46, 0x6e, 0x6e, 0, 0},
10669 {0x47, 0xf0, 0xf0, 1, 1},
10670 {0x48, 0, 0, 0, 0},
10671 {0x49, 0x2, 0x2, 0, 0},
10672 {0x4A, 0xff, 0xff, 1, 1},
10673 {0x4B, 0xc, 0xc, 0, 0},
10674 {0x4C, 0, 0, 0, 0},
10675 {0x4D, 0x38, 0x38, 0, 0},
10676 {0x4E, 0x70, 0x70, 1, 1},
10677 {0x4F, 0x2, 0x2, 0, 0},
10678 {0x50, 0x88, 0x88, 0, 0},
10679 {0x51, 0xc, 0xc, 0, 0},
10680 {0x52, 0, 0, 0, 0},
10681 {0x53, 0x8, 0x8, 0, 0},
10682 {0x54, 0x70, 0x70, 1, 1},
10683 {0x55, 0x2, 0x2, 0, 0},
10684 {0x56, 0xff, 0xff, 1, 1},
10685 {0x57, 0, 0, 0, 0},
10686 {0x58, 0x83, 0x83, 0, 0},
10687 {0x59, 0x77, 0x77, 1, 1},
10688 {0x5A, 0, 0, 0, 0},
10689 {0x5B, 0x2, 0x2, 0, 0},
10690 {0x5C, 0x88, 0x88, 0, 0},
10691 {0x5D, 0, 0, 0, 0},
10692 {0x5E, 0x8, 0x8, 0, 0},
10693 {0x5F, 0x77, 0x77, 1, 1},
10694 {0x60, 0x1, 0x1, 0, 0},
10695 {0x61, 0, 0, 0, 0},
10696 {0x62, 0x7, 0x7, 0, 0},
10697 {0x63, 0, 0, 0, 0},
10698 {0x64, 0x7, 0x7, 0, 0},
10699 {0x65, 0, 0, 0, 0},
10700 {0x66, 0, 0, 0, 0},
10701 {0x67, 0, 0, 1, 1},
10702 {0x68, 0, 0, 0, 0},
10703 {0x69, 0xa, 0xa, 0, 0},
10704 {0x6A, 0, 0, 0, 0},
10705 {0x6B, 0, 0, 0, 0},
10706 {0x6C, 0, 0, 0, 0},
10707 {0x6D, 0, 0, 0, 0},
10708 {0x6E, 0, 0, 0, 0},
10709 {0x6F, 0, 0, 0, 0},
10710 {0x70, 0, 0, 0, 0},
10711 {0x71, 0x2, 0x2, 0, 0},
10712 {0x72, 0, 0, 0, 0},
10713 {0x73, 0, 0, 0, 0},
10714 {0x74, 0xe, 0xe, 0, 0},
10715 {0x75, 0xe, 0xe, 0, 0},
10716 {0x76, 0xe, 0xe, 0, 0},
10717 {0x77, 0x13, 0x13, 0, 0},
10718 {0x78, 0x13, 0x13, 0, 0},
10719 {0x79, 0x1b, 0x1b, 0, 0},
10720 {0x7A, 0x1b, 0x1b, 0, 0},
10721 {0x7B, 0x55, 0x55, 0, 0},
10722 {0x7C, 0x5b, 0x5b, 0, 0},
10723 {0x7D, 0x30, 0x30, 1, 1},
10724 {0x7E, 0, 0, 0, 0},
10725 {0x7F, 0, 0, 0, 0},
10726 {0x80, 0, 0, 0, 0},
10727 {0x81, 0, 0, 0, 0},
10728 {0x82, 0, 0, 0, 0},
10729 {0x83, 0, 0, 0, 0},
10730 {0x84, 0, 0, 0, 0},
10731 {0x85, 0, 0, 0, 0},
10732 {0x86, 0, 0, 0, 0},
10733 {0x87, 0, 0, 0, 0},
10734 {0x88, 0, 0, 0, 0},
10735 {0x89, 0, 0, 0, 0},
10736 {0x8A, 0, 0, 0, 0},
10737 {0x8B, 0, 0, 0, 0},
10738 {0x8C, 0, 0, 0, 0},
10739 {0x8D, 0, 0, 0, 0},
10740 {0x8E, 0, 0, 0, 0},
10741 {0x8F, 0, 0, 0, 0},
10742 {0x90, 0, 0, 0, 0},
10743 {0x91, 0, 0, 0, 0},
10744 {0x92, 0, 0, 0, 0},
10745 {0x93, 0x70, 0x70, 0, 0},
10746 {0x94, 0x70, 0x70, 0, 0},
10747 {0x95, 0x70, 0x70, 0, 0},
10748 {0x96, 0x70, 0x70, 0, 0},
10749 {0x97, 0x70, 0x70, 0, 0},
10750 {0x98, 0x70, 0x70, 0, 0},
10751 {0x99, 0x70, 0x70, 0, 0},
10752 {0x9A, 0x70, 0x70, 0, 0},
10753 {0xFFFF, 0, 0, 0, 0},
10756 struct radio_regs regs_RX_2056_rev8
[] = {
10757 {0x02, 0, 0, 0, 0},
10758 {0x03, 0, 0, 0, 0},
10759 {0x04, 0, 0, 0, 0},
10760 {0x05, 0, 0, 0, 0},
10761 {0x06, 0, 0, 0, 0},
10762 {0x07, 0, 0, 0, 0},
10763 {0x08, 0, 0, 0, 0},
10764 {0x09, 0, 0, 0, 0},
10765 {0x0A, 0, 0, 0, 0},
10766 {0x0B, 0, 0, 0, 0},
10767 {0x0C, 0, 0, 0, 0},
10768 {0x0D, 0, 0, 0, 0},
10769 {0x0E, 0, 0, 0, 0},
10770 {0x0F, 0, 0, 0, 0},
10771 {0x10, 0, 0, 0, 0},
10772 {0x11, 0, 0, 0, 0},
10773 {0x12, 0, 0, 0, 0},
10774 {0x13, 0, 0, 0, 0},
10775 {0x14, 0, 0, 0, 0},
10776 {0x15, 0, 0, 0, 0},
10777 {0x16, 0, 0, 0, 0},
10778 {0x17, 0, 0, 0, 0},
10779 {0x18, 0, 0, 0, 0},
10780 {0x19, 0, 0, 0, 0},
10781 {0x1A, 0, 0, 0, 0},
10782 {0x1B, 0, 0, 0, 0},
10783 {0x1C, 0, 0, 0, 0},
10784 {0x1D, 0, 0, 0, 0},
10785 {0x1E, 0, 0, 0, 0},
10786 {0x1F, 0, 0, 0, 0},
10787 {0x20, 0x3, 0x3, 0, 0},
10788 {0x21, 0, 0, 0, 0},
10789 {0x22, 0, 0, 0, 0},
10790 {0x23, 0x90, 0x90, 0, 0},
10791 {0x24, 0x55, 0x55, 0, 0},
10792 {0x25, 0x15, 0x15, 0, 0},
10793 {0x26, 0x5, 0x5, 0, 0},
10794 {0x27, 0x15, 0x15, 0, 0},
10795 {0x28, 0x5, 0x5, 0, 0},
10796 {0x29, 0x20, 0x20, 0, 0},
10797 {0x2A, 0x11, 0x11, 0, 0},
10798 {0x2B, 0x90, 0x90, 0, 0},
10799 {0x2C, 0, 0, 0, 0},
10800 {0x2D, 0x88, 0x88, 0, 0},
10801 {0x2E, 0x32, 0x32, 0, 0},
10802 {0x2F, 0x77, 0x77, 0, 0},
10803 {0x30, 0x17, 0x17, 1, 1},
10804 {0x31, 0xff, 0xff, 1, 1},
10805 {0x32, 0x20, 0x20, 0, 0},
10806 {0x33, 0, 0, 0, 0},
10807 {0x34, 0x88, 0x88, 0, 0},
10808 {0x35, 0x32, 0x32, 0, 0},
10809 {0x36, 0x77, 0x77, 0, 0},
10810 {0x37, 0x17, 0x17, 1, 1},
10811 {0x38, 0xf0, 0xf0, 1, 1},
10812 {0x39, 0x20, 0x20, 0, 0},
10813 {0x3A, 0x8, 0x8, 0, 0},
10814 {0x3B, 0x55, 0x55, 1, 1},
10815 {0x3C, 0, 0, 0, 0},
10816 {0x3D, 0x88, 0x88, 1, 1},
10817 {0x3E, 0, 0, 0, 0},
10818 {0x3F, 0x44, 0x44, 0, 0},
10819 {0x40, 0x7, 0x7, 1, 1},
10820 {0x41, 0x6, 0x6, 0, 0},
10821 {0x42, 0x4, 0x4, 0, 0},
10822 {0x43, 0, 0, 0, 0},
10823 {0x44, 0x8, 0x8, 0, 0},
10824 {0x45, 0x55, 0x55, 1, 1},
10825 {0x46, 0, 0, 0, 0},
10826 {0x47, 0x11, 0x11, 0, 0},
10827 {0x48, 0, 0, 0, 0},
10828 {0x49, 0x44, 0x44, 0, 0},
10829 {0x4A, 0x7, 0x7, 0, 0},
10830 {0x4B, 0x6, 0x6, 0, 0},
10831 {0x4C, 0x4, 0x4, 0, 0},
10832 {0x4D, 0, 0, 0, 0},
10833 {0x4E, 0, 0, 0, 0},
10834 {0x4F, 0x26, 0x26, 1, 1},
10835 {0x50, 0x26, 0x26, 1, 1},
10836 {0x51, 0xf, 0xf, 1, 1},
10837 {0x52, 0xf, 0xf, 1, 1},
10838 {0x53, 0x44, 0x44, 0, 0},
10839 {0x54, 0, 0, 0, 0},
10840 {0x55, 0, 0, 0, 0},
10841 {0x56, 0x8, 0x8, 0, 0},
10842 {0x57, 0x8, 0x8, 0, 0},
10843 {0x58, 0x7, 0x7, 0, 0},
10844 {0x59, 0x22, 0x22, 0, 0},
10845 {0x5A, 0x22, 0x22, 0, 0},
10846 {0x5B, 0x2, 0x2, 0, 0},
10847 {0x5C, 0x4, 0x4, 1, 1},
10848 {0x5D, 0x7, 0x7, 0, 0},
10849 {0x5E, 0x55, 0x55, 0, 0},
10850 {0x5F, 0x23, 0x23, 0, 0},
10851 {0x60, 0x41, 0x41, 0, 0},
10852 {0x61, 0x1, 0x1, 0, 0},
10853 {0x62, 0xa, 0xa, 0, 0},
10854 {0x63, 0, 0, 0, 0},
10855 {0x64, 0, 0, 0, 0},
10856 {0x65, 0, 0, 0, 0},
10857 {0x66, 0, 0, 0, 0},
10858 {0x67, 0, 0, 0, 0},
10859 {0x68, 0, 0, 0, 0},
10860 {0x69, 0, 0, 0, 0},
10861 {0x6A, 0, 0, 0, 0},
10862 {0x6B, 0xc, 0xc, 0, 0},
10863 {0x6C, 0, 0, 0, 0},
10864 {0x6D, 0, 0, 0, 0},
10865 {0x6E, 0, 0, 0, 0},
10866 {0x6F, 0, 0, 0, 0},
10867 {0x70, 0, 0, 0, 0},
10868 {0x71, 0, 0, 0, 0},
10869 {0x72, 0x22, 0x22, 0, 0},
10870 {0x73, 0x22, 0x22, 0, 0},
10871 {0x74, 0, 0, 1, 1},
10872 {0x75, 0xa, 0xa, 0, 0},
10873 {0x76, 0x1, 0x1, 0, 0},
10874 {0x77, 0x22, 0x22, 0, 0},
10875 {0x78, 0x30, 0x30, 0, 0},
10876 {0x79, 0, 0, 0, 0},
10877 {0x7A, 0, 0, 0, 0},
10878 {0x7B, 0, 0, 0, 0},
10879 {0x7C, 0, 0, 0, 0},
10880 {0x7D, 0x5, 0x5, 1, 1},
10881 {0x7E, 0, 0, 0, 0},
10882 {0x7F, 0, 0, 0, 0},
10883 {0x80, 0, 0, 0, 0},
10884 {0x81, 0, 0, 0, 0},
10885 {0x82, 0, 0, 0, 0},
10886 {0x83, 0, 0, 0, 0},
10887 {0x84, 0, 0, 0, 0},
10888 {0x85, 0, 0, 0, 0},
10889 {0x86, 0, 0, 0, 0},
10890 {0x87, 0, 0, 0, 0},
10891 {0x88, 0, 0, 0, 0},
10892 {0x89, 0, 0, 0, 0},
10893 {0x8A, 0, 0, 0, 0},
10894 {0x8B, 0, 0, 0, 0},
10895 {0x8C, 0, 0, 0, 0},
10896 {0x8D, 0, 0, 0, 0},
10897 {0x8E, 0, 0, 0, 0},
10898 {0x8F, 0, 0, 0, 0},
10899 {0x90, 0, 0, 0, 0},
10900 {0x91, 0, 0, 0, 0},
10901 {0x92, 0, 0, 0, 0},
10902 {0x93, 0, 0, 0, 0},
10903 {0x94, 0, 0, 0, 0},
10904 {0xFFFF, 0, 0, 0, 0},
10907 struct radio_regs regs_SYN_2056_rev11
[] = {
10908 {0x02, 0, 0, 0, 0},
10909 {0x03, 0, 0, 0, 0},
10910 {0x04, 0, 0, 0, 0},
10911 {0x05, 0, 0, 0, 0},
10912 {0x06, 0, 0, 0, 0},
10913 {0x07, 0, 0, 0, 0},
10914 {0x08, 0, 0, 0, 0},
10915 {0x09, 0x1, 0x1, 0, 0},
10916 {0x0A, 0, 0, 0, 0},
10917 {0x0B, 0, 0, 0, 0},
10918 {0x0C, 0, 0, 0, 0},
10919 {0x0D, 0, 0, 0, 0},
10920 {0x0E, 0, 0, 0, 0},
10921 {0x0F, 0, 0, 0, 0},
10922 {0x10, 0, 0, 0, 0},
10923 {0x11, 0, 0, 0, 0},
10924 {0x12, 0, 0, 0, 0},
10925 {0x13, 0, 0, 0, 0},
10926 {0x14, 0, 0, 0, 0},
10927 {0x15, 0, 0, 0, 0},
10928 {0x16, 0, 0, 0, 0},
10929 {0x17, 0, 0, 0, 0},
10930 {0x18, 0, 0, 0, 0},
10931 {0x19, 0, 0, 0, 0},
10932 {0x1A, 0, 0, 0, 0},
10933 {0x1B, 0, 0, 0, 0},
10934 {0x1C, 0, 0, 0, 0},
10935 {0x1D, 0, 0, 0, 0},
10936 {0x1E, 0, 0, 0, 0},
10937 {0x1F, 0, 0, 0, 0},
10938 {0x20, 0, 0, 0, 0},
10939 {0x21, 0, 0, 0, 0},
10940 {0x22, 0x60, 0x60, 0, 0},
10941 {0x23, 0x6, 0x6, 0, 0},
10942 {0x24, 0xc, 0xc, 0, 0},
10943 {0x25, 0, 0, 0, 0},
10944 {0x26, 0, 0, 0, 0},
10945 {0x27, 0, 0, 0, 0},
10946 {0x28, 0x1, 0x1, 0, 0},
10947 {0x29, 0, 0, 0, 0},
10948 {0x2A, 0, 0, 0, 0},
10949 {0x2B, 0, 0, 0, 0},
10950 {0x2C, 0, 0, 0, 0},
10951 {0x2D, 0, 0, 0, 0},
10952 {0x2E, 0, 0, 0, 0},
10953 {0x2F, 0x1f, 0x1f, 0, 0},
10954 {0x30, 0x15, 0x15, 0, 0},
10955 {0x31, 0xf, 0xf, 0, 0},
10956 {0x32, 0, 0, 0, 0},
10957 {0x33, 0, 0, 0, 0},
10958 {0x34, 0, 0, 0, 0},
10959 {0x35, 0, 0, 0, 0},
10960 {0x36, 0, 0, 0, 0},
10961 {0x37, 0, 0, 0, 0},
10962 {0x38, 0, 0, 0, 0},
10963 {0x39, 0, 0, 0, 0},
10964 {0x3A, 0, 0, 0, 0},
10965 {0x3B, 0, 0, 0, 0},
10966 {0x3C, 0x13, 0x13, 0, 0},
10967 {0x3D, 0xf, 0xf, 0, 0},
10968 {0x3E, 0x18, 0x18, 0, 0},
10969 {0x3F, 0, 0, 0, 0},
10970 {0x40, 0, 0, 0, 0},
10971 {0x41, 0x20, 0x20, 0, 0},
10972 {0x42, 0x20, 0x20, 0, 0},
10973 {0x43, 0, 0, 0, 0},
10974 {0x44, 0x77, 0x77, 0, 0},
10975 {0x45, 0x7, 0x7, 0, 0},
10976 {0x46, 0x1, 0x1, 0, 0},
10977 {0x47, 0x6, 0x6, 1, 1},
10978 {0x48, 0xf, 0xf, 0, 0},
10979 {0x49, 0x3f, 0x3f, 1, 1},
10980 {0x4A, 0x32, 0x32, 0, 0},
10981 {0x4B, 0x6, 0x6, 1, 1},
10982 {0x4C, 0x6, 0x6, 1, 1},
10983 {0x4D, 0x4, 0x4, 0, 0},
10984 {0x4E, 0x2b, 0x2b, 1, 1},
10985 {0x4F, 0x1, 0x1, 0, 0},
10986 {0x50, 0x1c, 0x1c, 0, 0},
10987 {0x51, 0x2, 0x2, 0, 0},
10988 {0x52, 0x2, 0x2, 0, 0},
10989 {0x53, 0xf7, 0xf7, 1, 1},
10990 {0x54, 0xb4, 0xb4, 0, 0},
10991 {0x55, 0xd2, 0xd2, 0, 0},
10992 {0x56, 0, 0, 0, 0},
10993 {0x57, 0, 0, 0, 0},
10994 {0x58, 0x4, 0x4, 0, 0},
10995 {0x59, 0x96, 0x96, 0, 0},
10996 {0x5A, 0x3e, 0x3e, 0, 0},
10997 {0x5B, 0x3e, 0x3e, 0, 0},
10998 {0x5C, 0x13, 0x13, 0, 0},
10999 {0x5D, 0x2, 0x2, 0, 0},
11000 {0x5E, 0, 0, 0, 0},
11001 {0x5F, 0x7, 0x7, 0, 0},
11002 {0x60, 0x7, 0x7, 1, 1},
11003 {0x61, 0x8, 0x8, 0, 0},
11004 {0x62, 0x3, 0x3, 0, 0},
11005 {0x63, 0, 0, 0, 0},
11006 {0x64, 0, 0, 0, 0},
11007 {0x65, 0, 0, 0, 0},
11008 {0x66, 0, 0, 0, 0},
11009 {0x67, 0, 0, 0, 0},
11010 {0x68, 0x40, 0x40, 0, 0},
11011 {0x69, 0, 0, 0, 0},
11012 {0x6A, 0, 0, 0, 0},
11013 {0x6B, 0, 0, 0, 0},
11014 {0x6C, 0, 0, 0, 0},
11015 {0x6D, 0x1, 0x1, 0, 0},
11016 {0x6E, 0, 0, 0, 0},
11017 {0x6F, 0, 0, 0, 0},
11018 {0x70, 0x60, 0x60, 0, 0},
11019 {0x71, 0x66, 0x66, 0, 0},
11020 {0x72, 0xc, 0xc, 0, 0},
11021 {0x73, 0x66, 0x66, 0, 0},
11022 {0x74, 0x8f, 0x8f, 1, 1},
11023 {0x75, 0, 0, 0, 0},
11024 {0x76, 0xcc, 0xcc, 0, 0},
11025 {0x77, 0x1, 0x1, 0, 0},
11026 {0x78, 0x66, 0x66, 0, 0},
11027 {0x79, 0x66, 0x66, 0, 0},
11028 {0x7A, 0, 0, 0, 0},
11029 {0x7B, 0, 0, 0, 0},
11030 {0x7C, 0, 0, 0, 0},
11031 {0x7D, 0, 0, 0, 0},
11032 {0x7E, 0, 0, 0, 0},
11033 {0x7F, 0, 0, 0, 0},
11034 {0x80, 0, 0, 0, 0},
11035 {0x81, 0, 0, 0, 0},
11036 {0x82, 0, 0, 0, 0},
11037 {0x83, 0, 0, 0, 0},
11038 {0x84, 0, 0, 0, 0},
11039 {0x85, 0xff, 0xff, 0, 0},
11040 {0x86, 0, 0, 0, 0},
11041 {0x87, 0, 0, 0, 0},
11042 {0x88, 0, 0, 0, 0},
11043 {0x89, 0, 0, 0, 0},
11044 {0x8A, 0, 0, 0, 0},
11045 {0x8B, 0, 0, 0, 0},
11046 {0x8C, 0, 0, 0, 0},
11047 {0x8D, 0, 0, 0, 0},
11048 {0x8E, 0, 0, 0, 0},
11049 {0x8F, 0, 0, 0, 0},
11050 {0x90, 0, 0, 0, 0},
11051 {0x91, 0, 0, 0, 0},
11052 {0x92, 0, 0, 0, 0},
11053 {0x93, 0, 0, 0, 0},
11054 {0x94, 0, 0, 0, 0},
11055 {0x95, 0, 0, 0, 0},
11056 {0x96, 0, 0, 0, 0},
11057 {0x97, 0, 0, 0, 0},
11058 {0x98, 0, 0, 0, 0},
11059 {0x99, 0, 0, 0, 0},
11060 {0x9A, 0, 0, 0, 0},
11061 {0x9B, 0, 0, 0, 0},
11062 {0x9C, 0, 0, 0, 0},
11063 {0x9D, 0, 0, 0, 0},
11064 {0x9E, 0, 0, 0, 0},
11065 {0x9F, 0x6, 0x6, 0, 0},
11066 {0xA0, 0x66, 0x66, 0, 0},
11067 {0xA1, 0x66, 0x66, 0, 0},
11068 {0xA2, 0x66, 0x66, 0, 0},
11069 {0xA3, 0x66, 0x66, 0, 0},
11070 {0xA4, 0x66, 0x66, 0, 0},
11071 {0xA5, 0x66, 0x66, 0, 0},
11072 {0xA6, 0x66, 0x66, 0, 0},
11073 {0xA7, 0x66, 0x66, 0, 0},
11074 {0xA8, 0x66, 0x66, 0, 0},
11075 {0xA9, 0x66, 0x66, 0, 0},
11076 {0xAA, 0x66, 0x66, 0, 0},
11077 {0xAB, 0x66, 0x66, 0, 0},
11078 {0xAC, 0x66, 0x66, 0, 0},
11079 {0xAD, 0x66, 0x66, 0, 0},
11080 {0xAE, 0x66, 0x66, 0, 0},
11081 {0xAF, 0x66, 0x66, 0, 0},
11082 {0xB0, 0x66, 0x66, 0, 0},
11083 {0xB1, 0x66, 0x66, 0, 0},
11084 {0xB2, 0x66, 0x66, 0, 0},
11085 {0xB3, 0xa, 0xa, 0, 0},
11086 {0xB4, 0, 0, 0, 0},
11087 {0xB5, 0, 0, 0, 0},
11088 {0xB6, 0, 0, 0, 0},
11089 {0xFFFF, 0, 0, 0, 0},
11092 struct radio_regs regs_TX_2056_rev11
[] = {
11093 {0x02, 0, 0, 0, 0},
11094 {0x03, 0, 0, 0, 0},
11095 {0x04, 0, 0, 0, 0},
11096 {0x05, 0, 0, 0, 0},
11097 {0x06, 0, 0, 0, 0},
11098 {0x07, 0, 0, 0, 0},
11099 {0x08, 0, 0, 0, 0},
11100 {0x09, 0, 0, 0, 0},
11101 {0x0A, 0, 0, 0, 0},
11102 {0x0B, 0, 0, 0, 0},
11103 {0x0C, 0, 0, 0, 0},
11104 {0x0D, 0, 0, 0, 0},
11105 {0x0E, 0, 0, 0, 0},
11106 {0x0F, 0, 0, 0, 0},
11107 {0x10, 0, 0, 0, 0},
11108 {0x11, 0, 0, 0, 0},
11109 {0x12, 0, 0, 0, 0},
11110 {0x13, 0, 0, 0, 0},
11111 {0x14, 0, 0, 0, 0},
11112 {0x15, 0, 0, 0, 0},
11113 {0x16, 0, 0, 0, 0},
11114 {0x17, 0, 0, 0, 0},
11115 {0x18, 0, 0, 0, 0},
11116 {0x19, 0, 0, 0, 0},
11117 {0x1A, 0, 0, 0, 0},
11118 {0x1B, 0, 0, 0, 0},
11119 {0x1C, 0, 0, 0, 0},
11120 {0x1D, 0, 0, 0, 0},
11121 {0x1E, 0, 0, 0, 0},
11122 {0x1F, 0, 0, 0, 0},
11123 {0x20, 0, 0, 0, 0},
11124 {0x21, 0x88, 0x88, 0, 0},
11125 {0x22, 0x88, 0x88, 0, 0},
11126 {0x23, 0x88, 0x88, 0, 0},
11127 {0x24, 0x88, 0x88, 0, 0},
11128 {0x25, 0xc, 0xc, 0, 0},
11129 {0x26, 0, 0, 0, 0},
11130 {0x27, 0x3, 0x3, 0, 0},
11131 {0x28, 0, 0, 0, 0},
11132 {0x29, 0x3, 0x3, 0, 0},
11133 {0x2A, 0x37, 0x37, 0, 0},
11134 {0x2B, 0x3, 0x3, 0, 0},
11135 {0x2C, 0, 0, 0, 0},
11136 {0x2D, 0, 0, 0, 0},
11137 {0x2E, 0x1, 0x1, 0, 0},
11138 {0x2F, 0x1, 0x1, 0, 0},
11139 {0x30, 0, 0, 0, 0},
11140 {0x31, 0, 0, 0, 0},
11141 {0x32, 0, 0, 0, 0},
11142 {0x33, 0x11, 0x11, 0, 0},
11143 {0x34, 0xee, 0xee, 1, 1},
11144 {0x35, 0, 0, 0, 0},
11145 {0x36, 0, 0, 0, 0},
11146 {0x37, 0x3, 0x3, 0, 0},
11147 {0x38, 0x50, 0x50, 1, 1},
11148 {0x39, 0, 0, 0, 0},
11149 {0x3A, 0x50, 0x50, 1, 1},
11150 {0x3B, 0, 0, 0, 0},
11151 {0x3C, 0x6e, 0x6e, 0, 0},
11152 {0x3D, 0xf0, 0xf0, 1, 1},
11153 {0x3E, 0, 0, 0, 0},
11154 {0x3F, 0, 0, 0, 0},
11155 {0x40, 0, 0, 0, 0},
11156 {0x41, 0x3, 0x3, 0, 0},
11157 {0x42, 0x3, 0x3, 0, 0},
11158 {0x43, 0, 0, 0, 0},
11159 {0x44, 0x1e, 0x1e, 0, 0},
11160 {0x45, 0, 0, 0, 0},
11161 {0x46, 0x6e, 0x6e, 0, 0},
11162 {0x47, 0xf0, 0xf0, 1, 1},
11163 {0x48, 0, 0, 0, 0},
11164 {0x49, 0x2, 0x2, 0, 0},
11165 {0x4A, 0xff, 0xff, 1, 1},
11166 {0x4B, 0xc, 0xc, 0, 0},
11167 {0x4C, 0, 0, 0, 0},
11168 {0x4D, 0x38, 0x38, 0, 0},
11169 {0x4E, 0x70, 0x70, 1, 1},
11170 {0x4F, 0x2, 0x2, 0, 0},
11171 {0x50, 0x88, 0x88, 0, 0},
11172 {0x51, 0xc, 0xc, 0, 0},
11173 {0x52, 0, 0, 0, 0},
11174 {0x53, 0x8, 0x8, 0, 0},
11175 {0x54, 0x70, 0x70, 1, 1},
11176 {0x55, 0x2, 0x2, 0, 0},
11177 {0x56, 0xff, 0xff, 1, 1},
11178 {0x57, 0, 0, 0, 0},
11179 {0x58, 0x83, 0x83, 0, 0},
11180 {0x59, 0x77, 0x77, 1, 1},
11181 {0x5A, 0, 0, 0, 0},
11182 {0x5B, 0x2, 0x2, 0, 0},
11183 {0x5C, 0x88, 0x88, 0, 0},
11184 {0x5D, 0, 0, 0, 0},
11185 {0x5E, 0x8, 0x8, 0, 0},
11186 {0x5F, 0x77, 0x77, 1, 1},
11187 {0x60, 0x1, 0x1, 0, 0},
11188 {0x61, 0, 0, 0, 0},
11189 {0x62, 0x7, 0x7, 0, 0},
11190 {0x63, 0, 0, 0, 0},
11191 {0x64, 0x7, 0x7, 0, 0},
11192 {0x65, 0, 0, 0, 0},
11193 {0x66, 0, 0, 0, 0},
11194 {0x67, 0, 0, 1, 1},
11195 {0x68, 0, 0, 0, 0},
11196 {0x69, 0xa, 0xa, 0, 0},
11197 {0x6A, 0, 0, 0, 0},
11198 {0x6B, 0, 0, 0, 0},
11199 {0x6C, 0, 0, 0, 0},
11200 {0x6D, 0, 0, 0, 0},
11201 {0x6E, 0, 0, 0, 0},
11202 {0x6F, 0, 0, 0, 0},
11203 {0x70, 0, 0, 0, 0},
11204 {0x71, 0x2, 0x2, 0, 0},
11205 {0x72, 0, 0, 0, 0},
11206 {0x73, 0, 0, 0, 0},
11207 {0x74, 0xe, 0xe, 0, 0},
11208 {0x75, 0xe, 0xe, 0, 0},
11209 {0x76, 0xe, 0xe, 0, 0},
11210 {0x77, 0x13, 0x13, 0, 0},
11211 {0x78, 0x13, 0x13, 0, 0},
11212 {0x79, 0x1b, 0x1b, 0, 0},
11213 {0x7A, 0x1b, 0x1b, 0, 0},
11214 {0x7B, 0x55, 0x55, 0, 0},
11215 {0x7C, 0x5b, 0x5b, 0, 0},
11216 {0x7D, 0x30, 0x30, 1, 1},
11217 {0x7E, 0, 0, 0, 0},
11218 {0x7F, 0, 0, 0, 0},
11219 {0x80, 0, 0, 0, 0},
11220 {0x81, 0, 0, 0, 0},
11221 {0x82, 0, 0, 0, 0},
11222 {0x83, 0, 0, 0, 0},
11223 {0x84, 0, 0, 0, 0},
11224 {0x85, 0, 0, 0, 0},
11225 {0x86, 0, 0, 0, 0},
11226 {0x87, 0, 0, 0, 0},
11227 {0x88, 0, 0, 0, 0},
11228 {0x89, 0, 0, 0, 0},
11229 {0x8A, 0, 0, 0, 0},
11230 {0x8B, 0, 0, 0, 0},
11231 {0x8C, 0, 0, 0, 0},
11232 {0x8D, 0, 0, 0, 0},
11233 {0x8E, 0, 0, 0, 0},
11234 {0x8F, 0, 0, 0, 0},
11235 {0x90, 0, 0, 0, 0},
11236 {0x91, 0, 0, 0, 0},
11237 {0x92, 0, 0, 0, 0},
11238 {0x93, 0x70, 0x70, 0, 0},
11239 {0x94, 0x70, 0x70, 0, 0},
11240 {0x95, 0x70, 0x70, 0, 0},
11241 {0x96, 0x70, 0x70, 0, 0},
11242 {0x97, 0x70, 0x70, 0, 0},
11243 {0x98, 0x70, 0x70, 0, 0},
11244 {0x99, 0x70, 0x70, 0, 0},
11245 {0x9A, 0x70, 0x70, 0, 0},
11246 {0xFFFF, 0, 0, 0, 0},
11249 struct radio_regs regs_RX_2056_rev11
[] = {
11250 {0x02, 0, 0, 0, 0},
11251 {0x03, 0, 0, 0, 0},
11252 {0x04, 0, 0, 0, 0},
11253 {0x05, 0, 0, 0, 0},
11254 {0x06, 0, 0, 0, 0},
11255 {0x07, 0, 0, 0, 0},
11256 {0x08, 0, 0, 0, 0},
11257 {0x09, 0, 0, 0, 0},
11258 {0x0A, 0, 0, 0, 0},
11259 {0x0B, 0, 0, 0, 0},
11260 {0x0C, 0, 0, 0, 0},
11261 {0x0D, 0, 0, 0, 0},
11262 {0x0E, 0, 0, 0, 0},
11263 {0x0F, 0, 0, 0, 0},
11264 {0x10, 0, 0, 0, 0},
11265 {0x11, 0, 0, 0, 0},
11266 {0x12, 0, 0, 0, 0},
11267 {0x13, 0, 0, 0, 0},
11268 {0x14, 0, 0, 0, 0},
11269 {0x15, 0, 0, 0, 0},
11270 {0x16, 0, 0, 0, 0},
11271 {0x17, 0, 0, 0, 0},
11272 {0x18, 0, 0, 0, 0},
11273 {0x19, 0, 0, 0, 0},
11274 {0x1A, 0, 0, 0, 0},
11275 {0x1B, 0, 0, 0, 0},
11276 {0x1C, 0, 0, 0, 0},
11277 {0x1D, 0, 0, 0, 0},
11278 {0x1E, 0, 0, 0, 0},
11279 {0x1F, 0, 0, 0, 0},
11280 {0x20, 0x3, 0x3, 0, 0},
11281 {0x21, 0, 0, 0, 0},
11282 {0x22, 0, 0, 0, 0},
11283 {0x23, 0x90, 0x90, 0, 0},
11284 {0x24, 0x55, 0x55, 0, 0},
11285 {0x25, 0x15, 0x15, 0, 0},
11286 {0x26, 0x5, 0x5, 0, 0},
11287 {0x27, 0x15, 0x15, 0, 0},
11288 {0x28, 0x5, 0x5, 0, 0},
11289 {0x29, 0x20, 0x20, 0, 0},
11290 {0x2A, 0x11, 0x11, 0, 0},
11291 {0x2B, 0x90, 0x90, 0, 0},
11292 {0x2C, 0, 0, 0, 0},
11293 {0x2D, 0x88, 0x88, 0, 0},
11294 {0x2E, 0x32, 0x32, 0, 0},
11295 {0x2F, 0x77, 0x77, 0, 0},
11296 {0x30, 0x17, 0x17, 1, 1},
11297 {0x31, 0xff, 0xff, 1, 1},
11298 {0x32, 0x20, 0x20, 0, 0},
11299 {0x33, 0, 0, 0, 0},
11300 {0x34, 0x88, 0x88, 0, 0},
11301 {0x35, 0x32, 0x32, 0, 0},
11302 {0x36, 0x77, 0x77, 0, 0},
11303 {0x37, 0x17, 0x17, 1, 1},
11304 {0x38, 0xf0, 0xf0, 1, 1},
11305 {0x39, 0x20, 0x20, 0, 0},
11306 {0x3A, 0x8, 0x8, 0, 0},
11307 {0x3B, 0x55, 0x55, 1, 1},
11308 {0x3C, 0, 0, 0, 0},
11309 {0x3D, 0x88, 0x88, 1, 1},
11310 {0x3E, 0, 0, 0, 0},
11311 {0x3F, 0x44, 0x44, 0, 0},
11312 {0x40, 0x7, 0x7, 1, 1},
11313 {0x41, 0x6, 0x6, 0, 0},
11314 {0x42, 0x4, 0x4, 0, 0},
11315 {0x43, 0, 0, 0, 0},
11316 {0x44, 0x8, 0x8, 0, 0},
11317 {0x45, 0x55, 0x55, 1, 1},
11318 {0x46, 0, 0, 0, 0},
11319 {0x47, 0x11, 0x11, 0, 0},
11320 {0x48, 0, 0, 0, 0},
11321 {0x49, 0x44, 0x44, 0, 0},
11322 {0x4A, 0x7, 0x7, 0, 0},
11323 {0x4B, 0x6, 0x6, 0, 0},
11324 {0x4C, 0x4, 0x4, 0, 0},
11325 {0x4D, 0, 0, 0, 0},
11326 {0x4E, 0, 0, 0, 0},
11327 {0x4F, 0x26, 0x26, 1, 1},
11328 {0x50, 0x26, 0x26, 1, 1},
11329 {0x51, 0xf, 0xf, 1, 1},
11330 {0x52, 0xf, 0xf, 1, 1},
11331 {0x53, 0x44, 0x44, 0, 0},
11332 {0x54, 0, 0, 0, 0},
11333 {0x55, 0, 0, 0, 0},
11334 {0x56, 0x8, 0x8, 0, 0},
11335 {0x57, 0x8, 0x8, 0, 0},
11336 {0x58, 0x7, 0x7, 0, 0},
11337 {0x59, 0x22, 0x22, 0, 0},
11338 {0x5A, 0x22, 0x22, 0, 0},
11339 {0x5B, 0x2, 0x2, 0, 0},
11340 {0x5C, 0x4, 0x4, 1, 1},
11341 {0x5D, 0x7, 0x7, 0, 0},
11342 {0x5E, 0x55, 0x55, 0, 0},
11343 {0x5F, 0x23, 0x23, 0, 0},
11344 {0x60, 0x41, 0x41, 0, 0},
11345 {0x61, 0x1, 0x1, 0, 0},
11346 {0x62, 0xa, 0xa, 0, 0},
11347 {0x63, 0, 0, 0, 0},
11348 {0x64, 0, 0, 0, 0},
11349 {0x65, 0, 0, 0, 0},
11350 {0x66, 0, 0, 0, 0},
11351 {0x67, 0, 0, 0, 0},
11352 {0x68, 0, 0, 0, 0},
11353 {0x69, 0, 0, 0, 0},
11354 {0x6A, 0, 0, 0, 0},
11355 {0x6B, 0xc, 0xc, 0, 0},
11356 {0x6C, 0, 0, 0, 0},
11357 {0x6D, 0, 0, 0, 0},
11358 {0x6E, 0, 0, 0, 0},
11359 {0x6F, 0, 0, 0, 0},
11360 {0x70, 0, 0, 0, 0},
11361 {0x71, 0, 0, 0, 0},
11362 {0x72, 0x22, 0x22, 0, 0},
11363 {0x73, 0x22, 0x22, 0, 0},
11364 {0x74, 0, 0, 1, 1},
11365 {0x75, 0xa, 0xa, 0, 0},
11366 {0x76, 0x1, 0x1, 0, 0},
11367 {0x77, 0x22, 0x22, 0, 0},
11368 {0x78, 0x30, 0x30, 0, 0},
11369 {0x79, 0, 0, 0, 0},
11370 {0x7A, 0, 0, 0, 0},
11371 {0x7B, 0, 0, 0, 0},
11372 {0x7C, 0, 0, 0, 0},
11373 {0x7D, 0x5, 0x5, 1, 1},
11374 {0x7E, 0, 0, 0, 0},
11375 {0x7F, 0, 0, 0, 0},
11376 {0x80, 0, 0, 0, 0},
11377 {0x81, 0, 0, 0, 0},
11378 {0x82, 0, 0, 0, 0},
11379 {0x83, 0, 0, 0, 0},
11380 {0x84, 0, 0, 0, 0},
11381 {0x85, 0, 0, 0, 0},
11382 {0x86, 0, 0, 0, 0},
11383 {0x87, 0, 0, 0, 0},
11384 {0x88, 0, 0, 0, 0},
11385 {0x89, 0, 0, 0, 0},
11386 {0x8A, 0, 0, 0, 0},
11387 {0x8B, 0, 0, 0, 0},
11388 {0x8C, 0, 0, 0, 0},
11389 {0x8D, 0, 0, 0, 0},
11390 {0x8E, 0, 0, 0, 0},
11391 {0x8F, 0, 0, 0, 0},
11392 {0x90, 0, 0, 0, 0},
11393 {0x91, 0, 0, 0, 0},
11394 {0x92, 0, 0, 0, 0},
11395 {0x93, 0, 0, 0, 0},
11396 {0x94, 0, 0, 0, 0},
11397 {0xFFFF, 0, 0, 0, 0},
11400 struct radio_20xx_regs regs_2057_rev4
[] = {
11790 struct radio_20xx_regs regs_2057_rev5
[] = {
12122 struct radio_20xx_regs regs_2057_rev5v1
[] = {
12454 struct radio_20xx_regs regs_2057_rev7
[] = {
12870 struct radio_20xx_regs regs_2057_rev8
[] = {
13286 static s16 nphy_def_lnagains
[] = { -2, 10, 19, 25 };
13288 static s32 nphy_lnagain_est0
[] = { -315, 40370 };
13289 static s32 nphy_lnagain_est1
[] = { -224, 23242 };
13291 static const u16 tbl_iqcal_gainparams_nphy
[2][NPHY_IQCAL_NUMGAINS
][8] = {
13293 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13294 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13295 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13296 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13297 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13298 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13299 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13300 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13301 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13304 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13305 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13306 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13307 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13308 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13309 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13310 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13311 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13312 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13316 static const u32 nphy_tpc_txgain
[] = {
13317 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13318 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13319 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13320 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13321 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13322 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13323 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13324 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13325 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13326 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13327 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13328 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13329 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13330 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13331 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13332 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13333 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13334 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13335 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13336 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13337 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13338 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13339 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13340 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13341 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13342 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13343 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13344 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13345 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13346 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13347 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13348 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13351 static const u16 nphy_tpc_loscale
[] = {
13352 256, 256, 271, 271, 287, 256, 256, 271,
13353 271, 287, 287, 304, 304, 256, 256, 271,
13354 271, 287, 287, 304, 304, 322, 322, 341,
13355 341, 362, 362, 383, 383, 256, 256, 271,
13356 271, 287, 287, 304, 304, 322, 322, 256,
13357 256, 271, 271, 287, 287, 304, 304, 322,
13358 322, 341, 341, 362, 362, 256, 256, 271,
13359 271, 287, 287, 304, 304, 322, 322, 256,
13360 256, 271, 271, 287, 287, 304, 304, 322,
13361 322, 341, 341, 362, 362, 256, 256, 271,
13362 271, 287, 287, 304, 304, 322, 322, 341,
13363 341, 362, 362, 383, 383, 406, 406, 430,
13364 430, 455, 455, 482, 482, 511, 511, 541,
13365 541, 573, 573, 607, 607, 643, 643, 681,
13366 681, 722, 722, 764, 764, 810, 810, 858,
13367 858, 908, 908, 962, 962, 1019, 1019, 256
13370 static u32 nphy_tpc_txgain_ipa
[] = {
13371 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13372 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13373 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13374 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13375 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13376 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13377 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13378 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13379 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13380 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13381 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13382 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13383 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13384 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13385 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13386 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13387 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13388 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13389 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13390 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13391 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13392 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13393 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13394 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13395 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13396 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13397 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13398 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13399 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13400 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13401 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13402 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13405 static u32 nphy_tpc_txgain_ipa_rev5
[] = {
13406 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13407 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13408 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13409 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13410 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13411 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13412 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13413 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13414 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13415 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13416 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13417 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13418 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13419 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13420 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13421 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13422 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13423 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13424 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13425 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13426 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13427 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13428 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13429 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13430 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13431 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13432 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13433 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13434 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13435 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13436 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13437 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13440 static u32 nphy_tpc_txgain_ipa_rev6
[] = {
13441 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13442 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13443 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13444 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13445 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13446 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13447 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13448 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13449 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13450 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13451 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13452 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13453 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13454 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13455 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13456 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13457 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13458 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13459 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13460 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13461 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13462 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13463 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13464 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13465 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13466 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13467 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13468 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13469 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13470 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13471 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13472 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13475 static u32 nphy_tpc_txgain_ipa_2g_2057rev3
[] = {
13476 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13477 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13478 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13479 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13480 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13481 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13482 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13483 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13484 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13485 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13486 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13487 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13488 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13489 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13490 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13491 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13492 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13493 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13494 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13495 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13496 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13497 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13498 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13499 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13500 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13501 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13502 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13503 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13504 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13505 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13506 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13507 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13510 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6
[] = {
13511 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13512 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13513 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13514 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13515 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13516 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13517 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13518 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13519 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13520 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13521 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13522 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13523 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13524 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13525 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13526 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13527 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13528 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13529 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13530 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13531 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13532 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13533 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13534 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13535 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13536 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13537 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13538 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13539 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13540 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13541 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13542 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13545 static u32 nphy_tpc_txgain_ipa_2g_2057rev5
[] = {
13546 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13547 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13548 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13549 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13550 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13551 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13552 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13553 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13554 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13555 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13556 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13557 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13558 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13559 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13560 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13561 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13562 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13563 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13564 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13565 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13566 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13567 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13568 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13569 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13570 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13571 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13572 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13573 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13574 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13575 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13576 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13577 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13580 static u32 nphy_tpc_txgain_ipa_2g_2057rev7
[] = {
13581 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13582 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13583 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13584 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13585 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13586 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13587 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13588 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13589 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13590 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13591 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13592 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13593 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13594 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13595 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13596 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13597 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13598 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13599 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13600 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13601 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13602 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13603 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13604 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13605 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13606 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13607 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13608 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13609 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13610 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13611 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13612 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13615 static u32 nphy_tpc_txgain_ipa_5g
[] = {
13616 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13617 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13618 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13619 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13620 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13621 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13622 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13623 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13624 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13625 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13626 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13627 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13628 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13629 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13630 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13631 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13632 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13633 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13634 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13635 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13636 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13637 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13638 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13639 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13640 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13641 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13642 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13643 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13644 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13645 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13646 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13647 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13650 static u32 nphy_tpc_txgain_ipa_5g_2057
[] = {
13651 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13652 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13653 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13654 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13655 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13656 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13657 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13658 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13659 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13660 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13661 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13662 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13663 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13664 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13665 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13666 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13667 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13668 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13669 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13670 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13671 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13672 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13673 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13674 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13675 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13676 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13677 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13678 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13679 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13680 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13681 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13682 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13685 static u32 nphy_tpc_txgain_ipa_5g_2057rev7
[] = {
13686 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13687 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13688 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13689 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13690 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13691 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13692 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13693 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13694 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13695 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13696 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13697 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13698 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13699 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13700 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13701 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13702 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13703 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13704 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13705 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13706 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13707 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13708 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13709 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13710 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13711 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13712 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13713 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13714 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13715 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13716 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13717 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13720 static s8 nphy_papd_pga_gain_delta_ipa_2g
[] = {
13721 -114, -108, -98, -91, -84, -78, -70, -62,
13722 -54, -46, -39, -31, -23, -15, -8, 0
13725 static s8 nphy_papd_pga_gain_delta_ipa_5g
[] = {
13726 -100, -95, -89, -83, -77, -70, -63, -56,
13727 -48, -41, -33, -25, -19, -12, -6, 0
13730 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4
[] = {
13731 -159, -113, -86, -72, -62, -54, -48, -43,
13732 -39, -35, -31, -28, -25, -23, -20, -18,
13733 -17, -15, -13, -11, -10, -8, -7, -6,
13734 -5, -4, -3, -3, -2, -1, -1, 0
13737 static s16 nphy_papd_padgain_dlt_2g_2057rev5
[] = {
13738 -109, -109, -82, -68, -58, -50, -44, -39,
13739 -35, -31, -28, -26, -23, -21, -19, -17,
13740 -16, -14, -13, -11, -10, -9, -8, -7,
13741 -5, -5, -4, -3, -2, -1, -1, 0
13744 static s16 nphy_papd_padgain_dlt_2g_2057rev7
[] = {
13745 -122, -122, -95, -80, -69, -61, -54, -49,
13746 -43, -39, -35, -32, -28, -26, -23, -21,
13747 -18, -16, -15, -13, -11, -10, -8, -7,
13748 -6, -5, -4, -3, -2, -1, -1, 0
13751 static s8 nphy_papd_pgagain_dlt_5g_2057
[] = {
13752 -107, -101, -92, -85, -78, -71, -62, -55,
13753 -47, -39, -32, -24, -19, -12, -6, 0
13756 static s8 nphy_papd_pgagain_dlt_5g_2057rev7
[] = {
13757 -110, -104, -95, -88, -81, -74, -66, -58,
13758 -50, -44, -36, -28, -23, -15, -8, 0
13761 static u8 pad_gain_codes_used_2057rev5
[] = {
13762 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13763 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13766 static u8 pad_gain_codes_used_2057rev7
[] = {
13767 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13771 static u8 pad_all_gain_codes_2057
[] = {
13772 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13773 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13774 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13778 static u8 pga_all_gain_codes_2057
[] = {
13779 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13782 static u32 nphy_papd_scaltbl
[] = {
13783 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13784 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13785 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13786 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13787 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13788 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13789 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13790 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13791 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13792 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13793 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13794 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13795 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13796 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13797 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13798 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13801 static u32 nphy_tpc_txgain_rev3
[] = {
13802 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13803 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13804 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13805 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13806 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13807 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13808 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13809 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13810 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13811 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13812 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13813 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13814 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13815 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13816 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13817 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13818 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13819 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13820 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13821 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13822 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13823 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13824 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13825 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13826 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13827 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13828 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13829 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13830 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13831 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13832 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13833 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13836 static u32 nphy_tpc_txgain_HiPwrEPA
[] = {
13837 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13838 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13839 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13840 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13841 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13842 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13843 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13844 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13845 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13846 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13847 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13848 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13849 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13850 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13851 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13852 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13853 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13854 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13855 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13856 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13857 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13858 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13859 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13860 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13861 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13862 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13863 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13864 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13865 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13866 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13867 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13868 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13871 static u32 nphy_tpc_txgain_epa_2057rev3
[] = {
13872 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13873 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13874 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13875 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13876 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13877 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13878 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13879 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13880 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13881 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13882 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13883 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13884 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13885 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13886 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13887 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13888 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13889 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13890 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13891 0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13892 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13893 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13894 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13895 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13896 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13897 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13898 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13899 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13900 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13901 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13902 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13903 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13906 static u32 nphy_tpc_txgain_epa_2057rev5
[] = {
13907 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13908 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13909 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13910 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13911 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13912 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13913 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13914 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13915 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13916 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13917 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13918 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13919 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13920 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13921 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13922 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13923 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13924 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13925 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13926 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13927 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13928 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13929 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13930 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13931 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13932 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13933 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13934 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13935 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13936 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13937 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13938 0x10090001, 0x10090001, 0x10090001, 0x10090001
13941 static u32 nphy_tpc_5GHz_txgain_rev3
[] = {
13942 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13943 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13944 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13945 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13946 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13947 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13948 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13949 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13950 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13951 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13952 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13953 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13954 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13955 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13956 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13957 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13958 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13959 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13960 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13961 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13962 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13963 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13964 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13965 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13966 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13967 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13968 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13969 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
13970 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
13971 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
13972 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
13973 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
13976 static u32 nphy_tpc_5GHz_txgain_rev4
[] = {
13977 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
13978 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
13979 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
13980 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
13981 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
13982 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
13983 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
13984 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
13985 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
13986 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
13987 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
13988 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
13989 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
13990 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
13991 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
13992 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
13993 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
13994 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
13995 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
13996 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
13997 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
13998 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
13999 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14000 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14001 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14002 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14003 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14004 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14005 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14006 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14007 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14008 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14011 static u32 nphy_tpc_5GHz_txgain_rev5
[] = {
14012 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14013 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14014 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14015 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14016 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14017 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14018 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14019 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14020 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14021 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14022 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14023 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14024 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14025 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14026 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14027 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14028 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14029 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14030 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14031 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14032 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14033 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14034 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14035 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14036 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14037 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14038 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14039 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14040 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14041 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14042 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14043 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14046 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA
[] = {
14047 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14048 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14049 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14050 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14051 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14052 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14053 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14054 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14055 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14056 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14057 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14058 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14059 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14060 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14061 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14062 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14063 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14064 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14065 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14066 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14067 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14068 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14069 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14070 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14071 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14072 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14073 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14074 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14075 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14076 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14077 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14078 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14081 static u8 ant_sw_ctrl_tbl_rev8_2o3
[] = { 0x14, 0x18 };
14082 static u8 ant_sw_ctrl_tbl_rev8
[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14083 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0
[] = {
14084 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a };
14085 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1
[] = {
14086 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16 };
14088 static bool wlc_phy_chan2freq_nphy(struct brcms_phy
*pi
, uint channel
, int *f
,
14089 struct chan_info_nphy_radio2057
**t0
,
14090 struct chan_info_nphy_radio205x
**t1
,
14091 struct chan_info_nphy_radio2057_rev5
**t2
,
14092 struct chan_info_nphy_2055
**t3
);
14093 static void wlc_phy_chanspec_nphy_setup(struct brcms_phy
*pi
, chanspec_t chans
,
14094 const struct nphy_sfo_cfg
*c
);
14096 static void wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy
*pi
,
14097 u16 reduction_factr
);
14098 static void wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy
*pi
,
14099 int ntones
, int *, u32
*buf
);
14100 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy
*pi
, u8 minpwr
);
14101 static void wlc_phy_txlpfbw_nphy(struct brcms_phy
*pi
);
14102 static void wlc_phy_spurwar_nphy(struct brcms_phy
*pi
);
14104 static void wlc_phy_radio_preinit_2055(struct brcms_phy
*pi
);
14105 static void wlc_phy_radio_init_2055(struct brcms_phy
*pi
);
14106 static void wlc_phy_radio_postinit_2055(struct brcms_phy
*pi
);
14107 static void wlc_phy_radio_preinit_205x(struct brcms_phy
*pi
);
14108 static void wlc_phy_radio_init_2056(struct brcms_phy
*pi
);
14109 static void wlc_phy_radio_postinit_2056(struct brcms_phy
*pi
);
14110 static void wlc_phy_radio_init_2057(struct brcms_phy
*pi
);
14111 static void wlc_phy_radio_postinit_2057(struct brcms_phy
*pi
);
14112 static void wlc_phy_workarounds_nphy(struct brcms_phy
*pi
);
14113 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy
*pi
);
14114 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy
*pi
);
14115 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy
*pi
);
14116 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy
*pi
);
14118 static void wlc_phy_restore_rssical_nphy(struct brcms_phy
*pi
);
14119 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy
*pi
);
14120 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy
*pi
);
14121 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy
*pi
,
14122 struct nphy_txgains tg
, u8 type
, bool d
);
14123 static void wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy
*pi
, u8 rxcore
,
14125 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy
*pi
, s32 preamble
);
14126 static void wlc_phy_savecal_nphy(struct brcms_phy
*pi
);
14127 static void wlc_phy_restorecal_nphy(struct brcms_phy
*pi
);
14128 static void wlc_phy_resetcca_nphy(struct brcms_phy
*pi
);
14130 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy
*pi
);
14131 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy
*pi
);
14132 static void wlc_phy_precal_txgain_nphy(struct brcms_phy
*pi
);
14133 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy
*pi
, u16 core
);
14135 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy
*pi
);
14136 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy
*pi
);
14137 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy
*pi
);
14138 static u16
wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy
*pi
);
14139 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy
*pi
, u8 m0
, u8 m1
);
14140 static u32
*wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy
*pi
);
14142 static void wlc_phy_a1_nphy(struct brcms_phy
*pi
, u8 core
, u32 winsz
, u32
,
14144 static u8
wlc_phy_a3_nphy(struct brcms_phy
*pi
, u8 start_gain
, u8 core
);
14145 static void wlc_phy_a2_nphy(struct brcms_phy
*pi
, struct nphy_ipa_txcalgains
*,
14146 enum phy_cal_mode
, u8
);
14147 static void wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy
*pi
,
14148 struct nphy_papd_restore_state
*state
);
14149 static void wlc_phy_papd_cal_setup_nphy(struct brcms_phy
*pi
,
14150 struct nphy_papd_restore_state
*state
, u8
);
14152 static void wlc_phy_clip_det_nphy(struct brcms_phy
*pi
, u8 write
, u16
*vals
);
14154 static void wlc_phy_set_rfseq_nphy(struct brcms_phy
*pi
, u8 cmd
, u8
*evts
,
14157 static u16
wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy
*pi
, u16 offset
);
14160 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy
*pi
, u16 field
, u16 value
,
14161 u8 core_mask
, u8 off
,
14164 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy
*pi
, u8 rssi_type
);
14165 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy
*pi
);
14167 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy
*pi
);
14168 static void wlc_phy_txpwr_nphy_srom_convert(u8
*srom_max
,
14170 u8 tmp_max_pwr
, u8 rate_start
,
14173 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy
*pi
);
14174 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy
*pi
);
14175 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy
*pi
);
14176 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy
*pi
);
14178 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy
*pi
);
14179 static u8
wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy
*pi
, u8 core
);
14180 static void wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy
*pi
, u8 idx0
,
14182 static void wlc_phy_a4(struct brcms_phy
*pi
, bool full_cal
);
14184 static u16
wlc_phy_radio205x_rcal(struct brcms_phy
*pi
);
14186 static u16
wlc_phy_radio2057_rccal(struct brcms_phy
*pi
);
14188 static u16
wlc_phy_gen_load_samples_nphy(struct brcms_phy
*pi
, u32 f_kHz
,
14191 static void wlc_phy_loadsampletable_nphy(struct brcms_phy
*pi
, cs32
*tone_buf
,
14193 static void wlc_phy_runsamples_nphy(struct brcms_phy
*pi
, u16 n
, u16 lps
,
14194 u16 wait
, u8 iq
, u8 dac_test_mode
,
14195 bool modify_bbmult
);
14197 bool wlc_phy_bist_check_phy(struct brcms_phy_pub
*pih
)
14199 struct brcms_phy
*pi
= (struct brcms_phy
*) pih
;
14200 u32 phybist0
, phybist1
, phybist2
, phybist3
, phybist4
;
14202 if (NREV_GE(pi
->pubpi
.phy_rev
, 16))
14205 phybist0
= read_phy_reg(pi
, 0x0e);
14206 phybist1
= read_phy_reg(pi
, 0x0f);
14207 phybist2
= read_phy_reg(pi
, 0xea);
14208 phybist3
= read_phy_reg(pi
, 0xeb);
14209 phybist4
= read_phy_reg(pi
, 0x156);
14211 if ((phybist0
== 0) && (phybist1
== 0x4000) && (phybist2
== 0x1fe0) &&
14212 (phybist3
== 0) && (phybist4
== 0)) {
14219 static void WLBANDINITFN(wlc_phy_bphy_init_nphy
) (struct brcms_phy
*pi
)
14224 for (addr
= (NPHY_TO_BPHY_OFF
+ BPHY_RSSI_LUT
);
14225 addr
<= (NPHY_TO_BPHY_OFF
+ BPHY_RSSI_LUT_END
); addr
++) {
14226 write_phy_reg(pi
, addr
, val
);
14227 if (addr
== (NPHY_TO_BPHY_OFF
+ 0x97))
14233 if (NORADIO_ENAB(pi
->pubpi
)) {
14235 write_phy_reg(pi
, NPHY_TO_BPHY_OFF
+ BPHY_PHYCRSTH
, 0x3206);
14237 write_phy_reg(pi
, NPHY_TO_BPHY_OFF
+ BPHY_RSSI_TRESH
, 0x281e);
14239 or_phy_reg(pi
, NPHY_TO_BPHY_OFF
+ BPHY_LNA_GAIN_RANGE
, 0x1a);
14243 write_phy_reg(pi
, NPHY_TO_BPHY_OFF
+ BPHY_STEP
, 0x668);
14248 wlc_phy_table_write_nphy(struct brcms_phy
*pi
, u32 id
, u32 len
, u32 offset
,
14249 u32 width
, const void *data
)
14251 struct phytbl_info tbl
;
14255 tbl
.tbl_offset
= offset
;
14256 tbl
.tbl_width
= width
;
14257 tbl
.tbl_ptr
= data
;
14258 wlc_phy_write_table_nphy(pi
, &tbl
);
14262 wlc_phy_table_read_nphy(struct brcms_phy
*pi
, u32 id
, u32 len
, u32 offset
,
14263 u32 width
, void *data
)
14265 struct phytbl_info tbl
;
14269 tbl
.tbl_offset
= offset
;
14270 tbl
.tbl_width
= width
;
14271 tbl
.tbl_ptr
= data
;
14272 wlc_phy_read_table_nphy(pi
, &tbl
);
14276 WLBANDINITFN(wlc_phy_static_table_download_nphy
) (struct brcms_phy
*pi
)
14280 if (NREV_GE(pi
->pubpi
.phy_rev
, 16)) {
14281 for (idx
= 0; idx
< mimophytbl_info_sz_rev16
; idx
++)
14282 wlc_phy_write_table_nphy(pi
,
14283 &mimophytbl_info_rev16
[idx
]);
14284 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
14285 for (idx
= 0; idx
< mimophytbl_info_sz_rev7
; idx
++)
14286 wlc_phy_write_table_nphy(pi
,
14287 &mimophytbl_info_rev7
[idx
]);
14288 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14289 for (idx
= 0; idx
< mimophytbl_info_sz_rev3
; idx
++)
14290 wlc_phy_write_table_nphy(pi
,
14291 &mimophytbl_info_rev3
[idx
]);
14293 for (idx
= 0; idx
< mimophytbl_info_sz_rev0
; idx
++)
14294 wlc_phy_write_table_nphy(pi
,
14295 &mimophytbl_info_rev0
[idx
]);
14299 static void WLBANDINITFN(wlc_phy_tbl_init_nphy
) (struct brcms_phy
*pi
)
14304 if (pi
->phy_init_por
)
14305 wlc_phy_static_table_download_nphy(pi
);
14307 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
14309 antswctrllut
= CHSPEC_IS2G(pi
->radio_chanspec
) ?
14310 pi
->srom_fem2g
.antswctrllut
: pi
->srom_fem5g
.antswctrllut
;
14312 switch (antswctrllut
) {
14319 if (pi
->aa2g
== 7) {
14321 wlc_phy_table_write_nphy(pi
,
14322 NPHY_TBL_ID_ANTSWCTRLLUT
,
14324 &ant_sw_ctrl_tbl_rev8_2o3
14327 wlc_phy_table_write_nphy(pi
,
14328 NPHY_TBL_ID_ANTSWCTRLLUT
,
14330 &ant_sw_ctrl_tbl_rev8
14333 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14335 &ant_sw_ctrl_tbl_rev8
[2]);
14336 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14338 &ant_sw_ctrl_tbl_rev8
[4]);
14343 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14345 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14347 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14349 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14351 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14353 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14356 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14358 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14360 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14362 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14364 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
14366 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14374 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14375 for (idx
= 0; idx
< mimophytbl_info_sz_rev3_volatile
; idx
++) {
14377 if (idx
== ANT_SWCTRL_TBL_REV3_IDX
) {
14378 antswctrllut
= CHSPEC_IS2G(pi
->radio_chanspec
) ?
14379 pi
->srom_fem2g
.antswctrllut
: pi
->
14380 srom_fem5g
.antswctrllut
;
14381 switch (antswctrllut
) {
14383 wlc_phy_write_table_nphy(pi
,
14384 &mimophytbl_info_rev3_volatile
14388 wlc_phy_write_table_nphy(pi
,
14389 &mimophytbl_info_rev3_volatile1
14393 wlc_phy_write_table_nphy(pi
,
14394 &mimophytbl_info_rev3_volatile2
14398 wlc_phy_write_table_nphy(pi
,
14399 &mimophytbl_info_rev3_volatile3
14406 wlc_phy_write_table_nphy(pi
,
14407 &mimophytbl_info_rev3_volatile
14412 for (idx
= 0; idx
< mimophytbl_info_sz_rev0_volatile
; idx
++) {
14413 wlc_phy_write_table_nphy(pi
,
14414 &mimophytbl_info_rev0_volatile
14421 wlc_phy_write_txmacreg_nphy(struct brcms_phy
*pi
, u16 holdoff
, u16 delay
)
14423 write_phy_reg(pi
, 0x77, holdoff
);
14424 write_phy_reg(pi
, 0xb4, delay
);
14427 void wlc_phy_nphy_tkip_rifs_war(struct brcms_phy
*pi
, u8 rifs
)
14429 u16 holdoff
, delay
;
14441 wlc_phy_write_txmacreg_nphy(pi
, holdoff
, delay
);
14443 if (pi
&& pi
->sh
&& (pi
->sh
->_rifs_phy
!= rifs
)) {
14444 pi
->sh
->_rifs_phy
= rifs
;
14448 bool wlc_phy_attach_nphy(struct brcms_phy
*pi
)
14452 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LT(pi
->pubpi
.phy_rev
, 6)) {
14453 pi
->phyhang_avoid
= true;
14456 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
14458 pi
->nphy_gband_spurwar_en
= true;
14460 if (pi
->sh
->boardflags2
& BFL2_SPUR_WAR
) {
14461 pi
->nphy_aband_spurwar_en
= true;
14464 if (NREV_GE(pi
->pubpi
.phy_rev
, 6) && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
14466 if (pi
->sh
->boardflags2
& BFL2_2G_SPUR_WAR
) {
14467 pi
->nphy_gband_spurwar2_en
= true;
14471 pi
->n_preamble_override
= AUTO
;
14472 if (NREV_IS(pi
->pubpi
.phy_rev
, 3) || NREV_IS(pi
->pubpi
.phy_rev
, 4))
14473 pi
->n_preamble_override
= WLC_N_PREAMBLE_MIXEDMODE
;
14475 pi
->nphy_txrx_chain
= AUTO
;
14476 pi
->phy_scraminit
= AUTO
;
14478 pi
->nphy_rxcalparams
= 0x010100B5;
14480 pi
->nphy_perical
= PHY_PERICAL_MPHASE
;
14481 pi
->mphase_cal_phase_id
= MPHASE_CAL_STATE_IDLE
;
14482 pi
->mphase_txcal_numcmds
= MPHASE_TXCAL_NUMCMDS
;
14484 pi
->nphy_gain_boost
= true;
14485 pi
->nphy_elna_gain_config
= false;
14486 pi
->radio_is_on
= false;
14488 for (i
= 0; i
< pi
->pubpi
.phy_corenum
; i
++) {
14489 pi
->nphy_txpwrindex
[i
].index
= AUTO
;
14492 wlc_phy_txpwrctrl_config_nphy(pi
);
14493 if (pi
->nphy_txpwrctrl
== PHY_TPC_HW_ON
)
14494 pi
->hwpwrctrl_capable
= true;
14496 pi
->pi_fptr
.init
= wlc_phy_init_nphy
;
14497 pi
->pi_fptr
.calinit
= wlc_phy_cal_init_nphy
;
14498 pi
->pi_fptr
.chanset
= wlc_phy_chanspec_set_nphy
;
14499 pi
->pi_fptr
.txpwrrecalc
= wlc_phy_txpower_recalc_target_nphy
;
14501 if (!wlc_phy_txpwr_srom_read_nphy(pi
))
14507 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy
*pi
)
14510 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14511 pi
->nphy_txpwrctrl
= PHY_TPC_HW_ON
;
14512 pi
->phy_5g_pwrgain
= true;
14516 pi
->nphy_txpwrctrl
= PHY_TPC_HW_OFF
;
14517 pi
->phy_5g_pwrgain
= false;
14519 if ((pi
->sh
->boardflags2
& BFL2_TXPWRCTRL_EN
) &&
14520 NREV_GE(pi
->pubpi
.phy_rev
, 2) && (pi
->sh
->sromrev
>= 4))
14521 pi
->nphy_txpwrctrl
= PHY_TPC_HW_ON
;
14522 else if ((pi
->sh
->sromrev
>= 4)
14523 && (pi
->sh
->boardflags2
& BFL2_5G_PWRGAIN
))
14524 pi
->phy_5g_pwrgain
= true;
14527 void WLBANDINITFN(wlc_phy_init_nphy
) (struct brcms_phy
*pi
)
14531 struct nphy_txgains target_gain
;
14532 u8 tx_pwr_ctrl_state
;
14533 bool do_nphy_cal
= false;
14535 uint origidx
, intr_val
;
14537 u32 d11_clk_ctl_st
;
14541 if (!(pi
->measure_hold
& PHY_HOLD_FOR_SCAN
)) {
14542 pi
->measure_hold
|= PHY_HOLD_FOR_NOT_ASSOC
;
14545 if ((ISNPHY(pi
)) && (NREV_GE(pi
->pubpi
.phy_rev
, 5)) &&
14546 ((pi
->sh
->chippkg
== BCM4717_PKG_ID
) ||
14547 (pi
->sh
->chippkg
== BCM4718_PKG_ID
))) {
14548 if ((pi
->sh
->boardflags
& BFL_EXTLNA
) &&
14549 (CHSPEC_IS2G(pi
->radio_chanspec
))) {
14550 ai_corereg(pi
->sh
->sih
, SI_CC_IDX
,
14551 offsetof(chipcregs_t
, chipcontrol
), 0x40,
14556 if ((pi
->nphy_gband_spurwar2_en
) && CHSPEC_IS2G(pi
->radio_chanspec
) &&
14557 CHSPEC_IS40(pi
->radio_chanspec
)) {
14559 regs
= (d11regs_t
*) ai_switch_core(pi
->sh
->sih
, D11_CORE_ID
,
14560 &origidx
, &intr_val
);
14561 d11_clk_ctl_st
= R_REG(®s
->clk_ctl_st
);
14562 AND_REG(®s
->clk_ctl_st
,
14563 ~(CCS_FORCEHT
| CCS_HTAREQ
));
14565 W_REG(®s
->clk_ctl_st
, d11_clk_ctl_st
);
14567 ai_restore_core(pi
->sh
->sih
, origidx
, intr_val
);
14570 pi
->use_int_tx_iqlo_cal_nphy
=
14572 (NREV_GE(pi
->pubpi
.phy_rev
, 7) ||
14573 (NREV_GE(pi
->pubpi
.phy_rev
, 5)
14574 && pi
->sh
->boardflags2
& BFL2_INTERNDET_TXIQCAL
)));
14576 pi
->internal_tx_iqlo_cal_tapoff_intpa_nphy
= false;
14578 pi
->nphy_deaf_count
= 0;
14580 wlc_phy_tbl_init_nphy(pi
);
14582 pi
->nphy_crsminpwr_adjusted
= false;
14583 pi
->nphy_noisevars_adjusted
= false;
14585 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14586 write_phy_reg(pi
, 0xe7, 0);
14587 write_phy_reg(pi
, 0xec, 0);
14588 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
14589 write_phy_reg(pi
, 0x342, 0);
14590 write_phy_reg(pi
, 0x343, 0);
14591 write_phy_reg(pi
, 0x346, 0);
14592 write_phy_reg(pi
, 0x347, 0);
14594 write_phy_reg(pi
, 0xe5, 0);
14595 write_phy_reg(pi
, 0xe6, 0);
14597 write_phy_reg(pi
, 0xec, 0);
14600 write_phy_reg(pi
, 0x91, 0);
14601 write_phy_reg(pi
, 0x92, 0);
14602 if (NREV_LT(pi
->pubpi
.phy_rev
, 6)) {
14603 write_phy_reg(pi
, 0x93, 0);
14604 write_phy_reg(pi
, 0x94, 0);
14607 and_phy_reg(pi
, 0xa1, ~3);
14609 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14610 write_phy_reg(pi
, 0x8f, 0);
14611 write_phy_reg(pi
, 0xa5, 0);
14613 write_phy_reg(pi
, 0xa5, 0);
14616 if (NREV_IS(pi
->pubpi
.phy_rev
, 2))
14617 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x3b);
14618 else if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
14619 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x40);
14621 write_phy_reg(pi
, 0x203, 32);
14622 write_phy_reg(pi
, 0x201, 32);
14624 if (pi
->sh
->boardflags2
& BFL2_SKWRKFEM_BRD
)
14625 write_phy_reg(pi
, 0x20d, 160);
14627 write_phy_reg(pi
, 0x20d, 184);
14629 write_phy_reg(pi
, 0x13a, 200);
14631 write_phy_reg(pi
, 0x70, 80);
14633 write_phy_reg(pi
, 0x1ff, 48);
14635 if (NREV_LT(pi
->pubpi
.phy_rev
, 8)) {
14636 wlc_phy_update_mimoconfig_nphy(pi
, pi
->n_preamble_override
);
14639 wlc_phy_stf_chain_upd_nphy(pi
);
14641 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
14642 write_phy_reg(pi
, 0x180, 0xaa8);
14643 write_phy_reg(pi
, 0x181, 0x9a4);
14647 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
14649 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
14650 0x29b, (0x1 << 0), (1) << 0);
14652 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x298 :
14653 0x29c, (0x1ff << 7),
14654 (pi
->nphy_papd_epsilon_offset
[core
]) << 7);
14658 wlc_phy_ipa_set_tx_digi_filts_nphy(pi
);
14661 if (NREV_GE(pi
->pubpi
.phy_rev
, 5)) {
14662 wlc_phy_extpa_set_tx_digi_filts_nphy(pi
);
14666 wlc_phy_workarounds_nphy(pi
);
14668 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, ON
);
14670 val
= read_phy_reg(pi
, 0x01);
14671 write_phy_reg(pi
, 0x01, val
| BBCFG_RESETCCA
);
14672 write_phy_reg(pi
, 0x01, val
& (~BBCFG_RESETCCA
));
14673 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, OFF
);
14675 wlapi_bmac_macphyclk_set(pi
->sh
->physhim
, ON
);
14677 wlc_phy_pa_override_nphy(pi
, OFF
);
14678 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
);
14679 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
14680 wlc_phy_pa_override_nphy(pi
, ON
);
14682 wlc_phy_classifier_nphy(pi
, 0, 0);
14683 wlc_phy_clip_det_nphy(pi
, 0, clip1_ths
);
14685 if (CHSPEC_IS2G(pi
->radio_chanspec
))
14686 wlc_phy_bphy_init_nphy(pi
);
14688 tx_pwr_ctrl_state
= pi
->nphy_txpwrctrl
;
14689 wlc_phy_txpwrctrl_enable_nphy(pi
, PHY_TPC_HW_OFF
);
14691 wlc_phy_txpwr_fixpower_nphy(pi
);
14693 wlc_phy_txpwrctrl_idle_tssi_nphy(pi
);
14695 wlc_phy_txpwrctrl_pwr_setup_nphy(pi
);
14697 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14698 u32
*tx_pwrctrl_tbl
= NULL
;
14702 s32 rfpwr_offset
= 0;
14705 tx_pwrctrl_tbl
= wlc_phy_get_ipa_gaintbl_nphy(pi
);
14707 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
14708 if (NREV_IS(pi
->pubpi
.phy_rev
, 3)) {
14710 nphy_tpc_5GHz_txgain_rev3
;
14711 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
14713 (pi
->srom_fem5g
.extpagain
== 3) ?
14714 nphy_tpc_5GHz_txgain_HiPwrEPA
:
14715 nphy_tpc_5GHz_txgain_rev4
;
14718 nphy_tpc_5GHz_txgain_rev5
;
14722 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
14723 if (pi
->pubpi
.radiorev
== 5) {
14725 nphy_tpc_txgain_epa_2057rev5
;
14726 } else if (pi
->pubpi
.radiorev
== 3) {
14728 nphy_tpc_txgain_epa_2057rev3
;
14732 if (NREV_GE(pi
->pubpi
.phy_rev
, 5) &&
14733 (pi
->srom_fem2g
.extpagain
== 3)) {
14735 nphy_tpc_txgain_HiPwrEPA
;
14738 nphy_tpc_txgain_rev3
;
14744 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE1TXPWRCTL
, 128,
14745 192, 32, tx_pwrctrl_tbl
);
14746 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE2TXPWRCTL
, 128,
14747 192, 32, tx_pwrctrl_tbl
);
14749 pi
->nphy_gmval
= (u16
) ((*tx_pwrctrl_tbl
>> 16) & 0x7000);
14751 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
14753 for (idx
= 0; idx
< 128; idx
++) {
14754 pga_gn
= (tx_pwrctrl_tbl
[idx
] >> 24) & 0xf;
14755 pad_gn
= (tx_pwrctrl_tbl
[idx
] >> 19) & 0x1f;
14757 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
14758 if ((pi
->pubpi
.radiorev
== 3) ||
14759 (pi
->pubpi
.radiorev
== 4) ||
14760 (pi
->pubpi
.radiorev
== 6)) {
14761 rfpwr_offset
= (s16
)
14762 nphy_papd_padgain_dlt_2g_2057rev3n4
14764 } else if (pi
->pubpi
.radiorev
== 5) {
14765 rfpwr_offset
= (s16
)
14766 nphy_papd_padgain_dlt_2g_2057rev5
14768 } else if ((pi
->pubpi
.radiorev
== 7)
14769 || (pi
->pubpi
.radiorev
==
14771 rfpwr_offset
= (s16
)
14772 nphy_papd_padgain_dlt_2g_2057rev7
14776 if ((pi
->pubpi
.radiorev
== 3) ||
14777 (pi
->pubpi
.radiorev
== 4) ||
14778 (pi
->pubpi
.radiorev
== 6)) {
14779 rfpwr_offset
= (s16
)
14780 nphy_papd_pgagain_dlt_5g_2057
14782 } else if ((pi
->pubpi
.radiorev
== 7)
14783 || (pi
->pubpi
.radiorev
==
14785 rfpwr_offset
= (s16
)
14786 nphy_papd_pgagain_dlt_5g_2057rev7
14790 wlc_phy_table_write_nphy(pi
,
14791 NPHY_TBL_ID_CORE1TXPWRCTL
,
14794 wlc_phy_table_write_nphy(pi
,
14795 NPHY_TBL_ID_CORE2TXPWRCTL
,
14801 for (idx
= 0; idx
< 128; idx
++) {
14802 pga_gn
= (tx_pwrctrl_tbl
[idx
] >> 24) & 0xf;
14803 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
14804 rfpwr_offset
= (s16
)
14805 nphy_papd_pga_gain_delta_ipa_2g
14808 rfpwr_offset
= (s16
)
14809 nphy_papd_pga_gain_delta_ipa_5g
14813 wlc_phy_table_write_nphy(pi
,
14814 NPHY_TBL_ID_CORE1TXPWRCTL
,
14817 wlc_phy_table_write_nphy(pi
,
14818 NPHY_TBL_ID_CORE2TXPWRCTL
,
14826 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE1TXPWRCTL
, 128,
14827 192, 32, nphy_tpc_txgain
);
14828 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE2TXPWRCTL
, 128,
14829 192, 32, nphy_tpc_txgain
);
14832 if (pi
->sh
->phyrxchain
!= 0x3) {
14833 wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub
*) pi
,
14834 pi
->sh
->phyrxchain
);
14837 if (PHY_PERICAL_MPHASE_PENDING(pi
)) {
14838 wlc_phy_cal_perical_mphase_restart(pi
);
14841 if (!NORADIO_ENAB(pi
->pubpi
)) {
14842 bool do_rssi_cal
= false;
14844 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14845 do_rssi_cal
= (CHSPEC_IS2G(pi
->radio_chanspec
)) ?
14846 (pi
->nphy_rssical_chanspec_2G
== 0) :
14847 (pi
->nphy_rssical_chanspec_5G
== 0);
14850 wlc_phy_rssi_cal_nphy(pi
);
14852 wlc_phy_restore_rssical_nphy(pi
);
14855 wlc_phy_rssi_cal_nphy(pi
);
14858 if (!SCAN_RM_IN_PROGRESS(pi
)) {
14859 do_nphy_cal
= (CHSPEC_IS2G(pi
->radio_chanspec
)) ?
14860 (pi
->nphy_iqcal_chanspec_2G
== 0) :
14861 (pi
->nphy_iqcal_chanspec_5G
== 0);
14864 if (!pi
->do_initcal
)
14865 do_nphy_cal
= false;
14869 target_gain
= wlc_phy_get_tx_gain_nphy(pi
);
14871 if (pi
->antsel_type
== ANTSEL_2x3
)
14872 wlc_phy_antsel_init((struct brcms_phy_pub
*) pi
,
14875 if (pi
->nphy_perical
!= PHY_PERICAL_MPHASE
) {
14876 wlc_phy_rssi_cal_nphy(pi
);
14878 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14879 pi
->nphy_cal_orig_pwr_idx
[0] =
14880 pi
->nphy_txpwrindex
[PHY_CORE_0
].
14882 pi
->nphy_cal_orig_pwr_idx
[1] =
14883 pi
->nphy_txpwrindex
[PHY_CORE_1
].
14886 wlc_phy_precal_txgain_nphy(pi
);
14888 wlc_phy_get_tx_gain_nphy(pi
);
14891 if (wlc_phy_cal_txiqlo_nphy
14892 (pi
, target_gain
, true, false) == 0) {
14893 if (wlc_phy_cal_rxiq_nphy
14894 (pi
, target_gain
, 2,
14896 wlc_phy_savecal_nphy(pi
);
14900 } else if (pi
->mphase_cal_phase_id
==
14901 MPHASE_CAL_STATE_IDLE
) {
14903 wlc_phy_cal_perical((struct brcms_phy_pub
*) pi
,
14904 PHY_PERICAL_PHYINIT
);
14907 wlc_phy_restorecal_nphy(pi
);
14911 wlc_phy_txpwrctrl_coeff_setup_nphy(pi
);
14913 wlc_phy_txpwrctrl_enable_nphy(pi
, tx_pwr_ctrl_state
);
14915 wlc_phy_nphy_tkip_rifs_war(pi
, pi
->sh
->_rifs_phy
);
14917 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LE(pi
->pubpi
.phy_rev
, 6))
14919 write_phy_reg(pi
, 0x70, 50);
14921 wlc_phy_txlpfbw_nphy(pi
);
14923 wlc_phy_spurwar_nphy(pi
);
14927 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy
*pi
, s32 preamble
)
14929 bool gf_preamble
= false;
14932 if (preamble
== WLC_N_PREAMBLE_GF
) {
14933 gf_preamble
= true;
14936 val
= read_phy_reg(pi
, 0xed);
14938 val
|= RX_GF_MM_AUTO
;
14939 val
&= ~RX_GF_OR_MM
;
14941 val
|= RX_GF_OR_MM
;
14943 write_phy_reg(pi
, 0xed, val
);
14946 static void wlc_phy_resetcca_nphy(struct brcms_phy
*pi
)
14950 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, ON
);
14952 val
= read_phy_reg(pi
, 0x01);
14953 write_phy_reg(pi
, 0x01, val
| BBCFG_RESETCCA
);
14955 write_phy_reg(pi
, 0x01, val
& (~BBCFG_RESETCCA
));
14957 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, OFF
);
14959 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
14962 void wlc_phy_pa_override_nphy(struct brcms_phy
*pi
, bool en
)
14964 u16 rfctrlintc_override_val
;
14968 pi
->rfctrlIntc1_save
= read_phy_reg(pi
, 0x91);
14969 pi
->rfctrlIntc2_save
= read_phy_reg(pi
, 0x92);
14971 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
14972 rfctrlintc_override_val
= 0x1480;
14973 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
14974 rfctrlintc_override_val
=
14975 CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x600 : 0x480;
14977 rfctrlintc_override_val
=
14978 CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x180 : 0x120;
14981 write_phy_reg(pi
, 0x91, rfctrlintc_override_val
);
14982 write_phy_reg(pi
, 0x92, rfctrlintc_override_val
);
14985 write_phy_reg(pi
, 0x91, pi
->rfctrlIntc1_save
);
14986 write_phy_reg(pi
, 0x92, pi
->rfctrlIntc2_save
);
14991 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy
*pi
)
14995 (NPHY_RfseqCoreActv_TxRxChain0
| NPHY_RfseqCoreActv_TxRxChain1
);
14996 bool CoreActv_override
= false;
14998 if (pi
->nphy_txrx_chain
== WLC_N_TXRX_CHAIN0
) {
14999 txrx_chain
= NPHY_RfseqCoreActv_TxRxChain0
;
15000 CoreActv_override
= true;
15002 if (NREV_LE(pi
->pubpi
.phy_rev
, 2)) {
15003 and_phy_reg(pi
, 0xa0, ~0x20);
15005 } else if (pi
->nphy_txrx_chain
== WLC_N_TXRX_CHAIN1
) {
15006 txrx_chain
= NPHY_RfseqCoreActv_TxRxChain1
;
15007 CoreActv_override
= true;
15009 if (NREV_LE(pi
->pubpi
.phy_rev
, 2)) {
15010 or_phy_reg(pi
, 0xa0, 0x20);
15014 mod_phy_reg(pi
, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain
);
15016 if (CoreActv_override
) {
15018 pi
->nphy_perical
= PHY_PERICAL_DISABLE
;
15019 or_phy_reg(pi
, 0xa1, NPHY_RfseqMode_CoreActv_override
);
15021 pi
->nphy_perical
= PHY_PERICAL_MPHASE
;
15022 and_phy_reg(pi
, 0xa1, ~NPHY_RfseqMode_CoreActv_override
);
15026 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub
*pih
, u8 rxcore_bitmask
)
15031 struct brcms_phy
*pi
= (struct brcms_phy
*) pih
;
15035 pi
->sh
->phyrxchain
= rxcore_bitmask
;
15041 (0 == (R_REG(&pi
->regs
->maccontrol
) & MCTL_EN_MAC
));
15043 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
15045 if (pi
->phyhang_avoid
)
15046 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
15048 regval
= read_phy_reg(pi
, 0xa2);
15049 regval
&= ~(0xf << 4);
15050 regval
|= ((u16
) (rxcore_bitmask
& 0x3)) << 4;
15051 write_phy_reg(pi
, 0xa2, regval
);
15053 if ((rxcore_bitmask
& 0x3) != 0x3) {
15055 write_phy_reg(pi
, 0x20e, 1);
15057 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
15058 if (pi
->rx2tx_biasentry
== -1) {
15059 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15060 ARRAY_SIZE(tbl_buf
), 80,
15063 for (i
= 0; i
< ARRAY_SIZE(tbl_buf
); i
++) {
15065 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS
) {
15067 pi
->rx2tx_biasentry
= (u8
) i
;
15069 NPHY_REV3_RFSEQ_CMD_NOP
;
15070 wlc_phy_table_write_nphy(pi
,
15076 } else if (tbl_buf
[i
] ==
15077 NPHY_REV3_RFSEQ_CMD_END
) {
15085 write_phy_reg(pi
, 0x20e, 30);
15087 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
15088 if (pi
->rx2tx_biasentry
!= -1) {
15089 tbl_opcode
= NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS
;
15090 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15091 1, pi
->rx2tx_biasentry
,
15093 pi
->rx2tx_biasentry
= -1;
15098 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
15100 if (pi
->phyhang_avoid
)
15101 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
15104 wlapi_enable_mac(pi
->sh
->physhim
);
15107 u8
wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub
*pih
)
15109 u16 regval
, rxen_bits
;
15110 struct brcms_phy
*pi
= (struct brcms_phy
*) pih
;
15112 regval
= read_phy_reg(pi
, 0xa2);
15113 rxen_bits
= (regval
>> 4) & 0xf;
15115 return (u8
) rxen_bits
;
15118 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy
*pi
)
15120 return PHY_IPA(pi
);
15123 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy
*pi
)
15125 u8 idx
, idx2
, i
, delta_ind
;
15127 for (idx
= TXP_FIRST_CCK
; idx
<= TXP_LAST_CCK
; idx
++) {
15128 pi
->adj_pwr_tbl_nphy
[idx
] = pi
->tx_power_offset
[idx
];
15131 for (i
= 0; i
< 4; i
++) {
15139 if (CHSPEC_IS40(pi
->radio_chanspec
)
15140 && NPHY_IS_SROM_REINTERPRET
) {
15141 idx
= TXP_FIRST_MCS_40_SISO
;
15143 idx
= (CHSPEC_IS40(pi
->radio_chanspec
)) ?
15144 TXP_FIRST_OFDM_40_SISO
: TXP_FIRST_OFDM
;
15151 idx
= (CHSPEC_IS40(pi
->radio_chanspec
)) ?
15152 TXP_FIRST_MCS_40_CDD
: TXP_FIRST_MCS_20_CDD
;
15157 idx
= (CHSPEC_IS40(pi
->radio_chanspec
)) ?
15158 TXP_FIRST_MCS_40_STBC
: TXP_FIRST_MCS_20_STBC
;
15163 idx
= (CHSPEC_IS40(pi
->radio_chanspec
)) ?
15164 TXP_FIRST_MCS_40_SDM
: TXP_FIRST_MCS_20_SDM
;
15168 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15169 pi
->tx_power_offset
[idx
];
15170 idx
= idx
+ delta_ind
;
15171 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15172 pi
->tx_power_offset
[idx
];
15173 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15174 pi
->tx_power_offset
[idx
];
15175 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15176 pi
->tx_power_offset
[idx
++];
15178 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15179 pi
->tx_power_offset
[idx
++];
15180 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15181 pi
->tx_power_offset
[idx
];
15182 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15183 pi
->tx_power_offset
[idx
];
15184 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15185 pi
->tx_power_offset
[idx
++];
15187 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15188 pi
->tx_power_offset
[idx
++];
15189 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15190 pi
->tx_power_offset
[idx
];
15191 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15192 pi
->tx_power_offset
[idx
];
15193 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15194 pi
->tx_power_offset
[idx
++];
15196 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15197 pi
->tx_power_offset
[idx
];
15198 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15199 pi
->tx_power_offset
[idx
++];
15200 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15201 pi
->tx_power_offset
[idx
];
15202 idx
= idx
+ 1 - delta_ind
;
15203 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15204 pi
->tx_power_offset
[idx
];
15206 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15207 pi
->tx_power_offset
[idx
];
15208 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15209 pi
->tx_power_offset
[idx
];
15210 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15211 pi
->tx_power_offset
[idx
];
15212 pi
->adj_pwr_tbl_nphy
[4 + 4 * (idx2
++) + i
] =
15213 pi
->tx_power_offset
[idx
];
15217 void wlc_phy_cal_init_nphy(struct brcms_phy
*pi
)
15222 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy
*pi
, u8 core
)
15224 if (core
== PHY_CORE_0
) {
15225 write_phy_reg(pi
, 0x38, 0x4);
15226 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
15227 write_phy_reg(pi
, 0x37, 0x0060);
15229 write_phy_reg(pi
, 0x37, 0x1080);
15231 } else if (core
== PHY_CORE_1
) {
15232 write_phy_reg(pi
, 0x2ae, 0x4);
15233 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
15234 write_phy_reg(pi
, 0x2ad, 0x0060);
15236 write_phy_reg(pi
, 0x2ad, 0x1080);
15241 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy
*pi
, u8 txchain
)
15243 u8 txchain0
, txchain1
;
15245 txchain0
= txchain
& 0x1;
15246 txchain1
= (txchain
& 0x2) >> 1;
15248 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi
, PHY_CORE_0
);
15252 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi
, PHY_CORE_1
);
15256 static void wlc_phy_workarounds_nphy(struct brcms_phy
*pi
)
15258 u8 rfseq_rx2tx_events
[] = {
15259 NPHY_RFSEQ_CMD_NOP
,
15260 NPHY_RFSEQ_CMD_RXG_FBW
,
15261 NPHY_RFSEQ_CMD_TR_SWITCH
,
15262 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
,
15263 NPHY_RFSEQ_CMD_RXPD_TXPD
,
15264 NPHY_RFSEQ_CMD_TX_GAIN
,
15265 NPHY_RFSEQ_CMD_EXT_PA
15267 u8 rfseq_rx2tx_dlys
[] = { 8, 6, 6, 2, 4, 60, 1 };
15268 u8 rfseq_tx2rx_events
[] = {
15269 NPHY_RFSEQ_CMD_NOP
,
15270 NPHY_RFSEQ_CMD_EXT_PA
,
15271 NPHY_RFSEQ_CMD_TX_GAIN
,
15272 NPHY_RFSEQ_CMD_RXPD_TXPD
,
15273 NPHY_RFSEQ_CMD_TR_SWITCH
,
15274 NPHY_RFSEQ_CMD_RXG_FBW
,
15275 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
15277 u8 rfseq_tx2rx_dlys
[] = { 8, 6, 2, 4, 4, 6, 1 };
15278 u8 rfseq_tx2rx_events_rev3
[] = {
15279 NPHY_REV3_RFSEQ_CMD_EXT_PA
,
15280 NPHY_REV3_RFSEQ_CMD_INT_PA_PU
,
15281 NPHY_REV3_RFSEQ_CMD_TX_GAIN
,
15282 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD
,
15283 NPHY_REV3_RFSEQ_CMD_TR_SWITCH
,
15284 NPHY_REV3_RFSEQ_CMD_RXG_FBW
,
15285 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS
,
15286 NPHY_REV3_RFSEQ_CMD_END
15288 u8 rfseq_tx2rx_dlys_rev3
[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
15289 u8 rfseq_rx2tx_events_rev3
[] = {
15290 NPHY_REV3_RFSEQ_CMD_NOP
,
15291 NPHY_REV3_RFSEQ_CMD_RXG_FBW
,
15292 NPHY_REV3_RFSEQ_CMD_TR_SWITCH
,
15293 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS
,
15294 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD
,
15295 NPHY_REV3_RFSEQ_CMD_TX_GAIN
,
15296 NPHY_REV3_RFSEQ_CMD_INT_PA_PU
,
15297 NPHY_REV3_RFSEQ_CMD_EXT_PA
,
15298 NPHY_REV3_RFSEQ_CMD_END
15300 u8 rfseq_rx2tx_dlys_rev3
[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
15302 u8 rfseq_rx2tx_events_rev3_ipa
[] = {
15303 NPHY_REV3_RFSEQ_CMD_NOP
,
15304 NPHY_REV3_RFSEQ_CMD_RXG_FBW
,
15305 NPHY_REV3_RFSEQ_CMD_TR_SWITCH
,
15306 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS
,
15307 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD
,
15308 NPHY_REV3_RFSEQ_CMD_TX_GAIN
,
15309 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS
,
15310 NPHY_REV3_RFSEQ_CMD_INT_PA_PU
,
15311 NPHY_REV3_RFSEQ_CMD_END
15313 u8 rfseq_rx2tx_dlys_rev3_ipa
[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
15314 u16 rfseq_rx2tx_dacbufpu_rev7
[] = { 0x10f, 0x10f };
15316 s16 alpha0
, alpha1
, alpha2
;
15317 s16 beta0
, beta1
, beta2
;
15318 u32 leg_data_weights
, ht_data_weights
, nss1_data_weights
,
15320 u8 chan_freq_range
= 0;
15321 u16 dac_control
= 0x0002;
15322 u16 aux_adc_vmid_rev7_core0
[] = { 0x8e, 0x96, 0x96, 0x96 };
15323 u16 aux_adc_vmid_rev7_core1
[] = { 0x8f, 0x9f, 0x9f, 0x96 };
15324 u16 aux_adc_vmid_rev4
[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15325 u16 aux_adc_vmid_rev3
[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15327 u16 aux_adc_gain_rev7
[] = { 0x02, 0x02, 0x02, 0x02 };
15328 u16 aux_adc_gain_rev4
[] = { 0x02, 0x02, 0x02, 0x00 };
15329 u16 aux_adc_gain_rev3
[] = { 0x02, 0x02, 0x02, 0x00 };
15331 u16 sk_adc_vmid
[] = { 0xb4, 0xb4, 0xb4, 0x24 };
15332 u16 sk_adc_gain
[] = { 0x02, 0x02, 0x02, 0x02 };
15333 s32 min_nvar_val
= 0x18d;
15334 s32 min_nvar_offset_6mbps
= 20;
15338 u16 afectrl_adc_ctrl1_rev7
= 0x20;
15339 u16 afectrl_adc_ctrl2_rev7
= 0x0;
15340 u16 rfseq_rx2tx_lpf_h_hpc_rev7
= 0x77;
15341 u16 rfseq_tx2rx_lpf_h_hpc_rev7
= 0x77;
15342 u16 rfseq_pktgn_lpf_h_hpc_rev7
= 0x77;
15343 u16 rfseq_htpktgn_lpf_hpc_rev7
[] = { 0x77, 0x11, 0x11 };
15344 u16 rfseq_pktgn_lpf_hpc_rev7
[] = { 0x11, 0x11 };
15345 u16 rfseq_cckpktgn_lpf_hpc_rev7
[] = { 0x11, 0x11 };
15346 u16 ipalvlshift_3p3_war_en
= 0;
15347 u16 rccal_bcap_val
, rccal_scap_val
;
15348 u16 rccal_tx20_11b_bcap
= 0;
15349 u16 rccal_tx20_11b_scap
= 0;
15350 u16 rccal_tx20_11n_bcap
= 0;
15351 u16 rccal_tx20_11n_scap
= 0;
15352 u16 rccal_tx40_11n_bcap
= 0;
15353 u16 rccal_tx40_11n_scap
= 0;
15354 u16 rx2tx_lpf_rc_lut_tx20_11b
= 0;
15355 u16 rx2tx_lpf_rc_lut_tx20_11n
= 0;
15356 u16 rx2tx_lpf_rc_lut_tx40_11n
= 0;
15357 u16 tx_lpf_bw_ofdm_20mhz
= 0;
15358 u16 tx_lpf_bw_ofdm_40mhz
= 0;
15359 u16 tx_lpf_bw_11b
= 0;
15360 u16 ipa2g_mainbias
, ipa2g_casconv
, ipa2g_biasfilt
;
15361 u16 txgm_idac_bleed
= 0;
15362 bool rccal_ovrd
= false;
15366 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
15367 wlc_phy_classifier_nphy(pi
, NPHY_ClassifierCtrl_cck_en
, 0);
15369 wlc_phy_classifier_nphy(pi
, NPHY_ClassifierCtrl_cck_en
, 1);
15372 if (pi
->phyhang_avoid
)
15373 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
15375 or_phy_reg(pi
, 0xb1, NPHY_IQFlip_ADC1
| NPHY_IQFlip_ADC2
);
15377 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
15379 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
15380 mod_phy_reg(pi
, 0x221, (0x1 << 4), (1 << 4));
15382 mod_phy_reg(pi
, 0x160, (0x7f << 0), (32 << 0));
15383 mod_phy_reg(pi
, 0x160, (0x7f << 8), (39 << 8));
15384 mod_phy_reg(pi
, 0x161, (0x7f << 0), (46 << 0));
15385 mod_phy_reg(pi
, 0x161, (0x7f << 8), (51 << 8));
15386 mod_phy_reg(pi
, 0x162, (0x7f << 0), (55 << 0));
15387 mod_phy_reg(pi
, 0x162, (0x7f << 8), (58 << 8));
15388 mod_phy_reg(pi
, 0x163, (0x7f << 0), (60 << 0));
15389 mod_phy_reg(pi
, 0x163, (0x7f << 8), (62 << 8));
15390 mod_phy_reg(pi
, 0x164, (0x7f << 0), (62 << 0));
15391 mod_phy_reg(pi
, 0x164, (0x7f << 8), (63 << 8));
15392 mod_phy_reg(pi
, 0x165, (0x7f << 0), (63 << 0));
15393 mod_phy_reg(pi
, 0x165, (0x7f << 8), (64 << 8));
15394 mod_phy_reg(pi
, 0x166, (0x7f << 0), (64 << 0));
15395 mod_phy_reg(pi
, 0x166, (0x7f << 8), (64 << 8));
15396 mod_phy_reg(pi
, 0x167, (0x7f << 0), (64 << 0));
15397 mod_phy_reg(pi
, 0x167, (0x7f << 8), (64 << 8));
15400 if (NREV_LE(pi
->pubpi
.phy_rev
, 8)) {
15401 write_phy_reg(pi
, 0x23f, 0x1b0);
15402 write_phy_reg(pi
, 0x240, 0x1b0);
15405 if (NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
15406 mod_phy_reg(pi
, 0xbd, (0xff << 0), (114 << 0));
15409 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x00, 16,
15411 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x10, 16,
15414 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
15415 1, 0, 32, &leg_data_weights
);
15416 leg_data_weights
= leg_data_weights
& 0xffffff;
15417 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
15418 1, 0, 32, &leg_data_weights
);
15420 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15422 rfseq_rx2tx_dacbufpu_rev7
);
15423 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x16e, 16,
15424 rfseq_rx2tx_dacbufpu_rev7
);
15427 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
,
15428 rfseq_rx2tx_events_rev3_ipa
,
15429 rfseq_rx2tx_dlys_rev3_ipa
,
15431 (rfseq_rx2tx_events_rev3_ipa
) /
15433 (rfseq_rx2tx_events_rev3_ipa
15437 mod_phy_reg(pi
, 0x299, (0x3 << 14), (0x1 << 14));
15438 mod_phy_reg(pi
, 0x29d, (0x3 << 14), (0x1 << 14));
15440 tx_lpf_bw_ofdm_20mhz
= wlc_phy_read_lpf_bw_ctl_nphy(pi
, 0x154);
15441 tx_lpf_bw_ofdm_40mhz
= wlc_phy_read_lpf_bw_ctl_nphy(pi
, 0x159);
15442 tx_lpf_bw_11b
= wlc_phy_read_lpf_bw_ctl_nphy(pi
, 0x152);
15446 if (((pi
->pubpi
.radiorev
== 5)
15447 && (CHSPEC_IS40(pi
->radio_chanspec
) == 1))
15448 || (pi
->pubpi
.radiorev
== 7)
15449 || (pi
->pubpi
.radiorev
== 8)) {
15453 RADIO_2057_RCCAL_BCAP_VAL
);
15456 RADIO_2057_RCCAL_SCAP_VAL
);
15458 rccal_tx20_11b_bcap
= rccal_bcap_val
;
15459 rccal_tx20_11b_scap
= rccal_scap_val
;
15461 if ((pi
->pubpi
.radiorev
== 5) &&
15462 (CHSPEC_IS40(pi
->radio_chanspec
) == 1)) {
15464 rccal_tx20_11n_bcap
= rccal_bcap_val
;
15465 rccal_tx20_11n_scap
= rccal_scap_val
;
15466 rccal_tx40_11n_bcap
= 0xc;
15467 rccal_tx40_11n_scap
= 0xc;
15471 } else if ((pi
->pubpi
.radiorev
== 7)
15472 || (pi
->pubpi
.radiorev
== 8)) {
15474 tx_lpf_bw_ofdm_20mhz
= 4;
15477 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
15478 rccal_tx20_11n_bcap
= 0xc;
15479 rccal_tx20_11n_scap
= 0xc;
15480 rccal_tx40_11n_bcap
= 0xa;
15481 rccal_tx40_11n_scap
= 0xa;
15483 rccal_tx20_11n_bcap
= 0x14;
15484 rccal_tx20_11n_scap
= 0x14;
15485 rccal_tx40_11n_bcap
= 0xf;
15486 rccal_tx40_11n_scap
= 0xf;
15495 if (pi
->pubpi
.radiorev
== 5) {
15497 tx_lpf_bw_ofdm_20mhz
= 1;
15498 tx_lpf_bw_ofdm_40mhz
= 3;
15502 RADIO_2057_RCCAL_BCAP_VAL
);
15505 RADIO_2057_RCCAL_SCAP_VAL
);
15507 rccal_tx20_11b_bcap
= rccal_bcap_val
;
15508 rccal_tx20_11b_scap
= rccal_scap_val
;
15510 rccal_tx20_11n_bcap
= 0x13;
15511 rccal_tx20_11n_scap
= 0x11;
15512 rccal_tx40_11n_bcap
= 0x13;
15513 rccal_tx40_11n_scap
= 0x11;
15521 rx2tx_lpf_rc_lut_tx20_11b
= (rccal_tx20_11b_bcap
<< 8) |
15522 (rccal_tx20_11b_scap
<< 3) | tx_lpf_bw_11b
;
15523 rx2tx_lpf_rc_lut_tx20_11n
= (rccal_tx20_11n_bcap
<< 8) |
15524 (rccal_tx20_11n_scap
<< 3) | tx_lpf_bw_ofdm_20mhz
;
15525 rx2tx_lpf_rc_lut_tx40_11n
= (rccal_tx40_11n_bcap
<< 8) |
15526 (rccal_tx40_11n_scap
<< 3) | tx_lpf_bw_ofdm_40mhz
;
15528 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
15529 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15531 0x152 + coreNum
* 0x10,
15533 &rx2tx_lpf_rc_lut_tx20_11b
);
15534 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15536 0x153 + coreNum
* 0x10,
15538 &rx2tx_lpf_rc_lut_tx20_11n
);
15539 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15541 0x154 + coreNum
* 0x10,
15543 &rx2tx_lpf_rc_lut_tx20_11n
);
15544 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15546 0x155 + coreNum
* 0x10,
15548 &rx2tx_lpf_rc_lut_tx40_11n
);
15549 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15551 0x156 + coreNum
* 0x10,
15553 &rx2tx_lpf_rc_lut_tx40_11n
);
15554 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15556 0x157 + coreNum
* 0x10,
15558 &rx2tx_lpf_rc_lut_tx40_11n
);
15559 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15561 0x158 + coreNum
* 0x10,
15563 &rx2tx_lpf_rc_lut_tx40_11n
);
15564 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
15566 0x159 + coreNum
* 0x10,
15568 &rx2tx_lpf_rc_lut_tx40_11n
);
15571 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 4),
15573 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
15576 if (!NORADIO_ENAB(pi
->pubpi
)) {
15577 write_phy_reg(pi
, 0x32f, 0x3);
15580 if ((pi
->pubpi
.radiorev
== 4) || (pi
->pubpi
.radiorev
== 6)) {
15581 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2),
15583 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
15586 if ((pi
->pubpi
.radiorev
== 3) || (pi
->pubpi
.radiorev
== 4) ||
15587 (pi
->pubpi
.radiorev
== 6)) {
15588 if ((pi
->sh
->sromrev
>= 8)
15589 && (pi
->sh
->boardflags2
& BFL2_IPALVLSHIFT_3P3
))
15590 ipalvlshift_3p3_war_en
= 1;
15592 if (ipalvlshift_3p3_war_en
) {
15593 write_radio_reg(pi
, RADIO_2057_GPAIO_CONFIG
,
15595 write_radio_reg(pi
, RADIO_2057_GPAIO_SEL1
,
15597 write_radio_reg(pi
, RADIO_2057_GPAIO_SEL0
, 0x0);
15599 RADIO_2057_RXTXBIAS_CONFIG_CORE0
,
15602 RADIO_2057_RXTXBIAS_CONFIG_CORE1
,
15605 ipa2g_mainbias
= 0x1f;
15607 ipa2g_casconv
= 0x6f;
15609 ipa2g_biasfilt
= 0xaa;
15612 ipa2g_mainbias
= 0x2b;
15614 ipa2g_casconv
= 0x7f;
15616 ipa2g_biasfilt
= 0xee;
15619 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
15620 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
15621 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
15622 coreNum
, IPA2G_IMAIN
,
15624 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
15625 coreNum
, IPA2G_CASCONV
,
15627 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
15636 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
15637 if ((pi
->pubpi
.radiorev
== 3)
15638 || (pi
->pubpi
.radiorev
== 4)
15639 || (pi
->pubpi
.radiorev
== 6)) {
15641 txgm_idac_bleed
= 0x7f;
15644 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
15645 if (txgm_idac_bleed
!= 0)
15646 WRITE_RADIO_REG4(pi
, RADIO_2057
,
15652 if (pi
->pubpi
.radiorev
== 5) {
15654 for (coreNum
= 0; coreNum
<= 1;
15656 WRITE_RADIO_REG4(pi
, RADIO_2057
,
15660 WRITE_RADIO_REG4(pi
, RADIO_2057
,
15664 WRITE_RADIO_REG4(pi
, RADIO_2057
,
15668 WRITE_RADIO_REG4(pi
, RADIO_2057
,
15672 WRITE_RADIO_REG4(pi
, RADIO_2057
,
15674 PAD_BIAS_FILTER_BWS
,
15678 } else if ((pi
->pubpi
.radiorev
== 7)
15679 || (pi
->pubpi
.radiorev
== 8)) {
15681 if (CHSPEC_IS40(pi
->radio_chanspec
) ==
15683 WRITE_RADIO_REG4(pi
, RADIO_2057
,
15687 WRITE_RADIO_REG4(pi
, RADIO_2057
,
15692 WRITE_RADIO_REG4(pi
, RADIO_2057
,
15696 WRITE_RADIO_REG4(pi
, RADIO_2057
,
15705 CHAN5G_FREQ(CHSPEC_CHANNEL
15706 (pi
->radio_chanspec
));
15707 if (((freq
>= 5180) && (freq
<= 5230))
15708 || ((freq
>= 5745) && (freq
<= 5805))) {
15709 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
15710 0, IPA5G_BIAS_FILTER
,
15712 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
15713 1, IPA5G_BIAS_FILTER
,
15719 if (pi
->pubpi
.radiorev
!= 5) {
15720 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
15721 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
15723 TXMIX2G_TUNE_BOOST_PU
,
15725 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
,
15727 TXGM_IDAC_BLEED
, 0x70);
15732 if (pi
->pubpi
.radiorev
== 4) {
15733 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1,
15735 &afectrl_adc_ctrl1_rev7
);
15736 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1,
15738 &afectrl_adc_ctrl1_rev7
);
15740 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
15741 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
, coreNum
,
15742 AFE_VCM_CAL_MASTER
, 0x0);
15743 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
, coreNum
,
15744 AFE_SET_VCM_I
, 0x3f);
15745 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
, coreNum
,
15746 AFE_SET_VCM_Q
, 0x3f);
15749 mod_phy_reg(pi
, 0xa6, (0x1 << 2), (0x1 << 2));
15750 mod_phy_reg(pi
, 0x8f, (0x1 << 2), (0x1 << 2));
15751 mod_phy_reg(pi
, 0xa7, (0x1 << 2), (0x1 << 2));
15752 mod_phy_reg(pi
, 0xa5, (0x1 << 2), (0x1 << 2));
15754 mod_phy_reg(pi
, 0xa6, (0x1 << 0), 0);
15755 mod_phy_reg(pi
, 0x8f, (0x1 << 0), (0x1 << 0));
15756 mod_phy_reg(pi
, 0xa7, (0x1 << 0), 0);
15757 mod_phy_reg(pi
, 0xa5, (0x1 << 0), (0x1 << 0));
15759 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1,
15761 &afectrl_adc_ctrl2_rev7
);
15762 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1,
15764 &afectrl_adc_ctrl2_rev7
);
15766 mod_phy_reg(pi
, 0xa6, (0x1 << 2), 0);
15767 mod_phy_reg(pi
, 0x8f, (0x1 << 2), 0);
15768 mod_phy_reg(pi
, 0xa7, (0x1 << 2), 0);
15769 mod_phy_reg(pi
, 0xa5, (0x1 << 2), 0);
15772 write_phy_reg(pi
, 0x6a, 0x2);
15774 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1, 256, 32,
15775 &min_nvar_offset_6mbps
);
15777 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x138, 16,
15778 &rfseq_pktgn_lpf_hpc_rev7
);
15780 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1, 0x141, 16,
15781 &rfseq_pktgn_lpf_h_hpc_rev7
);
15783 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 3, 0x133, 16,
15784 &rfseq_htpktgn_lpf_hpc_rev7
);
15786 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x146, 16,
15787 &rfseq_cckpktgn_lpf_hpc_rev7
);
15789 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1, 0x123, 16,
15790 &rfseq_tx2rx_lpf_h_hpc_rev7
);
15792 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1, 0x12A, 16,
15793 &rfseq_rx2tx_lpf_h_hpc_rev7
);
15795 if (CHSPEC_IS40(pi
->radio_chanspec
) == 0) {
15796 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1, 3,
15797 32, &min_nvar_val
);
15798 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
15799 127, 32, &min_nvar_val
);
15801 min_nvar_val
= noise_var_tbl_rev7
[3];
15802 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1, 3,
15803 32, &min_nvar_val
);
15805 min_nvar_val
= noise_var_tbl_rev7
[127];
15806 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
15807 127, 32, &min_nvar_val
);
15810 wlc_phy_workarounds_nphy_gainctrl(pi
);
15813 (CHSPEC_IS5G(pi
->radio_chanspec
)) ? pi
->srom_fem5g
.
15814 pdetrange
: pi
->srom_fem2g
.pdetrange
;
15816 if (pdetrange
== 0) {
15818 wlc_phy_get_chan_freq_range_nphy(pi
, 0);
15819 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
15820 aux_adc_vmid_rev7_core0
[3] = 0x70;
15821 aux_adc_vmid_rev7_core1
[3] = 0x70;
15822 aux_adc_gain_rev7
[3] = 2;
15824 aux_adc_vmid_rev7_core0
[3] = 0x80;
15825 aux_adc_vmid_rev7_core1
[3] = 0x80;
15826 aux_adc_gain_rev7
[3] = 3;
15828 } else if (pdetrange
== 1) {
15829 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
15830 aux_adc_vmid_rev7_core0
[3] = 0x7c;
15831 aux_adc_vmid_rev7_core1
[3] = 0x7c;
15832 aux_adc_gain_rev7
[3] = 2;
15834 aux_adc_vmid_rev7_core0
[3] = 0x8c;
15835 aux_adc_vmid_rev7_core1
[3] = 0x8c;
15836 aux_adc_gain_rev7
[3] = 1;
15838 } else if (pdetrange
== 2) {
15839 if (pi
->pubpi
.radioid
== BCM2057_ID
) {
15840 if ((pi
->pubpi
.radiorev
== 5)
15841 || (pi
->pubpi
.radiorev
== 7)
15842 || (pi
->pubpi
.radiorev
== 8)) {
15843 if (chan_freq_range
==
15844 WL_CHAN_FREQ_RANGE_2G
) {
15845 aux_adc_vmid_rev7_core0
[3] =
15847 aux_adc_vmid_rev7_core1
[3] =
15849 aux_adc_gain_rev7
[3] = 0;
15851 aux_adc_vmid_rev7_core0
[3] =
15853 aux_adc_vmid_rev7_core1
[3] =
15855 aux_adc_gain_rev7
[3] = 0;
15860 } else if (pdetrange
== 3) {
15861 if (chan_freq_range
== WL_CHAN_FREQ_RANGE_2G
) {
15862 aux_adc_vmid_rev7_core0
[3] = 0x89;
15863 aux_adc_vmid_rev7_core1
[3] = 0x89;
15864 aux_adc_gain_rev7
[3] = 0;
15867 } else if (pdetrange
== 5) {
15869 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
15870 aux_adc_vmid_rev7_core0
[3] = 0x80;
15871 aux_adc_vmid_rev7_core1
[3] = 0x80;
15872 aux_adc_gain_rev7
[3] = 3;
15874 aux_adc_vmid_rev7_core0
[3] = 0x70;
15875 aux_adc_vmid_rev7_core1
[3] = 0x70;
15876 aux_adc_gain_rev7
[3] = 2;
15880 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4, 0x08, 16,
15881 &aux_adc_vmid_rev7_core0
);
15882 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4, 0x18, 16,
15883 &aux_adc_vmid_rev7_core1
);
15884 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4, 0x0c, 16,
15885 &aux_adc_gain_rev7
);
15886 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4, 0x1c, 16,
15887 &aux_adc_gain_rev7
);
15889 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
15891 write_phy_reg(pi
, 0x23f, 0x1f8);
15892 write_phy_reg(pi
, 0x240, 0x1f8);
15894 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
15895 1, 0, 32, &leg_data_weights
);
15896 leg_data_weights
= leg_data_weights
& 0xffffff;
15897 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
15898 1, 0, 32, &leg_data_weights
);
15906 write_phy_reg(pi
, 0x145, alpha0
);
15907 write_phy_reg(pi
, 0x146, alpha1
);
15908 write_phy_reg(pi
, 0x147, alpha2
);
15909 write_phy_reg(pi
, 0x148, beta0
);
15910 write_phy_reg(pi
, 0x149, beta1
);
15911 write_phy_reg(pi
, 0x14a, beta2
);
15913 write_phy_reg(pi
, 0x38, 0xC);
15914 write_phy_reg(pi
, 0x2ae, 0xC);
15916 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_TX2RX
,
15917 rfseq_tx2rx_events_rev3
,
15918 rfseq_tx2rx_dlys_rev3
,
15919 sizeof(rfseq_tx2rx_events_rev3
) /
15920 sizeof(rfseq_tx2rx_events_rev3
[0]));
15923 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
,
15924 rfseq_rx2tx_events_rev3_ipa
,
15925 rfseq_rx2tx_dlys_rev3_ipa
,
15927 (rfseq_rx2tx_events_rev3_ipa
) /
15929 (rfseq_rx2tx_events_rev3_ipa
15933 if ((pi
->sh
->hw_phyrxchain
!= 0x3) &&
15934 (pi
->sh
->hw_phyrxchain
!= pi
->sh
->hw_phytxchain
)) {
15937 rfseq_rx2tx_dlys_rev3
[5] = 59;
15938 rfseq_rx2tx_dlys_rev3
[6] = 1;
15939 rfseq_rx2tx_events_rev3
[7] =
15940 NPHY_REV3_RFSEQ_CMD_END
;
15943 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
,
15944 rfseq_rx2tx_events_rev3
,
15945 rfseq_rx2tx_dlys_rev3
,
15946 sizeof(rfseq_rx2tx_events_rev3
) /
15947 sizeof(rfseq_rx2tx_events_rev3
15951 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
15952 write_phy_reg(pi
, 0x6a, 0x2);
15954 write_phy_reg(pi
, 0x6a, 0x9c40);
15957 mod_phy_reg(pi
, 0x294, (0xf << 8), (7 << 8));
15959 if (CHSPEC_IS40(pi
->radio_chanspec
) == 0) {
15960 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1, 3,
15961 32, &min_nvar_val
);
15962 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
15963 127, 32, &min_nvar_val
);
15965 min_nvar_val
= noise_var_tbl_rev3
[3];
15966 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1, 3,
15967 32, &min_nvar_val
);
15969 min_nvar_val
= noise_var_tbl_rev3
[127];
15970 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
15971 127, 32, &min_nvar_val
);
15974 wlc_phy_workarounds_nphy_gainctrl(pi
);
15976 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x00, 16,
15978 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x10, 16,
15982 (CHSPEC_IS5G(pi
->radio_chanspec
)) ? pi
->srom_fem5g
.
15983 pdetrange
: pi
->srom_fem2g
.pdetrange
;
15985 if (pdetrange
== 0) {
15986 if (NREV_GE(pi
->pubpi
.phy_rev
, 4)) {
15987 aux_adc_vmid
= aux_adc_vmid_rev4
;
15988 aux_adc_gain
= aux_adc_gain_rev4
;
15990 aux_adc_vmid
= aux_adc_vmid_rev3
;
15991 aux_adc_gain
= aux_adc_gain_rev3
;
15994 wlc_phy_get_chan_freq_range_nphy(pi
, 0);
15995 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
15996 switch (chan_freq_range
) {
15997 case WL_CHAN_FREQ_RANGE_5GL
:
15998 aux_adc_vmid
[3] = 0x89;
15999 aux_adc_gain
[3] = 0;
16001 case WL_CHAN_FREQ_RANGE_5GM
:
16002 aux_adc_vmid
[3] = 0x89;
16003 aux_adc_gain
[3] = 0;
16005 case WL_CHAN_FREQ_RANGE_5GH
:
16006 aux_adc_vmid
[3] = 0x89;
16007 aux_adc_gain
[3] = 0;
16013 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16014 0x08, 16, aux_adc_vmid
);
16015 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16016 0x18, 16, aux_adc_vmid
);
16017 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16018 0x0c, 16, aux_adc_gain
);
16019 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16020 0x1c, 16, aux_adc_gain
);
16021 } else if (pdetrange
== 1) {
16022 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16023 0x08, 16, sk_adc_vmid
);
16024 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16025 0x18, 16, sk_adc_vmid
);
16026 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16027 0x0c, 16, sk_adc_gain
);
16028 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16029 0x1c, 16, sk_adc_gain
);
16030 } else if (pdetrange
== 2) {
16032 u16 bcm_adc_vmid
[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16033 u16 bcm_adc_gain
[] = { 0x02, 0x02, 0x02, 0x04 };
16035 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
16037 wlc_phy_get_chan_freq_range_nphy(pi
, 0);
16038 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
16039 bcm_adc_vmid
[3] = 0x8e;
16040 bcm_adc_gain
[3] = 0x03;
16042 bcm_adc_vmid
[3] = 0x94;
16043 bcm_adc_gain
[3] = 0x03;
16045 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
16046 bcm_adc_vmid
[3] = 0x84;
16047 bcm_adc_gain
[3] = 0x02;
16050 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16051 0x08, 16, bcm_adc_vmid
);
16052 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16053 0x18, 16, bcm_adc_vmid
);
16054 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16055 0x0c, 16, bcm_adc_gain
);
16056 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16057 0x1c, 16, bcm_adc_gain
);
16058 } else if (pdetrange
== 3) {
16060 wlc_phy_get_chan_freq_range_nphy(pi
, 0);
16061 if ((NREV_GE(pi
->pubpi
.phy_rev
, 4))
16062 && (chan_freq_range
== WL_CHAN_FREQ_RANGE_2G
)) {
16064 u16 auxadc_vmid
[] = {
16065 0xa2, 0xb4, 0xb4, 0x270 };
16066 u16 auxadc_gain
[] = {
16067 0x02, 0x02, 0x02, 0x00 };
16069 wlc_phy_table_write_nphy(pi
,
16070 NPHY_TBL_ID_AFECTRL
, 4,
16071 0x08, 16, auxadc_vmid
);
16072 wlc_phy_table_write_nphy(pi
,
16073 NPHY_TBL_ID_AFECTRL
, 4,
16074 0x18, 16, auxadc_vmid
);
16075 wlc_phy_table_write_nphy(pi
,
16076 NPHY_TBL_ID_AFECTRL
, 4,
16077 0x0c, 16, auxadc_gain
);
16078 wlc_phy_table_write_nphy(pi
,
16079 NPHY_TBL_ID_AFECTRL
, 4,
16080 0x1c, 16, auxadc_gain
);
16082 } else if ((pdetrange
== 4) || (pdetrange
== 5)) {
16083 u16 bcm_adc_vmid
[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16084 u16 bcm_adc_gain
[] = { 0x02, 0x02, 0x02, 0x0 };
16085 u16 Vmid
[2], Av
[2];
16088 wlc_phy_get_chan_freq_range_nphy(pi
, 0);
16089 if (chan_freq_range
!= WL_CHAN_FREQ_RANGE_2G
) {
16090 Vmid
[0] = (pdetrange
== 4) ? 0x8e : 0x89;
16091 Vmid
[1] = (pdetrange
== 4) ? 0x96 : 0x89;
16092 Av
[0] = (pdetrange
== 4) ? 2 : 0;
16093 Av
[1] = (pdetrange
== 4) ? 2 : 0;
16095 Vmid
[0] = (pdetrange
== 4) ? 0x89 : 0x74;
16096 Vmid
[1] = (pdetrange
== 4) ? 0x8b : 0x70;
16097 Av
[0] = (pdetrange
== 4) ? 2 : 0;
16098 Av
[1] = (pdetrange
== 4) ? 2 : 0;
16101 bcm_adc_vmid
[3] = Vmid
[0];
16102 bcm_adc_gain
[3] = Av
[0];
16103 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16104 0x08, 16, bcm_adc_vmid
);
16105 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16106 0x0c, 16, bcm_adc_gain
);
16108 bcm_adc_vmid
[3] = Vmid
[1];
16109 bcm_adc_gain
[3] = Av
[1];
16110 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16111 0x18, 16, bcm_adc_vmid
);
16112 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 4,
16113 0x1c, 16, bcm_adc_gain
);
16116 write_radio_reg(pi
,
16117 (RADIO_2056_RX_MIXA_MAST_BIAS
| RADIO_2056_RX0
),
16119 write_radio_reg(pi
,
16120 (RADIO_2056_RX_MIXA_MAST_BIAS
| RADIO_2056_RX1
),
16123 write_radio_reg(pi
,
16124 (RADIO_2056_RX_MIXA_BIAS_MAIN
| RADIO_2056_RX0
),
16126 write_radio_reg(pi
,
16127 (RADIO_2056_RX_MIXA_BIAS_MAIN
| RADIO_2056_RX1
),
16130 write_radio_reg(pi
,
16131 (RADIO_2056_RX_MIXA_BIAS_AUX
| RADIO_2056_RX0
),
16133 write_radio_reg(pi
,
16134 (RADIO_2056_RX_MIXA_BIAS_AUX
| RADIO_2056_RX1
),
16137 write_radio_reg(pi
,
16138 (RADIO_2056_RX_MIXA_LOB_BIAS
| RADIO_2056_RX0
),
16140 write_radio_reg(pi
,
16141 (RADIO_2056_RX_MIXA_LOB_BIAS
| RADIO_2056_RX1
),
16144 write_radio_reg(pi
,
16145 (RADIO_2056_RX_MIXA_CMFB_IDAC
| RADIO_2056_RX0
),
16147 write_radio_reg(pi
,
16148 (RADIO_2056_RX_MIXA_CMFB_IDAC
| RADIO_2056_RX1
),
16151 write_radio_reg(pi
,
16152 (RADIO_2056_RX_MIXG_CMFB_IDAC
| RADIO_2056_RX0
),
16154 write_radio_reg(pi
,
16155 (RADIO_2056_RX_MIXG_CMFB_IDAC
| RADIO_2056_RX1
),
16159 (CHSPEC_IS5G(pi
->radio_chanspec
)) ? pi
->srom_fem5g
.
16160 triso
: pi
->srom_fem2g
.triso
;
16162 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi
, PHY_CORE_0
);
16163 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi
, PHY_CORE_1
);
16166 wlc_phy_war_txchain_upd_nphy(pi
, pi
->sh
->hw_phytxchain
);
16168 if (((pi
->sh
->boardflags2
& BFL2_APLL_WAR
) &&
16169 (CHSPEC_IS5G(pi
->radio_chanspec
))) ||
16170 (((pi
->sh
->boardflags2
& BFL2_GPLL_WAR
) ||
16171 (pi
->sh
->boardflags2
& BFL2_GPLL_WAR2
)) &&
16172 (CHSPEC_IS2G(pi
->radio_chanspec
)))) {
16173 nss1_data_weights
= 0x00088888;
16174 ht_data_weights
= 0x00088888;
16175 stbc_data_weights
= 0x00088888;
16177 nss1_data_weights
= 0x88888888;
16178 ht_data_weights
= 0x88888888;
16179 stbc_data_weights
= 0x88888888;
16181 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
16182 1, 1, 32, &nss1_data_weights
);
16183 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
16184 1, 2, 32, &ht_data_weights
);
16185 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL
,
16186 1, 3, 32, &stbc_data_weights
);
16188 if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
16189 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
16190 write_radio_reg(pi
,
16191 RADIO_2056_TX_GMBB_IDAC
|
16192 RADIO_2056_TX0
, 0x70);
16193 write_radio_reg(pi
,
16194 RADIO_2056_TX_GMBB_IDAC
|
16195 RADIO_2056_TX1
, 0x70);
16199 if (!pi
->edcrs_threshold_lock
) {
16200 write_phy_reg(pi
, 0x224, 0x3eb);
16201 write_phy_reg(pi
, 0x225, 0x3eb);
16202 write_phy_reg(pi
, 0x226, 0x341);
16203 write_phy_reg(pi
, 0x227, 0x341);
16204 write_phy_reg(pi
, 0x228, 0x42b);
16205 write_phy_reg(pi
, 0x229, 0x42b);
16206 write_phy_reg(pi
, 0x22a, 0x381);
16207 write_phy_reg(pi
, 0x22b, 0x381);
16208 write_phy_reg(pi
, 0x22c, 0x42b);
16209 write_phy_reg(pi
, 0x22d, 0x42b);
16210 write_phy_reg(pi
, 0x22e, 0x381);
16211 write_phy_reg(pi
, 0x22f, 0x381);
16214 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
16216 if (pi
->sh
->boardflags2
& BFL2_SINGLEANT_CCK
) {
16217 wlapi_bmac_mhf(pi
->sh
->physhim
, MHF4
,
16219 MHF4_BPHY_TXCORE0
, WLC_BAND_ALL
);
16224 if (pi
->sh
->boardflags2
& BFL2_SKWRKFEM_BRD
||
16225 (pi
->sh
->boardtype
== 0x8b)) {
16227 u8 war_dlys
[] = { 1, 6, 6, 2, 4, 20, 1 };
16228 for (i
= 0; i
< ARRAY_SIZE(rfseq_rx2tx_dlys
); i
++)
16229 rfseq_rx2tx_dlys
[i
] = war_dlys
[i
];
16232 if (CHSPEC_IS5G(pi
->radio_chanspec
) && pi
->phy_5g_pwrgain
) {
16233 and_radio_reg(pi
, RADIO_2055_CORE1_TX_RF_SPARE
, 0xf7);
16234 and_radio_reg(pi
, RADIO_2055_CORE2_TX_RF_SPARE
, 0xf7);
16236 or_radio_reg(pi
, RADIO_2055_CORE1_TX_RF_SPARE
, 0x8);
16237 or_radio_reg(pi
, RADIO_2055_CORE2_TX_RF_SPARE
, 0x8);
16241 wlc_phy_table_write_nphy(pi
, 8, 1, 0, 16, ®val
);
16242 wlc_phy_table_write_nphy(pi
, 8, 1, 0x10, 16, ®val
);
16244 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
16246 wlc_phy_table_write_nphy(pi
, 8, 1, 0x02, 16, ®val
);
16247 wlc_phy_table_write_nphy(pi
, 8, 1, 0x12, 16, ®val
);
16250 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
16252 wlc_phy_table_write_nphy(pi
, 8, 1, 0x08, 16, ®val
);
16253 wlc_phy_table_write_nphy(pi
, 8, 1, 0x18, 16, ®val
);
16256 wlc_phy_table_write_nphy(pi
, 8, 1, 0x07, 16, ®val
);
16257 wlc_phy_table_write_nphy(pi
, 8, 1, 0x17, 16, ®val
);
16260 wlc_phy_table_write_nphy(pi
, 8, 1, 0x06, 16, ®val
);
16261 wlc_phy_table_write_nphy(pi
, 8, 1, 0x16, 16, ®val
);
16264 write_phy_reg(pi
, 0xf8, 0x02d8);
16265 write_phy_reg(pi
, 0xf9, 0x0301);
16266 write_phy_reg(pi
, 0xfa, 0x02d8);
16267 write_phy_reg(pi
, 0xfb, 0x0301);
16269 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
, rfseq_rx2tx_events
,
16271 sizeof(rfseq_rx2tx_events
) /
16272 sizeof(rfseq_rx2tx_events
[0]));
16274 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_TX2RX
, rfseq_tx2rx_events
,
16276 sizeof(rfseq_tx2rx_events
) /
16277 sizeof(rfseq_tx2rx_events
[0]));
16279 wlc_phy_workarounds_nphy_gainctrl(pi
);
16281 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
16283 if (read_phy_reg(pi
, 0xa0) & NPHY_MLenable
)
16284 wlapi_bmac_mhf(pi
->sh
->physhim
, MHF3
,
16285 MHF3_NPHY_MLADV_WAR
,
16286 MHF3_NPHY_MLADV_WAR
,
16289 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 2)) {
16290 write_phy_reg(pi
, 0x1e3, 0x0);
16291 write_phy_reg(pi
, 0x1e4, 0x0);
16294 if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
16295 mod_phy_reg(pi
, 0x90, (0x1 << 7), 0);
16303 write_phy_reg(pi
, 0x145, alpha0
);
16304 write_phy_reg(pi
, 0x146, alpha1
);
16305 write_phy_reg(pi
, 0x147, alpha2
);
16306 write_phy_reg(pi
, 0x148, beta0
);
16307 write_phy_reg(pi
, 0x149, beta1
);
16308 write_phy_reg(pi
, 0x14a, beta2
);
16310 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
16311 mod_phy_reg(pi
, 0x142, (0xf << 12), 0);
16313 write_phy_reg(pi
, 0x192, 0xb5);
16314 write_phy_reg(pi
, 0x193, 0xa4);
16315 write_phy_reg(pi
, 0x194, 0x0);
16318 if (NREV_IS(pi
->pubpi
.phy_rev
, 2)) {
16319 mod_phy_reg(pi
, 0x221,
16320 NPHY_FORCESIG_DECODEGATEDCLKS
,
16321 NPHY_FORCESIG_DECODEGATEDCLKS
);
16325 if (pi
->phyhang_avoid
)
16326 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
16329 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy
*pi
)
16331 u16 w1th
, hpf_code
, currband
;
16333 u8 rfseq_updategainu_events
[] = {
16334 NPHY_RFSEQ_CMD_RX_GAIN
,
16335 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
,
16336 NPHY_RFSEQ_CMD_SET_HPF_BW
16338 u8 rfseq_updategainu_dlys
[] = { 10, 30, 1 };
16339 s8 lna1G_gain_db
[] = { 7, 11, 16, 23 };
16340 s8 lna1G_gain_db_rev4
[] = { 8, 12, 17, 25 };
16341 s8 lna1G_gain_db_rev5
[] = { 9, 13, 18, 26 };
16342 s8 lna1G_gain_db_rev6
[] = { 8, 13, 18, 25 };
16343 s8 lna1G_gain_db_rev6_224B0
[] = { 10, 14, 19, 27 };
16344 s8 lna1A_gain_db
[] = { 7, 11, 17, 23 };
16345 s8 lna1A_gain_db_rev4
[] = { 8, 12, 18, 23 };
16346 s8 lna1A_gain_db_rev5
[] = { 6, 10, 16, 21 };
16347 s8 lna1A_gain_db_rev6
[] = { 6, 10, 16, 21 };
16348 s8
*lna1_gain_db
= NULL
;
16349 s8 lna2G_gain_db
[] = { -5, 6, 10, 14 };
16350 s8 lna2G_gain_db_rev5
[] = { -3, 7, 11, 16 };
16351 s8 lna2G_gain_db_rev6
[] = { -5, 6, 10, 14 };
16352 s8 lna2G_gain_db_rev6_224B0
[] = { -5, 6, 10, 15 };
16353 s8 lna2A_gain_db
[] = { -6, 2, 6, 10 };
16354 s8 lna2A_gain_db_rev4
[] = { -5, 2, 6, 10 };
16355 s8 lna2A_gain_db_rev5
[] = { -7, 0, 4, 8 };
16356 s8 lna2A_gain_db_rev6
[] = { -7, 0, 4, 8 };
16357 s8
*lna2_gain_db
= NULL
;
16358 s8 tiaG_gain_db
[] = {
16359 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
16360 s8 tiaA_gain_db
[] = {
16361 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
16362 s8 tiaA_gain_db_rev4
[] = {
16363 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16364 s8 tiaA_gain_db_rev5
[] = {
16365 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16366 s8 tiaA_gain_db_rev6
[] = {
16367 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16369 s8 tiaG_gainbits
[] = {
16370 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
16371 s8 tiaA_gainbits
[] = {
16372 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
16373 s8 tiaA_gainbits_rev4
[] = {
16374 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16375 s8 tiaA_gainbits_rev5
[] = {
16376 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16377 s8 tiaA_gainbits_rev6
[] = {
16378 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16380 s8 lpf_gain_db
[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
16381 s8 lpf_gainbits
[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
16382 u16 rfseqG_init_gain
[] = { 0x613f, 0x613f, 0x613f, 0x613f };
16383 u16 rfseqG_init_gain_rev4
[] = { 0x513f, 0x513f, 0x513f, 0x513f };
16384 u16 rfseqG_init_gain_rev5
[] = { 0x413f, 0x413f, 0x413f, 0x413f };
16385 u16 rfseqG_init_gain_rev5_elna
[] = {
16386 0x013f, 0x013f, 0x013f, 0x013f };
16387 u16 rfseqG_init_gain_rev6
[] = { 0x513f, 0x513f };
16388 u16 rfseqG_init_gain_rev6_224B0
[] = { 0x413f, 0x413f };
16389 u16 rfseqG_init_gain_rev6_elna
[] = { 0x113f, 0x113f };
16390 u16 rfseqA_init_gain
[] = { 0x516f, 0x516f, 0x516f, 0x516f };
16391 u16 rfseqA_init_gain_rev4
[] = { 0x614f, 0x614f, 0x614f, 0x614f };
16392 u16 rfseqA_init_gain_rev4_elna
[] = {
16393 0x314f, 0x314f, 0x314f, 0x314f };
16394 u16 rfseqA_init_gain_rev5
[] = { 0x714f, 0x714f, 0x714f, 0x714f };
16395 u16 rfseqA_init_gain_rev6
[] = { 0x714f, 0x714f };
16396 u16
*rfseq_init_gain
;
16397 u16 initG_gaincode
= 0x627e;
16398 u16 initG_gaincode_rev4
= 0x527e;
16399 u16 initG_gaincode_rev5
= 0x427e;
16400 u16 initG_gaincode_rev5_elna
= 0x027e;
16401 u16 initG_gaincode_rev6
= 0x527e;
16402 u16 initG_gaincode_rev6_224B0
= 0x427e;
16403 u16 initG_gaincode_rev6_elna
= 0x127e;
16404 u16 initA_gaincode
= 0x52de;
16405 u16 initA_gaincode_rev4
= 0x629e;
16406 u16 initA_gaincode_rev4_elna
= 0x329e;
16407 u16 initA_gaincode_rev5
= 0x729e;
16408 u16 initA_gaincode_rev6
= 0x729e;
16410 u16 clip1hiG_gaincode
= 0x107e;
16411 u16 clip1hiG_gaincode_rev4
= 0x007e;
16412 u16 clip1hiG_gaincode_rev5
= 0x1076;
16413 u16 clip1hiG_gaincode_rev6
= 0x007e;
16414 u16 clip1hiA_gaincode
= 0x00de;
16415 u16 clip1hiA_gaincode_rev4
= 0x029e;
16416 u16 clip1hiA_gaincode_rev5
= 0x029e;
16417 u16 clip1hiA_gaincode_rev6
= 0x029e;
16418 u16 clip1hi_gaincode
;
16419 u16 clip1mdG_gaincode
= 0x0066;
16420 u16 clip1mdA_gaincode
= 0x00ca;
16421 u16 clip1mdA_gaincode_rev4
= 0x1084;
16422 u16 clip1mdA_gaincode_rev5
= 0x2084;
16423 u16 clip1mdA_gaincode_rev6
= 0x2084;
16424 u16 clip1md_gaincode
= 0;
16425 u16 clip1loG_gaincode
= 0x0074;
16426 u16 clip1loG_gaincode_rev5
[] = {
16427 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
16429 u16 clip1loG_gaincode_rev6
[] = {
16430 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
16432 u16 clip1loG_gaincode_rev6_224B0
= 0x1074;
16433 u16 clip1loA_gaincode
= 0x00cc;
16434 u16 clip1loA_gaincode_rev4
= 0x0086;
16435 u16 clip1loA_gaincode_rev5
= 0x2086;
16436 u16 clip1loA_gaincode_rev6
= 0x2086;
16437 u16 clip1lo_gaincode
;
16438 u8 crsminG_th
= 0x18;
16439 u8 crsminG_th_rev5
= 0x18;
16440 u8 crsminG_th_rev6
= 0x18;
16441 u8 crsminA_th
= 0x1e;
16442 u8 crsminA_th_rev4
= 0x24;
16443 u8 crsminA_th_rev5
= 0x24;
16444 u8 crsminA_th_rev6
= 0x24;
16446 u8 crsminlG_th
= 0x18;
16447 u8 crsminlG_th_rev5
= 0x18;
16448 u8 crsminlG_th_rev6
= 0x18;
16449 u8 crsminlA_th
= 0x1e;
16450 u8 crsminlA_th_rev4
= 0x24;
16451 u8 crsminlA_th_rev5
= 0x24;
16452 u8 crsminlA_th_rev6
= 0x24;
16454 u8 crsminuG_th
= 0x18;
16455 u8 crsminuG_th_rev5
= 0x18;
16456 u8 crsminuG_th_rev6
= 0x18;
16457 u8 crsminuA_th
= 0x1e;
16458 u8 crsminuA_th_rev4
= 0x24;
16459 u8 crsminuA_th_rev5
= 0x24;
16460 u8 crsminuA_th_rev6
= 0x24;
16461 u8 crsminuA_th_rev6_224B0
= 0x2d;
16463 u16 nbclipG_th
= 0x20d;
16464 u16 nbclipG_th_rev4
= 0x1a1;
16465 u16 nbclipG_th_rev5
= 0x1d0;
16466 u16 nbclipG_th_rev6
= 0x1d0;
16467 u16 nbclipA_th
= 0x1a1;
16468 u16 nbclipA_th_rev4
= 0x107;
16469 u16 nbclipA_th_rev5
= 0x0a9;
16470 u16 nbclipA_th_rev6
= 0x0f0;
16473 u8 w1clipG_th_rev5
= 9;
16474 u8 w1clipG_th_rev6
= 5;
16475 u8 w1clipA_th
= 25, w1clip_th
;
16476 u8 rssi_gain_default
= 0x50;
16477 u8 rssiG_gain_rev6_224B0
= 0x50;
16478 u8 rssiA_gain_rev5
= 0x90;
16479 u8 rssiA_gain_rev6
= 0x90;
16484 triso
= (CHSPEC_IS5G(pi
->radio_chanspec
)) ? pi
->srom_fem5g
.triso
:
16485 pi
->srom_fem2g
.triso
;
16487 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
16488 if (pi
->pubpi
.radiorev
== 5) {
16490 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi
);
16491 } else if (pi
->pubpi
.radiorev
== 7) {
16492 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi
);
16494 mod_phy_reg(pi
, 0x283, (0xff << 0), (0x44 << 0));
16495 mod_phy_reg(pi
, 0x280, (0xff << 0), (0x44 << 0));
16497 } else if ((pi
->pubpi
.radiorev
== 3)
16498 || (pi
->pubpi
.radiorev
== 8)) {
16499 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi
);
16501 if (pi
->pubpi
.radiorev
== 8) {
16502 mod_phy_reg(pi
, 0x283,
16503 (0xff << 0), (0x44 << 0));
16504 mod_phy_reg(pi
, 0x280,
16505 (0xff << 0), (0x44 << 0));
16508 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi
);
16510 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
16512 mod_phy_reg(pi
, 0xa0, (0x1 << 6), (1 << 6));
16514 mod_phy_reg(pi
, 0x1c, (0x1 << 13), (1 << 13));
16515 mod_phy_reg(pi
, 0x32, (0x1 << 13), (1 << 13));
16518 read_phy_reg(pi
, 0x09) & NPHY_BandControl_currentBand
;
16519 if (currband
== 0) {
16520 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
16521 if (pi
->pubpi
.radiorev
== 11) {
16522 lna1_gain_db
= lna1G_gain_db_rev6_224B0
;
16523 lna2_gain_db
= lna2G_gain_db_rev6_224B0
;
16525 rfseqG_init_gain_rev6_224B0
;
16527 initG_gaincode_rev6_224B0
;
16529 clip1hiG_gaincode_rev6
;
16531 clip1loG_gaincode_rev6_224B0
;
16532 nbclip_th
= nbclipG_th_rev6
;
16533 w1clip_th
= w1clipG_th_rev6
;
16534 crsmin_th
= crsminG_th_rev6
;
16535 crsminl_th
= crsminlG_th_rev6
;
16536 crsminu_th
= crsminuG_th_rev6
;
16537 rssi_gain
= rssiG_gain_rev6_224B0
;
16539 lna1_gain_db
= lna1G_gain_db_rev6
;
16540 lna2_gain_db
= lna2G_gain_db_rev6
;
16541 if (pi
->sh
->boardflags
& BFL_EXTLNA
) {
16544 rfseqG_init_gain_rev6_elna
;
16546 initG_gaincode_rev6_elna
;
16549 rfseqG_init_gain_rev6
;
16551 initG_gaincode_rev6
;
16554 clip1hiG_gaincode_rev6
;
16558 clip1loG_gaincode_rev6
[0];
16562 clip1loG_gaincode_rev6
[1];
16566 clip1loG_gaincode_rev6
[2];
16572 clip1loG_gaincode_rev6
[3];
16576 clip1loG_gaincode_rev6
[4];
16580 clip1loG_gaincode_rev6
[5];
16584 clip1loG_gaincode_rev6
[6];
16588 clip1loG_gaincode_rev6
[7];
16591 nbclip_th
= nbclipG_th_rev6
;
16592 w1clip_th
= w1clipG_th_rev6
;
16593 crsmin_th
= crsminG_th_rev6
;
16594 crsminl_th
= crsminlG_th_rev6
;
16595 crsminu_th
= crsminuG_th_rev6
;
16596 rssi_gain
= rssi_gain_default
;
16598 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
16599 lna1_gain_db
= lna1G_gain_db_rev5
;
16600 lna2_gain_db
= lna2G_gain_db_rev5
;
16601 if (pi
->sh
->boardflags
& BFL_EXTLNA
) {
16604 rfseqG_init_gain_rev5_elna
;
16606 initG_gaincode_rev5_elna
;
16608 rfseq_init_gain
= rfseqG_init_gain_rev5
;
16609 init_gaincode
= initG_gaincode_rev5
;
16611 clip1hi_gaincode
= clip1hiG_gaincode_rev5
;
16615 clip1loG_gaincode_rev5
[0];
16619 clip1loG_gaincode_rev5
[1];
16623 clip1loG_gaincode_rev5
[2];
16628 clip1loG_gaincode_rev5
[3];
16632 clip1loG_gaincode_rev5
[4];
16636 clip1loG_gaincode_rev5
[5];
16640 clip1loG_gaincode_rev5
[6];
16644 clip1loG_gaincode_rev5
[7];
16648 clip1loG_gaincode_rev5
[3];
16651 nbclip_th
= nbclipG_th_rev5
;
16652 w1clip_th
= w1clipG_th_rev5
;
16653 crsmin_th
= crsminG_th_rev5
;
16654 crsminl_th
= crsminlG_th_rev5
;
16655 crsminu_th
= crsminuG_th_rev5
;
16656 rssi_gain
= rssi_gain_default
;
16657 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
16658 lna1_gain_db
= lna1G_gain_db_rev4
;
16659 lna2_gain_db
= lna2G_gain_db
;
16660 rfseq_init_gain
= rfseqG_init_gain_rev4
;
16661 init_gaincode
= initG_gaincode_rev4
;
16662 clip1hi_gaincode
= clip1hiG_gaincode_rev4
;
16663 clip1lo_gaincode
= clip1loG_gaincode
;
16664 nbclip_th
= nbclipG_th_rev4
;
16665 w1clip_th
= w1clipG_th
;
16666 crsmin_th
= crsminG_th
;
16667 crsminl_th
= crsminlG_th
;
16668 crsminu_th
= crsminuG_th
;
16669 rssi_gain
= rssi_gain_default
;
16671 lna1_gain_db
= lna1G_gain_db
;
16672 lna2_gain_db
= lna2G_gain_db
;
16673 rfseq_init_gain
= rfseqG_init_gain
;
16674 init_gaincode
= initG_gaincode
;
16675 clip1hi_gaincode
= clip1hiG_gaincode
;
16676 clip1lo_gaincode
= clip1loG_gaincode
;
16677 nbclip_th
= nbclipG_th
;
16678 w1clip_th
= w1clipG_th
;
16679 crsmin_th
= crsminG_th
;
16680 crsminl_th
= crsminlG_th
;
16681 crsminu_th
= crsminuG_th
;
16682 rssi_gain
= rssi_gain_default
;
16684 tia_gain_db
= tiaG_gain_db
;
16685 tia_gainbits
= tiaG_gainbits
;
16686 clip1md_gaincode
= clip1mdG_gaincode
;
16688 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
16689 lna1_gain_db
= lna1A_gain_db_rev6
;
16690 lna2_gain_db
= lna2A_gain_db_rev6
;
16691 tia_gain_db
= tiaA_gain_db_rev6
;
16692 tia_gainbits
= tiaA_gainbits_rev6
;
16693 rfseq_init_gain
= rfseqA_init_gain_rev6
;
16694 init_gaincode
= initA_gaincode_rev6
;
16695 clip1hi_gaincode
= clip1hiA_gaincode_rev6
;
16696 clip1md_gaincode
= clip1mdA_gaincode_rev6
;
16697 clip1lo_gaincode
= clip1loA_gaincode_rev6
;
16698 crsmin_th
= crsminA_th_rev6
;
16699 crsminl_th
= crsminlA_th_rev6
;
16700 if ((pi
->pubpi
.radiorev
== 11) &&
16701 (CHSPEC_IS40(pi
->radio_chanspec
) == 0)) {
16702 crsminu_th
= crsminuA_th_rev6_224B0
;
16704 crsminu_th
= crsminuA_th_rev6
;
16706 nbclip_th
= nbclipA_th_rev6
;
16707 rssi_gain
= rssiA_gain_rev6
;
16708 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
16709 lna1_gain_db
= lna1A_gain_db_rev5
;
16710 lna2_gain_db
= lna2A_gain_db_rev5
;
16711 tia_gain_db
= tiaA_gain_db_rev5
;
16712 tia_gainbits
= tiaA_gainbits_rev5
;
16713 rfseq_init_gain
= rfseqA_init_gain_rev5
;
16714 init_gaincode
= initA_gaincode_rev5
;
16715 clip1hi_gaincode
= clip1hiA_gaincode_rev5
;
16716 clip1md_gaincode
= clip1mdA_gaincode_rev5
;
16717 clip1lo_gaincode
= clip1loA_gaincode_rev5
;
16718 crsmin_th
= crsminA_th_rev5
;
16719 crsminl_th
= crsminlA_th_rev5
;
16720 crsminu_th
= crsminuA_th_rev5
;
16721 nbclip_th
= nbclipA_th_rev5
;
16722 rssi_gain
= rssiA_gain_rev5
;
16723 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
16724 lna1_gain_db
= lna1A_gain_db_rev4
;
16725 lna2_gain_db
= lna2A_gain_db_rev4
;
16726 tia_gain_db
= tiaA_gain_db_rev4
;
16727 tia_gainbits
= tiaA_gainbits_rev4
;
16728 if (pi
->sh
->boardflags
& BFL_EXTLNA_5GHz
) {
16731 rfseqA_init_gain_rev4_elna
;
16733 initA_gaincode_rev4_elna
;
16735 rfseq_init_gain
= rfseqA_init_gain_rev4
;
16736 init_gaincode
= initA_gaincode_rev4
;
16738 clip1hi_gaincode
= clip1hiA_gaincode_rev4
;
16739 clip1md_gaincode
= clip1mdA_gaincode_rev4
;
16740 clip1lo_gaincode
= clip1loA_gaincode_rev4
;
16741 crsmin_th
= crsminA_th_rev4
;
16742 crsminl_th
= crsminlA_th_rev4
;
16743 crsminu_th
= crsminuA_th_rev4
;
16744 nbclip_th
= nbclipA_th_rev4
;
16745 rssi_gain
= rssi_gain_default
;
16747 lna1_gain_db
= lna1A_gain_db
;
16748 lna2_gain_db
= lna2A_gain_db
;
16749 tia_gain_db
= tiaA_gain_db
;
16750 tia_gainbits
= tiaA_gainbits
;
16751 rfseq_init_gain
= rfseqA_init_gain
;
16752 init_gaincode
= initA_gaincode
;
16753 clip1hi_gaincode
= clip1hiA_gaincode
;
16754 clip1md_gaincode
= clip1mdA_gaincode
;
16755 clip1lo_gaincode
= clip1loA_gaincode
;
16756 crsmin_th
= crsminA_th
;
16757 crsminl_th
= crsminlA_th
;
16758 crsminu_th
= crsminuA_th
;
16759 nbclip_th
= nbclipA_th
;
16760 rssi_gain
= rssi_gain_default
;
16762 w1clip_th
= w1clipA_th
;
16765 write_radio_reg(pi
,
16766 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC
|
16767 RADIO_2056_RX0
), 0x17);
16768 write_radio_reg(pi
,
16769 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC
|
16770 RADIO_2056_RX1
), 0x17);
16772 write_radio_reg(pi
, (RADIO_2056_RX_LNAG2_IDAC
| RADIO_2056_RX0
),
16774 write_radio_reg(pi
, (RADIO_2056_RX_LNAG2_IDAC
| RADIO_2056_RX1
),
16777 write_radio_reg(pi
, (RADIO_2056_RX_RSSI_POLE
| RADIO_2056_RX0
),
16779 write_radio_reg(pi
, (RADIO_2056_RX_RSSI_POLE
| RADIO_2056_RX1
),
16782 write_radio_reg(pi
, (RADIO_2056_RX_RSSI_GAIN
| RADIO_2056_RX0
),
16784 write_radio_reg(pi
, (RADIO_2056_RX_RSSI_GAIN
| RADIO_2056_RX1
),
16787 write_radio_reg(pi
,
16788 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC
|
16789 RADIO_2056_RX0
), 0x17);
16790 write_radio_reg(pi
,
16791 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC
|
16792 RADIO_2056_RX1
), 0x17);
16794 write_radio_reg(pi
, (RADIO_2056_RX_LNAA2_IDAC
| RADIO_2056_RX0
),
16796 write_radio_reg(pi
, (RADIO_2056_RX_LNAA2_IDAC
| RADIO_2056_RX1
),
16799 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 8,
16801 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 8,
16804 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 0x10,
16806 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 0x10,
16809 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 10, 0x20,
16811 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 10, 0x20,
16814 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS1
, 10, 0x20,
16816 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS2
, 10, 0x20,
16819 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 6, 0x40,
16821 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 6, 0x40,
16823 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS1
, 6, 0x40,
16825 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS2
, 6, 0x40,
16828 write_phy_reg(pi
, 0x20, init_gaincode
);
16829 write_phy_reg(pi
, 0x2a7, init_gaincode
);
16831 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
16832 pi
->pubpi
.phy_corenum
, 0x106, 16,
16835 write_phy_reg(pi
, 0x22, clip1hi_gaincode
);
16836 write_phy_reg(pi
, 0x2a9, clip1hi_gaincode
);
16838 write_phy_reg(pi
, 0x24, clip1md_gaincode
);
16839 write_phy_reg(pi
, 0x2ab, clip1md_gaincode
);
16841 write_phy_reg(pi
, 0x37, clip1lo_gaincode
);
16842 write_phy_reg(pi
, 0x2ad, clip1lo_gaincode
);
16844 mod_phy_reg(pi
, 0x27d, (0xff << 0), (crsmin_th
<< 0));
16845 mod_phy_reg(pi
, 0x280, (0xff << 0), (crsminl_th
<< 0));
16846 mod_phy_reg(pi
, 0x283, (0xff << 0), (crsminu_th
<< 0));
16848 write_phy_reg(pi
, 0x2b, nbclip_th
);
16849 write_phy_reg(pi
, 0x41, nbclip_th
);
16851 mod_phy_reg(pi
, 0x27, (0x3f << 0), (w1clip_th
<< 0));
16852 mod_phy_reg(pi
, 0x3d, (0x3f << 0), (w1clip_th
<< 0));
16854 write_phy_reg(pi
, 0x150, 0x809c);
16858 mod_phy_reg(pi
, 0x1c, (0x1 << 13), (1 << 13));
16859 mod_phy_reg(pi
, 0x32, (0x1 << 13), (1 << 13));
16861 write_phy_reg(pi
, 0x2b, 0x84);
16862 write_phy_reg(pi
, 0x41, 0x84);
16864 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
16865 write_phy_reg(pi
, 0x6b, 0x2b);
16866 write_phy_reg(pi
, 0x6c, 0x2b);
16867 write_phy_reg(pi
, 0x6d, 0x9);
16868 write_phy_reg(pi
, 0x6e, 0x9);
16871 w1th
= NPHY_RSSICAL_W1_TARGET
- 4;
16872 mod_phy_reg(pi
, 0x27, (0x3f << 0), (w1th
<< 0));
16873 mod_phy_reg(pi
, 0x3d, (0x3f << 0), (w1th
<< 0));
16875 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
16876 mod_phy_reg(pi
, 0x1c, (0x1f << 0), (0x1 << 0));
16877 mod_phy_reg(pi
, 0x32, (0x1f << 0), (0x1 << 0));
16879 mod_phy_reg(pi
, 0x1d, (0x1f << 0), (0x1 << 0));
16880 mod_phy_reg(pi
, 0x33, (0x1f << 0), (0x1 << 0));
16883 write_phy_reg(pi
, 0x150, 0x809c);
16885 if (pi
->nphy_gain_boost
)
16886 if ((CHSPEC_IS2G(pi
->radio_chanspec
)) &&
16887 (CHSPEC_IS40(pi
->radio_chanspec
)))
16891 else if (CHSPEC_IS40(pi
->radio_chanspec
))
16896 mod_phy_reg(pi
, 0x20, (0x1f << 7), (hpf_code
<< 7));
16897 mod_phy_reg(pi
, 0x36, (0x1f << 7), (hpf_code
<< 7));
16899 for (ctr
= 0; ctr
< 4; ctr
++) {
16900 regval
[ctr
] = (hpf_code
<< 8) | 0x7c;
16902 wlc_phy_table_write_nphy(pi
, 7, 4, 0x106, 16, regval
);
16904 wlc_phy_adjust_lnagaintbl_nphy(pi
);
16906 if (pi
->nphy_elna_gain_config
) {
16911 wlc_phy_table_write_nphy(pi
, 2, 4, 8, 16, regval
);
16912 wlc_phy_table_write_nphy(pi
, 3, 4, 8, 16, regval
);
16914 for (ctr
= 0; ctr
< 4; ctr
++) {
16915 regval
[ctr
] = (hpf_code
<< 8) | 0x74;
16917 wlc_phy_table_write_nphy(pi
, 7, 4, 0x106, 16, regval
);
16920 if (NREV_IS(pi
->pubpi
.phy_rev
, 2)) {
16921 for (ctr
= 0; ctr
< 21; ctr
++) {
16922 regval
[ctr
] = 3 * ctr
;
16924 wlc_phy_table_write_nphy(pi
, 0, 21, 32, 16, regval
);
16925 wlc_phy_table_write_nphy(pi
, 1, 21, 32, 16, regval
);
16927 for (ctr
= 0; ctr
< 21; ctr
++) {
16928 regval
[ctr
] = (u16
) ctr
;
16930 wlc_phy_table_write_nphy(pi
, 2, 21, 32, 16, regval
);
16931 wlc_phy_table_write_nphy(pi
, 3, 21, 32, 16, regval
);
16934 wlc_phy_set_rfseq_nphy(pi
, NPHY_RFSEQ_UPDATEGAINU
,
16935 rfseq_updategainu_events
,
16936 rfseq_updategainu_dlys
,
16937 sizeof(rfseq_updategainu_events
) /
16938 sizeof(rfseq_updategainu_events
[0]));
16940 mod_phy_reg(pi
, 0x153, (0xff << 8), (90 << 8));
16942 if (CHSPEC_IS2G(pi
->radio_chanspec
))
16944 (NPHY_TO_BPHY_OFF
+ BPHY_OPTIONAL_MODES
),
16949 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy
*pi
)
16951 s8 lna1_gain_db
[] = { 8, 13, 17, 22 };
16952 s8 lna2_gain_db
[] = { -2, 7, 11, 15 };
16953 s8 tia_gain_db
[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
16954 s8 tia_gainbits
[] = {
16955 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
16957 mod_phy_reg(pi
, 0x1c, (0x1 << 13), (1 << 13));
16958 mod_phy_reg(pi
, 0x32, (0x1 << 13), (1 << 13));
16960 mod_phy_reg(pi
, 0x289, (0xff << 0), (0x46 << 0));
16962 mod_phy_reg(pi
, 0x283, (0xff << 0), (0x3c << 0));
16963 mod_phy_reg(pi
, 0x280, (0xff << 0), (0x3c << 0));
16965 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 0x8, 8,
16967 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 0x8, 8,
16970 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 0x10, 8,
16972 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 0x10, 8,
16975 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 10, 0x20, 8,
16977 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 10, 0x20, 8,
16980 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS1
, 10, 0x20, 8,
16982 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS2
, 10, 0x20, 8,
16985 write_phy_reg(pi
, 0x37, 0x74);
16986 write_phy_reg(pi
, 0x2ad, 0x74);
16987 write_phy_reg(pi
, 0x38, 0x18);
16988 write_phy_reg(pi
, 0x2ae, 0x18);
16990 write_phy_reg(pi
, 0x2b, 0xe8);
16991 write_phy_reg(pi
, 0x41, 0xe8);
16993 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
16995 mod_phy_reg(pi
, 0x300, (0x3f << 0), (0x12 << 0));
16996 mod_phy_reg(pi
, 0x301, (0x3f << 0), (0x12 << 0));
16999 mod_phy_reg(pi
, 0x300, (0x3f << 0), (0x10 << 0));
17000 mod_phy_reg(pi
, 0x301, (0x3f << 0), (0x10 << 0));
17004 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy
*pi
)
17007 s8 lna1G_gain_db_rev7
[] = { 9, 14, 19, 24 };
17008 s8
*lna1_gain_db
= NULL
;
17009 s8
*lna1_gain_db_2
= NULL
;
17010 s8
*lna2_gain_db
= NULL
;
17011 s8 tiaA_gain_db_rev7
[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
17013 s8 tiaA_gainbits_rev7
[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
17015 u16 rfseqA_init_gain_rev7
[] = { 0x624f, 0x624f };
17016 u16
*rfseq_init_gain
;
17018 u16 clip1hi_gaincode
;
17019 u16 clip1md_gaincode
= 0;
17020 u16 clip1md_gaincode_B
;
17021 u16 clip1lo_gaincode
;
17022 u16 clip1lo_gaincode_B
;
17028 s8 nvar_baseline_offset0
= 0, nvar_baseline_offset1
= 0;
17029 u8 chg_nbclip_th
= 0;
17031 mod_phy_reg(pi
, 0x1c, (0x1 << 13), (1 << 13));
17032 mod_phy_reg(pi
, 0x32, (0x1 << 13), (1 << 13));
17034 currband
= read_phy_reg(pi
, 0x09) & NPHY_BandControl_currentBand
;
17035 if (currband
== 0) {
17037 lna1_gain_db
= lna1G_gain_db_rev7
;
17039 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 8, 8,
17041 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 8, 8,
17044 mod_phy_reg(pi
, 0x283, (0xff << 0), (0x40 << 0));
17046 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
17047 mod_phy_reg(pi
, 0x280, (0xff << 0), (0x3e << 0));
17048 mod_phy_reg(pi
, 0x283, (0xff << 0), (0x3e << 0));
17051 mod_phy_reg(pi
, 0x289, (0xff << 0), (0x46 << 0));
17053 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
17054 mod_phy_reg(pi
, 0x300, (0x3f << 0), (13 << 0));
17055 mod_phy_reg(pi
, 0x301, (0x3f << 0), (13 << 0));
17059 init_gaincode
= 0x9e;
17060 clip1hi_gaincode
= 0x9e;
17061 clip1md_gaincode_B
= 0x24;
17062 clip1lo_gaincode
= 0x8a;
17063 clip1lo_gaincode_B
= 8;
17064 rfseq_init_gain
= rfseqA_init_gain_rev7
;
17066 tia_gain_db
= tiaA_gain_db_rev7
;
17067 tia_gainbits
= tiaA_gainbits_rev7
;
17069 freq
= CHAN5G_FREQ(CHSPEC_CHANNEL(pi
->radio_chanspec
));
17070 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
17073 clip1md_gaincode
= 0x82;
17075 if ((freq
<= 5080) || (freq
== 5825)) {
17077 s8 lna1A_gain_db_rev7
[] = { 11, 16, 20, 24 };
17078 s8 lna1A_gain_db_2_rev7
[] = {
17080 s8 lna2A_gain_db_rev7
[] = { -1, 6, 10, 14 };
17083 lna1_gain_db
= lna1A_gain_db_rev7
;
17084 lna1_gain_db_2
= lna1A_gain_db_2_rev7
;
17085 lna2_gain_db
= lna2A_gain_db_rev7
;
17086 } else if ((freq
>= 5500) && (freq
<= 5700)) {
17088 s8 lna1A_gain_db_rev7
[] = { 11, 17, 21, 25 };
17089 s8 lna1A_gain_db_2_rev7
[] = {
17091 s8 lna2A_gain_db_rev7
[] = { 1, 8, 12, 16 };
17094 clip1md_gaincode_B
= 0x14;
17097 lna1_gain_db
= lna1A_gain_db_rev7
;
17098 lna1_gain_db_2
= lna1A_gain_db_2_rev7
;
17099 lna2_gain_db
= lna2A_gain_db_rev7
;
17102 s8 lna1A_gain_db_rev7
[] = { 12, 18, 22, 26 };
17103 s8 lna1A_gain_db_2_rev7
[] = {
17105 s8 lna2A_gain_db_rev7
[] = { -1, 6, 10, 14 };
17108 lna1_gain_db
= lna1A_gain_db_rev7
;
17109 lna1_gain_db_2
= lna1A_gain_db_2_rev7
;
17110 lna2_gain_db
= lna2A_gain_db_rev7
;
17113 if (freq
<= 4920) {
17114 nvar_baseline_offset0
= 5;
17115 nvar_baseline_offset1
= 5;
17116 } else if ((freq
> 4920) && (freq
<= 5320)) {
17117 nvar_baseline_offset0
= 3;
17118 nvar_baseline_offset1
= 5;
17119 } else if ((freq
> 5320) && (freq
<= 5700)) {
17120 nvar_baseline_offset0
= 3;
17121 nvar_baseline_offset1
= 2;
17123 nvar_baseline_offset0
= 4;
17124 nvar_baseline_offset1
= 0;
17132 if ((freq
>= 4920) && (freq
<= 5320)) {
17133 nvar_baseline_offset0
= 4;
17134 nvar_baseline_offset1
= 5;
17135 } else if ((freq
> 5320) && (freq
<= 5550)) {
17136 nvar_baseline_offset0
= 4;
17137 nvar_baseline_offset1
= 2;
17139 nvar_baseline_offset0
= 5;
17140 nvar_baseline_offset1
= 3;
17144 write_phy_reg(pi
, 0x20, init_gaincode
);
17145 write_phy_reg(pi
, 0x2a7, init_gaincode
);
17147 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
17148 pi
->pubpi
.phy_corenum
, 0x106, 16,
17151 write_phy_reg(pi
, 0x22, clip1hi_gaincode
);
17152 write_phy_reg(pi
, 0x2a9, clip1hi_gaincode
);
17154 write_phy_reg(pi
, 0x36, clip1md_gaincode_B
);
17155 write_phy_reg(pi
, 0x2ac, clip1md_gaincode_B
);
17157 write_phy_reg(pi
, 0x37, clip1lo_gaincode
);
17158 write_phy_reg(pi
, 0x2ad, clip1lo_gaincode
);
17159 write_phy_reg(pi
, 0x38, clip1lo_gaincode_B
);
17160 write_phy_reg(pi
, 0x2ae, clip1lo_gaincode_B
);
17162 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 10, 0x20, 8,
17164 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 10, 0x20, 8,
17167 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS1
, 10, 0x20, 8,
17169 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAINBITS2
, 10, 0x20, 8,
17172 mod_phy_reg(pi
, 0x283, (0xff << 0), (crsminu_th
<< 0));
17174 if (chg_nbclip_th
== 1) {
17175 write_phy_reg(pi
, 0x2b, nbclip_th
);
17176 write_phy_reg(pi
, 0x41, nbclip_th
);
17179 mod_phy_reg(pi
, 0x300, (0x3f << 0), (w1clip_th
<< 0));
17180 mod_phy_reg(pi
, 0x301, (0x3f << 0), (w1clip_th
<< 0));
17182 mod_phy_reg(pi
, 0x2e4,
17183 (0x3f << 0), (nvar_baseline_offset0
<< 0));
17185 mod_phy_reg(pi
, 0x2e4,
17186 (0x3f << 6), (nvar_baseline_offset1
<< 6));
17188 if (CHSPEC_IS20(pi
->radio_chanspec
)) {
17190 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 8, 8,
17192 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 8, 8,
17195 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN1
, 4, 0x10,
17197 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_GAIN2
, 4, 0x10,
17200 write_phy_reg(pi
, 0x24, clip1md_gaincode
);
17201 write_phy_reg(pi
, 0x2ab, clip1md_gaincode
);
17203 mod_phy_reg(pi
, 0x280, (0xff << 0), (crsminl_th
<< 0));
17210 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy
*pi
)
17216 u16 minmax_gain
[2];
17219 if (pi
->phyhang_avoid
)
17220 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
17222 if (pi
->nphy_gain_boost
) {
17223 if ((CHSPEC_IS2G(pi
->radio_chanspec
))) {
17229 curr_channel
= CHSPEC_CHANNEL(pi
->radio_chanspec
);
17232 PHY_HW_ROUND(((nphy_lnagain_est0
[0] *
17234 nphy_lnagain_est0
[1]), 13);
17237 PHY_HW_ROUND(((nphy_lnagain_est1
[0] *
17239 nphy_lnagain_est1
[1]), 13);
17247 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
17248 if (pi
->nphy_elna_gain_config
) {
17250 regval
[0] = nphy_def_lnagains
[2] + gain_delta
[core
];
17251 regval
[1] = nphy_def_lnagains
[3] + gain_delta
[core
];
17252 regval
[2] = nphy_def_lnagains
[3] + gain_delta
[core
];
17253 regval
[3] = nphy_def_lnagains
[3] + gain_delta
[core
];
17255 for (ctr
= 0; ctr
< 4; ctr
++) {
17257 nphy_def_lnagains
[ctr
] + gain_delta
[core
];
17260 wlc_phy_table_write_nphy(pi
, core
, 4, 8, 16, regval
);
17262 minmax_gain
[core
] =
17263 (u16
) (nphy_def_lnagains
[2] + gain_delta
[core
] + 4);
17266 mod_phy_reg(pi
, 0x1e, (0xff << 0), (minmax_gain
[0] << 0));
17267 mod_phy_reg(pi
, 0x34, (0xff << 0), (minmax_gain
[1] << 0));
17269 if (pi
->phyhang_avoid
)
17270 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
17273 void wlc_phy_switch_radio_nphy(struct brcms_phy
*pi
, bool on
)
17276 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
17277 if (!pi
->radio_is_on
) {
17278 wlc_phy_radio_preinit_205x(pi
);
17279 wlc_phy_radio_init_2057(pi
);
17280 wlc_phy_radio_postinit_2057(pi
);
17283 wlc_phy_chanspec_set((struct brcms_phy_pub
*) pi
,
17284 pi
->radio_chanspec
);
17285 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
17286 wlc_phy_radio_preinit_205x(pi
);
17287 wlc_phy_radio_init_2056(pi
);
17288 wlc_phy_radio_postinit_2056(pi
);
17290 wlc_phy_chanspec_set((struct brcms_phy_pub
*) pi
,
17291 pi
->radio_chanspec
);
17293 wlc_phy_radio_preinit_2055(pi
);
17294 wlc_phy_radio_init_2055(pi
);
17295 wlc_phy_radio_postinit_2055(pi
);
17298 pi
->radio_is_on
= true;
17302 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)
17303 && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
17304 and_phy_reg(pi
, 0x78, ~RFCC_CHIP0_PU
);
17305 mod_radio_reg(pi
, RADIO_2056_SYN_COM_PU
, 0x2, 0x0);
17307 write_radio_reg(pi
,
17308 RADIO_2056_TX_PADA_BOOST_TUNE
|
17309 RADIO_2056_TX0
, 0);
17310 write_radio_reg(pi
,
17311 RADIO_2056_TX_PADG_BOOST_TUNE
|
17312 RADIO_2056_TX0
, 0);
17313 write_radio_reg(pi
,
17314 RADIO_2056_TX_PGAA_BOOST_TUNE
|
17315 RADIO_2056_TX0
, 0);
17316 write_radio_reg(pi
,
17317 RADIO_2056_TX_PGAG_BOOST_TUNE
|
17318 RADIO_2056_TX0
, 0);
17320 RADIO_2056_TX_MIXA_BOOST_TUNE
|
17321 RADIO_2056_TX0
, 0xf0, 0);
17322 write_radio_reg(pi
,
17323 RADIO_2056_TX_MIXG_BOOST_TUNE
|
17324 RADIO_2056_TX0
, 0);
17326 write_radio_reg(pi
,
17327 RADIO_2056_TX_PADA_BOOST_TUNE
|
17328 RADIO_2056_TX1
, 0);
17329 write_radio_reg(pi
,
17330 RADIO_2056_TX_PADG_BOOST_TUNE
|
17331 RADIO_2056_TX1
, 0);
17332 write_radio_reg(pi
,
17333 RADIO_2056_TX_PGAA_BOOST_TUNE
|
17334 RADIO_2056_TX1
, 0);
17335 write_radio_reg(pi
,
17336 RADIO_2056_TX_PGAG_BOOST_TUNE
|
17337 RADIO_2056_TX1
, 0);
17339 RADIO_2056_TX_MIXA_BOOST_TUNE
|
17340 RADIO_2056_TX1
, 0xf0, 0);
17341 write_radio_reg(pi
,
17342 RADIO_2056_TX_MIXG_BOOST_TUNE
|
17343 RADIO_2056_TX1
, 0);
17345 pi
->radio_is_on
= false;
17348 if (NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
17349 and_phy_reg(pi
, 0x78, ~RFCC_CHIP0_PU
);
17350 pi
->radio_is_on
= false;
17356 static void wlc_phy_radio_preinit_2055(struct brcms_phy
*pi
)
17359 and_phy_reg(pi
, 0x78, ~RFCC_POR_FORCE
);
17360 or_phy_reg(pi
, 0x78, RFCC_CHIP0_PU
| RFCC_OE_POR_FORCE
);
17362 or_phy_reg(pi
, 0x78, RFCC_POR_FORCE
);
17365 static void wlc_phy_radio_init_2055(struct brcms_phy
*pi
)
17367 wlc_phy_init_radio_regs(pi
, regs_2055
, RADIO_DEFAULT_CORE
);
17370 static void wlc_phy_radio_postinit_2055(struct brcms_phy
*pi
)
17373 and_radio_reg(pi
, RADIO_2055_MASTER_CNTRL1
,
17374 ~(RADIO_2055_JTAGCTRL_MASK
| RADIO_2055_JTAGSYNC_MASK
));
17376 if (((pi
->sh
->sromrev
>= 4)
17377 && !(pi
->sh
->boardflags2
& BFL2_RXBB_INT_REG_DIS
))
17378 || ((pi
->sh
->sromrev
< 4))) {
17379 and_radio_reg(pi
, RADIO_2055_CORE1_RXBB_REGULATOR
, 0x7F);
17380 and_radio_reg(pi
, RADIO_2055_CORE2_RXBB_REGULATOR
, 0x7F);
17383 mod_radio_reg(pi
, RADIO_2055_RRCCAL_N_OPT_SEL
, 0x3F, 0x2C);
17384 write_radio_reg(pi
, RADIO_2055_CAL_MISC
, 0x3C);
17386 and_radio_reg(pi
, RADIO_2055_CAL_MISC
,
17387 ~(RADIO_2055_RRCAL_START
| RADIO_2055_RRCAL_RST_N
));
17389 or_radio_reg(pi
, RADIO_2055_CAL_LPO_CNTRL
, RADIO_2055_CAL_LPO_ENABLE
);
17391 or_radio_reg(pi
, RADIO_2055_CAL_MISC
, RADIO_2055_RRCAL_RST_N
);
17395 or_radio_reg(pi
, RADIO_2055_CAL_MISC
, RADIO_2055_RRCAL_START
);
17397 SPINWAIT(((read_radio_reg(pi
, RADIO_2055_CAL_COUNTER_OUT2
) &
17398 RADIO_2055_RCAL_DONE
) != RADIO_2055_RCAL_DONE
), 2000);
17400 if (WARN((read_radio_reg(pi
, RADIO_2055_CAL_COUNTER_OUT2
) &
17401 RADIO_2055_RCAL_DONE
) != RADIO_2055_RCAL_DONE
,
17402 "HW error: radio calibration1\n"))
17405 and_radio_reg(pi
, RADIO_2055_CAL_LPO_CNTRL
,
17406 ~(RADIO_2055_CAL_LPO_ENABLE
));
17408 wlc_phy_chanspec_set((struct brcms_phy_pub
*) pi
, pi
->radio_chanspec
);
17410 write_radio_reg(pi
, RADIO_2055_CORE1_RXBB_LPF
, 9);
17411 write_radio_reg(pi
, RADIO_2055_CORE2_RXBB_LPF
, 9);
17413 write_radio_reg(pi
, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS
, 0x83);
17414 write_radio_reg(pi
, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS
, 0x83);
17416 mod_radio_reg(pi
, RADIO_2055_CORE1_LNA_GAINBST
,
17417 RADIO_2055_GAINBST_VAL_MASK
, RADIO_2055_GAINBST_CODE
);
17418 mod_radio_reg(pi
, RADIO_2055_CORE2_LNA_GAINBST
,
17419 RADIO_2055_GAINBST_VAL_MASK
, RADIO_2055_GAINBST_CODE
);
17420 if (pi
->nphy_gain_boost
) {
17421 and_radio_reg(pi
, RADIO_2055_CORE1_RXRF_SPC1
,
17422 ~(RADIO_2055_GAINBST_DISABLE
));
17423 and_radio_reg(pi
, RADIO_2055_CORE2_RXRF_SPC1
,
17424 ~(RADIO_2055_GAINBST_DISABLE
));
17426 or_radio_reg(pi
, RADIO_2055_CORE1_RXRF_SPC1
,
17427 RADIO_2055_GAINBST_DISABLE
);
17428 or_radio_reg(pi
, RADIO_2055_CORE2_RXRF_SPC1
,
17429 RADIO_2055_GAINBST_DISABLE
);
17435 static void wlc_phy_radio_preinit_205x(struct brcms_phy
*pi
)
17438 and_phy_reg(pi
, 0x78, ~RFCC_CHIP0_PU
);
17439 and_phy_reg(pi
, 0x78, RFCC_OE_POR_FORCE
);
17441 or_phy_reg(pi
, 0x78, ~RFCC_OE_POR_FORCE
);
17442 or_phy_reg(pi
, 0x78, RFCC_CHIP0_PU
);
17446 static void wlc_phy_radio_init_2056(struct brcms_phy
*pi
)
17448 struct radio_regs
*regs_SYN_2056_ptr
= NULL
;
17449 struct radio_regs
*regs_TX_2056_ptr
= NULL
;
17450 struct radio_regs
*regs_RX_2056_ptr
= NULL
;
17452 if (NREV_IS(pi
->pubpi
.phy_rev
, 3)) {
17453 regs_SYN_2056_ptr
= regs_SYN_2056
;
17454 regs_TX_2056_ptr
= regs_TX_2056
;
17455 regs_RX_2056_ptr
= regs_RX_2056
;
17456 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
17457 regs_SYN_2056_ptr
= regs_SYN_2056_A1
;
17458 regs_TX_2056_ptr
= regs_TX_2056_A1
;
17459 regs_RX_2056_ptr
= regs_RX_2056_A1
;
17461 switch (pi
->pubpi
.radiorev
) {
17463 regs_SYN_2056_ptr
= regs_SYN_2056_rev5
;
17464 regs_TX_2056_ptr
= regs_TX_2056_rev5
;
17465 regs_RX_2056_ptr
= regs_RX_2056_rev5
;
17469 regs_SYN_2056_ptr
= regs_SYN_2056_rev6
;
17470 regs_TX_2056_ptr
= regs_TX_2056_rev6
;
17471 regs_RX_2056_ptr
= regs_RX_2056_rev6
;
17476 regs_SYN_2056_ptr
= regs_SYN_2056_rev7
;
17477 regs_TX_2056_ptr
= regs_TX_2056_rev7
;
17478 regs_RX_2056_ptr
= regs_RX_2056_rev7
;
17482 regs_SYN_2056_ptr
= regs_SYN_2056_rev8
;
17483 regs_TX_2056_ptr
= regs_TX_2056_rev8
;
17484 regs_RX_2056_ptr
= regs_RX_2056_rev8
;
17488 regs_SYN_2056_ptr
= regs_SYN_2056_rev11
;
17489 regs_TX_2056_ptr
= regs_TX_2056_rev11
;
17490 regs_RX_2056_ptr
= regs_RX_2056_rev11
;
17498 wlc_phy_init_radio_regs(pi
, regs_SYN_2056_ptr
, (u16
) RADIO_2056_SYN
);
17500 wlc_phy_init_radio_regs(pi
, regs_TX_2056_ptr
, (u16
) RADIO_2056_TX0
);
17502 wlc_phy_init_radio_regs(pi
, regs_TX_2056_ptr
, (u16
) RADIO_2056_TX1
);
17504 wlc_phy_init_radio_regs(pi
, regs_RX_2056_ptr
, (u16
) RADIO_2056_RX0
);
17506 wlc_phy_init_radio_regs(pi
, regs_RX_2056_ptr
, (u16
) RADIO_2056_RX1
);
17509 static void wlc_phy_radio_postinit_2056(struct brcms_phy
*pi
)
17511 mod_radio_reg(pi
, RADIO_2056_SYN_COM_CTRL
, 0xb, 0xb);
17513 mod_radio_reg(pi
, RADIO_2056_SYN_COM_PU
, 0x2, 0x2);
17514 mod_radio_reg(pi
, RADIO_2056_SYN_COM_RESET
, 0x2, 0x2);
17516 mod_radio_reg(pi
, RADIO_2056_SYN_COM_RESET
, 0x2, 0x0);
17518 if ((pi
->sh
->boardflags2
& BFL2_LEGACY
)
17519 || (pi
->sh
->boardflags2
& BFL2_XTALBUFOUTEN
)) {
17521 mod_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST2
, 0xf4, 0x0);
17524 mod_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST2
, 0xfc, 0x0);
17527 mod_radio_reg(pi
, RADIO_2056_SYN_RCCAL_CTRL0
, 0x1, 0x0);
17529 if (pi
->phy_init_por
) {
17530 wlc_phy_radio205x_rcal(pi
);
17534 static void wlc_phy_radio_init_2057(struct brcms_phy
*pi
)
17536 struct radio_20xx_regs
*regs_2057_ptr
= NULL
;
17538 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
17540 regs_2057_ptr
= regs_2057_rev4
;
17541 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 8)
17542 || NREV_IS(pi
->pubpi
.phy_rev
, 9)) {
17543 switch (pi
->pubpi
.radiorev
) {
17546 if (pi
->pubpi
.radiover
== 0x0) {
17548 regs_2057_ptr
= regs_2057_rev5
;
17550 } else if (pi
->pubpi
.radiover
== 0x1) {
17552 regs_2057_ptr
= regs_2057_rev5v1
;
17559 regs_2057_ptr
= regs_2057_rev7
;
17564 regs_2057_ptr
= regs_2057_rev8
;
17572 wlc_phy_init_radio_regs_allbands(pi
, regs_2057_ptr
);
17575 static void wlc_phy_radio_postinit_2057(struct brcms_phy
*pi
)
17578 mod_radio_reg(pi
, RADIO_2057_XTALPUOVR_PINCTRL
, 0x1, 0x1);
17580 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_CAL_RESETN
, 0x78, 0x78);
17581 mod_radio_reg(pi
, RADIO_2057_XTAL_CONFIG2
, 0x80, 0x80);
17583 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_CAL_RESETN
, 0x78, 0x0);
17584 mod_radio_reg(pi
, RADIO_2057_XTAL_CONFIG2
, 0x80, 0x0);
17586 if (pi
->phy_init_por
) {
17587 wlc_phy_radio205x_rcal(pi
);
17588 wlc_phy_radio2057_rccal(pi
);
17591 mod_radio_reg(pi
, RADIO_2057_RFPLL_MASTER
, 0x8, 0x0);
17595 wlc_phy_chan2freq_nphy(struct brcms_phy
*pi
, uint channel
, int *f
,
17596 struct chan_info_nphy_radio2057
**t0
,
17597 struct chan_info_nphy_radio205x
**t1
,
17598 struct chan_info_nphy_radio2057_rev5
**t2
,
17599 struct chan_info_nphy_2055
**t3
)
17602 struct chan_info_nphy_radio2057
*chan_info_tbl_p_0
= NULL
;
17603 struct chan_info_nphy_radio205x
*chan_info_tbl_p_1
= NULL
;
17604 struct chan_info_nphy_radio2057_rev5
*chan_info_tbl_p_2
= NULL
;
17609 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
17611 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
17613 chan_info_tbl_p_0
= chan_info_nphyrev7_2057_rev4
;
17614 tbl_len
= ARRAY_SIZE(chan_info_nphyrev7_2057_rev4
);
17616 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 8)
17617 || NREV_IS(pi
->pubpi
.phy_rev
, 9)) {
17618 switch (pi
->pubpi
.radiorev
) {
17622 if (pi
->pubpi
.radiover
== 0x0) {
17624 chan_info_tbl_p_2
=
17625 chan_info_nphyrev8_2057_rev5
;
17628 (chan_info_nphyrev8_2057_rev5
);
17630 } else if (pi
->pubpi
.radiover
== 0x1) {
17632 chan_info_tbl_p_2
=
17633 chan_info_nphyrev9_2057_rev5v1
;
17636 (chan_info_nphyrev9_2057_rev5v1
);
17642 chan_info_tbl_p_0
=
17643 chan_info_nphyrev8_2057_rev7
;
17645 ARRAY_SIZE(chan_info_nphyrev8_2057_rev7
);
17649 chan_info_tbl_p_0
=
17650 chan_info_nphyrev8_2057_rev8
;
17652 ARRAY_SIZE(chan_info_nphyrev8_2057_rev8
);
17656 if (NORADIO_ENAB(pi
->pubpi
)) {
17661 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 16)) {
17663 chan_info_tbl_p_0
= chan_info_nphyrev8_2057_rev8
;
17664 tbl_len
= ARRAY_SIZE(chan_info_nphyrev8_2057_rev8
);
17669 for (i
= 0; i
< tbl_len
; i
++) {
17670 if (pi
->pubpi
.radiorev
== 5) {
17672 if (chan_info_tbl_p_2
[i
].chan
== channel
)
17676 if (chan_info_tbl_p_0
[i
].chan
== channel
)
17681 if (i
>= tbl_len
) {
17684 if (pi
->pubpi
.radiorev
== 5) {
17685 *t2
= &chan_info_tbl_p_2
[i
];
17686 freq
= chan_info_tbl_p_2
[i
].freq
;
17688 *t0
= &chan_info_tbl_p_0
[i
];
17689 freq
= chan_info_tbl_p_0
[i
].freq
;
17692 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
17693 if (NREV_IS(pi
->pubpi
.phy_rev
, 3)) {
17694 chan_info_tbl_p_1
= chan_info_nphyrev3_2056
;
17695 tbl_len
= ARRAY_SIZE(chan_info_nphyrev3_2056
);
17696 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 4)) {
17697 chan_info_tbl_p_1
= chan_info_nphyrev4_2056_A1
;
17698 tbl_len
= ARRAY_SIZE(chan_info_nphyrev4_2056_A1
);
17699 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)
17700 || NREV_IS(pi
->pubpi
.phy_rev
, 6)) {
17701 switch (pi
->pubpi
.radiorev
) {
17703 chan_info_tbl_p_1
= chan_info_nphyrev5_2056v5
;
17704 tbl_len
= ARRAY_SIZE(chan_info_nphyrev5_2056v5
);
17707 chan_info_tbl_p_1
= chan_info_nphyrev6_2056v6
;
17708 tbl_len
= ARRAY_SIZE(chan_info_nphyrev6_2056v6
);
17712 chan_info_tbl_p_1
= chan_info_nphyrev5n6_2056v7
;
17714 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7
);
17717 chan_info_tbl_p_1
= chan_info_nphyrev6_2056v8
;
17718 tbl_len
= ARRAY_SIZE(chan_info_nphyrev6_2056v8
);
17721 chan_info_tbl_p_1
= chan_info_nphyrev6_2056v11
;
17722 tbl_len
= ARRAY_SIZE(chan_info_nphyrev6_2056v11
);
17725 if (NORADIO_ENAB(pi
->pubpi
)) {
17732 for (i
= 0; i
< tbl_len
; i
++) {
17733 if (chan_info_tbl_p_1
[i
].chan
== channel
)
17737 if (i
>= tbl_len
) {
17740 *t1
= &chan_info_tbl_p_1
[i
];
17741 freq
= chan_info_tbl_p_1
[i
].freq
;
17744 for (i
= 0; i
< ARRAY_SIZE(chan_info_nphy_2055
); i
++)
17745 if (chan_info_nphy_2055
[i
].chan
== channel
)
17748 if (i
>= ARRAY_SIZE(chan_info_nphy_2055
)) {
17751 *t3
= &chan_info_nphy_2055
[i
];
17752 freq
= chan_info_nphy_2055
[i
].freq
;
17759 *f
= WL_CHAN_FREQ_RANGE_2G
;
17763 u8
wlc_phy_get_chan_freq_range_nphy(struct brcms_phy
*pi
, uint channel
)
17766 struct chan_info_nphy_radio2057
*t0
= NULL
;
17767 struct chan_info_nphy_radio205x
*t1
= NULL
;
17768 struct chan_info_nphy_radio2057_rev5
*t2
= NULL
;
17769 struct chan_info_nphy_2055
*t3
= NULL
;
17771 if (NORADIO_ENAB(pi
->pubpi
))
17772 return WL_CHAN_FREQ_RANGE_2G
;
17775 channel
= CHSPEC_CHANNEL(pi
->radio_chanspec
);
17777 wlc_phy_chan2freq_nphy(pi
, channel
, &freq
, &t0
, &t1
, &t2
, &t3
);
17779 if (CHSPEC_IS2G(pi
->radio_chanspec
))
17780 return WL_CHAN_FREQ_RANGE_2G
;
17782 if ((freq
>= BASE_LOW_5G_CHAN
) && (freq
< BASE_MID_5G_CHAN
)) {
17783 return WL_CHAN_FREQ_RANGE_5GL
;
17784 } else if ((freq
>= BASE_MID_5G_CHAN
) && (freq
< BASE_HIGH_5G_CHAN
)) {
17785 return WL_CHAN_FREQ_RANGE_5GM
;
17787 return WL_CHAN_FREQ_RANGE_5GH
;
17792 wlc_phy_chanspec_radio2055_setup(struct brcms_phy
*pi
,
17793 struct chan_info_nphy_2055
*ci
)
17796 write_radio_reg(pi
, RADIO_2055_PLL_REF
, ci
->RF_pll_ref
);
17797 write_radio_reg(pi
, RADIO_2055_RF_PLL_MOD0
, ci
->RF_rf_pll_mod0
);
17798 write_radio_reg(pi
, RADIO_2055_RF_PLL_MOD1
, ci
->RF_rf_pll_mod1
);
17799 write_radio_reg(pi
, RADIO_2055_VCO_CAP_TAIL
, ci
->RF_vco_cap_tail
);
17801 WLC_PHY_WAR_PR51571(pi
);
17803 write_radio_reg(pi
, RADIO_2055_VCO_CAL1
, ci
->RF_vco_cal1
);
17804 write_radio_reg(pi
, RADIO_2055_VCO_CAL2
, ci
->RF_vco_cal2
);
17805 write_radio_reg(pi
, RADIO_2055_PLL_LF_C1
, ci
->RF_pll_lf_c1
);
17806 write_radio_reg(pi
, RADIO_2055_PLL_LF_R1
, ci
->RF_pll_lf_r1
);
17808 WLC_PHY_WAR_PR51571(pi
);
17810 write_radio_reg(pi
, RADIO_2055_PLL_LF_C2
, ci
->RF_pll_lf_c2
);
17811 write_radio_reg(pi
, RADIO_2055_LGBUF_CEN_BUF
, ci
->RF_lgbuf_cen_buf
);
17812 write_radio_reg(pi
, RADIO_2055_LGEN_TUNE1
, ci
->RF_lgen_tune1
);
17813 write_radio_reg(pi
, RADIO_2055_LGEN_TUNE2
, ci
->RF_lgen_tune2
);
17815 WLC_PHY_WAR_PR51571(pi
);
17817 write_radio_reg(pi
, RADIO_2055_CORE1_LGBUF_A_TUNE
,
17818 ci
->RF_core1_lgbuf_a_tune
);
17819 write_radio_reg(pi
, RADIO_2055_CORE1_LGBUF_G_TUNE
,
17820 ci
->RF_core1_lgbuf_g_tune
);
17821 write_radio_reg(pi
, RADIO_2055_CORE1_RXRF_REG1
, ci
->RF_core1_rxrf_reg1
);
17822 write_radio_reg(pi
, RADIO_2055_CORE1_TX_PGA_PAD_TN
,
17823 ci
->RF_core1_tx_pga_pad_tn
);
17825 WLC_PHY_WAR_PR51571(pi
);
17827 write_radio_reg(pi
, RADIO_2055_CORE1_TX_MX_BGTRIM
,
17828 ci
->RF_core1_tx_mx_bgtrim
);
17829 write_radio_reg(pi
, RADIO_2055_CORE2_LGBUF_A_TUNE
,
17830 ci
->RF_core2_lgbuf_a_tune
);
17831 write_radio_reg(pi
, RADIO_2055_CORE2_LGBUF_G_TUNE
,
17832 ci
->RF_core2_lgbuf_g_tune
);
17833 write_radio_reg(pi
, RADIO_2055_CORE2_RXRF_REG1
, ci
->RF_core2_rxrf_reg1
);
17835 WLC_PHY_WAR_PR51571(pi
);
17837 write_radio_reg(pi
, RADIO_2055_CORE2_TX_PGA_PAD_TN
,
17838 ci
->RF_core2_tx_pga_pad_tn
);
17839 write_radio_reg(pi
, RADIO_2055_CORE2_TX_MX_BGTRIM
,
17840 ci
->RF_core2_tx_mx_bgtrim
);
17844 write_radio_reg(pi
, RADIO_2055_VCO_CAL10
, 0x05);
17845 write_radio_reg(pi
, RADIO_2055_VCO_CAL10
, 0x45);
17847 WLC_PHY_WAR_PR51571(pi
);
17849 write_radio_reg(pi
, RADIO_2055_VCO_CAL10
, 0x65);
17855 wlc_phy_chanspec_radio2056_setup(struct brcms_phy
*pi
,
17856 const struct chan_info_nphy_radio205x
*ci
)
17858 struct radio_regs
*regs_SYN_2056_ptr
= NULL
;
17860 write_radio_reg(pi
,
17861 RADIO_2056_SYN_PLL_VCOCAL1
| RADIO_2056_SYN
,
17862 ci
->RF_SYN_pll_vcocal1
);
17863 write_radio_reg(pi
, RADIO_2056_SYN_PLL_VCOCAL2
| RADIO_2056_SYN
,
17864 ci
->RF_SYN_pll_vcocal2
);
17865 write_radio_reg(pi
, RADIO_2056_SYN_PLL_REFDIV
| RADIO_2056_SYN
,
17866 ci
->RF_SYN_pll_refdiv
);
17867 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MMD2
| RADIO_2056_SYN
,
17868 ci
->RF_SYN_pll_mmd2
);
17869 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MMD1
| RADIO_2056_SYN
,
17870 ci
->RF_SYN_pll_mmd1
);
17871 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER1
| RADIO_2056_SYN
,
17872 ci
->RF_SYN_pll_loopfilter1
);
17873 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER2
| RADIO_2056_SYN
,
17874 ci
->RF_SYN_pll_loopfilter2
);
17875 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER3
| RADIO_2056_SYN
,
17876 ci
->RF_SYN_pll_loopfilter3
);
17877 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER4
| RADIO_2056_SYN
,
17878 ci
->RF_SYN_pll_loopfilter4
);
17879 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER5
| RADIO_2056_SYN
,
17880 ci
->RF_SYN_pll_loopfilter5
);
17881 write_radio_reg(pi
, RADIO_2056_SYN_RESERVED_ADDR27
| RADIO_2056_SYN
,
17882 ci
->RF_SYN_reserved_addr27
);
17883 write_radio_reg(pi
, RADIO_2056_SYN_RESERVED_ADDR28
| RADIO_2056_SYN
,
17884 ci
->RF_SYN_reserved_addr28
);
17885 write_radio_reg(pi
, RADIO_2056_SYN_RESERVED_ADDR29
| RADIO_2056_SYN
,
17886 ci
->RF_SYN_reserved_addr29
);
17887 write_radio_reg(pi
, RADIO_2056_SYN_LOGEN_VCOBUF1
| RADIO_2056_SYN
,
17888 ci
->RF_SYN_logen_VCOBUF1
);
17889 write_radio_reg(pi
, RADIO_2056_SYN_LOGEN_MIXER2
| RADIO_2056_SYN
,
17890 ci
->RF_SYN_logen_MIXER2
);
17891 write_radio_reg(pi
, RADIO_2056_SYN_LOGEN_BUF3
| RADIO_2056_SYN
,
17892 ci
->RF_SYN_logen_BUF3
);
17893 write_radio_reg(pi
, RADIO_2056_SYN_LOGEN_BUF4
| RADIO_2056_SYN
,
17894 ci
->RF_SYN_logen_BUF4
);
17896 write_radio_reg(pi
,
17897 RADIO_2056_RX_LNAA_TUNE
| RADIO_2056_RX0
,
17898 ci
->RF_RX0_lnaa_tune
);
17899 write_radio_reg(pi
, RADIO_2056_RX_LNAG_TUNE
| RADIO_2056_RX0
,
17900 ci
->RF_RX0_lnag_tune
);
17901 write_radio_reg(pi
, RADIO_2056_TX_INTPAA_BOOST_TUNE
| RADIO_2056_TX0
,
17902 ci
->RF_TX0_intpaa_boost_tune
);
17903 write_radio_reg(pi
, RADIO_2056_TX_INTPAG_BOOST_TUNE
| RADIO_2056_TX0
,
17904 ci
->RF_TX0_intpag_boost_tune
);
17905 write_radio_reg(pi
, RADIO_2056_TX_PADA_BOOST_TUNE
| RADIO_2056_TX0
,
17906 ci
->RF_TX0_pada_boost_tune
);
17907 write_radio_reg(pi
, RADIO_2056_TX_PADG_BOOST_TUNE
| RADIO_2056_TX0
,
17908 ci
->RF_TX0_padg_boost_tune
);
17909 write_radio_reg(pi
, RADIO_2056_TX_PGAA_BOOST_TUNE
| RADIO_2056_TX0
,
17910 ci
->RF_TX0_pgaa_boost_tune
);
17911 write_radio_reg(pi
, RADIO_2056_TX_PGAG_BOOST_TUNE
| RADIO_2056_TX0
,
17912 ci
->RF_TX0_pgag_boost_tune
);
17913 write_radio_reg(pi
, RADIO_2056_TX_MIXA_BOOST_TUNE
| RADIO_2056_TX0
,
17914 ci
->RF_TX0_mixa_boost_tune
);
17915 write_radio_reg(pi
, RADIO_2056_TX_MIXG_BOOST_TUNE
| RADIO_2056_TX0
,
17916 ci
->RF_TX0_mixg_boost_tune
);
17918 write_radio_reg(pi
,
17919 RADIO_2056_RX_LNAA_TUNE
| RADIO_2056_RX1
,
17920 ci
->RF_RX1_lnaa_tune
);
17921 write_radio_reg(pi
, RADIO_2056_RX_LNAG_TUNE
| RADIO_2056_RX1
,
17922 ci
->RF_RX1_lnag_tune
);
17923 write_radio_reg(pi
, RADIO_2056_TX_INTPAA_BOOST_TUNE
| RADIO_2056_TX1
,
17924 ci
->RF_TX1_intpaa_boost_tune
);
17925 write_radio_reg(pi
, RADIO_2056_TX_INTPAG_BOOST_TUNE
| RADIO_2056_TX1
,
17926 ci
->RF_TX1_intpag_boost_tune
);
17927 write_radio_reg(pi
, RADIO_2056_TX_PADA_BOOST_TUNE
| RADIO_2056_TX1
,
17928 ci
->RF_TX1_pada_boost_tune
);
17929 write_radio_reg(pi
, RADIO_2056_TX_PADG_BOOST_TUNE
| RADIO_2056_TX1
,
17930 ci
->RF_TX1_padg_boost_tune
);
17931 write_radio_reg(pi
, RADIO_2056_TX_PGAA_BOOST_TUNE
| RADIO_2056_TX1
,
17932 ci
->RF_TX1_pgaa_boost_tune
);
17933 write_radio_reg(pi
, RADIO_2056_TX_PGAG_BOOST_TUNE
| RADIO_2056_TX1
,
17934 ci
->RF_TX1_pgag_boost_tune
);
17935 write_radio_reg(pi
, RADIO_2056_TX_MIXA_BOOST_TUNE
| RADIO_2056_TX1
,
17936 ci
->RF_TX1_mixa_boost_tune
);
17937 write_radio_reg(pi
, RADIO_2056_TX_MIXG_BOOST_TUNE
| RADIO_2056_TX1
,
17938 ci
->RF_TX1_mixg_boost_tune
);
17940 if (NREV_IS(pi
->pubpi
.phy_rev
, 3))
17941 regs_SYN_2056_ptr
= regs_SYN_2056
;
17942 else if (NREV_IS(pi
->pubpi
.phy_rev
, 4))
17943 regs_SYN_2056_ptr
= regs_SYN_2056_A1
;
17945 switch (pi
->pubpi
.radiorev
) {
17947 regs_SYN_2056_ptr
= regs_SYN_2056_rev5
;
17950 regs_SYN_2056_ptr
= regs_SYN_2056_rev6
;
17954 regs_SYN_2056_ptr
= regs_SYN_2056_rev7
;
17957 regs_SYN_2056_ptr
= regs_SYN_2056_rev8
;
17960 regs_SYN_2056_ptr
= regs_SYN_2056_rev11
;
17964 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
17965 write_radio_reg(pi
, RADIO_2056_SYN_PLL_CP2
|
17967 (u16
) regs_SYN_2056_ptr
[0x49 - 2].init_g
);
17969 write_radio_reg(pi
, RADIO_2056_SYN_PLL_CP2
|
17971 (u16
) regs_SYN_2056_ptr
[0x49 - 2].init_a
);
17974 if (pi
->sh
->boardflags2
& BFL2_GPLL_WAR
) {
17975 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
17976 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER1
|
17977 RADIO_2056_SYN
, 0x1f);
17978 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER2
|
17979 RADIO_2056_SYN
, 0x1f);
17981 write_radio_reg(pi
,
17982 RADIO_2056_SYN_PLL_LOOPFILTER4
|
17983 RADIO_2056_SYN
, 0xb);
17984 write_radio_reg(pi
,
17985 RADIO_2056_SYN_PLL_CP2
|
17986 RADIO_2056_SYN
, 0x14);
17990 if ((pi
->sh
->boardflags2
& BFL2_GPLL_WAR2
) &&
17991 (CHSPEC_IS2G(pi
->radio_chanspec
))) {
17992 write_radio_reg(pi
,
17993 RADIO_2056_SYN_PLL_LOOPFILTER1
| RADIO_2056_SYN
,
17995 write_radio_reg(pi
,
17996 RADIO_2056_SYN_PLL_LOOPFILTER2
| RADIO_2056_SYN
,
17998 write_radio_reg(pi
,
17999 RADIO_2056_SYN_PLL_LOOPFILTER4
| RADIO_2056_SYN
,
18001 write_radio_reg(pi
, RADIO_2056_SYN_PLL_CP2
| RADIO_2056_SYN
,
18005 if (pi
->sh
->boardflags2
& BFL2_APLL_WAR
) {
18006 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
18007 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER1
|
18008 RADIO_2056_SYN
, 0x1f);
18009 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER2
|
18010 RADIO_2056_SYN
, 0x1f);
18011 write_radio_reg(pi
, RADIO_2056_SYN_PLL_LOOPFILTER4
|
18012 RADIO_2056_SYN
, 0x5);
18013 write_radio_reg(pi
, RADIO_2056_SYN_PLL_CP2
|
18014 RADIO_2056_SYN
, 0xc);
18018 if (PHY_IPA(pi
) && CHSPEC_IS2G(pi
->radio_chanspec
)) {
18019 u16 pag_boost_tune
;
18020 u16 padg_boost_tune
;
18021 u16 pgag_boost_tune
;
18022 u16 mixg_boost_tune
;
18023 u16 bias
, cascbias
;
18026 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
18028 if (NREV_GE(pi
->pubpi
.phy_rev
, 5)) {
18030 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18036 if ((pi
->sh
->chip
==
18038 || (pi
->sh
->chip
==
18039 BCM43225_CHIP_ID
)) {
18040 if (pi
->sh
->chippkg
==
18041 BCM43224_FAB_SMIC
) {
18047 pag_boost_tune
= 0x4;
18048 pgag_boost_tune
= 0x03;
18049 padg_boost_tune
= 0x77;
18050 mixg_boost_tune
= 0x65;
18052 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18053 INTPAG_IMAIN_STAT
, bias
);
18054 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18055 INTPAG_IAUX_STAT
, bias
);
18056 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18057 INTPAG_CASCBIAS
, cascbias
);
18059 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18062 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18065 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18068 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18073 bias
= IS40MHZ(pi
) ? 0x40 : 0x20;
18075 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18076 INTPAG_IMAIN_STAT
, bias
);
18077 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18078 INTPAG_IAUX_STAT
, bias
);
18079 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18080 INTPAG_CASCBIAS
, 0x30);
18082 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, PA_SPARE1
,
18087 if (PHY_IPA(pi
) && NREV_IS(pi
->pubpi
.phy_rev
, 6)
18088 && CHSPEC_IS5G(pi
->radio_chanspec
)) {
18089 u16 paa_boost_tune
;
18090 u16 pada_boost_tune
;
18091 u16 pgaa_boost_tune
;
18092 u16 mixa_boost_tune
;
18093 u16 freq
, pabias
, cascbias
;
18096 freq
= CHAN5G_FREQ(CHSPEC_CHANNEL(pi
->radio_chanspec
));
18100 paa_boost_tune
= 0xa;
18101 pada_boost_tune
= 0x77;
18102 pgaa_boost_tune
= 0xf;
18103 mixa_boost_tune
= 0xf;
18104 } else if (freq
< 5340) {
18106 paa_boost_tune
= 0x8;
18107 pada_boost_tune
= 0x77;
18108 pgaa_boost_tune
= 0xfb;
18109 mixa_boost_tune
= 0xf;
18110 } else if (freq
< 5650) {
18112 paa_boost_tune
= 0x0;
18113 pada_boost_tune
= 0x77;
18114 pgaa_boost_tune
= 0xb;
18115 mixa_boost_tune
= 0xf;
18118 paa_boost_tune
= 0x0;
18119 pada_boost_tune
= 0x77;
18120 if (freq
!= 5825) {
18121 pgaa_boost_tune
= -(int)(freq
- 18) / 36 + 168;
18123 pgaa_boost_tune
= 6;
18125 mixa_boost_tune
= 0xf;
18128 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
18129 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18130 INTPAA_BOOST_TUNE
, paa_boost_tune
);
18131 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18132 PADA_BOOST_TUNE
, pada_boost_tune
);
18133 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18134 PGAA_BOOST_TUNE
, pgaa_boost_tune
);
18135 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18136 MIXA_BOOST_TUNE
, mixa_boost_tune
);
18138 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18140 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18143 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18144 PADA_CASCBIAS
, 0x3);
18148 if ((pi
->sh
->chip
== BCM43224_CHIP_ID
) ||
18149 (pi
->sh
->chip
== BCM43225_CHIP_ID
)) {
18150 if (pi
->sh
->chippkg
== BCM43224_FAB_SMIC
) {
18155 pabias
= (pi
->phy_pabias
== 0) ? 0x30 : pi
->phy_pabias
;
18157 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18158 INTPAA_IAUX_STAT
, pabias
);
18159 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18160 INTPAA_IMAIN_STAT
, pabias
);
18161 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
18162 INTPAA_CASCBIAS
, cascbias
);
18168 wlc_phy_radio205x_vcocal_nphy(pi
);
18171 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy
*pi
)
18173 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18174 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_EN
, 0x01, 0x0);
18175 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_CAL_RESETN
, 0x04, 0x0);
18176 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_CAL_RESETN
, 0x04,
18178 mod_radio_reg(pi
, RADIO_2057_RFPLL_MISC_EN
, 0x01, 0x01);
18179 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
18180 write_radio_reg(pi
, RADIO_2056_SYN_PLL_VCOCAL12
, 0x0);
18181 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST3
, 0x38);
18182 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST3
, 0x18);
18183 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST3
, 0x38);
18184 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST3
, 0x39);
18190 #define MAX_205x_RCAL_WAITLOOPS 10000
18192 static u16
wlc_phy_radio205x_rcal(struct brcms_phy
*pi
)
18197 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18199 if (pi
->pubpi
.radiorev
== 5) {
18201 and_phy_reg(pi
, 0x342, ~(0x1 << 1));
18205 mod_radio_reg(pi
, RADIO_2057_IQTEST_SEL_PU
, 0x1, 0x1);
18206 mod_radio_reg(pi
, RADIO_2057v7_IQTEST_SEL_PU2
, 0x2,
18209 mod_radio_reg(pi
, RADIO_2057_RCAL_CONFIG
, 0x1, 0x1);
18213 mod_radio_reg(pi
, RADIO_2057_RCAL_CONFIG
, 0x3, 0x3);
18215 for (i
= 0; i
< MAX_205x_RCAL_WAITLOOPS
; i
++) {
18216 rcal_reg
= read_radio_reg(pi
, RADIO_2057_RCAL_STATUS
);
18217 if (rcal_reg
& 0x1) {
18223 if (WARN(i
== MAX_205x_RCAL_WAITLOOPS
,
18224 "HW error: radio calib2"))
18227 mod_radio_reg(pi
, RADIO_2057_RCAL_CONFIG
, 0x2, 0x0);
18229 rcal_reg
= read_radio_reg(pi
, RADIO_2057_RCAL_STATUS
) & 0x3e;
18231 mod_radio_reg(pi
, RADIO_2057_RCAL_CONFIG
, 0x1, 0x0);
18232 if (pi
->pubpi
.radiorev
== 5) {
18234 mod_radio_reg(pi
, RADIO_2057_IQTEST_SEL_PU
, 0x1, 0x0);
18235 mod_radio_reg(pi
, RADIO_2057v7_IQTEST_SEL_PU2
, 0x2,
18239 if ((pi
->pubpi
.radiorev
<= 4) || (pi
->pubpi
.radiorev
== 6)) {
18241 mod_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
, 0x3c,
18243 mod_radio_reg(pi
, RADIO_2057_BANDGAP_RCAL_TRIM
, 0xf0,
18247 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 3)) {
18252 RADIO_2056_SYN_PLL_MAST2
| RADIO_2056_SYN
);
18253 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST2
| RADIO_2056_SYN
,
18257 write_radio_reg(pi
, RADIO_2056_SYN_RCAL_MASTER
| RADIO_2056_SYN
,
18261 write_radio_reg(pi
, RADIO_2056_SYN_RCAL_MASTER
| RADIO_2056_SYN
,
18264 for (i
= 0; i
< MAX_205x_RCAL_WAITLOOPS
; i
++) {
18265 rcal_reg
= read_radio_reg(pi
,
18266 RADIO_2056_SYN_RCAL_CODE_OUT
|
18268 if (rcal_reg
& 0x80) {
18274 if (WARN(i
== MAX_205x_RCAL_WAITLOOPS
,
18275 "HW error: radio calib3"))
18278 write_radio_reg(pi
, RADIO_2056_SYN_RCAL_MASTER
| RADIO_2056_SYN
,
18283 RADIO_2056_SYN_RCAL_CODE_OUT
|
18286 write_radio_reg(pi
, RADIO_2056_SYN_RCAL_MASTER
| RADIO_2056_SYN
,
18289 write_radio_reg(pi
, RADIO_2056_SYN_PLL_MAST2
| RADIO_2056_SYN
,
18292 return rcal_reg
& 0x1f;
18294 return rcal_reg
& 0x3e;
18298 wlc_phy_chanspec_radio2057_setup(struct brcms_phy
*pi
,
18299 const struct chan_info_nphy_radio2057
*ci
,
18300 const struct chan_info_nphy_radio2057_rev5
*ci2
)
18303 u16 txmix2g_tune_boost_pu
= 0;
18304 u16 pad2g_tune_pus
= 0;
18306 if (pi
->pubpi
.radiorev
== 5) {
18308 write_radio_reg(pi
,
18309 RADIO_2057_VCOCAL_COUNTVAL0
,
18310 ci2
->RF_vcocal_countval0
);
18311 write_radio_reg(pi
, RADIO_2057_VCOCAL_COUNTVAL1
,
18312 ci2
->RF_vcocal_countval1
);
18313 write_radio_reg(pi
, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE
,
18314 ci2
->RF_rfpll_refmaster_sparextalsize
);
18315 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
18316 ci2
->RF_rfpll_loopfilter_r1
);
18317 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
18318 ci2
->RF_rfpll_loopfilter_c2
);
18319 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
18320 ci2
->RF_rfpll_loopfilter_c1
);
18321 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
,
18322 ci2
->RF_cp_kpd_idac
);
18323 write_radio_reg(pi
, RADIO_2057_RFPLL_MMD0
, ci2
->RF_rfpll_mmd0
);
18324 write_radio_reg(pi
, RADIO_2057_RFPLL_MMD1
, ci2
->RF_rfpll_mmd1
);
18325 write_radio_reg(pi
,
18326 RADIO_2057_VCOBUF_TUNE
, ci2
->RF_vcobuf_tune
);
18327 write_radio_reg(pi
,
18328 RADIO_2057_LOGEN_MX2G_TUNE
,
18329 ci2
->RF_logen_mx2g_tune
);
18330 write_radio_reg(pi
, RADIO_2057_LOGEN_INDBUF2G_TUNE
,
18331 ci2
->RF_logen_indbuf2g_tune
);
18333 write_radio_reg(pi
,
18334 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0
,
18335 ci2
->RF_txmix2g_tune_boost_pu_core0
);
18336 write_radio_reg(pi
,
18337 RADIO_2057_PAD2G_TUNE_PUS_CORE0
,
18338 ci2
->RF_pad2g_tune_pus_core0
);
18339 write_radio_reg(pi
, RADIO_2057_LNA2G_TUNE_CORE0
,
18340 ci2
->RF_lna2g_tune_core0
);
18342 write_radio_reg(pi
,
18343 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1
,
18344 ci2
->RF_txmix2g_tune_boost_pu_core1
);
18345 write_radio_reg(pi
,
18346 RADIO_2057_PAD2G_TUNE_PUS_CORE1
,
18347 ci2
->RF_pad2g_tune_pus_core1
);
18348 write_radio_reg(pi
, RADIO_2057_LNA2G_TUNE_CORE1
,
18349 ci2
->RF_lna2g_tune_core1
);
18353 write_radio_reg(pi
,
18354 RADIO_2057_VCOCAL_COUNTVAL0
,
18355 ci
->RF_vcocal_countval0
);
18356 write_radio_reg(pi
, RADIO_2057_VCOCAL_COUNTVAL1
,
18357 ci
->RF_vcocal_countval1
);
18358 write_radio_reg(pi
, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE
,
18359 ci
->RF_rfpll_refmaster_sparextalsize
);
18360 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
18361 ci
->RF_rfpll_loopfilter_r1
);
18362 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
18363 ci
->RF_rfpll_loopfilter_c2
);
18364 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
18365 ci
->RF_rfpll_loopfilter_c1
);
18366 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
, ci
->RF_cp_kpd_idac
);
18367 write_radio_reg(pi
, RADIO_2057_RFPLL_MMD0
, ci
->RF_rfpll_mmd0
);
18368 write_radio_reg(pi
, RADIO_2057_RFPLL_MMD1
, ci
->RF_rfpll_mmd1
);
18369 write_radio_reg(pi
, RADIO_2057_VCOBUF_TUNE
, ci
->RF_vcobuf_tune
);
18370 write_radio_reg(pi
,
18371 RADIO_2057_LOGEN_MX2G_TUNE
,
18372 ci
->RF_logen_mx2g_tune
);
18373 write_radio_reg(pi
, RADIO_2057_LOGEN_MX5G_TUNE
,
18374 ci
->RF_logen_mx5g_tune
);
18375 write_radio_reg(pi
, RADIO_2057_LOGEN_INDBUF2G_TUNE
,
18376 ci
->RF_logen_indbuf2g_tune
);
18377 write_radio_reg(pi
, RADIO_2057_LOGEN_INDBUF5G_TUNE
,
18378 ci
->RF_logen_indbuf5g_tune
);
18380 write_radio_reg(pi
,
18381 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0
,
18382 ci
->RF_txmix2g_tune_boost_pu_core0
);
18383 write_radio_reg(pi
,
18384 RADIO_2057_PAD2G_TUNE_PUS_CORE0
,
18385 ci
->RF_pad2g_tune_pus_core0
);
18386 write_radio_reg(pi
, RADIO_2057_PGA_BOOST_TUNE_CORE0
,
18387 ci
->RF_pga_boost_tune_core0
);
18388 write_radio_reg(pi
, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0
,
18389 ci
->RF_txmix5g_boost_tune_core0
);
18390 write_radio_reg(pi
, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0
,
18391 ci
->RF_pad5g_tune_misc_pus_core0
);
18392 write_radio_reg(pi
, RADIO_2057_LNA2G_TUNE_CORE0
,
18393 ci
->RF_lna2g_tune_core0
);
18394 write_radio_reg(pi
, RADIO_2057_LNA5G_TUNE_CORE0
,
18395 ci
->RF_lna5g_tune_core0
);
18397 write_radio_reg(pi
,
18398 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1
,
18399 ci
->RF_txmix2g_tune_boost_pu_core1
);
18400 write_radio_reg(pi
,
18401 RADIO_2057_PAD2G_TUNE_PUS_CORE1
,
18402 ci
->RF_pad2g_tune_pus_core1
);
18403 write_radio_reg(pi
, RADIO_2057_PGA_BOOST_TUNE_CORE1
,
18404 ci
->RF_pga_boost_tune_core1
);
18405 write_radio_reg(pi
, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1
,
18406 ci
->RF_txmix5g_boost_tune_core1
);
18407 write_radio_reg(pi
, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1
,
18408 ci
->RF_pad5g_tune_misc_pus_core1
);
18409 write_radio_reg(pi
, RADIO_2057_LNA2G_TUNE_CORE1
,
18410 ci
->RF_lna2g_tune_core1
);
18411 write_radio_reg(pi
, RADIO_2057_LNA5G_TUNE_CORE1
,
18412 ci
->RF_lna5g_tune_core1
);
18415 if ((pi
->pubpi
.radiorev
<= 4) || (pi
->pubpi
.radiorev
== 6)) {
18417 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
18418 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
18420 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
, 0x3f);
18421 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
18423 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
18426 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
18428 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
, 0x3f);
18429 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
18431 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
18434 } else if ((pi
->pubpi
.radiorev
== 5) || (pi
->pubpi
.radiorev
== 7) ||
18435 (pi
->pubpi
.radiorev
== 8)) {
18437 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
18438 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
18440 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
, 0x30);
18441 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
18443 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
18446 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_R1
,
18448 write_radio_reg(pi
, RADIO_2057_CP_KPD_IDAC
, 0x3f);
18449 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C1
,
18451 write_radio_reg(pi
, RADIO_2057_RFPLL_LOOPFILTER_C2
,
18457 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
18459 if (pi
->pubpi
.radiorev
== 3) {
18460 txmix2g_tune_boost_pu
= 0x6b;
18463 if (pi
->pubpi
.radiorev
== 5)
18464 pad2g_tune_pus
= 0x73;
18467 if (pi
->pubpi
.radiorev
!= 5) {
18468 pad2g_tune_pus
= 0x3;
18470 txmix2g_tune_boost_pu
= 0x61;
18474 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
18476 if (txmix2g_tune_boost_pu
!= 0)
18477 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
, coreNum
,
18478 TXMIX2G_TUNE_BOOST_PU
,
18479 txmix2g_tune_boost_pu
);
18481 if (pad2g_tune_pus
!= 0)
18482 WRITE_RADIO_REG4(pi
, RADIO_2057
, CORE
, coreNum
,
18490 wlc_phy_radio205x_vcocal_nphy(pi
);
18493 static u16
wlc_phy_radio2057_rccal(struct brcms_phy
*pi
)
18497 bool chip43226_6362A0
;
18499 chip43226_6362A0
= ((pi
->pubpi
.radiorev
== 3)
18500 || (pi
->pubpi
.radiorev
== 4)
18501 || (pi
->pubpi
.radiorev
== 6));
18504 if (chip43226_6362A0
) {
18505 write_radio_reg(pi
, RADIO_2057_RCCAL_MASTER
, 0x61);
18506 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0xc0);
18508 write_radio_reg(pi
, RADIO_2057v7_RCCAL_MASTER
, 0x61);
18510 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0xe9);
18512 write_radio_reg(pi
, RADIO_2057_RCCAL_X1
, 0x6e);
18513 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x55);
18515 for (i
= 0; i
< MAX_205x_RCAL_WAITLOOPS
; i
++) {
18516 rccal_valid
= read_radio_reg(pi
, RADIO_2057_RCCAL_DONE_OSCCAP
);
18517 if (rccal_valid
& 0x2) {
18523 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x15);
18526 if (chip43226_6362A0
) {
18527 write_radio_reg(pi
, RADIO_2057_RCCAL_MASTER
, 0x69);
18528 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0xb0);
18530 write_radio_reg(pi
, RADIO_2057v7_RCCAL_MASTER
, 0x69);
18532 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0xd5);
18534 write_radio_reg(pi
, RADIO_2057_RCCAL_X1
, 0x6e);
18535 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x55);
18537 for (i
= 0; i
< MAX_205x_RCAL_WAITLOOPS
; i
++) {
18538 rccal_valid
= read_radio_reg(pi
, RADIO_2057_RCCAL_DONE_OSCCAP
);
18539 if (rccal_valid
& 0x2) {
18545 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x15);
18548 if (chip43226_6362A0
) {
18549 write_radio_reg(pi
, RADIO_2057_RCCAL_MASTER
, 0x73);
18551 write_radio_reg(pi
, RADIO_2057_RCCAL_X1
, 0x28);
18552 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0xb0);
18554 write_radio_reg(pi
, RADIO_2057v7_RCCAL_MASTER
, 0x73);
18555 write_radio_reg(pi
, RADIO_2057_RCCAL_X1
, 0x6e);
18556 write_radio_reg(pi
, RADIO_2057_RCCAL_TRC0
, 0x99);
18558 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x55);
18560 for (i
= 0; i
< MAX_205x_RCAL_WAITLOOPS
; i
++) {
18561 rccal_valid
= read_radio_reg(pi
, RADIO_2057_RCCAL_DONE_OSCCAP
);
18562 if (rccal_valid
& 0x2) {
18568 if (WARN(!(rccal_valid
& 0x2), "HW error: radio calib4"))
18571 write_radio_reg(pi
, RADIO_2057_RCCAL_START_R1_Q1_P1
, 0x15);
18573 return rccal_valid
;
18577 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy
*pi
, u16 reduction_factr
)
18579 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
18580 if ((CHSPEC_CHANNEL(pi
->radio_chanspec
) == 11) &&
18581 CHSPEC_IS40(pi
->radio_chanspec
)) {
18582 if (!pi
->nphy_anarxlpf_adjusted
) {
18583 write_radio_reg(pi
,
18584 (RADIO_2056_RX_RXLPF_RCCAL_LPC
|
18586 ((pi
->nphy_rccal_value
+
18587 reduction_factr
) | 0x80));
18589 pi
->nphy_anarxlpf_adjusted
= true;
18592 if (pi
->nphy_anarxlpf_adjusted
) {
18593 write_radio_reg(pi
,
18594 (RADIO_2056_RX_RXLPF_RCCAL_LPC
|
18596 (pi
->nphy_rccal_value
| 0x80));
18598 pi
->nphy_anarxlpf_adjusted
= false;
18605 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy
*pi
, int ntones
,
18606 int *tone_id_buf
, u32
*noise_var_buf
)
18613 radio_chanspec
) ? NPHY_NOISEVAR_TBLLEN40
:
18614 NPHY_NOISEVAR_TBLLEN20
;
18616 if (pi
->nphy_noisevars_adjusted
) {
18617 for (i
= 0; i
< pi
->nphy_saved_noisevars
.bufcount
; i
++) {
18618 tone_id
= pi
->nphy_saved_noisevars
.tone_id
[i
];
18619 offset
= (tone_id
>= 0) ?
18620 ((tone_id
* 2) + 1) : (tbllen
+ (tone_id
* 2) + 1);
18621 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
18624 nphy_saved_noisevars
.
18625 min_noise_vars
[i
]);
18628 pi
->nphy_saved_noisevars
.bufcount
= 0;
18629 pi
->nphy_noisevars_adjusted
= false;
18632 if ((noise_var_buf
!= NULL
) && (tone_id_buf
!= NULL
)) {
18633 pi
->nphy_saved_noisevars
.bufcount
= 0;
18635 for (i
= 0; i
< ntones
; i
++) {
18636 tone_id
= tone_id_buf
[i
];
18637 offset
= (tone_id
>= 0) ?
18638 ((tone_id
* 2) + 1) : (tbllen
+ (tone_id
* 2) + 1);
18639 pi
->nphy_saved_noisevars
.tone_id
[i
] = tone_id
;
18640 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
18642 &pi
->nphy_saved_noisevars
.
18643 min_noise_vars
[i
]);
18644 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_NOISEVAR
, 1,
18646 (void *)&noise_var_buf
[i
]);
18647 pi
->nphy_saved_noisevars
.bufcount
++;
18650 pi
->nphy_noisevars_adjusted
= true;
18654 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy
*pi
, u8 minpwr
)
18658 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
18659 if ((CHSPEC_CHANNEL(pi
->radio_chanspec
) == 11) &&
18660 CHSPEC_IS40(pi
->radio_chanspec
)) {
18661 if (!pi
->nphy_crsminpwr_adjusted
) {
18662 regval
= read_phy_reg(pi
, 0x27d);
18663 pi
->nphy_crsminpwr
[0] = regval
& 0xff;
18665 regval
|= (u16
) minpwr
;
18666 write_phy_reg(pi
, 0x27d, regval
);
18668 regval
= read_phy_reg(pi
, 0x280);
18669 pi
->nphy_crsminpwr
[1] = regval
& 0xff;
18671 regval
|= (u16
) minpwr
;
18672 write_phy_reg(pi
, 0x280, regval
);
18674 regval
= read_phy_reg(pi
, 0x283);
18675 pi
->nphy_crsminpwr
[2] = regval
& 0xff;
18677 regval
|= (u16
) minpwr
;
18678 write_phy_reg(pi
, 0x283, regval
);
18680 pi
->nphy_crsminpwr_adjusted
= true;
18683 if (pi
->nphy_crsminpwr_adjusted
) {
18684 regval
= read_phy_reg(pi
, 0x27d);
18686 regval
|= pi
->nphy_crsminpwr
[0];
18687 write_phy_reg(pi
, 0x27d, regval
);
18689 regval
= read_phy_reg(pi
, 0x280);
18691 regval
|= pi
->nphy_crsminpwr
[1];
18692 write_phy_reg(pi
, 0x280, regval
);
18694 regval
= read_phy_reg(pi
, 0x283);
18696 regval
|= pi
->nphy_crsminpwr
[2];
18697 write_phy_reg(pi
, 0x283, regval
);
18699 pi
->nphy_crsminpwr_adjusted
= false;
18705 static void wlc_phy_txlpfbw_nphy(struct brcms_phy
*pi
)
18709 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
18710 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
18717 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
18723 write_phy_reg(pi
, 0xe8,
18726 (tx_lpf_bw
<< 6) | (tx_lpf_bw
<< 9));
18730 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
18736 write_phy_reg(pi
, 0xe9,
18739 (tx_lpf_bw
<< 6) | (tx_lpf_bw
<< 9));
18744 static void wlc_phy_spurwar_nphy(struct brcms_phy
*pi
)
18746 u16 cur_channel
= 0;
18747 int nphy_adj_tone_id_buf
[] = { 57, 58 };
18748 u32 nphy_adj_noise_var_buf
[] = { 0x3ff, 0x3ff };
18749 bool isAdjustNoiseVar
= false;
18750 uint numTonesAdjust
= 0;
18753 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
18754 if (pi
->phyhang_avoid
)
18755 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
18757 cur_channel
= CHSPEC_CHANNEL(pi
->radio_chanspec
);
18759 if (pi
->nphy_gband_spurwar_en
) {
18761 wlc_phy_adjust_rx_analpfbw_nphy(pi
,
18762 NPHY_ANARXLPFBW_REDUCTIONFACT
);
18764 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
18765 if ((cur_channel
== 11)
18766 && CHSPEC_IS40(pi
->radio_chanspec
)) {
18768 wlc_phy_adjust_min_noisevar_nphy(pi
, 2,
18769 nphy_adj_tone_id_buf
,
18770 nphy_adj_noise_var_buf
);
18773 wlc_phy_adjust_min_noisevar_nphy(pi
, 0,
18778 wlc_phy_adjust_crsminpwr_nphy(pi
,
18779 NPHY_ADJUSTED_MINCRSPOWER
);
18782 if ((pi
->nphy_gband_spurwar2_en
)
18783 && CHSPEC_IS2G(pi
->radio_chanspec
)) {
18785 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
18786 switch (cur_channel
) {
18788 nphy_adj_tone_id_buf
[0] = 57;
18789 nphy_adj_tone_id_buf
[1] = 58;
18790 nphy_adj_noise_var_buf
[0] = 0x22f;
18791 nphy_adj_noise_var_buf
[1] = 0x25f;
18792 isAdjustNoiseVar
= true;
18795 nphy_adj_tone_id_buf
[0] = 41;
18796 nphy_adj_tone_id_buf
[1] = 42;
18797 nphy_adj_noise_var_buf
[0] = 0x22f;
18798 nphy_adj_noise_var_buf
[1] = 0x25f;
18799 isAdjustNoiseVar
= true;
18802 nphy_adj_tone_id_buf
[0] = 25;
18803 nphy_adj_tone_id_buf
[1] = 26;
18804 nphy_adj_noise_var_buf
[0] = 0x24f;
18805 nphy_adj_noise_var_buf
[1] = 0x25f;
18806 isAdjustNoiseVar
= true;
18809 nphy_adj_tone_id_buf
[0] = 9;
18810 nphy_adj_tone_id_buf
[1] = 10;
18811 nphy_adj_noise_var_buf
[0] = 0x22f;
18812 nphy_adj_noise_var_buf
[1] = 0x24f;
18813 isAdjustNoiseVar
= true;
18816 nphy_adj_tone_id_buf
[0] = 121;
18817 nphy_adj_tone_id_buf
[1] = 122;
18818 nphy_adj_noise_var_buf
[0] = 0x18f;
18819 nphy_adj_noise_var_buf
[1] = 0x24f;
18820 isAdjustNoiseVar
= true;
18823 nphy_adj_tone_id_buf
[0] = 105;
18824 nphy_adj_tone_id_buf
[1] = 106;
18825 nphy_adj_noise_var_buf
[0] = 0x22f;
18826 nphy_adj_noise_var_buf
[1] = 0x25f;
18827 isAdjustNoiseVar
= true;
18830 nphy_adj_tone_id_buf
[0] = 89;
18831 nphy_adj_tone_id_buf
[1] = 90;
18832 nphy_adj_noise_var_buf
[0] = 0x22f;
18833 nphy_adj_noise_var_buf
[1] = 0x24f;
18834 isAdjustNoiseVar
= true;
18837 nphy_adj_tone_id_buf
[0] = 73;
18838 nphy_adj_tone_id_buf
[1] = 74;
18839 nphy_adj_noise_var_buf
[0] = 0x22f;
18840 nphy_adj_noise_var_buf
[1] = 0x24f;
18841 isAdjustNoiseVar
= true;
18844 isAdjustNoiseVar
= false;
18849 if (isAdjustNoiseVar
) {
18850 numTonesAdjust
= sizeof(nphy_adj_tone_id_buf
) /
18851 sizeof(nphy_adj_tone_id_buf
[0]);
18853 wlc_phy_adjust_min_noisevar_nphy(pi
,
18855 nphy_adj_tone_id_buf
,
18856 nphy_adj_noise_var_buf
);
18862 wlc_phy_adjust_min_noisevar_nphy(pi
, 0, NULL
,
18867 if ((pi
->nphy_aband_spurwar_en
) &&
18868 (CHSPEC_IS5G(pi
->radio_chanspec
))) {
18869 switch (cur_channel
) {
18871 nphy_adj_tone_id_buf
[0] = 32;
18872 nphy_adj_noise_var_buf
[0] = 0x25f;
18877 nphy_adj_tone_id_buf
[0] = 0;
18878 nphy_adj_noise_var_buf
[0] = 0x0;
18881 nphy_adj_tone_id_buf
[0] = 32;
18882 nphy_adj_noise_var_buf
[0] = 0x21f;
18885 nphy_adj_tone_id_buf
[0] = 16;
18886 nphy_adj_noise_var_buf
[0] = 0x23f;
18890 nphy_adj_tone_id_buf
[0] = 48;
18891 nphy_adj_noise_var_buf
[0] = 0x23f;
18894 nphy_adj_tone_id_buf
[0] = 0;
18895 nphy_adj_noise_var_buf
[0] = 0x0;
18899 if (nphy_adj_tone_id_buf
[0]
18900 && nphy_adj_noise_var_buf
[0]) {
18901 wlc_phy_adjust_min_noisevar_nphy(pi
, 1,
18902 nphy_adj_tone_id_buf
,
18903 nphy_adj_noise_var_buf
);
18905 wlc_phy_adjust_min_noisevar_nphy(pi
, 0, NULL
,
18910 if (pi
->phyhang_avoid
)
18911 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
18916 wlc_phy_chanspec_nphy_setup(struct brcms_phy
*pi
, chanspec_t chanspec
,
18917 const struct nphy_sfo_cfg
*ci
)
18921 val
= read_phy_reg(pi
, 0x09) & NPHY_BandControl_currentBand
;
18922 if (CHSPEC_IS5G(chanspec
) && !val
) {
18924 val
= R_REG(&pi
->regs
->psm_phy_hdr_param
);
18925 W_REG(&pi
->regs
->psm_phy_hdr_param
,
18926 (val
| MAC_PHY_FORCE_CLK
));
18928 or_phy_reg(pi
, (NPHY_TO_BPHY_OFF
+ BPHY_BB_CONFIG
),
18929 (BBCFG_RESETCCA
| BBCFG_RESETRX
));
18931 W_REG(&pi
->regs
->psm_phy_hdr_param
, val
);
18933 or_phy_reg(pi
, 0x09, NPHY_BandControl_currentBand
);
18934 } else if (!CHSPEC_IS5G(chanspec
) && val
) {
18936 and_phy_reg(pi
, 0x09, ~NPHY_BandControl_currentBand
);
18938 val
= R_REG(&pi
->regs
->psm_phy_hdr_param
);
18939 W_REG(&pi
->regs
->psm_phy_hdr_param
,
18940 (val
| MAC_PHY_FORCE_CLK
));
18942 and_phy_reg(pi
, (NPHY_TO_BPHY_OFF
+ BPHY_BB_CONFIG
),
18943 (u16
) (~(BBCFG_RESETCCA
| BBCFG_RESETRX
)));
18945 W_REG(&pi
->regs
->psm_phy_hdr_param
, val
);
18948 write_phy_reg(pi
, 0x1ce, ci
->PHY_BW1a
);
18949 write_phy_reg(pi
, 0x1cf, ci
->PHY_BW2
);
18950 write_phy_reg(pi
, 0x1d0, ci
->PHY_BW3
);
18952 write_phy_reg(pi
, 0x1d1, ci
->PHY_BW4
);
18953 write_phy_reg(pi
, 0x1d2, ci
->PHY_BW5
);
18954 write_phy_reg(pi
, 0x1d3, ci
->PHY_BW6
);
18956 if (CHSPEC_CHANNEL(pi
->radio_chanspec
) == 14) {
18957 wlc_phy_classifier_nphy(pi
, NPHY_ClassifierCtrl_ofdm_en
, 0);
18959 or_phy_reg(pi
, NPHY_TO_BPHY_OFF
+ BPHY_TEST
, 0x800);
18961 wlc_phy_classifier_nphy(pi
, NPHY_ClassifierCtrl_ofdm_en
,
18962 NPHY_ClassifierCtrl_ofdm_en
);
18964 if (CHSPEC_IS2G(chanspec
))
18965 and_phy_reg(pi
, NPHY_TO_BPHY_OFF
+ BPHY_TEST
, ~0x840);
18968 if (pi
->nphy_txpwrctrl
== PHY_TPC_HW_OFF
) {
18969 wlc_phy_txpwr_fixpower_nphy(pi
);
18972 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
18974 wlc_phy_adjust_lnagaintbl_nphy(pi
);
18977 wlc_phy_txlpfbw_nphy(pi
);
18979 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)
18980 && (pi
->phy_spuravoid
!= SPURAVOID_DISABLE
)) {
18983 val
= CHSPEC_CHANNEL(chanspec
);
18984 if (!CHSPEC_IS40(pi
->radio_chanspec
)) {
18985 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
18986 if ((val
== 13) || (val
== 14) || (val
== 153)) {
18991 if (((val
>= 5) && (val
<= 8)) || (val
== 13)
18997 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19003 if (pi
->nphy_aband_spurwar_en
&&
19004 ((val
== 38) || (val
== 102)
19010 if (pi
->phy_spuravoid
== SPURAVOID_FORCEON
)
19013 wlapi_bmac_core_phypll_ctl(pi
->sh
->physhim
, false);
19014 si_pmu_spuravoid(pi
->sh
->sih
, spuravoid
);
19015 wlapi_bmac_core_phypll_ctl(pi
->sh
->physhim
, true);
19017 if ((pi
->sh
->chip
== BCM43224_CHIP_ID
) ||
19018 (pi
->sh
->chip
== BCM43225_CHIP_ID
)) {
19020 if (spuravoid
== 1) {
19022 W_REG(&pi
->regs
->tsf_clk_frac_l
,
19024 W_REG(&pi
->regs
->tsf_clk_frac_h
,
19028 W_REG(&pi
->regs
->tsf_clk_frac_l
,
19030 W_REG(&pi
->regs
->tsf_clk_frac_h
,
19035 wlapi_bmac_core_phypll_reset(pi
->sh
->physhim
);
19037 mod_phy_reg(pi
, 0x01, (0x1 << 15),
19038 ((spuravoid
> 0) ? (0x1 << 15) : 0));
19040 wlc_phy_resetcca_nphy(pi
);
19042 pi
->phy_isspuravoid
= (spuravoid
> 0);
19045 if (NREV_LT(pi
->pubpi
.phy_rev
, 7))
19046 write_phy_reg(pi
, 0x17e, 0x3830);
19048 wlc_phy_spurwar_nphy(pi
);
19051 void wlc_phy_chanspec_set_nphy(struct brcms_phy
*pi
, chanspec_t chanspec
)
19054 struct chan_info_nphy_radio2057
*t0
= NULL
;
19055 struct chan_info_nphy_radio205x
*t1
= NULL
;
19056 struct chan_info_nphy_radio2057_rev5
*t2
= NULL
;
19057 struct chan_info_nphy_2055
*t3
= NULL
;
19059 if (NORADIO_ENAB(pi
->pubpi
)) {
19063 if (!wlc_phy_chan2freq_nphy
19064 (pi
, CHSPEC_CHANNEL(chanspec
), &freq
, &t0
, &t1
, &t2
, &t3
))
19067 wlc_phy_chanspec_radio_set((struct brcms_phy_pub
*) pi
, chanspec
);
19069 if (CHSPEC_BW(chanspec
) != pi
->bw
)
19070 wlapi_bmac_bw_set(pi
->sh
->physhim
, CHSPEC_BW(chanspec
));
19072 if (CHSPEC_IS40(chanspec
)) {
19073 if (CHSPEC_SB_UPPER(chanspec
)) {
19074 or_phy_reg(pi
, 0xa0, BPHY_BAND_SEL_UP20
);
19075 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19076 or_phy_reg(pi
, 0x310, PRIM_SEL_UP20
);
19079 and_phy_reg(pi
, 0xa0, ~BPHY_BAND_SEL_UP20
);
19080 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19081 and_phy_reg(pi
, 0x310,
19082 (~PRIM_SEL_UP20
& 0xffff));
19087 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19088 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19090 if ((pi
->pubpi
.radiorev
<= 4)
19091 || (pi
->pubpi
.radiorev
== 6)) {
19092 mod_radio_reg(pi
, RADIO_2057_TIA_CONFIG_CORE0
,
19094 (CHSPEC_IS5G(chanspec
) ? (1 << 1)
19096 mod_radio_reg(pi
, RADIO_2057_TIA_CONFIG_CORE1
,
19098 (CHSPEC_IS5G(chanspec
) ? (1 << 1)
19102 wlc_phy_chanspec_radio2057_setup(pi
, t0
, t2
);
19103 wlc_phy_chanspec_nphy_setup(pi
, chanspec
,
19104 (pi
->pubpi
.radiorev
== 5) ?
19105 (const struct nphy_sfo_cfg
*)&(t2
->PHY_BW1a
) :
19106 (const struct nphy_sfo_cfg
*)&(t0
->PHY_BW1a
));
19111 RADIO_2056_SYN_COM_CTRL
| RADIO_2056_SYN
,
19113 (CHSPEC_IS5G(chanspec
) ? (0x1 << 2) : 0));
19114 wlc_phy_chanspec_radio2056_setup(pi
, t1
);
19116 wlc_phy_chanspec_nphy_setup(pi
, chanspec
,
19117 (const struct nphy_sfo_cfg
*) &(t1
->PHY_BW1a
));
19122 mod_radio_reg(pi
, RADIO_2055_MASTER_CNTRL1
, 0x70,
19123 (CHSPEC_IS5G(chanspec
) ? (0x02 << 4)
19126 wlc_phy_chanspec_radio2055_setup(pi
, t3
);
19127 wlc_phy_chanspec_nphy_setup(pi
, chanspec
,
19128 (const struct nphy_sfo_cfg
*)&(t3
->
19134 static void wlc_phy_savecal_nphy(struct brcms_phy
*pi
)
19138 u16
*txcal_radio_regs
= NULL
;
19140 if (pi
->phyhang_avoid
)
19141 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
19143 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
19145 wlc_phy_rx_iq_coeffs_nphy(pi
, 0,
19146 &pi
->calibration_cache
.
19149 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19151 pi
->calibration_cache
.txcal_radio_regs_2G
;
19152 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19154 pi
->calibration_cache
.txcal_radio_regs_2G
[0] =
19156 RADIO_2056_TX_LOFT_FINE_I
|
19158 pi
->calibration_cache
.txcal_radio_regs_2G
[1] =
19160 RADIO_2056_TX_LOFT_FINE_Q
|
19162 pi
->calibration_cache
.txcal_radio_regs_2G
[2] =
19164 RADIO_2056_TX_LOFT_FINE_I
|
19166 pi
->calibration_cache
.txcal_radio_regs_2G
[3] =
19168 RADIO_2056_TX_LOFT_FINE_Q
|
19171 pi
->calibration_cache
.txcal_radio_regs_2G
[4] =
19173 RADIO_2056_TX_LOFT_COARSE_I
|
19175 pi
->calibration_cache
.txcal_radio_regs_2G
[5] =
19177 RADIO_2056_TX_LOFT_COARSE_Q
|
19179 pi
->calibration_cache
.txcal_radio_regs_2G
[6] =
19181 RADIO_2056_TX_LOFT_COARSE_I
|
19183 pi
->calibration_cache
.txcal_radio_regs_2G
[7] =
19185 RADIO_2056_TX_LOFT_COARSE_Q
|
19188 pi
->calibration_cache
.txcal_radio_regs_2G
[0] =
19189 read_radio_reg(pi
, RADIO_2055_CORE1_TX_VOS_CNCL
);
19190 pi
->calibration_cache
.txcal_radio_regs_2G
[1] =
19191 read_radio_reg(pi
, RADIO_2055_CORE2_TX_VOS_CNCL
);
19192 pi
->calibration_cache
.txcal_radio_regs_2G
[2] =
19193 read_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
);
19194 pi
->calibration_cache
.txcal_radio_regs_2G
[3] =
19195 read_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
);
19198 pi
->nphy_iqcal_chanspec_2G
= pi
->radio_chanspec
;
19199 tbl_ptr
= pi
->calibration_cache
.txcal_coeffs_2G
;
19202 wlc_phy_rx_iq_coeffs_nphy(pi
, 0,
19203 &pi
->calibration_cache
.
19206 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19208 pi
->calibration_cache
.txcal_radio_regs_5G
;
19209 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19211 pi
->calibration_cache
.txcal_radio_regs_5G
[0] =
19213 RADIO_2056_TX_LOFT_FINE_I
|
19215 pi
->calibration_cache
.txcal_radio_regs_5G
[1] =
19217 RADIO_2056_TX_LOFT_FINE_Q
|
19219 pi
->calibration_cache
.txcal_radio_regs_5G
[2] =
19221 RADIO_2056_TX_LOFT_FINE_I
|
19223 pi
->calibration_cache
.txcal_radio_regs_5G
[3] =
19225 RADIO_2056_TX_LOFT_FINE_Q
|
19228 pi
->calibration_cache
.txcal_radio_regs_5G
[4] =
19230 RADIO_2056_TX_LOFT_COARSE_I
|
19232 pi
->calibration_cache
.txcal_radio_regs_5G
[5] =
19234 RADIO_2056_TX_LOFT_COARSE_Q
|
19236 pi
->calibration_cache
.txcal_radio_regs_5G
[6] =
19238 RADIO_2056_TX_LOFT_COARSE_I
|
19240 pi
->calibration_cache
.txcal_radio_regs_5G
[7] =
19242 RADIO_2056_TX_LOFT_COARSE_Q
|
19245 pi
->calibration_cache
.txcal_radio_regs_5G
[0] =
19246 read_radio_reg(pi
, RADIO_2055_CORE1_TX_VOS_CNCL
);
19247 pi
->calibration_cache
.txcal_radio_regs_5G
[1] =
19248 read_radio_reg(pi
, RADIO_2055_CORE2_TX_VOS_CNCL
);
19249 pi
->calibration_cache
.txcal_radio_regs_5G
[2] =
19250 read_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
);
19251 pi
->calibration_cache
.txcal_radio_regs_5G
[3] =
19252 read_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
);
19255 pi
->nphy_iqcal_chanspec_5G
= pi
->radio_chanspec
;
19256 tbl_ptr
= pi
->calibration_cache
.txcal_coeffs_5G
;
19258 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19259 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
19261 txcal_radio_regs
[2 * coreNum
] =
19262 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
19264 txcal_radio_regs
[2 * coreNum
+ 1] =
19265 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
19268 txcal_radio_regs
[2 * coreNum
+ 4] =
19269 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
19271 txcal_radio_regs
[2 * coreNum
+ 5] =
19272 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
19277 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 8, 80, 16, tbl_ptr
);
19279 if (pi
->phyhang_avoid
)
19280 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
19283 static void wlc_phy_restorecal_nphy(struct brcms_phy
*pi
)
19286 u16 txcal_coeffs_bphy
[4];
19289 u16
*txcal_radio_regs
= NULL
;
19291 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
19292 if (pi
->nphy_iqcal_chanspec_2G
== 0)
19295 tbl_ptr
= pi
->calibration_cache
.txcal_coeffs_2G
;
19296 loft_comp
= &pi
->calibration_cache
.txcal_coeffs_2G
[5];
19298 if (pi
->nphy_iqcal_chanspec_5G
== 0)
19301 tbl_ptr
= pi
->calibration_cache
.txcal_coeffs_5G
;
19302 loft_comp
= &pi
->calibration_cache
.txcal_coeffs_5G
[5];
19305 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 80, 16,
19308 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19309 txcal_coeffs_bphy
[0] = tbl_ptr
[0];
19310 txcal_coeffs_bphy
[1] = tbl_ptr
[1];
19311 txcal_coeffs_bphy
[2] = tbl_ptr
[2];
19312 txcal_coeffs_bphy
[3] = tbl_ptr
[3];
19314 txcal_coeffs_bphy
[0] = 0;
19315 txcal_coeffs_bphy
[1] = 0;
19316 txcal_coeffs_bphy
[2] = 0;
19317 txcal_coeffs_bphy
[3] = 0;
19320 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 88, 16,
19321 txcal_coeffs_bphy
);
19323 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 85, 16, loft_comp
);
19325 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 93, 16, loft_comp
);
19327 if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
19328 wlc_phy_tx_iq_war_nphy(pi
);
19330 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
19331 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19333 pi
->calibration_cache
.txcal_radio_regs_2G
;
19334 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19336 write_radio_reg(pi
,
19337 RADIO_2056_TX_LOFT_FINE_I
|
19339 pi
->calibration_cache
.
19340 txcal_radio_regs_2G
[0]);
19341 write_radio_reg(pi
,
19342 RADIO_2056_TX_LOFT_FINE_Q
|
19344 pi
->calibration_cache
.
19345 txcal_radio_regs_2G
[1]);
19346 write_radio_reg(pi
,
19347 RADIO_2056_TX_LOFT_FINE_I
|
19349 pi
->calibration_cache
.
19350 txcal_radio_regs_2G
[2]);
19351 write_radio_reg(pi
,
19352 RADIO_2056_TX_LOFT_FINE_Q
|
19354 pi
->calibration_cache
.
19355 txcal_radio_regs_2G
[3]);
19357 write_radio_reg(pi
,
19358 RADIO_2056_TX_LOFT_COARSE_I
|
19360 pi
->calibration_cache
.
19361 txcal_radio_regs_2G
[4]);
19362 write_radio_reg(pi
,
19363 RADIO_2056_TX_LOFT_COARSE_Q
|
19365 pi
->calibration_cache
.
19366 txcal_radio_regs_2G
[5]);
19367 write_radio_reg(pi
,
19368 RADIO_2056_TX_LOFT_COARSE_I
|
19370 pi
->calibration_cache
.
19371 txcal_radio_regs_2G
[6]);
19372 write_radio_reg(pi
,
19373 RADIO_2056_TX_LOFT_COARSE_Q
|
19375 pi
->calibration_cache
.
19376 txcal_radio_regs_2G
[7]);
19378 write_radio_reg(pi
, RADIO_2055_CORE1_TX_VOS_CNCL
,
19379 pi
->calibration_cache
.
19380 txcal_radio_regs_2G
[0]);
19381 write_radio_reg(pi
, RADIO_2055_CORE2_TX_VOS_CNCL
,
19382 pi
->calibration_cache
.
19383 txcal_radio_regs_2G
[1]);
19384 write_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
,
19385 pi
->calibration_cache
.
19386 txcal_radio_regs_2G
[2]);
19387 write_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
,
19388 pi
->calibration_cache
.
19389 txcal_radio_regs_2G
[3]);
19392 wlc_phy_rx_iq_coeffs_nphy(pi
, 1,
19393 &pi
->calibration_cache
.
19396 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19398 pi
->calibration_cache
.txcal_radio_regs_5G
;
19399 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19401 write_radio_reg(pi
,
19402 RADIO_2056_TX_LOFT_FINE_I
|
19404 pi
->calibration_cache
.
19405 txcal_radio_regs_5G
[0]);
19406 write_radio_reg(pi
,
19407 RADIO_2056_TX_LOFT_FINE_Q
|
19409 pi
->calibration_cache
.
19410 txcal_radio_regs_5G
[1]);
19411 write_radio_reg(pi
,
19412 RADIO_2056_TX_LOFT_FINE_I
|
19414 pi
->calibration_cache
.
19415 txcal_radio_regs_5G
[2]);
19416 write_radio_reg(pi
,
19417 RADIO_2056_TX_LOFT_FINE_Q
|
19419 pi
->calibration_cache
.
19420 txcal_radio_regs_5G
[3]);
19422 write_radio_reg(pi
,
19423 RADIO_2056_TX_LOFT_COARSE_I
|
19425 pi
->calibration_cache
.
19426 txcal_radio_regs_5G
[4]);
19427 write_radio_reg(pi
,
19428 RADIO_2056_TX_LOFT_COARSE_Q
|
19430 pi
->calibration_cache
.
19431 txcal_radio_regs_5G
[5]);
19432 write_radio_reg(pi
,
19433 RADIO_2056_TX_LOFT_COARSE_I
|
19435 pi
->calibration_cache
.
19436 txcal_radio_regs_5G
[6]);
19437 write_radio_reg(pi
,
19438 RADIO_2056_TX_LOFT_COARSE_Q
|
19440 pi
->calibration_cache
.
19441 txcal_radio_regs_5G
[7]);
19443 write_radio_reg(pi
, RADIO_2055_CORE1_TX_VOS_CNCL
,
19444 pi
->calibration_cache
.
19445 txcal_radio_regs_5G
[0]);
19446 write_radio_reg(pi
, RADIO_2055_CORE2_TX_VOS_CNCL
,
19447 pi
->calibration_cache
.
19448 txcal_radio_regs_5G
[1]);
19449 write_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
,
19450 pi
->calibration_cache
.
19451 txcal_radio_regs_5G
[2]);
19452 write_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
,
19453 pi
->calibration_cache
.
19454 txcal_radio_regs_5G
[3]);
19457 wlc_phy_rx_iq_coeffs_nphy(pi
, 1,
19458 &pi
->calibration_cache
.
19462 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19463 for (coreNum
= 0; coreNum
<= 1; coreNum
++) {
19465 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
19467 txcal_radio_regs
[2 * coreNum
]);
19468 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
19470 txcal_radio_regs
[2 * coreNum
+ 1]);
19472 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
19474 txcal_radio_regs
[2 * coreNum
+ 4]);
19475 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, coreNum
,
19477 txcal_radio_regs
[2 * coreNum
+ 5]);
19482 void wlc_phy_antsel_init(struct brcms_phy_pub
*ppi
, bool lut_init
)
19484 struct brcms_phy
*pi
= (struct brcms_phy
*) ppi
;
19488 if (NREV_GE(pi
->pubpi
.phy_rev
, 7))
19491 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
19492 u16 v0
= 0x211, v1
= 0x222, v2
= 0x144, v3
= 0x188;
19494 if (lut_init
== false)
19497 if (pi
->srom_fem2g
.antswctrllut
== 0) {
19498 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
19500 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
19502 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
19504 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
19508 if (pi
->srom_fem5g
.antswctrllut
== 0) {
19509 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
19511 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
19513 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
19515 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_ANTSWCTRLLUT
,
19520 write_phy_reg(pi
, 0xc8, 0x0);
19521 write_phy_reg(pi
, 0xc9, 0x0);
19523 ai_gpiocontrol(pi
->sh
->sih
, mask
, mask
, GPIO_DRV_PRIORITY
);
19525 mc
= R_REG(&pi
->regs
->maccontrol
);
19526 mc
&= ~MCTL_GPOUT_SEL_MASK
;
19527 W_REG(&pi
->regs
->maccontrol
, mc
);
19529 OR_REG(&pi
->regs
->psm_gpio_oe
, mask
);
19531 AND_REG(&pi
->regs
->psm_gpio_out
, ~mask
);
19534 write_phy_reg(pi
, 0xf8, 0x02d8);
19535 write_phy_reg(pi
, 0xf9, 0x0301);
19536 write_phy_reg(pi
, 0xfa, 0x02d8);
19537 write_phy_reg(pi
, 0xfb, 0x0301);
19542 u16
wlc_phy_classifier_nphy(struct brcms_phy
*pi
, u16 mask
, u16 val
)
19544 u16 curr_ctl
, new_ctl
;
19545 bool suspended
= false;
19547 if (D11REV_IS(pi
->sh
->corerev
, 16)) {
19549 (R_REG(&pi
->regs
->maccontrol
) & MCTL_EN_MAC
) ?
19552 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
19555 curr_ctl
= read_phy_reg(pi
, 0xb0) & (0x7 << 0);
19557 new_ctl
= (curr_ctl
& (~mask
)) | (val
& mask
);
19559 mod_phy_reg(pi
, 0xb0, (0x7 << 0), new_ctl
);
19561 if (D11REV_IS(pi
->sh
->corerev
, 16) && !suspended
)
19562 wlapi_enable_mac(pi
->sh
->physhim
);
19567 static void wlc_phy_clip_det_nphy(struct brcms_phy
*pi
, u8 write
, u16
*vals
)
19571 vals
[0] = read_phy_reg(pi
, 0x2c);
19572 vals
[1] = read_phy_reg(pi
, 0x42);
19574 write_phy_reg(pi
, 0x2c, vals
[0]);
19575 write_phy_reg(pi
, 0x42, vals
[1]);
19579 void wlc_phy_force_rfseq_nphy(struct brcms_phy
*pi
, u8 cmd
)
19581 u16 trigger_mask
, status_mask
;
19582 u16 orig_RfseqCoreActv
;
19585 case NPHY_RFSEQ_RX2TX
:
19586 trigger_mask
= NPHY_RfseqTrigger_rx2tx
;
19587 status_mask
= NPHY_RfseqStatus_rx2tx
;
19589 case NPHY_RFSEQ_TX2RX
:
19590 trigger_mask
= NPHY_RfseqTrigger_tx2rx
;
19591 status_mask
= NPHY_RfseqStatus_tx2rx
;
19593 case NPHY_RFSEQ_RESET2RX
:
19594 trigger_mask
= NPHY_RfseqTrigger_reset2rx
;
19595 status_mask
= NPHY_RfseqStatus_reset2rx
;
19597 case NPHY_RFSEQ_UPDATEGAINH
:
19598 trigger_mask
= NPHY_RfseqTrigger_updategainh
;
19599 status_mask
= NPHY_RfseqStatus_updategainh
;
19601 case NPHY_RFSEQ_UPDATEGAINL
:
19602 trigger_mask
= NPHY_RfseqTrigger_updategainl
;
19603 status_mask
= NPHY_RfseqStatus_updategainl
;
19605 case NPHY_RFSEQ_UPDATEGAINU
:
19606 trigger_mask
= NPHY_RfseqTrigger_updategainu
;
19607 status_mask
= NPHY_RfseqStatus_updategainu
;
19613 orig_RfseqCoreActv
= read_phy_reg(pi
, 0xa1);
19614 or_phy_reg(pi
, 0xa1,
19615 (NPHY_RfseqMode_CoreActv_override
|
19616 NPHY_RfseqMode_Trigger_override
));
19617 or_phy_reg(pi
, 0xa3, trigger_mask
);
19618 SPINWAIT((read_phy_reg(pi
, 0xa4) & status_mask
), 200000);
19619 write_phy_reg(pi
, 0xa1, orig_RfseqCoreActv
);
19620 WARN(read_phy_reg(pi
, 0xa4) & status_mask
, "HW error in rf");
19624 wlc_phy_set_rfseq_nphy(struct brcms_phy
*pi
, u8 cmd
, u8
*events
, u8
*dlys
,
19627 u32 t1_offset
, t2_offset
;
19630 NREV_GE(pi
->pubpi
.phy_rev
,
19631 3) ? NPHY_REV3_RFSEQ_CMD_END
: NPHY_RFSEQ_CMD_END
;
19634 if (pi
->phyhang_avoid
)
19635 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
19637 t1_offset
= cmd
<< 4;
19638 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, len
, t1_offset
, 8,
19640 t2_offset
= t1_offset
+ 0x080;
19641 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, len
, t2_offset
, 8,
19644 for (ctr
= len
; ctr
< 16; ctr
++) {
19645 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1,
19646 t1_offset
+ ctr
, 8, &end_event
);
19647 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1,
19648 t2_offset
+ ctr
, 8, &end_dly
);
19651 if (pi
->phyhang_avoid
)
19652 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
19655 static u16
wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy
*pi
, u16 offset
)
19657 u16 lpf_bw_ctl_val
= 0;
19658 u16 rx2tx_lpf_rc_lut_offset
= 0;
19661 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
19662 rx2tx_lpf_rc_lut_offset
= 0x159;
19664 rx2tx_lpf_rc_lut_offset
= 0x154;
19667 rx2tx_lpf_rc_lut_offset
= offset
;
19669 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 1,
19670 (u32
) rx2tx_lpf_rc_lut_offset
, 16,
19673 lpf_bw_ctl_val
= lpf_bw_ctl_val
& 0x7;
19675 return lpf_bw_ctl_val
;
19679 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy
*pi
, u16 field
, u16 value
,
19680 u8 core_mask
, u8 off
, u8 override_id
)
19683 u16 addr
= 0, en_addr
= 0, val_addr
= 0, en_mask
= 0, val_mask
= 0;
19686 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
19688 for (core_num
= 0; core_num
< 2; core_num
++) {
19689 if (override_id
== NPHY_REV7_RFCTRLOVERRIDE_ID0
) {
19693 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19694 val_addr
= (core_num
== 0) ? 0x7a :
19696 val_mask
= (0x1 << 1);
19700 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19701 val_addr
= (core_num
== 0) ? 0x7a :
19703 val_mask
= (0x1 << 2);
19707 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19708 val_addr
= (core_num
== 0) ? 0x7a :
19710 val_mask
= (0x1 << 4);
19714 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19715 val_addr
= (core_num
== 0) ? 0x7a :
19717 val_mask
= (0x1 << 5);
19721 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19722 val_addr
= (core_num
== 0) ? 0x7a :
19724 val_mask
= (0x1 << 6);
19728 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19729 val_addr
= (core_num
== 0) ? 0x7a :
19731 val_mask
= (0x1 << 7);
19735 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19736 val_addr
= (core_num
== 0) ? 0xf8 :
19738 val_mask
= (0x7 << 4);
19742 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19743 val_addr
= (core_num
== 0) ? 0x7b :
19745 val_mask
= (0xffff << 0);
19749 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19750 val_addr
= (core_num
== 0) ? 0x7c :
19752 val_mask
= (0xffff << 0);
19756 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19757 val_addr
= (core_num
== 0) ? 0x348 :
19759 val_mask
= (0xff << 0);
19763 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19764 val_addr
= (core_num
== 0) ? 0x348 :
19766 val_mask
= (0xf << 0);
19773 } else if (override_id
== NPHY_REV7_RFCTRLOVERRIDE_ID1
) {
19777 en_addr
= (core_num
== 0) ? 0x342 :
19779 val_addr
= (core_num
== 0) ? 0x340 :
19781 val_mask
= (0x1 << 1);
19785 en_addr
= (core_num
== 0) ? 0x342 :
19787 val_addr
= (core_num
== 0) ? 0x340 :
19789 val_mask
= (0x1 << 3);
19793 en_addr
= (core_num
== 0) ? 0x342 :
19795 val_addr
= (core_num
== 0) ? 0x340 :
19797 val_mask
= (0x1 << 5);
19801 en_addr
= (core_num
== 0) ? 0x342 :
19803 val_addr
= (core_num
== 0) ? 0x340 :
19805 val_mask
= (0x1 << 4);
19810 en_addr
= (core_num
== 0) ? 0x342 :
19812 val_addr
= (core_num
== 0) ? 0x340 :
19814 val_mask
= (0x1 << 2);
19819 en_addr
= (core_num
== 0) ? 0x342 :
19821 val_addr
= (core_num
== 0) ? 0x340 :
19823 val_mask
= (0x7 << 8);
19827 en_addr
= (core_num
== 0) ? 0x342 :
19829 val_addr
= (core_num
== 0) ? 0x340 :
19831 val_mask
= (0x1 << 14);
19835 en_addr
= (core_num
== 0) ? 0x342 :
19837 val_addr
= (core_num
== 0) ? 0x340 :
19839 val_mask
= (0x1 << 13);
19843 en_addr
= (core_num
== 0) ? 0x342 :
19845 val_addr
= (core_num
== 0) ? 0x340 :
19847 val_mask
= (0x1 << 12);
19851 en_addr
= (core_num
== 0) ? 0x342 :
19853 val_addr
= (core_num
== 0) ? 0x340 :
19855 val_mask
= (0x1 << 11);
19859 en_addr
= (core_num
== 0) ? 0x342 :
19861 val_addr
= (core_num
== 0) ? 0x340 :
19863 val_mask
= (0x1 << 6);
19867 en_addr
= (core_num
== 0) ? 0x342 :
19869 val_addr
= (core_num
== 0) ? 0x340 :
19871 val_mask
= (0x1 << 0);
19878 } else if (override_id
== NPHY_REV7_RFCTRLOVERRIDE_ID2
) {
19882 en_addr
= (core_num
== 0) ? 0x346 :
19884 val_addr
= (core_num
== 0) ? 0x344 :
19886 val_mask
= (0x1 << 3);
19890 en_addr
= (core_num
== 0) ? 0x346 :
19892 val_addr
= (core_num
== 0) ? 0x344 :
19894 val_mask
= (0x1 << 1);
19898 en_addr
= (core_num
== 0) ? 0x346 :
19900 val_addr
= (core_num
== 0) ? 0x344 :
19902 val_mask
= (0x1 << 0);
19906 en_addr
= (core_num
== 0) ? 0x346 :
19908 val_addr
= (core_num
== 0) ? 0x344 :
19910 val_mask
= (0x1 << 2);
19914 en_addr
= (core_num
== 0) ? 0x346 :
19916 val_addr
= (core_num
== 0) ? 0x344 :
19918 val_mask
= (0x1 << 4);
19928 and_phy_reg(pi
, en_addr
, ~en_mask
);
19929 and_phy_reg(pi
, val_addr
, ~val_mask
);
19932 if ((core_mask
== 0)
19933 || (core_mask
& (1 << core_num
))) {
19934 or_phy_reg(pi
, en_addr
, en_mask
);
19936 if (addr
!= 0xffff) {
19937 mod_phy_reg(pi
, val_addr
,
19949 wlc_phy_rfctrl_override_nphy(struct brcms_phy
*pi
, u16 field
, u16 value
,
19950 u8 core_mask
, u8 off
)
19953 u16 addr
= 0, mask
= 0, en_addr
= 0, val_addr
= 0, en_mask
=
19955 u8 shift
= 0, val_shift
= 0;
19957 if (NREV_GE(pi
->pubpi
.phy_rev
, 3) && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
19960 for (core_num
= 0; core_num
< 2; core_num
++) {
19964 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19965 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
19966 val_mask
= (0x1 << 0);
19970 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19971 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
19972 val_mask
= (0x1 << 1);
19976 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19977 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
19978 val_mask
= (0x1 << 2);
19982 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19983 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
19984 val_mask
= (0x1 << 4);
19988 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19989 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
19990 val_mask
= (0x1 << 5);
19994 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
19995 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
19996 val_mask
= (0x1 << 6);
20000 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
20001 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
20002 val_mask
= (0x1 << 7);
20006 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
20007 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
20008 val_mask
= (0x7 << 8);
20012 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
20013 val_addr
= (core_num
== 0) ? 0x7a : 0x7d;
20014 val_mask
= (0x7 << 13);
20019 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
20020 val_addr
= (core_num
== 0) ? 0xf8 : 0xfa;
20021 val_mask
= (0x7 << 0);
20026 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
20027 val_addr
= (core_num
== 0) ? 0xf8 : 0xfa;
20028 val_mask
= (0x7 << 4);
20033 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
20034 val_addr
= (core_num
== 0) ? 0x7b : 0x7e;
20035 val_mask
= (0xffff << 0);
20039 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
20040 val_addr
= (core_num
== 0) ? 0x7c : 0x7f;
20041 val_mask
= (0xffff << 0);
20045 en_addr
= (core_num
== 0) ? 0xe7 : 0xec;
20046 val_addr
= (core_num
== 0) ? 0xf9 : 0xfb;
20047 val_mask
= (0x3 << 6);
20051 en_addr
= (core_num
== 0) ? 0xe5 : 0xe6;
20052 val_addr
= (core_num
== 0) ? 0xf9 : 0xfb;
20053 val_mask
= (0x1 << 15);
20062 and_phy_reg(pi
, en_addr
, ~en_mask
);
20063 and_phy_reg(pi
, val_addr
, ~val_mask
);
20066 if ((core_mask
== 0)
20067 || (core_mask
& (1 << core_num
))) {
20068 or_phy_reg(pi
, en_addr
, en_mask
);
20070 if (addr
!= 0xffff) {
20071 mod_phy_reg(pi
, val_addr
,
20082 and_phy_reg(pi
, 0xec, ~field
);
20085 or_phy_reg(pi
, 0xec, field
);
20088 for (core_num
= 0; core_num
< 2; core_num
++) {
20107 addr
= (core_num
== 0) ? 0x7a : 0x7d;
20110 addr
= (core_num
== 0) ? 0x7b : 0x7e;
20113 addr
= (core_num
== 0) ? 0x7c : 0x7f;
20137 mask
= (0xf << 12);
20182 if ((addr
!= 0xffff) && (core_mask
& (1 << core_num
))) {
20183 mod_phy_reg(pi
, addr
, mask
, (value
<< shift
));
20187 or_phy_reg(pi
, 0xec, (0x1 << 0));
20188 or_phy_reg(pi
, 0x78, (0x1 << 0));
20190 and_phy_reg(pi
, 0xec, ~(0x1 << 0));
20195 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy
*pi
, u16 cmd
, u16 value
,
20196 u8 core_mask
, u8 off
)
20198 u16 rfmxgain
= 0, lpfgain
= 0;
20201 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
20204 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu
:
20205 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 5),
20206 value
, core_mask
, off
,
20207 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
20208 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 4), value
,
20210 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
20211 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3), value
,
20213 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
20215 case NPHY_REV7_RfctrlOverride_cmd_rx_pu
:
20216 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2),
20217 value
, core_mask
, off
,
20218 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
20219 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1), value
,
20221 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
20222 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 0), value
,
20224 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
20225 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1), value
,
20227 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
20228 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11), 0,
20230 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
20232 case NPHY_REV7_RfctrlOverride_cmd_tx_pu
:
20233 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2),
20234 value
, core_mask
, off
,
20235 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
20236 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1), value
,
20238 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
20239 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 0), value
,
20241 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
20242 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2), value
,
20244 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
20245 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11), 1,
20247 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
20249 case NPHY_REV7_RfctrlOverride_cmd_rxgain
:
20250 rfmxgain
= value
& 0x000ff;
20251 lpfgain
= value
& 0x0ff00;
20252 lpfgain
= lpfgain
>> 8;
20254 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11),
20255 rfmxgain
, core_mask
,
20257 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
20258 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x3 << 13),
20259 lpfgain
, core_mask
,
20261 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
20263 case NPHY_REV7_RfctrlOverride_cmd_txgain
:
20264 tgain
= value
& 0x7fff;
20265 lpfgain
= value
& 0x8000;
20266 lpfgain
= lpfgain
>> 14;
20268 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 12),
20269 tgain
, core_mask
, off
,
20270 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
20271 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 13),
20272 lpfgain
, core_mask
,
20274 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
20281 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy
*pi
, u16 scale
, s8 offset
,
20282 u8 coresel
, u8 rail
, u8 rssi_type
)
20286 offset
= (offset
> NPHY_RSSICAL_MAXREAD
) ?
20287 NPHY_RSSICAL_MAXREAD
: offset
;
20288 offset
= (offset
< (-NPHY_RSSICAL_MAXREAD
- 1)) ?
20289 -NPHY_RSSICAL_MAXREAD
- 1 : offset
;
20291 valuetostuff
= ((scale
& 0x3f) << 8) | (offset
& 0x3f);
20293 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20294 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20295 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_NB
)) {
20296 write_phy_reg(pi
, 0x1a6, valuetostuff
);
20298 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20299 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20300 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_NB
)) {
20301 write_phy_reg(pi
, 0x1ac, valuetostuff
);
20303 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20304 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20305 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_NB
)) {
20306 write_phy_reg(pi
, 0x1b2, valuetostuff
);
20308 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20309 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20310 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_NB
)) {
20311 write_phy_reg(pi
, 0x1b8, valuetostuff
);
20314 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20315 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20316 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_W1
)) {
20317 write_phy_reg(pi
, 0x1a4, valuetostuff
);
20319 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20320 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20321 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_W1
)) {
20322 write_phy_reg(pi
, 0x1aa, valuetostuff
);
20324 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20325 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20326 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_W1
)) {
20327 write_phy_reg(pi
, 0x1b0, valuetostuff
);
20329 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20330 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20331 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_W1
)) {
20332 write_phy_reg(pi
, 0x1b6, valuetostuff
);
20335 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20336 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20337 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_W2
)) {
20338 write_phy_reg(pi
, 0x1a5, valuetostuff
);
20340 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20341 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20342 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_W2
)) {
20343 write_phy_reg(pi
, 0x1ab, valuetostuff
);
20345 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20346 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20347 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_W2
)) {
20348 write_phy_reg(pi
, 0x1b1, valuetostuff
);
20350 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20351 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20352 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_W2
)) {
20353 write_phy_reg(pi
, 0x1b7, valuetostuff
);
20356 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20357 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20358 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_TBD
)) {
20359 write_phy_reg(pi
, 0x1a7, valuetostuff
);
20361 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20362 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20363 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_TBD
)) {
20364 write_phy_reg(pi
, 0x1ad, valuetostuff
);
20366 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20367 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20368 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_TBD
)) {
20369 write_phy_reg(pi
, 0x1b3, valuetostuff
);
20371 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20372 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20373 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_TBD
)) {
20374 write_phy_reg(pi
, 0x1b9, valuetostuff
);
20377 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20378 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20379 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_IQ
)) {
20380 write_phy_reg(pi
, 0x1a8, valuetostuff
);
20382 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20383 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20384 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_IQ
)) {
20385 write_phy_reg(pi
, 0x1ae, valuetostuff
);
20387 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20388 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20389 (rail
== NPHY_RAIL_I
) && (rssi_type
== NPHY_RSSI_SEL_IQ
)) {
20390 write_phy_reg(pi
, 0x1b4, valuetostuff
);
20392 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20393 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20394 (rail
== NPHY_RAIL_Q
) && (rssi_type
== NPHY_RSSI_SEL_IQ
)) {
20395 write_phy_reg(pi
, 0x1ba, valuetostuff
);
20398 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20399 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20400 (rssi_type
== NPHY_RSSI_SEL_TSSI_2G
)) {
20401 write_phy_reg(pi
, 0x1a9, valuetostuff
);
20403 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20404 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20405 (rssi_type
== NPHY_RSSI_SEL_TSSI_2G
)) {
20406 write_phy_reg(pi
, 0x1b5, valuetostuff
);
20409 if (((coresel
== RADIO_MIMO_CORESEL_CORE1
) ||
20410 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20411 (rssi_type
== NPHY_RSSI_SEL_TSSI_5G
)) {
20412 write_phy_reg(pi
, 0x1af, valuetostuff
);
20414 if (((coresel
== RADIO_MIMO_CORESEL_CORE2
) ||
20415 (coresel
== RADIO_MIMO_CORESEL_ALLRX
)) &&
20416 (rssi_type
== NPHY_RSSI_SEL_TSSI_5G
)) {
20417 write_phy_reg(pi
, 0x1bb, valuetostuff
);
20421 void wlc_phy_rssisel_nphy(struct brcms_phy
*pi
, u8 core_code
, u8 rssi_type
)
20424 u16 afectrlovr_rssi_val
, rfctrlcmd_rxen_val
, rfctrlcmd_coresel_val
,
20426 u16 rfctrlovr_rssi_val
, rfctrlovr_rxen_val
, rfctrlovr_coresel_val
,
20427 rfctrlovr_trigger_val
;
20428 u16 afectrlovr_rssi_mask
, rfctrlcmd_mask
, rfctrlovr_mask
;
20429 u16 rfctrlcmd_val
, rfctrlovr_val
;
20432 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
20433 if (core_code
== RADIO_MIMO_CORESEL_OFF
) {
20434 mod_phy_reg(pi
, 0x8f, (0x1 << 9), 0);
20435 mod_phy_reg(pi
, 0xa5, (0x1 << 9), 0);
20437 mod_phy_reg(pi
, 0xa6, (0x3 << 8), 0);
20438 mod_phy_reg(pi
, 0xa7, (0x3 << 8), 0);
20440 mod_phy_reg(pi
, 0xe5, (0x1 << 5), 0);
20441 mod_phy_reg(pi
, 0xe6, (0x1 << 5), 0);
20443 mask
= (0x1 << 2) |
20444 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
20445 mod_phy_reg(pi
, 0xf9, mask
, 0);
20446 mod_phy_reg(pi
, 0xfb, mask
, 0);
20449 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
20450 if (core_code
== RADIO_MIMO_CORESEL_CORE1
20451 && core
== PHY_CORE_1
)
20453 else if (core_code
== RADIO_MIMO_CORESEL_CORE2
20454 && core
== PHY_CORE_0
)
20457 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ?
20458 0x8f : 0xa5, (0x1 << 9), 1 << 9);
20460 if (rssi_type
== NPHY_RSSI_SEL_W1
||
20461 rssi_type
== NPHY_RSSI_SEL_W2
||
20462 rssi_type
== NPHY_RSSI_SEL_NB
) {
20466 PHY_CORE_0
) ? 0xa6 : 0xa7,
20469 mask
= (0x1 << 2) |
20471 (0x1 << 4) | (0x1 << 5);
20474 PHY_CORE_0
) ? 0xf9 : 0xfb,
20477 if (rssi_type
== NPHY_RSSI_SEL_W1
) {
20479 (pi
->radio_chanspec
)) {
20486 } else if (rssi_type
==
20487 NPHY_RSSI_SEL_W2
) {
20496 PHY_CORE_0
) ? 0xf9 : 0xfb,
20501 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ?
20502 0xe5 : 0xe6, mask
, val
);
20504 if (rssi_type
== NPHY_RSSI_SEL_TBD
) {
20511 : 0xa7, mask
, val
);
20512 mask
= (0x3 << 10);
20517 : 0xa7, mask
, val
);
20518 } else if (rssi_type
==
20519 NPHY_RSSI_SEL_IQ
) {
20526 : 0xa7, mask
, val
);
20527 mask
= (0x3 << 10);
20532 : 0xa7, mask
, val
);
20540 : 0xa7, mask
, val
);
20541 mask
= (0x3 << 10);
20546 : 0xa7, mask
, val
);
20550 (pi
->pubpi
.phy_rev
,
20558 RADIO_2057_TX0_TX_SSI_MUX
20560 RADIO_2057_TX1_TX_SSI_MUX
),
20569 RADIO_2056_TX_TX_SSI_MUX
20586 (pi
->pubpi
.phy_rev
,
20593 RADIO_2057_TX0_TX_SSI_MUX
20595 RADIO_2057_TX1_TX_SSI_MUX
),
20603 RADIO_2057_IQTEST_SEL_PU
,
20609 RADIO_2056_TX_TX_SSI_MUX
20621 afectrlovr_rssi_val
= 1 << 9;
20625 : 0xa5, (0x1 << 9),
20626 afectrlovr_rssi_val
);
20633 if ((rssi_type
== NPHY_RSSI_SEL_W1
) ||
20634 (rssi_type
== NPHY_RSSI_SEL_W2
) ||
20635 (rssi_type
== NPHY_RSSI_SEL_NB
)) {
20638 } else if (rssi_type
== NPHY_RSSI_SEL_TBD
) {
20641 } else if (rssi_type
== NPHY_RSSI_SEL_IQ
) {
20648 mask
= ((0x3 << 12) | (0x3 << 14));
20649 val
= (val
<< 12) | (val
<< 14);
20650 mod_phy_reg(pi
, 0xa6, mask
, val
);
20651 mod_phy_reg(pi
, 0xa7, mask
, val
);
20653 if ((rssi_type
== NPHY_RSSI_SEL_W1
) ||
20654 (rssi_type
== NPHY_RSSI_SEL_W2
) ||
20655 (rssi_type
== NPHY_RSSI_SEL_NB
)) {
20656 if (rssi_type
== NPHY_RSSI_SEL_W1
) {
20659 if (rssi_type
== NPHY_RSSI_SEL_W2
) {
20662 if (rssi_type
== NPHY_RSSI_SEL_NB
) {
20667 mod_phy_reg(pi
, 0x7a, mask
, val
);
20668 mod_phy_reg(pi
, 0x7d, mask
, val
);
20671 if (core_code
== RADIO_MIMO_CORESEL_OFF
) {
20672 afectrlovr_rssi_val
= 0;
20673 rfctrlcmd_rxen_val
= 0;
20674 rfctrlcmd_coresel_val
= 0;
20675 rfctrlovr_rssi_val
= 0;
20676 rfctrlovr_rxen_val
= 0;
20677 rfctrlovr_coresel_val
= 0;
20678 rfctrlovr_trigger_val
= 0;
20681 afectrlovr_rssi_val
= 1;
20682 rfctrlcmd_rxen_val
= 1;
20683 rfctrlcmd_coresel_val
= core_code
;
20684 rfctrlovr_rssi_val
= 1;
20685 rfctrlovr_rxen_val
= 1;
20686 rfctrlovr_coresel_val
= 1;
20687 rfctrlovr_trigger_val
= 1;
20691 afectrlovr_rssi_mask
= ((0x1 << 12) | (0x1 << 13));
20692 afectrlovr_rssi_val
= (afectrlovr_rssi_val
<<
20693 12) | (afectrlovr_rssi_val
<< 13);
20694 mod_phy_reg(pi
, 0xa5, afectrlovr_rssi_mask
,
20695 afectrlovr_rssi_val
);
20697 if ((rssi_type
== NPHY_RSSI_SEL_W1
) ||
20698 (rssi_type
== NPHY_RSSI_SEL_W2
) ||
20699 (rssi_type
== NPHY_RSSI_SEL_NB
)) {
20700 rfctrlcmd_mask
= ((0x1 << 8) | (0x7 << 3));
20701 rfctrlcmd_val
= (rfctrlcmd_rxen_val
<< 8) |
20702 (rfctrlcmd_coresel_val
<< 3);
20704 rfctrlovr_mask
= ((0x1 << 5) |
20706 (0x1 << 1) | (0x1 << 0));
20707 rfctrlovr_val
= (rfctrlovr_rssi_val
<<
20709 (rfctrlovr_rxen_val
<< 12) |
20710 (rfctrlovr_coresel_val
<< 1) |
20711 (rfctrlovr_trigger_val
<< 0);
20713 mod_phy_reg(pi
, 0x78, rfctrlcmd_mask
, rfctrlcmd_val
);
20714 mod_phy_reg(pi
, 0xec, rfctrlovr_mask
, rfctrlovr_val
);
20716 mod_phy_reg(pi
, 0x78, (0x1 << 0), (startseq
<< 0));
20719 mod_phy_reg(pi
, 0xec, (0x1 << 0), 0);
20725 wlc_phy_poll_rssi_nphy(struct brcms_phy
*pi
, u8 rssi_type
, s32
*rssi_buf
,
20729 u16 afectrlCore1_save
= 0;
20730 u16 afectrlCore2_save
= 0;
20731 u16 afectrlOverride1_save
= 0;
20732 u16 afectrlOverride2_save
= 0;
20733 u16 rfctrlOverrideAux0_save
= 0;
20734 u16 rfctrlOverrideAux1_save
= 0;
20735 u16 rfctrlMiscReg1_save
= 0;
20736 u16 rfctrlMiscReg2_save
= 0;
20737 u16 rfctrlcmd_save
= 0;
20738 u16 rfctrloverride_save
= 0;
20739 u16 rfctrlrssiothers1_save
= 0;
20740 u16 rfctrlrssiothers2_save
= 0;
20742 u8 ctr
= 0, samp
= 0;
20746 afectrlCore1_save
= read_phy_reg(pi
, 0xa6);
20747 afectrlCore2_save
= read_phy_reg(pi
, 0xa7);
20748 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
20749 rfctrlMiscReg1_save
= read_phy_reg(pi
, 0xf9);
20750 rfctrlMiscReg2_save
= read_phy_reg(pi
, 0xfb);
20751 afectrlOverride1_save
= read_phy_reg(pi
, 0x8f);
20752 afectrlOverride2_save
= read_phy_reg(pi
, 0xa5);
20753 rfctrlOverrideAux0_save
= read_phy_reg(pi
, 0xe5);
20754 rfctrlOverrideAux1_save
= read_phy_reg(pi
, 0xe6);
20756 afectrlOverride1_save
= read_phy_reg(pi
, 0xa5);
20757 rfctrlcmd_save
= read_phy_reg(pi
, 0x78);
20758 rfctrloverride_save
= read_phy_reg(pi
, 0xec);
20759 rfctrlrssiothers1_save
= read_phy_reg(pi
, 0x7a);
20760 rfctrlrssiothers2_save
= read_phy_reg(pi
, 0x7d);
20763 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_ALLRX
, rssi_type
);
20765 gpiosel_orig
= read_phy_reg(pi
, 0xca);
20766 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
20767 write_phy_reg(pi
, 0xca, 5);
20770 for (ctr
= 0; ctr
< 4; ctr
++) {
20774 for (samp
= 0; samp
< nsamps
; samp
++) {
20775 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
20776 rssi0
= read_phy_reg(pi
, 0x1c9);
20777 rssi1
= read_phy_reg(pi
, 0x1ca);
20779 rssi0
= read_phy_reg(pi
, 0x219);
20780 rssi1
= read_phy_reg(pi
, 0x21a);
20784 tmp_buf
[ctr
++] = ((s8
) ((rssi0
& 0x3f) << 2)) >> 2;
20785 tmp_buf
[ctr
++] = ((s8
) (((rssi0
>> 8) & 0x3f) << 2)) >> 2;
20786 tmp_buf
[ctr
++] = ((s8
) ((rssi1
& 0x3f) << 2)) >> 2;
20787 tmp_buf
[ctr
++] = ((s8
) (((rssi1
>> 8) & 0x3f) << 2)) >> 2;
20789 for (ctr
= 0; ctr
< 4; ctr
++) {
20790 rssi_buf
[ctr
] += tmp_buf
[ctr
];
20795 rssi_out_val
= rssi_buf
[3] & 0xff;
20796 rssi_out_val
|= (rssi_buf
[2] & 0xff) << 8;
20797 rssi_out_val
|= (rssi_buf
[1] & 0xff) << 16;
20798 rssi_out_val
|= (rssi_buf
[0] & 0xff) << 24;
20800 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
20801 write_phy_reg(pi
, 0xca, gpiosel_orig
);
20804 write_phy_reg(pi
, 0xa6, afectrlCore1_save
);
20805 write_phy_reg(pi
, 0xa7, afectrlCore2_save
);
20806 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
20807 write_phy_reg(pi
, 0xf9, rfctrlMiscReg1_save
);
20808 write_phy_reg(pi
, 0xfb, rfctrlMiscReg2_save
);
20809 write_phy_reg(pi
, 0x8f, afectrlOverride1_save
);
20810 write_phy_reg(pi
, 0xa5, afectrlOverride2_save
);
20811 write_phy_reg(pi
, 0xe5, rfctrlOverrideAux0_save
);
20812 write_phy_reg(pi
, 0xe6, rfctrlOverrideAux1_save
);
20814 write_phy_reg(pi
, 0xa5, afectrlOverride1_save
);
20815 write_phy_reg(pi
, 0x78, rfctrlcmd_save
);
20816 write_phy_reg(pi
, 0xec, rfctrloverride_save
);
20817 write_phy_reg(pi
, 0x7a, rfctrlrssiothers1_save
);
20818 write_phy_reg(pi
, 0x7d, rfctrlrssiothers2_save
);
20821 return rssi_out_val
;
20824 s16
wlc_phy_tempsense_nphy(struct brcms_phy
*pi
)
20826 u16 core1_txrf_iqcal1_save
, core1_txrf_iqcal2_save
;
20827 u16 core2_txrf_iqcal1_save
, core2_txrf_iqcal2_save
;
20828 u16 pwrdet_rxtx_core1_save
;
20829 u16 pwrdet_rxtx_core2_save
;
20830 u16 afectrlCore1_save
;
20831 u16 afectrlCore2_save
;
20832 u16 afectrlOverride_save
;
20833 u16 afectrlOverride2_save
;
20834 u16 pd_pll_ts_save
;
20837 s32 radio_temp2
[4];
20838 u16 syn_tempprocsense_save
;
20841 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
20842 u16 auxADC_Vmid
, auxADC_Av
, auxADC_Vmid_save
, auxADC_Av_save
;
20843 u16 auxADC_rssi_ctrlL_save
, auxADC_rssi_ctrlH_save
;
20844 u16 auxADC_rssi_ctrlL
, auxADC_rssi_ctrlH
;
20846 u16 RfctrlOverride5_save
, RfctrlOverride6_save
;
20847 u16 RfctrlMiscReg5_save
, RfctrlMiscReg6_save
;
20848 u16 RSSIMultCoef0QPowerDet_save
;
20849 u16 tempsense_Rcal
;
20851 syn_tempprocsense_save
=
20852 read_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
);
20854 afectrlCore1_save
= read_phy_reg(pi
, 0xa6);
20855 afectrlCore2_save
= read_phy_reg(pi
, 0xa7);
20856 afectrlOverride_save
= read_phy_reg(pi
, 0x8f);
20857 afectrlOverride2_save
= read_phy_reg(pi
, 0xa5);
20858 RSSIMultCoef0QPowerDet_save
= read_phy_reg(pi
, 0x1ae);
20859 RfctrlOverride5_save
= read_phy_reg(pi
, 0x346);
20860 RfctrlOverride6_save
= read_phy_reg(pi
, 0x347);
20861 RfctrlMiscReg5_save
= read_phy_reg(pi
, 0x344);
20862 RfctrlMiscReg6_save
= read_phy_reg(pi
, 0x345);
20864 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0A, 16,
20865 &auxADC_Vmid_save
);
20866 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0E, 16,
20868 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x02, 16,
20869 &auxADC_rssi_ctrlL_save
);
20870 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x03, 16,
20871 &auxADC_rssi_ctrlH_save
);
20873 write_phy_reg(pi
, 0x1ae, 0x0);
20875 auxADC_rssi_ctrlL
= 0x0;
20876 auxADC_rssi_ctrlH
= 0x20;
20877 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x02, 16,
20878 &auxADC_rssi_ctrlL
);
20879 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x03, 16,
20880 &auxADC_rssi_ctrlH
);
20882 tempsense_Rcal
= syn_tempprocsense_save
& 0x1c;
20884 write_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
,
20885 tempsense_Rcal
| 0x01);
20887 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1),
20889 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
20890 mod_phy_reg(pi
, 0xa6, (0x1 << 7), 0);
20891 mod_phy_reg(pi
, 0xa7, (0x1 << 7), 0);
20892 mod_phy_reg(pi
, 0x8f, (0x1 << 7), (0x1 << 7));
20893 mod_phy_reg(pi
, 0xa5, (0x1 << 7), (0x1 << 7));
20895 mod_phy_reg(pi
, 0xa6, (0x1 << 2), (0x1 << 2));
20896 mod_phy_reg(pi
, 0xa7, (0x1 << 2), (0x1 << 2));
20897 mod_phy_reg(pi
, 0x8f, (0x1 << 2), (0x1 << 2));
20898 mod_phy_reg(pi
, 0xa5, (0x1 << 2), (0x1 << 2));
20900 mod_phy_reg(pi
, 0xa6, (0x1 << 2), 0);
20901 mod_phy_reg(pi
, 0xa7, (0x1 << 2), 0);
20902 mod_phy_reg(pi
, 0xa6, (0x1 << 3), 0);
20903 mod_phy_reg(pi
, 0xa7, (0x1 << 3), 0);
20904 mod_phy_reg(pi
, 0x8f, (0x1 << 3), (0x1 << 3));
20905 mod_phy_reg(pi
, 0xa5, (0x1 << 3), (0x1 << 3));
20906 mod_phy_reg(pi
, 0xa6, (0x1 << 6), 0);
20907 mod_phy_reg(pi
, 0xa7, (0x1 << 6), 0);
20908 mod_phy_reg(pi
, 0x8f, (0x1 << 6), (0x1 << 6));
20909 mod_phy_reg(pi
, 0xa5, (0x1 << 6), (0x1 << 6));
20911 auxADC_Vmid
= 0xA3;
20913 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0A, 16,
20915 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0E, 16,
20920 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp
, 1);
20921 write_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
,
20922 tempsense_Rcal
| 0x03);
20925 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp2
, 1);
20928 if (radio_temp
[1] + radio_temp2
[1] < -30) {
20929 auxADC_Vmid
= 0x45;
20931 } else if (radio_temp
[1] + radio_temp2
[1] < -9) {
20932 auxADC_Vmid
= 0x200;
20934 } else if (radio_temp
[1] + radio_temp2
[1] < 11) {
20935 auxADC_Vmid
= 0x266;
20938 auxADC_Vmid
= 0x2D5;
20942 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0A, 16,
20944 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0E, 16,
20949 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp2
, 1);
20950 write_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
,
20951 tempsense_Rcal
| 0x01);
20954 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp
, 1);
20956 write_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
,
20957 syn_tempprocsense_save
);
20959 write_phy_reg(pi
, 0xa6, afectrlCore1_save
);
20960 write_phy_reg(pi
, 0xa7, afectrlCore2_save
);
20961 write_phy_reg(pi
, 0x8f, afectrlOverride_save
);
20962 write_phy_reg(pi
, 0xa5, afectrlOverride2_save
);
20963 write_phy_reg(pi
, 0x1ae, RSSIMultCoef0QPowerDet_save
);
20964 write_phy_reg(pi
, 0x346, RfctrlOverride5_save
);
20965 write_phy_reg(pi
, 0x347, RfctrlOverride6_save
);
20966 write_phy_reg(pi
, 0x344, RfctrlMiscReg5_save
);
20967 write_phy_reg(pi
, 0x345, RfctrlMiscReg5_save
);
20969 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0A, 16,
20970 &auxADC_Vmid_save
);
20971 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x0E, 16,
20973 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x02, 16,
20974 &auxADC_rssi_ctrlL_save
);
20975 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 0x03, 16,
20976 &auxADC_rssi_ctrlH_save
);
20978 radio_temp
[0] = (179 * (radio_temp
[1] + radio_temp2
[1])
20979 + 82 * (auxADC_Vl
) - 28861 +
20982 offset
= (s16
) pi
->phy_tempsense_offset
;
20984 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
20985 syn_tempprocsense_save
=
20986 read_radio_reg(pi
, RADIO_2056_SYN_TEMPPROCSENSE
);
20988 afectrlCore1_save
= read_phy_reg(pi
, 0xa6);
20989 afectrlCore2_save
= read_phy_reg(pi
, 0xa7);
20990 afectrlOverride_save
= read_phy_reg(pi
, 0x8f);
20991 afectrlOverride2_save
= read_phy_reg(pi
, 0xa5);
20992 gpioSel_save
= read_phy_reg(pi
, 0xca);
20994 write_radio_reg(pi
, RADIO_2056_SYN_TEMPPROCSENSE
, 0x01);
20996 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp
, 1);
20997 if (NREV_LT(pi
->pubpi
.phy_rev
, 7))
20998 write_radio_reg(pi
, RADIO_2056_SYN_TEMPPROCSENSE
, 0x05);
21000 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp2
, 1);
21001 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21002 write_radio_reg(pi
, RADIO_2057_TEMPSENSE_CONFIG
, 0x01);
21004 write_radio_reg(pi
, RADIO_2056_SYN_TEMPPROCSENSE
, 0x01);
21008 (126 * (radio_temp
[1] + radio_temp2
[1]) + 3987) / 64;
21010 write_radio_reg(pi
, RADIO_2056_SYN_TEMPPROCSENSE
,
21011 syn_tempprocsense_save
);
21013 write_phy_reg(pi
, 0xca, gpioSel_save
);
21014 write_phy_reg(pi
, 0xa6, afectrlCore1_save
);
21015 write_phy_reg(pi
, 0xa7, afectrlCore2_save
);
21016 write_phy_reg(pi
, 0x8f, afectrlOverride_save
);
21017 write_phy_reg(pi
, 0xa5, afectrlOverride2_save
);
21019 offset
= (s16
) pi
->phy_tempsense_offset
;
21022 pwrdet_rxtx_core1_save
=
21023 read_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
);
21024 pwrdet_rxtx_core2_save
=
21025 read_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
);
21026 core1_txrf_iqcal1_save
=
21027 read_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
);
21028 core1_txrf_iqcal2_save
=
21029 read_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
);
21030 core2_txrf_iqcal1_save
=
21031 read_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
);
21032 core2_txrf_iqcal2_save
=
21033 read_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
);
21034 pd_pll_ts_save
= read_radio_reg(pi
, RADIO_2055_PD_PLL_TS
);
21036 afectrlCore1_save
= read_phy_reg(pi
, 0xa6);
21037 afectrlCore2_save
= read_phy_reg(pi
, 0xa7);
21038 afectrlOverride_save
= read_phy_reg(pi
, 0xa5);
21039 gpioSel_save
= read_phy_reg(pi
, 0xca);
21041 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
, 0x01);
21042 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
, 0x01);
21043 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
, 0x08);
21044 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
, 0x08);
21045 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
, 0x04);
21046 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
, 0x04);
21047 write_radio_reg(pi
, RADIO_2055_PD_PLL_TS
, 0x00);
21049 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp
, 1);
21050 xor_radio_reg(pi
, RADIO_2055_CAL_TS
, 0x80);
21052 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp
, 1);
21053 xor_radio_reg(pi
, RADIO_2055_CAL_TS
, 0x80);
21055 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_IQ
, radio_temp2
, 1);
21056 xor_radio_reg(pi
, RADIO_2055_CAL_TS
, 0x80);
21058 radio_temp
[0] = (radio_temp
[0] + radio_temp2
[0]);
21059 radio_temp
[1] = (radio_temp
[1] + radio_temp2
[1]);
21060 radio_temp
[2] = (radio_temp
[2] + radio_temp2
[2]);
21061 radio_temp
[3] = (radio_temp
[3] + radio_temp2
[3]);
21064 (radio_temp
[0] + radio_temp
[1] + radio_temp
[2] +
21068 (radio_temp
[0] + (8 * 32)) * (950 - 350) / 63 + (350 * 8);
21070 radio_temp
[0] = (radio_temp
[0] - (8 * 420)) / 38;
21072 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
,
21073 pwrdet_rxtx_core1_save
);
21074 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
,
21075 pwrdet_rxtx_core2_save
);
21076 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
,
21077 core1_txrf_iqcal1_save
);
21078 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
,
21079 core2_txrf_iqcal1_save
);
21080 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
,
21081 core1_txrf_iqcal2_save
);
21082 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
,
21083 core2_txrf_iqcal2_save
);
21084 write_radio_reg(pi
, RADIO_2055_PD_PLL_TS
, pd_pll_ts_save
);
21086 write_phy_reg(pi
, 0xca, gpioSel_save
);
21087 write_phy_reg(pi
, 0xa6, afectrlCore1_save
);
21088 write_phy_reg(pi
, 0xa7, afectrlCore2_save
);
21089 write_phy_reg(pi
, 0xa5, afectrlOverride_save
);
21092 return (s16
) radio_temp
[0] + offset
;
21096 wlc_phy_set_rssi_2055_vcm(struct brcms_phy
*pi
, u8 rssi_type
, u8
*vcm_buf
)
21100 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
21101 if (rssi_type
== NPHY_RSSI_SEL_NB
) {
21102 if (core
== PHY_CORE_0
) {
21104 RADIO_2055_CORE1_B0_NBRSSI_VCM
,
21105 RADIO_2055_NBRSSI_VCM_I_MASK
,
21108 RADIO_2055_NBRSSI_VCM_I_SHIFT
);
21110 RADIO_2055_CORE1_RXBB_RSSI_CTRL5
,
21111 RADIO_2055_NBRSSI_VCM_Q_MASK
,
21114 RADIO_2055_NBRSSI_VCM_Q_SHIFT
);
21117 RADIO_2055_CORE2_B0_NBRSSI_VCM
,
21118 RADIO_2055_NBRSSI_VCM_I_MASK
,
21121 RADIO_2055_NBRSSI_VCM_I_SHIFT
);
21123 RADIO_2055_CORE2_RXBB_RSSI_CTRL5
,
21124 RADIO_2055_NBRSSI_VCM_Q_MASK
,
21127 RADIO_2055_NBRSSI_VCM_Q_SHIFT
);
21131 if (core
== PHY_CORE_0
) {
21133 RADIO_2055_CORE1_RXBB_RSSI_CTRL5
,
21134 RADIO_2055_WBRSSI_VCM_IQ_MASK
,
21137 RADIO_2055_WBRSSI_VCM_IQ_SHIFT
);
21140 RADIO_2055_CORE2_RXBB_RSSI_CTRL5
,
21141 RADIO_2055_WBRSSI_VCM_IQ_MASK
,
21144 RADIO_2055_WBRSSI_VCM_IQ_SHIFT
);
21150 void wlc_phy_rssi_cal_nphy(struct brcms_phy
*pi
)
21152 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
21154 wlc_phy_rssi_cal_nphy_rev3(pi
);
21156 wlc_phy_rssi_cal_nphy_rev2(pi
, NPHY_RSSI_SEL_NB
);
21157 wlc_phy_rssi_cal_nphy_rev2(pi
, NPHY_RSSI_SEL_W1
);
21158 wlc_phy_rssi_cal_nphy_rev2(pi
, NPHY_RSSI_SEL_W2
);
21162 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy
*pi
, u8 rssi_type
)
21167 u16 rssi_ctrl_state
[2], pd_state
[2];
21168 u16 rfctrlintc_state
[2], rfpdcorerxtx_state
[2];
21169 u16 rfctrlintc_override_val
;
21170 u16 clip_off
[] = { 0xffff, 0xffff };
21171 u16 rf_pd_val
, pd_mask
, rssi_ctrl_mask
;
21172 u8 vcm
, min_vcm
, vcm_tmp
[4];
21173 u8 vcm_final
[4] = { 0, 0, 0, 0 };
21174 u8 result_idx
, ctr
;
21175 s32 poll_results
[4][4] = {
21181 s32 poll_miniq
[4][2] = {
21188 s32 fine_digital_offset
[4];
21189 s32 poll_results_min
[4] = { 0, 0, 0, 0 };
21192 switch (rssi_type
) {
21193 case NPHY_RSSI_SEL_NB
:
21194 target_code
= NPHY_RSSICAL_NB_TARGET
;
21196 case NPHY_RSSI_SEL_W1
:
21197 target_code
= NPHY_RSSICAL_W1_TARGET
;
21199 case NPHY_RSSI_SEL_W2
:
21200 target_code
= NPHY_RSSICAL_W2_TARGET
;
21207 classif_state
= wlc_phy_classifier_nphy(pi
, 0, 0);
21208 wlc_phy_classifier_nphy(pi
, (0x7 << 0), 4);
21209 wlc_phy_clip_det_nphy(pi
, 0, clip_state
);
21210 wlc_phy_clip_det_nphy(pi
, 1, clip_off
);
21212 rf_pd_val
= (rssi_type
== NPHY_RSSI_SEL_NB
) ? 0x6 : 0x4;
21213 rfctrlintc_override_val
=
21214 CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x140 : 0x110;
21216 rfctrlintc_state
[0] = read_phy_reg(pi
, 0x91);
21217 rfpdcorerxtx_state
[0] = read_radio_reg(pi
, RADIO_2055_PD_CORE1_RXTX
);
21218 write_phy_reg(pi
, 0x91, rfctrlintc_override_val
);
21219 write_radio_reg(pi
, RADIO_2055_PD_CORE1_RXTX
, rf_pd_val
);
21221 rfctrlintc_state
[1] = read_phy_reg(pi
, 0x92);
21222 rfpdcorerxtx_state
[1] = read_radio_reg(pi
, RADIO_2055_PD_CORE2_RXTX
);
21223 write_phy_reg(pi
, 0x92, rfctrlintc_override_val
);
21224 write_radio_reg(pi
, RADIO_2055_PD_CORE2_RXTX
, rf_pd_val
);
21226 pd_mask
= RADIO_2055_NBRSSI_PD
| RADIO_2055_WBRSSI_G1_PD
|
21227 RADIO_2055_WBRSSI_G2_PD
;
21229 read_radio_reg(pi
, RADIO_2055_PD_CORE1_RSSI_MISC
) & pd_mask
;
21231 read_radio_reg(pi
, RADIO_2055_PD_CORE2_RSSI_MISC
) & pd_mask
;
21232 mod_radio_reg(pi
, RADIO_2055_PD_CORE1_RSSI_MISC
, pd_mask
, 0);
21233 mod_radio_reg(pi
, RADIO_2055_PD_CORE2_RSSI_MISC
, pd_mask
, 0);
21234 rssi_ctrl_mask
= RADIO_2055_NBRSSI_SEL
| RADIO_2055_WBRSSI_G1_SEL
|
21235 RADIO_2055_WBRSSI_G2_SEL
;
21236 rssi_ctrl_state
[0] =
21237 read_radio_reg(pi
, RADIO_2055_SP_RSSI_CORE1
) & rssi_ctrl_mask
;
21238 rssi_ctrl_state
[1] =
21239 read_radio_reg(pi
, RADIO_2055_SP_RSSI_CORE2
) & rssi_ctrl_mask
;
21240 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_ALLRX
, rssi_type
);
21242 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX
,
21243 NPHY_RAIL_I
, rssi_type
);
21244 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX
,
21245 NPHY_RAIL_Q
, rssi_type
);
21247 for (vcm
= 0; vcm
< 4; vcm
++) {
21249 vcm_tmp
[0] = vcm_tmp
[1] = vcm_tmp
[2] = vcm_tmp
[3] = vcm
;
21250 if (rssi_type
!= NPHY_RSSI_SEL_W2
) {
21251 wlc_phy_set_rssi_2055_vcm(pi
, rssi_type
, vcm_tmp
);
21254 wlc_phy_poll_rssi_nphy(pi
, rssi_type
, &poll_results
[vcm
][0],
21255 NPHY_RSSICAL_NPOLL
);
21257 if ((rssi_type
== NPHY_RSSI_SEL_W1
)
21258 || (rssi_type
== NPHY_RSSI_SEL_W2
)) {
21259 for (ctr
= 0; ctr
< 2; ctr
++) {
21260 poll_miniq
[vcm
][ctr
] =
21261 min(poll_results
[vcm
][ctr
* 2 + 0],
21262 poll_results
[vcm
][ctr
* 2 + 1]);
21267 for (result_idx
= 0; result_idx
< 4; result_idx
++) {
21268 min_d
= NPHY_RSSICAL_MAXD
;
21270 min_poll
= NPHY_RSSICAL_MAXREAD
* NPHY_RSSICAL_NPOLL
+ 1;
21271 for (vcm
= 0; vcm
< 4; vcm
++) {
21272 curr_d
= ABS(((rssi_type
== NPHY_RSSI_SEL_NB
) ?
21273 poll_results
[vcm
][result_idx
] :
21274 poll_miniq
[vcm
][result_idx
/ 2]) -
21275 (target_code
* NPHY_RSSICAL_NPOLL
));
21276 if (curr_d
< min_d
) {
21280 if (poll_results
[vcm
][result_idx
] < min_poll
) {
21281 min_poll
= poll_results
[vcm
][result_idx
];
21284 vcm_final
[result_idx
] = min_vcm
;
21285 poll_results_min
[result_idx
] = min_poll
;
21288 if (rssi_type
!= NPHY_RSSI_SEL_W2
) {
21289 wlc_phy_set_rssi_2055_vcm(pi
, rssi_type
, vcm_final
);
21292 for (result_idx
= 0; result_idx
< 4; result_idx
++) {
21293 fine_digital_offset
[result_idx
] =
21294 (target_code
* NPHY_RSSICAL_NPOLL
) -
21295 poll_results
[vcm_final
[result_idx
]][result_idx
];
21296 if (fine_digital_offset
[result_idx
] < 0) {
21297 fine_digital_offset
[result_idx
] =
21298 ABS(fine_digital_offset
[result_idx
]);
21299 fine_digital_offset
[result_idx
] +=
21300 (NPHY_RSSICAL_NPOLL
/ 2);
21301 fine_digital_offset
[result_idx
] /= NPHY_RSSICAL_NPOLL
;
21302 fine_digital_offset
[result_idx
] =
21303 -fine_digital_offset
[result_idx
];
21305 fine_digital_offset
[result_idx
] +=
21306 (NPHY_RSSICAL_NPOLL
/ 2);
21307 fine_digital_offset
[result_idx
] /= NPHY_RSSICAL_NPOLL
;
21310 if (poll_results_min
[result_idx
] ==
21311 NPHY_RSSICAL_MAXREAD
* NPHY_RSSICAL_NPOLL
) {
21312 fine_digital_offset
[result_idx
] =
21313 (target_code
- NPHY_RSSICAL_MAXREAD
- 1);
21316 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0,
21318 fine_digital_offset
[result_idx
],
21320 0) ? RADIO_MIMO_CORESEL_CORE1
:
21321 RADIO_MIMO_CORESEL_CORE2
,
21323 0) ? NPHY_RAIL_I
: NPHY_RAIL_Q
,
21327 mod_radio_reg(pi
, RADIO_2055_PD_CORE1_RSSI_MISC
, pd_mask
, pd_state
[0]);
21328 mod_radio_reg(pi
, RADIO_2055_PD_CORE2_RSSI_MISC
, pd_mask
, pd_state
[1]);
21329 if (rssi_ctrl_state
[0] == RADIO_2055_NBRSSI_SEL
) {
21330 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE1
,
21332 } else if (rssi_ctrl_state
[0] == RADIO_2055_WBRSSI_G1_SEL
) {
21333 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE1
,
21335 } else if (rssi_ctrl_state
[0] == RADIO_2055_WBRSSI_G2_SEL
) {
21336 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE1
,
21339 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE1
,
21342 if (rssi_ctrl_state
[1] == RADIO_2055_NBRSSI_SEL
) {
21343 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE2
,
21345 } else if (rssi_ctrl_state
[1] == RADIO_2055_WBRSSI_G1_SEL
) {
21346 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE2
,
21348 } else if (rssi_ctrl_state
[1] == RADIO_2055_WBRSSI_G2_SEL
) {
21349 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE2
,
21352 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_CORE2
,
21356 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_OFF
, rssi_type
);
21358 write_phy_reg(pi
, 0x91, rfctrlintc_state
[0]);
21359 write_radio_reg(pi
, RADIO_2055_PD_CORE1_RXTX
, rfpdcorerxtx_state
[0]);
21360 write_phy_reg(pi
, 0x92, rfctrlintc_state
[1]);
21361 write_radio_reg(pi
, RADIO_2055_PD_CORE2_RXTX
, rfpdcorerxtx_state
[1]);
21363 wlc_phy_classifier_nphy(pi
, (0x7 << 0), classif_state
);
21364 wlc_phy_clip_det_nphy(pi
, 1, clip_state
);
21366 wlc_phy_resetcca_nphy(pi
);
21370 wlc_phy_rssi_compute_nphy(struct brcms_phy
*pi
, struct brcms_d11rxhdr
*wlc_rxh
)
21372 struct d11rxhdr
*rxh
= &wlc_rxh
->rxhdr
;
21373 s16 rxpwr
, rxpwr0
, rxpwr1
;
21374 s16 phyRx0_l
, phyRx2_l
;
21377 rxpwr0
= le16_to_cpu(rxh
->PhyRxStatus_1
) & PRXS1_nphy_PWR0_MASK
;
21378 rxpwr1
= (le16_to_cpu(rxh
->PhyRxStatus_1
) & PRXS1_nphy_PWR1_MASK
) >> 8;
21385 phyRx0_l
= le16_to_cpu(rxh
->PhyRxStatus_0
) & 0x00ff;
21386 phyRx2_l
= le16_to_cpu(rxh
->PhyRxStatus_2
) & 0x00ff;
21387 if (phyRx2_l
> 127)
21390 if (((rxpwr0
== 16) || (rxpwr0
== 32))) {
21395 wlc_rxh
->rxpwr
[0] = (s8
) rxpwr0
;
21396 wlc_rxh
->rxpwr
[1] = (s8
) rxpwr1
;
21397 wlc_rxh
->do_rssi_ma
= 0;
21399 if (pi
->sh
->rssi_mode
== RSSI_ANT_MERGE_MAX
)
21400 rxpwr
= (rxpwr0
> rxpwr1
) ? rxpwr0
: rxpwr1
;
21401 else if (pi
->sh
->rssi_mode
== RSSI_ANT_MERGE_MIN
)
21402 rxpwr
= (rxpwr0
< rxpwr1
) ? rxpwr0
: rxpwr1
;
21403 else if (pi
->sh
->rssi_mode
== RSSI_ANT_MERGE_AVG
)
21404 rxpwr
= (rxpwr0
+ rxpwr1
) >> 1;
21410 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy
*pi
, u8 field
, u16 value
,
21417 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
21418 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
21419 if (core_code
== RADIO_MIMO_CORESEL_CORE1
21420 && core
== PHY_CORE_1
)
21422 else if (core_code
== RADIO_MIMO_CORESEL_CORE2
21423 && core
== PHY_CORE_0
)
21426 if (NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
21428 mask
= (0x1 << 10);
21430 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x91 :
21434 if (field
== NPHY_RfctrlIntc_override_OFF
) {
21436 write_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x91 :
21439 wlc_phy_force_rfseq_nphy(pi
,
21440 NPHY_RFSEQ_RESET2RX
);
21441 } else if (field
== NPHY_RfctrlIntc_override_TRSW
) {
21443 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21445 mask
= (0x1 << 6) | (0x1 << 7);
21450 PHY_CORE_0
) ? 0x91 : 0x92,
21455 PHY_CORE_0
) ? 0x91 : 0x92,
21458 and_phy_reg(pi
, 0x2ff, (u16
)
21460 or_phy_reg(pi
, 0x2ff, (0x1 << 13));
21461 or_phy_reg(pi
, 0x2ff, (0x1 << 0));
21464 mask
= (0x1 << 6) |
21466 (0x1 << 8) | (0x1 << 9);
21470 PHY_CORE_0
) ? 0x91 : 0x92,
21477 PHY_CORE_0
) ? 0xe7 : 0xec,
21480 mask
= (core
== PHY_CORE_0
) ? (0x1 << 0)
21482 val
= 1 << ((core
== PHY_CORE_0
) ?
21484 mod_phy_reg(pi
, 0x78, mask
, val
);
21486 SPINWAIT(((read_phy_reg(pi
, 0x78) & val
)
21488 if (WARN(read_phy_reg(pi
, 0x78) & val
,
21489 "HW error: override failed"))
21496 PHY_CORE_0
) ? 0xe7 : 0xec,
21499 } else if (field
== NPHY_RfctrlIntc_override_PA
) {
21500 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21502 mask
= (0x1 << 4) | (0x1 << 5);
21504 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
21512 PHY_CORE_0
) ? 0x91 : 0x92,
21517 PHY_CORE_0
) ? 0x91 : 0x92,
21521 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
21530 PHY_CORE_0
) ? 0x91 : 0x92,
21533 } else if (field
== NPHY_RfctrlIntc_override_EXT_LNA_PU
) {
21534 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21535 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
21542 : 0x92, mask
, val
);
21556 : 0x92, mask
, val
);
21565 mask
= (0x1 << 11);
21569 PHY_CORE_0
) ? 0x91 : 0x92,
21573 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
21582 PHY_CORE_0
) ? 0x91 : 0x92,
21585 } else if (field
==
21586 NPHY_RfctrlIntc_override_EXT_LNA_GAIN
) {
21587 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21588 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
21595 : 0x92, mask
, val
);
21609 : 0x92, mask
, val
);
21618 mask
= (0x1 << 11);
21622 PHY_CORE_0
) ? 0x91 : 0x92,
21626 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
21635 PHY_CORE_0
) ? 0x91 : 0x92,
21645 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy
*pi
)
21649 u16 clip_off
[] = { 0xffff, 0xffff };
21654 s32 poll_results
[8][4] = {
21664 s32 poll_result_core
[4] = { 0, 0, 0, 0 };
21665 s32 min_d
= NPHY_RSSICAL_MAXD
, curr_d
;
21666 s32 fine_digital_offset
[4];
21667 s32 poll_results_min
[4] = { 0, 0, 0, 0 };
21673 u16 NPHY_Rfctrlintc1_save
, NPHY_Rfctrlintc2_save
;
21674 u16 NPHY_AfectrlOverride1_save
, NPHY_AfectrlOverride2_save
;
21675 u16 NPHY_AfectrlCore1_save
, NPHY_AfectrlCore2_save
;
21676 u16 NPHY_RfctrlOverride0_save
, NPHY_RfctrlOverride1_save
;
21677 u16 NPHY_RfctrlOverrideAux0_save
, NPHY_RfctrlOverrideAux1_save
;
21678 u16 NPHY_RfctrlCmd_save
;
21679 u16 NPHY_RfctrlMiscReg1_save
, NPHY_RfctrlMiscReg2_save
;
21680 u16 NPHY_RfctrlRSSIOTHERS1_save
, NPHY_RfctrlRSSIOTHERS2_save
;
21682 u16 NPHY_REV7_RfctrlOverride3_save
, NPHY_REV7_RfctrlOverride4_save
;
21683 u16 NPHY_REV7_RfctrlOverride5_save
, NPHY_REV7_RfctrlOverride6_save
;
21684 u16 NPHY_REV7_RfctrlMiscReg3_save
, NPHY_REV7_RfctrlMiscReg4_save
;
21685 u16 NPHY_REV7_RfctrlMiscReg5_save
, NPHY_REV7_RfctrlMiscReg6_save
;
21687 NPHY_REV7_RfctrlOverride3_save
= NPHY_REV7_RfctrlOverride4_save
=
21688 NPHY_REV7_RfctrlOverride5_save
= NPHY_REV7_RfctrlOverride6_save
=
21689 NPHY_REV7_RfctrlMiscReg3_save
= NPHY_REV7_RfctrlMiscReg4_save
=
21690 NPHY_REV7_RfctrlMiscReg5_save
= NPHY_REV7_RfctrlMiscReg6_save
= 0;
21692 classif_state
= wlc_phy_classifier_nphy(pi
, 0, 0);
21693 wlc_phy_classifier_nphy(pi
, (0x7 << 0), 4);
21694 wlc_phy_clip_det_nphy(pi
, 0, clip_state
);
21695 wlc_phy_clip_det_nphy(pi
, 1, clip_off
);
21697 NPHY_Rfctrlintc1_save
= read_phy_reg(pi
, 0x91);
21698 NPHY_Rfctrlintc2_save
= read_phy_reg(pi
, 0x92);
21699 NPHY_AfectrlOverride1_save
= read_phy_reg(pi
, 0x8f);
21700 NPHY_AfectrlOverride2_save
= read_phy_reg(pi
, 0xa5);
21701 NPHY_AfectrlCore1_save
= read_phy_reg(pi
, 0xa6);
21702 NPHY_AfectrlCore2_save
= read_phy_reg(pi
, 0xa7);
21703 NPHY_RfctrlOverride0_save
= read_phy_reg(pi
, 0xe7);
21704 NPHY_RfctrlOverride1_save
= read_phy_reg(pi
, 0xec);
21705 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21706 NPHY_REV7_RfctrlOverride3_save
= read_phy_reg(pi
, 0x342);
21707 NPHY_REV7_RfctrlOverride4_save
= read_phy_reg(pi
, 0x343);
21708 NPHY_REV7_RfctrlOverride5_save
= read_phy_reg(pi
, 0x346);
21709 NPHY_REV7_RfctrlOverride6_save
= read_phy_reg(pi
, 0x347);
21711 NPHY_RfctrlOverrideAux0_save
= read_phy_reg(pi
, 0xe5);
21712 NPHY_RfctrlOverrideAux1_save
= read_phy_reg(pi
, 0xe6);
21713 NPHY_RfctrlCmd_save
= read_phy_reg(pi
, 0x78);
21714 NPHY_RfctrlMiscReg1_save
= read_phy_reg(pi
, 0xf9);
21715 NPHY_RfctrlMiscReg2_save
= read_phy_reg(pi
, 0xfb);
21716 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21717 NPHY_REV7_RfctrlMiscReg3_save
= read_phy_reg(pi
, 0x340);
21718 NPHY_REV7_RfctrlMiscReg4_save
= read_phy_reg(pi
, 0x341);
21719 NPHY_REV7_RfctrlMiscReg5_save
= read_phy_reg(pi
, 0x344);
21720 NPHY_REV7_RfctrlMiscReg6_save
= read_phy_reg(pi
, 0x345);
21722 NPHY_RfctrlRSSIOTHERS1_save
= read_phy_reg(pi
, 0x7a);
21723 NPHY_RfctrlRSSIOTHERS2_save
= read_phy_reg(pi
, 0x7d);
21725 wlc_phy_rfctrlintc_override_nphy(pi
, NPHY_RfctrlIntc_override_OFF
, 0,
21726 RADIO_MIMO_CORESEL_ALLRXTX
);
21727 wlc_phy_rfctrlintc_override_nphy(pi
, NPHY_RfctrlIntc_override_TRSW
, 1,
21728 RADIO_MIMO_CORESEL_ALLRXTX
);
21730 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21731 wlc_phy_rfctrl_override_1tomany_nphy(pi
,
21732 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu
,
21735 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 0), 0, 0, 0);
21738 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21739 wlc_phy_rfctrl_override_1tomany_nphy(pi
,
21740 NPHY_REV7_RfctrlOverride_cmd_rx_pu
,
21743 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 1), 1, 0, 0);
21746 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21747 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 7),
21749 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21750 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 6), 1, 0, 0,
21751 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21753 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 7), 1, 0, 0);
21754 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 6), 1, 0, 0);
21757 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
21758 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21759 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 5),
21761 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21762 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 4), 1, 0,
21764 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21766 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 5), 0, 0, 0);
21767 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 4), 1, 0, 0);
21771 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21772 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 4),
21774 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21775 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 5), 1, 0,
21777 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
21779 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 4), 0, 0, 0);
21780 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 5), 1, 0, 0);
21784 rxcore_state
= wlc_phy_rxcore_getstate_nphy(
21785 (struct brcms_phy_pub
*) pi
);
21789 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
21791 if ((rxcore_state
& (1 << core
)) == 0)
21794 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0,
21797 RADIO_MIMO_CORESEL_CORE1
:
21798 RADIO_MIMO_CORESEL_CORE2
,
21799 NPHY_RAIL_I
, NPHY_RSSI_SEL_NB
);
21800 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0,
21803 RADIO_MIMO_CORESEL_CORE1
:
21804 RADIO_MIMO_CORESEL_CORE2
,
21805 NPHY_RAIL_Q
, NPHY_RSSI_SEL_NB
);
21807 for (vcm
= 0; vcm
< vcm_level_max
; vcm
++) {
21808 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21810 mod_radio_reg(pi
, (core
== PHY_CORE_0
) ?
21811 RADIO_2057_NB_MASTER_CORE0
:
21812 RADIO_2057_NB_MASTER_CORE1
,
21813 RADIO_2057_VCM_MASK
, vcm
);
21816 mod_radio_reg(pi
, RADIO_2056_RX_RSSI_MISC
|
21818 PHY_CORE_0
) ? RADIO_2056_RX0
:
21820 RADIO_2056_VCM_MASK
,
21821 vcm
<< RADIO_2056_RSSI_VCM_SHIFT
);
21824 wlc_phy_poll_rssi_nphy(pi
, NPHY_RSSI_SEL_NB
,
21825 &poll_results
[vcm
][0],
21826 NPHY_RSSICAL_NPOLL
);
21829 for (result_idx
= 0; result_idx
< 4; result_idx
++) {
21830 if ((core
== result_idx
/ 2) && (result_idx
% 2 == 0)) {
21832 min_d
= NPHY_RSSICAL_MAXD
;
21835 NPHY_RSSICAL_MAXREAD
* NPHY_RSSICAL_NPOLL
+
21837 for (vcm
= 0; vcm
< vcm_level_max
; vcm
++) {
21838 curr_d
= poll_results
[vcm
][result_idx
] *
21839 poll_results
[vcm
][result_idx
] +
21840 poll_results
[vcm
][result_idx
+ 1] *
21841 poll_results
[vcm
][result_idx
+ 1];
21842 if (curr_d
< min_d
) {
21846 if (poll_results
[vcm
][result_idx
] <
21853 vcm_final
= min_vcm
;
21854 poll_results_min
[result_idx
] = min_poll
;
21858 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
21859 mod_radio_reg(pi
, (core
== PHY_CORE_0
) ?
21860 RADIO_2057_NB_MASTER_CORE0
:
21861 RADIO_2057_NB_MASTER_CORE1
,
21862 RADIO_2057_VCM_MASK
, vcm_final
);
21864 mod_radio_reg(pi
, RADIO_2056_RX_RSSI_MISC
|
21866 PHY_CORE_0
) ? RADIO_2056_RX0
:
21867 RADIO_2056_RX1
), RADIO_2056_VCM_MASK
,
21868 vcm_final
<< RADIO_2056_RSSI_VCM_SHIFT
);
21871 for (result_idx
= 0; result_idx
< 4; result_idx
++) {
21872 if (core
== result_idx
/ 2) {
21873 fine_digital_offset
[result_idx
] =
21874 (NPHY_RSSICAL_NB_TARGET
*
21875 NPHY_RSSICAL_NPOLL
) -
21876 poll_results
[vcm_final
][result_idx
];
21877 if (fine_digital_offset
[result_idx
] < 0) {
21878 fine_digital_offset
[result_idx
] =
21879 ABS(fine_digital_offset
21881 fine_digital_offset
[result_idx
] +=
21882 (NPHY_RSSICAL_NPOLL
/ 2);
21883 fine_digital_offset
[result_idx
] /=
21884 NPHY_RSSICAL_NPOLL
;
21885 fine_digital_offset
[result_idx
] =
21886 -fine_digital_offset
[result_idx
];
21888 fine_digital_offset
[result_idx
] +=
21889 (NPHY_RSSICAL_NPOLL
/ 2);
21890 fine_digital_offset
[result_idx
] /=
21891 NPHY_RSSICAL_NPOLL
;
21894 if (poll_results_min
[result_idx
] ==
21895 NPHY_RSSICAL_MAXREAD
* NPHY_RSSICAL_NPOLL
) {
21896 fine_digital_offset
[result_idx
] =
21897 (NPHY_RSSICAL_NB_TARGET
-
21898 NPHY_RSSICAL_MAXREAD
- 1);
21901 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0,
21903 fine_digital_offset
21908 RADIO_MIMO_CORESEL_CORE1
21910 RADIO_MIMO_CORESEL_CORE2
,
21921 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
21923 if ((rxcore_state
& (1 << core
)) == 0)
21926 for (wb_cnt
= 0; wb_cnt
< 2; wb_cnt
++) {
21928 rssi_type
= NPHY_RSSI_SEL_W1
;
21929 target_code
= NPHY_RSSICAL_W1_TARGET_REV3
;
21931 rssi_type
= NPHY_RSSI_SEL_W2
;
21932 target_code
= NPHY_RSSICAL_W2_TARGET_REV3
;
21935 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0,
21938 RADIO_MIMO_CORESEL_CORE1
21940 RADIO_MIMO_CORESEL_CORE2
,
21941 NPHY_RAIL_I
, rssi_type
);
21942 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0, 0x0,
21945 RADIO_MIMO_CORESEL_CORE1
21947 RADIO_MIMO_CORESEL_CORE2
,
21948 NPHY_RAIL_Q
, rssi_type
);
21950 wlc_phy_poll_rssi_nphy(pi
, rssi_type
, poll_result_core
,
21951 NPHY_RSSICAL_NPOLL
);
21953 for (result_idx
= 0; result_idx
< 4; result_idx
++) {
21954 if (core
== result_idx
/ 2) {
21955 fine_digital_offset
[result_idx
] =
21956 (target_code
* NPHY_RSSICAL_NPOLL
) -
21957 poll_result_core
[result_idx
];
21958 if (fine_digital_offset
[result_idx
] < 0) {
21959 fine_digital_offset
[result_idx
]
21961 ABS(fine_digital_offset
21963 fine_digital_offset
[result_idx
]
21964 += (NPHY_RSSICAL_NPOLL
/ 2);
21965 fine_digital_offset
[result_idx
]
21966 /= NPHY_RSSICAL_NPOLL
;
21967 fine_digital_offset
[result_idx
]
21969 -fine_digital_offset
21972 fine_digital_offset
[result_idx
]
21973 += (NPHY_RSSICAL_NPOLL
/ 2);
21974 fine_digital_offset
[result_idx
]
21975 /= NPHY_RSSICAL_NPOLL
;
21978 wlc_phy_scale_offset_rssi_nphy(pi
, 0x0,
21980 fine_digital_offset
21986 RADIO_MIMO_CORESEL_CORE1
21988 RADIO_MIMO_CORESEL_CORE2
,
22002 write_phy_reg(pi
, 0x91, NPHY_Rfctrlintc1_save
);
22003 write_phy_reg(pi
, 0x92, NPHY_Rfctrlintc2_save
);
22005 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
22007 mod_phy_reg(pi
, 0xe7, (0x1 << 0), 1 << 0);
22008 mod_phy_reg(pi
, 0x78, (0x1 << 0), 1 << 0);
22009 mod_phy_reg(pi
, 0xe7, (0x1 << 0), 0);
22011 mod_phy_reg(pi
, 0xec, (0x1 << 0), 1 << 0);
22012 mod_phy_reg(pi
, 0x78, (0x1 << 1), 1 << 1);
22013 mod_phy_reg(pi
, 0xec, (0x1 << 0), 0);
22015 write_phy_reg(pi
, 0x8f, NPHY_AfectrlOverride1_save
);
22016 write_phy_reg(pi
, 0xa5, NPHY_AfectrlOverride2_save
);
22017 write_phy_reg(pi
, 0xa6, NPHY_AfectrlCore1_save
);
22018 write_phy_reg(pi
, 0xa7, NPHY_AfectrlCore2_save
);
22019 write_phy_reg(pi
, 0xe7, NPHY_RfctrlOverride0_save
);
22020 write_phy_reg(pi
, 0xec, NPHY_RfctrlOverride1_save
);
22021 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22022 write_phy_reg(pi
, 0x342, NPHY_REV7_RfctrlOverride3_save
);
22023 write_phy_reg(pi
, 0x343, NPHY_REV7_RfctrlOverride4_save
);
22024 write_phy_reg(pi
, 0x346, NPHY_REV7_RfctrlOverride5_save
);
22025 write_phy_reg(pi
, 0x347, NPHY_REV7_RfctrlOverride6_save
);
22027 write_phy_reg(pi
, 0xe5, NPHY_RfctrlOverrideAux0_save
);
22028 write_phy_reg(pi
, 0xe6, NPHY_RfctrlOverrideAux1_save
);
22029 write_phy_reg(pi
, 0x78, NPHY_RfctrlCmd_save
);
22030 write_phy_reg(pi
, 0xf9, NPHY_RfctrlMiscReg1_save
);
22031 write_phy_reg(pi
, 0xfb, NPHY_RfctrlMiscReg2_save
);
22032 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22033 write_phy_reg(pi
, 0x340, NPHY_REV7_RfctrlMiscReg3_save
);
22034 write_phy_reg(pi
, 0x341, NPHY_REV7_RfctrlMiscReg4_save
);
22035 write_phy_reg(pi
, 0x344, NPHY_REV7_RfctrlMiscReg5_save
);
22036 write_phy_reg(pi
, 0x345, NPHY_REV7_RfctrlMiscReg6_save
);
22038 write_phy_reg(pi
, 0x7a, NPHY_RfctrlRSSIOTHERS1_save
);
22039 write_phy_reg(pi
, 0x7d, NPHY_RfctrlRSSIOTHERS2_save
);
22041 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
22042 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22043 pi
->rssical_cache
.rssical_radio_regs_2G
[0] =
22044 read_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE0
);
22045 pi
->rssical_cache
.rssical_radio_regs_2G
[1] =
22046 read_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE1
);
22048 pi
->rssical_cache
.rssical_radio_regs_2G
[0] =
22050 RADIO_2056_RX_RSSI_MISC
|
22052 pi
->rssical_cache
.rssical_radio_regs_2G
[1] =
22054 RADIO_2056_RX_RSSI_MISC
|
22058 pi
->rssical_cache
.rssical_phyregs_2G
[0] =
22059 read_phy_reg(pi
, 0x1a6);
22060 pi
->rssical_cache
.rssical_phyregs_2G
[1] =
22061 read_phy_reg(pi
, 0x1ac);
22062 pi
->rssical_cache
.rssical_phyregs_2G
[2] =
22063 read_phy_reg(pi
, 0x1b2);
22064 pi
->rssical_cache
.rssical_phyregs_2G
[3] =
22065 read_phy_reg(pi
, 0x1b8);
22066 pi
->rssical_cache
.rssical_phyregs_2G
[4] =
22067 read_phy_reg(pi
, 0x1a4);
22068 pi
->rssical_cache
.rssical_phyregs_2G
[5] =
22069 read_phy_reg(pi
, 0x1aa);
22070 pi
->rssical_cache
.rssical_phyregs_2G
[6] =
22071 read_phy_reg(pi
, 0x1b0);
22072 pi
->rssical_cache
.rssical_phyregs_2G
[7] =
22073 read_phy_reg(pi
, 0x1b6);
22074 pi
->rssical_cache
.rssical_phyregs_2G
[8] =
22075 read_phy_reg(pi
, 0x1a5);
22076 pi
->rssical_cache
.rssical_phyregs_2G
[9] =
22077 read_phy_reg(pi
, 0x1ab);
22078 pi
->rssical_cache
.rssical_phyregs_2G
[10] =
22079 read_phy_reg(pi
, 0x1b1);
22080 pi
->rssical_cache
.rssical_phyregs_2G
[11] =
22081 read_phy_reg(pi
, 0x1b7);
22083 pi
->nphy_rssical_chanspec_2G
= pi
->radio_chanspec
;
22085 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22086 pi
->rssical_cache
.rssical_radio_regs_5G
[0] =
22087 read_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE0
);
22088 pi
->rssical_cache
.rssical_radio_regs_5G
[1] =
22089 read_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE1
);
22091 pi
->rssical_cache
.rssical_radio_regs_5G
[0] =
22093 RADIO_2056_RX_RSSI_MISC
|
22095 pi
->rssical_cache
.rssical_radio_regs_5G
[1] =
22097 RADIO_2056_RX_RSSI_MISC
|
22101 pi
->rssical_cache
.rssical_phyregs_5G
[0] =
22102 read_phy_reg(pi
, 0x1a6);
22103 pi
->rssical_cache
.rssical_phyregs_5G
[1] =
22104 read_phy_reg(pi
, 0x1ac);
22105 pi
->rssical_cache
.rssical_phyregs_5G
[2] =
22106 read_phy_reg(pi
, 0x1b2);
22107 pi
->rssical_cache
.rssical_phyregs_5G
[3] =
22108 read_phy_reg(pi
, 0x1b8);
22109 pi
->rssical_cache
.rssical_phyregs_5G
[4] =
22110 read_phy_reg(pi
, 0x1a4);
22111 pi
->rssical_cache
.rssical_phyregs_5G
[5] =
22112 read_phy_reg(pi
, 0x1aa);
22113 pi
->rssical_cache
.rssical_phyregs_5G
[6] =
22114 read_phy_reg(pi
, 0x1b0);
22115 pi
->rssical_cache
.rssical_phyregs_5G
[7] =
22116 read_phy_reg(pi
, 0x1b6);
22117 pi
->rssical_cache
.rssical_phyregs_5G
[8] =
22118 read_phy_reg(pi
, 0x1a5);
22119 pi
->rssical_cache
.rssical_phyregs_5G
[9] =
22120 read_phy_reg(pi
, 0x1ab);
22121 pi
->rssical_cache
.rssical_phyregs_5G
[10] =
22122 read_phy_reg(pi
, 0x1b1);
22123 pi
->rssical_cache
.rssical_phyregs_5G
[11] =
22124 read_phy_reg(pi
, 0x1b7);
22126 pi
->nphy_rssical_chanspec_5G
= pi
->radio_chanspec
;
22129 wlc_phy_classifier_nphy(pi
, (0x7 << 0), classif_state
);
22130 wlc_phy_clip_det_nphy(pi
, 1, clip_state
);
22133 static void wlc_phy_restore_rssical_nphy(struct brcms_phy
*pi
)
22135 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
22136 if (pi
->nphy_rssical_chanspec_2G
== 0)
22139 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22140 mod_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE0
,
22141 RADIO_2057_VCM_MASK
,
22143 rssical_radio_regs_2G
[0]);
22144 mod_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE1
,
22145 RADIO_2057_VCM_MASK
,
22147 rssical_radio_regs_2G
[1]);
22150 RADIO_2056_RX_RSSI_MISC
| RADIO_2056_RX0
,
22151 RADIO_2056_VCM_MASK
,
22153 rssical_radio_regs_2G
[0]);
22155 RADIO_2056_RX_RSSI_MISC
| RADIO_2056_RX1
,
22156 RADIO_2056_VCM_MASK
,
22158 rssical_radio_regs_2G
[1]);
22161 write_phy_reg(pi
, 0x1a6,
22162 pi
->rssical_cache
.rssical_phyregs_2G
[0]);
22163 write_phy_reg(pi
, 0x1ac,
22164 pi
->rssical_cache
.rssical_phyregs_2G
[1]);
22165 write_phy_reg(pi
, 0x1b2,
22166 pi
->rssical_cache
.rssical_phyregs_2G
[2]);
22167 write_phy_reg(pi
, 0x1b8,
22168 pi
->rssical_cache
.rssical_phyregs_2G
[3]);
22169 write_phy_reg(pi
, 0x1a4,
22170 pi
->rssical_cache
.rssical_phyregs_2G
[4]);
22171 write_phy_reg(pi
, 0x1aa,
22172 pi
->rssical_cache
.rssical_phyregs_2G
[5]);
22173 write_phy_reg(pi
, 0x1b0,
22174 pi
->rssical_cache
.rssical_phyregs_2G
[6]);
22175 write_phy_reg(pi
, 0x1b6,
22176 pi
->rssical_cache
.rssical_phyregs_2G
[7]);
22177 write_phy_reg(pi
, 0x1a5,
22178 pi
->rssical_cache
.rssical_phyregs_2G
[8]);
22179 write_phy_reg(pi
, 0x1ab,
22180 pi
->rssical_cache
.rssical_phyregs_2G
[9]);
22181 write_phy_reg(pi
, 0x1b1,
22182 pi
->rssical_cache
.rssical_phyregs_2G
[10]);
22183 write_phy_reg(pi
, 0x1b7,
22184 pi
->rssical_cache
.rssical_phyregs_2G
[11]);
22187 if (pi
->nphy_rssical_chanspec_5G
== 0)
22190 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22191 mod_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE0
,
22192 RADIO_2057_VCM_MASK
,
22194 rssical_radio_regs_5G
[0]);
22195 mod_radio_reg(pi
, RADIO_2057_NB_MASTER_CORE1
,
22196 RADIO_2057_VCM_MASK
,
22198 rssical_radio_regs_5G
[1]);
22201 RADIO_2056_RX_RSSI_MISC
| RADIO_2056_RX0
,
22202 RADIO_2056_VCM_MASK
,
22204 rssical_radio_regs_5G
[0]);
22206 RADIO_2056_RX_RSSI_MISC
| RADIO_2056_RX1
,
22207 RADIO_2056_VCM_MASK
,
22209 rssical_radio_regs_5G
[1]);
22212 write_phy_reg(pi
, 0x1a6,
22213 pi
->rssical_cache
.rssical_phyregs_5G
[0]);
22214 write_phy_reg(pi
, 0x1ac,
22215 pi
->rssical_cache
.rssical_phyregs_5G
[1]);
22216 write_phy_reg(pi
, 0x1b2,
22217 pi
->rssical_cache
.rssical_phyregs_5G
[2]);
22218 write_phy_reg(pi
, 0x1b8,
22219 pi
->rssical_cache
.rssical_phyregs_5G
[3]);
22220 write_phy_reg(pi
, 0x1a4,
22221 pi
->rssical_cache
.rssical_phyregs_5G
[4]);
22222 write_phy_reg(pi
, 0x1aa,
22223 pi
->rssical_cache
.rssical_phyregs_5G
[5]);
22224 write_phy_reg(pi
, 0x1b0,
22225 pi
->rssical_cache
.rssical_phyregs_5G
[6]);
22226 write_phy_reg(pi
, 0x1b6,
22227 pi
->rssical_cache
.rssical_phyregs_5G
[7]);
22228 write_phy_reg(pi
, 0x1a5,
22229 pi
->rssical_cache
.rssical_phyregs_5G
[8]);
22230 write_phy_reg(pi
, 0x1ab,
22231 pi
->rssical_cache
.rssical_phyregs_5G
[9]);
22232 write_phy_reg(pi
, 0x1b1,
22233 pi
->rssical_cache
.rssical_phyregs_5G
[10]);
22234 write_phy_reg(pi
, 0x1b7,
22235 pi
->rssical_cache
.rssical_phyregs_5G
[11]);
22240 wlc_phy_gen_load_samples_nphy(struct brcms_phy
*pi
, u32 f_kHz
, u16 max_val
,
22243 u8 phy_bw
, is_phybw40
;
22244 u16 num_samps
, t
, spur
;
22245 fixed theta
= 0, rot
= 0;
22247 cs32
*tone_buf
= NULL
;
22249 is_phybw40
= CHSPEC_IS40(pi
->radio_chanspec
);
22250 phy_bw
= (is_phybw40
== 1) ? 40 : 20;
22251 tbl_len
= (phy_bw
<< 3);
22253 if (dac_test_mode
== 1) {
22254 spur
= read_phy_reg(pi
, 0x01);
22255 spur
= (spur
>> 15) & 1;
22256 phy_bw
= (spur
== 1) ? 82 : 80;
22257 phy_bw
= (is_phybw40
== 1) ? (phy_bw
<< 1) : phy_bw
;
22259 tbl_len
= (phy_bw
<< 1);
22262 tone_buf
= kmalloc(sizeof(cs32
) * tbl_len
, GFP_ATOMIC
);
22263 if (tone_buf
== NULL
) {
22267 num_samps
= (u16
) tbl_len
;
22268 rot
= FIXED((f_kHz
* 36) / phy_bw
) / 100;
22271 for (t
= 0; t
< num_samps
; t
++) {
22273 wlc_phy_cordic(theta
, &tone_buf
[t
]);
22277 tone_buf
[t
].q
= (s32
) FLOAT(tone_buf
[t
].q
* max_val
);
22278 tone_buf
[t
].i
= (s32
) FLOAT(tone_buf
[t
].i
* max_val
);
22281 wlc_phy_loadsampletable_nphy(pi
, tone_buf
, num_samps
);
22289 wlc_phy_tx_tone_nphy(struct brcms_phy
*pi
, u32 f_kHz
, u16 max_val
,
22290 u8 iqmode
, u8 dac_test_mode
, bool modify_bbmult
)
22293 u16 loops
= 0xffff;
22297 wlc_phy_gen_load_samples_nphy(pi
, f_kHz
, max_val
, dac_test_mode
);
22298 if (num_samps
== 0) {
22302 wlc_phy_runsamples_nphy(pi
, num_samps
, loops
, wait
, iqmode
,
22303 dac_test_mode
, modify_bbmult
);
22309 wlc_phy_loadsampletable_nphy(struct brcms_phy
*pi
, cs32
*tone_buf
,
22313 u32
*data_buf
= NULL
;
22315 data_buf
= kmalloc(sizeof(u32
) * num_samps
, GFP_ATOMIC
);
22316 if (data_buf
== NULL
) {
22320 if (pi
->phyhang_avoid
)
22321 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
22323 for (t
= 0; t
< num_samps
; t
++) {
22324 data_buf
[t
] = ((((unsigned int)tone_buf
[t
].i
) & 0x3ff) << 10) |
22325 (((unsigned int)tone_buf
[t
].q
) & 0x3ff);
22327 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_SAMPLEPLAY
, num_samps
, 0, 32,
22332 if (pi
->phyhang_avoid
)
22333 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
22337 wlc_phy_runsamples_nphy(struct brcms_phy
*pi
, u16 num_samps
, u16 loops
,
22338 u16 wait
, u8 iqmode
, u8 dac_test_mode
,
22339 bool modify_bbmult
)
22342 u8 phy_bw
, sample_cmd
;
22343 u16 orig_RfseqCoreActv
;
22344 u16 lpf_bw_ctl_override3
, lpf_bw_ctl_override4
, lpf_bw_ctl_miscreg3
,
22345 lpf_bw_ctl_miscreg4
;
22347 if (pi
->phyhang_avoid
)
22348 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
22351 if (CHSPEC_IS40(pi
->radio_chanspec
))
22354 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22356 lpf_bw_ctl_override3
= read_phy_reg(pi
, 0x342) & (0x1 << 7);
22357 lpf_bw_ctl_override4
= read_phy_reg(pi
, 0x343) & (0x1 << 7);
22358 if (lpf_bw_ctl_override3
| lpf_bw_ctl_override4
) {
22359 lpf_bw_ctl_miscreg3
= read_phy_reg(pi
, 0x340) &
22361 lpf_bw_ctl_miscreg4
= read_phy_reg(pi
, 0x341) &
22364 wlc_phy_rfctrl_override_nphy_rev7(pi
,
22366 wlc_phy_read_lpf_bw_ctl_nphy
22368 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
22370 pi
->nphy_sample_play_lpf_bw_ctl_ovr
= true;
22372 lpf_bw_ctl_miscreg3
= read_phy_reg(pi
, 0x340) &
22374 lpf_bw_ctl_miscreg4
= read_phy_reg(pi
, 0x341) &
22379 if ((pi
->nphy_bb_mult_save
& BB_MULT_VALID_MASK
) == 0) {
22381 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 1, 87, 16,
22383 pi
->nphy_bb_mult_save
=
22384 BB_MULT_VALID_MASK
| (bb_mult
& BB_MULT_MASK
);
22387 if (modify_bbmult
) {
22388 bb_mult
= (phy_bw
== 20) ? 100 : 71;
22389 bb_mult
= (bb_mult
<< 8) + bb_mult
;
22390 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 1, 87, 16,
22394 if (pi
->phyhang_avoid
)
22395 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
22397 write_phy_reg(pi
, 0xc6, num_samps
- 1);
22399 if (loops
!= 0xffff) {
22400 write_phy_reg(pi
, 0xc4, loops
- 1);
22402 write_phy_reg(pi
, 0xc4, loops
);
22404 write_phy_reg(pi
, 0xc5, wait
);
22406 orig_RfseqCoreActv
= read_phy_reg(pi
, 0xa1);
22407 or_phy_reg(pi
, 0xa1, NPHY_RfseqMode_CoreActv_override
);
22410 and_phy_reg(pi
, 0xc2, 0x7FFF);
22412 or_phy_reg(pi
, 0xc2, 0x8000);
22415 sample_cmd
= (dac_test_mode
== 1) ? 0x5 : 0x1;
22416 write_phy_reg(pi
, 0xc3, sample_cmd
);
22419 SPINWAIT(((read_phy_reg(pi
, 0xa4) & 0x1) == 1), 1000);
22421 write_phy_reg(pi
, 0xa1, orig_RfseqCoreActv
);
22424 void wlc_phy_stopplayback_nphy(struct brcms_phy
*pi
)
22426 u16 playback_status
;
22429 if (pi
->phyhang_avoid
)
22430 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
22432 playback_status
= read_phy_reg(pi
, 0xc7);
22433 if (playback_status
& 0x1) {
22434 or_phy_reg(pi
, 0xc3, NPHY_sampleCmd_STOP
);
22435 } else if (playback_status
& 0x2) {
22437 and_phy_reg(pi
, 0xc2,
22438 (u16
) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN
);
22441 and_phy_reg(pi
, 0xc3, (u16
) ~(0x1 << 2));
22443 if ((pi
->nphy_bb_mult_save
& BB_MULT_VALID_MASK
) != 0) {
22445 bb_mult
= pi
->nphy_bb_mult_save
& BB_MULT_MASK
;
22446 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 1, 87, 16,
22449 pi
->nphy_bb_mult_save
= 0;
22452 if (NREV_IS(pi
->pubpi
.phy_rev
, 7) || NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
22453 if (pi
->nphy_sample_play_lpf_bw_ctl_ovr
) {
22454 wlc_phy_rfctrl_override_nphy_rev7(pi
,
22457 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
22458 pi
->nphy_sample_play_lpf_bw_ctl_ovr
= false;
22462 if (pi
->phyhang_avoid
)
22463 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
22466 struct nphy_txgains
wlc_phy_get_tx_gain_nphy(struct brcms_phy
*pi
)
22468 u16 base_idx
[2], curr_gain
[2];
22470 struct nphy_txgains target_gain
;
22471 u32
*tx_pwrctrl_tbl
= NULL
;
22473 if (pi
->nphy_txpwrctrl
== PHY_TPC_HW_OFF
) {
22474 if (pi
->phyhang_avoid
)
22475 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
22477 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
22480 if (pi
->phyhang_avoid
)
22481 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
22483 for (core_no
= 0; core_no
< 2; core_no
++) {
22484 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22485 target_gain
.ipa
[core_no
] =
22486 curr_gain
[core_no
] & 0x0007;
22487 target_gain
.pad
[core_no
] =
22488 ((curr_gain
[core_no
] & 0x00F8) >> 3);
22489 target_gain
.pga
[core_no
] =
22490 ((curr_gain
[core_no
] & 0x0F00) >> 8);
22491 target_gain
.txgm
[core_no
] =
22492 ((curr_gain
[core_no
] & 0x7000) >> 12);
22493 target_gain
.txlpf
[core_no
] =
22494 ((curr_gain
[core_no
] & 0x8000) >> 15);
22495 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
22496 target_gain
.ipa
[core_no
] =
22497 curr_gain
[core_no
] & 0x000F;
22498 target_gain
.pad
[core_no
] =
22499 ((curr_gain
[core_no
] & 0x00F0) >> 4);
22500 target_gain
.pga
[core_no
] =
22501 ((curr_gain
[core_no
] & 0x0F00) >> 8);
22502 target_gain
.txgm
[core_no
] =
22503 ((curr_gain
[core_no
] & 0x7000) >> 12);
22505 target_gain
.ipa
[core_no
] =
22506 curr_gain
[core_no
] & 0x0003;
22507 target_gain
.pad
[core_no
] =
22508 ((curr_gain
[core_no
] & 0x000C) >> 2);
22509 target_gain
.pga
[core_no
] =
22510 ((curr_gain
[core_no
] & 0x0070) >> 4);
22511 target_gain
.txgm
[core_no
] =
22512 ((curr_gain
[core_no
] & 0x0380) >> 7);
22516 uint phyrev
= pi
->pubpi
.phy_rev
;
22518 base_idx
[0] = (read_phy_reg(pi
, 0x1ed) >> 8) & 0x7f;
22519 base_idx
[1] = (read_phy_reg(pi
, 0x1ee) >> 8) & 0x7f;
22520 for (core_no
= 0; core_no
< 2; core_no
++) {
22521 if (NREV_GE(phyrev
, 3)) {
22524 wlc_phy_get_ipa_gaintbl_nphy(pi
);
22526 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
22527 if (NREV_IS(phyrev
, 3)) {
22529 nphy_tpc_5GHz_txgain_rev3
;
22530 } else if (NREV_IS(phyrev
, 4)) {
22535 nphy_tpc_5GHz_txgain_HiPwrEPA
22537 nphy_tpc_5GHz_txgain_rev4
;
22540 nphy_tpc_5GHz_txgain_rev5
;
22543 if (NREV_GE(phyrev
, 7)) {
22547 nphy_tpc_txgain_epa_2057rev3
;
22548 } else if (pi
->pubpi
.
22552 nphy_tpc_txgain_epa_2057rev5
;
22556 if (NREV_GE(phyrev
, 5)
22557 && (pi
->srom_fem2g
.
22561 nphy_tpc_txgain_HiPwrEPA
;
22564 nphy_tpc_txgain_rev3
;
22569 if (NREV_GE(phyrev
, 7)) {
22570 target_gain
.ipa
[core_no
] =
22571 (tx_pwrctrl_tbl
[base_idx
[core_no
]]
22573 target_gain
.pad
[core_no
] =
22574 (tx_pwrctrl_tbl
[base_idx
[core_no
]]
22576 target_gain
.pga
[core_no
] =
22577 (tx_pwrctrl_tbl
[base_idx
[core_no
]]
22579 target_gain
.txgm
[core_no
] =
22580 (tx_pwrctrl_tbl
[base_idx
[core_no
]]
22582 target_gain
.txlpf
[core_no
] =
22583 (tx_pwrctrl_tbl
[base_idx
[core_no
]]
22586 target_gain
.ipa
[core_no
] =
22587 (tx_pwrctrl_tbl
[base_idx
[core_no
]]
22589 target_gain
.pad
[core_no
] =
22590 (tx_pwrctrl_tbl
[base_idx
[core_no
]]
22592 target_gain
.pga
[core_no
] =
22593 (tx_pwrctrl_tbl
[base_idx
[core_no
]]
22595 target_gain
.txgm
[core_no
] =
22596 (tx_pwrctrl_tbl
[base_idx
[core_no
]]
22600 target_gain
.ipa
[core_no
] =
22601 (nphy_tpc_txgain
[base_idx
[core_no
]] >> 16) &
22603 target_gain
.pad
[core_no
] =
22604 (nphy_tpc_txgain
[base_idx
[core_no
]] >> 18) &
22606 target_gain
.pga
[core_no
] =
22607 (nphy_tpc_txgain
[base_idx
[core_no
]] >> 20) &
22609 target_gain
.txgm
[core_no
] =
22610 (nphy_tpc_txgain
[base_idx
[core_no
]] >> 23) &
22616 return target_gain
;
22620 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy
*pi
, u16 core_no
,
22621 struct nphy_txgains target_gain
,
22622 struct nphy_iqcal_params
*params
)
22627 u8 band_idx
= (CHSPEC_IS5G(pi
->radio_chanspec
) ? 1 : 0);
22629 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
22630 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22631 params
->txlpf
= target_gain
.txlpf
[core_no
];
22633 params
->txgm
= target_gain
.txgm
[core_no
];
22634 params
->pga
= target_gain
.pga
[core_no
];
22635 params
->pad
= target_gain
.pad
[core_no
];
22636 params
->ipa
= target_gain
.ipa
[core_no
];
22637 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22639 ((params
->txlpf
<< 15) | (params
->
22640 txgm
<< 12) | (params
->
22642 (params
->pad
<< 3) | (params
->ipa
));
22645 ((params
->txgm
<< 12) | (params
->
22646 pga
<< 8) | (params
->
22650 params
->ncorr
[0] = 0x79;
22651 params
->ncorr
[1] = 0x79;
22652 params
->ncorr
[2] = 0x79;
22653 params
->ncorr
[3] = 0x79;
22654 params
->ncorr
[4] = 0x79;
22657 gain_index
= ((target_gain
.pad
[core_no
] << 0) |
22658 (target_gain
.pga
[core_no
] << 4) | (target_gain
.
22663 for (k
= 0; k
< NPHY_IQCAL_NUMGAINS
; k
++) {
22664 if (tbl_iqcal_gainparams_nphy
[band_idx
][k
][0] ==
22671 params
->txgm
= tbl_iqcal_gainparams_nphy
[band_idx
][k
][1];
22672 params
->pga
= tbl_iqcal_gainparams_nphy
[band_idx
][k
][2];
22673 params
->pad
= tbl_iqcal_gainparams_nphy
[band_idx
][k
][3];
22674 params
->cal_gain
= ((params
->txgm
<< 7) | (params
->pga
<< 4) |
22675 (params
->pad
<< 2));
22676 params
->ncorr
[0] = tbl_iqcal_gainparams_nphy
[band_idx
][k
][4];
22677 params
->ncorr
[1] = tbl_iqcal_gainparams_nphy
[band_idx
][k
][5];
22678 params
->ncorr
[2] = tbl_iqcal_gainparams_nphy
[band_idx
][k
][6];
22679 params
->ncorr
[3] = tbl_iqcal_gainparams_nphy
[band_idx
][k
][7];
22683 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy
*pi
)
22685 u16 jtag_core
, core
;
22687 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22689 for (core
= 0; core
<= 1; core
++) {
22691 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 0] =
22692 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22695 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 1] =
22696 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22699 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 2] =
22700 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22703 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 3] =
22704 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSI_VCM
);
22706 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 4] = 0;
22708 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 5] =
22709 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22712 if (pi
->pubpi
.radiorev
!= 5)
22713 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 6] =
22714 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22717 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 7] =
22718 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSIG
);
22720 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 8] =
22721 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22724 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
22725 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22726 TX_SSI_MASTER
, 0x0a);
22727 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22728 IQCAL_VCM_HG
, 0x43);
22729 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22731 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22733 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22735 if (pi
->use_int_tx_iqlo_cal_nphy
) {
22736 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
22737 core
, TX_SSI_MUX
, 0x4);
22740 internal_tx_iqlo_cal_tapoff_intpa_nphy
)) {
22742 WRITE_RADIO_REG3(pi
, RADIO_2057
,
22747 WRITE_RADIO_REG3(pi
, RADIO_2057
,
22752 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22755 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22756 TX_SSI_MASTER
, 0x06);
22757 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22758 IQCAL_VCM_HG
, 0x43);
22759 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22761 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22764 if (pi
->pubpi
.radiorev
!= 5)
22765 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
22766 core
, TSSIA
, 0x00);
22767 if (pi
->use_int_tx_iqlo_cal_nphy
) {
22768 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
22773 internal_tx_iqlo_cal_tapoff_intpa_nphy
)) {
22775 WRITE_RADIO_REG3(pi
, RADIO_2057
,
22780 WRITE_RADIO_REG3(pi
, RADIO_2057
,
22785 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
22789 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
22791 for (core
= 0; core
<= 1; core
++) {
22794 PHY_CORE_0
) ? RADIO_2056_TX0
: RADIO_2056_TX1
;
22796 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 0] =
22798 RADIO_2056_TX_TX_SSI_MASTER
|
22801 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 1] =
22803 RADIO_2056_TX_IQCAL_VCM_HG
|
22806 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 2] =
22808 RADIO_2056_TX_IQCAL_IDAC
|
22811 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 3] =
22813 RADIO_2056_TX_TSSI_VCM
| jtag_core
);
22815 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 4] =
22817 RADIO_2056_TX_TX_AMP_DET
|
22820 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 5] =
22822 RADIO_2056_TX_TX_SSI_MUX
|
22825 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 6] =
22826 read_radio_reg(pi
, RADIO_2056_TX_TSSIA
| jtag_core
);
22828 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 7] =
22829 read_radio_reg(pi
, RADIO_2056_TX_TSSIG
| jtag_core
);
22831 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 8] =
22833 RADIO_2056_TX_TSSI_MISC1
|
22836 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 9] =
22838 RADIO_2056_TX_TSSI_MISC2
|
22841 pi
->tx_rx_cal_radio_saveregs
[(core
* 11) + 10] =
22843 RADIO_2056_TX_TSSI_MISC3
|
22846 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
22847 write_radio_reg(pi
,
22848 RADIO_2056_TX_TX_SSI_MASTER
|
22850 write_radio_reg(pi
,
22851 RADIO_2056_TX_IQCAL_VCM_HG
|
22853 write_radio_reg(pi
,
22854 RADIO_2056_TX_IQCAL_IDAC
|
22856 write_radio_reg(pi
,
22857 RADIO_2056_TX_TSSI_VCM
|
22859 write_radio_reg(pi
,
22860 RADIO_2056_TX_TX_AMP_DET
|
22864 write_radio_reg(pi
,
22865 RADIO_2056_TX_TX_SSI_MUX
22867 write_radio_reg(pi
,
22868 RADIO_2056_TX_TSSIA
|
22871 write_radio_reg(pi
,
22872 RADIO_2056_TX_TX_SSI_MUX
22873 | jtag_core
, 0x00);
22874 write_radio_reg(pi
,
22875 RADIO_2056_TX_TSSIA
|
22878 write_radio_reg(pi
,
22879 RADIO_2056_TX_TSSIG
| jtag_core
,
22881 write_radio_reg(pi
,
22882 RADIO_2056_TX_TSSI_MISC1
|
22885 write_radio_reg(pi
,
22886 RADIO_2056_TX_TSSI_MISC2
|
22888 write_radio_reg(pi
,
22889 RADIO_2056_TX_TSSI_MISC3
|
22892 write_radio_reg(pi
,
22893 RADIO_2056_TX_TX_SSI_MASTER
|
22895 write_radio_reg(pi
,
22896 RADIO_2056_TX_IQCAL_VCM_HG
|
22898 write_radio_reg(pi
,
22899 RADIO_2056_TX_IQCAL_IDAC
|
22901 write_radio_reg(pi
,
22902 RADIO_2056_TX_TSSI_VCM
|
22904 write_radio_reg(pi
,
22905 RADIO_2056_TX_TX_AMP_DET
|
22907 write_radio_reg(pi
,
22908 RADIO_2056_TX_TSSIA
| jtag_core
,
22913 write_radio_reg(pi
,
22914 RADIO_2056_TX_TX_SSI_MUX
22915 | jtag_core
, 0x06);
22916 if (NREV_LT(pi
->pubpi
.phy_rev
, 5)) {
22918 write_radio_reg(pi
,
22919 RADIO_2056_TX_TSSIG
22924 write_radio_reg(pi
,
22925 RADIO_2056_TX_TSSIG
22930 write_radio_reg(pi
,
22931 RADIO_2056_TX_TX_SSI_MUX
22932 | jtag_core
, 0x00);
22933 write_radio_reg(pi
,
22934 RADIO_2056_TX_TSSIG
|
22938 write_radio_reg(pi
,
22939 RADIO_2056_TX_TSSI_MISC1
|
22941 write_radio_reg(pi
,
22942 RADIO_2056_TX_TSSI_MISC2
|
22944 write_radio_reg(pi
,
22945 RADIO_2056_TX_TSSI_MISC3
|
22951 pi
->tx_rx_cal_radio_saveregs
[0] =
22952 read_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
);
22953 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
, 0x29);
22954 pi
->tx_rx_cal_radio_saveregs
[1] =
22955 read_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
);
22956 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
, 0x54);
22958 pi
->tx_rx_cal_radio_saveregs
[2] =
22959 read_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
);
22960 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
, 0x29);
22961 pi
->tx_rx_cal_radio_saveregs
[3] =
22962 read_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
);
22963 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
, 0x54);
22965 pi
->tx_rx_cal_radio_saveregs
[4] =
22966 read_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
);
22967 pi
->tx_rx_cal_radio_saveregs
[5] =
22968 read_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
);
22970 if ((read_phy_reg(pi
, 0x09) & NPHY_BandControl_currentBand
) ==
22973 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
, 0x04);
22974 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
, 0x04);
22977 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
, 0x20);
22978 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
, 0x20);
22981 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
22983 or_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
, 0x20);
22984 or_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
, 0x20);
22987 and_radio_reg(pi
, RADIO_2055_CORE1_TX_BB_MXGM
, 0xdf);
22988 and_radio_reg(pi
, RADIO_2055_CORE2_TX_BB_MXGM
, 0xdf);
22993 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy
*pi
)
22995 u16 jtag_core
, core
;
22997 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
22998 for (core
= 0; core
<= 1; core
++) {
23000 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23003 tx_rx_cal_radio_saveregs
[(core
* 11) +
23006 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, IQCAL_VCM_HG
,
23008 tx_rx_cal_radio_saveregs
[(core
* 11) +
23011 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, IQCAL_IDAC
,
23013 tx_rx_cal_radio_saveregs
[(core
* 11) +
23016 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSI_VCM
,
23018 tx_rx_cal_radio_saveregs
[(core
* 11) +
23021 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TX_SSI_MUX
,
23023 tx_rx_cal_radio_saveregs
[(core
* 11) +
23026 if (pi
->pubpi
.radiorev
!= 5)
23027 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
23030 tx_rx_cal_radio_saveregs
[(core
23035 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSIG
,
23037 tx_rx_cal_radio_saveregs
[(core
* 11) +
23040 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSI_MISC1
,
23042 tx_rx_cal_radio_saveregs
[(core
* 11) +
23045 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23046 for (core
= 0; core
<= 1; core
++) {
23049 PHY_CORE_0
) ? RADIO_2056_TX0
: RADIO_2056_TX1
;
23051 write_radio_reg(pi
,
23052 RADIO_2056_TX_TX_SSI_MASTER
| jtag_core
,
23054 tx_rx_cal_radio_saveregs
[(core
* 11) +
23057 write_radio_reg(pi
,
23058 RADIO_2056_TX_IQCAL_VCM_HG
| jtag_core
,
23060 tx_rx_cal_radio_saveregs
[(core
* 11) +
23063 write_radio_reg(pi
,
23064 RADIO_2056_TX_IQCAL_IDAC
| jtag_core
,
23066 tx_rx_cal_radio_saveregs
[(core
* 11) +
23069 write_radio_reg(pi
, RADIO_2056_TX_TSSI_VCM
| jtag_core
,
23071 tx_rx_cal_radio_saveregs
[(core
* 11) +
23074 write_radio_reg(pi
,
23075 RADIO_2056_TX_TX_AMP_DET
| jtag_core
,
23077 tx_rx_cal_radio_saveregs
[(core
* 11) +
23080 write_radio_reg(pi
,
23081 RADIO_2056_TX_TX_SSI_MUX
| jtag_core
,
23083 tx_rx_cal_radio_saveregs
[(core
* 11) +
23086 write_radio_reg(pi
, RADIO_2056_TX_TSSIA
| jtag_core
,
23088 tx_rx_cal_radio_saveregs
[(core
* 11) +
23091 write_radio_reg(pi
, RADIO_2056_TX_TSSIG
| jtag_core
,
23093 tx_rx_cal_radio_saveregs
[(core
* 11) +
23096 write_radio_reg(pi
,
23097 RADIO_2056_TX_TSSI_MISC1
| jtag_core
,
23099 tx_rx_cal_radio_saveregs
[(core
* 11) +
23102 write_radio_reg(pi
,
23103 RADIO_2056_TX_TSSI_MISC2
| jtag_core
,
23105 tx_rx_cal_radio_saveregs
[(core
* 11) +
23108 write_radio_reg(pi
,
23109 RADIO_2056_TX_TSSI_MISC3
| jtag_core
,
23111 tx_rx_cal_radio_saveregs
[(core
* 11) +
23116 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL1
,
23117 pi
->tx_rx_cal_radio_saveregs
[0]);
23118 write_radio_reg(pi
, RADIO_2055_CORE1_TXRF_IQCAL2
,
23119 pi
->tx_rx_cal_radio_saveregs
[1]);
23120 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL1
,
23121 pi
->tx_rx_cal_radio_saveregs
[2]);
23122 write_radio_reg(pi
, RADIO_2055_CORE2_TXRF_IQCAL2
,
23123 pi
->tx_rx_cal_radio_saveregs
[3]);
23124 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE1
,
23125 pi
->tx_rx_cal_radio_saveregs
[4]);
23126 write_radio_reg(pi
, RADIO_2055_PWRDET_RXTX_CORE2
,
23127 pi
->tx_rx_cal_radio_saveregs
[5]);
23131 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy
*pi
)
23135 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23136 pi
->tx_rx_cal_phy_saveregs
[0] = read_phy_reg(pi
, 0xa6);
23137 pi
->tx_rx_cal_phy_saveregs
[1] = read_phy_reg(pi
, 0xa7);
23139 mask
= ((0x3 << 8) | (0x3 << 10));
23141 val
|= (0x2 << 10);
23142 mod_phy_reg(pi
, 0xa6, mask
, val
);
23143 mod_phy_reg(pi
, 0xa7, mask
, val
);
23145 val
= read_phy_reg(pi
, 0x8f);
23146 pi
->tx_rx_cal_phy_saveregs
[2] = val
;
23147 val
|= ((0x1 << 9) | (0x1 << 10));
23148 write_phy_reg(pi
, 0x8f, val
);
23150 val
= read_phy_reg(pi
, 0xa5);
23151 pi
->tx_rx_cal_phy_saveregs
[3] = val
;
23152 val
|= ((0x1 << 9) | (0x1 << 10));
23153 write_phy_reg(pi
, 0xa5, val
);
23155 pi
->tx_rx_cal_phy_saveregs
[4] = read_phy_reg(pi
, 0x01);
23156 mod_phy_reg(pi
, 0x01, (0x1 << 15), 0);
23158 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 3, 16,
23160 pi
->tx_rx_cal_phy_saveregs
[5] = val
;
23162 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 3, 16,
23165 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 19, 16,
23167 pi
->tx_rx_cal_phy_saveregs
[6] = val
;
23169 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 19, 16,
23172 pi
->tx_rx_cal_phy_saveregs
[7] = read_phy_reg(pi
, 0x91);
23173 pi
->tx_rx_cal_phy_saveregs
[8] = read_phy_reg(pi
, 0x92);
23175 if (!(pi
->use_int_tx_iqlo_cal_nphy
)) {
23177 wlc_phy_rfctrlintc_override_nphy(pi
,
23178 NPHY_RfctrlIntc_override_PA
,
23180 RADIO_MIMO_CORESEL_CORE1
23182 RADIO_MIMO_CORESEL_CORE2
);
23185 wlc_phy_rfctrlintc_override_nphy(pi
,
23186 NPHY_RfctrlIntc_override_PA
,
23188 RADIO_MIMO_CORESEL_CORE1
23190 RADIO_MIMO_CORESEL_CORE2
);
23193 wlc_phy_rfctrlintc_override_nphy(pi
,
23194 NPHY_RfctrlIntc_override_TRSW
,
23195 0x2, RADIO_MIMO_CORESEL_CORE1
);
23196 wlc_phy_rfctrlintc_override_nphy(pi
,
23197 NPHY_RfctrlIntc_override_TRSW
,
23198 0x8, RADIO_MIMO_CORESEL_CORE2
);
23200 pi
->tx_rx_cal_phy_saveregs
[9] = read_phy_reg(pi
, 0x297);
23201 pi
->tx_rx_cal_phy_saveregs
[10] = read_phy_reg(pi
, 0x29b);
23202 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x297 :
23203 0x29b, (0x1 << 0), (0) << 0);
23205 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x297 :
23206 0x29b, (0x1 << 0), (0) << 0);
23208 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)
23209 || NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
23210 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 7),
23211 wlc_phy_read_lpf_bw_ctl_nphy
23213 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
23216 if (pi
->use_int_tx_iqlo_cal_nphy
23217 && !(pi
->internal_tx_iqlo_cal_tapoff_intpa_nphy
)) {
23219 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
23221 mod_radio_reg(pi
, RADIO_2057_OVR_REG0
, 1 << 4,
23224 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
23226 RADIO_2057_PAD2G_TUNE_PUS_CORE0
,
23229 RADIO_2057_PAD2G_TUNE_PUS_CORE1
,
23233 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0
,
23236 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1
,
23239 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
23240 wlc_phy_rfctrl_override_nphy_rev7(pi
,
23243 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
23247 pi
->tx_rx_cal_phy_saveregs
[0] = read_phy_reg(pi
, 0xa6);
23248 pi
->tx_rx_cal_phy_saveregs
[1] = read_phy_reg(pi
, 0xa7);
23250 mask
= ((0x3 << 12) | (0x3 << 14));
23252 val
|= (0x2 << 14);
23253 mod_phy_reg(pi
, 0xa6, mask
, val
);
23254 mod_phy_reg(pi
, 0xa7, mask
, val
);
23256 val
= read_phy_reg(pi
, 0xa5);
23257 pi
->tx_rx_cal_phy_saveregs
[2] = val
;
23258 val
|= ((0x1 << 12) | (0x1 << 13));
23259 write_phy_reg(pi
, 0xa5, val
);
23261 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 2, 16,
23263 pi
->tx_rx_cal_phy_saveregs
[3] = val
;
23265 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 2, 16,
23268 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 18, 16,
23270 pi
->tx_rx_cal_phy_saveregs
[4] = val
;
23272 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 18, 16,
23275 pi
->tx_rx_cal_phy_saveregs
[5] = read_phy_reg(pi
, 0x91);
23276 pi
->tx_rx_cal_phy_saveregs
[6] = read_phy_reg(pi
, 0x92);
23277 val
= CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x180 : 0x120;
23278 write_phy_reg(pi
, 0x91, val
);
23279 write_phy_reg(pi
, 0x92, val
);
23283 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy
*pi
)
23287 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23288 write_phy_reg(pi
, 0xa6, pi
->tx_rx_cal_phy_saveregs
[0]);
23289 write_phy_reg(pi
, 0xa7, pi
->tx_rx_cal_phy_saveregs
[1]);
23290 write_phy_reg(pi
, 0x8f, pi
->tx_rx_cal_phy_saveregs
[2]);
23291 write_phy_reg(pi
, 0xa5, pi
->tx_rx_cal_phy_saveregs
[3]);
23292 write_phy_reg(pi
, 0x01, pi
->tx_rx_cal_phy_saveregs
[4]);
23294 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 3, 16,
23295 &pi
->tx_rx_cal_phy_saveregs
[5]);
23296 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 19, 16,
23297 &pi
->tx_rx_cal_phy_saveregs
[6]);
23299 write_phy_reg(pi
, 0x91, pi
->tx_rx_cal_phy_saveregs
[7]);
23300 write_phy_reg(pi
, 0x92, pi
->tx_rx_cal_phy_saveregs
[8]);
23302 write_phy_reg(pi
, 0x297, pi
->tx_rx_cal_phy_saveregs
[9]);
23303 write_phy_reg(pi
, 0x29b, pi
->tx_rx_cal_phy_saveregs
[10]);
23305 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)
23306 || NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
23307 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 7), 0, 0,
23309 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
23312 wlc_phy_resetcca_nphy(pi
);
23314 if (pi
->use_int_tx_iqlo_cal_nphy
23315 && !(pi
->internal_tx_iqlo_cal_tapoff_intpa_nphy
)) {
23317 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
23318 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
23320 RADIO_2057_PAD2G_TUNE_PUS_CORE0
,
23323 RADIO_2057_PAD2G_TUNE_PUS_CORE1
,
23327 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0
,
23330 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1
,
23334 mod_radio_reg(pi
, RADIO_2057_OVR_REG0
, 1 << 4,
23336 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
23337 wlc_phy_rfctrl_override_nphy_rev7(pi
,
23340 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
23344 mask
= ((0x3 << 12) | (0x3 << 14));
23345 mod_phy_reg(pi
, 0xa6, mask
, pi
->tx_rx_cal_phy_saveregs
[0]);
23346 mod_phy_reg(pi
, 0xa7, mask
, pi
->tx_rx_cal_phy_saveregs
[1]);
23347 write_phy_reg(pi
, 0xa5, pi
->tx_rx_cal_phy_saveregs
[2]);
23349 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 2, 16,
23350 &pi
->tx_rx_cal_phy_saveregs
[3]);
23352 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_AFECTRL
, 1, 18, 16,
23353 &pi
->tx_rx_cal_phy_saveregs
[4]);
23355 write_phy_reg(pi
, 0x91, pi
->tx_rx_cal_phy_saveregs
[5]);
23356 write_phy_reg(pi
, 0x92, pi
->tx_rx_cal_phy_saveregs
[6]);
23360 #define NPHY_CAL_TSSISAMPS 64
23361 #define NPHY_TEST_TONE_FREQ_40MHz 4000
23362 #define NPHY_TEST_TONE_FREQ_20MHz 2500
23365 wlc_phy_est_tonepwr_nphy(struct brcms_phy
*pi
, s32
*qdBm_pwrbuf
, u8 num_samps
)
23368 s32 temp
, pwrindex
[2];
23374 tssi_reg
= read_phy_reg(pi
, 0x1e9);
23376 temp
= (s32
) (tssi_reg
& 0x3f);
23377 idle_tssi
[0] = (temp
<= 31) ? temp
: (temp
- 64);
23379 temp
= (s32
) ((tssi_reg
>> 8) & 0x3f);
23380 idle_tssi
[1] = (temp
<= 31) ? temp
: (temp
- 64);
23383 CHSPEC_IS5G(pi
->radio_chanspec
) ?
23384 (u8
)NPHY_RSSI_SEL_TSSI_5G
: (u8
)NPHY_RSSI_SEL_TSSI_2G
;
23386 wlc_phy_poll_rssi_nphy(pi
, tssi_type
, rssi_buf
, num_samps
);
23388 tssival
[0] = rssi_buf
[0] / ((s32
) num_samps
);
23389 tssival
[1] = rssi_buf
[2] / ((s32
) num_samps
);
23391 pwrindex
[0] = idle_tssi
[0] - tssival
[0] + 64;
23392 pwrindex
[1] = idle_tssi
[1] - tssival
[1] + 64;
23394 if (pwrindex
[0] < 0) {
23396 } else if (pwrindex
[0] > 63) {
23400 if (pwrindex
[1] < 0) {
23402 } else if (pwrindex
[1] > 63) {
23406 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_CORE1TXPWRCTL
, 1,
23407 (u32
) pwrindex
[0], 32, &qdBm_pwrbuf
[0]);
23408 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_CORE2TXPWRCTL
, 1,
23409 (u32
) pwrindex
[1], 32, &qdBm_pwrbuf
[1]);
23412 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy
*pi
)
23416 pi
->nphy_txcal_pwr_idx
[0] = pi
->nphy_cal_orig_pwr_idx
[0];
23417 pi
->nphy_txcal_pwr_idx
[1] = pi
->nphy_cal_orig_pwr_idx
[0];
23418 wlc_phy_txpwr_index_nphy(pi
, 1, pi
->nphy_cal_orig_pwr_idx
[0], true);
23419 wlc_phy_txpwr_index_nphy(pi
, 2, pi
->nphy_cal_orig_pwr_idx
[1], true);
23421 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
23424 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
23425 txcal_gain
[0] = (txcal_gain
[0] & 0xF000) | 0x0F40;
23426 txcal_gain
[1] = (txcal_gain
[1] & 0xF000) | 0x0F40;
23428 txcal_gain
[0] = (txcal_gain
[0] & 0xF000) | 0x0F60;
23429 txcal_gain
[1] = (txcal_gain
[1] & 0xF000) | 0x0F60;
23432 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
23436 static void wlc_phy_precal_txgain_nphy(struct brcms_phy
*pi
)
23438 bool save_bbmult
= false;
23439 u8 txcal_index_2057_rev5n7
= 0;
23440 u8 txcal_index_2057_rev3n4n6
= 10;
23442 if (pi
->use_int_tx_iqlo_cal_nphy
) {
23443 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
23444 if ((pi
->pubpi
.radiorev
== 3) ||
23445 (pi
->pubpi
.radiorev
== 4) ||
23446 (pi
->pubpi
.radiorev
== 6)) {
23448 pi
->nphy_txcal_pwr_idx
[0] =
23449 txcal_index_2057_rev3n4n6
;
23450 pi
->nphy_txcal_pwr_idx
[1] =
23451 txcal_index_2057_rev3n4n6
;
23452 wlc_phy_txpwr_index_nphy(pi
, 3,
23453 txcal_index_2057_rev3n4n6
,
23457 pi
->nphy_txcal_pwr_idx
[0] =
23458 txcal_index_2057_rev5n7
;
23459 pi
->nphy_txcal_pwr_idx
[1] =
23460 txcal_index_2057_rev5n7
;
23461 wlc_phy_txpwr_index_nphy(pi
, 3,
23462 txcal_index_2057_rev5n7
,
23465 save_bbmult
= true;
23467 } else if (NREV_LT(pi
->pubpi
.phy_rev
, 5)) {
23468 wlc_phy_cal_txgainctrl_nphy(pi
, 11, false);
23469 if (pi
->sh
->hw_phytxchain
!= 3) {
23470 pi
->nphy_txcal_pwr_idx
[1] =
23471 pi
->nphy_txcal_pwr_idx
[0];
23472 wlc_phy_txpwr_index_nphy(pi
, 3,
23474 nphy_txcal_pwr_idx
[0],
23476 save_bbmult
= true;
23479 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
23481 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
23482 wlc_phy_cal_txgainctrl_nphy(pi
, 12,
23485 pi
->nphy_txcal_pwr_idx
[0] = 80;
23486 pi
->nphy_txcal_pwr_idx
[1] = 80;
23487 wlc_phy_txpwr_index_nphy(pi
, 3, 80,
23489 save_bbmult
= true;
23493 wlc_phy_internal_cal_txgain_nphy(pi
);
23494 save_bbmult
= true;
23497 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 6)) {
23499 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
23500 wlc_phy_cal_txgainctrl_nphy(pi
, 12,
23503 wlc_phy_cal_txgainctrl_nphy(pi
, 14,
23508 wlc_phy_internal_cal_txgain_nphy(pi
);
23509 save_bbmult
= true;
23514 wlc_phy_cal_txgainctrl_nphy(pi
, 10, false);
23518 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16,
23519 &pi
->nphy_txcal_bbmult
);
23524 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy
*pi
, s32 dBm_targetpower
,
23527 int gainctrl_loopidx
;
23529 u16 m0m1
, curr_m0m1
;
23534 u16 phy_saveregs
[4];
23536 u16 ampl_test
= 250;
23538 bool phyhang_avoid_state
= false;
23540 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
23548 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
23554 wlc_phy_txpwr_index_nphy(pi
, 1, pi
->nphy_cal_orig_pwr_idx
[0], true);
23555 wlc_phy_txpwr_index_nphy(pi
, 2, pi
->nphy_cal_orig_pwr_idx
[1], true);
23557 if (pi
->phyhang_avoid
)
23558 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
23560 phyhang_avoid_state
= pi
->phyhang_avoid
;
23561 pi
->phyhang_avoid
= false;
23563 phy_saveregs
[0] = read_phy_reg(pi
, 0x91);
23564 phy_saveregs
[1] = read_phy_reg(pi
, 0x92);
23565 phy_saveregs
[2] = read_phy_reg(pi
, 0xe7);
23566 phy_saveregs
[3] = read_phy_reg(pi
, 0xec);
23567 wlc_phy_rfctrlintc_override_nphy(pi
, NPHY_RfctrlIntc_override_PA
, 1,
23568 RADIO_MIMO_CORESEL_CORE1
|
23569 RADIO_MIMO_CORESEL_CORE2
);
23572 wlc_phy_rfctrlintc_override_nphy(pi
,
23573 NPHY_RfctrlIntc_override_TRSW
,
23574 0x2, RADIO_MIMO_CORESEL_CORE1
);
23575 wlc_phy_rfctrlintc_override_nphy(pi
,
23576 NPHY_RfctrlIntc_override_TRSW
,
23577 0x8, RADIO_MIMO_CORESEL_CORE2
);
23579 wlc_phy_rfctrlintc_override_nphy(pi
,
23580 NPHY_RfctrlIntc_override_TRSW
,
23581 0x1, RADIO_MIMO_CORESEL_CORE1
);
23582 wlc_phy_rfctrlintc_override_nphy(pi
,
23583 NPHY_RfctrlIntc_override_TRSW
,
23584 0x7, RADIO_MIMO_CORESEL_CORE2
);
23587 orig_BBConfig
= read_phy_reg(pi
, 0x01);
23588 mod_phy_reg(pi
, 0x01, (0x1 << 15), 0);
23590 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &m0m1
);
23592 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
23593 txpwrindex
= (s32
) pi
->nphy_cal_orig_pwr_idx
[core
];
23595 for (gainctrl_loopidx
= 0; gainctrl_loopidx
< 2;
23596 gainctrl_loopidx
++) {
23597 wlc_phy_tx_tone_nphy(pi
, freq_test
, ampl_test
, 0, 0,
23600 if (core
== PHY_CORE_0
) {
23601 curr_m0m1
= m0m1
& 0xff00;
23603 curr_m0m1
= m0m1
& 0x00ff;
23606 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &curr_m0m1
);
23607 wlc_phy_table_write_nphy(pi
, 15, 1, 95, 16, &curr_m0m1
);
23611 wlc_phy_est_tonepwr_nphy(pi
, qdBm_power
,
23612 NPHY_CAL_TSSISAMPS
);
23614 pi
->nphy_bb_mult_save
= 0;
23615 wlc_phy_stopplayback_nphy(pi
);
23617 delta_power
= (dBm_targetpower
* 4) - qdBm_power
[core
];
23619 txpwrindex
-= stepsize
* delta_power
;
23620 if (txpwrindex
< 0) {
23622 } else if (txpwrindex
> 127) {
23626 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
23627 if (NREV_IS(pi
->pubpi
.phy_rev
, 4) &&
23628 (pi
->srom_fem5g
.extpagain
== 3)) {
23629 if (txpwrindex
< 30) {
23634 if (NREV_GE(pi
->pubpi
.phy_rev
, 5) &&
23635 (pi
->srom_fem2g
.extpagain
== 3)) {
23636 if (txpwrindex
< 50) {
23642 wlc_phy_txpwr_index_nphy(pi
, (1 << core
),
23643 (u8
) txpwrindex
, true);
23646 pi
->nphy_txcal_pwr_idx
[core
] = (u8
) txpwrindex
;
23652 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &dbg_m0m1
);
23654 wlc_phy_tx_tone_nphy(pi
, freq_test
, ampl_test
, 0, 0,
23657 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &dbg_m0m1
);
23658 wlc_phy_table_write_nphy(pi
, 15, 1, 95, 16, &dbg_m0m1
);
23662 wlc_phy_est_tonepwr_nphy(pi
, qdBm_power
,
23663 NPHY_CAL_TSSISAMPS
);
23665 wlc_phy_table_read_nphy(pi
, 7, 1, (0x110 + core
), 16,
23669 pi
->nphy_bb_mult_save
= 0;
23670 wlc_phy_stopplayback_nphy(pi
);
23674 wlc_phy_txpwr_index_nphy(pi
, 1, pi
->nphy_txcal_pwr_idx
[0], true);
23675 wlc_phy_txpwr_index_nphy(pi
, 2, pi
->nphy_txcal_pwr_idx
[1], true);
23677 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &pi
->nphy_txcal_bbmult
);
23679 write_phy_reg(pi
, 0x01, orig_BBConfig
);
23681 write_phy_reg(pi
, 0x91, phy_saveregs
[0]);
23682 write_phy_reg(pi
, 0x92, phy_saveregs
[1]);
23683 write_phy_reg(pi
, 0xe7, phy_saveregs
[2]);
23684 write_phy_reg(pi
, 0xec, phy_saveregs
[3]);
23686 pi
->phyhang_avoid
= phyhang_avoid_state
;
23688 if (pi
->phyhang_avoid
)
23689 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
23692 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy
*pi
, u16 core
)
23699 struct nphy_txiqcal_ladder ladder_lo
[] = {
23700 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23701 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
23702 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
23705 struct nphy_txiqcal_ladder ladder_iq
[] = {
23706 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23707 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
23708 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
23711 bbmult
= (core
== PHY_CORE_0
) ?
23712 ((pi
->nphy_txcal_bbmult
>> 8) & 0xff) : (pi
->
23713 nphy_txcal_bbmult
& 0xff);
23715 for (index
= 0; index
< 18; index
++) {
23716 bbmult_scale
= ladder_lo
[index
].percent
* bbmult
;
23717 bbmult_scale
/= 100;
23720 ((bbmult_scale
& 0xff) << 8) | ladder_lo
[index
].g_env
;
23721 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 1, index
, 16,
23724 bbmult_scale
= ladder_iq
[index
].percent
* bbmult
;
23725 bbmult_scale
/= 100;
23728 ((bbmult_scale
& 0xff) << 8) | ladder_iq
[index
].g_env
;
23729 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 1, index
+ 32,
23734 void wlc_phy_cal_perical_nphy_run(struct brcms_phy
*pi
, u8 caltype
)
23736 struct nphy_txgains target_gain
;
23737 u8 tx_pwr_ctrl_state
;
23738 bool fullcal
= true;
23739 bool restore_tx_gain
= false;
23742 if (NORADIO_ENAB(pi
->pubpi
)) {
23743 wlc_phy_cal_perical_mphase_reset(pi
);
23750 if (caltype
== PHY_PERICAL_AUTO
)
23751 fullcal
= (pi
->radio_chanspec
!= pi
->nphy_txiqlocal_chanspec
);
23752 else if (caltype
== PHY_PERICAL_PARTIAL
)
23755 if (pi
->cal_type_override
!= PHY_PERICAL_AUTO
) {
23757 (pi
->cal_type_override
== PHY_PERICAL_FULL
) ? true : false;
23760 if ((pi
->mphase_cal_phase_id
> MPHASE_CAL_STATE_INIT
)) {
23761 if (pi
->nphy_txiqlocal_chanspec
!= pi
->radio_chanspec
)
23762 wlc_phy_cal_perical_mphase_restart(pi
);
23765 if ((pi
->mphase_cal_phase_id
== MPHASE_CAL_STATE_RXCAL
)) {
23766 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_CTS_DURATION
, 10000);
23769 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
23771 wlc_phyreg_enter((struct brcms_phy_pub
*) pi
);
23773 if ((pi
->mphase_cal_phase_id
== MPHASE_CAL_STATE_IDLE
) ||
23774 (pi
->mphase_cal_phase_id
== MPHASE_CAL_STATE_INIT
)) {
23775 pi
->nphy_cal_orig_pwr_idx
[0] =
23776 (u8
) ((read_phy_reg(pi
, 0x1ed) >> 8) & 0x7f);
23777 pi
->nphy_cal_orig_pwr_idx
[1] =
23778 (u8
) ((read_phy_reg(pi
, 0x1ee) >> 8) & 0x7f);
23780 if (pi
->nphy_txpwrctrl
!= PHY_TPC_HW_OFF
) {
23781 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2,
23783 pi
->nphy_cal_orig_tx_gain
);
23785 pi
->nphy_cal_orig_tx_gain
[0] = 0;
23786 pi
->nphy_cal_orig_tx_gain
[1] = 0;
23789 target_gain
= wlc_phy_get_tx_gain_nphy(pi
);
23790 tx_pwr_ctrl_state
= pi
->nphy_txpwrctrl
;
23791 wlc_phy_txpwrctrl_enable_nphy(pi
, PHY_TPC_HW_OFF
);
23793 if (pi
->antsel_type
== ANTSEL_2x3
)
23794 wlc_phy_antsel_init((struct brcms_phy_pub
*) pi
, true);
23796 mphase
= (pi
->mphase_cal_phase_id
!= MPHASE_CAL_STATE_IDLE
);
23799 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23800 wlc_phy_precal_txgain_nphy(pi
);
23801 pi
->nphy_cal_target_gain
= wlc_phy_get_tx_gain_nphy(pi
);
23802 restore_tx_gain
= true;
23804 target_gain
= pi
->nphy_cal_target_gain
;
23807 wlc_phy_cal_txiqlo_nphy(pi
, target_gain
, fullcal
, mphase
)) {
23809 wlc_phy_a4(pi
, true);
23811 wlc_phyreg_exit((struct brcms_phy_pub
*) pi
);
23812 wlapi_enable_mac(pi
->sh
->physhim
);
23813 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_CTS_DURATION
,
23815 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
23816 wlc_phyreg_enter((struct brcms_phy_pub
*) pi
);
23818 if (0 == wlc_phy_cal_rxiq_nphy(pi
, target_gain
,
23820 first_cal_after_assoc
23826 wlc_phy_savecal_nphy(pi
);
23828 wlc_phy_txpwrctrl_coeff_setup_nphy(pi
);
23830 pi
->nphy_perical_last
= pi
->sh
->now
;
23833 if (caltype
!= PHY_PERICAL_AUTO
) {
23834 wlc_phy_rssi_cal_nphy(pi
);
23837 if (pi
->first_cal_after_assoc
23838 || (pi
->cal_type_override
== PHY_PERICAL_FULL
)) {
23839 pi
->first_cal_after_assoc
= false;
23840 wlc_phy_txpwrctrl_idle_tssi_nphy(pi
);
23841 wlc_phy_txpwrctrl_pwr_setup_nphy(pi
);
23844 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23845 wlc_phy_radio205x_vcocal_nphy(pi
);
23848 switch (pi
->mphase_cal_phase_id
) {
23849 case MPHASE_CAL_STATE_INIT
:
23850 pi
->nphy_perical_last
= pi
->sh
->now
;
23851 pi
->nphy_txiqlocal_chanspec
= pi
->radio_chanspec
;
23853 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23854 wlc_phy_precal_txgain_nphy(pi
);
23856 pi
->nphy_cal_target_gain
= wlc_phy_get_tx_gain_nphy(pi
);
23857 pi
->mphase_cal_phase_id
++;
23860 case MPHASE_CAL_STATE_TXPHASE0
:
23861 case MPHASE_CAL_STATE_TXPHASE1
:
23862 case MPHASE_CAL_STATE_TXPHASE2
:
23863 case MPHASE_CAL_STATE_TXPHASE3
:
23864 case MPHASE_CAL_STATE_TXPHASE4
:
23865 case MPHASE_CAL_STATE_TXPHASE5
:
23866 if ((pi
->radar_percal_mask
& 0x10) != 0)
23867 pi
->nphy_rxcal_active
= true;
23869 if (wlc_phy_cal_txiqlo_nphy
23870 (pi
, pi
->nphy_cal_target_gain
, fullcal
,
23873 wlc_phy_cal_perical_mphase_reset(pi
);
23877 if (NREV_LE(pi
->pubpi
.phy_rev
, 2) &&
23878 (pi
->mphase_cal_phase_id
==
23879 MPHASE_CAL_STATE_TXPHASE4
)) {
23880 pi
->mphase_cal_phase_id
+= 2;
23882 pi
->mphase_cal_phase_id
++;
23886 case MPHASE_CAL_STATE_PAPDCAL
:
23887 if ((pi
->radar_percal_mask
& 0x2) != 0)
23888 pi
->nphy_rxcal_active
= true;
23891 wlc_phy_a4(pi
, true);
23893 pi
->mphase_cal_phase_id
++;
23896 case MPHASE_CAL_STATE_RXCAL
:
23897 if ((pi
->radar_percal_mask
& 0x1) != 0)
23898 pi
->nphy_rxcal_active
= true;
23899 if (wlc_phy_cal_rxiq_nphy(pi
, target_gain
,
23900 (pi
->first_cal_after_assoc
||
23901 (pi
->cal_type_override
==
23902 PHY_PERICAL_FULL
)) ? 2 : 0,
23904 wlc_phy_savecal_nphy(pi
);
23907 pi
->mphase_cal_phase_id
++;
23910 case MPHASE_CAL_STATE_RSSICAL
:
23911 if ((pi
->radar_percal_mask
& 0x4) != 0)
23912 pi
->nphy_rxcal_active
= true;
23913 wlc_phy_txpwrctrl_coeff_setup_nphy(pi
);
23914 wlc_phy_rssi_cal_nphy(pi
);
23916 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23917 wlc_phy_radio205x_vcocal_nphy(pi
);
23919 restore_tx_gain
= true;
23921 if (pi
->first_cal_after_assoc
) {
23922 pi
->mphase_cal_phase_id
++;
23924 wlc_phy_cal_perical_mphase_reset(pi
);
23929 case MPHASE_CAL_STATE_IDLETSSI
:
23930 if ((pi
->radar_percal_mask
& 0x8) != 0)
23931 pi
->nphy_rxcal_active
= true;
23933 if (pi
->first_cal_after_assoc
) {
23934 pi
->first_cal_after_assoc
= false;
23935 wlc_phy_txpwrctrl_idle_tssi_nphy(pi
);
23936 wlc_phy_txpwrctrl_pwr_setup_nphy(pi
);
23939 wlc_phy_cal_perical_mphase_reset(pi
);
23943 wlc_phy_cal_perical_mphase_reset(pi
);
23948 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
23949 if (restore_tx_gain
) {
23950 if (tx_pwr_ctrl_state
!= PHY_TPC_HW_OFF
) {
23952 wlc_phy_txpwr_index_nphy(pi
, 1,
23954 nphy_cal_orig_pwr_idx
23956 wlc_phy_txpwr_index_nphy(pi
, 2,
23958 nphy_cal_orig_pwr_idx
23961 pi
->nphy_txpwrindex
[0].index
= -1;
23962 pi
->nphy_txpwrindex
[1].index
= -1;
23964 wlc_phy_txpwr_index_nphy(pi
, (1 << 0),
23970 wlc_phy_txpwr_index_nphy(pi
, (1 << 1),
23980 wlc_phy_txpwrctrl_enable_nphy(pi
, tx_pwr_ctrl_state
);
23981 wlc_phyreg_exit((struct brcms_phy_pub
*) pi
);
23982 wlapi_enable_mac(pi
->sh
->physhim
);
23986 wlc_phy_cal_txiqlo_nphy(struct brcms_phy
*pi
, struct nphy_txgains target_gain
,
23987 bool fullcal
, bool mphase
)
23993 u8 num_cals
, max_cal_cmds
;
23994 u16 core_no
, cal_type
;
24001 struct nphy_iqcal_params cal_params
[2];
24004 bool ladder_updated
[2];
24005 u8 mphase_cal_lastphase
= 0;
24007 bool phyhang_avoid_state
= false;
24009 u16 tbl_tx_iqlo_cal_loft_ladder_20
[] = {
24010 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
24012 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
24016 u16 tbl_tx_iqlo_cal_iqimb_ladder_20
[] = {
24017 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
24019 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
24023 u16 tbl_tx_iqlo_cal_loft_ladder_40
[] = {
24024 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
24026 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
24030 u16 tbl_tx_iqlo_cal_iqimb_ladder_40
[] = {
24031 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
24033 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
24037 u16 tbl_tx_iqlo_cal_startcoefs
[] = {
24038 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24042 u16 tbl_tx_iqlo_cal_cmds_fullcal
[] = {
24043 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
24044 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
24047 u16 tbl_tx_iqlo_cal_cmds_recal
[] = {
24048 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
24049 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
24052 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3
[] = {
24053 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24054 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24058 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
[] = {
24059 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
24060 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
24063 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3
[] = {
24064 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
24065 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
24068 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
24070 if (NREV_GE(pi
->pubpi
.phy_rev
, 4)) {
24071 phyhang_avoid_state
= pi
->phyhang_avoid
;
24072 pi
->phyhang_avoid
= false;
24075 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
24081 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, gain_save
);
24083 for (core_no
= 0; core_no
<= 1; core_no
++) {
24084 wlc_phy_iqcal_gainparams_nphy(pi
, core_no
, target_gain
,
24085 &cal_params
[core_no
]);
24086 cal_gain
[core_no
] = cal_params
[core_no
].cal_gain
;
24089 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, cal_gain
);
24091 wlc_phy_txcal_radio_setup_nphy(pi
);
24093 wlc_phy_txcal_physetup_nphy(pi
);
24095 ladder_updated
[0] = ladder_updated
[1] = false;
24096 if (!(NREV_GE(pi
->pubpi
.phy_rev
, 6) ||
24097 (NREV_IS(pi
->pubpi
.phy_rev
, 5) && PHY_IPA(pi
)
24098 && (CHSPEC_IS2G(pi
->radio_chanspec
))))) {
24100 if (phy_bw
== 40) {
24101 tbl_ptr
= tbl_tx_iqlo_cal_loft_ladder_40
;
24102 tbl_len
= ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40
);
24104 tbl_ptr
= tbl_tx_iqlo_cal_loft_ladder_20
;
24105 tbl_len
= ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20
);
24107 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, tbl_len
, 0,
24110 if (phy_bw
== 40) {
24111 tbl_ptr
= tbl_tx_iqlo_cal_iqimb_ladder_40
;
24112 tbl_len
= ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40
);
24114 tbl_ptr
= tbl_tx_iqlo_cal_iqimb_ladder_20
;
24115 tbl_len
= ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20
);
24117 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, tbl_len
, 32,
24121 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
24122 write_phy_reg(pi
, 0xc2, 0x8ad9);
24124 write_phy_reg(pi
, 0xc2, 0x8aa9);
24128 tone_freq
= (phy_bw
== 20) ? 2500 : 5000;
24130 if (pi
->mphase_cal_phase_id
> MPHASE_CAL_STATE_TXPHASE0
) {
24131 wlc_phy_runsamples_nphy(pi
, phy_bw
* 8, 0xffff, 0, 1, 0, false);
24135 wlc_phy_tx_tone_nphy(pi
, tone_freq
, max_val
, 1, 0, false);
24138 if (bcmerror
== 0) {
24140 if (pi
->mphase_cal_phase_id
> MPHASE_CAL_STATE_TXPHASE0
) {
24141 tbl_ptr
= pi
->mphase_txcal_bestcoeffs
;
24142 tbl_len
= ARRAY_SIZE(pi
->mphase_txcal_bestcoeffs
);
24143 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
24148 if ((!fullcal
) && (pi
->nphy_txiqlocal_coeffsvalid
)) {
24150 tbl_ptr
= pi
->nphy_txiqlocal_bestc
;
24151 tbl_len
= ARRAY_SIZE(pi
->nphy_txiqlocal_bestc
);
24152 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
24160 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
24162 tbl_tx_iqlo_cal_startcoefs_nphyrev3
;
24165 (tbl_tx_iqlo_cal_startcoefs_nphyrev3
);
24167 tbl_ptr
= tbl_tx_iqlo_cal_startcoefs
;
24170 (tbl_tx_iqlo_cal_startcoefs
);
24174 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, tbl_len
, 64,
24178 max_cal_cmds
= (NREV_GE(pi
->pubpi
.phy_rev
, 3)) ?
24179 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
) :
24180 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal
);
24182 max_cal_cmds
= (NREV_GE(pi
->pubpi
.phy_rev
, 3)) ?
24183 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal_nphyrev3
) :
24184 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal
);
24188 cal_cnt
= pi
->mphase_txcal_cmdidx
;
24189 if ((cal_cnt
+ pi
->mphase_txcal_numcmds
) < max_cal_cmds
) {
24190 num_cals
= cal_cnt
+ pi
->mphase_txcal_numcmds
;
24192 num_cals
= max_cal_cmds
;
24196 num_cals
= max_cal_cmds
;
24199 for (; cal_cnt
< num_cals
; cal_cnt
++) {
24202 cal_cmd
= (NREV_GE(pi
->pubpi
.phy_rev
, 3)) ?
24203 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
24205 tbl_tx_iqlo_cal_cmds_fullcal
[cal_cnt
];
24207 cal_cmd
= (NREV_GE(pi
->pubpi
.phy_rev
, 3)) ?
24208 tbl_tx_iqlo_cal_cmds_recal_nphyrev3
[cal_cnt
]
24209 : tbl_tx_iqlo_cal_cmds_recal
[cal_cnt
];
24212 core_no
= ((cal_cmd
& 0x3000) >> 12);
24213 cal_type
= ((cal_cmd
& 0x0F00) >> 8);
24215 if (NREV_GE(pi
->pubpi
.phy_rev
, 6) ||
24216 (NREV_IS(pi
->pubpi
.phy_rev
, 5) &&
24218 && (CHSPEC_IS2G(pi
->radio_chanspec
)))) {
24219 if (!ladder_updated
[core_no
]) {
24220 wlc_phy_update_txcal_ladder_nphy(pi
,
24222 ladder_updated
[core_no
] = true;
24227 (cal_params
[core_no
].
24228 ncorr
[cal_type
] << 8) | NPHY_N_GCTL
;
24229 write_phy_reg(pi
, 0xc1, val
);
24231 if ((cal_type
== 1) || (cal_type
== 3)
24232 || (cal_type
== 4)) {
24234 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
24235 1, 69 + core_no
, 16,
24238 diq_start
= tbl_buf
[0];
24241 wlc_phy_table_write_nphy(pi
,
24242 NPHY_TBL_ID_IQLOCAL
, 1,
24247 write_phy_reg(pi
, 0xc0, cal_cmd
);
24249 SPINWAIT(((read_phy_reg(pi
, 0xc0) & 0xc000) != 0),
24251 if (WARN(read_phy_reg(pi
, 0xc0) & 0xc000,
24252 "HW error: txiq calib"))
24255 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
24256 tbl_len
, 96, 16, tbl_buf
);
24257 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
24258 tbl_len
, 64, 16, tbl_buf
);
24260 if ((cal_type
== 1) || (cal_type
== 3)
24261 || (cal_type
== 4)) {
24263 tbl_buf
[0] = diq_start
;
24270 pi
->mphase_txcal_cmdidx
= num_cals
;
24271 if (pi
->mphase_txcal_cmdidx
>= max_cal_cmds
)
24272 pi
->mphase_txcal_cmdidx
= 0;
24275 mphase_cal_lastphase
=
24276 (NREV_LE(pi
->pubpi
.phy_rev
, 2)) ?
24277 MPHASE_CAL_STATE_TXPHASE4
: MPHASE_CAL_STATE_TXPHASE5
;
24280 || (pi
->mphase_cal_phase_id
== mphase_cal_lastphase
)) {
24282 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 96,
24284 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 80,
24287 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
24295 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 88,
24298 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 101,
24300 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 85,
24303 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 93,
24306 tbl_len
= ARRAY_SIZE(pi
->nphy_txiqlocal_bestc
);
24307 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
24311 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
24313 pi
->nphy_txiqlocal_bestc
);
24315 pi
->nphy_txiqlocal_coeffsvalid
= true;
24316 pi
->nphy_txiqlocal_chanspec
= pi
->radio_chanspec
;
24318 tbl_len
= ARRAY_SIZE(pi
->mphase_txcal_bestcoeffs
);
24319 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
24323 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
24325 pi
->mphase_txcal_bestcoeffs
);
24328 wlc_phy_stopplayback_nphy(pi
);
24330 write_phy_reg(pi
, 0xc2, 0x0000);
24334 wlc_phy_txcal_phycleanup_nphy(pi
);
24336 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
24339 wlc_phy_txcal_radio_cleanup_nphy(pi
);
24341 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
24343 || (pi
->mphase_cal_phase_id
== mphase_cal_lastphase
))
24344 wlc_phy_tx_iq_war_nphy(pi
);
24347 if (NREV_GE(pi
->pubpi
.phy_rev
, 4)) {
24348 pi
->phyhang_avoid
= phyhang_avoid_state
;
24351 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
24356 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy
*pi
)
24360 if ((pi
->nphy_txiqlocal_chanspec
== pi
->radio_chanspec
) &&
24361 (pi
->nphy_txiqlocal_coeffsvalid
)) {
24362 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_IQLOCAL
,
24363 ARRAY_SIZE(tbl_buf
), 80, 16, tbl_buf
);
24365 if ((pi
->nphy_txiqlocal_bestc
[0] != tbl_buf
[0]) ||
24366 (pi
->nphy_txiqlocal_bestc
[1] != tbl_buf
[1]) ||
24367 (pi
->nphy_txiqlocal_bestc
[2] != tbl_buf
[2]) ||
24368 (pi
->nphy_txiqlocal_bestc
[3] != tbl_buf
[3])) {
24370 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 80,
24371 16, pi
->nphy_txiqlocal_bestc
);
24377 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 4, 88,
24380 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 85,
24382 &pi
->nphy_txiqlocal_bestc
[5]);
24384 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_IQLOCAL
, 2, 93,
24386 &pi
->nphy_txiqlocal_bestc
[5]);
24391 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy
*pi
)
24393 struct nphy_iq_comp tx_comp
;
24395 wlc_phy_table_read_nphy(pi
, 15, 4, 0x50, 16, (void *)&tx_comp
);
24397 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_20IN40_IQ
, tx_comp
.a0
);
24398 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_20IN40_IQ
+ 2, tx_comp
.b0
);
24399 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_20IN40_IQ
+ 4, tx_comp
.a1
);
24400 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_20IN40_IQ
+ 6, tx_comp
.b1
);
24404 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy
*pi
, u8 write
,
24405 struct nphy_iq_comp
*pcomp
)
24408 write_phy_reg(pi
, 0x9a, pcomp
->a0
);
24409 write_phy_reg(pi
, 0x9b, pcomp
->b0
);
24410 write_phy_reg(pi
, 0x9c, pcomp
->a1
);
24411 write_phy_reg(pi
, 0x9d, pcomp
->b1
);
24413 pcomp
->a0
= read_phy_reg(pi
, 0x9a);
24414 pcomp
->b0
= read_phy_reg(pi
, 0x9b);
24415 pcomp
->a1
= read_phy_reg(pi
, 0x9c);
24416 pcomp
->b1
= read_phy_reg(pi
, 0x9d);
24421 wlc_phy_rx_iq_est_nphy(struct brcms_phy
*pi
, struct phy_iq_est
*est
,
24422 u16 num_samps
, u8 wait_time
, u8 wait_for_crs
)
24426 write_phy_reg(pi
, 0x12b, num_samps
);
24427 mod_phy_reg(pi
, 0x12a, (0xff << 0), (wait_time
<< 0));
24428 mod_phy_reg(pi
, 0x129, NPHY_IqestCmd_iqMode
,
24429 (wait_for_crs
) ? NPHY_IqestCmd_iqMode
: 0);
24431 mod_phy_reg(pi
, 0x129, NPHY_IqestCmd_iqstart
, NPHY_IqestCmd_iqstart
);
24433 SPINWAIT(((read_phy_reg(pi
, 0x129) & NPHY_IqestCmd_iqstart
) != 0),
24435 if (WARN(read_phy_reg(pi
, 0x129) & NPHY_IqestCmd_iqstart
,
24436 "HW error: rxiq est"))
24439 if ((read_phy_reg(pi
, 0x129) & NPHY_IqestCmd_iqstart
) == 0) {
24440 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
24442 (read_phy_reg(pi
, NPHY_IqestipwrAccHi(core
)) << 16)
24443 | read_phy_reg(pi
, NPHY_IqestipwrAccLo(core
));
24445 (read_phy_reg(pi
, NPHY_IqestqpwrAccHi(core
)) << 16)
24446 | read_phy_reg(pi
, NPHY_IqestqpwrAccLo(core
));
24447 est
[core
].iq_prod
=
24448 (read_phy_reg(pi
, NPHY_IqestIqAccHi(core
)) << 16) |
24449 read_phy_reg(pi
, NPHY_IqestIqAccLo(core
));
24454 #define CAL_RETRY_CNT 2
24455 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy
*pi
, u8 core_mask
)
24458 struct phy_iq_est est
[PHY_CORE_MAX
];
24459 struct nphy_iq_comp old_comp
, new_comp
;
24461 u32 ii
= 0, qq
= 0;
24462 s16 iq_nbits
, qq_nbits
, brsh
, arsh
;
24465 uint cal_retry
= 0;
24467 if (core_mask
== 0x0)
24470 wlc_phy_rx_iq_coeffs_nphy(pi
, 0, &old_comp
);
24471 new_comp
.a0
= new_comp
.b0
= new_comp
.a1
= new_comp
.b1
= 0x0;
24472 wlc_phy_rx_iq_coeffs_nphy(pi
, 1, &new_comp
);
24475 wlc_phy_rx_iq_est_nphy(pi
, est
, 0x4000, 32, 0);
24477 new_comp
= old_comp
;
24479 for (curr_core
= 0; curr_core
< pi
->pubpi
.phy_corenum
; curr_core
++) {
24481 if ((curr_core
== PHY_CORE_0
) && (core_mask
& 0x1)) {
24482 iq
= est
[curr_core
].iq_prod
;
24483 ii
= est
[curr_core
].i_pwr
;
24484 qq
= est
[curr_core
].q_pwr
;
24485 } else if ((curr_core
== PHY_CORE_1
) && (core_mask
& 0x2)) {
24486 iq
= est
[curr_core
].iq_prod
;
24487 ii
= est
[curr_core
].i_pwr
;
24488 qq
= est
[curr_core
].q_pwr
;
24493 if ((ii
+ qq
) < NPHY_MIN_RXIQ_PWR
) {
24498 iq_nbits
= wlc_phy_nbits(iq
);
24499 qq_nbits
= wlc_phy_nbits(qq
);
24501 arsh
= 10 - (30 - iq_nbits
);
24503 a
= (-(iq
<< (30 - iq_nbits
)) + (ii
>> (1 + arsh
)));
24504 temp
= (s32
) (ii
>> arsh
);
24510 a
= (-(iq
<< (30 - iq_nbits
)) + (ii
<< (-1 - arsh
)));
24511 temp
= (s32
) (ii
<< -arsh
);
24520 brsh
= qq_nbits
- 31 + 20;
24522 b
= (qq
<< (31 - qq_nbits
));
24523 temp
= (s32
) (ii
>> brsh
);
24529 b
= (qq
<< (31 - qq_nbits
));
24530 temp
= (s32
) (ii
<< -brsh
);
24538 b
= (s32
) int_sqrt((unsigned long) b
);
24541 if ((curr_core
== PHY_CORE_0
) && (core_mask
& 0x1)) {
24542 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
24543 new_comp
.a0
= (s16
) a
& 0x3ff;
24544 new_comp
.b0
= (s16
) b
& 0x3ff;
24547 new_comp
.a0
= (s16
) b
& 0x3ff;
24548 new_comp
.b0
= (s16
) a
& 0x3ff;
24551 if ((curr_core
== PHY_CORE_1
) && (core_mask
& 0x2)) {
24552 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
24553 new_comp
.a1
= (s16
) a
& 0x3ff;
24554 new_comp
.b1
= (s16
) b
& 0x3ff;
24557 new_comp
.a1
= (s16
) b
& 0x3ff;
24558 new_comp
.b1
= (s16
) a
& 0x3ff;
24563 if (bcmerror
!= 0) {
24564 printk(KERN_DEBUG
"%s: Failed, cnt = %d\n", __func__
,
24567 if (cal_retry
< CAL_RETRY_CNT
) {
24572 new_comp
= old_comp
;
24575 wlc_phy_rx_iq_coeffs_nphy(pi
, 1, &new_comp
);
24578 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy
*pi
, u8 rx_core
)
24584 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
24585 if (rx_core
== PHY_CORE_0
) {
24586 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
24587 pi
->tx_rx_cal_radio_saveregs
[0] =
24589 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP
);
24590 pi
->tx_rx_cal_radio_saveregs
[1] =
24592 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN
);
24594 write_radio_reg(pi
,
24595 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP
,
24597 write_radio_reg(pi
,
24598 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN
,
24602 pi
->tx_rx_cal_radio_saveregs
[0] =
24604 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP
);
24605 pi
->tx_rx_cal_radio_saveregs
[1] =
24607 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN
);
24609 write_radio_reg(pi
,
24610 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP
,
24612 write_radio_reg(pi
,
24613 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN
,
24618 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
24619 pi
->tx_rx_cal_radio_saveregs
[0] =
24621 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP
);
24622 pi
->tx_rx_cal_radio_saveregs
[1] =
24624 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN
);
24626 write_radio_reg(pi
,
24627 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP
,
24629 write_radio_reg(pi
,
24630 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN
,
24634 pi
->tx_rx_cal_radio_saveregs
[0] =
24636 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP
);
24637 pi
->tx_rx_cal_radio_saveregs
[1] =
24639 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN
);
24641 write_radio_reg(pi
,
24642 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP
,
24644 write_radio_reg(pi
,
24645 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN
,
24651 if (rx_core
== PHY_CORE_0
) {
24652 pi
->tx_rx_cal_radio_saveregs
[0] =
24654 RADIO_2056_TX_RXIQCAL_TXMUX
|
24656 pi
->tx_rx_cal_radio_saveregs
[1] =
24658 RADIO_2056_RX_RXIQCAL_RXMUX
|
24661 if (pi
->pubpi
.radiorev
>= 5) {
24662 pi
->tx_rx_cal_radio_saveregs
[2] =
24664 RADIO_2056_RX_RXSPARE2
|
24666 pi
->tx_rx_cal_radio_saveregs
[3] =
24668 RADIO_2056_TX_TXSPARE2
|
24672 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
24674 if (pi
->pubpi
.radiorev
>= 5) {
24675 pi
->tx_rx_cal_radio_saveregs
[4] =
24677 RADIO_2056_RX_LNAA_MASTER
24680 write_radio_reg(pi
,
24681 RADIO_2056_RX_LNAA_MASTER
24682 | RADIO_2056_RX0
, 0x40);
24684 write_radio_reg(pi
,
24685 RADIO_2056_TX_TXSPARE2
|
24686 RADIO_2056_TX1
, bias_a
);
24688 write_radio_reg(pi
,
24689 RADIO_2056_RX_RXSPARE2
|
24690 RADIO_2056_RX0
, bias_a
);
24692 pi
->tx_rx_cal_radio_saveregs
[4] =
24694 RADIO_2056_RX_LNAA_TUNE
24699 tx_rx_cal_radio_saveregs
[2] & 0xF0)
24702 (offtune_val
<= 0x7) ? 0xF : 0;
24705 RADIO_2056_RX_LNAA_TUNE
|
24706 RADIO_2056_RX0
, 0xF0,
24707 (offtune_val
<< 8));
24710 write_radio_reg(pi
,
24711 RADIO_2056_TX_RXIQCAL_TXMUX
|
24712 RADIO_2056_TX1
, 0x9);
24713 write_radio_reg(pi
,
24714 RADIO_2056_RX_RXIQCAL_RXMUX
|
24715 RADIO_2056_RX0
, 0x9);
24717 if (pi
->pubpi
.radiorev
>= 5) {
24718 pi
->tx_rx_cal_radio_saveregs
[4] =
24720 RADIO_2056_RX_LNAG_MASTER
24723 write_radio_reg(pi
,
24724 RADIO_2056_RX_LNAG_MASTER
24725 | RADIO_2056_RX0
, 0x40);
24727 write_radio_reg(pi
,
24728 RADIO_2056_TX_TXSPARE2
|
24729 RADIO_2056_TX1
, bias_g
);
24731 write_radio_reg(pi
,
24732 RADIO_2056_RX_RXSPARE2
|
24733 RADIO_2056_RX0
, bias_g
);
24736 pi
->tx_rx_cal_radio_saveregs
[4] =
24738 RADIO_2056_RX_LNAG_TUNE
24743 tx_rx_cal_radio_saveregs
[2] & 0xF0)
24746 (offtune_val
<= 0x7) ? 0xF : 0;
24749 RADIO_2056_RX_LNAG_TUNE
|
24750 RADIO_2056_RX0
, 0xF0,
24751 (offtune_val
<< 8));
24754 write_radio_reg(pi
,
24755 RADIO_2056_TX_RXIQCAL_TXMUX
|
24756 RADIO_2056_TX1
, 0x6);
24757 write_radio_reg(pi
,
24758 RADIO_2056_RX_RXIQCAL_RXMUX
|
24759 RADIO_2056_RX0
, 0x6);
24763 pi
->tx_rx_cal_radio_saveregs
[0] =
24765 RADIO_2056_TX_RXIQCAL_TXMUX
|
24767 pi
->tx_rx_cal_radio_saveregs
[1] =
24769 RADIO_2056_RX_RXIQCAL_RXMUX
|
24772 if (pi
->pubpi
.radiorev
>= 5) {
24773 pi
->tx_rx_cal_radio_saveregs
[2] =
24775 RADIO_2056_RX_RXSPARE2
|
24777 pi
->tx_rx_cal_radio_saveregs
[3] =
24779 RADIO_2056_TX_TXSPARE2
|
24783 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
24785 if (pi
->pubpi
.radiorev
>= 5) {
24786 pi
->tx_rx_cal_radio_saveregs
[4] =
24788 RADIO_2056_RX_LNAA_MASTER
24791 write_radio_reg(pi
,
24792 RADIO_2056_RX_LNAA_MASTER
24793 | RADIO_2056_RX1
, 0x40);
24795 write_radio_reg(pi
,
24796 RADIO_2056_TX_TXSPARE2
|
24797 RADIO_2056_TX0
, bias_a
);
24799 write_radio_reg(pi
,
24800 RADIO_2056_RX_RXSPARE2
|
24801 RADIO_2056_RX1
, bias_a
);
24803 pi
->tx_rx_cal_radio_saveregs
[4] =
24805 RADIO_2056_RX_LNAA_TUNE
24810 tx_rx_cal_radio_saveregs
[2] & 0xF0)
24813 (offtune_val
<= 0x7) ? 0xF : 0;
24816 RADIO_2056_RX_LNAA_TUNE
|
24817 RADIO_2056_RX1
, 0xF0,
24818 (offtune_val
<< 8));
24821 write_radio_reg(pi
,
24822 RADIO_2056_TX_RXIQCAL_TXMUX
|
24823 RADIO_2056_TX0
, 0x9);
24824 write_radio_reg(pi
,
24825 RADIO_2056_RX_RXIQCAL_RXMUX
|
24826 RADIO_2056_RX1
, 0x9);
24828 if (pi
->pubpi
.radiorev
>= 5) {
24829 pi
->tx_rx_cal_radio_saveregs
[4] =
24831 RADIO_2056_RX_LNAG_MASTER
24834 write_radio_reg(pi
,
24835 RADIO_2056_RX_LNAG_MASTER
24836 | RADIO_2056_RX1
, 0x40);
24838 write_radio_reg(pi
,
24839 RADIO_2056_TX_TXSPARE2
|
24840 RADIO_2056_TX0
, bias_g
);
24842 write_radio_reg(pi
,
24843 RADIO_2056_RX_RXSPARE2
|
24844 RADIO_2056_RX1
, bias_g
);
24846 pi
->tx_rx_cal_radio_saveregs
[4] =
24848 RADIO_2056_RX_LNAG_TUNE
24853 tx_rx_cal_radio_saveregs
[2] & 0xF0)
24856 (offtune_val
<= 0x7) ? 0xF : 0;
24859 RADIO_2056_RX_LNAG_TUNE
|
24860 RADIO_2056_RX1
, 0xF0,
24861 (offtune_val
<< 8));
24864 write_radio_reg(pi
,
24865 RADIO_2056_TX_RXIQCAL_TXMUX
|
24866 RADIO_2056_TX0
, 0x6);
24867 write_radio_reg(pi
,
24868 RADIO_2056_RX_RXIQCAL_RXMUX
|
24869 RADIO_2056_RX1
, 0x6);
24875 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy
*pi
, u8 rx_core
)
24877 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
24878 if (rx_core
== PHY_CORE_0
) {
24879 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
24880 write_radio_reg(pi
,
24881 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP
,
24883 tx_rx_cal_radio_saveregs
[0]);
24884 write_radio_reg(pi
,
24885 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN
,
24887 tx_rx_cal_radio_saveregs
[1]);
24890 write_radio_reg(pi
,
24891 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP
,
24893 tx_rx_cal_radio_saveregs
[0]);
24894 write_radio_reg(pi
,
24895 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN
,
24897 tx_rx_cal_radio_saveregs
[1]);
24901 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
24902 write_radio_reg(pi
,
24903 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP
,
24905 tx_rx_cal_radio_saveregs
[0]);
24906 write_radio_reg(pi
,
24907 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN
,
24909 tx_rx_cal_radio_saveregs
[1]);
24912 write_radio_reg(pi
,
24913 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP
,
24915 tx_rx_cal_radio_saveregs
[0]);
24916 write_radio_reg(pi
,
24917 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN
,
24919 tx_rx_cal_radio_saveregs
[1]);
24924 if (rx_core
== PHY_CORE_0
) {
24925 write_radio_reg(pi
,
24926 RADIO_2056_TX_RXIQCAL_TXMUX
|
24928 pi
->tx_rx_cal_radio_saveregs
[0]);
24930 write_radio_reg(pi
,
24931 RADIO_2056_RX_RXIQCAL_RXMUX
|
24933 pi
->tx_rx_cal_radio_saveregs
[1]);
24935 if (pi
->pubpi
.radiorev
>= 5) {
24936 write_radio_reg(pi
,
24937 RADIO_2056_RX_RXSPARE2
|
24940 tx_rx_cal_radio_saveregs
[2]);
24942 write_radio_reg(pi
,
24943 RADIO_2056_TX_TXSPARE2
|
24946 tx_rx_cal_radio_saveregs
[3]);
24949 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
24950 if (pi
->pubpi
.radiorev
>= 5) {
24951 write_radio_reg(pi
,
24952 RADIO_2056_RX_LNAA_MASTER
24955 tx_rx_cal_radio_saveregs
24958 write_radio_reg(pi
,
24959 RADIO_2056_RX_LNAA_TUNE
24962 tx_rx_cal_radio_saveregs
24966 if (pi
->pubpi
.radiorev
>= 5) {
24967 write_radio_reg(pi
,
24968 RADIO_2056_RX_LNAG_MASTER
24971 tx_rx_cal_radio_saveregs
24974 write_radio_reg(pi
,
24975 RADIO_2056_RX_LNAG_TUNE
24978 tx_rx_cal_radio_saveregs
24984 write_radio_reg(pi
,
24985 RADIO_2056_TX_RXIQCAL_TXMUX
|
24987 pi
->tx_rx_cal_radio_saveregs
[0]);
24989 write_radio_reg(pi
,
24990 RADIO_2056_RX_RXIQCAL_RXMUX
|
24992 pi
->tx_rx_cal_radio_saveregs
[1]);
24994 if (pi
->pubpi
.radiorev
>= 5) {
24995 write_radio_reg(pi
,
24996 RADIO_2056_RX_RXSPARE2
|
24999 tx_rx_cal_radio_saveregs
[2]);
25001 write_radio_reg(pi
,
25002 RADIO_2056_TX_TXSPARE2
|
25005 tx_rx_cal_radio_saveregs
[3]);
25008 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
25009 if (pi
->pubpi
.radiorev
>= 5) {
25010 write_radio_reg(pi
,
25011 RADIO_2056_RX_LNAA_MASTER
25014 tx_rx_cal_radio_saveregs
25017 write_radio_reg(pi
,
25018 RADIO_2056_RX_LNAA_TUNE
25021 tx_rx_cal_radio_saveregs
25025 if (pi
->pubpi
.radiorev
>= 5) {
25026 write_radio_reg(pi
,
25027 RADIO_2056_RX_LNAG_MASTER
25030 tx_rx_cal_radio_saveregs
25033 write_radio_reg(pi
,
25034 RADIO_2056_RX_LNAG_TUNE
25037 tx_rx_cal_radio_saveregs
25045 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy
*pi
, u8 rx_core
)
25048 u16 rx_antval
, tx_antval
;
25050 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25054 tx_core
= (rx_core
== PHY_CORE_0
) ? 1 : 0;
25057 pi
->tx_rx_cal_phy_saveregs
[0] = read_phy_reg(pi
, 0xa2);
25058 pi
->tx_rx_cal_phy_saveregs
[1] =
25059 read_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0xa6 : 0xa7);
25060 pi
->tx_rx_cal_phy_saveregs
[2] =
25061 read_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0x8f : 0xa5);
25062 pi
->tx_rx_cal_phy_saveregs
[3] = read_phy_reg(pi
, 0x91);
25063 pi
->tx_rx_cal_phy_saveregs
[4] = read_phy_reg(pi
, 0x92);
25064 pi
->tx_rx_cal_phy_saveregs
[5] = read_phy_reg(pi
, 0x7a);
25065 pi
->tx_rx_cal_phy_saveregs
[6] = read_phy_reg(pi
, 0x7d);
25066 pi
->tx_rx_cal_phy_saveregs
[7] = read_phy_reg(pi
, 0xe7);
25067 pi
->tx_rx_cal_phy_saveregs
[8] = read_phy_reg(pi
, 0xec);
25068 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25069 pi
->tx_rx_cal_phy_saveregs
[11] = read_phy_reg(pi
, 0x342);
25070 pi
->tx_rx_cal_phy_saveregs
[12] = read_phy_reg(pi
, 0x343);
25071 pi
->tx_rx_cal_phy_saveregs
[13] = read_phy_reg(pi
, 0x346);
25072 pi
->tx_rx_cal_phy_saveregs
[14] = read_phy_reg(pi
, 0x347);
25075 pi
->tx_rx_cal_phy_saveregs
[9] = read_phy_reg(pi
, 0x297);
25076 pi
->tx_rx_cal_phy_saveregs
[10] = read_phy_reg(pi
, 0x29b);
25077 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x297 :
25078 0x29b, (0x1 << 0), (0) << 0);
25080 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x297 :
25081 0x29b, (0x1 << 0), (0) << 0);
25083 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25085 mod_phy_reg(pi
, 0xa2, (0xf << 0), (1 << tx_core
) << 0);
25087 mod_phy_reg(pi
, 0xa2, (0xf << 12), (1 << (1 - rx_core
)) << 12);
25091 mod_phy_reg(pi
, 0xa2, (0xf << 12), (1 << tx_core
) << 12);
25092 mod_phy_reg(pi
, 0xa2, (0xf << 0), (1 << tx_core
) << 0);
25093 mod_phy_reg(pi
, 0xa2, (0xf << 4), (1 << rx_core
) << 4);
25094 mod_phy_reg(pi
, 0xa2, (0xf << 8), (1 << rx_core
) << 8);
25097 mod_phy_reg(pi
, ((rx_core
== PHY_CORE_0
) ? 0xa6 : 0xa7), (0x1 << 2), 0);
25098 mod_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0x8f : 0xa5,
25099 (0x1 << 2), (0x1 << 2));
25100 if (NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
25101 mod_phy_reg(pi
, ((rx_core
== PHY_CORE_0
) ? 0xa6 : 0xa7),
25102 (0x1 << 0) | (0x1 << 1), 0);
25103 mod_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ?
25105 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
25108 wlc_phy_rfctrlintc_override_nphy(pi
, NPHY_RfctrlIntc_override_PA
, 0,
25109 RADIO_MIMO_CORESEL_CORE1
|
25110 RADIO_MIMO_CORESEL_CORE2
);
25112 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25113 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3),
25115 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
25116 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 9), 0, 0, 0,
25117 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
25118 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 10), 1, 0, 0,
25119 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
25120 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 0), 1, 0, 0,
25121 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
25122 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1), 1, 0, 0,
25123 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
25124 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11), 0, 0, 0,
25125 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
25126 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
25127 wlc_phy_rfctrl_override_nphy_rev7(pi
,
25130 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
25132 wlc_phy_rfctrl_override_nphy_rev7(pi
,
25135 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
25137 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 7),
25139 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
25140 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 5), 0, 0, 0,
25141 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
25143 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 0, 3, 0);
25146 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RX2TX
);
25148 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25150 wlc_phy_rfctrlintc_override_nphy(pi
,
25151 NPHY_RfctrlIntc_override_TRSW
,
25155 if (rx_core
== PHY_CORE_0
) {
25163 wlc_phy_rfctrlintc_override_nphy(pi
,
25164 NPHY_RfctrlIntc_override_TRSW
,
25165 rx_antval
, rx_core
+ 1);
25166 wlc_phy_rfctrlintc_override_nphy(pi
,
25167 NPHY_RfctrlIntc_override_TRSW
,
25168 tx_antval
, tx_core
+ 1);
25172 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy
*pi
, u8 rx_core
)
25175 write_phy_reg(pi
, 0xa2, pi
->tx_rx_cal_phy_saveregs
[0]);
25176 write_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0xa6 : 0xa7,
25177 pi
->tx_rx_cal_phy_saveregs
[1]);
25178 write_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0x8f : 0xa5,
25179 pi
->tx_rx_cal_phy_saveregs
[2]);
25180 write_phy_reg(pi
, 0x91, pi
->tx_rx_cal_phy_saveregs
[3]);
25181 write_phy_reg(pi
, 0x92, pi
->tx_rx_cal_phy_saveregs
[4]);
25183 write_phy_reg(pi
, 0x7a, pi
->tx_rx_cal_phy_saveregs
[5]);
25184 write_phy_reg(pi
, 0x7d, pi
->tx_rx_cal_phy_saveregs
[6]);
25185 write_phy_reg(pi
, 0xe7, pi
->tx_rx_cal_phy_saveregs
[7]);
25186 write_phy_reg(pi
, 0xec, pi
->tx_rx_cal_phy_saveregs
[8]);
25187 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25188 write_phy_reg(pi
, 0x342, pi
->tx_rx_cal_phy_saveregs
[11]);
25189 write_phy_reg(pi
, 0x343, pi
->tx_rx_cal_phy_saveregs
[12]);
25190 write_phy_reg(pi
, 0x346, pi
->tx_rx_cal_phy_saveregs
[13]);
25191 write_phy_reg(pi
, 0x347, pi
->tx_rx_cal_phy_saveregs
[14]);
25194 write_phy_reg(pi
, 0x297, pi
->tx_rx_cal_phy_saveregs
[9]);
25195 write_phy_reg(pi
, 0x29b, pi
->tx_rx_cal_phy_saveregs
[10]);
25199 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy
*pi
, u8 rx_core
,
25200 u16
*rxgain
, u8 cal_type
)
25204 struct phy_iq_est est
[PHY_CORE_MAX
];
25206 struct nphy_iq_comp save_comp
, zero_comp
;
25207 u32 i_pwr
, q_pwr
, curr_pwr
, optim_pwr
= 0, prev_pwr
= 0, thresh_pwr
=
25209 s16 desired_log2_pwr
, actual_log2_pwr
, delta_pwr
;
25210 bool gainctrl_done
= false;
25211 u8 mix_tia_gain
= 3;
25212 s8 optim_gaintbl_index
= 0, prev_gaintbl_index
= 0;
25213 s8 curr_gaintbl_index
= 3;
25214 u8 gainctrl_dirn
= NPHY_RXCAL_GAIN_INIT
;
25215 struct nphy_ipa_txrxgain
*nphy_rxcal_gaintbl
;
25216 u16 hpvga
, lpf_biq1
, lpf_biq0
, lna2
, lna1
;
25219 u16 nphy_rxcal_txgain
[2];
25221 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25225 tx_core
= 1 - rx_core
;
25229 desired_log2_pwr
= (cal_type
== 0) ? 13 : 13;
25231 wlc_phy_rx_iq_coeffs_nphy(pi
, 0, &save_comp
);
25232 zero_comp
.a0
= zero_comp
.b0
= zero_comp
.a1
= zero_comp
.b1
= 0x0;
25233 wlc_phy_rx_iq_coeffs_nphy(pi
, 1, &zero_comp
);
25235 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
25236 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25238 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 4)) {
25243 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25244 nphy_rxcal_gaintbl
= nphy_ipa_rxcal_gaintbl_5GHz_rev7
;
25246 nphy_rxcal_gaintbl
= nphy_ipa_rxcal_gaintbl_5GHz
;
25249 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25250 nphy_rxcal_gaintbl
= nphy_ipa_rxcal_gaintbl_2GHz_rev7
;
25252 nphy_rxcal_gaintbl
= nphy_ipa_rxcal_gaintbl_2GHz
;
25258 hpvga
= (NREV_GE(pi
->pubpi
.phy_rev
, 7)) ?
25259 0 : nphy_rxcal_gaintbl
[curr_gaintbl_index
].hpvga
;
25260 lpf_biq1
= nphy_rxcal_gaintbl
[curr_gaintbl_index
].lpf_biq1
;
25261 lpf_biq0
= nphy_rxcal_gaintbl
[curr_gaintbl_index
].lpf_biq0
;
25262 lna2
= nphy_rxcal_gaintbl
[curr_gaintbl_index
].lna2
;
25263 lna1
= nphy_rxcal_gaintbl
[curr_gaintbl_index
].lna1
;
25264 txpwrindex
= nphy_rxcal_gaintbl
[curr_gaintbl_index
].txpwrindex
;
25266 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25267 wlc_phy_rfctrl_override_1tomany_nphy(pi
,
25268 NPHY_REV7_RfctrlOverride_cmd_rxgain
,
25269 ((lpf_biq1
<< 12) |
25275 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 12),
25279 (mix_tia_gain
<< 4) |
25280 (lna2
<< 2) | lna1
), 0x3,
25284 pi
->nphy_rxcal_pwr_idx
[tx_core
] = txpwrindex
;
25286 if (txpwrindex
== -1) {
25287 nphy_rxcal_txgain
[0] = 0x8ff0 | pi
->nphy_gmval
;
25288 nphy_rxcal_txgain
[1] = 0x8ff0 | pi
->nphy_gmval
;
25289 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
,
25291 nphy_rxcal_txgain
);
25293 wlc_phy_txpwr_index_nphy(pi
, tx_core
+ 1, txpwrindex
,
25297 wlc_phy_tx_tone_nphy(pi
, (CHSPEC_IS40(pi
->radio_chanspec
)) ?
25298 NPHY_RXCAL_TONEFREQ_40MHz
:
25299 NPHY_RXCAL_TONEFREQ_20MHz
,
25300 NPHY_RXCAL_TONEAMP
, 0, cal_type
, false);
25302 wlc_phy_rx_iq_est_nphy(pi
, est
, num_samps
, 32, 0);
25303 i_pwr
= (est
[rx_core
].i_pwr
+ num_samps
/ 2) / num_samps
;
25304 q_pwr
= (est
[rx_core
].q_pwr
+ num_samps
/ 2) / num_samps
;
25305 curr_pwr
= i_pwr
+ q_pwr
;
25307 switch (gainctrl_dirn
) {
25308 case NPHY_RXCAL_GAIN_INIT
:
25309 if (curr_pwr
> thresh_pwr
) {
25310 gainctrl_dirn
= NPHY_RXCAL_GAIN_DOWN
;
25311 prev_gaintbl_index
= curr_gaintbl_index
;
25312 curr_gaintbl_index
--;
25314 gainctrl_dirn
= NPHY_RXCAL_GAIN_UP
;
25315 prev_gaintbl_index
= curr_gaintbl_index
;
25316 curr_gaintbl_index
++;
25320 case NPHY_RXCAL_GAIN_UP
:
25321 if (curr_pwr
> thresh_pwr
) {
25322 gainctrl_done
= true;
25323 optim_pwr
= prev_pwr
;
25324 optim_gaintbl_index
= prev_gaintbl_index
;
25326 prev_gaintbl_index
= curr_gaintbl_index
;
25327 curr_gaintbl_index
++;
25331 case NPHY_RXCAL_GAIN_DOWN
:
25332 if (curr_pwr
> thresh_pwr
) {
25333 prev_gaintbl_index
= curr_gaintbl_index
;
25334 curr_gaintbl_index
--;
25336 gainctrl_done
= true;
25337 optim_pwr
= curr_pwr
;
25338 optim_gaintbl_index
= curr_gaintbl_index
;
25346 if ((curr_gaintbl_index
< 0) ||
25347 (curr_gaintbl_index
> NPHY_IPA_RXCAL_MAXGAININDEX
)) {
25348 gainctrl_done
= true;
25349 optim_pwr
= curr_pwr
;
25350 optim_gaintbl_index
= prev_gaintbl_index
;
25352 prev_pwr
= curr_pwr
;
25355 wlc_phy_stopplayback_nphy(pi
);
25356 } while (!gainctrl_done
);
25358 hpvga
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].hpvga
;
25359 lpf_biq1
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].lpf_biq1
;
25360 lpf_biq0
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].lpf_biq0
;
25361 lna2
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].lna2
;
25362 lna1
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].lna1
;
25363 txpwrindex
= nphy_rxcal_gaintbl
[optim_gaintbl_index
].txpwrindex
;
25365 actual_log2_pwr
= wlc_phy_nbits(optim_pwr
);
25366 delta_pwr
= desired_log2_pwr
- actual_log2_pwr
;
25368 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25369 fine_gain_idx
= (int)lpf_biq1
+ delta_pwr
;
25371 if (fine_gain_idx
+ (int)lpf_biq0
> 10) {
25372 lpf_biq1
= 10 - lpf_biq0
;
25374 lpf_biq1
= (u16
) max(fine_gain_idx
, 0);
25376 wlc_phy_rfctrl_override_1tomany_nphy(pi
,
25377 NPHY_REV7_RfctrlOverride_cmd_rxgain
,
25378 ((lpf_biq1
<< 12) |
25380 (mix_tia_gain
<< 4) |
25381 (lna2
<< 2) | lna1
), 0x3,
25384 hpvga
= (u16
) max(min(((int)hpvga
) + delta_pwr
, 10), 0);
25385 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 12),
25386 ((hpvga
<< 12) | (lpf_biq1
<< 10) |
25387 (lpf_biq0
<< 8) | (mix_tia_gain
<<
25394 if (rxgain
!= NULL
) {
25397 *rxgain
++ = mix_tia_gain
;
25398 *rxgain
++ = lpf_biq0
;
25399 *rxgain
++ = lpf_biq1
;
25403 wlc_phy_rx_iq_coeffs_nphy(pi
, 1, &save_comp
);
25407 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy
*pi
, u8 rx_core
, u16
*rxgain
,
25410 wlc_phy_rxcal_gainctrl_nphy_rev5(pi
, rx_core
, rxgain
, cal_type
);
25414 wlc_phy_rc_sweep_nphy(struct brcms_phy
*pi
, u8 core_idx
, u8 loopback_type
)
25416 u32 target_bws
[2] = { 9500, 21000 };
25417 u32 ref_tones
[2] = { 3000, 6000 };
25418 u32 target_bw
, ref_tone
;
25420 u32 target_pwr_ratios
[2] = { 28606, 18468 };
25421 u32 target_pwr_ratio
, pwr_ratio
, last_pwr_ratio
= 0;
25423 u16 start_rccal_ovr_val
= 128;
25424 u16 txlpf_rccal_lpc_ovr_val
= 128;
25425 u16 rxlpf_rccal_hpc_ovr_val
= 159;
25427 u16 orig_txlpf_rccal_lpc_ovr_val
;
25428 u16 orig_rxlpf_rccal_hpc_ovr_val
;
25429 u16 radio_addr_offset_rx
;
25430 u16 radio_addr_offset_tx
;
25432 u16 orig_RxStrnFilt40Num
[6];
25433 u16 orig_RxStrnFilt40Den
[4];
25434 u16 orig_rfctrloverride
[2];
25435 u16 orig_rfctrlauxreg
[2];
25436 u16 orig_rfctrlrssiothers
;
25439 u16 rx_lpf_bw
, rx_lpf_bws
[2] = { 2, 4 };
25440 u16 lpf_hpc
= 7, hpvga_hpc
= 7;
25443 u16 rccal_val
, last_rccal_val
= 0, best_rccal_val
= 0;
25444 u32 ref_iq_vals
= 0, target_iq_vals
= 0;
25445 u16 num_samps
, log_num_samps
= 10;
25446 struct phy_iq_est est
[PHY_CORE_MAX
];
25448 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25452 num_samps
= (1 << log_num_samps
);
25454 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
25455 target_bw
= target_bws
[1];
25456 target_pwr_ratio
= target_pwr_ratios
[1];
25457 ref_tone
= ref_tones
[1];
25458 rx_lpf_bw
= rx_lpf_bws
[1];
25460 target_bw
= target_bws
[0];
25461 target_pwr_ratio
= target_pwr_ratios
[0];
25462 ref_tone
= ref_tones
[0];
25463 rx_lpf_bw
= rx_lpf_bws
[0];
25466 if (core_idx
== 0) {
25467 radio_addr_offset_rx
= RADIO_2056_RX0
;
25468 radio_addr_offset_tx
=
25469 (loopback_type
== 0) ? RADIO_2056_TX0
: RADIO_2056_TX1
;
25471 radio_addr_offset_rx
= RADIO_2056_RX1
;
25472 radio_addr_offset_tx
=
25473 (loopback_type
== 0) ? RADIO_2056_TX1
: RADIO_2056_TX0
;
25476 orig_txlpf_rccal_lpc_ovr_val
=
25478 (RADIO_2056_TX_TXLPF_RCCAL
| radio_addr_offset_tx
));
25479 orig_rxlpf_rccal_hpc_ovr_val
=
25481 (RADIO_2056_RX_RXLPF_RCCAL_HPC
|
25482 radio_addr_offset_rx
));
25484 orig_dcBypass
= ((read_phy_reg(pi
, 0x48) >> 8) & 1);
25486 orig_RxStrnFilt40Num
[0] = read_phy_reg(pi
, 0x267);
25487 orig_RxStrnFilt40Num
[1] = read_phy_reg(pi
, 0x268);
25488 orig_RxStrnFilt40Num
[2] = read_phy_reg(pi
, 0x269);
25489 orig_RxStrnFilt40Den
[0] = read_phy_reg(pi
, 0x26a);
25490 orig_RxStrnFilt40Den
[1] = read_phy_reg(pi
, 0x26b);
25491 orig_RxStrnFilt40Num
[3] = read_phy_reg(pi
, 0x26c);
25492 orig_RxStrnFilt40Num
[4] = read_phy_reg(pi
, 0x26d);
25493 orig_RxStrnFilt40Num
[5] = read_phy_reg(pi
, 0x26e);
25494 orig_RxStrnFilt40Den
[2] = read_phy_reg(pi
, 0x26f);
25495 orig_RxStrnFilt40Den
[3] = read_phy_reg(pi
, 0x270);
25497 orig_rfctrloverride
[0] = read_phy_reg(pi
, 0xe7);
25498 orig_rfctrloverride
[1] = read_phy_reg(pi
, 0xec);
25499 orig_rfctrlauxreg
[0] = read_phy_reg(pi
, 0xf8);
25500 orig_rfctrlauxreg
[1] = read_phy_reg(pi
, 0xfa);
25501 orig_rfctrlrssiothers
= read_phy_reg(pi
, (core_idx
== 0) ? 0x7a : 0x7d);
25503 write_radio_reg(pi
, (RADIO_2056_TX_TXLPF_RCCAL
| radio_addr_offset_tx
),
25504 txlpf_rccal_lpc_ovr_val
);
25506 write_radio_reg(pi
,
25507 (RADIO_2056_RX_RXLPF_RCCAL_HPC
| radio_addr_offset_rx
),
25508 rxlpf_rccal_hpc_ovr_val
);
25510 mod_phy_reg(pi
, 0x48, (0x1 << 8), (0x1 << 8));
25512 write_phy_reg(pi
, 0x267, 0x02d4);
25513 write_phy_reg(pi
, 0x268, 0x0000);
25514 write_phy_reg(pi
, 0x269, 0x0000);
25515 write_phy_reg(pi
, 0x26a, 0x0000);
25516 write_phy_reg(pi
, 0x26b, 0x0000);
25517 write_phy_reg(pi
, 0x26c, 0x02d4);
25518 write_phy_reg(pi
, 0x26d, 0x0000);
25519 write_phy_reg(pi
, 0x26e, 0x0000);
25520 write_phy_reg(pi
, 0x26f, 0x0000);
25521 write_phy_reg(pi
, 0x270, 0x0000);
25523 or_phy_reg(pi
, (core_idx
== 0) ? 0xe7 : 0xec, (0x1 << 8));
25524 or_phy_reg(pi
, (core_idx
== 0) ? 0xec : 0xe7, (0x1 << 15));
25525 or_phy_reg(pi
, (core_idx
== 0) ? 0xe7 : 0xec, (0x1 << 9));
25526 or_phy_reg(pi
, (core_idx
== 0) ? 0xe7 : 0xec, (0x1 << 10));
25528 mod_phy_reg(pi
, (core_idx
== 0) ? 0xfa : 0xf8,
25529 (0x7 << 10), (tx_lpf_bw
<< 10));
25530 mod_phy_reg(pi
, (core_idx
== 0) ? 0xf8 : 0xfa,
25531 (0x7 << 0), (hpvga_hpc
<< 0));
25532 mod_phy_reg(pi
, (core_idx
== 0) ? 0xf8 : 0xfa,
25533 (0x7 << 4), (lpf_hpc
<< 4));
25534 mod_phy_reg(pi
, (core_idx
== 0) ? 0x7a : 0x7d,
25535 (0x7 << 8), (rx_lpf_bw
<< 8));
25537 rccal_stepsize
= 16;
25538 rccal_val
= start_rccal_ovr_val
+ rccal_stepsize
;
25540 while (rccal_stepsize
>= 0) {
25541 write_radio_reg(pi
,
25542 (RADIO_2056_RX_RXLPF_RCCAL_LPC
|
25543 radio_addr_offset_rx
), rccal_val
);
25545 if (rccal_stepsize
== 16) {
25547 wlc_phy_tx_tone_nphy(pi
, ref_tone
, NPHY_RXCAL_TONEAMP
,
25551 wlc_phy_rx_iq_est_nphy(pi
, est
, num_samps
, 32, 0);
25553 if (core_idx
== 0) {
25555 max_t(u32
, (est
[0].i_pwr
+
25556 est
[0].q_pwr
) >> (log_num_samps
+ 1),
25560 max_t(u32
, (est
[1].i_pwr
+
25561 est
[1].q_pwr
) >> (log_num_samps
+ 1),
25565 wlc_phy_tx_tone_nphy(pi
, target_bw
, NPHY_RXCAL_TONEAMP
,
25570 wlc_phy_rx_iq_est_nphy(pi
, est
, num_samps
, 32, 0);
25572 if (core_idx
== 0) {
25574 (est
[0].i_pwr
+ est
[0].q_pwr
) >> (log_num_samps
+
25578 (est
[1].i_pwr
+ est
[1].q_pwr
) >> (log_num_samps
+
25581 pwr_ratio
= (uint
) ((target_iq_vals
<< 16) / ref_iq_vals
);
25583 if (rccal_stepsize
== 0) {
25585 } else if (rccal_stepsize
== 1) {
25586 last_rccal_val
= rccal_val
;
25587 rccal_val
+= (pwr_ratio
> target_pwr_ratio
) ? 1 : -1;
25588 last_pwr_ratio
= pwr_ratio
;
25591 rccal_stepsize
= (rccal_stepsize
>> 1);
25592 rccal_val
+= ((pwr_ratio
> target_pwr_ratio
) ?
25593 rccal_stepsize
: (-rccal_stepsize
));
25596 if (rccal_stepsize
== -1) {
25598 (ABS((int)last_pwr_ratio
- (int)target_pwr_ratio
) <
25599 ABS((int)pwr_ratio
-
25600 (int)target_pwr_ratio
)) ? last_rccal_val
:
25603 if (CHSPEC_IS40(pi
->radio_chanspec
)) {
25604 if ((best_rccal_val
> 140)
25605 || (best_rccal_val
< 135)) {
25606 best_rccal_val
= 138;
25609 if ((best_rccal_val
> 142)
25610 || (best_rccal_val
< 137)) {
25611 best_rccal_val
= 140;
25615 write_radio_reg(pi
,
25616 (RADIO_2056_RX_RXLPF_RCCAL_LPC
|
25617 radio_addr_offset_rx
), best_rccal_val
);
25621 wlc_phy_stopplayback_nphy(pi
);
25623 write_radio_reg(pi
, (RADIO_2056_TX_TXLPF_RCCAL
| radio_addr_offset_tx
),
25624 orig_txlpf_rccal_lpc_ovr_val
);
25625 write_radio_reg(pi
,
25626 (RADIO_2056_RX_RXLPF_RCCAL_HPC
| radio_addr_offset_rx
),
25627 orig_rxlpf_rccal_hpc_ovr_val
);
25629 mod_phy_reg(pi
, 0x48, (0x1 << 8), (orig_dcBypass
<< 8));
25631 write_phy_reg(pi
, 0x267, orig_RxStrnFilt40Num
[0]);
25632 write_phy_reg(pi
, 0x268, orig_RxStrnFilt40Num
[1]);
25633 write_phy_reg(pi
, 0x269, orig_RxStrnFilt40Num
[2]);
25634 write_phy_reg(pi
, 0x26a, orig_RxStrnFilt40Den
[0]);
25635 write_phy_reg(pi
, 0x26b, orig_RxStrnFilt40Den
[1]);
25636 write_phy_reg(pi
, 0x26c, orig_RxStrnFilt40Num
[3]);
25637 write_phy_reg(pi
, 0x26d, orig_RxStrnFilt40Num
[4]);
25638 write_phy_reg(pi
, 0x26e, orig_RxStrnFilt40Num
[5]);
25639 write_phy_reg(pi
, 0x26f, orig_RxStrnFilt40Den
[2]);
25640 write_phy_reg(pi
, 0x270, orig_RxStrnFilt40Den
[3]);
25642 write_phy_reg(pi
, 0xe7, orig_rfctrloverride
[0]);
25643 write_phy_reg(pi
, 0xec, orig_rfctrloverride
[1]);
25644 write_phy_reg(pi
, 0xf8, orig_rfctrlauxreg
[0]);
25645 write_phy_reg(pi
, 0xfa, orig_rfctrlauxreg
[1]);
25646 write_phy_reg(pi
, (core_idx
== 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers
);
25648 pi
->nphy_anarxlpf_adjusted
= false;
25650 return best_rccal_val
- 0x80;
25653 #define WAIT_FOR_SCOPE 4000
25654 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy
*pi
,
25655 struct nphy_txgains target_gain
,
25656 u8 cal_type
, bool debug
)
25659 u8 core_no
, rx_core
;
25663 struct nphy_iqcal_params cal_params
[2];
25665 s8 rxlpf_rccal_hpc
, txlpf_rccal_lpc
;
25667 bool phyhang_avoid_state
= false;
25668 bool skip_rxiqcal
= false;
25670 orig_BBConfig
= read_phy_reg(pi
, 0x01);
25671 mod_phy_reg(pi
, 0x01, (0x1 << 15), 0);
25673 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
25675 if (NREV_GE(pi
->pubpi
.phy_rev
, 4)) {
25676 phyhang_avoid_state
= pi
->phyhang_avoid
;
25677 pi
->phyhang_avoid
= false;
25680 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, gain_save
);
25682 for (core_no
= 0; core_no
<= 1; core_no
++) {
25683 wlc_phy_iqcal_gainparams_nphy(pi
, core_no
, target_gain
,
25684 &cal_params
[core_no
]);
25685 cal_gain
[core_no
] = cal_params
[core_no
].cal_gain
;
25688 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, cal_gain
);
25690 rxcore_state
= wlc_phy_rxcore_getstate_nphy(
25691 (struct brcms_phy_pub
*) pi
);
25693 for (rx_core
= 0; rx_core
< pi
->pubpi
.phy_corenum
; rx_core
++) {
25696 ((rxcore_state
& (1 << rx_core
)) == 0) ? true : false;
25698 wlc_phy_rxcal_physetup_nphy(pi
, rx_core
);
25700 wlc_phy_rxcal_radio_setup_nphy(pi
, rx_core
);
25702 if ((!skip_rxiqcal
) && ((cal_type
== 0) || (cal_type
== 2))) {
25704 wlc_phy_rxcal_gainctrl_nphy(pi
, rx_core
, NULL
, 0);
25706 wlc_phy_tx_tone_nphy(pi
,
25707 (CHSPEC_IS40(pi
->radio_chanspec
)) ?
25708 NPHY_RXCAL_TONEFREQ_40MHz
:
25709 NPHY_RXCAL_TONEFREQ_20MHz
,
25710 NPHY_RXCAL_TONEAMP
, 0, cal_type
,
25714 mdelay(WAIT_FOR_SCOPE
);
25716 wlc_phy_calc_rx_iq_comp_nphy(pi
, rx_core
+ 1);
25717 wlc_phy_stopplayback_nphy(pi
);
25720 if (((cal_type
== 1) || (cal_type
== 2))
25721 && NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
25723 if (rx_core
== PHY_CORE_1
) {
25725 if (rxcore_state
== 1) {
25726 wlc_phy_rxcore_setstate_nphy(
25727 (struct brcms_phy_pub
*) pi
, 3);
25730 wlc_phy_rxcal_gainctrl_nphy(pi
, rx_core
, NULL
,
25733 best_rccal
[rx_core
] =
25734 wlc_phy_rc_sweep_nphy(pi
, rx_core
, 1);
25735 pi
->nphy_rccal_value
= best_rccal
[rx_core
];
25737 if (rxcore_state
== 1) {
25738 wlc_phy_rxcore_setstate_nphy(
25739 (struct brcms_phy_pub
*) pi
,
25745 wlc_phy_rxcal_radio_cleanup_nphy(pi
, rx_core
);
25747 wlc_phy_rxcal_phycleanup_nphy(pi
, rx_core
);
25748 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
25751 if ((cal_type
== 1) || (cal_type
== 2)) {
25753 best_rccal
[0] = best_rccal
[1];
25754 write_radio_reg(pi
,
25755 (RADIO_2056_RX_RXLPF_RCCAL_LPC
|
25756 RADIO_2056_RX0
), (best_rccal
[0] | 0x80));
25758 for (rx_core
= 0; rx_core
< pi
->pubpi
.phy_corenum
; rx_core
++) {
25760 (((int)best_rccal
[rx_core
] - 12) >> 1) + 10;
25761 txlpf_rccal_lpc
= ((int)best_rccal
[rx_core
] - 12) + 10;
25764 txlpf_rccal_lpc
+= IS40MHZ(pi
) ? 24 : 12;
25765 txlpf_idac
= IS40MHZ(pi
) ? 0x0e : 0x13;
25766 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, rx_core
,
25767 TXLPF_IDAC_4
, txlpf_idac
);
25770 rxlpf_rccal_hpc
= max(min_t(u8
, rxlpf_rccal_hpc
, 31), 0);
25771 txlpf_rccal_lpc
= max(min_t(u8
, txlpf_rccal_lpc
, 31), 0);
25773 write_radio_reg(pi
, (RADIO_2056_RX_RXLPF_RCCAL_HPC
|
25775 PHY_CORE_0
) ? RADIO_2056_RX0
:
25777 (rxlpf_rccal_hpc
| 0x80));
25779 write_radio_reg(pi
, (RADIO_2056_TX_TXLPF_RCCAL
|
25781 PHY_CORE_0
) ? RADIO_2056_TX0
:
25783 (txlpf_rccal_lpc
| 0x80));
25787 write_phy_reg(pi
, 0x01, orig_BBConfig
);
25789 wlc_phy_resetcca_nphy(pi
);
25791 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
25792 wlc_phy_rfctrl_override_1tomany_nphy(pi
,
25793 NPHY_REV7_RfctrlOverride_cmd_rxgain
,
25796 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 12), 0, 0x3, 1);
25798 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
25800 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
25803 if (NREV_GE(pi
->pubpi
.phy_rev
, 4)) {
25804 pi
->phyhang_avoid
= phyhang_avoid_state
;
25807 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
25813 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy
*pi
,
25814 struct nphy_txgains target_gain
, bool debug
)
25816 struct phy_iq_est est
[PHY_CORE_MAX
];
25817 u8 core_num
, rx_core
, tx_core
;
25818 u16 lna_vals
[] = { 0x3, 0x3, 0x1 };
25819 u16 hpf1_vals
[] = { 0x7, 0x2, 0x0 };
25820 u16 hpf2_vals
[] = { 0x2, 0x0, 0x0 };
25821 s16 curr_hpf1
, curr_hpf2
, curr_hpf
, curr_lna
;
25822 s16 desired_log2_pwr
, actual_log2_pwr
, hpf_change
;
25823 u16 orig_RfseqCoreActv
, orig_AfectrlCore
, orig_AfectrlOverride
;
25824 u16 orig_RfctrlIntcRx
, orig_RfctrlIntcTx
;
25826 u32 i_pwr
, q_pwr
, tot_pwr
[3];
25827 u8 gain_pass
, use_hpf_num
;
25828 u16 mask
, val1
, val2
;
25832 struct nphy_iqcal_params cal_params
[2];
25835 bool first_playtone
= true;
25837 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
25839 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
25841 wlc_phy_reapply_txcal_coeffs_nphy(pi
);
25844 wlc_phy_table_read_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, gain_save
);
25846 for (core_no
= 0; core_no
<= 1; core_no
++) {
25847 wlc_phy_iqcal_gainparams_nphy(pi
, core_no
, target_gain
,
25848 &cal_params
[core_no
]);
25849 cal_gain
[core_no
] = cal_params
[core_no
].cal_gain
;
25852 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16, cal_gain
);
25855 desired_log2_pwr
= 13;
25857 for (core_num
= 0; core_num
< 2; core_num
++) {
25859 rx_core
= core_num
;
25860 tx_core
= 1 - core_num
;
25862 orig_RfseqCoreActv
= read_phy_reg(pi
, 0xa2);
25863 orig_AfectrlCore
= read_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ?
25865 orig_AfectrlOverride
= read_phy_reg(pi
, 0xa5);
25866 orig_RfctrlIntcRx
= read_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ?
25868 orig_RfctrlIntcTx
= read_phy_reg(pi
, (tx_core
== PHY_CORE_0
) ?
25871 mod_phy_reg(pi
, 0xa2, (0xf << 12), (1 << tx_core
) << 12);
25872 mod_phy_reg(pi
, 0xa2, (0xf << 0), (1 << tx_core
) << 0);
25874 or_phy_reg(pi
, ((rx_core
== PHY_CORE_0
) ? 0xa6 : 0xa7),
25875 ((0x1 << 1) | (0x1 << 2)));
25876 or_phy_reg(pi
, 0xa5, ((0x1 << 1) | (0x1 << 2)));
25878 if (((pi
->nphy_rxcalparams
) & 0xff000000)) {
25881 (rx_core
== PHY_CORE_0
) ? 0x91 : 0x92,
25882 (CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x140 :
25887 (rx_core
== PHY_CORE_0
) ? 0x91 : 0x92,
25888 (CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x180 :
25892 write_phy_reg(pi
, (tx_core
== PHY_CORE_0
) ? 0x91 : 0x92,
25893 (CHSPEC_IS5G(pi
->radio_chanspec
) ? 0x148 :
25896 mask
= RADIO_2055_COUPLE_RX_MASK
| RADIO_2055_COUPLE_TX_MASK
;
25897 if (rx_core
== PHY_CORE_0
) {
25898 val1
= RADIO_2055_COUPLE_RX_MASK
;
25899 val2
= RADIO_2055_COUPLE_TX_MASK
;
25901 val1
= RADIO_2055_COUPLE_TX_MASK
;
25902 val2
= RADIO_2055_COUPLE_RX_MASK
;
25905 if ((pi
->nphy_rxcalparams
& 0x10000)) {
25906 mod_radio_reg(pi
, RADIO_2055_CORE1_GEN_SPARE2
, mask
,
25908 mod_radio_reg(pi
, RADIO_2055_CORE2_GEN_SPARE2
, mask
,
25912 for (gain_pass
= 0; gain_pass
< 4; gain_pass
++) {
25915 mdelay(WAIT_FOR_SCOPE
);
25917 if (gain_pass
< 3) {
25918 curr_lna
= lna_vals
[gain_pass
];
25919 curr_hpf1
= hpf1_vals
[gain_pass
];
25920 curr_hpf2
= hpf2_vals
[gain_pass
];
25923 if (tot_pwr
[1] > 10000) {
25924 curr_lna
= lna_vals
[2];
25925 curr_hpf1
= hpf1_vals
[2];
25926 curr_hpf2
= hpf2_vals
[2];
25928 curr_hpf
= curr_hpf1
;
25930 wlc_phy_nbits(tot_pwr
[2]);
25932 if (tot_pwr
[0] > 10000) {
25933 curr_lna
= lna_vals
[1];
25934 curr_hpf1
= hpf1_vals
[1];
25935 curr_hpf2
= hpf2_vals
[1];
25937 curr_hpf
= curr_hpf1
;
25939 wlc_phy_nbits(tot_pwr
[1]);
25941 curr_lna
= lna_vals
[0];
25942 curr_hpf1
= hpf1_vals
[0];
25943 curr_hpf2
= hpf2_vals
[0];
25945 curr_hpf
= curr_hpf2
;
25947 wlc_phy_nbits(tot_pwr
[0]);
25951 hpf_change
= desired_log2_pwr
- actual_log2_pwr
;
25952 curr_hpf
+= hpf_change
;
25953 curr_hpf
= max(min_t(u16
, curr_hpf
, 10), 0);
25954 if (use_hpf_num
== 1) {
25955 curr_hpf1
= curr_hpf
;
25957 curr_hpf2
= curr_hpf
;
25961 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 10),
25962 ((curr_hpf2
<< 8) |
25964 (curr_lna
<< 2)), 0x3, 0);
25965 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
25967 wlc_phy_stopplayback_nphy(pi
);
25969 if (first_playtone
) {
25970 bcmerror
= wlc_phy_tx_tone_nphy(pi
, 4000,
25976 first_playtone
= false;
25979 (CHSPEC_IS40(pi
->radio_chanspec
)) ? 40 : 20;
25980 wlc_phy_runsamples_nphy(pi
, phy_bw
* 8, 0xffff,
25984 if (bcmerror
== 0) {
25985 if (gain_pass
< 3) {
25987 wlc_phy_rx_iq_est_nphy(pi
, est
,
25991 (est
[rx_core
].i_pwr
+
25992 num_samps
/ 2) / num_samps
;
25994 (est
[rx_core
].q_pwr
+
25995 num_samps
/ 2) / num_samps
;
25996 tot_pwr
[gain_pass
] = i_pwr
+ q_pwr
;
25999 wlc_phy_calc_rx_iq_comp_nphy(pi
,
26004 wlc_phy_stopplayback_nphy(pi
);
26011 and_radio_reg(pi
, RADIO_2055_CORE1_GEN_SPARE2
, ~mask
);
26012 and_radio_reg(pi
, RADIO_2055_CORE2_GEN_SPARE2
, ~mask
);
26014 write_phy_reg(pi
, (tx_core
== PHY_CORE_0
) ? 0x91 :
26015 0x92, orig_RfctrlIntcTx
);
26016 write_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0x91 :
26017 0x92, orig_RfctrlIntcRx
);
26018 write_phy_reg(pi
, 0xa5, orig_AfectrlOverride
);
26019 write_phy_reg(pi
, (rx_core
== PHY_CORE_0
) ? 0xa6 :
26020 0xa7, orig_AfectrlCore
);
26021 write_phy_reg(pi
, 0xa2, orig_RfseqCoreActv
);
26027 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 10), 0, 0x3, 1);
26028 wlc_phy_force_rfseq_nphy(pi
, NPHY_RFSEQ_RESET2RX
);
26030 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_RFSEQ
, 2, 0x110, 16,
26033 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
26039 wlc_phy_cal_rxiq_nphy(struct brcms_phy
*pi
, struct nphy_txgains target_gain
,
26040 u8 cal_type
, bool debug
)
26042 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26046 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
26047 return wlc_phy_cal_rxiq_nphy_rev3(pi
, target_gain
, cal_type
,
26050 return wlc_phy_cal_rxiq_nphy_rev2(pi
, target_gain
, debug
);
26054 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy
*pi
)
26057 u16 addr_offset
= 0x2c5;
26059 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++) {
26060 write_phy_reg(pi
, addr_offset
+ j
,
26061 NPHY_IPA_REV4_txdigi_filtcoeffs
[type
][j
]);
26065 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy
*pi
)
26068 u16 addr_offset
[] = { 0x186, 0x195,
26072 for (type
= 0; type
< 3; type
++) {
26073 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++) {
26074 write_phy_reg(pi
, addr_offset
[type
] + j
,
26075 NPHY_IPA_REV4_txdigi_filtcoeffs
[type
][j
]);
26080 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++) {
26081 write_phy_reg(pi
, 0x186 + j
,
26082 NPHY_IPA_REV4_txdigi_filtcoeffs
[3][j
]);
26085 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
26086 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++) {
26087 write_phy_reg(pi
, 0x186 + j
,
26088 NPHY_IPA_REV4_txdigi_filtcoeffs
[5]
26093 if (CHSPEC_CHANNEL(pi
->radio_chanspec
) == 14) {
26094 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++) {
26095 write_phy_reg(pi
, 0x2c5 + j
,
26096 NPHY_IPA_REV4_txdigi_filtcoeffs
[6]
26103 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy
*pi
)
26108 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++) {
26109 write_phy_reg(pi
, 0x195 + j
,
26110 NPHY_IPA_REV4_txdigi_filtcoeffs
[4][j
]);
26113 for (j
= 0; j
< NPHY_NUM_DIG_FILT_COEFFS
; j
++) {
26114 write_phy_reg(pi
, 0x186 + j
,
26115 NPHY_IPA_REV4_txdigi_filtcoeffs
[3][j
]);
26120 static u16
wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy
*pi
)
26124 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &m0m1
);
26129 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy
*pi
, u8 m0
, u8 m1
)
26131 u16 m0m1
= (u16
) ((m0
<< 8) | m1
);
26133 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &m0m1
);
26134 wlc_phy_table_write_nphy(pi
, 15, 1, 95, 16, &m0m1
);
26137 static u32
*wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy
*pi
)
26139 u32
*tx_pwrctrl_tbl
= NULL
;
26141 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26143 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26145 if ((pi
->pubpi
.radiorev
== 4)
26146 || (pi
->pubpi
.radiorev
== 6)) {
26149 nphy_tpc_txgain_ipa_2g_2057rev4n6
;
26150 } else if (pi
->pubpi
.radiorev
== 3) {
26153 nphy_tpc_txgain_ipa_2g_2057rev3
;
26154 } else if (pi
->pubpi
.radiorev
== 5) {
26157 nphy_tpc_txgain_ipa_2g_2057rev5
;
26158 } else if ((pi
->pubpi
.radiorev
== 7)
26159 || (pi
->pubpi
.radiorev
== 8)) {
26162 nphy_tpc_txgain_ipa_2g_2057rev7
;
26165 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 6)) {
26167 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa_rev6
;
26168 } else if (NREV_IS(pi
->pubpi
.phy_rev
, 5)) {
26170 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa_rev5
;
26173 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa
;
26178 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26179 if ((pi
->pubpi
.radiorev
== 3) ||
26180 (pi
->pubpi
.radiorev
== 4) ||
26181 (pi
->pubpi
.radiorev
== 6)) {
26183 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa_5g_2057
;
26184 } else if ((pi
->pubpi
.radiorev
== 7)
26185 || (pi
->pubpi
.radiorev
== 8)) {
26188 nphy_tpc_txgain_ipa_5g_2057rev7
;
26192 tx_pwrctrl_tbl
= nphy_tpc_txgain_ipa_5g
;
26196 return tx_pwrctrl_tbl
;
26200 wlc_phy_papd_cal_setup_nphy(struct brcms_phy
*pi
,
26201 struct nphy_papd_restore_state
*state
, u8 core
)
26207 off_core
= core
^ 0x1;
26208 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26210 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)
26211 || NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
26212 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 7),
26213 wlc_phy_read_lpf_bw_ctl_nphy
26215 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26218 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26219 if (pi
->pubpi
.radiorev
== 5) {
26220 mixgain
= (core
== 0) ? 0x20 : 0x00;
26222 } else if ((pi
->pubpi
.radiorev
== 7)
26223 || (pi
->pubpi
.radiorev
== 8)) {
26227 } else if ((pi
->pubpi
.radiorev
<= 4)
26228 || (pi
->pubpi
.radiorev
== 6)) {
26234 if ((pi
->pubpi
.radiorev
== 4) ||
26235 (pi
->pubpi
.radiorev
== 6)) {
26238 } else if ((pi
->pubpi
.radiorev
== 3)
26239 || (pi
->pubpi
.radiorev
== 7)
26240 || (pi
->pubpi
.radiorev
== 8)) {
26246 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11),
26247 mixgain
, (1 << core
), 0,
26248 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26250 wlc_phy_rfctrl_override_1tomany_nphy(pi
,
26251 NPHY_REV7_RfctrlOverride_cmd_tx_pu
,
26252 1, (1 << core
), 0);
26253 wlc_phy_rfctrl_override_1tomany_nphy(pi
,
26254 NPHY_REV7_RfctrlOverride_cmd_tx_pu
,
26255 0, (1 << off_core
), 0);
26257 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3),
26259 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26260 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2), 1,
26262 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26263 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 0), 0,
26265 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26266 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1), 1,
26268 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
26269 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 8), 0,
26271 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26272 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 9), 1,
26274 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26275 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 10), 0,
26277 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26278 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3), 1,
26280 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26282 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 5),
26284 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26285 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 4), 0,
26287 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26289 state
->afectrl
[core
] = read_phy_reg(pi
, (core
== PHY_CORE_0
) ?
26291 state
->afeoverride
[core
] =
26292 read_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x8f : 0xa5);
26293 state
->afectrl
[off_core
] =
26294 read_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0xa7 : 0xa6);
26295 state
->afeoverride
[off_core
] =
26296 read_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0xa5 : 0x8f);
26298 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0xa6 : 0xa7),
26300 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0x8f :
26301 0xa5), (0x1 << 2), (0x1 << 2));
26303 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0xa7 : 0xa6),
26304 (0x1 << 2), (0x1 << 2));
26305 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0xa5 :
26306 0x8f), (0x1 << 2), (0x1 << 2));
26308 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26309 state
->pwrup
[core
] =
26310 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26311 TXRXCOUPLE_2G_PWRUP
);
26312 state
->atten
[core
] =
26313 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26314 TXRXCOUPLE_2G_ATTEN
);
26315 state
->pwrup
[off_core
] =
26316 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
26317 TXRXCOUPLE_2G_PWRUP
);
26318 state
->atten
[off_core
] =
26319 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
26320 TXRXCOUPLE_2G_ATTEN
);
26322 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26323 TXRXCOUPLE_2G_PWRUP
, 0xc);
26325 if ((pi
->pubpi
.radiorev
== 3) ||
26326 (pi
->pubpi
.radiorev
== 4) ||
26327 (pi
->pubpi
.radiorev
== 6)) {
26329 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26330 TXRXCOUPLE_2G_ATTEN
, 0xf0);
26332 } else if (pi
->pubpi
.radiorev
== 5) {
26334 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26335 TXRXCOUPLE_2G_ATTEN
,
26336 (core
== 0) ? 0xf7 : 0xf2);
26338 } else if ((pi
->pubpi
.radiorev
== 7)
26339 || (pi
->pubpi
.radiorev
== 8)) {
26341 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26342 TXRXCOUPLE_2G_ATTEN
, 0xf0);
26346 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
26347 TXRXCOUPLE_2G_PWRUP
, 0x0);
26348 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
26349 TXRXCOUPLE_2G_ATTEN
, 0xff);
26352 state
->pwrup
[core
] =
26353 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26354 TXRXCOUPLE_5G_PWRUP
);
26355 state
->atten
[core
] =
26356 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26357 TXRXCOUPLE_5G_ATTEN
);
26358 state
->pwrup
[off_core
] =
26359 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
26360 TXRXCOUPLE_5G_PWRUP
);
26361 state
->atten
[off_core
] =
26362 READ_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
26363 TXRXCOUPLE_5G_ATTEN
);
26365 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26366 TXRXCOUPLE_5G_PWRUP
, 0xc);
26368 if ((pi
->pubpi
.radiorev
== 7)
26369 || (pi
->pubpi
.radiorev
== 8)) {
26371 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26372 TXRXCOUPLE_5G_ATTEN
, 0xf4);
26375 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26376 TXRXCOUPLE_5G_ATTEN
, 0xf0);
26379 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
26380 TXRXCOUPLE_5G_PWRUP
, 0x0);
26381 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, off_core
,
26382 TXRXCOUPLE_5G_ATTEN
, 0xff);
26387 wlc_phy_tx_tone_nphy(pi
, tone_freq
, 181, 0, 0, false);
26389 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
26390 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON
) << 0);
26392 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26393 0x2a4, (0x1 << 13), (1) << 13);
26395 mod_phy_reg(pi
, (off_core
== PHY_CORE_0
) ? 0x297 :
26396 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF
) << 0);
26398 mod_phy_reg(pi
, (off_core
== PHY_CORE_0
) ? 0x2a3 :
26399 0x2a4, (0x1 << 13), (0) << 13);
26403 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 12), 0, 0x3, 0);
26405 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 1, 0, 0);
26407 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 0), 0, 0x3, 0);
26409 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 2), 1, 0x3, 0);
26410 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 1), 1, 0x3, 0);
26412 state
->afectrl
[core
] = read_phy_reg(pi
, (core
== PHY_CORE_0
) ?
26414 state
->afeoverride
[core
] =
26415 read_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x8f : 0xa5);
26417 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0xa6 : 0xa7),
26418 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
26419 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0x8f :
26423 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
26425 state
->vga_master
[core
] =
26426 READ_RADIO_REG2(pi
, RADIO_2056
, RX
, core
, VGA_MASTER
);
26427 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
, VGA_MASTER
, 0x2b);
26428 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26429 state
->fbmix
[core
] =
26430 READ_RADIO_REG2(pi
, RADIO_2056
, RX
, core
,
26432 state
->intpa_master
[core
] =
26433 READ_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
26436 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
, TXFBMIX_G
,
26438 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
26439 INTPAG_MASTER
, 0x04);
26441 state
->fbmix
[core
] =
26442 READ_RADIO_REG2(pi
, RADIO_2056
, RX
, core
,
26444 state
->intpa_master
[core
] =
26445 READ_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
26448 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
, TXFBMIX_A
,
26450 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
26451 INTPAA_MASTER
, 0x04);
26457 wlc_phy_tx_tone_nphy(pi
, tone_freq
, 181, 0, 0, false);
26459 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
26460 0x29b, (0x1 << 0), (1) << 0);
26462 mod_phy_reg(pi
, (off_core
== PHY_CORE_0
) ? 0x297 :
26463 0x29b, (0x1 << 0), (0) << 0);
26465 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 0, 0x3, 0);
26470 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy
*pi
,
26471 struct nphy_papd_restore_state
*state
)
26475 wlc_phy_stopplayback_nphy(pi
);
26477 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26479 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
26481 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26482 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26483 TXRXCOUPLE_2G_PWRUP
, 0);
26484 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26485 TXRXCOUPLE_2G_ATTEN
,
26486 state
->atten
[core
]);
26488 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26489 TXRXCOUPLE_5G_PWRUP
, 0);
26490 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
26491 TXRXCOUPLE_5G_ATTEN
,
26492 state
->atten
[core
]);
26496 if ((pi
->pubpi
.radiorev
== 4) || (pi
->pubpi
.radiorev
== 6)) {
26497 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2),
26499 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26501 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2),
26503 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26505 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1),
26507 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26508 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 0), 0, 0x3, 1,
26509 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
26510 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2), 0, 0x3, 1,
26511 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
26512 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11), 1, 0x3, 1,
26513 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26514 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3), 0, 0x3, 1,
26515 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26516 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 11), 0, 0x3, 1,
26517 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26518 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 12), 0, 0x3, 1,
26519 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26520 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 2), 1, 0x3, 1,
26521 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26522 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 0), 0, 0x3, 1,
26523 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26524 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 1), 1, 0x3, 1,
26525 NPHY_REV7_RFCTRLOVERRIDE_ID2
);
26526 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 8), 0, 0x3, 1,
26527 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26528 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 9), 1, 0x3, 1,
26529 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26530 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 10), 0, 0x3, 1,
26531 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26532 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3), 1, 0x3, 1,
26533 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26534 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 5), 0, 0x3, 1,
26535 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26536 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 4), 0, 0x3, 1,
26537 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26539 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
26541 write_phy_reg(pi
, (core
== PHY_CORE_0
) ?
26542 0xa6 : 0xa7, state
->afectrl
[core
]);
26543 write_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x8f :
26544 0xa5, state
->afeoverride
[core
]);
26547 wlc_phy_ipa_set_bbmult_nphy(pi
, (state
->mm
>> 8) & 0xff,
26548 (state
->mm
& 0xff));
26550 if (NREV_IS(pi
->pubpi
.phy_rev
, 7)
26551 || NREV_GE(pi
->pubpi
.phy_rev
, 8)) {
26552 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 7), 0, 0,
26554 NPHY_REV7_RFCTRLOVERRIDE_ID1
);
26558 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 12), 0, 0x3, 1);
26559 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 13), 0, 0x3, 1);
26560 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 0), 0, 0x3, 1);
26562 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 2), 0, 0x3, 1);
26563 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 1), 0, 0x3, 1);
26565 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
26567 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
, VGA_MASTER
,
26568 state
->vga_master
[core
]);
26569 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26570 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
,
26571 TXFBMIX_G
, state
->fbmix
[core
]);
26572 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
26574 state
->intpa_master
[core
]);
26576 WRITE_RADIO_REG2(pi
, RADIO_2056
, RX
, core
,
26577 TXFBMIX_A
, state
->fbmix
[core
]);
26578 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
26580 state
->intpa_master
[core
]);
26583 write_phy_reg(pi
, (core
== PHY_CORE_0
) ?
26584 0xa6 : 0xa7, state
->afectrl
[core
]);
26585 write_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x8f :
26586 0xa5, state
->afeoverride
[core
]);
26589 wlc_phy_ipa_set_bbmult_nphy(pi
, (state
->mm
>> 8) & 0xff,
26590 (state
->mm
& 0xff));
26592 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 0, 0x3, 1);
26597 wlc_phy_a1_nphy(struct brcms_phy
*pi
, u8 core
, u32 winsz
, u32 start
,
26600 u32
*buf
, *src
, *dst
, sz
;
26602 sz
= end
- start
+ 1;
26604 buf
= kmalloc(2 * sizeof(u32
) * NPHY_PAPD_EPS_TBL_SIZE
, GFP_ATOMIC
);
26610 dst
= buf
+ NPHY_PAPD_EPS_TBL_SIZE
;
26612 wlc_phy_table_read_nphy(pi
,
26614 PHY_CORE_0
? NPHY_TBL_ID_EPSILONTBL0
:
26615 NPHY_TBL_ID_EPSILONTBL1
),
26616 NPHY_PAPD_EPS_TBL_SIZE
, 0, 32, src
);
26619 u32 phy_a1
, phy_a2
;
26620 s32 phy_a3
, phy_a4
, phy_a5
, phy_a6
, phy_a7
;
26622 phy_a1
= end
- min(end
, (winsz
>> 1));
26623 phy_a2
= min_t(u32
, NPHY_PAPD_EPS_TBL_SIZE
- 1, end
+ (winsz
>> 1));
26624 phy_a3
= phy_a2
- phy_a1
+ 1;
26629 wlc_phy_papd_decode_epsilon(src
[phy_a2
], &phy_a4
,
26633 } while (phy_a2
-- != phy_a1
);
26637 dst
[end
] = ((u32
) phy_a7
<< 13) | ((u32
) phy_a6
& 0x1fff);
26638 } while (end
-- != start
);
26640 wlc_phy_table_write_nphy(pi
,
26642 PHY_CORE_0
) ? NPHY_TBL_ID_EPSILONTBL0
:
26643 NPHY_TBL_ID_EPSILONTBL1
, sz
, start
, 32, dst
);
26649 wlc_phy_a2_nphy(struct brcms_phy
*pi
, struct nphy_ipa_txcalgains
*txgains
,
26650 enum phy_cal_mode cal_mode
, u8 core
)
26652 u16 phy_a1
, phy_a2
, phy_a3
;
26653 u16 phy_a4
, phy_a5
;
26657 struct nphy_txgains phy_a9
;
26659 if (NREV_LT(pi
->pubpi
.phy_rev
, 3))
26662 phy_a7
= (core
== PHY_CORE_0
) ? 1 : 0;
26664 phy_a6
= ((cal_mode
== CAL_GCTRL
)
26665 || (cal_mode
== CAL_SOFT
)) ? true : false;
26667 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26669 phy_a9
= wlc_phy_get_tx_gain_nphy(pi
);
26671 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26672 phy_a5
= ((phy_a9
.txlpf
[core
] << 15) |
26673 (phy_a9
.txgm
[core
] << 12) |
26674 (phy_a9
.pga
[core
] << 8) |
26675 (txgains
->gains
.pad
[core
] << 3) |
26676 (phy_a9
.ipa
[core
]));
26678 phy_a5
= ((phy_a9
.txlpf
[core
] << 15) |
26679 (phy_a9
.txgm
[core
] << 12) |
26680 (txgains
->gains
.pga
[core
] << 8) |
26681 (phy_a9
.pad
[core
] << 3) | (phy_a9
.ipa
[core
]));
26684 wlc_phy_rfctrl_override_1tomany_nphy(pi
,
26685 NPHY_REV7_RfctrlOverride_cmd_txgain
,
26686 phy_a5
, (1 << core
), 0);
26688 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26689 if ((pi
->pubpi
.radiorev
<= 4)
26690 || (pi
->pubpi
.radiorev
== 6)) {
26692 m
[core
] = IS40MHZ(pi
) ? 60 : 79;
26695 m
[core
] = IS40MHZ(pi
) ? 45 : 64;
26699 m
[core
] = IS40MHZ(pi
) ? 75 : 107;
26703 wlc_phy_ipa_set_bbmult_nphy(pi
, m
[0], m
[1]);
26707 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26708 if ((pi
->pubpi
.radiorev
== 4)
26709 || (pi
->pubpi
.radiorev
== 6)) {
26717 if ((pi
->pubpi
.radiorev
== 5)
26718 || (pi
->pubpi
.radiorev
== 7)
26719 || (pi
->pubpi
.radiorev
== 8)) {
26728 if (cal_mode
== CAL_GCTRL
) {
26729 if ((pi
->pubpi
.radiorev
== 5)
26730 && (CHSPEC_IS2G(pi
->radio_chanspec
))) {
26732 } else if (((pi
->pubpi
.radiorev
== 7) &&
26733 (CHSPEC_IS2G(pi
->radio_chanspec
))) ||
26734 ((pi
->pubpi
.radiorev
== 8) &&
26735 (CHSPEC_IS2G(pi
->radio_chanspec
)))) {
26741 } else if ((cal_mode
!= CAL_FULL
) && (cal_mode
!= CAL_SOFT
)) {
26747 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
26748 0x29b, (0x1 << 0), (1) << 0);
26750 mod_phy_reg(pi
, (phy_a7
== PHY_CORE_0
) ? 0x297 :
26751 0x29b, (0x1 << 0), (0) << 0);
26753 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26754 0x2a4, (0x1 << 13), (1) << 13);
26756 mod_phy_reg(pi
, (phy_a7
== PHY_CORE_0
) ? 0x2a3 :
26757 0x2a4, (0x1 << 13), (0) << 13);
26759 write_phy_reg(pi
, 0x2a1, 0x80);
26760 write_phy_reg(pi
, 0x2a2, 0x100);
26762 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26763 0x2a4, (0x7 << 4), (11) << 4);
26765 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26766 0x2a4, (0x7 << 8), (11) << 8);
26768 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26769 0x2a4, (0x7 << 0), (0x3) << 0);
26771 write_phy_reg(pi
, 0x2e5, 0x20);
26773 mod_phy_reg(pi
, 0x2a0, (0x3f << 0), (phy_a3
) << 0);
26775 mod_phy_reg(pi
, 0x29f, (0x3f << 0), (phy_a1
) << 0);
26777 mod_phy_reg(pi
, 0x29f, (0x3f << 8), (phy_a2
) << 8);
26779 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3),
26780 1, ((core
== 0) ? 1 : 2), 0,
26781 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26782 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3),
26783 0, ((core
== 0) ? 2 : 1), 0,
26784 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26786 write_phy_reg(pi
, 0x2be, 1);
26787 SPINWAIT(read_phy_reg(pi
, 0x2be), 10 * 1000 * 1000);
26789 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 3),
26791 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
26793 wlc_phy_table_write_nphy(pi
,
26795 PHY_CORE_0
) ? NPHY_TBL_ID_EPSILONTBL0
26796 : NPHY_TBL_ID_EPSILONTBL1
, 1, phy_a3
,
26799 if (cal_mode
!= CAL_GCTRL
) {
26800 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
26801 wlc_phy_a1_nphy(pi
, core
, 5, 0, 35);
26805 wlc_phy_rfctrl_override_1tomany_nphy(pi
,
26806 NPHY_REV7_RfctrlOverride_cmd_txgain
,
26807 phy_a5
, (1 << core
), 1);
26812 if (txgains
->useindex
) {
26813 phy_a4
= 15 - ((txgains
->index
) >> 3);
26814 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26815 if (NREV_GE(pi
->pubpi
.phy_rev
, 6))
26816 phy_a5
= 0x00f7 | (phy_a4
<< 8);
26819 if (NREV_IS(pi
->pubpi
.phy_rev
, 5))
26820 phy_a5
= 0x10f7 | (phy_a4
<< 8);
26822 phy_a5
= 0x50f7 | (phy_a4
<< 8);
26824 phy_a5
= 0x70f7 | (phy_a4
<< 8);
26826 wlc_phy_rfctrl_override_nphy(pi
,
26831 wlc_phy_rfctrl_override_nphy(pi
,
26838 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26839 m
[core
] = IS40MHZ(pi
) ? 45 : 64;
26841 m
[core
] = IS40MHZ(pi
) ? 75 : 107;
26845 wlc_phy_ipa_set_bbmult_nphy(pi
, m
[0], m
[1]);
26849 if (cal_mode
== CAL_FULL
) {
26852 } else if (cal_mode
== CAL_SOFT
) {
26855 } else if (cal_mode
== CAL_GCTRL
) {
26864 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
26865 0x29b, (0x1 << 0), (1) << 0);
26867 mod_phy_reg(pi
, (phy_a7
== PHY_CORE_0
) ? 0x297 :
26868 0x29b, (0x1 << 0), (0) << 0);
26870 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
26871 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26872 0x2a4, (0x1 << 13), (1) << 13);
26874 mod_phy_reg(pi
, (phy_a7
== PHY_CORE_0
) ? 0x2a3 :
26875 0x2a4, (0x1 << 13), (0) << 13);
26877 write_phy_reg(pi
, 0x2a1, 0x20);
26878 write_phy_reg(pi
, 0x2a2, 0x60);
26880 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26881 0x2a4, (0xf << 4), (9) << 4);
26883 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26884 0x2a4, (0xf << 8), (9) << 8);
26886 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26887 0x2a4, (0xf << 0), (0x2) << 0);
26889 write_phy_reg(pi
, 0x2e5, 0x20);
26891 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26892 0x2a4, (0x1 << 11), (1) << 11);
26894 mod_phy_reg(pi
, (phy_a7
== PHY_CORE_0
) ? 0x2a3 :
26895 0x2a4, (0x1 << 11), (0) << 11);
26897 write_phy_reg(pi
, 0x2a1, 0x80);
26898 write_phy_reg(pi
, 0x2a2, 0x600);
26900 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26901 0x2a4, (0x7 << 4), (0) << 4);
26903 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26904 0x2a4, (0x7 << 8), (0) << 8);
26906 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x2a3 :
26907 0x2a4, (0x7 << 0), (0x3) << 0);
26909 mod_phy_reg(pi
, 0x2a0, (0x3f << 8), (0x20) << 8);
26913 mod_phy_reg(pi
, 0x2a0, (0x3f << 0), (phy_a3
) << 0);
26915 mod_phy_reg(pi
, 0x29f, (0x3f << 0), (phy_a1
) << 0);
26917 mod_phy_reg(pi
, 0x29f, (0x3f << 8), (phy_a2
) << 8);
26919 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 1, 0x3, 0);
26921 write_phy_reg(pi
, 0x2be, 1);
26922 SPINWAIT(read_phy_reg(pi
, 0x2be), 10 * 1000 * 1000);
26924 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 3), 0, 0x3, 0);
26926 wlc_phy_table_write_nphy(pi
,
26928 PHY_CORE_0
) ? NPHY_TBL_ID_EPSILONTBL0
26929 : NPHY_TBL_ID_EPSILONTBL1
, 1, phy_a3
,
26932 if (cal_mode
!= CAL_GCTRL
) {
26933 wlc_phy_a1_nphy(pi
, core
, 5, 0, 40);
26938 static u8
wlc_phy_a3_nphy(struct brcms_phy
*pi
, u8 start_gain
, u8 core
)
26943 struct nphy_ipa_txcalgains phy_a4
;
26944 bool phy_a5
= false;
26945 bool phy_a6
= true;
26946 s32 phy_a7
, phy_a8
;
26949 bool phy_a11
= false;
26953 u8
*phy_a15
= NULL
;
26955 phy_a4
.useindex
= true;
26956 phy_a12
= start_gain
;
26958 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
26963 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26964 if (pi
->pubpi
.radiorev
== 5) {
26966 phy_a15
= pad_gain_codes_used_2057rev5
;
26967 phy_a13
= sizeof(pad_gain_codes_used_2057rev5
) /
26968 sizeof(pad_gain_codes_used_2057rev5
[0]) - 1;
26970 } else if ((pi
->pubpi
.radiorev
== 7)
26971 || (pi
->pubpi
.radiorev
== 8)) {
26973 phy_a15
= pad_gain_codes_used_2057rev7
;
26974 phy_a13
= sizeof(pad_gain_codes_used_2057rev7
) /
26975 sizeof(pad_gain_codes_used_2057rev7
[0]) - 1;
26979 phy_a15
= pad_all_gain_codes_2057
;
26980 phy_a13
= sizeof(pad_all_gain_codes_2057
) /
26981 sizeof(pad_all_gain_codes_2057
[0]) - 1;
26986 phy_a15
= pga_all_gain_codes_2057
;
26987 phy_a13
= sizeof(pga_all_gain_codes_2057
) /
26988 sizeof(pga_all_gain_codes_2057
[0]) - 1;
26993 for (phy_a10
= 0; phy_a10
< phy_a2
; phy_a10
++) {
26994 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
26995 phy_a4
.gains
.pad
[core
] =
26996 (u16
) phy_a15
[phy_a12
];
26998 phy_a4
.gains
.pga
[core
] =
26999 (u16
) phy_a15
[phy_a12
];
27002 wlc_phy_a2_nphy(pi
, &phy_a4
, CAL_GCTRL
, core
);
27004 wlc_phy_table_read_nphy(pi
,
27007 NPHY_TBL_ID_EPSILONTBL0
:
27008 NPHY_TBL_ID_EPSILONTBL1
), 1,
27011 wlc_phy_papd_decode_epsilon(phy_a9
, &phy_a7
, &phy_a8
);
27013 phy_a3
= ((phy_a7
== 4095) || (phy_a7
== -4096) ||
27014 (phy_a8
== 4095) || (phy_a8
== -4096));
27016 if (!phy_a6
&& (phy_a3
!= phy_a5
)) {
27018 phy_a12
-= (u8
) phy_a1
;
27025 phy_a12
+= (u8
) phy_a1
;
27027 phy_a12
-= (u8
) phy_a1
;
27029 if ((phy_a12
< phy_a14
) || (phy_a12
> phy_a13
)) {
27030 if (phy_a12
< phy_a14
) {
27046 for (phy_a10
= 0; phy_a10
< phy_a2
; phy_a10
++) {
27047 phy_a4
.index
= (u8
) phy_a12
;
27048 wlc_phy_a2_nphy(pi
, &phy_a4
, CAL_GCTRL
, core
);
27050 wlc_phy_table_read_nphy(pi
,
27053 NPHY_TBL_ID_EPSILONTBL0
:
27054 NPHY_TBL_ID_EPSILONTBL1
), 1,
27057 wlc_phy_papd_decode_epsilon(phy_a9
, &phy_a7
, &phy_a8
);
27059 phy_a3
= ((phy_a7
== 4095) || (phy_a7
== -4096) ||
27060 (phy_a8
== 4095) || (phy_a8
== -4096));
27062 if (!phy_a6
&& (phy_a3
!= phy_a5
)) {
27064 phy_a12
-= (u8
) phy_a1
;
27071 phy_a12
+= (u8
) phy_a1
;
27073 phy_a12
-= (u8
) phy_a1
;
27075 if ((phy_a12
< 0) || (phy_a12
> 127)) {
27091 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
27092 return (u8
) phy_a15
[phy_a12
];
27094 return (u8
) phy_a12
;
27099 static void wlc_phy_a4(struct brcms_phy
*pi
, bool full_cal
)
27101 struct nphy_ipa_txcalgains phy_b1
[2];
27102 struct nphy_papd_restore_state phy_b2
;
27106 s16 phy_b6
, phy_b7
, phy_b8
;
27108 s16 phy_b10
, phy_b11
, phy_b12
;
27116 if (pi
->nphy_papd_skip
== 1)
27120 (0 == (R_REG(&pi
->regs
->maccontrol
) & MCTL_EN_MAC
));
27122 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
27125 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
27127 pi
->nphy_force_papd_cal
= false;
27129 for (phy_b5
= 0; phy_b5
< pi
->pubpi
.phy_corenum
; phy_b5
++)
27130 pi
->nphy_papd_tx_gain_at_last_cal
[phy_b5
] =
27131 wlc_phy_txpwr_idx_cur_get_nphy(pi
, phy_b5
);
27133 pi
->nphy_papd_last_cal
= pi
->sh
->now
;
27134 pi
->nphy_papd_recal_counter
++;
27136 if (NORADIO_ENAB(pi
->pubpi
))
27139 phy_b4
= pi
->nphy_txpwrctrl
;
27140 wlc_phy_txpwrctrl_enable_nphy(pi
, PHY_TPC_HW_OFF
);
27142 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_SCALARTBL0
, 64, 0, 32,
27143 nphy_papd_scaltbl
);
27144 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_SCALARTBL1
, 64, 0, 32,
27145 nphy_papd_scaltbl
);
27147 phy_b9
= read_phy_reg(pi
, 0x01);
27148 mod_phy_reg(pi
, 0x01, (0x1 << 15), 0);
27150 for (phy_b5
= 0; phy_b5
< pi
->pubpi
.phy_corenum
; phy_b5
++) {
27152 for (i
= 0; i
< 64; i
++) {
27153 wlc_phy_table_write_nphy(pi
,
27156 NPHY_TBL_ID_EPSILONTBL0
:
27157 NPHY_TBL_ID_EPSILONTBL1
), 1,
27162 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi
);
27164 phy_b2
.mm
= wlc_phy_ipa_get_bbmult_nphy(pi
);
27165 for (phy_b5
= 0; phy_b5
< pi
->pubpi
.phy_corenum
; phy_b5
++) {
27166 wlc_phy_papd_cal_setup_nphy(pi
, &phy_b2
, phy_b5
);
27168 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
27169 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
27171 if ((pi
->pubpi
.radiorev
== 3)
27172 || (pi
->pubpi
.radiorev
== 4)
27173 || (pi
->pubpi
.radiorev
== 6)) {
27175 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
27178 } else if (pi
->pubpi
.radiorev
== 5) {
27180 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
27182 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
27183 wlc_phy_a3_nphy(pi
,
27185 nphy_papd_cal_gain_index
27188 } else if ((pi
->pubpi
.radiorev
== 7)
27189 || (pi
->pubpi
.radiorev
== 8)) {
27191 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
27193 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
27194 wlc_phy_a3_nphy(pi
,
27196 nphy_papd_cal_gain_index
27201 phy_b1
[phy_b5
].gains
.pad
[phy_b5
] =
27202 pi
->nphy_papd_cal_gain_index
[phy_b5
];
27205 pi
->nphy_papd_cal_gain_index
[phy_b5
] = 0;
27206 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
27207 wlc_phy_a3_nphy(pi
,
27209 nphy_papd_cal_gain_index
27211 phy_b1
[phy_b5
].gains
.pga
[phy_b5
] =
27212 pi
->nphy_papd_cal_gain_index
[phy_b5
];
27215 phy_b1
[phy_b5
].useindex
= true;
27216 phy_b1
[phy_b5
].index
= 16;
27217 phy_b1
[phy_b5
].index
=
27218 wlc_phy_a3_nphy(pi
, phy_b1
[phy_b5
].index
, phy_b5
);
27220 pi
->nphy_papd_cal_gain_index
[phy_b5
] =
27221 15 - ((phy_b1
[phy_b5
].index
) >> 3);
27224 switch (pi
->nphy_papd_cal_type
) {
27226 wlc_phy_a2_nphy(pi
, &phy_b1
[phy_b5
], CAL_FULL
, phy_b5
);
27229 wlc_phy_a2_nphy(pi
, &phy_b1
[phy_b5
], CAL_SOFT
, phy_b5
);
27233 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
27234 wlc_phy_papd_cal_cleanup_nphy(pi
, &phy_b2
);
27238 if (NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
27239 wlc_phy_papd_cal_cleanup_nphy(pi
, &phy_b2
);
27242 for (phy_b5
= 0; phy_b5
< pi
->pubpi
.phy_corenum
; phy_b5
++) {
27243 int eps_offset
= 0;
27245 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
27246 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
27247 if (pi
->pubpi
.radiorev
== 3) {
27249 } else if (pi
->pubpi
.radiorev
== 5) {
27258 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
27259 phy_b8
= phy_b1
[phy_b5
].gains
.pad
[phy_b5
];
27261 if ((pi
->pubpi
.radiorev
== 3) ||
27262 (pi
->pubpi
.radiorev
== 4) ||
27263 (pi
->pubpi
.radiorev
== 6)) {
27266 (nphy_papd_padgain_dlt_2g_2057rev3n4
27270 } else if (pi
->pubpi
.radiorev
== 5) {
27272 -(nphy_papd_padgain_dlt_2g_2057rev5
27275 } else if ((pi
->pubpi
.radiorev
== 7) ||
27276 (pi
->pubpi
.radiorev
== 8)) {
27278 -(nphy_papd_padgain_dlt_2g_2057rev7
27283 phy_b7
= phy_b1
[phy_b5
].gains
.pga
[phy_b5
];
27284 if ((pi
->pubpi
.radiorev
== 3) ||
27285 (pi
->pubpi
.radiorev
== 4) ||
27286 (pi
->pubpi
.radiorev
== 6)) {
27288 -(nphy_papd_pgagain_dlt_5g_2057
27291 } else if ((pi
->pubpi
.radiorev
== 7)
27292 || (pi
->pubpi
.radiorev
== 8)) {
27294 -(nphy_papd_pgagain_dlt_5g_2057rev7
27302 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
27304 -60 + 27 + eps_offset
+ phy_b12
+ phy_b10
;
27307 -60 + 27 + eps_offset
+ phy_b11
+ phy_b10
;
27310 mod_phy_reg(pi
, (phy_b5
== PHY_CORE_0
) ? 0x298 :
27311 0x29c, (0x1ff << 7), (phy_b6
) << 7);
27313 pi
->nphy_papd_epsilon_offset
[phy_b5
] = phy_b6
;
27315 if (NREV_LT(pi
->pubpi
.phy_rev
, 5)) {
27321 phy_b7
= 15 - ((phy_b1
[phy_b5
].index
) >> 3);
27323 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
27325 -(nphy_papd_pga_gain_delta_ipa_2g
[phy_b7
] +
27330 -(nphy_papd_pga_gain_delta_ipa_5g
[phy_b7
] +
27335 phy_b6
= -60 + 27 + eps_offset
+ phy_b11
+ phy_b10
;
27337 mod_phy_reg(pi
, (phy_b5
== PHY_CORE_0
) ? 0x298 :
27338 0x29c, (0x1ff << 7), (phy_b6
) << 7);
27340 pi
->nphy_papd_epsilon_offset
[phy_b5
] = phy_b6
;
27344 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x297 :
27345 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON
) << 0);
27347 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x297 :
27348 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON
) << 0);
27350 if (NREV_GE(pi
->pubpi
.phy_rev
, 6)) {
27351 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x2a3 :
27352 0x2a4, (0x1 << 13), (0) << 13);
27354 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x2a3 :
27355 0x2a4, (0x1 << 13), (0) << 13);
27358 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x2a3 :
27359 0x2a4, (0x1 << 11), (0) << 11);
27361 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x2a3 :
27362 0x2a4, (0x1 << 11), (0) << 11);
27365 pi
->nphy_papdcomp
= NPHY_PAPD_COMP_ON
;
27367 write_phy_reg(pi
, 0x01, phy_b9
);
27369 wlc_phy_ipa_set_tx_digi_filts_nphy(pi
);
27371 wlc_phy_txpwrctrl_enable_nphy(pi
, phy_b4
);
27372 if (phy_b4
== PHY_TPC_HW_OFF
) {
27373 wlc_phy_txpwr_index_nphy(pi
, (1 << 0),
27374 (s8
) (pi
->nphy_txpwrindex
[0].
27375 index_internal
), false);
27376 wlc_phy_txpwr_index_nphy(pi
, (1 << 1),
27377 (s8
) (pi
->nphy_txpwrindex
[1].
27378 index_internal
), false);
27381 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
27384 wlapi_enable_mac(pi
->sh
->physhim
);
27388 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy
*pi
)
27392 u16 rad_gain
, dac_gain
, bbmult
, m1m2
;
27393 u8 txpi
[2], chan_freq_range
;
27396 if (pi
->phyhang_avoid
)
27397 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
27399 if (pi
->sh
->sromrev
< 4) {
27400 txpi
[0] = txpi
[1] = 72;
27403 chan_freq_range
= wlc_phy_get_chan_freq_range_nphy(pi
, 0);
27404 switch (chan_freq_range
) {
27405 case WL_CHAN_FREQ_RANGE_2G
:
27406 txpi
[0] = pi
->nphy_txpid2g
[0];
27407 txpi
[1] = pi
->nphy_txpid2g
[1];
27409 case WL_CHAN_FREQ_RANGE_5GL
:
27410 txpi
[0] = pi
->nphy_txpid5gl
[0];
27411 txpi
[1] = pi
->nphy_txpid5gl
[1];
27413 case WL_CHAN_FREQ_RANGE_5GM
:
27414 txpi
[0] = pi
->nphy_txpid5g
[0];
27415 txpi
[1] = pi
->nphy_txpid5g
[1];
27417 case WL_CHAN_FREQ_RANGE_5GH
:
27418 txpi
[0] = pi
->nphy_txpid5gh
[0];
27419 txpi
[1] = pi
->nphy_txpid5gh
[1];
27422 txpi
[0] = txpi
[1] = 91;
27427 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
27428 txpi
[0] = txpi
[1] = 30;
27429 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
27430 txpi
[0] = txpi
[1] = 40;
27433 if (NREV_LT(pi
->pubpi
.phy_rev
, 7)) {
27435 if ((txpi
[0] < 40) || (txpi
[0] > 100) ||
27436 (txpi
[1] < 40) || (txpi
[1] > 100))
27437 txpi
[0] = txpi
[1] = 91;
27440 pi
->nphy_txpwrindex
[PHY_CORE_0
].index_internal
= txpi
[0];
27441 pi
->nphy_txpwrindex
[PHY_CORE_1
].index_internal
= txpi
[1];
27442 pi
->nphy_txpwrindex
[PHY_CORE_0
].index_internal_save
= txpi
[0];
27443 pi
->nphy_txpwrindex
[PHY_CORE_1
].index_internal_save
= txpi
[1];
27445 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
27446 uint phyrev
= pi
->pubpi
.phy_rev
;
27448 if (NREV_GE(phyrev
, 3)) {
27451 wlc_phy_get_ipa_gaintbl_nphy(pi
);
27452 txgain
= tx_gaintbl
[txpi
[core
]];
27454 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
27455 if (NREV_IS(phyrev
, 3)) {
27457 nphy_tpc_5GHz_txgain_rev3
27459 } else if (NREV_IS(phyrev
, 4)) {
27461 (pi
->srom_fem5g
.extpagain
==
27463 nphy_tpc_5GHz_txgain_HiPwrEPA
27465 nphy_tpc_5GHz_txgain_rev4
27469 nphy_tpc_5GHz_txgain_rev5
27473 if (NREV_GE(phyrev
, 5) &&
27474 (pi
->srom_fem2g
.extpagain
== 3)) {
27476 nphy_tpc_txgain_HiPwrEPA
27480 nphy_tpc_txgain_rev3
[txpi
27486 txgain
= nphy_tpc_txgain
[txpi
[core
]];
27489 if (NREV_GE(phyrev
, 3))
27490 rad_gain
= (txgain
>> 16) & ((1 << (32 - 16 + 1)) - 1);
27492 rad_gain
= (txgain
>> 16) & ((1 << (28 - 16 + 1)) - 1);
27494 if (NREV_GE(phyrev
, 7))
27495 dac_gain
= (txgain
>> 8) & ((1 << (10 - 8 + 1)) - 1);
27497 dac_gain
= (txgain
>> 8) & ((1 << (13 - 8 + 1)) - 1);
27499 bbmult
= (txgain
>> 0) & ((1 << (7 - 0 + 1)) - 1);
27501 if (NREV_GE(phyrev
, 3)) {
27502 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0x8f :
27503 0xa5), (0x1 << 8), (0x1 << 8));
27505 mod_phy_reg(pi
, 0xa5, (0x1 << 14), (0x1 << 14));
27507 write_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0xaa : 0xab, dac_gain
);
27509 wlc_phy_table_write_nphy(pi
, 7, 1, (0x110 + core
), 16,
27512 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &m1m2
);
27513 m1m2
&= ((core
== PHY_CORE_0
) ? 0x00ff : 0xff00);
27514 m1m2
|= ((core
== PHY_CORE_0
) ? (bbmult
<< 8) : (bbmult
<< 0));
27515 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &m1m2
);
27518 wlc_phy_table_read_nphy(pi
,
27521 NPHY_TBL_ID_CORE1TXPWRCTL
:
27522 NPHY_TBL_ID_CORE2TXPWRCTL
), 1,
27523 576 + txpi
[core
], 32,
27526 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
27527 0x29b, (0x1ff << 4),
27528 ((s16
) rfpwr_offset
) << 4);
27530 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
27531 0x29b, (0x1 << 2), (1) << 2);
27536 and_phy_reg(pi
, 0xbf, (u16
) (~(0x1f << 0)));
27538 if (pi
->phyhang_avoid
)
27539 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
27543 wlc_phy_txpwr_nphy_srom_convert(u8
*srom_max
, u16
*pwr_offset
,
27544 u8 tmp_max_pwr
, u8 rate_start
,
27548 u8 word_num
, nibble_num
;
27551 for (rate
= rate_start
; rate
<= rate_end
; rate
++) {
27552 word_num
= (rate
- rate_start
) >> 2;
27553 nibble_num
= (rate
- rate_start
) & 0x3;
27554 tmp_nibble
= (pwr_offset
[word_num
] >> 4 * nibble_num
) & 0xf;
27556 srom_max
[rate
] = tmp_max_pwr
- 2 * tmp_nibble
;
27561 wlc_phy_txpwr_nphy_po_apply(u8
*srom_max
, u8 pwr_offset
,
27562 u8 rate_start
, u8 rate_end
)
27566 for (rate
= rate_start
; rate
<= rate_end
; rate
++) {
27567 srom_max
[rate
] -= 2 * pwr_offset
;
27572 wlc_phy_ofdm_to_mcs_powers_nphy(u8
*power
, u8 rate_mcs_start
,
27573 u8 rate_mcs_end
, u8 rate_ofdm_start
)
27577 rate2
= rate_ofdm_start
;
27578 for (rate1
= rate_mcs_start
; rate1
<= rate_mcs_end
- 1; rate1
++) {
27579 power
[rate1
] = power
[rate2
];
27580 rate2
+= (rate1
== rate_mcs_start
) ? 2 : 1;
27582 power
[rate_mcs_end
] = power
[rate_mcs_end
- 1];
27586 wlc_phy_mcs_to_ofdm_powers_nphy(u8
*power
, u8 rate_ofdm_start
,
27587 u8 rate_ofdm_end
, u8 rate_mcs_start
)
27591 for (rate1
= rate_ofdm_start
, rate2
= rate_mcs_start
;
27592 rate1
<= rate_ofdm_end
; rate1
++, rate2
++) {
27593 power
[rate1
] = power
[rate2
];
27594 if (rate1
== rate_ofdm_start
)
27595 power
[++rate1
] = power
[rate2
];
27599 void wlc_phy_txpwr_apply_nphy(struct brcms_phy
*pi
)
27601 uint rate1
, rate2
, band_num
;
27602 u8 tmp_bw40po
= 0, tmp_cddpo
= 0, tmp_stbcpo
= 0;
27603 u8 tmp_max_pwr
= 0;
27604 u16 pwr_offsets1
[2], *pwr_offsets2
= NULL
;
27605 u8
*tx_srom_max_rate
= NULL
;
27607 for (band_num
= 0; band_num
< (CH_2G_GROUP
+ CH_5G_GROUP
); band_num
++) {
27608 switch (band_num
) {
27611 tmp_max_pwr
= min(pi
->nphy_pwrctrl_info
[0].max_pwr_2g
,
27612 pi
->nphy_pwrctrl_info
[1].max_pwr_2g
);
27614 pwr_offsets1
[0] = pi
->cck2gpo
;
27615 wlc_phy_txpwr_nphy_srom_convert(pi
->tx_srom_max_rate_2g
,
27621 pwr_offsets1
[0] = (u16
) (pi
->ofdm2gpo
& 0xffff);
27623 (u16
) (pi
->ofdm2gpo
>> 16) & 0xffff;
27625 pwr_offsets2
= pi
->mcs2gpo
;
27627 tmp_cddpo
= pi
->cdd2gpo
;
27628 tmp_stbcpo
= pi
->stbc2gpo
;
27629 tmp_bw40po
= pi
->bw402gpo
;
27631 tx_srom_max_rate
= pi
->tx_srom_max_rate_2g
;
27635 tmp_max_pwr
= min(pi
->nphy_pwrctrl_info
[0].max_pwr_5gm
,
27636 pi
->nphy_pwrctrl_info
[1].max_pwr_5gm
);
27638 pwr_offsets1
[0] = (u16
) (pi
->ofdm5gpo
& 0xffff);
27640 (u16
) (pi
->ofdm5gpo
>> 16) & 0xffff;
27642 pwr_offsets2
= pi
->mcs5gpo
;
27644 tmp_cddpo
= pi
->cdd5gpo
;
27645 tmp_stbcpo
= pi
->stbc5gpo
;
27646 tmp_bw40po
= pi
->bw405gpo
;
27648 tx_srom_max_rate
= pi
->tx_srom_max_rate_5g_mid
;
27652 tmp_max_pwr
= min(pi
->nphy_pwrctrl_info
[0].max_pwr_5gl
,
27653 pi
->nphy_pwrctrl_info
[1].max_pwr_5gl
);
27655 pwr_offsets1
[0] = (u16
) (pi
->ofdm5glpo
& 0xffff);
27657 (u16
) (pi
->ofdm5glpo
>> 16) & 0xffff;
27659 pwr_offsets2
= pi
->mcs5glpo
;
27661 tmp_cddpo
= pi
->cdd5glpo
;
27662 tmp_stbcpo
= pi
->stbc5glpo
;
27663 tmp_bw40po
= pi
->bw405glpo
;
27665 tx_srom_max_rate
= pi
->tx_srom_max_rate_5g_low
;
27669 tmp_max_pwr
= min(pi
->nphy_pwrctrl_info
[0].max_pwr_5gh
,
27670 pi
->nphy_pwrctrl_info
[1].max_pwr_5gh
);
27672 pwr_offsets1
[0] = (u16
) (pi
->ofdm5ghpo
& 0xffff);
27674 (u16
) (pi
->ofdm5ghpo
>> 16) & 0xffff;
27676 pwr_offsets2
= pi
->mcs5ghpo
;
27678 tmp_cddpo
= pi
->cdd5ghpo
;
27679 tmp_stbcpo
= pi
->stbc5ghpo
;
27680 tmp_bw40po
= pi
->bw405ghpo
;
27682 tx_srom_max_rate
= pi
->tx_srom_max_rate_5g_hi
;
27686 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
, pwr_offsets1
,
27687 tmp_max_pwr
, TXP_FIRST_OFDM
,
27690 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate
,
27691 TXP_FIRST_MCS_20_SISO
,
27692 TXP_LAST_MCS_20_SISO
,
27695 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
, pwr_offsets2
,
27697 TXP_FIRST_MCS_20_CDD
,
27698 TXP_LAST_MCS_20_CDD
);
27700 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
27702 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate
, tmp_cddpo
,
27703 TXP_FIRST_MCS_20_CDD
,
27704 TXP_LAST_MCS_20_CDD
);
27707 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate
,
27708 TXP_FIRST_OFDM_20_CDD
,
27709 TXP_LAST_OFDM_20_CDD
,
27710 TXP_FIRST_MCS_20_CDD
);
27712 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
, pwr_offsets2
,
27714 TXP_FIRST_MCS_20_STBC
,
27715 TXP_LAST_MCS_20_STBC
);
27717 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
27719 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate
,
27721 TXP_FIRST_MCS_20_STBC
,
27722 TXP_LAST_MCS_20_STBC
);
27725 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
,
27726 &pwr_offsets2
[2], tmp_max_pwr
,
27727 TXP_FIRST_MCS_20_SDM
,
27728 TXP_LAST_MCS_20_SDM
);
27730 if (NPHY_IS_SROM_REINTERPRET
) {
27732 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
,
27735 TXP_FIRST_MCS_40_SISO
,
27736 TXP_LAST_MCS_40_SISO
);
27738 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate
,
27739 TXP_FIRST_OFDM_40_SISO
,
27740 TXP_LAST_OFDM_40_SISO
,
27741 TXP_FIRST_MCS_40_SISO
);
27743 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
,
27746 TXP_FIRST_MCS_40_CDD
,
27747 TXP_LAST_MCS_40_CDD
);
27749 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate
, tmp_cddpo
,
27750 TXP_FIRST_MCS_40_CDD
,
27751 TXP_LAST_MCS_40_CDD
);
27753 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate
,
27754 TXP_FIRST_OFDM_40_CDD
,
27755 TXP_LAST_OFDM_40_CDD
,
27756 TXP_FIRST_MCS_40_CDD
);
27758 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
,
27761 TXP_FIRST_MCS_40_STBC
,
27762 TXP_LAST_MCS_40_STBC
);
27764 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate
,
27766 TXP_FIRST_MCS_40_STBC
,
27767 TXP_LAST_MCS_40_STBC
);
27769 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate
,
27772 TXP_FIRST_MCS_40_SDM
,
27773 TXP_LAST_MCS_40_SDM
);
27776 for (rate1
= TXP_FIRST_OFDM_40_SISO
, rate2
=
27777 TXP_FIRST_OFDM
; rate1
<= TXP_LAST_MCS_40_SDM
;
27779 tx_srom_max_rate
[rate1
] =
27780 tx_srom_max_rate
[rate2
];
27783 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
27784 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate
,
27786 TXP_FIRST_OFDM_40_SISO
,
27787 TXP_LAST_MCS_40_SDM
);
27790 tx_srom_max_rate
[TXP_MCS_32
] =
27791 tx_srom_max_rate
[TXP_FIRST_MCS_40_CDD
];
27797 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy
*pi
)
27799 u16 bw40po
, cddpo
, stbcpo
, bwduppo
;
27802 if (pi
->sh
->sromrev
>= 9) {
27807 bw40po
= (u16
) PHY_GETINTVAR(pi
, "bw40po");
27808 pi
->bw402gpo
= bw40po
& 0xf;
27809 pi
->bw405gpo
= (bw40po
& 0xf0) >> 4;
27810 pi
->bw405glpo
= (bw40po
& 0xf00) >> 8;
27811 pi
->bw405ghpo
= (bw40po
& 0xf000) >> 12;
27813 cddpo
= (u16
) PHY_GETINTVAR(pi
, "cddpo");
27814 pi
->cdd2gpo
= cddpo
& 0xf;
27815 pi
->cdd5gpo
= (cddpo
& 0xf0) >> 4;
27816 pi
->cdd5glpo
= (cddpo
& 0xf00) >> 8;
27817 pi
->cdd5ghpo
= (cddpo
& 0xf000) >> 12;
27819 stbcpo
= (u16
) PHY_GETINTVAR(pi
, "stbcpo");
27820 pi
->stbc2gpo
= stbcpo
& 0xf;
27821 pi
->stbc5gpo
= (stbcpo
& 0xf0) >> 4;
27822 pi
->stbc5glpo
= (stbcpo
& 0xf00) >> 8;
27823 pi
->stbc5ghpo
= (stbcpo
& 0xf000) >> 12;
27825 bwduppo
= (u16
) PHY_GETINTVAR(pi
, "bwduppo");
27826 pi
->bwdup2gpo
= bwduppo
& 0xf;
27827 pi
->bwdup5gpo
= (bwduppo
& 0xf0) >> 4;
27828 pi
->bwdup5glpo
= (bwduppo
& 0xf00) >> 8;
27829 pi
->bwdup5ghpo
= (bwduppo
& 0xf000) >> 12;
27831 for (band_num
= 0; band_num
< (CH_2G_GROUP
+ CH_5G_GROUP
); band_num
++) {
27832 switch (band_num
) {
27835 pi
->nphy_txpid2g
[PHY_CORE_0
] =
27836 (u8
) PHY_GETINTVAR(pi
, "txpid2ga0");
27837 pi
->nphy_txpid2g
[PHY_CORE_1
] =
27838 (u8
) PHY_GETINTVAR(pi
, "txpid2ga1");
27839 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].max_pwr_2g
=
27840 (s8
) PHY_GETINTVAR(pi
, "maxp2ga0");
27841 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].max_pwr_2g
=
27842 (s8
) PHY_GETINTVAR(pi
, "maxp2ga1");
27843 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_2g_a1
=
27844 (s16
) PHY_GETINTVAR(pi
, "pa2gw0a0");
27845 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_2g_a1
=
27846 (s16
) PHY_GETINTVAR(pi
, "pa2gw0a1");
27847 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_2g_b0
=
27848 (s16
) PHY_GETINTVAR(pi
, "pa2gw1a0");
27849 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_2g_b0
=
27850 (s16
) PHY_GETINTVAR(pi
, "pa2gw1a1");
27851 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_2g_b1
=
27852 (s16
) PHY_GETINTVAR(pi
, "pa2gw2a0");
27853 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_2g_b1
=
27854 (s16
) PHY_GETINTVAR(pi
, "pa2gw2a1");
27855 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_targ_2g
=
27856 (s8
) PHY_GETINTVAR(pi
, "itt2ga0");
27857 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_targ_2g
=
27858 (s8
) PHY_GETINTVAR(pi
, "itt2ga1");
27860 pi
->cck2gpo
= (u16
) PHY_GETINTVAR(pi
, "cck2gpo");
27862 pi
->ofdm2gpo
= (u32
) PHY_GETINTVAR(pi
, "ofdm2gpo");
27864 pi
->mcs2gpo
[0] = (u16
) PHY_GETINTVAR(pi
, "mcs2gpo0");
27865 pi
->mcs2gpo
[1] = (u16
) PHY_GETINTVAR(pi
, "mcs2gpo1");
27866 pi
->mcs2gpo
[2] = (u16
) PHY_GETINTVAR(pi
, "mcs2gpo2");
27867 pi
->mcs2gpo
[3] = (u16
) PHY_GETINTVAR(pi
, "mcs2gpo3");
27868 pi
->mcs2gpo
[4] = (u16
) PHY_GETINTVAR(pi
, "mcs2gpo4");
27869 pi
->mcs2gpo
[5] = (u16
) PHY_GETINTVAR(pi
, "mcs2gpo5");
27870 pi
->mcs2gpo
[6] = (u16
) PHY_GETINTVAR(pi
, "mcs2gpo6");
27871 pi
->mcs2gpo
[7] = (u16
) PHY_GETINTVAR(pi
, "mcs2gpo7");
27875 pi
->nphy_txpid5g
[PHY_CORE_0
] =
27876 (u8
) PHY_GETINTVAR(pi
, "txpid5ga0");
27877 pi
->nphy_txpid5g
[PHY_CORE_1
] =
27878 (u8
) PHY_GETINTVAR(pi
, "txpid5ga1");
27879 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].max_pwr_5gm
=
27880 (s8
) PHY_GETINTVAR(pi
, "maxp5ga0");
27881 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].max_pwr_5gm
=
27882 (s8
) PHY_GETINTVAR(pi
, "maxp5ga1");
27883 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_5gm_a1
=
27884 (s16
) PHY_GETINTVAR(pi
, "pa5gw0a0");
27885 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_5gm_a1
=
27886 (s16
) PHY_GETINTVAR(pi
, "pa5gw0a1");
27887 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_5gm_b0
=
27888 (s16
) PHY_GETINTVAR(pi
, "pa5gw1a0");
27889 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_5gm_b0
=
27890 (s16
) PHY_GETINTVAR(pi
, "pa5gw1a1");
27891 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].pwrdet_5gm_b1
=
27892 (s16
) PHY_GETINTVAR(pi
, "pa5gw2a0");
27893 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].pwrdet_5gm_b1
=
27894 (s16
) PHY_GETINTVAR(pi
, "pa5gw2a1");
27895 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_targ_5gm
=
27896 (s8
) PHY_GETINTVAR(pi
, "itt5ga0");
27897 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_targ_5gm
=
27898 (s8
) PHY_GETINTVAR(pi
, "itt5ga1");
27900 pi
->ofdm5gpo
= (u32
) PHY_GETINTVAR(pi
, "ofdm5gpo");
27902 pi
->mcs5gpo
[0] = (u16
) PHY_GETINTVAR(pi
, "mcs5gpo0");
27903 pi
->mcs5gpo
[1] = (u16
) PHY_GETINTVAR(pi
, "mcs5gpo1");
27904 pi
->mcs5gpo
[2] = (u16
) PHY_GETINTVAR(pi
, "mcs5gpo2");
27905 pi
->mcs5gpo
[3] = (u16
) PHY_GETINTVAR(pi
, "mcs5gpo3");
27906 pi
->mcs5gpo
[4] = (u16
) PHY_GETINTVAR(pi
, "mcs5gpo4");
27907 pi
->mcs5gpo
[5] = (u16
) PHY_GETINTVAR(pi
, "mcs5gpo5");
27908 pi
->mcs5gpo
[6] = (u16
) PHY_GETINTVAR(pi
, "mcs5gpo6");
27909 pi
->mcs5gpo
[7] = (u16
) PHY_GETINTVAR(pi
, "mcs5gpo7");
27913 pi
->nphy_txpid5gl
[0] =
27914 (u8
) PHY_GETINTVAR(pi
, "txpid5gla0");
27915 pi
->nphy_txpid5gl
[1] =
27916 (u8
) PHY_GETINTVAR(pi
, "txpid5gla1");
27917 pi
->nphy_pwrctrl_info
[0].max_pwr_5gl
=
27918 (s8
) PHY_GETINTVAR(pi
, "maxp5gla0");
27919 pi
->nphy_pwrctrl_info
[1].max_pwr_5gl
=
27920 (s8
) PHY_GETINTVAR(pi
, "maxp5gla1");
27921 pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_a1
=
27922 (s16
) PHY_GETINTVAR(pi
, "pa5glw0a0");
27923 pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_a1
=
27924 (s16
) PHY_GETINTVAR(pi
, "pa5glw0a1");
27925 pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_b0
=
27926 (s16
) PHY_GETINTVAR(pi
, "pa5glw1a0");
27927 pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_b0
=
27928 (s16
) PHY_GETINTVAR(pi
, "pa5glw1a1");
27929 pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_b1
=
27930 (s16
) PHY_GETINTVAR(pi
, "pa5glw2a0");
27931 pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_b1
=
27932 (s16
) PHY_GETINTVAR(pi
, "pa5glw2a1");
27933 pi
->nphy_pwrctrl_info
[0].idle_targ_5gl
= 0;
27934 pi
->nphy_pwrctrl_info
[1].idle_targ_5gl
= 0;
27936 pi
->ofdm5glpo
= (u32
) PHY_GETINTVAR(pi
, "ofdm5glpo");
27939 (u16
) PHY_GETINTVAR(pi
, "mcs5glpo0");
27941 (u16
) PHY_GETINTVAR(pi
, "mcs5glpo1");
27943 (u16
) PHY_GETINTVAR(pi
, "mcs5glpo2");
27945 (u16
) PHY_GETINTVAR(pi
, "mcs5glpo3");
27947 (u16
) PHY_GETINTVAR(pi
, "mcs5glpo4");
27949 (u16
) PHY_GETINTVAR(pi
, "mcs5glpo5");
27951 (u16
) PHY_GETINTVAR(pi
, "mcs5glpo6");
27953 (u16
) PHY_GETINTVAR(pi
, "mcs5glpo7");
27957 pi
->nphy_txpid5gh
[0] =
27958 (u8
) PHY_GETINTVAR(pi
, "txpid5gha0");
27959 pi
->nphy_txpid5gh
[1] =
27960 (u8
) PHY_GETINTVAR(pi
, "txpid5gha1");
27961 pi
->nphy_pwrctrl_info
[0].max_pwr_5gh
=
27962 (s8
) PHY_GETINTVAR(pi
, "maxp5gha0");
27963 pi
->nphy_pwrctrl_info
[1].max_pwr_5gh
=
27964 (s8
) PHY_GETINTVAR(pi
, "maxp5gha1");
27965 pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_a1
=
27966 (s16
) PHY_GETINTVAR(pi
, "pa5ghw0a0");
27967 pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_a1
=
27968 (s16
) PHY_GETINTVAR(pi
, "pa5ghw0a1");
27969 pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_b0
=
27970 (s16
) PHY_GETINTVAR(pi
, "pa5ghw1a0");
27971 pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_b0
=
27972 (s16
) PHY_GETINTVAR(pi
, "pa5ghw1a1");
27973 pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_b1
=
27974 (s16
) PHY_GETINTVAR(pi
, "pa5ghw2a0");
27975 pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_b1
=
27976 (s16
) PHY_GETINTVAR(pi
, "pa5ghw2a1");
27977 pi
->nphy_pwrctrl_info
[0].idle_targ_5gh
= 0;
27978 pi
->nphy_pwrctrl_info
[1].idle_targ_5gh
= 0;
27980 pi
->ofdm5ghpo
= (u32
) PHY_GETINTVAR(pi
, "ofdm5ghpo");
27983 (u16
) PHY_GETINTVAR(pi
, "mcs5ghpo0");
27985 (u16
) PHY_GETINTVAR(pi
, "mcs5ghpo1");
27987 (u16
) PHY_GETINTVAR(pi
, "mcs5ghpo2");
27989 (u16
) PHY_GETINTVAR(pi
, "mcs5ghpo3");
27991 (u16
) PHY_GETINTVAR(pi
, "mcs5ghpo4");
27993 (u16
) PHY_GETINTVAR(pi
, "mcs5ghpo5");
27995 (u16
) PHY_GETINTVAR(pi
, "mcs5ghpo6");
27997 (u16
) PHY_GETINTVAR(pi
, "mcs5ghpo7");
28002 wlc_phy_txpwr_apply_nphy(pi
);
28005 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy
*pi
)
28008 pi
->antswitch
= (u8
) PHY_GETINTVAR(pi
, "antswitch");
28009 pi
->aa2g
= (u8
) PHY_GETINTVAR(pi
, "aa2g");
28010 pi
->aa5g
= (u8
) PHY_GETINTVAR(pi
, "aa5g");
28012 pi
->srom_fem2g
.tssipos
= (u8
) PHY_GETINTVAR(pi
, "tssipos2g");
28013 pi
->srom_fem2g
.extpagain
= (u8
) PHY_GETINTVAR(pi
, "extpagain2g");
28014 pi
->srom_fem2g
.pdetrange
= (u8
) PHY_GETINTVAR(pi
, "pdetrange2g");
28015 pi
->srom_fem2g
.triso
= (u8
) PHY_GETINTVAR(pi
, "triso2g");
28016 pi
->srom_fem2g
.antswctrllut
= (u8
) PHY_GETINTVAR(pi
, "antswctl2g");
28018 pi
->srom_fem5g
.tssipos
= (u8
) PHY_GETINTVAR(pi
, "tssipos5g");
28019 pi
->srom_fem5g
.extpagain
= (u8
) PHY_GETINTVAR(pi
, "extpagain5g");
28020 pi
->srom_fem5g
.pdetrange
= (u8
) PHY_GETINTVAR(pi
, "pdetrange5g");
28021 pi
->srom_fem5g
.triso
= (u8
) PHY_GETINTVAR(pi
, "triso5g");
28022 if (PHY_GETVAR(pi
, "antswctl5g")) {
28024 pi
->srom_fem5g
.antswctrllut
=
28025 (u8
) PHY_GETINTVAR(pi
, "antswctl5g");
28028 pi
->srom_fem5g
.antswctrllut
=
28029 (u8
) PHY_GETINTVAR(pi
, "antswctl2g");
28032 wlc_phy_txpower_ipa_upd(pi
);
28034 pi
->phy_txcore_disable_temp
= (s16
) PHY_GETINTVAR(pi
, "tempthresh");
28035 if (pi
->phy_txcore_disable_temp
== 0) {
28036 pi
->phy_txcore_disable_temp
= PHY_CHAIN_TX_DISABLE_TEMP
;
28039 pi
->phy_tempsense_offset
= (s8
) PHY_GETINTVAR(pi
, "tempoffset");
28040 if (pi
->phy_tempsense_offset
!= 0) {
28041 if (pi
->phy_tempsense_offset
>
28042 (NPHY_SROM_TEMPSHIFT
+ NPHY_SROM_MAXTEMPOFFSET
)) {
28043 pi
->phy_tempsense_offset
= NPHY_SROM_MAXTEMPOFFSET
;
28044 } else if (pi
->phy_tempsense_offset
< (NPHY_SROM_TEMPSHIFT
+
28045 NPHY_SROM_MINTEMPOFFSET
)) {
28046 pi
->phy_tempsense_offset
= NPHY_SROM_MINTEMPOFFSET
;
28048 pi
->phy_tempsense_offset
-= NPHY_SROM_TEMPSHIFT
;
28052 pi
->phy_txcore_enable_temp
=
28053 pi
->phy_txcore_disable_temp
- PHY_HYSTERESIS_DELTATEMP
;
28055 pi
->phycal_tempdelta
= (u8
) PHY_GETINTVAR(pi
, "phycal_tempdelta");
28056 if (pi
->phycal_tempdelta
> NPHY_CAL_MAXTEMPDELTA
) {
28057 pi
->phycal_tempdelta
= 0;
28060 wlc_phy_txpwr_srom_read_ppr_nphy(pi
);
28065 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy
*pi
)
28067 u8 tx_pwr_ctrl_state
;
28068 wlc_phy_txpwr_limit_to_tbl_nphy(pi
);
28069 wlc_phy_txpwrctrl_pwr_setup_nphy(pi
);
28071 tx_pwr_ctrl_state
= pi
->nphy_txpwrctrl
;
28073 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12)) {
28074 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, MCTL_PHYLOCK
);
28075 (void)R_REG(&pi
->regs
->maccontrol
);
28079 wlc_phy_txpwrctrl_enable_nphy(pi
, tx_pwr_ctrl_state
);
28081 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12))
28082 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, 0);
28085 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy
*pi
)
28089 u32 iqcomp
, locomp
, curr_locomp
;
28090 s8 locomp_i
, locomp_q
;
28091 s8 curr_locomp_i
, curr_locomp_q
;
28092 u32 tbl_id
, tbl_len
, tbl_offset
;
28095 if (pi
->phyhang_avoid
)
28096 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
28098 wlc_phy_table_read_nphy(pi
, 15, 7, 80, 16, iqloCalbuf
);
28102 for (tbl_id
= NPHY_TBL_ID_CORE1TXPWRCTL
;
28103 tbl_id
<= NPHY_TBL_ID_CORE2TXPWRCTL
; tbl_id
++) {
28106 26) ? (((u32
) (iqloCalbuf
[0] & 0x3ff)) << 10) |
28107 (iqloCalbuf
[1] & 0x3ff)
28108 : (((u32
) (iqloCalbuf
[2] & 0x3ff)) << 10) |
28109 (iqloCalbuf
[3] & 0x3ff);
28111 for (idx
= 0; idx
< tbl_len
; idx
++) {
28112 regval
[idx
] = iqcomp
;
28114 wlc_phy_table_write_nphy(pi
, tbl_id
, tbl_len
, tbl_offset
, 32,
28119 for (tbl_id
= NPHY_TBL_ID_CORE1TXPWRCTL
;
28120 tbl_id
<= NPHY_TBL_ID_CORE2TXPWRCTL
; tbl_id
++) {
28123 (u32
) ((tbl_id
== 26) ? iqloCalbuf
[5] : iqloCalbuf
[6]);
28124 locomp_i
= (s8
) ((locomp
>> 8) & 0xff);
28125 locomp_q
= (s8
) ((locomp
) & 0xff);
28126 for (idx
= 0; idx
< tbl_len
; idx
++) {
28127 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28128 curr_locomp_i
= locomp_i
;
28129 curr_locomp_q
= locomp_q
;
28131 curr_locomp_i
= (s8
) ((locomp_i
*
28132 nphy_tpc_loscale
[idx
] +
28135 (s8
) ((locomp_q
* nphy_tpc_loscale
[idx
] +
28138 curr_locomp
= (u32
) ((curr_locomp_i
& 0xff) << 8);
28139 curr_locomp
|= (u32
) (curr_locomp_q
& 0xff);
28140 regval
[idx
] = curr_locomp
;
28142 wlc_phy_table_write_nphy(pi
, tbl_id
, tbl_len
, tbl_offset
, 32,
28146 if (NREV_LT(pi
->pubpi
.phy_rev
, 2)) {
28148 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_CURR_IDX1
, 0xFFFF);
28149 wlapi_bmac_write_shm(pi
->sh
->physhim
, M_CURR_IDX2
, 0xFFFF);
28152 if (pi
->phyhang_avoid
)
28153 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
28156 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy
*pi
)
28160 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
28161 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
28162 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
28163 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
28164 TX_SSI_MASTER
, 0x5);
28165 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
28168 if (pi
->pubpi
.radiorev
!= 5)
28169 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
28172 if (!NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
28174 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
28178 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
,
28179 core
, TSSIG
, 0x31);
28182 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
28183 TX_SSI_MASTER
, 0x9);
28184 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
28186 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
,
28189 if (pi
->pubpi
.radiorev
!= 5) {
28190 if (!NREV_IS(pi
->pubpi
.phy_rev
, 7)) {
28192 WRITE_RADIO_REG3(pi
, RADIO_2057
,
28197 WRITE_RADIO_REG3(pi
, RADIO_2057
,
28203 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, IQCAL_VCM_HG
,
28205 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, IQCAL_IDAC
,
28207 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSI_VCM
,
28209 WRITE_RADIO_REG3(pi
, RADIO_2057
, TX
, core
, TSSI_MISC1
,
28213 WRITE_RADIO_SYN(pi
, RADIO_2056
, RESERVED_ADDR31
,
28214 (CHSPEC_IS2G(pi
->radio_chanspec
)) ? 0x128 :
28216 WRITE_RADIO_SYN(pi
, RADIO_2056
, RESERVED_ADDR30
, 0x0);
28217 WRITE_RADIO_SYN(pi
, RADIO_2056
, GPIO_MASTER1
, 0x29);
28219 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
28220 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, IQCAL_VCM_HG
,
28222 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, IQCAL_IDAC
,
28224 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, TSSI_VCM
,
28226 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, TX_AMP_DET
,
28228 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, TSSI_MISC1
,
28230 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, TSSI_MISC2
,
28232 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
, TSSI_MISC3
,
28235 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
28236 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
28237 TX_SSI_MASTER
, 0x5);
28239 if (pi
->pubpi
.radiorev
!= 5)
28240 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
,
28242 if (NREV_GE(pi
->pubpi
.phy_rev
, 5)) {
28244 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
,
28245 core
, TSSIG
, 0x31);
28247 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
,
28248 core
, TSSIG
, 0x11);
28250 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
28253 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
28254 TX_SSI_MASTER
, 0x9);
28255 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
28257 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
28259 WRITE_RADIO_REG2(pi
, RADIO_2056
, TX
, core
,
28266 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy
*pi
)
28271 if (SCAN_RM_IN_PROGRESS(pi
) || PLT_INPROG_PHY(pi
) || PHY_MUTED(pi
))
28276 wlc_phy_ipa_internal_tssi_setup_nphy(pi
);
28279 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
28280 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 12),
28282 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
28283 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28284 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 13), 0, 3, 0);
28287 wlc_phy_stopplayback_nphy(pi
);
28289 wlc_phy_tx_tone_nphy(pi
, 4000, 0, 0, 0, false);
28293 wlc_phy_poll_rssi_nphy(pi
, (u8
) NPHY_RSSI_SEL_TSSI_2G
, rssi_buf
,
28295 wlc_phy_stopplayback_nphy(pi
);
28296 wlc_phy_rssisel_nphy(pi
, RADIO_MIMO_CORESEL_OFF
, 0);
28298 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
28299 wlc_phy_rfctrl_override_nphy_rev7(pi
, (0x1 << 12),
28301 NPHY_REV7_RFCTRLOVERRIDE_ID0
);
28302 } else if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28303 wlc_phy_rfctrl_override_nphy(pi
, (0x1 << 13), 0, 3, 1);
28306 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28308 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_tssi_2g
=
28309 (u8
) ((int_val
>> 24) & 0xff);
28310 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_tssi_5g
=
28311 (u8
) ((int_val
>> 24) & 0xff);
28313 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_tssi_2g
=
28314 (u8
) ((int_val
>> 8) & 0xff);
28315 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_tssi_5g
=
28316 (u8
) ((int_val
>> 8) & 0xff);
28318 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_tssi_2g
=
28319 (u8
) ((int_val
>> 24) & 0xff);
28321 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_tssi_2g
=
28322 (u8
) ((int_val
>> 8) & 0xff);
28324 pi
->nphy_pwrctrl_info
[PHY_CORE_0
].idle_tssi_5g
=
28325 (u8
) ((int_val
>> 16) & 0xff);
28326 pi
->nphy_pwrctrl_info
[PHY_CORE_1
].idle_tssi_5g
=
28327 (u8
) ((int_val
) & 0xff);
28332 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy
*pi
)
28335 s16 a1
[2], b0
[2], b1
[2];
28336 s8 target_pwr_qtrdbm
[2];
28337 s32 num
, den
, pwr_est
;
28338 u8 chan_freq_range
;
28340 u32 tbl_id
, tbl_len
, tbl_offset
;
28344 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12)) {
28345 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, MCTL_PHYLOCK
);
28346 (void)R_REG(&pi
->regs
->maccontrol
);
28350 if (pi
->phyhang_avoid
)
28351 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
28353 or_phy_reg(pi
, 0x122, (0x1 << 0));
28355 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28356 and_phy_reg(pi
, 0x1e7, (u16
) (~(0x1 << 15)));
28359 or_phy_reg(pi
, 0x1e7, (0x1 << 15));
28362 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12))
28363 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, 0);
28365 if (pi
->sh
->sromrev
< 4) {
28366 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_2g
;
28367 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_2g
;
28368 target_pwr_qtrdbm
[0] = 13 * 4;
28369 target_pwr_qtrdbm
[1] = 13 * 4;
28378 chan_freq_range
= wlc_phy_get_chan_freq_range_nphy(pi
, 0);
28379 switch (chan_freq_range
) {
28380 case WL_CHAN_FREQ_RANGE_2G
:
28381 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_2g
;
28382 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_2g
;
28383 target_pwr_qtrdbm
[0] =
28384 pi
->nphy_pwrctrl_info
[0].max_pwr_2g
;
28385 target_pwr_qtrdbm
[1] =
28386 pi
->nphy_pwrctrl_info
[1].max_pwr_2g
;
28387 a1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_2g_a1
;
28388 a1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_2g_a1
;
28389 b0
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_2g_b0
;
28390 b0
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_2g_b0
;
28391 b1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_2g_b1
;
28392 b1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_2g_b1
;
28394 case WL_CHAN_FREQ_RANGE_5GL
:
28395 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_5g
;
28396 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_5g
;
28397 target_pwr_qtrdbm
[0] =
28398 pi
->nphy_pwrctrl_info
[0].max_pwr_5gl
;
28399 target_pwr_qtrdbm
[1] =
28400 pi
->nphy_pwrctrl_info
[1].max_pwr_5gl
;
28401 a1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_a1
;
28402 a1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_a1
;
28403 b0
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_b0
;
28404 b0
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_b0
;
28405 b1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gl_b1
;
28406 b1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gl_b1
;
28408 case WL_CHAN_FREQ_RANGE_5GM
:
28409 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_5g
;
28410 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_5g
;
28411 target_pwr_qtrdbm
[0] =
28412 pi
->nphy_pwrctrl_info
[0].max_pwr_5gm
;
28413 target_pwr_qtrdbm
[1] =
28414 pi
->nphy_pwrctrl_info
[1].max_pwr_5gm
;
28415 a1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gm_a1
;
28416 a1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gm_a1
;
28417 b0
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gm_b0
;
28418 b0
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gm_b0
;
28419 b1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gm_b1
;
28420 b1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gm_b1
;
28422 case WL_CHAN_FREQ_RANGE_5GH
:
28423 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_5g
;
28424 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_5g
;
28425 target_pwr_qtrdbm
[0] =
28426 pi
->nphy_pwrctrl_info
[0].max_pwr_5gh
;
28427 target_pwr_qtrdbm
[1] =
28428 pi
->nphy_pwrctrl_info
[1].max_pwr_5gh
;
28429 a1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_a1
;
28430 a1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_a1
;
28431 b0
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_b0
;
28432 b0
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_b0
;
28433 b1
[0] = pi
->nphy_pwrctrl_info
[0].pwrdet_5gh_b1
;
28434 b1
[1] = pi
->nphy_pwrctrl_info
[1].pwrdet_5gh_b1
;
28437 idle_tssi
[0] = pi
->nphy_pwrctrl_info
[0].idle_tssi_2g
;
28438 idle_tssi
[1] = pi
->nphy_pwrctrl_info
[1].idle_tssi_2g
;
28439 target_pwr_qtrdbm
[0] = 13 * 4;
28440 target_pwr_qtrdbm
[1] = 13 * 4;
28451 target_pwr_qtrdbm
[0] = (s8
) pi
->tx_power_max
;
28452 target_pwr_qtrdbm
[1] = (s8
) pi
->tx_power_max
;
28454 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28455 if (pi
->srom_fem2g
.tssipos
) {
28456 or_phy_reg(pi
, 0x1e9, (0x1 << 14));
28459 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
28460 for (core
= 0; core
<= 1; core
++) {
28463 if (CHSPEC_IS2G(pi
->radio_chanspec
)) {
28464 WRITE_RADIO_REG3(pi
, RADIO_2057
,
28469 WRITE_RADIO_REG3(pi
, RADIO_2057
,
28480 write_radio_reg(pi
, RADIO_2056_TX_TX_SSI_MUX
|
28484 radio_chanspec
)) ? 0xc : 0xe);
28485 write_radio_reg(pi
,
28486 RADIO_2056_TX_TX_SSI_MUX
|
28490 radio_chanspec
)) ? 0xc : 0xe);
28493 write_radio_reg(pi
, RADIO_2056_TX_TX_SSI_MUX
|
28494 RADIO_2056_TX0
, 0x11);
28495 write_radio_reg(pi
, RADIO_2056_TX_TX_SSI_MUX
|
28496 RADIO_2056_TX1
, 0x11);
28501 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12)) {
28502 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, MCTL_PHYLOCK
);
28503 (void)R_REG(&pi
->regs
->maccontrol
);
28507 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
28508 mod_phy_reg(pi
, 0x1e7, (0x7f << 0),
28509 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7
<< 0));
28511 mod_phy_reg(pi
, 0x1e7, (0x7f << 0),
28512 (NPHY_TxPwrCtrlCmd_pwrIndex_init
<< 0));
28515 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
28516 mod_phy_reg(pi
, 0x222, (0xff << 0),
28517 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7
<< 0));
28518 } else if (NREV_GT(pi
->pubpi
.phy_rev
, 1)) {
28519 mod_phy_reg(pi
, 0x222, (0xff << 0),
28520 (NPHY_TxPwrCtrlCmd_pwrIndex_init
<< 0));
28523 if (D11REV_IS(pi
->sh
->corerev
, 11) || D11REV_IS(pi
->sh
->corerev
, 12))
28524 wlapi_bmac_mctrl(pi
->sh
->physhim
, MCTL_PHYLOCK
, 0);
28526 write_phy_reg(pi
, 0x1e8, (0x3 << 8) | (240 << 0));
28528 write_phy_reg(pi
, 0x1e9,
28529 (1 << 15) | (idle_tssi
[0] << 0) | (idle_tssi
[1] << 8));
28531 write_phy_reg(pi
, 0x1ea,
28532 (target_pwr_qtrdbm
[0] << 0) |
28533 (target_pwr_qtrdbm
[1] << 8));
28537 for (tbl_id
= NPHY_TBL_ID_CORE1TXPWRCTL
;
28538 tbl_id
<= NPHY_TBL_ID_CORE2TXPWRCTL
; tbl_id
++) {
28540 for (idx
= 0; idx
< tbl_len
; idx
++) {
28542 8 * (16 * b0
[tbl_id
- 26] + b1
[tbl_id
- 26] * idx
);
28543 den
= 32768 + a1
[tbl_id
- 26] * idx
;
28544 pwr_est
= max(((4 * num
+ den
/ 2) / den
), -8);
28545 if (NREV_LT(pi
->pubpi
.phy_rev
, 3)) {
28547 (uint
) (31 - idle_tssi
[tbl_id
- 26] + 1))
28550 target_pwr_qtrdbm
[tbl_id
- 26] +
28553 regval
[idx
] = (u32
) pwr_est
;
28555 wlc_phy_table_write_nphy(pi
, tbl_id
, tbl_len
, tbl_offset
, 32,
28559 wlc_phy_txpwr_limit_to_tbl_nphy(pi
);
28560 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE1TXPWRCTL
, 84, 64, 8,
28561 pi
->adj_pwr_tbl_nphy
);
28562 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE2TXPWRCTL
, 84, 64, 8,
28563 pi
->adj_pwr_tbl_nphy
);
28565 if (pi
->phyhang_avoid
)
28566 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
28569 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy
*pi
)
28571 return read_phy_reg((pi
), 0x1e7) & ((0x1 << 15) |
28572 (0x1 << 14) | (0x1 << 13));
28575 static u8
wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy
*pi
, u8 core
)
28578 tmp
= read_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0x1ed : 0x1ee));
28580 tmp
= (tmp
& (0x7f << 8)) >> 8;
28585 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy
*pi
, u8 idx0
, u8 idx1
)
28587 mod_phy_reg(pi
, 0x1e7, (0x7f << 0), idx0
);
28589 if (NREV_GT(pi
->pubpi
.phy_rev
, 1))
28590 mod_phy_reg(pi
, 0x222, (0xff << 0), idx1
);
28593 u16
wlc_phy_txpwr_idx_get_nphy(struct brcms_phy
*pi
)
28598 if (wlc_phy_txpwr_ison_nphy(pi
)) {
28599 pwr_idx
[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi
, PHY_CORE_0
);
28600 pwr_idx
[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi
, PHY_CORE_1
);
28602 tmp
= (pwr_idx
[0] << 8) | pwr_idx
[1];
28605 ((pi
->nphy_txpwrindex
[PHY_CORE_0
].
28606 index_internal
& 0xff) << 8) | (pi
->
28609 index_internal
& 0xff);
28615 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy
*pi
)
28618 && (pi
->nphy_force_papd_cal
28619 || (wlc_phy_txpwr_ison_nphy(pi
)
28622 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi
, 0) -
28623 pi
->nphy_papd_tx_gain_at_last_cal
[0]) >= 4)
28625 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi
, 1) -
28626 pi
->nphy_papd_tx_gain_at_last_cal
[1]) >= 4))))) {
28627 wlc_phy_a4(pi
, true);
28631 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy
*pi
, u8 ctrl_type
)
28633 u16 mask
= 0, val
= 0, ishw
= 0;
28640 if (pi
->phyhang_avoid
)
28641 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
28643 switch (ctrl_type
) {
28644 case PHY_TPC_HW_OFF
:
28645 case PHY_TPC_HW_ON
:
28646 pi
->nphy_txpwrctrl
= ctrl_type
;
28652 if (ctrl_type
== PHY_TPC_HW_OFF
) {
28653 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28655 if (wlc_phy_txpwr_ison_nphy(pi
)) {
28656 for (core
= 0; core
< pi
->pubpi
.phy_corenum
;
28658 pi
->nphy_txpwr_idx
[core
] =
28659 wlc_phy_txpwr_idx_cur_get_nphy(pi
,
28668 for (ctr
= 0; ctr
< tbl_len
; ctr
++) {
28671 wlc_phy_table_write_nphy(pi
, 26, tbl_len
, tbl_offset
, 16,
28673 wlc_phy_table_write_nphy(pi
, 27, tbl_len
, tbl_offset
, 16,
28676 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28678 and_phy_reg(pi
, 0x1e7,
28679 (u16
) (~((0x1 << 15) |
28680 (0x1 << 14) | (0x1 << 13))));
28682 and_phy_reg(pi
, 0x1e7,
28683 (u16
) (~((0x1 << 14) | (0x1 << 13))));
28686 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28687 or_phy_reg(pi
, 0x8f, (0x1 << 8));
28688 or_phy_reg(pi
, 0xa5, (0x1 << 8));
28690 or_phy_reg(pi
, 0xa5, (0x1 << 14));
28693 if (NREV_IS(pi
->pubpi
.phy_rev
, 2))
28694 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x53);
28695 else if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
28696 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x5a);
28698 if (NREV_LT(pi
->pubpi
.phy_rev
, 2) && IS40MHZ(pi
))
28699 wlapi_bmac_mhf(pi
->sh
->physhim
, MHF1
, MHF1_IQSWAP_WAR
,
28700 MHF1_IQSWAP_WAR
, WLC_BAND_ALL
);
28704 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE1TXPWRCTL
, 84, 64,
28705 8, pi
->adj_pwr_tbl_nphy
);
28706 wlc_phy_table_write_nphy(pi
, NPHY_TBL_ID_CORE2TXPWRCTL
, 84, 64,
28707 8, pi
->adj_pwr_tbl_nphy
);
28709 ishw
= (ctrl_type
== PHY_TPC_HW_ON
) ? 0x1 : 0x0;
28710 mask
= (0x1 << 14) | (0x1 << 13);
28711 val
= (ishw
<< 14) | (ishw
<< 13);
28713 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28714 mask
|= (0x1 << 15);
28715 val
|= (ishw
<< 15);
28718 mod_phy_reg(pi
, 0x1e7, mask
, val
);
28720 if (CHSPEC_IS5G(pi
->radio_chanspec
)) {
28721 if (NREV_GE(pi
->pubpi
.phy_rev
, 7)) {
28722 mod_phy_reg(pi
, 0x1e7, (0x7f << 0), 0x32);
28723 mod_phy_reg(pi
, 0x222, (0xff << 0), 0x32);
28725 mod_phy_reg(pi
, 0x1e7, (0x7f << 0), 0x64);
28726 if (NREV_GT(pi
->pubpi
.phy_rev
, 1))
28727 mod_phy_reg(pi
, 0x222,
28728 (0xff << 0), 0x64);
28732 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28733 if ((pi
->nphy_txpwr_idx
[0] != 128)
28734 && (pi
->nphy_txpwr_idx
[1] != 128)) {
28735 wlc_phy_txpwr_idx_cur_set_nphy(pi
,
28745 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28746 and_phy_reg(pi
, 0x8f, ~(0x1 << 8));
28747 and_phy_reg(pi
, 0xa5, ~(0x1 << 8));
28749 and_phy_reg(pi
, 0xa5, ~(0x1 << 14));
28752 if (NREV_IS(pi
->pubpi
.phy_rev
, 2))
28753 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x3b);
28754 else if (NREV_LT(pi
->pubpi
.phy_rev
, 2))
28755 mod_phy_reg(pi
, 0xdc, 0x00ff, 0x40);
28757 if (NREV_LT(pi
->pubpi
.phy_rev
, 2) && IS40MHZ(pi
))
28758 wlapi_bmac_mhf(pi
->sh
->physhim
, MHF1
, MHF1_IQSWAP_WAR
,
28759 0x0, WLC_BAND_ALL
);
28762 mod_phy_reg(pi
, (0 == PHY_CORE_0
) ? 0x297 :
28763 0x29b, (0x1 << 2), (0) << 2);
28765 mod_phy_reg(pi
, (1 == PHY_CORE_0
) ? 0x297 :
28766 0x29b, (0x1 << 2), (0) << 2);
28772 if (pi
->phyhang_avoid
)
28773 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
28777 wlc_phy_txpwr_index_nphy(struct brcms_phy
*pi
, u8 core_mask
, s8 txpwrindex
,
28780 u8 core
, txpwrctl_tbl
;
28781 u16 tx_ind0
, iq_ind0
, lo_ind0
;
28784 u16 rad_gain
, dac_gain
;
28787 u16 iqcomp_a
, iqcomp_b
;
28790 u8 tx_pwr_ctrl_state
;
28794 if (pi
->phyhang_avoid
)
28795 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
28801 for (core
= 0; core
< pi
->pubpi
.phy_corenum
; core
++) {
28803 if ((core_mask
& (1 << core
)) == 0) {
28807 txpwrctl_tbl
= (core
== PHY_CORE_0
) ? 26 : 27;
28809 if (txpwrindex
< 0) {
28810 if (pi
->nphy_txpwrindex
[core
].index
< 0) {
28815 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28816 mod_phy_reg(pi
, 0x8f,
28818 pi
->nphy_txpwrindex
[core
].
28820 mod_phy_reg(pi
, 0xa5, (0x1 << 8),
28821 pi
->nphy_txpwrindex
[core
].
28824 mod_phy_reg(pi
, 0xa5,
28826 pi
->nphy_txpwrindex
[core
].
28830 write_phy_reg(pi
, (core
== PHY_CORE_0
) ?
28832 pi
->nphy_txpwrindex
[core
].AfeCtrlDacGain
);
28834 wlc_phy_table_write_nphy(pi
, 7, 1, (0x110 + core
), 16,
28835 &pi
->nphy_txpwrindex
[core
].
28838 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &m1m2
);
28839 m1m2
&= ((core
== PHY_CORE_0
) ? 0x00ff : 0xff00);
28840 m1m2
|= ((core
== PHY_CORE_0
) ?
28841 (pi
->nphy_txpwrindex
[core
].bbmult
<< 8) :
28842 (pi
->nphy_txpwrindex
[core
].bbmult
<< 0));
28843 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &m1m2
);
28845 if (restore_cals
) {
28847 wlc_phy_table_write_nphy(pi
, 15, 2,
28848 (80 + 2 * core
), 16,
28850 nphy_txpwrindex
[core
].
28853 wlc_phy_table_write_nphy(pi
, 15, 1, (85 + core
),
28856 nphy_txpwrindex
[core
].
28858 wlc_phy_table_write_nphy(pi
, 15, 1, (93 + core
),
28861 nphy_txpwrindex
[core
].
28865 wlc_phy_txpwrctrl_enable_nphy(pi
, pi
->nphy_txpwrctrl
);
28867 pi
->nphy_txpwrindex
[core
].index_internal
=
28868 pi
->nphy_txpwrindex
[core
].index_internal_save
;
28871 if (pi
->nphy_txpwrindex
[core
].index
< 0) {
28873 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28874 mod_phy_reg(pi
, 0x8f,
28876 pi
->nphy_txpwrindex
[core
].
28878 mod_phy_reg(pi
, 0xa5, (0x1 << 8),
28879 pi
->nphy_txpwrindex
[core
].
28882 pi
->nphy_txpwrindex
[core
].
28884 read_phy_reg(pi
, 0xa5);
28887 pi
->nphy_txpwrindex
[core
].AfeCtrlDacGain
=
28890 PHY_CORE_0
) ? 0xaa : 0xab);
28892 wlc_phy_table_read_nphy(pi
, 7, 1,
28893 (0x110 + core
), 16,
28895 nphy_txpwrindex
[core
].
28898 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16,
28900 tmpval
>>= ((core
== PHY_CORE_0
) ? 8 : 0);
28902 pi
->nphy_txpwrindex
[core
].bbmult
=
28905 wlc_phy_table_read_nphy(pi
, 15, 2,
28906 (80 + 2 * core
), 16,
28908 nphy_txpwrindex
[core
].
28911 wlc_phy_table_read_nphy(pi
, 15, 1, (85 + core
),
28914 nphy_txpwrindex
[core
].
28917 pi
->nphy_txpwrindex
[core
].index_internal_save
=
28918 pi
->nphy_txpwrindex
[core
].index_internal
;
28921 tx_pwr_ctrl_state
= pi
->nphy_txpwrctrl
;
28922 wlc_phy_txpwrctrl_enable_nphy(pi
, PHY_TPC_HW_OFF
);
28924 if (NREV_IS(pi
->pubpi
.phy_rev
, 1))
28925 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, ON
);
28927 wlc_phy_table_read_nphy(pi
, txpwrctl_tbl
, 1,
28928 (tx_ind0
+ txpwrindex
), 32,
28931 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28933 (txgain
>> 16) & ((1 << (32 - 16 + 1)) - 1);
28936 (txgain
>> 16) & ((1 << (28 - 16 + 1)) - 1);
28938 dac_gain
= (txgain
>> 8) & ((1 << (13 - 8 + 1)) - 1);
28939 bbmult
= (txgain
>> 0) & ((1 << (7 - 0 + 1)) - 1);
28941 if (NREV_GE(pi
->pubpi
.phy_rev
, 3)) {
28942 mod_phy_reg(pi
, ((core
== PHY_CORE_0
) ? 0x8f :
28943 0xa5), (0x1 << 8), (0x1 << 8));
28945 mod_phy_reg(pi
, 0xa5, (0x1 << 14), (0x1 << 14));
28947 write_phy_reg(pi
, (core
== PHY_CORE_0
) ?
28948 0xaa : 0xab, dac_gain
);
28950 wlc_phy_table_write_nphy(pi
, 7, 1, (0x110 + core
), 16,
28953 wlc_phy_table_read_nphy(pi
, 15, 1, 87, 16, &m1m2
);
28954 m1m2
&= ((core
== PHY_CORE_0
) ? 0x00ff : 0xff00);
28957 PHY_CORE_0
) ? (bbmult
<< 8) : (bbmult
<< 0));
28959 wlc_phy_table_write_nphy(pi
, 15, 1, 87, 16, &m1m2
);
28961 wlc_phy_table_read_nphy(pi
, txpwrctl_tbl
, 1,
28962 (iq_ind0
+ txpwrindex
), 32,
28964 iqcomp_a
= (iqcomp
>> 10) & ((1 << (19 - 10 + 1)) - 1);
28965 iqcomp_b
= (iqcomp
>> 0) & ((1 << (9 - 0 + 1)) - 1);
28967 if (restore_cals
) {
28968 regval
[0] = (u16
) iqcomp_a
;
28969 regval
[1] = (u16
) iqcomp_b
;
28970 wlc_phy_table_write_nphy(pi
, 15, 2,
28971 (80 + 2 * core
), 16,
28975 wlc_phy_table_read_nphy(pi
, txpwrctl_tbl
, 1,
28976 (lo_ind0
+ txpwrindex
), 32,
28978 if (restore_cals
) {
28979 wlc_phy_table_write_nphy(pi
, 15, 1, (85 + core
),
28983 if (NREV_IS(pi
->pubpi
.phy_rev
, 1))
28984 wlapi_bmac_phyclk_fgc(pi
->sh
->physhim
, OFF
);
28987 wlc_phy_table_read_nphy(pi
,
28990 NPHY_TBL_ID_CORE1TXPWRCTL
28992 NPHY_TBL_ID_CORE2TXPWRCTL
),
28993 1, 576 + txpwrindex
, 32,
28996 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
28997 0x29b, (0x1ff << 4),
28998 ((s16
) rfpwr_offset
) << 4);
29000 mod_phy_reg(pi
, (core
== PHY_CORE_0
) ? 0x297 :
29001 0x29b, (0x1 << 2), (1) << 2);
29005 wlc_phy_txpwrctrl_enable_nphy(pi
, tx_pwr_ctrl_state
);
29008 pi
->nphy_txpwrindex
[core
].index
= txpwrindex
;
29011 if (pi
->phyhang_avoid
)
29012 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
29016 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy
*pi
, uint chan
, u8
*max_pwr
,
29019 u8 chan_freq_range
;
29021 chan_freq_range
= wlc_phy_get_chan_freq_range_nphy(pi
, chan
);
29022 switch (chan_freq_range
) {
29023 case WL_CHAN_FREQ_RANGE_2G
:
29024 *max_pwr
= pi
->tx_srom_max_rate_2g
[txp_rate_idx
];
29026 case WL_CHAN_FREQ_RANGE_5GM
:
29027 *max_pwr
= pi
->tx_srom_max_rate_5g_mid
[txp_rate_idx
];
29029 case WL_CHAN_FREQ_RANGE_5GL
:
29030 *max_pwr
= pi
->tx_srom_max_rate_5g_low
[txp_rate_idx
];
29032 case WL_CHAN_FREQ_RANGE_5GH
:
29033 *max_pwr
= pi
->tx_srom_max_rate_5g_hi
[txp_rate_idx
];
29036 *max_pwr
= pi
->tx_srom_max_rate_2g
[txp_rate_idx
];
29043 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy
*pi
, bool enable
)
29045 u16 clip_off
[] = { 0xffff, 0xffff };
29048 if (pi
->nphy_deaf_count
== 0) {
29049 pi
->classifier_state
=
29050 wlc_phy_classifier_nphy(pi
, 0, 0);
29051 wlc_phy_classifier_nphy(pi
, (0x7 << 0), 4);
29052 wlc_phy_clip_det_nphy(pi
, 0, pi
->clip_state
);
29053 wlc_phy_clip_det_nphy(pi
, 1, clip_off
);
29056 pi
->nphy_deaf_count
++;
29058 wlc_phy_resetcca_nphy(pi
);
29061 pi
->nphy_deaf_count
--;
29063 if (pi
->nphy_deaf_count
== 0) {
29064 wlc_phy_classifier_nphy(pi
, (0x7 << 0),
29065 pi
->classifier_state
);
29066 wlc_phy_clip_det_nphy(pi
, 1, pi
->clip_state
);
29071 void wlc_nphy_deaf_mode(struct brcms_phy
*pi
, bool mode
)
29073 wlapi_suspend_mac_and_wait(pi
->sh
->physhim
);
29076 if (pi
->nphy_deaf_count
== 0)
29077 wlc_phy_stay_in_carriersearch_nphy(pi
, true);
29079 if (pi
->nphy_deaf_count
> 0)
29080 wlc_phy_stay_in_carriersearch_nphy(pi
, false);
29082 wlapi_enable_mac(pi
->sh
->physhim
);