staging: brcm80211: remove checkpatch warnings from phy_n.c
[linux-2.6/kvm.git] / drivers / staging / brcm80211 / brcmsmac / phy / phy_n.c
blob2a8c9ffa27ed59d335820b8f18a9122c87a6a378
1 /*
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>
20 #include <aiutils.h>
21 #include <chipcommon.h>
22 #include <pmu.h>
23 #include <d11.h>
24 #include <phy_shim.h>
25 #include "phy_int.h"
26 #include "phy_hal.h"
27 #include "phy_radio.h"
28 #include "phyreg_n.h"
29 #include "phytbl_n.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 {
145 u16 txlpf;
146 u16 txgm;
147 u16 pga;
148 u16 pad;
149 u16 ipa;
150 u16 cal_gain;
151 u16 ncorr[5];
154 struct nphy_txiqcal_ladder {
155 u8 percent;
156 u8 g_env;
159 struct nphy_ipa_txcalgains {
160 struct nphy_txgains gains;
161 bool useindex;
162 u8 index;
165 struct nphy_papd_restore_state {
166 u16 fbmix[2];
167 u16 vga_master[2];
168 u16 intpa_master[2];
169 u16 afectrl[2];
170 u16 afeoverride[2];
171 u16 pwrup[2];
172 u16 atten[2];
173 u16 mm;
176 struct nphy_ipa_txrxgain {
177 u16 hpvga;
178 u16 lpf_biq1;
179 u16 lpf_biq0;
180 u16 lna2;
181 u16 lna1;
182 s8 txpwrindex;
185 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
187 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz[] = { {0, 0, 0, 0, 0, 100},
188 {0, 0, 0, 0, 0, 50},
189 {0, 0, 0, 0, 0, -1},
190 {0, 0, 0, 3, 0, -1},
191 {0, 0, 3, 3, 0, -1},
192 {0, 2, 3, 3, 0, -1}
195 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz[] = { {0, 0, 0, 0, 0, 128},
196 {0, 0, 0, 0, 0, 70},
197 {0, 0, 0, 0, 0, 20},
198 {0, 0, 0, 3, 0, 20},
199 {0, 0, 3, 3, 0, 20},
200 {0, 2, 3, 3, 0, 20}
203 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = {
204 {0, 0, 0, 0, 0, 100},
205 {0, 0, 0, 0, 0, 50},
206 {0, 0, 0, 0, 0, -1},
207 {0, 0, 0, 3, 0, -1},
208 {0, 0, 3, 3, 0, -1},
209 {0, 0, 5, 3, 0, -1}
212 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = {
213 {0, 0, 0, 0, 0, 10},
214 {0, 0, 0, 1, 0, 10},
215 {0, 0, 1, 2, 0, 10},
216 {0, 0, 1, 3, 0, 10},
217 {0, 0, 4, 3, 0, 10},
218 {0, 0, 6, 3, 0, 10}
221 #define NPHY_RXCAL_TONEAMP 181
222 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
223 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
225 enum {
226 NPHY_RXCAL_GAIN_INIT = 0,
227 NPHY_RXCAL_GAIN_UP,
228 NPHY_RXCAL_GAIN_DOWN
231 #define wlc_phy_get_papd_nphy(pi) \
232 (read_phy_reg((pi), 0x1e7) & \
233 ((0x1 << 15) | \
234 (0x1 << 14) | \
235 (0x1 << 13)))
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,
247 26, 34, -32, 34},
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 {
261 u16 chan;
262 u16 freq;
263 uint unknown;
264 u8 RF_pll_ref;
265 u8 RF_rf_pll_mod1;
266 u8 RF_rf_pll_mod0;
267 u8 RF_vco_cap_tail;
268 u8 RF_vco_cal1;
269 u8 RF_vco_cal2;
270 u8 RF_pll_lf_c1;
271 u8 RF_pll_lf_r1;
272 u8 RF_pll_lf_c2;
273 u8 RF_lgbuf_cen_buf;
274 u8 RF_lgen_tune1;
275 u8 RF_lgen_tune2;
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;
286 u16 PHY_BW1a;
287 u16 PHY_BW2;
288 u16 PHY_BW3;
289 u16 PHY_BW4;
290 u16 PHY_BW5;
291 u16 PHY_BW6;
294 struct chan_info_nphy_radio205x {
295 u16 chan;
296 u16 freq;
297 u8 RF_SYN_pll_vcocal1;
298 u8 RF_SYN_pll_vcocal2;
299 u8 RF_SYN_pll_refdiv;
300 u8 RF_SYN_pll_mmd2;
301 u8 RF_SYN_pll_mmd1;
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;
314 u8 RF_RX0_lnaa_tune;
315 u8 RF_RX0_lnag_tune;
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;
324 u8 RF_RX1_lnaa_tune;
325 u8 RF_RX1_lnag_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;
334 u16 PHY_BW1a;
335 u16 PHY_BW2;
336 u16 PHY_BW3;
337 u16 PHY_BW4;
338 u16 PHY_BW5;
339 u16 PHY_BW6;
342 struct chan_info_nphy_radio2057 {
343 u16 chan;
344 u16 freq;
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;
351 u8 RF_cp_kpd_idac;
352 u8 RF_rfpll_mmd0;
353 u8 RF_rfpll_mmd1;
354 u8 RF_vcobuf_tune;
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;
373 u16 PHY_BW1a;
374 u16 PHY_BW2;
375 u16 PHY_BW3;
376 u16 PHY_BW4;
377 u16 PHY_BW5;
378 u16 PHY_BW6;
381 struct chan_info_nphy_radio2057_rev5 {
382 u16 chan;
383 u16 freq;
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;
390 u8 RF_cp_kpd_idac;
391 u8 RF_rfpll_mmd0;
392 u8 RF_rfpll_mmd1;
393 u8 RF_vcobuf_tune;
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;
402 u16 PHY_BW1a;
403 u16 PHY_BW2;
404 u16 PHY_BW3;
405 u16 PHY_BW4;
406 u16 PHY_BW5;
407 u16 PHY_BW6;
410 struct nphy_sfo_cfg {
411 u16 PHY_BW1a;
412 u16 PHY_BW2;
413 u16 PHY_BW3;
414 u16 PHY_BW4;
415 u16 PHY_BW5;
416 u16 PHY_BW6;
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,
5284 0x0215,
5285 0x0216,
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,
5291 0x0214,
5292 0x0215,
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,
5298 0x0213,
5299 0x0214,
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,
5305 0x0212,
5306 0x0213,
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,
5312 0x0211,
5313 0x0212,
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,
5319 0x020f,
5320 0x0211,
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,
5326 0x020e,
5327 0x020f,
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,
5333 0x020d,
5334 0x020e,
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,
5340 0x020c,
5341 0x020d,
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,
5347 0x020b,
5348 0x020c,
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,
5354 0x020a,
5355 0x020b,
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,
5361 0x0209,
5362 0x020a,
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,
5368 0x0208,
5369 0x0209,
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,
5375 0x0207,
5376 0x0208,
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,
5382 0x0206,
5383 0x0207,
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,
5389 0x0205,
5390 0x0206,
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,
5396 0x0204,
5397 0x0205,
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,
5403 0x0203,
5404 0x0204,
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,
5410 0x0202,
5411 0x0203,
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,
5417 0x0201,
5418 0x0202,
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,
5424 0x0200,
5425 0x0201,
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,
5431 0x01ff,
5432 0x0200,
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,
5438 0x01fe,
5439 0x01ff,
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,
5445 0x01fc,
5446 0x01fd,
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,
5452 0x01fb,
5453 0x01fc,
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,
5459 0x01fa,
5460 0x01fb,
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,
5466 0x01f9,
5467 0x01fa,
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,
5473 0x01f8,
5474 0x01f9,
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,
5480 0x01f7,
5481 0x01f8,
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,
5487 0x01f6,
5488 0x01f7,
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,
5494 0x01f5,
5495 0x01f6,
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,
5501 0x01f4,
5502 0x01f5,
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,
5508 0x01f3,
5509 0x01f4,
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,
5515 0x01f2,
5516 0x01f3,
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,
5522 0x01f1,
5523 0x01f2,
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,
5529 0x01f0,
5530 0x01f1,
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,
5536 0x01f0,
5537 0x01f0,
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,
5543 0x01ef,
5544 0x01f0,
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,
5550 0x01ee,
5551 0x01ef,
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,
5557 0x01ed,
5558 0x01ee,
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,
5564 0x01ec,
5565 0x01ed,
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,
5571 0x01eb,
5572 0x01ec,
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,
5578 0x01ea,
5579 0x01eb,
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,
5585 0x01e9,
5586 0x01ea,
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,
5592 0x01e8,
5593 0x01e9,
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,
5599 0x01e7,
5600 0x01e8,
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,
5606 0x01e6,
5607 0x01e7,
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,
5613 0x01e5,
5614 0x01e6,
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,
5620 0x01e5,
5621 0x01e5,
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,
5627 0x01e4,
5628 0x01e5,
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,
5634 0x01e3,
5635 0x01e4,
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,
5641 0x01e2,
5642 0x01e3,
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,
5648 0x01e1,
5649 0x01e2,
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,
5655 0x01e0,
5656 0x01e1,
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,
5662 0x01df,
5663 0x01e0,
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,
5669 0x01de,
5670 0x01df,
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,
5676 0x01dd,
5677 0x01de,
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,
5683 0x01dd,
5684 0x01dd,
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,
5690 0x01dc,
5691 0x01dd,
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,
5697 0x01db,
5698 0x01dc,
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,
5704 0x01da,
5705 0x01db,
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,
5711 0x01d9,
5712 0x01da,
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,
5718 0x01d8,
5719 0x01d9,
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,
5725 0x01d7,
5726 0x01d8,
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,
5732 0x01d7,
5733 0x01d7,
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,
5739 0x01d6,
5740 0x01d7,
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,
5746 0x01d5,
5747 0x01d6,
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,
5753 0x01d4,
5754 0x01d5,
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,
5760 0x01d3,
5761 0x01d4,
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,
5767 0x01d2,
5768 0x01d3,
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,
5774 0x01d2,
5775 0x01d2,
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,
5781 0x01d1,
5782 0x01d2,
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,
5788 0x01d0,
5789 0x01d1,
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,
5795 0x01cf,
5796 0x01d0,
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,
5802 0x01ce,
5803 0x01cf,
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,
5809 0x01ce,
5810 0x01ce,
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,
5816 0x01cd,
5817 0x01ce,
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,
5823 0x01cc,
5824 0x01cd,
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,
5830 0x01cb,
5831 0x01cc,
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,
5837 0x01ca,
5838 0x01cb,
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,
5844 0x01ca,
5845 0x01cb,
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,
5851 0x01c9,
5852 0x01ca,
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,
5858 0x01c9,
5859 0x01ca,
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,
5865 0x01c9,
5866 0x01c9,
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,
5872 0x01c8,
5873 0x01c9,
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,
5879 0x01c8,
5880 0x01c9,
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,
5886 0x01c8,
5887 0x01c8,
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,
5893 0x01c7,
5894 0x01c8,
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,
5900 0x01c7,
5901 0x01c8,
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,
5907 0x01c6,
5908 0x01c7,
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,
5914 0x01c6,
5915 0x01c7,
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,
5921 0x01c6,
5922 0x01c6,
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,
5928 0x01c5,
5929 0x01c6,
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,
5935 0x01c5,
5936 0x01c6,
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,
5942 0x01c4,
5943 0x01c5,
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,
5949 0x01c4,
5950 0x01c5,
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,
5956 0x01c4,
5957 0x01c4,
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,
5963 0x01c3,
5964 0x01c4,
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,
5970 0x01c3,
5971 0x01c4,
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,
5977 0x01c2,
5978 0x01c3,
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,
5984 0x01c2,
5985 0x01c3,
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,
5991 0x01c2,
5992 0x01c2,
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,
5998 0x01c1,
5999 0x01c2,
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,
6005 0x01c0,
6006 0x01c1,
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,
6012 0x01bf,
6013 0x01c0,
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,
6019 0x01bf,
6020 0x01bf,
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,
6026 0x01be,
6027 0x01bf,
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,
6033 0x01bd,
6034 0x01be,
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,
6040 0x01bc,
6041 0x01bd,
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,
6047 0x043f,
6048 0x0443,
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,
6054 0x043d,
6055 0x0441,
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,
6061 0x043a,
6062 0x043f,
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,
6068 0x0438,
6069 0x043d,
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,
6075 0x0436,
6076 0x043a,
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,
6082 0x0434,
6083 0x0438,
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,
6089 0x0431,
6090 0x0436,
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,
6096 0x042f,
6097 0x0434,
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,
6103 0x042d,
6104 0x0431,
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,
6110 0x042b,
6111 0x042f,
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,
6117 0x0429,
6118 0x042d,
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,
6124 0x0427,
6125 0x042b,
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,
6131 0x0424,
6132 0x0429,
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,
6138 0x041f,
6139 0x0424}
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,
6265 0x0215,
6266 0x0216},
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,
6271 0x0214,
6272 0x0215},
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,
6277 0x0213,
6278 0x0214},
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,
6283 0x0212,
6284 0x0213},
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,
6289 0x0211,
6290 0x0212},
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,
6295 0x020f,
6296 0x0211},
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,
6301 0x020e,
6302 0x020f},
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,
6307 0x020d,
6308 0x020e},
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,
6313 0x020c,
6314 0x020d},
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,
6319 0x020b,
6320 0x020c},
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,
6325 0x020a,
6326 0x020b},
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,
6331 0x0209,
6332 0x020a},
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,
6337 0x0208,
6338 0x0209},
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,
6343 0x0207,
6344 0x0208},
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,
6349 0x0206,
6350 0x0207},
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,
6355 0x0205,
6356 0x0206},
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,
6361 0x0204,
6362 0x0205},
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,
6367 0x0203,
6368 0x0204},
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,
6373 0x0202,
6374 0x0203},
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,
6379 0x0201,
6380 0x0202},
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,
6385 0x0200,
6386 0x0201},
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,
6391 0x01ff,
6392 0x0200},
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,
6397 0x01fe,
6398 0x01ff},
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,
6403 0x01fc,
6404 0x01fd},
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,
6409 0x01fb,
6410 0x01fc},
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,
6415 0x01fa,
6416 0x01fb},
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,
6421 0x01f9,
6422 0x01fa},
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,
6427 0x01f8,
6428 0x01f9},
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,
6433 0x01f7,
6434 0x01f8},
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,
6439 0x01f6,
6440 0x01f7},
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,
6445 0x01f5,
6446 0x01f6},
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,
6451 0x01f4,
6452 0x01f5},
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,
6457 0x01f3,
6458 0x01f4},
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,
6463 0x01f2,
6464 0x01f3},
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,
6469 0x01f1,
6470 0x01f2},
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,
6475 0x01f0,
6476 0x01f1},
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,
6481 0x01f0,
6482 0x01f0},
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,
6487 0x01ef,
6488 0x01f0},
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,
6493 0x01ee,
6494 0x01ef},
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,
6499 0x01ed,
6500 0x01ee},
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,
6505 0x01ec,
6506 0x01ed},
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,
6511 0x01eb,
6512 0x01ec},
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,
6517 0x01ea,
6518 0x01eb},
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,
6523 0x01e9,
6524 0x01ea},
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,
6529 0x01e8,
6530 0x01e9},
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,
6535 0x01e7,
6536 0x01e8},
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,
6541 0x01e6,
6542 0x01e7},
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,
6547 0x01e5,
6548 0x01e6},
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,
6553 0x01e5,
6554 0x01e5},
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,
6559 0x01e4,
6560 0x01e5},
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,
6565 0x01e3,
6566 0x01e4},
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,
6571 0x01e2,
6572 0x01e3},
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,
6577 0x01e1,
6578 0x01e2},
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,
6583 0x01e0,
6584 0x01e1},
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,
6589 0x01df,
6590 0x01e0},
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,
6595 0x01de,
6596 0x01df},
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,
6601 0x01dd,
6602 0x01de},
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,
6607 0x01dd,
6608 0x01dd},
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,
6613 0x01dc,
6614 0x01dd},
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,
6619 0x01db,
6620 0x01dc},
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,
6625 0x01da,
6626 0x01db},
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,
6631 0x01d9,
6632 0x01da},
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,
6637 0x01d8,
6638 0x01d9},
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,
6643 0x01d7,
6644 0x01d8},
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,
6649 0x01d7,
6650 0x01d7},
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,
6655 0x01d6,
6656 0x01d7},
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,
6661 0x01d5,
6662 0x01d6},
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,
6667 0x01d4,
6668 0x01d5},
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,
6673 0x01d3,
6674 0x01d4},
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,
6679 0x01d2,
6680 0x01d3},
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,
6685 0x01d2,
6686 0x01d2},
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,
6691 0x01d1,
6692 0x01d2},
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,
6697 0x01d0,
6698 0x01d1},
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,
6703 0x01cf,
6704 0x01d0},
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,
6709 0x01ce,
6710 0x01cf},
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,
6715 0x01ce,
6716 0x01ce},
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,
6721 0x01cd,
6722 0x01ce},
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,
6727 0x01cc,
6728 0x01cd},
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,
6733 0x01cb,
6734 0x01cc},
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,
6739 0x01ca,
6740 0x01cb},
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,
6745 0x01ca,
6746 0x01cb},
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,
6751 0x01c9,
6752 0x01ca},
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,
6757 0x01c9,
6758 0x01ca},
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,
6763 0x01c9,
6764 0x01c9},
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,
6769 0x01c8,
6770 0x01c9},
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,
6775 0x01c8,
6776 0x01c9},
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,
6781 0x01c8,
6782 0x01c8},
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,
6787 0x01c7,
6788 0x01c8},
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,
6793 0x01c7,
6794 0x01c8},
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,
6799 0x01c6,
6800 0x01c7},
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,
6805 0x01c6,
6806 0x01c7},
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,
6811 0x01c6,
6812 0x01c6},
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,
6817 0x01c5,
6818 0x01c6},
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,
6823 0x01c5,
6824 0x01c6},
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,
6829 0x01c4,
6830 0x01c5},
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,
6835 0x01c4,
6836 0x01c5},
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,
6841 0x01c4,
6842 0x01c4},
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,
6847 0x01c3,
6848 0x01c4},
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,
6853 0x01c3,
6854 0x01c4},
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,
6859 0x01c2,
6860 0x01c3},
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,
6865 0x01c2,
6866 0x01c3},
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,
6871 0x01c2,
6872 0x01c2},
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,
6877 0x01c1,
6878 0x01c2},
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,
6883 0x01c0,
6884 0x01c1},
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,
6889 0x01bf,
6890 0x01c0},
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,
6895 0x01bf,
6896 0x01bf},
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,
6901 0x01be,
6902 0x01bf},
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,
6907 0x01bd,
6908 0x01be},
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,
6913 0x01bc,
6914 0x01bd},
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,
6919 0x043f,
6920 0x0443},
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,
6925 0x043d,
6926 0x0441},
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,
6931 0x043a,
6932 0x043f},
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,
6937 0x0438,
6938 0x043d},
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,
6943 0x0436,
6944 0x043a},
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,
6949 0x0434,
6950 0x0438},
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,
6955 0x0431,
6956 0x0436},
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,
6961 0x042f,
6962 0x0434},
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,
6967 0x042d,
6968 0x0431},
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,
6973 0x042b,
6974 0x042f},
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,
6979 0x0429,
6980 0x042d},
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,
6985 0x0427,
6986 0x042b},
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,
6991 0x0424,
6992 0x0429},
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,
6997 0x041f,
6998 0x0424}
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,
7006 0x0214,
7007 0x0215},
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,
7012 0x0213,
7013 0x0214},
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,
7018 0x0212,
7019 0x0213},
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,
7024 0x0211,
7025 0x0212},
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,
7030 0x020f,
7031 0x0211},
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,
7036 0x020e,
7037 0x020f},
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,
7042 0x020d,
7043 0x020e},
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,
7048 0x020c,
7049 0x020d},
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,
7054 0x020b,
7055 0x020c},
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,
7060 0x020a,
7061 0x020b},
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,
7066 0x0209,
7067 0x020a},
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,
7072 0x0208,
7073 0x0209},
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,
7078 0x0207,
7079 0x0208},
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,
7084 0x0206,
7085 0x0207},
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,
7090 0x0205,
7091 0x0206},
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,
7096 0x0204,
7097 0x0205},
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,
7102 0x0203,
7103 0x0204},
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,
7108 0x0202,
7109 0x0203},
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,
7114 0x0201,
7115 0x0202},
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,
7120 0x0200,
7121 0x0201},
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,
7126 0x01ff,
7127 0x0200},
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,
7132 0x01fe,
7133 0x01ff},
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,
7138 0x01fc,
7139 0x01fd},
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,
7144 0x01fb,
7145 0x01fc},
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,
7150 0x01fa,
7151 0x01fb},
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,
7156 0x01f9,
7157 0x01fa},
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,
7162 0x01f8,
7163 0x01f9},
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,
7168 0x01f7,
7169 0x01f8},
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,
7174 0x01f6,
7175 0x01f7},
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,
7180 0x01f5,
7181 0x01f6},
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,
7186 0x01f4,
7187 0x01f5},
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,
7192 0x01f3,
7193 0x01f4},
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,
7198 0x01f2,
7199 0x01f3},
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,
7204 0x01f1,
7205 0x01f2},
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,
7210 0x01f0,
7211 0x01f1},
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,
7216 0x01f0,
7217 0x01f0},
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,
7222 0x01ef,
7223 0x01f0},
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,
7228 0x01ee,
7229 0x01ef},
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,
7234 0x01ed,
7235 0x01ee},
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,
7240 0x01ec,
7241 0x01ed},
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,
7246 0x01eb,
7247 0x01ec},
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,
7252 0x01ea,
7253 0x01eb},
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,
7258 0x01e9,
7259 0x01ea},
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,
7264 0x01e8,
7265 0x01e9},
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,
7270 0x01e7,
7271 0x01e8},
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,
7276 0x01e6,
7277 0x01e7},
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,
7282 0x01e5,
7283 0x01e6},
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,
7288 0x01e5,
7289 0x01e5},
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,
7294 0x01e4,
7295 0x01e5},
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,
7300 0x01e3,
7301 0x01e4},
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,
7306 0x01e2,
7307 0x01e3},
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,
7312 0x01e1,
7313 0x01e2},
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,
7318 0x01e0,
7319 0x01e1},
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,
7324 0x01df,
7325 0x01e0},
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,
7330 0x01de,
7331 0x01df},
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,
7336 0x01dd,
7337 0x01de},
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,
7342 0x01dd,
7343 0x01dd},
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,
7348 0x01dc,
7349 0x01dd},
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,
7354 0x01db,
7355 0x01dc},
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,
7360 0x01da,
7361 0x01db},
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,
7366 0x01d9,
7367 0x01da},
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,
7372 0x01d8,
7373 0x01d9},
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,
7378 0x01d7,
7379 0x01d8},
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,
7384 0x01d7,
7385 0x01d7},
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,
7390 0x01d6,
7391 0x01d7},
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,
7396 0x01d5,
7397 0x01d6},
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,
7402 0x01d4,
7403 0x01d5},
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,
7408 0x01d3,
7409 0x01d4},
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,
7414 0x01d2,
7415 0x01d3},
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,
7420 0x01d2,
7421 0x01d2},
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,
7426 0x01d1,
7427 0x01d2},
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,
7432 0x01d0,
7433 0x01d1},
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,
7438 0x01cf,
7439 0x01d0},
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,
7444 0x01ce,
7445 0x01cf},
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,
7450 0x01ce,
7451 0x01ce},
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,
7456 0x01cd,
7457 0x01ce},
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,
7462 0x01cc,
7463 0x01cd},
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,
7468 0x01cb,
7469 0x01cc},
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,
7474 0x01ca,
7475 0x01cb},
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,
7480 0x01ca,
7481 0x01cb},
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,
7486 0x01c9,
7487 0x01ca},
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,
7492 0x01c9,
7493 0x01ca},
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,
7498 0x01c9,
7499 0x01c9},
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,
7504 0x01c8,
7505 0x01c9},
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,
7510 0x01c8,
7511 0x01c9},
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,
7516 0x01c8,
7517 0x01c8},
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,
7522 0x01c7,
7523 0x01c8},
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,
7528 0x01c7,
7529 0x01c8},
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,
7534 0x01c6,
7535 0x01c7},
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,
7540 0x01c6,
7541 0x01c7},
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,
7546 0x01c6,
7547 0x01c6},
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,
7552 0x01c5,
7553 0x01c6},
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,
7558 0x01c5,
7559 0x01c6},
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,
7564 0x01c4,
7565 0x01c5},
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,
7570 0x01c4,
7571 0x01c5},
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,
7576 0x01c4,
7577 0x01c4},
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,
7582 0x01c3,
7583 0x01c4},
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,
7588 0x01c3,
7589 0x01c4},
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,
7594 0x01c2,
7595 0x01c3},
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,
7600 0x01c2,
7601 0x01c3},
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,
7606 0x01c2,
7607 0x01c2},
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,
7612 0x01c1,
7613 0x01c2},
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,
7618 0x01c0,
7619 0x01c1},
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,
7624 0x01bf,
7625 0x01c0},
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,
7630 0x01bf,
7631 0x01bf},
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,
7636 0x01be,
7637 0x01bf},
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,
7642 0x01bd,
7643 0x01be},
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,
7648 0x01bc,
7649 0x01bd},
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,
7654 0x043f,
7655 0x0443},
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,
7660 0x043d,
7661 0x0441},
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,
7666 0x043a,
7667 0x043f},
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,
7672 0x0438,
7673 0x043d},
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,
7678 0x0436,
7679 0x043a},
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,
7684 0x0434,
7685 0x0438},
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,
7690 0x0431,
7691 0x0436},
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,
7696 0x042f,
7697 0x0434},
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,
7702 0x042d,
7703 0x0431},
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,
7708 0x042b,
7709 0x042f},
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,
7714 0x0429,
7715 0x042d},
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,
7720 0x0427,
7721 0x042b},
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,
7726 0x0424,
7727 0x0429},
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,
7732 0x041f,
7733 0x0424}
7736 struct radio_regs regs_2055[] = {
7737 {0x02, 0x80, 0x80, 0, 0},
7738 {0x03, 0, 0, 0, 0},
7739 {0x04, 0x27, 0x27, 0, 0},
7740 {0x05, 0, 0, 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},
7754 {0x13, 0, 0, 0, 0},
7755 {0x14, 0x40, 0x40, 0, 0},
7756 {0x15, 0, 0, 0, 0},
7757 {0x16, 0, 0, 0, 0},
7758 {0x17, 0, 0, 0, 0},
7759 {0x18, 0, 0, 0, 0},
7760 {0x19, 0, 0, 0, 0},
7761 {0x1A, 0, 0, 0, 0},
7762 {0x1B, 0, 0, 0, 0},
7763 {0x1C, 0, 0, 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},
7769 {0x22, 0, 0, 0, 0},
7770 {0x23, 0x2c, 0x2c, 0, 0},
7771 {0x24, 0, 0, 0, 0},
7772 {0x25, 0, 0, 0, 0},
7773 {0x26, 0, 0, 0, 0},
7774 {0x27, 0, 0, 0, 0},
7775 {0x28, 0, 0, 0, 0},
7776 {0x29, 0, 0, 0, 0},
7777 {0x2A, 0, 0, 0, 0},
7778 {0x2B, 0, 0, 0, 0},
7779 {0x2C, 0, 0, 0, 0},
7780 {0x2D, 0xa4, 0xa4, 0, 0},
7781 {0x2E, 0x38, 0x38, 0, 0},
7782 {0x2F, 0, 0, 0, 0},
7783 {0x30, 0x4, 0x4, 1, 1},
7784 {0x31, 0, 0, 0, 0},
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},
7798 {0x3F, 0, 0, 0, 0},
7799 {0x40, 0, 0, 0, 0},
7800 {0x41, 0, 0, 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},
7810 {0x4B, 0, 0, 0, 0},
7811 {0x4C, 0, 0, 0, 0},
7812 {0x4D, 0, 0, 0, 0},
7813 {0x4E, 0, 0, 0, 0},
7814 {0x4F, 0, 0, 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},
7825 {0x5A, 0, 0, 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},
7835 {0x64, 0, 0, 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},
7855 {0x78, 0, 0, 0, 0},
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},
7874 {0x8B, 0, 0, 0, 0},
7875 {0x8C, 0x4a, 0x4a, 0, 0},
7876 {0x8D, 0, 0, 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},
7882 {0x93, 0, 0, 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},
7902 {0xA7, 0, 0, 0, 0},
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},
7921 {0xBA, 0, 0, 0, 0},
7922 {0xBB, 0x4a, 0x4a, 0, 0},
7923 {0xBC, 0, 0, 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},
7934 {0xC7, 0, 0, 0, 0},
7935 {0xC8, 0, 0, 0, 0},
7936 {0xC9, 0, 0, 0, 0},
7937 {0xCA, 0, 0, 0, 0},
7938 {0xCB, 0, 0, 0, 0},
7939 {0xCC, 0, 0, 0, 0},
7940 {0xCD, 0, 0, 0, 0},
7941 {0xCE, 0x6, 0x6, 0, 0},
7942 {0xCF, 0, 0, 0, 0},
7943 {0xD0, 0, 0, 0, 0},
7944 {0xD1, 0x18, 0x18, 0, 0},
7945 {0xD2, 0x88, 0x88, 0, 0},
7946 {0xD3, 0, 0, 0, 0},
7947 {0xD4, 0, 0, 0, 0},
7948 {0xD5, 0, 0, 0, 0},
7949 {0xD6, 0, 0, 0, 0},
7950 {0xD7, 0, 0, 0, 0},
7951 {0xD8, 0, 0, 0, 0},
7952 {0xD9, 0, 0, 0, 0},
7953 {0xDA, 0x6, 0x6, 0, 0},
7954 {0xDB, 0, 0, 0, 0},
7955 {0xDC, 0, 0, 0, 0},
7956 {0xDD, 0x18, 0x18, 0, 0},
7957 {0xDE, 0x88, 0x88, 0, 0},
7958 {0xDF, 0, 0, 0, 0},
7959 {0xE0, 0, 0, 0, 0},
7960 {0xE1, 0, 0, 0, 0},
7961 {0xE2, 0, 0, 0, 0},
7962 {0xFFFF, 0, 0, 0, 0},
7965 struct radio_regs regs_SYN_2056[] = {
7966 {0x02, 0, 0, 0, 0},
7967 {0x03, 0, 0, 0, 0},
7968 {0x04, 0, 0, 0, 0},
7969 {0x05, 0, 0, 0, 0},
7970 {0x06, 0, 0, 0, 0},
7971 {0x07, 0, 0, 0, 0},
7972 {0x08, 0, 0, 0, 0},
7973 {0x09, 0x1, 0x1, 0, 0},
7974 {0x0A, 0, 0, 0, 0},
7975 {0x0B, 0, 0, 0, 0},
7976 {0x0C, 0, 0, 0, 0},
7977 {0x0D, 0, 0, 0, 0},
7978 {0x0E, 0, 0, 0, 0},
7979 {0x0F, 0, 0, 0, 0},
7980 {0x10, 0, 0, 0, 0},
7981 {0x11, 0, 0, 0, 0},
7982 {0x12, 0, 0, 0, 0},
7983 {0x13, 0, 0, 0, 0},
7984 {0x14, 0, 0, 0, 0},
7985 {0x15, 0, 0, 0, 0},
7986 {0x16, 0, 0, 0, 0},
7987 {0x17, 0, 0, 0, 0},
7988 {0x18, 0, 0, 0, 0},
7989 {0x19, 0, 0, 0, 0},
7990 {0x1A, 0, 0, 0, 0},
7991 {0x1B, 0, 0, 0, 0},
7992 {0x1C, 0, 0, 0, 0},
7993 {0x1D, 0, 0, 0, 0},
7994 {0x1E, 0, 0, 0, 0},
7995 {0x1F, 0, 0, 0, 0},
7996 {0x20, 0, 0, 0, 0},
7997 {0x21, 0, 0, 0, 0},
7998 {0x22, 0x60, 0x60, 0, 0},
7999 {0x23, 0x6, 0x6, 0, 0},
8000 {0x24, 0xc, 0xc, 0, 0},
8001 {0x25, 0, 0, 0, 0},
8002 {0x26, 0, 0, 0, 0},
8003 {0x27, 0, 0, 0, 0},
8004 {0x28, 0x1, 0x1, 0, 0},
8005 {0x29, 0, 0, 0, 0},
8006 {0x2A, 0, 0, 0, 0},
8007 {0x2B, 0, 0, 0, 0},
8008 {0x2C, 0, 0, 0, 0},
8009 {0x2D, 0, 0, 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},
8014 {0x32, 0, 0, 0, 0},
8015 {0x33, 0, 0, 0, 0},
8016 {0x34, 0, 0, 0, 0},
8017 {0x35, 0, 0, 0, 0},
8018 {0x36, 0, 0, 0, 0},
8019 {0x37, 0, 0, 0, 0},
8020 {0x38, 0, 0, 0, 0},
8021 {0x39, 0, 0, 0, 0},
8022 {0x3A, 0, 0, 0, 0},
8023 {0x3B, 0, 0, 0, 0},
8024 {0x3C, 0x13, 0x13, 0, 0},
8025 {0x3D, 0xf, 0xf, 0, 0},
8026 {0x3E, 0x18, 0x18, 0, 0},
8027 {0x3F, 0, 0, 0, 0},
8028 {0x40, 0, 0, 0, 0},
8029 {0x41, 0x20, 0x20, 0, 0},
8030 {0x42, 0x20, 0x20, 0, 0},
8031 {0x43, 0, 0, 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},
8050 {0x56, 0, 0, 0, 0},
8051 {0x57, 0, 0, 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},
8058 {0x5E, 0, 0, 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},
8063 {0x63, 0, 0, 0, 0},
8064 {0x64, 0, 0, 0, 0},
8065 {0x65, 0, 0, 0, 0},
8066 {0x66, 0, 0, 0, 0},
8067 {0x67, 0, 0, 0, 0},
8068 {0x68, 0x40, 0x40, 0, 0},
8069 {0x69, 0, 0, 0, 0},
8070 {0x6A, 0, 0, 0, 0},
8071 {0x6B, 0, 0, 0, 0},
8072 {0x6C, 0, 0, 0, 0},
8073 {0x6D, 0x1, 0x1, 0, 0},
8074 {0x6E, 0, 0, 0, 0},
8075 {0x6F, 0, 0, 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},
8081 {0x75, 0, 0, 0, 0},
8082 {0x76, 0xcc, 0xcc, 0, 0},
8083 {0x77, 0x1, 0x1, 0, 0},
8084 {0x78, 0x66, 0x66, 0, 0},
8085 {0x79, 0x66, 0x66, 0, 0},
8086 {0x7A, 0, 0, 0, 0},
8087 {0x7B, 0, 0, 0, 0},
8088 {0x7C, 0, 0, 0, 0},
8089 {0x7D, 0, 0, 0, 0},
8090 {0x7E, 0, 0, 0, 0},
8091 {0x7F, 0, 0, 0, 0},
8092 {0x80, 0, 0, 0, 0},
8093 {0x81, 0, 0, 0, 0},
8094 {0x82, 0, 0, 0, 0},
8095 {0x83, 0, 0, 0, 0},
8096 {0x84, 0, 0, 0, 0},
8097 {0x85, 0xff, 0xff, 0, 0},
8098 {0x86, 0, 0, 0, 0},
8099 {0x87, 0, 0, 0, 0},
8100 {0x88, 0, 0, 0, 0},
8101 {0x89, 0, 0, 0, 0},
8102 {0x8A, 0, 0, 0, 0},
8103 {0x8B, 0, 0, 0, 0},
8104 {0x8C, 0, 0, 0, 0},
8105 {0x8D, 0, 0, 0, 0},
8106 {0x8E, 0, 0, 0, 0},
8107 {0x8F, 0, 0, 0, 0},
8108 {0x90, 0, 0, 0, 0},
8109 {0x91, 0, 0, 0, 0},
8110 {0x92, 0, 0, 0, 0},
8111 {0x93, 0, 0, 0, 0},
8112 {0x94, 0, 0, 0, 0},
8113 {0x95, 0, 0, 0, 0},
8114 {0x96, 0, 0, 0, 0},
8115 {0x97, 0, 0, 0, 0},
8116 {0x98, 0, 0, 0, 0},
8117 {0x99, 0, 0, 0, 0},
8118 {0x9A, 0, 0, 0, 0},
8119 {0x9B, 0, 0, 0, 0},
8120 {0x9C, 0, 0, 0, 0},
8121 {0x9D, 0, 0, 0, 0},
8122 {0x9E, 0, 0, 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},
8144 {0xB4, 0, 0, 0, 0},
8145 {0xB5, 0, 0, 0, 0},
8146 {0xB6, 0, 0, 0, 0},
8147 {0xFFFF, 0, 0, 0, 0}
8150 struct radio_regs regs_TX_2056[] = {
8151 {0x02, 0, 0, 0, 0},
8152 {0x03, 0, 0, 0, 0},
8153 {0x04, 0, 0, 0, 0},
8154 {0x05, 0, 0, 0, 0},
8155 {0x06, 0, 0, 0, 0},
8156 {0x07, 0, 0, 0, 0},
8157 {0x08, 0, 0, 0, 0},
8158 {0x09, 0, 0, 0, 0},
8159 {0x0A, 0, 0, 0, 0},
8160 {0x0B, 0, 0, 0, 0},
8161 {0x0C, 0, 0, 0, 0},
8162 {0x0D, 0, 0, 0, 0},
8163 {0x0E, 0, 0, 0, 0},
8164 {0x0F, 0, 0, 0, 0},
8165 {0x10, 0, 0, 0, 0},
8166 {0x11, 0, 0, 0, 0},
8167 {0x12, 0, 0, 0, 0},
8168 {0x13, 0, 0, 0, 0},
8169 {0x14, 0, 0, 0, 0},
8170 {0x15, 0, 0, 0, 0},
8171 {0x16, 0, 0, 0, 0},
8172 {0x17, 0, 0, 0, 0},
8173 {0x18, 0, 0, 0, 0},
8174 {0x19, 0, 0, 0, 0},
8175 {0x1A, 0, 0, 0, 0},
8176 {0x1B, 0, 0, 0, 0},
8177 {0x1C, 0, 0, 0, 0},
8178 {0x1D, 0, 0, 0, 0},
8179 {0x1E, 0, 0, 0, 0},
8180 {0x1F, 0, 0, 0, 0},
8181 {0x20, 0, 0, 0, 0},
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},
8187 {0x26, 0, 0, 0, 0},
8188 {0x27, 0x3, 0x3, 0, 0},
8189 {0x28, 0, 0, 0, 0},
8190 {0x29, 0x3, 0x3, 0, 0},
8191 {0x2A, 0x37, 0x37, 0, 0},
8192 {0x2B, 0x3, 0x3, 0, 0},
8193 {0x2C, 0, 0, 0, 0},
8194 {0x2D, 0, 0, 0, 0},
8195 {0x2E, 0x1, 0x1, 0, 0},
8196 {0x2F, 0x1, 0x1, 0, 0},
8197 {0x30, 0, 0, 0, 0},
8198 {0x31, 0, 0, 0, 0},
8199 {0x32, 0, 0, 0, 0},
8200 {0x33, 0x11, 0x11, 0, 0},
8201 {0x34, 0x11, 0x11, 0, 0},
8202 {0x35, 0, 0, 0, 0},
8203 {0x36, 0, 0, 0, 0},
8204 {0x37, 0x3, 0x3, 0, 0},
8205 {0x38, 0xf, 0xf, 0, 0},
8206 {0x39, 0, 0, 0, 0},
8207 {0x3A, 0x2d, 0x2d, 0, 0},
8208 {0x3B, 0, 0, 0, 0},
8209 {0x3C, 0x6e, 0x6e, 0, 0},
8210 {0x3D, 0xf0, 0xf0, 1, 1},
8211 {0x3E, 0, 0, 0, 0},
8212 {0x3F, 0, 0, 0, 0},
8213 {0x40, 0, 0, 0, 0},
8214 {0x41, 0x3, 0x3, 0, 0},
8215 {0x42, 0x3, 0x3, 0, 0},
8216 {0x43, 0, 0, 0, 0},
8217 {0x44, 0x1e, 0x1e, 0, 0},
8218 {0x45, 0, 0, 0, 0},
8219 {0x46, 0x6e, 0x6e, 0, 0},
8220 {0x47, 0xf0, 0xf0, 1, 1},
8221 {0x48, 0, 0, 0, 0},
8222 {0x49, 0x2, 0x2, 0, 0},
8223 {0x4A, 0xff, 0xff, 1, 1},
8224 {0x4B, 0xc, 0xc, 0, 0},
8225 {0x4C, 0, 0, 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},
8231 {0x52, 0, 0, 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},
8236 {0x57, 0, 0, 0, 0},
8237 {0x58, 0x83, 0x83, 0, 0},
8238 {0x59, 0x77, 0x77, 1, 1},
8239 {0x5A, 0, 0, 0, 0},
8240 {0x5B, 0x2, 0x2, 0, 0},
8241 {0x5C, 0x88, 0x88, 0, 0},
8242 {0x5D, 0, 0, 0, 0},
8243 {0x5E, 0x8, 0x8, 0, 0},
8244 {0x5F, 0x77, 0x77, 1, 1},
8245 {0x60, 0x1, 0x1, 0, 0},
8246 {0x61, 0, 0, 0, 0},
8247 {0x62, 0x7, 0x7, 0, 0},
8248 {0x63, 0, 0, 0, 0},
8249 {0x64, 0x7, 0x7, 0, 0},
8250 {0x65, 0, 0, 0, 0},
8251 {0x66, 0, 0, 0, 0},
8252 {0x67, 0x74, 0x74, 1, 1},
8253 {0x68, 0, 0, 0, 0},
8254 {0x69, 0xa, 0xa, 0, 0},
8255 {0x6A, 0, 0, 0, 0},
8256 {0x6B, 0, 0, 0, 0},
8257 {0x6C, 0, 0, 0, 0},
8258 {0x6D, 0, 0, 0, 0},
8259 {0x6E, 0, 0, 0, 0},
8260 {0x6F, 0, 0, 0, 0},
8261 {0x70, 0, 0, 0, 0},
8262 {0x71, 0x2, 0x2, 0, 0},
8263 {0x72, 0, 0, 0, 0},
8264 {0x73, 0, 0, 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},
8274 {0x7D, 0, 0, 0, 0},
8275 {0x7E, 0, 0, 0, 0},
8276 {0x7F, 0, 0, 0, 0},
8277 {0x80, 0, 0, 0, 0},
8278 {0x81, 0, 0, 0, 0},
8279 {0x82, 0, 0, 0, 0},
8280 {0x83, 0, 0, 0, 0},
8281 {0x84, 0, 0, 0, 0},
8282 {0x85, 0, 0, 0, 0},
8283 {0x86, 0, 0, 0, 0},
8284 {0x87, 0, 0, 0, 0},
8285 {0x88, 0, 0, 0, 0},
8286 {0x89, 0, 0, 0, 0},
8287 {0x8A, 0, 0, 0, 0},
8288 {0x8B, 0, 0, 0, 0},
8289 {0x8C, 0, 0, 0, 0},
8290 {0x8D, 0, 0, 0, 0},
8291 {0x8E, 0, 0, 0, 0},
8292 {0x8F, 0, 0, 0, 0},
8293 {0x90, 0, 0, 0, 0},
8294 {0x91, 0, 0, 0, 0},
8295 {0x92, 0, 0, 0, 0},
8296 {0xFFFF, 0, 0, 0, 0}
8299 struct radio_regs regs_RX_2056[] = {
8300 {0x02, 0, 0, 0, 0},
8301 {0x03, 0, 0, 0, 0},
8302 {0x04, 0, 0, 0, 0},
8303 {0x05, 0, 0, 0, 0},
8304 {0x06, 0, 0, 0, 0},
8305 {0x07, 0, 0, 0, 0},
8306 {0x08, 0, 0, 0, 0},
8307 {0x09, 0, 0, 0, 0},
8308 {0x0A, 0, 0, 0, 0},
8309 {0x0B, 0, 0, 0, 0},
8310 {0x0C, 0, 0, 0, 0},
8311 {0x0D, 0, 0, 0, 0},
8312 {0x0E, 0, 0, 0, 0},
8313 {0x0F, 0, 0, 0, 0},
8314 {0x10, 0, 0, 0, 0},
8315 {0x11, 0, 0, 0, 0},
8316 {0x12, 0, 0, 0, 0},
8317 {0x13, 0, 0, 0, 0},
8318 {0x14, 0, 0, 0, 0},
8319 {0x15, 0, 0, 0, 0},
8320 {0x16, 0, 0, 0, 0},
8321 {0x17, 0, 0, 0, 0},
8322 {0x18, 0, 0, 0, 0},
8323 {0x19, 0, 0, 0, 0},
8324 {0x1A, 0, 0, 0, 0},
8325 {0x1B, 0, 0, 0, 0},
8326 {0x1C, 0, 0, 0, 0},
8327 {0x1D, 0, 0, 0, 0},
8328 {0x1E, 0, 0, 0, 0},
8329 {0x1F, 0, 0, 0, 0},
8330 {0x20, 0x3, 0x3, 0, 0},
8331 {0x21, 0, 0, 0, 0},
8332 {0x22, 0, 0, 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},
8342 {0x2C, 0, 0, 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},
8349 {0x33, 0, 0, 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},
8358 {0x3C, 0, 0, 0, 0},
8359 {0x3D, 0x44, 0x44, 1, 1},
8360 {0x3E, 0, 0, 0, 0},
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},
8368 {0x46, 0, 0, 0, 0},
8369 {0x47, 0x11, 0x11, 0, 0},
8370 {0x48, 0, 0, 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},
8375 {0x4D, 0, 0, 0, 0},
8376 {0x4E, 0, 0, 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},
8382 {0x54, 0, 0, 0, 0},
8383 {0x55, 0, 0, 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},
8397 {0x63, 0, 0, 0, 0},
8398 {0x64, 0, 0, 0, 0},
8399 {0x65, 0, 0, 0, 0},
8400 {0x66, 0, 0, 0, 0},
8401 {0x67, 0, 0, 0, 0},
8402 {0x68, 0, 0, 0, 0},
8403 {0x69, 0, 0, 0, 0},
8404 {0x6A, 0, 0, 0, 0},
8405 {0x6B, 0xc, 0xc, 0, 0},
8406 {0x6C, 0, 0, 0, 0},
8407 {0x6D, 0, 0, 0, 0},
8408 {0x6E, 0, 0, 0, 0},
8409 {0x6F, 0, 0, 0, 0},
8410 {0x70, 0, 0, 0, 0},
8411 {0x71, 0, 0, 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},
8419 {0x79, 0, 0, 0, 0},
8420 {0x7A, 0, 0, 0, 0},
8421 {0x7B, 0, 0, 0, 0},
8422 {0x7C, 0, 0, 0, 0},
8423 {0x7D, 0, 0, 0, 0},
8424 {0x7E, 0, 0, 0, 0},
8425 {0x7F, 0, 0, 0, 0},
8426 {0x80, 0, 0, 0, 0},
8427 {0x81, 0, 0, 0, 0},
8428 {0x82, 0, 0, 0, 0},
8429 {0x83, 0, 0, 0, 0},
8430 {0x84, 0, 0, 0, 0},
8431 {0x85, 0, 0, 0, 0},
8432 {0x86, 0, 0, 0, 0},
8433 {0x87, 0, 0, 0, 0},
8434 {0x88, 0, 0, 0, 0},
8435 {0x89, 0, 0, 0, 0},
8436 {0x8A, 0, 0, 0, 0},
8437 {0x8B, 0, 0, 0, 0},
8438 {0x8C, 0, 0, 0, 0},
8439 {0x8D, 0, 0, 0, 0},
8440 {0x8E, 0, 0, 0, 0},
8441 {0x8F, 0, 0, 0, 0},
8442 {0x90, 0, 0, 0, 0},
8443 {0x91, 0, 0, 0, 0},
8444 {0x92, 0, 0, 0, 0},
8445 {0x93, 0, 0, 0, 0},
8446 {0x94, 0, 0, 0, 0},
8447 {0xFFFF, 0, 0, 0, 0}
8450 struct radio_regs regs_SYN_2056_A1[] = {
8451 {0x02, 0, 0, 0, 0},
8452 {0x03, 0, 0, 0, 0},
8453 {0x04, 0, 0, 0, 0},
8454 {0x05, 0, 0, 0, 0},
8455 {0x06, 0, 0, 0, 0},
8456 {0x07, 0, 0, 0, 0},
8457 {0x08, 0, 0, 0, 0},
8458 {0x09, 0x1, 0x1, 0, 0},
8459 {0x0A, 0, 0, 0, 0},
8460 {0x0B, 0, 0, 0, 0},
8461 {0x0C, 0, 0, 0, 0},
8462 {0x0D, 0, 0, 0, 0},
8463 {0x0E, 0, 0, 0, 0},
8464 {0x0F, 0, 0, 0, 0},
8465 {0x10, 0, 0, 0, 0},
8466 {0x11, 0, 0, 0, 0},
8467 {0x12, 0, 0, 0, 0},
8468 {0x13, 0, 0, 0, 0},
8469 {0x14, 0, 0, 0, 0},
8470 {0x15, 0, 0, 0, 0},
8471 {0x16, 0, 0, 0, 0},
8472 {0x17, 0, 0, 0, 0},
8473 {0x18, 0, 0, 0, 0},
8474 {0x19, 0, 0, 0, 0},
8475 {0x1A, 0, 0, 0, 0},
8476 {0x1B, 0, 0, 0, 0},
8477 {0x1C, 0, 0, 0, 0},
8478 {0x1D, 0, 0, 0, 0},
8479 {0x1E, 0, 0, 0, 0},
8480 {0x1F, 0, 0, 0, 0},
8481 {0x20, 0, 0, 0, 0},
8482 {0x21, 0, 0, 0, 0},
8483 {0x22, 0x60, 0x60, 0, 0},
8484 {0x23, 0x6, 0x6, 0, 0},
8485 {0x24, 0xc, 0xc, 0, 0},
8486 {0x25, 0, 0, 0, 0},
8487 {0x26, 0, 0, 0, 0},
8488 {0x27, 0, 0, 0, 0},
8489 {0x28, 0x1, 0x1, 0, 0},
8490 {0x29, 0, 0, 0, 0},
8491 {0x2A, 0, 0, 0, 0},
8492 {0x2B, 0, 0, 0, 0},
8493 {0x2C, 0, 0, 0, 0},
8494 {0x2D, 0, 0, 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},
8499 {0x32, 0, 0, 0, 0},
8500 {0x33, 0, 0, 0, 0},
8501 {0x34, 0, 0, 0, 0},
8502 {0x35, 0, 0, 0, 0},
8503 {0x36, 0, 0, 0, 0},
8504 {0x37, 0, 0, 0, 0},
8505 {0x38, 0, 0, 0, 0},
8506 {0x39, 0, 0, 0, 0},
8507 {0x3A, 0, 0, 0, 0},
8508 {0x3B, 0, 0, 0, 0},
8509 {0x3C, 0x13, 0x13, 0, 0},
8510 {0x3D, 0xf, 0xf, 0, 0},
8511 {0x3E, 0x18, 0x18, 0, 0},
8512 {0x3F, 0, 0, 0, 0},
8513 {0x40, 0, 0, 0, 0},
8514 {0x41, 0x20, 0x20, 0, 0},
8515 {0x42, 0x20, 0x20, 0, 0},
8516 {0x43, 0, 0, 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},
8535 {0x56, 0, 0, 0, 0},
8536 {0x57, 0, 0, 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},
8543 {0x5E, 0, 0, 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},
8548 {0x63, 0, 0, 0, 0},
8549 {0x64, 0, 0, 0, 0},
8550 {0x65, 0, 0, 0, 0},
8551 {0x66, 0, 0, 0, 0},
8552 {0x67, 0, 0, 0, 0},
8553 {0x68, 0x40, 0x40, 0, 0},
8554 {0x69, 0, 0, 0, 0},
8555 {0x6A, 0, 0, 0, 0},
8556 {0x6B, 0, 0, 0, 0},
8557 {0x6C, 0, 0, 0, 0},
8558 {0x6D, 0x1, 0x1, 0, 0},
8559 {0x6E, 0, 0, 0, 0},
8560 {0x6F, 0, 0, 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},
8566 {0x75, 0, 0, 0, 0},
8567 {0x76, 0xcc, 0xcc, 0, 0},
8568 {0x77, 0x1, 0x1, 0, 0},
8569 {0x78, 0x66, 0x66, 0, 0},
8570 {0x79, 0x66, 0x66, 0, 0},
8571 {0x7A, 0, 0, 0, 0},
8572 {0x7B, 0, 0, 0, 0},
8573 {0x7C, 0, 0, 0, 0},
8574 {0x7D, 0, 0, 0, 0},
8575 {0x7E, 0, 0, 0, 0},
8576 {0x7F, 0, 0, 0, 0},
8577 {0x80, 0, 0, 0, 0},
8578 {0x81, 0, 0, 0, 0},
8579 {0x82, 0, 0, 0, 0},
8580 {0x83, 0, 0, 0, 0},
8581 {0x84, 0, 0, 0, 0},
8582 {0x85, 0xff, 0xff, 0, 0},
8583 {0x86, 0, 0, 0, 0},
8584 {0x87, 0, 0, 0, 0},
8585 {0x88, 0, 0, 0, 0},
8586 {0x89, 0, 0, 0, 0},
8587 {0x8A, 0, 0, 0, 0},
8588 {0x8B, 0, 0, 0, 0},
8589 {0x8C, 0, 0, 0, 0},
8590 {0x8D, 0, 0, 0, 0},
8591 {0x8E, 0, 0, 0, 0},
8592 {0x8F, 0, 0, 0, 0},
8593 {0x90, 0, 0, 0, 0},
8594 {0x91, 0, 0, 0, 0},
8595 {0x92, 0, 0, 0, 0},
8596 {0x93, 0, 0, 0, 0},
8597 {0x94, 0, 0, 0, 0},
8598 {0x95, 0, 0, 0, 0},
8599 {0x96, 0, 0, 0, 0},
8600 {0x97, 0, 0, 0, 0},
8601 {0x98, 0, 0, 0, 0},
8602 {0x99, 0, 0, 0, 0},
8603 {0x9A, 0, 0, 0, 0},
8604 {0x9B, 0, 0, 0, 0},
8605 {0x9C, 0, 0, 0, 0},
8606 {0x9D, 0, 0, 0, 0},
8607 {0x9E, 0, 0, 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},
8629 {0xB4, 0, 0, 0, 0},
8630 {0xB5, 0, 0, 0, 0},
8631 {0xB6, 0, 0, 0, 0},
8632 {0xFFFF, 0, 0, 0, 0}
8635 struct radio_regs regs_TX_2056_A1[] = {
8636 {0x02, 0, 0, 0, 0},
8637 {0x03, 0, 0, 0, 0},
8638 {0x04, 0, 0, 0, 0},
8639 {0x05, 0, 0, 0, 0},
8640 {0x06, 0, 0, 0, 0},
8641 {0x07, 0, 0, 0, 0},
8642 {0x08, 0, 0, 0, 0},
8643 {0x09, 0, 0, 0, 0},
8644 {0x0A, 0, 0, 0, 0},
8645 {0x0B, 0, 0, 0, 0},
8646 {0x0C, 0, 0, 0, 0},
8647 {0x0D, 0, 0, 0, 0},
8648 {0x0E, 0, 0, 0, 0},
8649 {0x0F, 0, 0, 0, 0},
8650 {0x10, 0, 0, 0, 0},
8651 {0x11, 0, 0, 0, 0},
8652 {0x12, 0, 0, 0, 0},
8653 {0x13, 0, 0, 0, 0},
8654 {0x14, 0, 0, 0, 0},
8655 {0x15, 0, 0, 0, 0},
8656 {0x16, 0, 0, 0, 0},
8657 {0x17, 0, 0, 0, 0},
8658 {0x18, 0, 0, 0, 0},
8659 {0x19, 0, 0, 0, 0},
8660 {0x1A, 0, 0, 0, 0},
8661 {0x1B, 0, 0, 0, 0},
8662 {0x1C, 0, 0, 0, 0},
8663 {0x1D, 0, 0, 0, 0},
8664 {0x1E, 0, 0, 0, 0},
8665 {0x1F, 0, 0, 0, 0},
8666 {0x20, 0, 0, 0, 0},
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},
8672 {0x26, 0, 0, 0, 0},
8673 {0x27, 0x3, 0x3, 0, 0},
8674 {0x28, 0, 0, 0, 0},
8675 {0x29, 0x3, 0x3, 0, 0},
8676 {0x2A, 0x37, 0x37, 0, 0},
8677 {0x2B, 0x3, 0x3, 0, 0},
8678 {0x2C, 0, 0, 0, 0},
8679 {0x2D, 0, 0, 0, 0},
8680 {0x2E, 0x1, 0x1, 0, 0},
8681 {0x2F, 0x1, 0x1, 0, 0},
8682 {0x30, 0, 0, 0, 0},
8683 {0x31, 0, 0, 0, 0},
8684 {0x32, 0, 0, 0, 0},
8685 {0x33, 0x11, 0x11, 0, 0},
8686 {0x34, 0x11, 0x11, 0, 0},
8687 {0x35, 0, 0, 0, 0},
8688 {0x36, 0, 0, 0, 0},
8689 {0x37, 0x3, 0x3, 0, 0},
8690 {0x38, 0xf, 0xf, 0, 0},
8691 {0x39, 0, 0, 0, 0},
8692 {0x3A, 0x2d, 0x2d, 0, 0},
8693 {0x3B, 0, 0, 0, 0},
8694 {0x3C, 0x6e, 0x6e, 0, 0},
8695 {0x3D, 0xf0, 0xf0, 1, 1},
8696 {0x3E, 0, 0, 0, 0},
8697 {0x3F, 0, 0, 0, 0},
8698 {0x40, 0, 0, 0, 0},
8699 {0x41, 0x3, 0x3, 0, 0},
8700 {0x42, 0x3, 0x3, 0, 0},
8701 {0x43, 0, 0, 0, 0},
8702 {0x44, 0x1e, 0x1e, 0, 0},
8703 {0x45, 0, 0, 0, 0},
8704 {0x46, 0x6e, 0x6e, 0, 0},
8705 {0x47, 0xf0, 0xf0, 1, 1},
8706 {0x48, 0, 0, 0, 0},
8707 {0x49, 0x2, 0x2, 0, 0},
8708 {0x4A, 0xff, 0xff, 1, 1},
8709 {0x4B, 0xc, 0xc, 0, 0},
8710 {0x4C, 0, 0, 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},
8716 {0x52, 0, 0, 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},
8721 {0x57, 0, 0, 0, 0},
8722 {0x58, 0x83, 0x83, 0, 0},
8723 {0x59, 0x77, 0x77, 1, 1},
8724 {0x5A, 0, 0, 0, 0},
8725 {0x5B, 0x2, 0x2, 0, 0},
8726 {0x5C, 0x88, 0x88, 0, 0},
8727 {0x5D, 0, 0, 0, 0},
8728 {0x5E, 0x8, 0x8, 0, 0},
8729 {0x5F, 0x77, 0x77, 1, 1},
8730 {0x60, 0x1, 0x1, 0, 0},
8731 {0x61, 0, 0, 0, 0},
8732 {0x62, 0x7, 0x7, 0, 0},
8733 {0x63, 0, 0, 0, 0},
8734 {0x64, 0x7, 0x7, 0, 0},
8735 {0x65, 0, 0, 0, 0},
8736 {0x66, 0, 0, 0, 0},
8737 {0x67, 0x72, 0x72, 1, 1},
8738 {0x68, 0, 0, 0, 0},
8739 {0x69, 0xa, 0xa, 0, 0},
8740 {0x6A, 0, 0, 0, 0},
8741 {0x6B, 0, 0, 0, 0},
8742 {0x6C, 0, 0, 0, 0},
8743 {0x6D, 0, 0, 0, 0},
8744 {0x6E, 0, 0, 0, 0},
8745 {0x6F, 0, 0, 0, 0},
8746 {0x70, 0, 0, 0, 0},
8747 {0x71, 0x2, 0x2, 0, 0},
8748 {0x72, 0, 0, 0, 0},
8749 {0x73, 0, 0, 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},
8759 {0x7D, 0, 0, 0, 0},
8760 {0x7E, 0, 0, 0, 0},
8761 {0x7F, 0, 0, 0, 0},
8762 {0x80, 0, 0, 0, 0},
8763 {0x81, 0, 0, 0, 0},
8764 {0x82, 0, 0, 0, 0},
8765 {0x83, 0, 0, 0, 0},
8766 {0x84, 0, 0, 0, 0},
8767 {0x85, 0, 0, 0, 0},
8768 {0x86, 0, 0, 0, 0},
8769 {0x87, 0, 0, 0, 0},
8770 {0x88, 0, 0, 0, 0},
8771 {0x89, 0, 0, 0, 0},
8772 {0x8A, 0, 0, 0, 0},
8773 {0x8B, 0, 0, 0, 0},
8774 {0x8C, 0, 0, 0, 0},
8775 {0x8D, 0, 0, 0, 0},
8776 {0x8E, 0, 0, 0, 0},
8777 {0x8F, 0, 0, 0, 0},
8778 {0x90, 0, 0, 0, 0},
8779 {0x91, 0, 0, 0, 0},
8780 {0x92, 0, 0, 0, 0},
8781 {0xFFFF, 0, 0, 0, 0}
8784 struct radio_regs regs_RX_2056_A1[] = {
8785 {0x02, 0, 0, 0, 0},
8786 {0x03, 0, 0, 0, 0},
8787 {0x04, 0, 0, 0, 0},
8788 {0x05, 0, 0, 0, 0},
8789 {0x06, 0, 0, 0, 0},
8790 {0x07, 0, 0, 0, 0},
8791 {0x08, 0, 0, 0, 0},
8792 {0x09, 0, 0, 0, 0},
8793 {0x0A, 0, 0, 0, 0},
8794 {0x0B, 0, 0, 0, 0},
8795 {0x0C, 0, 0, 0, 0},
8796 {0x0D, 0, 0, 0, 0},
8797 {0x0E, 0, 0, 0, 0},
8798 {0x0F, 0, 0, 0, 0},
8799 {0x10, 0, 0, 0, 0},
8800 {0x11, 0, 0, 0, 0},
8801 {0x12, 0, 0, 0, 0},
8802 {0x13, 0, 0, 0, 0},
8803 {0x14, 0, 0, 0, 0},
8804 {0x15, 0, 0, 0, 0},
8805 {0x16, 0, 0, 0, 0},
8806 {0x17, 0, 0, 0, 0},
8807 {0x18, 0, 0, 0, 0},
8808 {0x19, 0, 0, 0, 0},
8809 {0x1A, 0, 0, 0, 0},
8810 {0x1B, 0, 0, 0, 0},
8811 {0x1C, 0, 0, 0, 0},
8812 {0x1D, 0, 0, 0, 0},
8813 {0x1E, 0, 0, 0, 0},
8814 {0x1F, 0, 0, 0, 0},
8815 {0x20, 0x3, 0x3, 0, 0},
8816 {0x21, 0, 0, 0, 0},
8817 {0x22, 0, 0, 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},
8827 {0x2C, 0, 0, 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},
8834 {0x33, 0, 0, 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},
8843 {0x3C, 0, 0, 0, 0},
8844 {0x3D, 0x44, 0x44, 1, 1},
8845 {0x3E, 0, 0, 0, 0},
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},
8853 {0x46, 0, 0, 0, 0},
8854 {0x47, 0x11, 0x11, 0, 0},
8855 {0x48, 0, 0, 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},
8860 {0x4D, 0, 0, 0, 0},
8861 {0x4E, 0, 0, 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},
8867 {0x54, 0, 0, 0, 0},
8868 {0x55, 0, 0, 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},
8882 {0x63, 0, 0, 0, 0},
8883 {0x64, 0, 0, 0, 0},
8884 {0x65, 0, 0, 0, 0},
8885 {0x66, 0, 0, 0, 0},
8886 {0x67, 0, 0, 0, 0},
8887 {0x68, 0, 0, 0, 0},
8888 {0x69, 0, 0, 0, 0},
8889 {0x6A, 0, 0, 0, 0},
8890 {0x6B, 0xc, 0xc, 0, 0},
8891 {0x6C, 0, 0, 0, 0},
8892 {0x6D, 0, 0, 0, 0},
8893 {0x6E, 0, 0, 0, 0},
8894 {0x6F, 0, 0, 0, 0},
8895 {0x70, 0, 0, 0, 0},
8896 {0x71, 0, 0, 0, 0},
8897 {0x72, 0x22, 0x22, 0, 0},
8898 {0x73, 0x22, 0x22, 0, 0},
8899 {0x74, 0, 0, 1, 1},
8900 {0x75, 0xa, 0xa, 0, 0},
8901 {0x76, 0x1, 0x1, 0, 0},
8902 {0x77, 0x22, 0x22, 0, 0},
8903 {0x78, 0x30, 0x30, 0, 0},
8904 {0x79, 0, 0, 0, 0},
8905 {0x7A, 0, 0, 0, 0},
8906 {0x7B, 0, 0, 0, 0},
8907 {0x7C, 0, 0, 0, 0},
8908 {0x7D, 0, 0, 0, 0},
8909 {0x7E, 0, 0, 0, 0},
8910 {0x7F, 0, 0, 0, 0},
8911 {0x80, 0, 0, 0, 0},
8912 {0x81, 0, 0, 0, 0},
8913 {0x82, 0, 0, 0, 0},
8914 {0x83, 0, 0, 0, 0},
8915 {0x84, 0, 0, 0, 0},
8916 {0x85, 0, 0, 0, 0},
8917 {0x86, 0, 0, 0, 0},
8918 {0x87, 0, 0, 0, 0},
8919 {0x88, 0, 0, 0, 0},
8920 {0x89, 0, 0, 0, 0},
8921 {0x8A, 0, 0, 0, 0},
8922 {0x8B, 0, 0, 0, 0},
8923 {0x8C, 0, 0, 0, 0},
8924 {0x8D, 0, 0, 0, 0},
8925 {0x8E, 0, 0, 0, 0},
8926 {0x8F, 0, 0, 0, 0},
8927 {0x90, 0, 0, 0, 0},
8928 {0x91, 0, 0, 0, 0},
8929 {0x92, 0, 0, 0, 0},
8930 {0x93, 0, 0, 0, 0},
8931 {0x94, 0, 0, 0, 0},
8932 {0xFFFF, 0, 0, 0, 0}
8935 struct radio_regs regs_SYN_2056_rev5[] = {
8936 {0x02, 0, 0, 0, 0},
8937 {0x03, 0, 0, 0, 0},
8938 {0x04, 0, 0, 0, 0},
8939 {0x05, 0, 0, 0, 0},
8940 {0x06, 0, 0, 0, 0},
8941 {0x07, 0, 0, 0, 0},
8942 {0x08, 0, 0, 0, 0},
8943 {0x09, 0x1, 0x1, 0, 0},
8944 {0x0A, 0, 0, 0, 0},
8945 {0x0B, 0, 0, 0, 0},
8946 {0x0C, 0, 0, 0, 0},
8947 {0x0D, 0, 0, 0, 0},
8948 {0x0E, 0, 0, 0, 0},
8949 {0x0F, 0, 0, 0, 0},
8950 {0x10, 0, 0, 0, 0},
8951 {0x11, 0, 0, 0, 0},
8952 {0x12, 0, 0, 0, 0},
8953 {0x13, 0, 0, 0, 0},
8954 {0x14, 0, 0, 0, 0},
8955 {0x15, 0, 0, 0, 0},
8956 {0x16, 0, 0, 0, 0},
8957 {0x17, 0, 0, 0, 0},
8958 {0x18, 0, 0, 0, 0},
8959 {0x19, 0, 0, 0, 0},
8960 {0x1A, 0, 0, 0, 0},
8961 {0x1B, 0, 0, 0, 0},
8962 {0x1C, 0, 0, 0, 0},
8963 {0x1D, 0, 0, 0, 0},
8964 {0x1E, 0, 0, 0, 0},
8965 {0x1F, 0, 0, 0, 0},
8966 {0x20, 0, 0, 0, 0},
8967 {0x21, 0, 0, 0, 0},
8968 {0x22, 0x60, 0x60, 0, 0},
8969 {0x23, 0x6, 0x6, 0, 0},
8970 {0x24, 0xc, 0xc, 0, 0},
8971 {0x25, 0, 0, 0, 0},
8972 {0x26, 0, 0, 0, 0},
8973 {0x27, 0, 0, 0, 0},
8974 {0x28, 0x1, 0x1, 0, 0},
8975 {0x29, 0, 0, 0, 0},
8976 {0x2A, 0, 0, 0, 0},
8977 {0x2B, 0, 0, 0, 0},
8978 {0x2C, 0, 0, 0, 0},
8979 {0x2D, 0, 0, 0, 0},
8980 {0x2E, 0, 0, 0, 0},
8981 {0x2F, 0x1f, 0x1f, 0, 0},
8982 {0x30, 0x15, 0x15, 0, 0},
8983 {0x31, 0xf, 0xf, 0, 0},
8984 {0x32, 0, 0, 0, 0},
8985 {0x33, 0, 0, 0, 0},
8986 {0x34, 0, 0, 0, 0},
8987 {0x35, 0, 0, 0, 0},
8988 {0x36, 0, 0, 0, 0},
8989 {0x37, 0, 0, 0, 0},
8990 {0x38, 0, 0, 0, 0},
8991 {0x39, 0, 0, 0, 0},
8992 {0x3A, 0, 0, 0, 0},
8993 {0x3B, 0, 0, 0, 0},
8994 {0x3C, 0x13, 0x13, 0, 0},
8995 {0x3D, 0xf, 0xf, 0, 0},
8996 {0x3E, 0x18, 0x18, 0, 0},
8997 {0x3F, 0, 0, 0, 0},
8998 {0x40, 0, 0, 0, 0},
8999 {0x41, 0x20, 0x20, 0, 0},
9000 {0x42, 0x20, 0x20, 0, 0},
9001 {0x43, 0, 0, 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},
9020 {0x56, 0, 0, 0, 0},
9021 {0x57, 0, 0, 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},
9028 {0x5E, 0, 0, 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},
9033 {0x63, 0, 0, 0, 0},
9034 {0x64, 0, 0, 0, 0},
9035 {0x65, 0, 0, 0, 0},
9036 {0x66, 0, 0, 0, 0},
9037 {0x67, 0, 0, 0, 0},
9038 {0x68, 0x40, 0x40, 0, 0},
9039 {0x69, 0, 0, 0, 0},
9040 {0x6A, 0, 0, 0, 0},
9041 {0x6B, 0, 0, 0, 0},
9042 {0x6C, 0, 0, 0, 0},
9043 {0x6D, 0x1, 0x1, 0, 0},
9044 {0x6E, 0, 0, 0, 0},
9045 {0x6F, 0, 0, 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},
9051 {0x75, 0, 0, 0, 0},
9052 {0x76, 0xcc, 0xcc, 0, 0},
9053 {0x77, 0x1, 0x1, 0, 0},
9054 {0x78, 0x66, 0x66, 0, 0},
9055 {0x79, 0x66, 0x66, 0, 0},
9056 {0x7A, 0, 0, 0, 0},
9057 {0x7B, 0, 0, 0, 0},
9058 {0x7C, 0, 0, 0, 0},
9059 {0x7D, 0, 0, 0, 0},
9060 {0x7E, 0, 0, 0, 0},
9061 {0x7F, 0, 0, 0, 0},
9062 {0x80, 0, 0, 0, 0},
9063 {0x81, 0, 0, 0, 0},
9064 {0x82, 0, 0, 0, 0},
9065 {0x83, 0, 0, 0, 0},
9066 {0x84, 0, 0, 0, 0},
9067 {0x85, 0xff, 0xff, 0, 0},
9068 {0x86, 0, 0, 0, 0},
9069 {0x87, 0, 0, 0, 0},
9070 {0x88, 0, 0, 0, 0},
9071 {0x89, 0, 0, 0, 0},
9072 {0x8A, 0, 0, 0, 0},
9073 {0x8B, 0, 0, 0, 0},
9074 {0x8C, 0, 0, 0, 0},
9075 {0x8D, 0, 0, 0, 0},
9076 {0x8E, 0, 0, 0, 0},
9077 {0x8F, 0, 0, 0, 0},
9078 {0x90, 0, 0, 0, 0},
9079 {0x91, 0, 0, 0, 0},
9080 {0x92, 0, 0, 0, 0},
9081 {0x93, 0, 0, 0, 0},
9082 {0x94, 0, 0, 0, 0},
9083 {0x95, 0, 0, 0, 0},
9084 {0x96, 0, 0, 0, 0},
9085 {0x97, 0, 0, 0, 0},
9086 {0x98, 0, 0, 0, 0},
9087 {0x99, 0, 0, 0, 0},
9088 {0x9A, 0, 0, 0, 0},
9089 {0x9B, 0, 0, 0, 0},
9090 {0x9C, 0, 0, 0, 0},
9091 {0x9D, 0, 0, 0, 0},
9092 {0x9E, 0, 0, 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},
9114 {0xB4, 0, 0, 0, 0},
9115 {0xB5, 0, 0, 0, 0},
9116 {0xB6, 0, 0, 0, 0},
9117 {0xFFFF, 0, 0, 0, 0}
9120 struct radio_regs regs_TX_2056_rev5[] = {
9121 {0x02, 0, 0, 0, 0},
9122 {0x03, 0, 0, 0, 0},
9123 {0x04, 0, 0, 0, 0},
9124 {0x05, 0, 0, 0, 0},
9125 {0x06, 0, 0, 0, 0},
9126 {0x07, 0, 0, 0, 0},
9127 {0x08, 0, 0, 0, 0},
9128 {0x09, 0, 0, 0, 0},
9129 {0x0A, 0, 0, 0, 0},
9130 {0x0B, 0, 0, 0, 0},
9131 {0x0C, 0, 0, 0, 0},
9132 {0x0D, 0, 0, 0, 0},
9133 {0x0E, 0, 0, 0, 0},
9134 {0x0F, 0, 0, 0, 0},
9135 {0x10, 0, 0, 0, 0},
9136 {0x11, 0, 0, 0, 0},
9137 {0x12, 0, 0, 0, 0},
9138 {0x13, 0, 0, 0, 0},
9139 {0x14, 0, 0, 0, 0},
9140 {0x15, 0, 0, 0, 0},
9141 {0x16, 0, 0, 0, 0},
9142 {0x17, 0, 0, 0, 0},
9143 {0x18, 0, 0, 0, 0},
9144 {0x19, 0, 0, 0, 0},
9145 {0x1A, 0, 0, 0, 0},
9146 {0x1B, 0, 0, 0, 0},
9147 {0x1C, 0, 0, 0, 0},
9148 {0x1D, 0, 0, 0, 0},
9149 {0x1E, 0, 0, 0, 0},
9150 {0x1F, 0, 0, 0, 0},
9151 {0x20, 0, 0, 0, 0},
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},
9157 {0x26, 0, 0, 0, 0},
9158 {0x27, 0x3, 0x3, 0, 0},
9159 {0x28, 0, 0, 0, 0},
9160 {0x29, 0x3, 0x3, 0, 0},
9161 {0x2A, 0x37, 0x37, 0, 0},
9162 {0x2B, 0x3, 0x3, 0, 0},
9163 {0x2C, 0, 0, 0, 0},
9164 {0x2D, 0, 0, 0, 0},
9165 {0x2E, 0x1, 0x1, 0, 0},
9166 {0x2F, 0x1, 0x1, 0, 0},
9167 {0x30, 0, 0, 0, 0},
9168 {0x31, 0, 0, 0, 0},
9169 {0x32, 0, 0, 0, 0},
9170 {0x33, 0x11, 0x11, 0, 0},
9171 {0x34, 0x11, 0x11, 0, 0},
9172 {0x35, 0, 0, 0, 0},
9173 {0x36, 0, 0, 0, 0},
9174 {0x37, 0x3, 0x3, 0, 0},
9175 {0x38, 0xf, 0xf, 0, 0},
9176 {0x39, 0, 0, 0, 0},
9177 {0x3A, 0x2d, 0x2d, 0, 0},
9178 {0x3B, 0, 0, 0, 0},
9179 {0x3C, 0x6e, 0x6e, 0, 0},
9180 {0x3D, 0xf0, 0xf0, 1, 1},
9181 {0x3E, 0, 0, 0, 0},
9182 {0x3F, 0, 0, 0, 0},
9183 {0x40, 0, 0, 0, 0},
9184 {0x41, 0x3, 0x3, 0, 0},
9185 {0x42, 0x3, 0x3, 0, 0},
9186 {0x43, 0, 0, 0, 0},
9187 {0x44, 0x1e, 0x1e, 0, 0},
9188 {0x45, 0, 0, 0, 0},
9189 {0x46, 0x6e, 0x6e, 0, 0},
9190 {0x47, 0xf0, 0xf0, 1, 1},
9191 {0x48, 0, 0, 0, 0},
9192 {0x49, 0x2, 0x2, 0, 0},
9193 {0x4A, 0xff, 0xff, 1, 1},
9194 {0x4B, 0xc, 0xc, 0, 0},
9195 {0x4C, 0, 0, 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},
9201 {0x52, 0, 0, 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},
9206 {0x57, 0, 0, 0, 0},
9207 {0x58, 0x83, 0x83, 0, 0},
9208 {0x59, 0x77, 0x77, 1, 1},
9209 {0x5A, 0, 0, 0, 0},
9210 {0x5B, 0x2, 0x2, 0, 0},
9211 {0x5C, 0x88, 0x88, 0, 0},
9212 {0x5D, 0, 0, 0, 0},
9213 {0x5E, 0x8, 0x8, 0, 0},
9214 {0x5F, 0x77, 0x77, 1, 1},
9215 {0x60, 0x1, 0x1, 0, 0},
9216 {0x61, 0, 0, 0, 0},
9217 {0x62, 0x7, 0x7, 0, 0},
9218 {0x63, 0, 0, 0, 0},
9219 {0x64, 0x7, 0x7, 0, 0},
9220 {0x65, 0, 0, 0, 0},
9221 {0x66, 0, 0, 0, 0},
9222 {0x67, 0, 0, 1, 1},
9223 {0x68, 0, 0, 0, 0},
9224 {0x69, 0xa, 0xa, 0, 0},
9225 {0x6A, 0, 0, 0, 0},
9226 {0x6B, 0, 0, 0, 0},
9227 {0x6C, 0, 0, 0, 0},
9228 {0x6D, 0, 0, 0, 0},
9229 {0x6E, 0, 0, 0, 0},
9230 {0x6F, 0, 0, 0, 0},
9231 {0x70, 0, 0, 0, 0},
9232 {0x71, 0x2, 0x2, 0, 0},
9233 {0x72, 0, 0, 0, 0},
9234 {0x73, 0, 0, 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},
9244 {0x7D, 0, 0, 0, 0},
9245 {0x7E, 0, 0, 0, 0},
9246 {0x7F, 0, 0, 0, 0},
9247 {0x80, 0, 0, 0, 0},
9248 {0x81, 0, 0, 0, 0},
9249 {0x82, 0, 0, 0, 0},
9250 {0x83, 0, 0, 0, 0},
9251 {0x84, 0, 0, 0, 0},
9252 {0x85, 0, 0, 0, 0},
9253 {0x86, 0, 0, 0, 0},
9254 {0x87, 0, 0, 0, 0},
9255 {0x88, 0, 0, 0, 0},
9256 {0x89, 0, 0, 0, 0},
9257 {0x8A, 0, 0, 0, 0},
9258 {0x8B, 0, 0, 0, 0},
9259 {0x8C, 0, 0, 0, 0},
9260 {0x8D, 0, 0, 0, 0},
9261 {0x8E, 0, 0, 0, 0},
9262 {0x8F, 0, 0, 0, 0},
9263 {0x90, 0, 0, 0, 0},
9264 {0x91, 0, 0, 0, 0},
9265 {0x92, 0, 0, 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[] = {
9278 {0x02, 0, 0, 0, 0},
9279 {0x03, 0, 0, 0, 0},
9280 {0x04, 0, 0, 0, 0},
9281 {0x05, 0, 0, 0, 0},
9282 {0x06, 0, 0, 0, 0},
9283 {0x07, 0, 0, 0, 0},
9284 {0x08, 0, 0, 0, 0},
9285 {0x09, 0, 0, 0, 0},
9286 {0x0A, 0, 0, 0, 0},
9287 {0x0B, 0, 0, 0, 0},
9288 {0x0C, 0, 0, 0, 0},
9289 {0x0D, 0, 0, 0, 0},
9290 {0x0E, 0, 0, 0, 0},
9291 {0x0F, 0, 0, 0, 0},
9292 {0x10, 0, 0, 0, 0},
9293 {0x11, 0, 0, 0, 0},
9294 {0x12, 0, 0, 0, 0},
9295 {0x13, 0, 0, 0, 0},
9296 {0x14, 0, 0, 0, 0},
9297 {0x15, 0, 0, 0, 0},
9298 {0x16, 0, 0, 0, 0},
9299 {0x17, 0, 0, 0, 0},
9300 {0x18, 0, 0, 0, 0},
9301 {0x19, 0, 0, 0, 0},
9302 {0x1A, 0, 0, 0, 0},
9303 {0x1B, 0, 0, 0, 0},
9304 {0x1C, 0, 0, 0, 0},
9305 {0x1D, 0, 0, 0, 0},
9306 {0x1E, 0, 0, 0, 0},
9307 {0x1F, 0, 0, 0, 0},
9308 {0x20, 0x3, 0x3, 0, 0},
9309 {0x21, 0, 0, 0, 0},
9310 {0x22, 0, 0, 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},
9320 {0x2C, 0, 0, 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},
9327 {0x33, 0, 0, 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},
9336 {0x3C, 0, 0, 0, 0},
9337 {0x3D, 0x88, 0x88, 1, 1},
9338 {0x3E, 0, 0, 0, 0},
9339 {0x3F, 0, 0, 1, 1},
9340 {0x40, 0x7, 0x7, 1, 1},
9341 {0x41, 0x6, 0x6, 0, 0},
9342 {0x42, 0x4, 0x4, 0, 0},
9343 {0x43, 0, 0, 0, 0},
9344 {0x44, 0x8, 0x8, 0, 0},
9345 {0x45, 0x55, 0x55, 1, 1},
9346 {0x46, 0, 0, 0, 0},
9347 {0x47, 0x11, 0x11, 0, 0},
9348 {0x48, 0, 0, 0, 0},
9349 {0x49, 0, 0, 1, 1},
9350 {0x4A, 0x7, 0x7, 0, 0},
9351 {0x4B, 0x6, 0x6, 0, 0},
9352 {0x4C, 0x4, 0x4, 0, 0},
9353 {0x4D, 0, 0, 0, 0},
9354 {0x4E, 0, 0, 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},
9360 {0x54, 0, 0, 0, 0},
9361 {0x55, 0, 0, 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},
9375 {0x63, 0, 0, 0, 0},
9376 {0x64, 0, 0, 0, 0},
9377 {0x65, 0, 0, 0, 0},
9378 {0x66, 0, 0, 0, 0},
9379 {0x67, 0, 0, 0, 0},
9380 {0x68, 0, 0, 0, 0},
9381 {0x69, 0, 0, 0, 0},
9382 {0x6A, 0, 0, 0, 0},
9383 {0x6B, 0xc, 0xc, 0, 0},
9384 {0x6C, 0, 0, 0, 0},
9385 {0x6D, 0, 0, 0, 0},
9386 {0x6E, 0, 0, 0, 0},
9387 {0x6F, 0, 0, 0, 0},
9388 {0x70, 0, 0, 0, 0},
9389 {0x71, 0, 0, 0, 0},
9390 {0x72, 0x22, 0x22, 0, 0},
9391 {0x73, 0x22, 0x22, 0, 0},
9392 {0x74, 0, 0, 1, 1},
9393 {0x75, 0xa, 0xa, 0, 0},
9394 {0x76, 0x1, 0x1, 0, 0},
9395 {0x77, 0x22, 0x22, 0, 0},
9396 {0x78, 0x30, 0x30, 0, 0},
9397 {0x79, 0, 0, 0, 0},
9398 {0x7A, 0, 0, 0, 0},
9399 {0x7B, 0, 0, 0, 0},
9400 {0x7C, 0, 0, 0, 0},
9401 {0x7D, 0, 0, 0, 0},
9402 {0x7E, 0, 0, 0, 0},
9403 {0x7F, 0, 0, 0, 0},
9404 {0x80, 0, 0, 0, 0},
9405 {0x81, 0, 0, 0, 0},
9406 {0x82, 0, 0, 0, 0},
9407 {0x83, 0, 0, 0, 0},
9408 {0x84, 0, 0, 0, 0},
9409 {0x85, 0, 0, 0, 0},
9410 {0x86, 0, 0, 0, 0},
9411 {0x87, 0, 0, 0, 0},
9412 {0x88, 0, 0, 0, 0},
9413 {0x89, 0, 0, 0, 0},
9414 {0x8A, 0, 0, 0, 0},
9415 {0x8B, 0, 0, 0, 0},
9416 {0x8C, 0, 0, 0, 0},
9417 {0x8D, 0, 0, 0, 0},
9418 {0x8E, 0, 0, 0, 0},
9419 {0x8F, 0, 0, 0, 0},
9420 {0x90, 0, 0, 0, 0},
9421 {0x91, 0, 0, 0, 0},
9422 {0x92, 0, 0, 0, 0},
9423 {0x93, 0, 0, 0, 0},
9424 {0x94, 0, 0, 0, 0},
9425 {0xFFFF, 0, 0, 0, 0}
9428 struct radio_regs regs_SYN_2056_rev6[] = {
9429 {0x02, 0, 0, 0, 0},
9430 {0x03, 0, 0, 0, 0},
9431 {0x04, 0, 0, 0, 0},
9432 {0x05, 0, 0, 0, 0},
9433 {0x06, 0, 0, 0, 0},
9434 {0x07, 0, 0, 0, 0},
9435 {0x08, 0, 0, 0, 0},
9436 {0x09, 0x1, 0x1, 0, 0},
9437 {0x0A, 0, 0, 0, 0},
9438 {0x0B, 0, 0, 0, 0},
9439 {0x0C, 0, 0, 0, 0},
9440 {0x0D, 0, 0, 0, 0},
9441 {0x0E, 0, 0, 0, 0},
9442 {0x0F, 0, 0, 0, 0},
9443 {0x10, 0, 0, 0, 0},
9444 {0x11, 0, 0, 0, 0},
9445 {0x12, 0, 0, 0, 0},
9446 {0x13, 0, 0, 0, 0},
9447 {0x14, 0, 0, 0, 0},
9448 {0x15, 0, 0, 0, 0},
9449 {0x16, 0, 0, 0, 0},
9450 {0x17, 0, 0, 0, 0},
9451 {0x18, 0, 0, 0, 0},
9452 {0x19, 0, 0, 0, 0},
9453 {0x1A, 0, 0, 0, 0},
9454 {0x1B, 0, 0, 0, 0},
9455 {0x1C, 0, 0, 0, 0},
9456 {0x1D, 0, 0, 0, 0},
9457 {0x1E, 0, 0, 0, 0},
9458 {0x1F, 0, 0, 0, 0},
9459 {0x20, 0, 0, 0, 0},
9460 {0x21, 0, 0, 0, 0},
9461 {0x22, 0x60, 0x60, 0, 0},
9462 {0x23, 0x6, 0x6, 0, 0},
9463 {0x24, 0xc, 0xc, 0, 0},
9464 {0x25, 0, 0, 0, 0},
9465 {0x26, 0, 0, 0, 0},
9466 {0x27, 0, 0, 0, 0},
9467 {0x28, 0x1, 0x1, 0, 0},
9468 {0x29, 0, 0, 0, 0},
9469 {0x2A, 0, 0, 0, 0},
9470 {0x2B, 0, 0, 0, 0},
9471 {0x2C, 0, 0, 0, 0},
9472 {0x2D, 0, 0, 0, 0},
9473 {0x2E, 0, 0, 0, 0},
9474 {0x2F, 0x1f, 0x1f, 0, 0},
9475 {0x30, 0x15, 0x15, 0, 0},
9476 {0x31, 0xf, 0xf, 0, 0},
9477 {0x32, 0, 0, 0, 0},
9478 {0x33, 0, 0, 0, 0},
9479 {0x34, 0, 0, 0, 0},
9480 {0x35, 0, 0, 0, 0},
9481 {0x36, 0, 0, 0, 0},
9482 {0x37, 0, 0, 0, 0},
9483 {0x38, 0, 0, 0, 0},
9484 {0x39, 0, 0, 0, 0},
9485 {0x3A, 0, 0, 0, 0},
9486 {0x3B, 0, 0, 0, 0},
9487 {0x3C, 0x13, 0x13, 0, 0},
9488 {0x3D, 0xf, 0xf, 0, 0},
9489 {0x3E, 0x18, 0x18, 0, 0},
9490 {0x3F, 0, 0, 0, 0},
9491 {0x40, 0, 0, 0, 0},
9492 {0x41, 0x20, 0x20, 0, 0},
9493 {0x42, 0x20, 0x20, 0, 0},
9494 {0x43, 0, 0, 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},
9513 {0x56, 0, 0, 0, 0},
9514 {0x57, 0, 0, 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},
9521 {0x5E, 0, 0, 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},
9526 {0x63, 0, 0, 0, 0},
9527 {0x64, 0, 0, 0, 0},
9528 {0x65, 0, 0, 0, 0},
9529 {0x66, 0, 0, 0, 0},
9530 {0x67, 0, 0, 0, 0},
9531 {0x68, 0x40, 0x40, 0, 0},
9532 {0x69, 0, 0, 0, 0},
9533 {0x6A, 0, 0, 0, 0},
9534 {0x6B, 0, 0, 0, 0},
9535 {0x6C, 0, 0, 0, 0},
9536 {0x6D, 0x1, 0x1, 0, 0},
9537 {0x6E, 0, 0, 0, 0},
9538 {0x6F, 0, 0, 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},
9544 {0x75, 0, 0, 0, 0},
9545 {0x76, 0xcc, 0xcc, 0, 0},
9546 {0x77, 0x1, 0x1, 0, 0},
9547 {0x78, 0x66, 0x66, 0, 0},
9548 {0x79, 0x66, 0x66, 0, 0},
9549 {0x7A, 0, 0, 0, 0},
9550 {0x7B, 0, 0, 0, 0},
9551 {0x7C, 0, 0, 0, 0},
9552 {0x7D, 0, 0, 0, 0},
9553 {0x7E, 0, 0, 0, 0},
9554 {0x7F, 0, 0, 0, 0},
9555 {0x80, 0, 0, 0, 0},
9556 {0x81, 0, 0, 0, 0},
9557 {0x82, 0, 0, 0, 0},
9558 {0x83, 0, 0, 0, 0},
9559 {0x84, 0, 0, 0, 0},
9560 {0x85, 0xff, 0xff, 0, 0},
9561 {0x86, 0, 0, 0, 0},
9562 {0x87, 0, 0, 0, 0},
9563 {0x88, 0, 0, 0, 0},
9564 {0x89, 0, 0, 0, 0},
9565 {0x8A, 0, 0, 0, 0},
9566 {0x8B, 0, 0, 0, 0},
9567 {0x8C, 0, 0, 0, 0},
9568 {0x8D, 0, 0, 0, 0},
9569 {0x8E, 0, 0, 0, 0},
9570 {0x8F, 0, 0, 0, 0},
9571 {0x90, 0, 0, 0, 0},
9572 {0x91, 0, 0, 0, 0},
9573 {0x92, 0, 0, 0, 0},
9574 {0x93, 0, 0, 0, 0},
9575 {0x94, 0, 0, 0, 0},
9576 {0x95, 0, 0, 0, 0},
9577 {0x96, 0, 0, 0, 0},
9578 {0x97, 0, 0, 0, 0},
9579 {0x98, 0, 0, 0, 0},
9580 {0x99, 0, 0, 0, 0},
9581 {0x9A, 0, 0, 0, 0},
9582 {0x9B, 0, 0, 0, 0},
9583 {0x9C, 0, 0, 0, 0},
9584 {0x9D, 0, 0, 0, 0},
9585 {0x9E, 0, 0, 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},
9607 {0xB4, 0, 0, 0, 0},
9608 {0xB5, 0, 0, 0, 0},
9609 {0xB6, 0, 0, 0, 0},
9610 {0xFFFF, 0, 0, 0, 0}
9613 struct radio_regs regs_TX_2056_rev6[] = {
9614 {0x02, 0, 0, 0, 0},
9615 {0x03, 0, 0, 0, 0},
9616 {0x04, 0, 0, 0, 0},
9617 {0x05, 0, 0, 0, 0},
9618 {0x06, 0, 0, 0, 0},
9619 {0x07, 0, 0, 0, 0},
9620 {0x08, 0, 0, 0, 0},
9621 {0x09, 0, 0, 0, 0},
9622 {0x0A, 0, 0, 0, 0},
9623 {0x0B, 0, 0, 0, 0},
9624 {0x0C, 0, 0, 0, 0},
9625 {0x0D, 0, 0, 0, 0},
9626 {0x0E, 0, 0, 0, 0},
9627 {0x0F, 0, 0, 0, 0},
9628 {0x10, 0, 0, 0, 0},
9629 {0x11, 0, 0, 0, 0},
9630 {0x12, 0, 0, 0, 0},
9631 {0x13, 0, 0, 0, 0},
9632 {0x14, 0, 0, 0, 0},
9633 {0x15, 0, 0, 0, 0},
9634 {0x16, 0, 0, 0, 0},
9635 {0x17, 0, 0, 0, 0},
9636 {0x18, 0, 0, 0, 0},
9637 {0x19, 0, 0, 0, 0},
9638 {0x1A, 0, 0, 0, 0},
9639 {0x1B, 0, 0, 0, 0},
9640 {0x1C, 0, 0, 0, 0},
9641 {0x1D, 0, 0, 0, 0},
9642 {0x1E, 0, 0, 0, 0},
9643 {0x1F, 0, 0, 0, 0},
9644 {0x20, 0, 0, 0, 0},
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},
9650 {0x26, 0, 0, 0, 0},
9651 {0x27, 0x3, 0x3, 0, 0},
9652 {0x28, 0, 0, 0, 0},
9653 {0x29, 0x3, 0x3, 0, 0},
9654 {0x2A, 0x37, 0x37, 0, 0},
9655 {0x2B, 0x3, 0x3, 0, 0},
9656 {0x2C, 0, 0, 0, 0},
9657 {0x2D, 0, 0, 0, 0},
9658 {0x2E, 0x1, 0x1, 0, 0},
9659 {0x2F, 0x1, 0x1, 0, 0},
9660 {0x30, 0, 0, 0, 0},
9661 {0x31, 0, 0, 0, 0},
9662 {0x32, 0, 0, 0, 0},
9663 {0x33, 0x11, 0x11, 0, 0},
9664 {0x34, 0xee, 0xee, 1, 1},
9665 {0x35, 0, 0, 0, 0},
9666 {0x36, 0, 0, 0, 0},
9667 {0x37, 0x3, 0x3, 0, 0},
9668 {0x38, 0x50, 0x50, 1, 1},
9669 {0x39, 0, 0, 0, 0},
9670 {0x3A, 0x50, 0x50, 1, 1},
9671 {0x3B, 0, 0, 0, 0},
9672 {0x3C, 0x6e, 0x6e, 0, 0},
9673 {0x3D, 0xf0, 0xf0, 1, 1},
9674 {0x3E, 0, 0, 0, 0},
9675 {0x3F, 0, 0, 0, 0},
9676 {0x40, 0, 0, 0, 0},
9677 {0x41, 0x3, 0x3, 0, 0},
9678 {0x42, 0x3, 0x3, 0, 0},
9679 {0x43, 0, 0, 0, 0},
9680 {0x44, 0x1e, 0x1e, 0, 0},
9681 {0x45, 0, 0, 0, 0},
9682 {0x46, 0x6e, 0x6e, 0, 0},
9683 {0x47, 0xf0, 0xf0, 1, 1},
9684 {0x48, 0, 0, 0, 0},
9685 {0x49, 0x2, 0x2, 0, 0},
9686 {0x4A, 0xff, 0xff, 1, 1},
9687 {0x4B, 0xc, 0xc, 0, 0},
9688 {0x4C, 0, 0, 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},
9694 {0x52, 0, 0, 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},
9699 {0x57, 0, 0, 0, 0},
9700 {0x58, 0x83, 0x83, 0, 0},
9701 {0x59, 0x77, 0x77, 1, 1},
9702 {0x5A, 0, 0, 0, 0},
9703 {0x5B, 0x2, 0x2, 0, 0},
9704 {0x5C, 0x88, 0x88, 0, 0},
9705 {0x5D, 0, 0, 0, 0},
9706 {0x5E, 0x8, 0x8, 0, 0},
9707 {0x5F, 0x77, 0x77, 1, 1},
9708 {0x60, 0x1, 0x1, 0, 0},
9709 {0x61, 0, 0, 0, 0},
9710 {0x62, 0x7, 0x7, 0, 0},
9711 {0x63, 0, 0, 0, 0},
9712 {0x64, 0x7, 0x7, 0, 0},
9713 {0x65, 0, 0, 0, 0},
9714 {0x66, 0, 0, 0, 0},
9715 {0x67, 0, 0, 1, 1},
9716 {0x68, 0, 0, 0, 0},
9717 {0x69, 0xa, 0xa, 0, 0},
9718 {0x6A, 0, 0, 0, 0},
9719 {0x6B, 0, 0, 0, 0},
9720 {0x6C, 0, 0, 0, 0},
9721 {0x6D, 0, 0, 0, 0},
9722 {0x6E, 0, 0, 0, 0},
9723 {0x6F, 0, 0, 0, 0},
9724 {0x70, 0, 0, 0, 0},
9725 {0x71, 0x2, 0x2, 0, 0},
9726 {0x72, 0, 0, 0, 0},
9727 {0x73, 0, 0, 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},
9738 {0x7E, 0, 0, 0, 0},
9739 {0x7F, 0, 0, 0, 0},
9740 {0x80, 0, 0, 0, 0},
9741 {0x81, 0, 0, 0, 0},
9742 {0x82, 0, 0, 0, 0},
9743 {0x83, 0, 0, 0, 0},
9744 {0x84, 0, 0, 0, 0},
9745 {0x85, 0, 0, 0, 0},
9746 {0x86, 0, 0, 0, 0},
9747 {0x87, 0, 0, 0, 0},
9748 {0x88, 0, 0, 0, 0},
9749 {0x89, 0, 0, 0, 0},
9750 {0x8A, 0, 0, 0, 0},
9751 {0x8B, 0, 0, 0, 0},
9752 {0x8C, 0, 0, 0, 0},
9753 {0x8D, 0, 0, 0, 0},
9754 {0x8E, 0, 0, 0, 0},
9755 {0x8F, 0, 0, 0, 0},
9756 {0x90, 0, 0, 0, 0},
9757 {0x91, 0, 0, 0, 0},
9758 {0x92, 0, 0, 0, 0},
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[] = {
9771 {0x02, 0, 0, 0, 0},
9772 {0x03, 0, 0, 0, 0},
9773 {0x04, 0, 0, 0, 0},
9774 {0x05, 0, 0, 0, 0},
9775 {0x06, 0, 0, 0, 0},
9776 {0x07, 0, 0, 0, 0},
9777 {0x08, 0, 0, 0, 0},
9778 {0x09, 0, 0, 0, 0},
9779 {0x0A, 0, 0, 0, 0},
9780 {0x0B, 0, 0, 0, 0},
9781 {0x0C, 0, 0, 0, 0},
9782 {0x0D, 0, 0, 0, 0},
9783 {0x0E, 0, 0, 0, 0},
9784 {0x0F, 0, 0, 0, 0},
9785 {0x10, 0, 0, 0, 0},
9786 {0x11, 0, 0, 0, 0},
9787 {0x12, 0, 0, 0, 0},
9788 {0x13, 0, 0, 0, 0},
9789 {0x14, 0, 0, 0, 0},
9790 {0x15, 0, 0, 0, 0},
9791 {0x16, 0, 0, 0, 0},
9792 {0x17, 0, 0, 0, 0},
9793 {0x18, 0, 0, 0, 0},
9794 {0x19, 0, 0, 0, 0},
9795 {0x1A, 0, 0, 0, 0},
9796 {0x1B, 0, 0, 0, 0},
9797 {0x1C, 0, 0, 0, 0},
9798 {0x1D, 0, 0, 0, 0},
9799 {0x1E, 0, 0, 0, 0},
9800 {0x1F, 0, 0, 0, 0},
9801 {0x20, 0x3, 0x3, 0, 0},
9802 {0x21, 0, 0, 0, 0},
9803 {0x22, 0, 0, 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},
9813 {0x2C, 0, 0, 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},
9820 {0x33, 0, 0, 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},
9829 {0x3C, 0, 0, 0, 0},
9830 {0x3D, 0x88, 0x88, 1, 1},
9831 {0x3E, 0, 0, 0, 0},
9832 {0x3F, 0x44, 0x44, 0, 0},
9833 {0x40, 0x7, 0x7, 1, 1},
9834 {0x41, 0x6, 0x6, 0, 0},
9835 {0x42, 0x4, 0x4, 0, 0},
9836 {0x43, 0, 0, 0, 0},
9837 {0x44, 0x8, 0x8, 0, 0},
9838 {0x45, 0x55, 0x55, 1, 1},
9839 {0x46, 0, 0, 0, 0},
9840 {0x47, 0x11, 0x11, 0, 0},
9841 {0x48, 0, 0, 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},
9846 {0x4D, 0, 0, 0, 0},
9847 {0x4E, 0, 0, 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},
9853 {0x54, 0, 0, 0, 0},
9854 {0x55, 0, 0, 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},
9868 {0x63, 0, 0, 0, 0},
9869 {0x64, 0, 0, 0, 0},
9870 {0x65, 0, 0, 0, 0},
9871 {0x66, 0, 0, 0, 0},
9872 {0x67, 0, 0, 0, 0},
9873 {0x68, 0, 0, 0, 0},
9874 {0x69, 0, 0, 0, 0},
9875 {0x6A, 0, 0, 0, 0},
9876 {0x6B, 0xc, 0xc, 0, 0},
9877 {0x6C, 0, 0, 0, 0},
9878 {0x6D, 0, 0, 0, 0},
9879 {0x6E, 0, 0, 0, 0},
9880 {0x6F, 0, 0, 0, 0},
9881 {0x70, 0, 0, 0, 0},
9882 {0x71, 0, 0, 0, 0},
9883 {0x72, 0x22, 0x22, 0, 0},
9884 {0x73, 0x22, 0x22, 0, 0},
9885 {0x74, 0, 0, 1, 1},
9886 {0x75, 0xa, 0xa, 0, 0},
9887 {0x76, 0x1, 0x1, 0, 0},
9888 {0x77, 0x22, 0x22, 0, 0},
9889 {0x78, 0x30, 0x30, 0, 0},
9890 {0x79, 0, 0, 0, 0},
9891 {0x7A, 0, 0, 0, 0},
9892 {0x7B, 0, 0, 0, 0},
9893 {0x7C, 0, 0, 0, 0},
9894 {0x7D, 0x5, 0x5, 1, 1},
9895 {0x7E, 0, 0, 0, 0},
9896 {0x7F, 0, 0, 0, 0},
9897 {0x80, 0, 0, 0, 0},
9898 {0x81, 0, 0, 0, 0},
9899 {0x82, 0, 0, 0, 0},
9900 {0x83, 0, 0, 0, 0},
9901 {0x84, 0, 0, 0, 0},
9902 {0x85, 0, 0, 0, 0},
9903 {0x86, 0, 0, 0, 0},
9904 {0x87, 0, 0, 0, 0},
9905 {0x88, 0, 0, 0, 0},
9906 {0x89, 0, 0, 0, 0},
9907 {0x8A, 0, 0, 0, 0},
9908 {0x8B, 0, 0, 0, 0},
9909 {0x8C, 0, 0, 0, 0},
9910 {0x8D, 0, 0, 0, 0},
9911 {0x8E, 0, 0, 0, 0},
9912 {0x8F, 0, 0, 0, 0},
9913 {0x90, 0, 0, 0, 0},
9914 {0x91, 0, 0, 0, 0},
9915 {0x92, 0, 0, 0, 0},
9916 {0x93, 0, 0, 0, 0},
9917 {0x94, 0, 0, 0, 0},
9918 {0xFFFF, 0, 0, 0, 0}
9921 struct radio_regs regs_SYN_2056_rev7[] = {
9922 {0x02, 0, 0, 0, 0},
9923 {0x03, 0, 0, 0, 0},
9924 {0x04, 0, 0, 0, 0},
9925 {0x05, 0, 0, 0, 0},
9926 {0x06, 0, 0, 0, 0},
9927 {0x07, 0, 0, 0, 0},
9928 {0x08, 0, 0, 0, 0},
9929 {0x09, 0x1, 0x1, 0, 0},
9930 {0x0A, 0, 0, 0, 0},
9931 {0x0B, 0, 0, 0, 0},
9932 {0x0C, 0, 0, 0, 0},
9933 {0x0D, 0, 0, 0, 0},
9934 {0x0E, 0, 0, 0, 0},
9935 {0x0F, 0, 0, 0, 0},
9936 {0x10, 0, 0, 0, 0},
9937 {0x11, 0, 0, 0, 0},
9938 {0x12, 0, 0, 0, 0},
9939 {0x13, 0, 0, 0, 0},
9940 {0x14, 0, 0, 0, 0},
9941 {0x15, 0, 0, 0, 0},
9942 {0x16, 0, 0, 0, 0},
9943 {0x17, 0, 0, 0, 0},
9944 {0x18, 0, 0, 0, 0},
9945 {0x19, 0, 0, 0, 0},
9946 {0x1A, 0, 0, 0, 0},
9947 {0x1B, 0, 0, 0, 0},
9948 {0x1C, 0, 0, 0, 0},
9949 {0x1D, 0, 0, 0, 0},
9950 {0x1E, 0, 0, 0, 0},
9951 {0x1F, 0, 0, 0, 0},
9952 {0x20, 0, 0, 0, 0},
9953 {0x21, 0, 0, 0, 0},
9954 {0x22, 0x60, 0x60, 0, 0},
9955 {0x23, 0x6, 0x6, 0, 0},
9956 {0x24, 0xc, 0xc, 0, 0},
9957 {0x25, 0, 0, 0, 0},
9958 {0x26, 0, 0, 0, 0},
9959 {0x27, 0, 0, 0, 0},
9960 {0x28, 0x1, 0x1, 0, 0},
9961 {0x29, 0, 0, 0, 0},
9962 {0x2A, 0, 0, 0, 0},
9963 {0x2B, 0, 0, 0, 0},
9964 {0x2C, 0, 0, 0, 0},
9965 {0x2D, 0, 0, 0, 0},
9966 {0x2E, 0, 0, 0, 0},
9967 {0x2F, 0x1f, 0x1f, 0, 0},
9968 {0x30, 0x15, 0x15, 0, 0},
9969 {0x31, 0xf, 0xf, 0, 0},
9970 {0x32, 0, 0, 0, 0},
9971 {0x33, 0, 0, 0, 0},
9972 {0x34, 0, 0, 0, 0},
9973 {0x35, 0, 0, 0, 0},
9974 {0x36, 0, 0, 0, 0},
9975 {0x37, 0, 0, 0, 0},
9976 {0x38, 0, 0, 0, 0},
9977 {0x39, 0, 0, 0, 0},
9978 {0x3A, 0, 0, 0, 0},
9979 {0x3B, 0, 0, 0, 0},
9980 {0x3C, 0x13, 0x13, 0, 0},
9981 {0x3D, 0xf, 0xf, 0, 0},
9982 {0x3E, 0x18, 0x18, 0, 0},
9983 {0x3F, 0, 0, 0, 0},
9984 {0x40, 0, 0, 0, 0},
9985 {0x41, 0x20, 0x20, 0, 0},
9986 {0x42, 0x20, 0x20, 0, 0},
9987 {0x43, 0, 0, 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[] = {
11401 {0x00, 0x84, 0},
11402 {0x01, 0, 0},
11403 {0x02, 0x60, 0},
11404 {0x03, 0x1f, 0},
11405 {0x04, 0x4, 0},
11406 {0x05, 0x2, 0},
11407 {0x06, 0x1, 0},
11408 {0x07, 0x1, 0},
11409 {0x08, 0x1, 0},
11410 {0x09, 0x69, 0},
11411 {0x0A, 0x66, 0},
11412 {0x0B, 0x6, 0},
11413 {0x0C, 0x18, 0},
11414 {0x0D, 0x3, 0},
11415 {0x0E, 0x20, 1},
11416 {0x0F, 0x20, 0},
11417 {0x10, 0, 0},
11418 {0x11, 0x7c, 0},
11419 {0x12, 0x42, 0},
11420 {0x13, 0xbd, 0},
11421 {0x14, 0x7, 0},
11422 {0x15, 0xf7, 0},
11423 {0x16, 0x8, 0},
11424 {0x17, 0x17, 0},
11425 {0x18, 0x7, 0},
11426 {0x19, 0, 0},
11427 {0x1A, 0x2, 0},
11428 {0x1B, 0x13, 0},
11429 {0x1C, 0x3e, 0},
11430 {0x1D, 0x3e, 0},
11431 {0x1E, 0x96, 0},
11432 {0x1F, 0x4, 0},
11433 {0x20, 0, 0},
11434 {0x21, 0, 0},
11435 {0x22, 0x17, 0},
11436 {0x23, 0x4, 0},
11437 {0x24, 0x1, 0},
11438 {0x25, 0x6, 0},
11439 {0x26, 0x4, 0},
11440 {0x27, 0xd, 0},
11441 {0x28, 0xd, 0},
11442 {0x29, 0x30, 0},
11443 {0x2A, 0x32, 0},
11444 {0x2B, 0x8, 0},
11445 {0x2C, 0x1c, 0},
11446 {0x2D, 0x2, 0},
11447 {0x2E, 0x4, 0},
11448 {0x2F, 0x7f, 0},
11449 {0x30, 0x27, 0},
11450 {0x31, 0, 1},
11451 {0x32, 0, 1},
11452 {0x33, 0, 1},
11453 {0x34, 0, 0},
11454 {0x35, 0x26, 1},
11455 {0x36, 0x18, 0},
11456 {0x37, 0x7, 0},
11457 {0x38, 0x66, 0},
11458 {0x39, 0x66, 0},
11459 {0x3A, 0x66, 0},
11460 {0x3B, 0x66, 0},
11461 {0x3C, 0xff, 1},
11462 {0x3D, 0xff, 1},
11463 {0x3E, 0xff, 1},
11464 {0x3F, 0xff, 1},
11465 {0x40, 0x16, 0},
11466 {0x41, 0x7, 0},
11467 {0x42, 0x19, 0},
11468 {0x43, 0x7, 0},
11469 {0x44, 0x6, 0},
11470 {0x45, 0x3, 0},
11471 {0x46, 0x1, 0},
11472 {0x47, 0x7, 0},
11473 {0x48, 0x33, 0},
11474 {0x49, 0x5, 0},
11475 {0x4A, 0x77, 0},
11476 {0x4B, 0x66, 0},
11477 {0x4C, 0x66, 0},
11478 {0x4D, 0, 0},
11479 {0x4E, 0x4, 0},
11480 {0x4F, 0xc, 0},
11481 {0x50, 0, 0},
11482 {0x51, 0x75, 0},
11483 {0x56, 0x7, 0},
11484 {0x57, 0, 0},
11485 {0x58, 0, 0},
11486 {0x59, 0xa8, 0},
11487 {0x5A, 0, 0},
11488 {0x5B, 0x1f, 0},
11489 {0x5C, 0x30, 0},
11490 {0x5D, 0x1, 0},
11491 {0x5E, 0x30, 0},
11492 {0x5F, 0x70, 0},
11493 {0x60, 0, 0},
11494 {0x61, 0, 0},
11495 {0x62, 0x33, 1},
11496 {0x63, 0x19, 0},
11497 {0x64, 0x62, 0},
11498 {0x65, 0, 0},
11499 {0x66, 0x11, 0},
11500 {0x69, 0, 0},
11501 {0x6A, 0x7e, 0},
11502 {0x6B, 0x3f, 0},
11503 {0x6C, 0x7f, 0},
11504 {0x6D, 0x78, 0},
11505 {0x6E, 0xc8, 0},
11506 {0x6F, 0x88, 0},
11507 {0x70, 0x8, 0},
11508 {0x71, 0xf, 0},
11509 {0x72, 0xbc, 0},
11510 {0x73, 0x8, 0},
11511 {0x74, 0x60, 0},
11512 {0x75, 0x1e, 0},
11513 {0x76, 0x70, 0},
11514 {0x77, 0, 0},
11515 {0x78, 0, 0},
11516 {0x79, 0, 0},
11517 {0x7A, 0x33, 0},
11518 {0x7B, 0x1e, 0},
11519 {0x7C, 0x62, 0},
11520 {0x7D, 0x11, 0},
11521 {0x80, 0x3c, 0},
11522 {0x81, 0x9c, 0},
11523 {0x82, 0xa, 0},
11524 {0x83, 0x9d, 0},
11525 {0x84, 0xa, 0},
11526 {0x85, 0, 0},
11527 {0x86, 0x40, 0},
11528 {0x87, 0x40, 0},
11529 {0x88, 0x88, 0},
11530 {0x89, 0x10, 0},
11531 {0x8A, 0xf0, 1},
11532 {0x8B, 0x10, 1},
11533 {0x8C, 0xf0, 1},
11534 {0x8D, 0, 0},
11535 {0x8E, 0, 0},
11536 {0x8F, 0x10, 0},
11537 {0x90, 0x55, 0},
11538 {0x91, 0x3f, 1},
11539 {0x92, 0x36, 1},
11540 {0x93, 0, 0},
11541 {0x94, 0, 0},
11542 {0x95, 0, 0},
11543 {0x96, 0x87, 0},
11544 {0x97, 0x11, 0},
11545 {0x98, 0, 0},
11546 {0x99, 0x33, 0},
11547 {0x9A, 0x88, 0},
11548 {0x9B, 0, 0},
11549 {0x9C, 0x87, 0},
11550 {0x9D, 0x11, 0},
11551 {0x9E, 0, 0},
11552 {0x9F, 0x33, 0},
11553 {0xA0, 0x88, 0},
11554 {0xA1, 0xe1, 0},
11555 {0xA2, 0x3f, 0},
11556 {0xA3, 0x44, 0},
11557 {0xA4, 0x8c, 1},
11558 {0xA5, 0x6d, 0},
11559 {0xA6, 0x22, 0},
11560 {0xA7, 0xbe, 0},
11561 {0xA8, 0x55, 1},
11562 {0xA9, 0xc, 0},
11563 {0xAA, 0xc, 0},
11564 {0xAB, 0xaa, 0},
11565 {0xAC, 0x2, 0},
11566 {0xAD, 0, 0},
11567 {0xAE, 0x10, 0},
11568 {0xAF, 0x1, 1},
11569 {0xB0, 0, 0},
11570 {0xB1, 0, 0},
11571 {0xB2, 0x80, 0},
11572 {0xB3, 0x60, 0},
11573 {0xB4, 0x44, 0},
11574 {0xB5, 0x55, 0},
11575 {0xB6, 0x1, 0},
11576 {0xB7, 0x55, 0},
11577 {0xB8, 0x1, 0},
11578 {0xB9, 0x5, 0},
11579 {0xBA, 0x55, 0},
11580 {0xBB, 0x55, 0},
11581 {0xC1, 0, 0},
11582 {0xC2, 0, 0},
11583 {0xC3, 0, 0},
11584 {0xC4, 0, 0},
11585 {0xC5, 0, 0},
11586 {0xC6, 0, 0},
11587 {0xC7, 0, 0},
11588 {0xC8, 0, 0},
11589 {0xC9, 0, 0},
11590 {0xCA, 0, 0},
11591 {0xCB, 0, 0},
11592 {0xCC, 0, 0},
11593 {0xCD, 0, 0},
11594 {0xCE, 0x5e, 0},
11595 {0xCF, 0xc, 0},
11596 {0xD0, 0xc, 0},
11597 {0xD1, 0xc, 0},
11598 {0xD2, 0, 0},
11599 {0xD3, 0x2b, 0},
11600 {0xD4, 0xc, 0},
11601 {0xD5, 0, 0},
11602 {0xD6, 0x75, 0},
11603 {0xDB, 0x7, 0},
11604 {0xDC, 0, 0},
11605 {0xDD, 0, 0},
11606 {0xDE, 0xa8, 0},
11607 {0xDF, 0, 0},
11608 {0xE0, 0x1f, 0},
11609 {0xE1, 0x30, 0},
11610 {0xE2, 0x1, 0},
11611 {0xE3, 0x30, 0},
11612 {0xE4, 0x70, 0},
11613 {0xE5, 0, 0},
11614 {0xE6, 0, 0},
11615 {0xE7, 0x33, 0},
11616 {0xE8, 0x19, 0},
11617 {0xE9, 0x62, 0},
11618 {0xEA, 0, 0},
11619 {0xEB, 0x11, 0},
11620 {0xEE, 0, 0},
11621 {0xEF, 0x7e, 0},
11622 {0xF0, 0x3f, 0},
11623 {0xF1, 0x7f, 0},
11624 {0xF2, 0x78, 0},
11625 {0xF3, 0xc8, 0},
11626 {0xF4, 0x88, 0},
11627 {0xF5, 0x8, 0},
11628 {0xF6, 0xf, 0},
11629 {0xF7, 0xbc, 0},
11630 {0xF8, 0x8, 0},
11631 {0xF9, 0x60, 0},
11632 {0xFA, 0x1e, 0},
11633 {0xFB, 0x70, 0},
11634 {0xFC, 0, 0},
11635 {0xFD, 0, 0},
11636 {0xFE, 0, 0},
11637 {0xFF, 0x33, 0},
11638 {0x100, 0x1e, 0},
11639 {0x101, 0x62, 0},
11640 {0x102, 0x11, 0},
11641 {0x105, 0x3c, 0},
11642 {0x106, 0x9c, 0},
11643 {0x107, 0xa, 0},
11644 {0x108, 0x9d, 0},
11645 {0x109, 0xa, 0},
11646 {0x10A, 0, 0},
11647 {0x10B, 0x40, 0},
11648 {0x10C, 0x40, 0},
11649 {0x10D, 0x88, 0},
11650 {0x10E, 0x10, 0},
11651 {0x10F, 0xf0, 1},
11652 {0x110, 0x10, 1},
11653 {0x111, 0xf0, 1},
11654 {0x112, 0, 0},
11655 {0x113, 0, 0},
11656 {0x114, 0x10, 0},
11657 {0x115, 0x55, 0},
11658 {0x116, 0x3f, 1},
11659 {0x117, 0x36, 1},
11660 {0x118, 0, 0},
11661 {0x119, 0, 0},
11662 {0x11A, 0, 0},
11663 {0x11B, 0x87, 0},
11664 {0x11C, 0x11, 0},
11665 {0x11D, 0, 0},
11666 {0x11E, 0x33, 0},
11667 {0x11F, 0x88, 0},
11668 {0x120, 0, 0},
11669 {0x121, 0x87, 0},
11670 {0x122, 0x11, 0},
11671 {0x123, 0, 0},
11672 {0x124, 0x33, 0},
11673 {0x125, 0x88, 0},
11674 {0x126, 0xe1, 0},
11675 {0x127, 0x3f, 0},
11676 {0x128, 0x44, 0},
11677 {0x129, 0x8c, 1},
11678 {0x12A, 0x6d, 0},
11679 {0x12B, 0x22, 0},
11680 {0x12C, 0xbe, 0},
11681 {0x12D, 0x55, 1},
11682 {0x12E, 0xc, 0},
11683 {0x12F, 0xc, 0},
11684 {0x130, 0xaa, 0},
11685 {0x131, 0x2, 0},
11686 {0x132, 0, 0},
11687 {0x133, 0x10, 0},
11688 {0x134, 0x1, 1},
11689 {0x135, 0, 0},
11690 {0x136, 0, 0},
11691 {0x137, 0x80, 0},
11692 {0x138, 0x60, 0},
11693 {0x139, 0x44, 0},
11694 {0x13A, 0x55, 0},
11695 {0x13B, 0x1, 0},
11696 {0x13C, 0x55, 0},
11697 {0x13D, 0x1, 0},
11698 {0x13E, 0x5, 0},
11699 {0x13F, 0x55, 0},
11700 {0x140, 0x55, 0},
11701 {0x146, 0, 0},
11702 {0x147, 0, 0},
11703 {0x148, 0, 0},
11704 {0x149, 0, 0},
11705 {0x14A, 0, 0},
11706 {0x14B, 0, 0},
11707 {0x14C, 0, 0},
11708 {0x14D, 0, 0},
11709 {0x14E, 0, 0},
11710 {0x14F, 0, 0},
11711 {0x150, 0, 0},
11712 {0x151, 0, 0},
11713 {0x152, 0, 0},
11714 {0x153, 0, 0},
11715 {0x154, 0xc, 0},
11716 {0x155, 0xc, 0},
11717 {0x156, 0xc, 0},
11718 {0x157, 0, 0},
11719 {0x158, 0x2b, 0},
11720 {0x159, 0x84, 0},
11721 {0x15A, 0x15, 0},
11722 {0x15B, 0xf, 0},
11723 {0x15C, 0, 0},
11724 {0x15D, 0, 0},
11725 {0x15E, 0, 1},
11726 {0x15F, 0, 1},
11727 {0x160, 0, 1},
11728 {0x161, 0, 1},
11729 {0x162, 0, 1},
11730 {0x163, 0, 1},
11731 {0x164, 0, 0},
11732 {0x165, 0, 0},
11733 {0x166, 0, 0},
11734 {0x167, 0, 0},
11735 {0x168, 0, 0},
11736 {0x169, 0x2, 1},
11737 {0x16A, 0, 1},
11738 {0x16B, 0, 1},
11739 {0x16C, 0, 1},
11740 {0x16D, 0, 0},
11741 {0x170, 0, 0},
11742 {0x171, 0x77, 0},
11743 {0x172, 0x77, 0},
11744 {0x173, 0x77, 0},
11745 {0x174, 0x77, 0},
11746 {0x175, 0, 0},
11747 {0x176, 0x3, 0},
11748 {0x177, 0x37, 0},
11749 {0x178, 0x3, 0},
11750 {0x179, 0, 0},
11751 {0x17A, 0x21, 0},
11752 {0x17B, 0x21, 0},
11753 {0x17C, 0, 0},
11754 {0x17D, 0xaa, 0},
11755 {0x17E, 0, 0},
11756 {0x17F, 0xaa, 0},
11757 {0x180, 0, 0},
11758 {0x190, 0, 0},
11759 {0x191, 0x77, 0},
11760 {0x192, 0x77, 0},
11761 {0x193, 0x77, 0},
11762 {0x194, 0x77, 0},
11763 {0x195, 0, 0},
11764 {0x196, 0x3, 0},
11765 {0x197, 0x37, 0},
11766 {0x198, 0x3, 0},
11767 {0x199, 0, 0},
11768 {0x19A, 0x21, 0},
11769 {0x19B, 0x21, 0},
11770 {0x19C, 0, 0},
11771 {0x19D, 0xaa, 0},
11772 {0x19E, 0, 0},
11773 {0x19F, 0xaa, 0},
11774 {0x1A0, 0, 0},
11775 {0x1A1, 0x2, 0},
11776 {0x1A2, 0xf, 0},
11777 {0x1A3, 0xf, 0},
11778 {0x1A4, 0, 1},
11779 {0x1A5, 0, 1},
11780 {0x1A6, 0, 1},
11781 {0x1A7, 0x2, 0},
11782 {0x1A8, 0xf, 0},
11783 {0x1A9, 0xf, 0},
11784 {0x1AA, 0, 1},
11785 {0x1AB, 0, 1},
11786 {0x1AC, 0, 1},
11787 {0xFFFF, 0, 0},
11790 struct radio_20xx_regs regs_2057_rev5[] = {
11791 {0x00, 0, 1},
11792 {0x01, 0x57, 1},
11793 {0x02, 0x20, 1},
11794 {0x03, 0x1f, 0},
11795 {0x04, 0x4, 0},
11796 {0x05, 0x2, 0},
11797 {0x06, 0x1, 0},
11798 {0x07, 0x1, 0},
11799 {0x08, 0x1, 0},
11800 {0x09, 0x69, 0},
11801 {0x0A, 0x66, 0},
11802 {0x0B, 0x6, 0},
11803 {0x0C, 0x18, 0},
11804 {0x0D, 0x3, 0},
11805 {0x0E, 0x20, 0},
11806 {0x0F, 0x20, 0},
11807 {0x10, 0, 0},
11808 {0x11, 0x7c, 0},
11809 {0x12, 0x42, 0},
11810 {0x13, 0xbd, 0},
11811 {0x14, 0x7, 0},
11812 {0x15, 0x87, 0},
11813 {0x16, 0x8, 0},
11814 {0x17, 0x17, 0},
11815 {0x18, 0x7, 0},
11816 {0x19, 0, 0},
11817 {0x1A, 0x2, 0},
11818 {0x1B, 0x13, 0},
11819 {0x1C, 0x3e, 0},
11820 {0x1D, 0x3e, 0},
11821 {0x1E, 0x96, 0},
11822 {0x1F, 0x4, 0},
11823 {0x20, 0, 0},
11824 {0x21, 0, 0},
11825 {0x22, 0x17, 0},
11826 {0x23, 0x6, 1},
11827 {0x24, 0x1, 0},
11828 {0x25, 0x6, 0},
11829 {0x26, 0x4, 0},
11830 {0x27, 0xd, 0},
11831 {0x28, 0xd, 0},
11832 {0x29, 0x30, 0},
11833 {0x2A, 0x32, 0},
11834 {0x2B, 0x8, 0},
11835 {0x2C, 0x1c, 0},
11836 {0x2D, 0x2, 0},
11837 {0x2E, 0x4, 0},
11838 {0x2F, 0x7f, 0},
11839 {0x30, 0x27, 0},
11840 {0x31, 0, 1},
11841 {0x32, 0, 1},
11842 {0x33, 0, 1},
11843 {0x34, 0, 0},
11844 {0x35, 0x20, 0},
11845 {0x36, 0x18, 0},
11846 {0x37, 0x7, 0},
11847 {0x38, 0x66, 0},
11848 {0x39, 0x66, 0},
11849 {0x3C, 0xff, 0},
11850 {0x3D, 0xff, 0},
11851 {0x40, 0x16, 0},
11852 {0x41, 0x7, 0},
11853 {0x45, 0x3, 0},
11854 {0x46, 0x1, 0},
11855 {0x47, 0x7, 0},
11856 {0x4B, 0x66, 0},
11857 {0x4C, 0x66, 0},
11858 {0x4D, 0, 0},
11859 {0x4E, 0x4, 0},
11860 {0x4F, 0xc, 0},
11861 {0x50, 0, 0},
11862 {0x51, 0x70, 1},
11863 {0x56, 0x7, 0},
11864 {0x57, 0, 0},
11865 {0x58, 0, 0},
11866 {0x59, 0x88, 1},
11867 {0x5A, 0, 0},
11868 {0x5B, 0x1f, 0},
11869 {0x5C, 0x20, 1},
11870 {0x5D, 0x1, 0},
11871 {0x5E, 0x30, 0},
11872 {0x5F, 0x70, 0},
11873 {0x60, 0, 0},
11874 {0x61, 0, 0},
11875 {0x62, 0x33, 1},
11876 {0x63, 0xf, 1},
11877 {0x64, 0xf, 1},
11878 {0x65, 0, 0},
11879 {0x66, 0x11, 0},
11880 {0x80, 0x3c, 0},
11881 {0x81, 0x1, 1},
11882 {0x82, 0xa, 0},
11883 {0x85, 0, 0},
11884 {0x86, 0x40, 0},
11885 {0x87, 0x40, 0},
11886 {0x88, 0x88, 0},
11887 {0x89, 0x10, 0},
11888 {0x8A, 0xf0, 0},
11889 {0x8B, 0x10, 0},
11890 {0x8C, 0xf0, 0},
11891 {0x8F, 0x10, 0},
11892 {0x90, 0x55, 0},
11893 {0x91, 0x3f, 1},
11894 {0x92, 0x36, 1},
11895 {0x93, 0, 0},
11896 {0x94, 0, 0},
11897 {0x95, 0, 0},
11898 {0x96, 0x87, 0},
11899 {0x97, 0x11, 0},
11900 {0x98, 0, 0},
11901 {0x99, 0x33, 0},
11902 {0x9A, 0x88, 0},
11903 {0xA1, 0x20, 1},
11904 {0xA2, 0x3f, 0},
11905 {0xA3, 0x44, 0},
11906 {0xA4, 0x8c, 0},
11907 {0xA5, 0x6c, 0},
11908 {0xA6, 0x22, 0},
11909 {0xA7, 0xbe, 0},
11910 {0xA8, 0x55, 0},
11911 {0xAA, 0xc, 0},
11912 {0xAB, 0xaa, 0},
11913 {0xAC, 0x2, 0},
11914 {0xAD, 0, 0},
11915 {0xAE, 0x10, 0},
11916 {0xAF, 0x1, 0},
11917 {0xB0, 0, 0},
11918 {0xB1, 0, 0},
11919 {0xB2, 0x80, 0},
11920 {0xB3, 0x60, 0},
11921 {0xB4, 0x44, 0},
11922 {0xB5, 0x55, 0},
11923 {0xB6, 0x1, 0},
11924 {0xB7, 0x55, 0},
11925 {0xB8, 0x1, 0},
11926 {0xB9, 0x5, 0},
11927 {0xBA, 0x55, 0},
11928 {0xBB, 0x55, 0},
11929 {0xC3, 0, 0},
11930 {0xC4, 0, 0},
11931 {0xC5, 0, 0},
11932 {0xC6, 0, 0},
11933 {0xC7, 0, 0},
11934 {0xC8, 0, 0},
11935 {0xC9, 0, 0},
11936 {0xCA, 0, 0},
11937 {0xCB, 0, 0},
11938 {0xCD, 0, 0},
11939 {0xCE, 0x5e, 0},
11940 {0xCF, 0xc, 0},
11941 {0xD0, 0xc, 0},
11942 {0xD1, 0xc, 0},
11943 {0xD2, 0, 0},
11944 {0xD3, 0x2b, 0},
11945 {0xD4, 0xc, 0},
11946 {0xD5, 0, 0},
11947 {0xD6, 0x70, 1},
11948 {0xDB, 0x7, 0},
11949 {0xDC, 0, 0},
11950 {0xDD, 0, 0},
11951 {0xDE, 0x88, 1},
11952 {0xDF, 0, 0},
11953 {0xE0, 0x1f, 0},
11954 {0xE1, 0x20, 1},
11955 {0xE2, 0x1, 0},
11956 {0xE3, 0x30, 0},
11957 {0xE4, 0x70, 0},
11958 {0xE5, 0, 0},
11959 {0xE6, 0, 0},
11960 {0xE7, 0x33, 0},
11961 {0xE8, 0xf, 1},
11962 {0xE9, 0xf, 1},
11963 {0xEA, 0, 0},
11964 {0xEB, 0x11, 0},
11965 {0x105, 0x3c, 0},
11966 {0x106, 0x1, 1},
11967 {0x107, 0xa, 0},
11968 {0x10A, 0, 0},
11969 {0x10B, 0x40, 0},
11970 {0x10C, 0x40, 0},
11971 {0x10D, 0x88, 0},
11972 {0x10E, 0x10, 0},
11973 {0x10F, 0xf0, 0},
11974 {0x110, 0x10, 0},
11975 {0x111, 0xf0, 0},
11976 {0x114, 0x10, 0},
11977 {0x115, 0x55, 0},
11978 {0x116, 0x3f, 1},
11979 {0x117, 0x36, 1},
11980 {0x118, 0, 0},
11981 {0x119, 0, 0},
11982 {0x11A, 0, 0},
11983 {0x11B, 0x87, 0},
11984 {0x11C, 0x11, 0},
11985 {0x11D, 0, 0},
11986 {0x11E, 0x33, 0},
11987 {0x11F, 0x88, 0},
11988 {0x126, 0x20, 1},
11989 {0x127, 0x3f, 0},
11990 {0x128, 0x44, 0},
11991 {0x129, 0x8c, 0},
11992 {0x12A, 0x6c, 0},
11993 {0x12B, 0x22, 0},
11994 {0x12C, 0xbe, 0},
11995 {0x12D, 0x55, 0},
11996 {0x12F, 0xc, 0},
11997 {0x130, 0xaa, 0},
11998 {0x131, 0x2, 0},
11999 {0x132, 0, 0},
12000 {0x133, 0x10, 0},
12001 {0x134, 0x1, 0},
12002 {0x135, 0, 0},
12003 {0x136, 0, 0},
12004 {0x137, 0x80, 0},
12005 {0x138, 0x60, 0},
12006 {0x139, 0x44, 0},
12007 {0x13A, 0x55, 0},
12008 {0x13B, 0x1, 0},
12009 {0x13C, 0x55, 0},
12010 {0x13D, 0x1, 0},
12011 {0x13E, 0x5, 0},
12012 {0x13F, 0x55, 0},
12013 {0x140, 0x55, 0},
12014 {0x148, 0, 0},
12015 {0x149, 0, 0},
12016 {0x14A, 0, 0},
12017 {0x14B, 0, 0},
12018 {0x14C, 0, 0},
12019 {0x14D, 0, 0},
12020 {0x14E, 0, 0},
12021 {0x14F, 0, 0},
12022 {0x150, 0, 0},
12023 {0x154, 0xc, 0},
12024 {0x155, 0xc, 0},
12025 {0x156, 0xc, 0},
12026 {0x157, 0, 0},
12027 {0x158, 0x2b, 0},
12028 {0x159, 0x84, 0},
12029 {0x15A, 0x15, 0},
12030 {0x15B, 0xf, 0},
12031 {0x15C, 0, 0},
12032 {0x15D, 0, 0},
12033 {0x15E, 0, 1},
12034 {0x15F, 0, 1},
12035 {0x160, 0, 1},
12036 {0x161, 0, 1},
12037 {0x162, 0, 1},
12038 {0x163, 0, 1},
12039 {0x164, 0, 0},
12040 {0x165, 0, 0},
12041 {0x166, 0, 0},
12042 {0x167, 0, 0},
12043 {0x168, 0, 0},
12044 {0x169, 0, 0},
12045 {0x16A, 0, 1},
12046 {0x16B, 0, 1},
12047 {0x16C, 0, 1},
12048 {0x16D, 0, 0},
12049 {0x170, 0, 0},
12050 {0x171, 0x77, 0},
12051 {0x172, 0x77, 0},
12052 {0x173, 0x77, 0},
12053 {0x174, 0x77, 0},
12054 {0x175, 0, 0},
12055 {0x176, 0x3, 0},
12056 {0x177, 0x37, 0},
12057 {0x178, 0x3, 0},
12058 {0x179, 0, 0},
12059 {0x17B, 0x21, 0},
12060 {0x17C, 0, 0},
12061 {0x17D, 0xaa, 0},
12062 {0x17E, 0, 0},
12063 {0x190, 0, 0},
12064 {0x191, 0x77, 0},
12065 {0x192, 0x77, 0},
12066 {0x193, 0x77, 0},
12067 {0x194, 0x77, 0},
12068 {0x195, 0, 0},
12069 {0x196, 0x3, 0},
12070 {0x197, 0x37, 0},
12071 {0x198, 0x3, 0},
12072 {0x199, 0, 0},
12073 {0x19B, 0x21, 0},
12074 {0x19C, 0, 0},
12075 {0x19D, 0xaa, 0},
12076 {0x19E, 0, 0},
12077 {0x1A1, 0x2, 0},
12078 {0x1A2, 0xf, 0},
12079 {0x1A3, 0xf, 0},
12080 {0x1A4, 0, 1},
12081 {0x1A5, 0, 1},
12082 {0x1A6, 0, 1},
12083 {0x1A7, 0x2, 0},
12084 {0x1A8, 0xf, 0},
12085 {0x1A9, 0xf, 0},
12086 {0x1AA, 0, 1},
12087 {0x1AB, 0, 1},
12088 {0x1AC, 0, 1},
12089 {0x1AD, 0x84, 0},
12090 {0x1AE, 0x60, 0},
12091 {0x1AF, 0x47, 0},
12092 {0x1B0, 0x47, 0},
12093 {0x1B1, 0, 0},
12094 {0x1B2, 0, 0},
12095 {0x1B3, 0, 0},
12096 {0x1B4, 0, 0},
12097 {0x1B5, 0, 0},
12098 {0x1B6, 0, 0},
12099 {0x1B7, 0xc, 1},
12100 {0x1B8, 0, 0},
12101 {0x1B9, 0, 0},
12102 {0x1BA, 0, 0},
12103 {0x1BB, 0, 0},
12104 {0x1BC, 0, 0},
12105 {0x1BD, 0, 0},
12106 {0x1BE, 0, 0},
12107 {0x1BF, 0, 0},
12108 {0x1C0, 0, 0},
12109 {0x1C1, 0x1, 1},
12110 {0x1C2, 0x80, 1},
12111 {0x1C3, 0, 0},
12112 {0x1C4, 0, 0},
12113 {0x1C5, 0, 0},
12114 {0x1C6, 0, 0},
12115 {0x1C7, 0, 0},
12116 {0x1C8, 0, 0},
12117 {0x1C9, 0, 0},
12118 {0x1CA, 0, 0},
12119 {0xFFFF, 0, 0}
12122 struct radio_20xx_regs regs_2057_rev5v1[] = {
12123 {0x00, 0x15, 1},
12124 {0x01, 0x57, 1},
12125 {0x02, 0x20, 1},
12126 {0x03, 0x1f, 0},
12127 {0x04, 0x4, 0},
12128 {0x05, 0x2, 0},
12129 {0x06, 0x1, 0},
12130 {0x07, 0x1, 0},
12131 {0x08, 0x1, 0},
12132 {0x09, 0x69, 0},
12133 {0x0A, 0x66, 0},
12134 {0x0B, 0x6, 0},
12135 {0x0C, 0x18, 0},
12136 {0x0D, 0x3, 0},
12137 {0x0E, 0x20, 0},
12138 {0x0F, 0x20, 0},
12139 {0x10, 0, 0},
12140 {0x11, 0x7c, 0},
12141 {0x12, 0x42, 0},
12142 {0x13, 0xbd, 0},
12143 {0x14, 0x7, 0},
12144 {0x15, 0x87, 0},
12145 {0x16, 0x8, 0},
12146 {0x17, 0x17, 0},
12147 {0x18, 0x7, 0},
12148 {0x19, 0, 0},
12149 {0x1A, 0x2, 0},
12150 {0x1B, 0x13, 0},
12151 {0x1C, 0x3e, 0},
12152 {0x1D, 0x3e, 0},
12153 {0x1E, 0x96, 0},
12154 {0x1F, 0x4, 0},
12155 {0x20, 0, 0},
12156 {0x21, 0, 0},
12157 {0x22, 0x17, 0},
12158 {0x23, 0x6, 1},
12159 {0x24, 0x1, 0},
12160 {0x25, 0x6, 0},
12161 {0x26, 0x4, 0},
12162 {0x27, 0xd, 0},
12163 {0x28, 0xd, 0},
12164 {0x29, 0x30, 0},
12165 {0x2A, 0x32, 0},
12166 {0x2B, 0x8, 0},
12167 {0x2C, 0x1c, 0},
12168 {0x2D, 0x2, 0},
12169 {0x2E, 0x4, 0},
12170 {0x2F, 0x7f, 0},
12171 {0x30, 0x27, 0},
12172 {0x31, 0, 1},
12173 {0x32, 0, 1},
12174 {0x33, 0, 1},
12175 {0x34, 0, 0},
12176 {0x35, 0x20, 0},
12177 {0x36, 0x18, 0},
12178 {0x37, 0x7, 0},
12179 {0x38, 0x66, 0},
12180 {0x39, 0x66, 0},
12181 {0x3C, 0xff, 0},
12182 {0x3D, 0xff, 0},
12183 {0x40, 0x16, 0},
12184 {0x41, 0x7, 0},
12185 {0x45, 0x3, 0},
12186 {0x46, 0x1, 0},
12187 {0x47, 0x7, 0},
12188 {0x4B, 0x66, 0},
12189 {0x4C, 0x66, 0},
12190 {0x4D, 0, 0},
12191 {0x4E, 0x4, 0},
12192 {0x4F, 0xc, 0},
12193 {0x50, 0, 0},
12194 {0x51, 0x70, 1},
12195 {0x56, 0x7, 0},
12196 {0x57, 0, 0},
12197 {0x58, 0, 0},
12198 {0x59, 0x88, 1},
12199 {0x5A, 0, 0},
12200 {0x5B, 0x1f, 0},
12201 {0x5C, 0x20, 1},
12202 {0x5D, 0x1, 0},
12203 {0x5E, 0x30, 0},
12204 {0x5F, 0x70, 0},
12205 {0x60, 0, 0},
12206 {0x61, 0, 0},
12207 {0x62, 0x33, 1},
12208 {0x63, 0xf, 1},
12209 {0x64, 0xf, 1},
12210 {0x65, 0, 0},
12211 {0x66, 0x11, 0},
12212 {0x80, 0x3c, 0},
12213 {0x81, 0x1, 1},
12214 {0x82, 0xa, 0},
12215 {0x85, 0, 0},
12216 {0x86, 0x40, 0},
12217 {0x87, 0x40, 0},
12218 {0x88, 0x88, 0},
12219 {0x89, 0x10, 0},
12220 {0x8A, 0xf0, 0},
12221 {0x8B, 0x10, 0},
12222 {0x8C, 0xf0, 0},
12223 {0x8F, 0x10, 0},
12224 {0x90, 0x55, 0},
12225 {0x91, 0x3f, 1},
12226 {0x92, 0x36, 1},
12227 {0x93, 0, 0},
12228 {0x94, 0, 0},
12229 {0x95, 0, 0},
12230 {0x96, 0x87, 0},
12231 {0x97, 0x11, 0},
12232 {0x98, 0, 0},
12233 {0x99, 0x33, 0},
12234 {0x9A, 0x88, 0},
12235 {0xA1, 0x20, 1},
12236 {0xA2, 0x3f, 0},
12237 {0xA3, 0x44, 0},
12238 {0xA4, 0x8c, 0},
12239 {0xA5, 0x6c, 0},
12240 {0xA6, 0x22, 0},
12241 {0xA7, 0xbe, 0},
12242 {0xA8, 0x55, 0},
12243 {0xAA, 0xc, 0},
12244 {0xAB, 0xaa, 0},
12245 {0xAC, 0x2, 0},
12246 {0xAD, 0, 0},
12247 {0xAE, 0x10, 0},
12248 {0xAF, 0x1, 0},
12249 {0xB0, 0, 0},
12250 {0xB1, 0, 0},
12251 {0xB2, 0x80, 0},
12252 {0xB3, 0x60, 0},
12253 {0xB4, 0x44, 0},
12254 {0xB5, 0x55, 0},
12255 {0xB6, 0x1, 0},
12256 {0xB7, 0x55, 0},
12257 {0xB8, 0x1, 0},
12258 {0xB9, 0x5, 0},
12259 {0xBA, 0x55, 0},
12260 {0xBB, 0x55, 0},
12261 {0xC3, 0, 0},
12262 {0xC4, 0, 0},
12263 {0xC5, 0, 0},
12264 {0xC6, 0, 0},
12265 {0xC7, 0, 0},
12266 {0xC8, 0, 0},
12267 {0xC9, 0x1, 1},
12268 {0xCA, 0, 0},
12269 {0xCB, 0, 0},
12270 {0xCD, 0, 0},
12271 {0xCE, 0x5e, 0},
12272 {0xCF, 0xc, 0},
12273 {0xD0, 0xc, 0},
12274 {0xD1, 0xc, 0},
12275 {0xD2, 0, 0},
12276 {0xD3, 0x2b, 0},
12277 {0xD4, 0xc, 0},
12278 {0xD5, 0, 0},
12279 {0xD6, 0x70, 1},
12280 {0xDB, 0x7, 0},
12281 {0xDC, 0, 0},
12282 {0xDD, 0, 0},
12283 {0xDE, 0x88, 1},
12284 {0xDF, 0, 0},
12285 {0xE0, 0x1f, 0},
12286 {0xE1, 0x20, 1},
12287 {0xE2, 0x1, 0},
12288 {0xE3, 0x30, 0},
12289 {0xE4, 0x70, 0},
12290 {0xE5, 0, 0},
12291 {0xE6, 0, 0},
12292 {0xE7, 0x33, 0},
12293 {0xE8, 0xf, 1},
12294 {0xE9, 0xf, 1},
12295 {0xEA, 0, 0},
12296 {0xEB, 0x11, 0},
12297 {0x105, 0x3c, 0},
12298 {0x106, 0x1, 1},
12299 {0x107, 0xa, 0},
12300 {0x10A, 0, 0},
12301 {0x10B, 0x40, 0},
12302 {0x10C, 0x40, 0},
12303 {0x10D, 0x88, 0},
12304 {0x10E, 0x10, 0},
12305 {0x10F, 0xf0, 0},
12306 {0x110, 0x10, 0},
12307 {0x111, 0xf0, 0},
12308 {0x114, 0x10, 0},
12309 {0x115, 0x55, 0},
12310 {0x116, 0x3f, 1},
12311 {0x117, 0x36, 1},
12312 {0x118, 0, 0},
12313 {0x119, 0, 0},
12314 {0x11A, 0, 0},
12315 {0x11B, 0x87, 0},
12316 {0x11C, 0x11, 0},
12317 {0x11D, 0, 0},
12318 {0x11E, 0x33, 0},
12319 {0x11F, 0x88, 0},
12320 {0x126, 0x20, 1},
12321 {0x127, 0x3f, 0},
12322 {0x128, 0x44, 0},
12323 {0x129, 0x8c, 0},
12324 {0x12A, 0x6c, 0},
12325 {0x12B, 0x22, 0},
12326 {0x12C, 0xbe, 0},
12327 {0x12D, 0x55, 0},
12328 {0x12F, 0xc, 0},
12329 {0x130, 0xaa, 0},
12330 {0x131, 0x2, 0},
12331 {0x132, 0, 0},
12332 {0x133, 0x10, 0},
12333 {0x134, 0x1, 0},
12334 {0x135, 0, 0},
12335 {0x136, 0, 0},
12336 {0x137, 0x80, 0},
12337 {0x138, 0x60, 0},
12338 {0x139, 0x44, 0},
12339 {0x13A, 0x55, 0},
12340 {0x13B, 0x1, 0},
12341 {0x13C, 0x55, 0},
12342 {0x13D, 0x1, 0},
12343 {0x13E, 0x5, 0},
12344 {0x13F, 0x55, 0},
12345 {0x140, 0x55, 0},
12346 {0x148, 0, 0},
12347 {0x149, 0, 0},
12348 {0x14A, 0, 0},
12349 {0x14B, 0, 0},
12350 {0x14C, 0, 0},
12351 {0x14D, 0, 0},
12352 {0x14E, 0x1, 1},
12353 {0x14F, 0, 0},
12354 {0x150, 0, 0},
12355 {0x154, 0xc, 0},
12356 {0x155, 0xc, 0},
12357 {0x156, 0xc, 0},
12358 {0x157, 0, 0},
12359 {0x158, 0x2b, 0},
12360 {0x159, 0x84, 0},
12361 {0x15A, 0x15, 0},
12362 {0x15B, 0xf, 0},
12363 {0x15C, 0, 0},
12364 {0x15D, 0, 0},
12365 {0x15E, 0, 1},
12366 {0x15F, 0, 1},
12367 {0x160, 0, 1},
12368 {0x161, 0, 1},
12369 {0x162, 0, 1},
12370 {0x163, 0, 1},
12371 {0x164, 0, 0},
12372 {0x165, 0, 0},
12373 {0x166, 0, 0},
12374 {0x167, 0, 0},
12375 {0x168, 0, 0},
12376 {0x169, 0, 0},
12377 {0x16A, 0, 1},
12378 {0x16B, 0, 1},
12379 {0x16C, 0, 1},
12380 {0x16D, 0, 0},
12381 {0x170, 0, 0},
12382 {0x171, 0x77, 0},
12383 {0x172, 0x77, 0},
12384 {0x173, 0x77, 0},
12385 {0x174, 0x77, 0},
12386 {0x175, 0, 0},
12387 {0x176, 0x3, 0},
12388 {0x177, 0x37, 0},
12389 {0x178, 0x3, 0},
12390 {0x179, 0, 0},
12391 {0x17B, 0x21, 0},
12392 {0x17C, 0, 0},
12393 {0x17D, 0xaa, 0},
12394 {0x17E, 0, 0},
12395 {0x190, 0, 0},
12396 {0x191, 0x77, 0},
12397 {0x192, 0x77, 0},
12398 {0x193, 0x77, 0},
12399 {0x194, 0x77, 0},
12400 {0x195, 0, 0},
12401 {0x196, 0x3, 0},
12402 {0x197, 0x37, 0},
12403 {0x198, 0x3, 0},
12404 {0x199, 0, 0},
12405 {0x19B, 0x21, 0},
12406 {0x19C, 0, 0},
12407 {0x19D, 0xaa, 0},
12408 {0x19E, 0, 0},
12409 {0x1A1, 0x2, 0},
12410 {0x1A2, 0xf, 0},
12411 {0x1A3, 0xf, 0},
12412 {0x1A4, 0, 1},
12413 {0x1A5, 0, 1},
12414 {0x1A6, 0, 1},
12415 {0x1A7, 0x2, 0},
12416 {0x1A8, 0xf, 0},
12417 {0x1A9, 0xf, 0},
12418 {0x1AA, 0, 1},
12419 {0x1AB, 0, 1},
12420 {0x1AC, 0, 1},
12421 {0x1AD, 0x84, 0},
12422 {0x1AE, 0x60, 0},
12423 {0x1AF, 0x47, 0},
12424 {0x1B0, 0x47, 0},
12425 {0x1B1, 0, 0},
12426 {0x1B2, 0, 0},
12427 {0x1B3, 0, 0},
12428 {0x1B4, 0, 0},
12429 {0x1B5, 0, 0},
12430 {0x1B6, 0, 0},
12431 {0x1B7, 0xc, 1},
12432 {0x1B8, 0, 0},
12433 {0x1B9, 0, 0},
12434 {0x1BA, 0, 0},
12435 {0x1BB, 0, 0},
12436 {0x1BC, 0, 0},
12437 {0x1BD, 0, 0},
12438 {0x1BE, 0, 0},
12439 {0x1BF, 0, 0},
12440 {0x1C0, 0, 0},
12441 {0x1C1, 0x1, 1},
12442 {0x1C2, 0x80, 1},
12443 {0x1C3, 0, 0},
12444 {0x1C4, 0, 0},
12445 {0x1C5, 0, 0},
12446 {0x1C6, 0, 0},
12447 {0x1C7, 0, 0},
12448 {0x1C8, 0, 0},
12449 {0x1C9, 0, 0},
12450 {0x1CA, 0, 0},
12451 {0xFFFF, 0, 0}
12454 struct radio_20xx_regs regs_2057_rev7[] = {
12455 {0x00, 0, 1},
12456 {0x01, 0x57, 1},
12457 {0x02, 0x20, 1},
12458 {0x03, 0x1f, 0},
12459 {0x04, 0x4, 0},
12460 {0x05, 0x2, 0},
12461 {0x06, 0x1, 0},
12462 {0x07, 0x1, 0},
12463 {0x08, 0x1, 0},
12464 {0x09, 0x69, 0},
12465 {0x0A, 0x66, 0},
12466 {0x0B, 0x6, 0},
12467 {0x0C, 0x18, 0},
12468 {0x0D, 0x3, 0},
12469 {0x0E, 0x20, 0},
12470 {0x0F, 0x20, 0},
12471 {0x10, 0, 0},
12472 {0x11, 0x7c, 0},
12473 {0x12, 0x42, 0},
12474 {0x13, 0xbd, 0},
12475 {0x14, 0x7, 0},
12476 {0x15, 0x87, 0},
12477 {0x16, 0x8, 0},
12478 {0x17, 0x17, 0},
12479 {0x18, 0x7, 0},
12480 {0x19, 0, 0},
12481 {0x1A, 0x2, 0},
12482 {0x1B, 0x13, 0},
12483 {0x1C, 0x3e, 0},
12484 {0x1D, 0x3e, 0},
12485 {0x1E, 0x96, 0},
12486 {0x1F, 0x4, 0},
12487 {0x20, 0, 0},
12488 {0x21, 0, 0},
12489 {0x22, 0x17, 0},
12490 {0x23, 0x6, 0},
12491 {0x24, 0x1, 0},
12492 {0x25, 0x6, 0},
12493 {0x26, 0x4, 0},
12494 {0x27, 0xd, 0},
12495 {0x28, 0xd, 0},
12496 {0x29, 0x30, 0},
12497 {0x2A, 0x32, 0},
12498 {0x2B, 0x8, 0},
12499 {0x2C, 0x1c, 0},
12500 {0x2D, 0x2, 0},
12501 {0x2E, 0x4, 0},
12502 {0x2F, 0x7f, 0},
12503 {0x30, 0x27, 0},
12504 {0x31, 0, 1},
12505 {0x32, 0, 1},
12506 {0x33, 0, 1},
12507 {0x34, 0, 0},
12508 {0x35, 0x20, 0},
12509 {0x36, 0x18, 0},
12510 {0x37, 0x7, 0},
12511 {0x38, 0x66, 0},
12512 {0x39, 0x66, 0},
12513 {0x3A, 0x66, 0},
12514 {0x3B, 0x66, 0},
12515 {0x3C, 0xff, 0},
12516 {0x3D, 0xff, 0},
12517 {0x3E, 0xff, 0},
12518 {0x3F, 0xff, 0},
12519 {0x40, 0x16, 0},
12520 {0x41, 0x7, 0},
12521 {0x42, 0x19, 0},
12522 {0x43, 0x7, 0},
12523 {0x44, 0x6, 0},
12524 {0x45, 0x3, 0},
12525 {0x46, 0x1, 0},
12526 {0x47, 0x7, 0},
12527 {0x48, 0x33, 0},
12528 {0x49, 0x5, 0},
12529 {0x4A, 0x77, 0},
12530 {0x4B, 0x66, 0},
12531 {0x4C, 0x66, 0},
12532 {0x4D, 0, 0},
12533 {0x4E, 0x4, 0},
12534 {0x4F, 0xc, 0},
12535 {0x50, 0, 0},
12536 {0x51, 0x70, 1},
12537 {0x56, 0x7, 0},
12538 {0x57, 0, 0},
12539 {0x58, 0, 0},
12540 {0x59, 0x88, 1},
12541 {0x5A, 0, 0},
12542 {0x5B, 0x1f, 0},
12543 {0x5C, 0x20, 1},
12544 {0x5D, 0x1, 0},
12545 {0x5E, 0x30, 0},
12546 {0x5F, 0x70, 0},
12547 {0x60, 0, 0},
12548 {0x61, 0, 0},
12549 {0x62, 0x33, 1},
12550 {0x63, 0xf, 1},
12551 {0x64, 0x13, 1},
12552 {0x65, 0, 0},
12553 {0x66, 0xee, 1},
12554 {0x69, 0, 0},
12555 {0x6A, 0x7e, 0},
12556 {0x6B, 0x3f, 0},
12557 {0x6C, 0x7f, 0},
12558 {0x6D, 0x78, 0},
12559 {0x6E, 0x58, 1},
12560 {0x6F, 0x88, 0},
12561 {0x70, 0x8, 0},
12562 {0x71, 0xf, 0},
12563 {0x72, 0xbc, 0},
12564 {0x73, 0x8, 0},
12565 {0x74, 0x60, 0},
12566 {0x75, 0x13, 1},
12567 {0x76, 0x70, 0},
12568 {0x77, 0, 0},
12569 {0x78, 0, 0},
12570 {0x79, 0, 0},
12571 {0x7A, 0x33, 0},
12572 {0x7B, 0x13, 1},
12573 {0x7C, 0x14, 1},
12574 {0x7D, 0xee, 1},
12575 {0x80, 0x3c, 0},
12576 {0x81, 0x1, 1},
12577 {0x82, 0xa, 0},
12578 {0x83, 0x9d, 0},
12579 {0x84, 0xa, 0},
12580 {0x85, 0, 0},
12581 {0x86, 0x40, 0},
12582 {0x87, 0x40, 0},
12583 {0x88, 0x88, 0},
12584 {0x89, 0x10, 0},
12585 {0x8A, 0xf0, 0},
12586 {0x8B, 0x10, 0},
12587 {0x8C, 0xf0, 0},
12588 {0x8D, 0, 0},
12589 {0x8E, 0, 0},
12590 {0x8F, 0x10, 0},
12591 {0x90, 0x55, 0},
12592 {0x91, 0x3f, 1},
12593 {0x92, 0x36, 1},
12594 {0x93, 0, 0},
12595 {0x94, 0, 0},
12596 {0x95, 0, 0},
12597 {0x96, 0x87, 0},
12598 {0x97, 0x11, 0},
12599 {0x98, 0, 0},
12600 {0x99, 0x33, 0},
12601 {0x9A, 0x88, 0},
12602 {0x9B, 0, 0},
12603 {0x9C, 0x87, 0},
12604 {0x9D, 0x11, 0},
12605 {0x9E, 0, 0},
12606 {0x9F, 0x33, 0},
12607 {0xA0, 0x88, 0},
12608 {0xA1, 0x20, 1},
12609 {0xA2, 0x3f, 0},
12610 {0xA3, 0x44, 0},
12611 {0xA4, 0x8c, 0},
12612 {0xA5, 0x6c, 0},
12613 {0xA6, 0x22, 0},
12614 {0xA7, 0xbe, 0},
12615 {0xA8, 0x55, 0},
12616 {0xAA, 0xc, 0},
12617 {0xAB, 0xaa, 0},
12618 {0xAC, 0x2, 0},
12619 {0xAD, 0, 0},
12620 {0xAE, 0x10, 0},
12621 {0xAF, 0x1, 0},
12622 {0xB0, 0, 0},
12623 {0xB1, 0, 0},
12624 {0xB2, 0x80, 0},
12625 {0xB3, 0x60, 0},
12626 {0xB4, 0x44, 0},
12627 {0xB5, 0x55, 0},
12628 {0xB6, 0x1, 0},
12629 {0xB7, 0x55, 0},
12630 {0xB8, 0x1, 0},
12631 {0xB9, 0x5, 0},
12632 {0xBA, 0x55, 0},
12633 {0xBB, 0x55, 0},
12634 {0xC1, 0, 0},
12635 {0xC2, 0, 0},
12636 {0xC3, 0, 0},
12637 {0xC4, 0, 0},
12638 {0xC5, 0, 0},
12639 {0xC6, 0, 0},
12640 {0xC7, 0, 0},
12641 {0xC8, 0, 0},
12642 {0xC9, 0, 0},
12643 {0xCA, 0, 0},
12644 {0xCB, 0, 0},
12645 {0xCC, 0, 0},
12646 {0xCD, 0, 0},
12647 {0xCE, 0x5e, 0},
12648 {0xCF, 0xc, 0},
12649 {0xD0, 0xc, 0},
12650 {0xD1, 0xc, 0},
12651 {0xD2, 0, 0},
12652 {0xD3, 0x2b, 0},
12653 {0xD4, 0xc, 0},
12654 {0xD5, 0, 0},
12655 {0xD6, 0x70, 1},
12656 {0xDB, 0x7, 0},
12657 {0xDC, 0, 0},
12658 {0xDD, 0, 0},
12659 {0xDE, 0x88, 1},
12660 {0xDF, 0, 0},
12661 {0xE0, 0x1f, 0},
12662 {0xE1, 0x20, 1},
12663 {0xE2, 0x1, 0},
12664 {0xE3, 0x30, 0},
12665 {0xE4, 0x70, 0},
12666 {0xE5, 0, 0},
12667 {0xE6, 0, 0},
12668 {0xE7, 0x33, 0},
12669 {0xE8, 0xf, 1},
12670 {0xE9, 0x13, 1},
12671 {0xEA, 0, 0},
12672 {0xEB, 0xee, 1},
12673 {0xEE, 0, 0},
12674 {0xEF, 0x7e, 0},
12675 {0xF0, 0x3f, 0},
12676 {0xF1, 0x7f, 0},
12677 {0xF2, 0x78, 0},
12678 {0xF3, 0x58, 1},
12679 {0xF4, 0x88, 0},
12680 {0xF5, 0x8, 0},
12681 {0xF6, 0xf, 0},
12682 {0xF7, 0xbc, 0},
12683 {0xF8, 0x8, 0},
12684 {0xF9, 0x60, 0},
12685 {0xFA, 0x13, 1},
12686 {0xFB, 0x70, 0},
12687 {0xFC, 0, 0},
12688 {0xFD, 0, 0},
12689 {0xFE, 0, 0},
12690 {0xFF, 0x33, 0},
12691 {0x100, 0x13, 1},
12692 {0x101, 0x14, 1},
12693 {0x102, 0xee, 1},
12694 {0x105, 0x3c, 0},
12695 {0x106, 0x1, 1},
12696 {0x107, 0xa, 0},
12697 {0x108, 0x9d, 0},
12698 {0x109, 0xa, 0},
12699 {0x10A, 0, 0},
12700 {0x10B, 0x40, 0},
12701 {0x10C, 0x40, 0},
12702 {0x10D, 0x88, 0},
12703 {0x10E, 0x10, 0},
12704 {0x10F, 0xf0, 0},
12705 {0x110, 0x10, 0},
12706 {0x111, 0xf0, 0},
12707 {0x112, 0, 0},
12708 {0x113, 0, 0},
12709 {0x114, 0x10, 0},
12710 {0x115, 0x55, 0},
12711 {0x116, 0x3f, 1},
12712 {0x117, 0x36, 1},
12713 {0x118, 0, 0},
12714 {0x119, 0, 0},
12715 {0x11A, 0, 0},
12716 {0x11B, 0x87, 0},
12717 {0x11C, 0x11, 0},
12718 {0x11D, 0, 0},
12719 {0x11E, 0x33, 0},
12720 {0x11F, 0x88, 0},
12721 {0x120, 0, 0},
12722 {0x121, 0x87, 0},
12723 {0x122, 0x11, 0},
12724 {0x123, 0, 0},
12725 {0x124, 0x33, 0},
12726 {0x125, 0x88, 0},
12727 {0x126, 0x20, 1},
12728 {0x127, 0x3f, 0},
12729 {0x128, 0x44, 0},
12730 {0x129, 0x8c, 0},
12731 {0x12A, 0x6c, 0},
12732 {0x12B, 0x22, 0},
12733 {0x12C, 0xbe, 0},
12734 {0x12D, 0x55, 0},
12735 {0x12F, 0xc, 0},
12736 {0x130, 0xaa, 0},
12737 {0x131, 0x2, 0},
12738 {0x132, 0, 0},
12739 {0x133, 0x10, 0},
12740 {0x134, 0x1, 0},
12741 {0x135, 0, 0},
12742 {0x136, 0, 0},
12743 {0x137, 0x80, 0},
12744 {0x138, 0x60, 0},
12745 {0x139, 0x44, 0},
12746 {0x13A, 0x55, 0},
12747 {0x13B, 0x1, 0},
12748 {0x13C, 0x55, 0},
12749 {0x13D, 0x1, 0},
12750 {0x13E, 0x5, 0},
12751 {0x13F, 0x55, 0},
12752 {0x140, 0x55, 0},
12753 {0x146, 0, 0},
12754 {0x147, 0, 0},
12755 {0x148, 0, 0},
12756 {0x149, 0, 0},
12757 {0x14A, 0, 0},
12758 {0x14B, 0, 0},
12759 {0x14C, 0, 0},
12760 {0x14D, 0, 0},
12761 {0x14E, 0, 0},
12762 {0x14F, 0, 0},
12763 {0x150, 0, 0},
12764 {0x151, 0, 0},
12765 {0x154, 0xc, 0},
12766 {0x155, 0xc, 0},
12767 {0x156, 0xc, 0},
12768 {0x157, 0, 0},
12769 {0x158, 0x2b, 0},
12770 {0x159, 0x84, 0},
12771 {0x15A, 0x15, 0},
12772 {0x15B, 0xf, 0},
12773 {0x15C, 0, 0},
12774 {0x15D, 0, 0},
12775 {0x15E, 0, 1},
12776 {0x15F, 0, 1},
12777 {0x160, 0, 1},
12778 {0x161, 0, 1},
12779 {0x162, 0, 1},
12780 {0x163, 0, 1},
12781 {0x164, 0, 0},
12782 {0x165, 0, 0},
12783 {0x166, 0, 0},
12784 {0x167, 0, 0},
12785 {0x168, 0, 0},
12786 {0x169, 0, 0},
12787 {0x16A, 0, 1},
12788 {0x16B, 0, 1},
12789 {0x16C, 0, 1},
12790 {0x16D, 0, 0},
12791 {0x170, 0, 0},
12792 {0x171, 0x77, 0},
12793 {0x172, 0x77, 0},
12794 {0x173, 0x77, 0},
12795 {0x174, 0x77, 0},
12796 {0x175, 0, 0},
12797 {0x176, 0x3, 0},
12798 {0x177, 0x37, 0},
12799 {0x178, 0x3, 0},
12800 {0x179, 0, 0},
12801 {0x17A, 0x21, 0},
12802 {0x17B, 0x21, 0},
12803 {0x17C, 0, 0},
12804 {0x17D, 0xaa, 0},
12805 {0x17E, 0, 0},
12806 {0x17F, 0xaa, 0},
12807 {0x180, 0, 0},
12808 {0x190, 0, 0},
12809 {0x191, 0x77, 0},
12810 {0x192, 0x77, 0},
12811 {0x193, 0x77, 0},
12812 {0x194, 0x77, 0},
12813 {0x195, 0, 0},
12814 {0x196, 0x3, 0},
12815 {0x197, 0x37, 0},
12816 {0x198, 0x3, 0},
12817 {0x199, 0, 0},
12818 {0x19A, 0x21, 0},
12819 {0x19B, 0x21, 0},
12820 {0x19C, 0, 0},
12821 {0x19D, 0xaa, 0},
12822 {0x19E, 0, 0},
12823 {0x19F, 0xaa, 0},
12824 {0x1A0, 0, 0},
12825 {0x1A1, 0x2, 0},
12826 {0x1A2, 0xf, 0},
12827 {0x1A3, 0xf, 0},
12828 {0x1A4, 0, 1},
12829 {0x1A5, 0, 1},
12830 {0x1A6, 0, 1},
12831 {0x1A7, 0x2, 0},
12832 {0x1A8, 0xf, 0},
12833 {0x1A9, 0xf, 0},
12834 {0x1AA, 0, 1},
12835 {0x1AB, 0, 1},
12836 {0x1AC, 0, 1},
12837 {0x1AD, 0x84, 0},
12838 {0x1AE, 0x60, 0},
12839 {0x1AF, 0x47, 0},
12840 {0x1B0, 0x47, 0},
12841 {0x1B1, 0, 0},
12842 {0x1B2, 0, 0},
12843 {0x1B3, 0, 0},
12844 {0x1B4, 0, 0},
12845 {0x1B5, 0, 0},
12846 {0x1B6, 0, 0},
12847 {0x1B7, 0x5, 1},
12848 {0x1B8, 0, 0},
12849 {0x1B9, 0, 0},
12850 {0x1BA, 0, 0},
12851 {0x1BB, 0, 0},
12852 {0x1BC, 0, 0},
12853 {0x1BD, 0, 0},
12854 {0x1BE, 0, 0},
12855 {0x1BF, 0, 0},
12856 {0x1C0, 0, 0},
12857 {0x1C1, 0, 0},
12858 {0x1C2, 0xa0, 1},
12859 {0x1C3, 0, 0},
12860 {0x1C4, 0, 0},
12861 {0x1C5, 0, 0},
12862 {0x1C6, 0, 0},
12863 {0x1C7, 0, 0},
12864 {0x1C8, 0, 0},
12865 {0x1C9, 0, 0},
12866 {0x1CA, 0, 0},
12867 {0xFFFF, 0, 0}
12870 struct radio_20xx_regs regs_2057_rev8[] = {
12871 {0x00, 0x8, 1},
12872 {0x01, 0x57, 1},
12873 {0x02, 0x20, 1},
12874 {0x03, 0x1f, 0},
12875 {0x04, 0x4, 0},
12876 {0x05, 0x2, 0},
12877 {0x06, 0x1, 0},
12878 {0x07, 0x1, 0},
12879 {0x08, 0x1, 0},
12880 {0x09, 0x69, 0},
12881 {0x0A, 0x66, 0},
12882 {0x0B, 0x6, 0},
12883 {0x0C, 0x18, 0},
12884 {0x0D, 0x3, 0},
12885 {0x0E, 0x20, 0},
12886 {0x0F, 0x20, 0},
12887 {0x10, 0, 0},
12888 {0x11, 0x7c, 0},
12889 {0x12, 0x42, 0},
12890 {0x13, 0xbd, 0},
12891 {0x14, 0x7, 0},
12892 {0x15, 0x87, 0},
12893 {0x16, 0x8, 0},
12894 {0x17, 0x17, 0},
12895 {0x18, 0x7, 0},
12896 {0x19, 0, 0},
12897 {0x1A, 0x2, 0},
12898 {0x1B, 0x13, 0},
12899 {0x1C, 0x3e, 0},
12900 {0x1D, 0x3e, 0},
12901 {0x1E, 0x96, 0},
12902 {0x1F, 0x4, 0},
12903 {0x20, 0, 0},
12904 {0x21, 0, 0},
12905 {0x22, 0x17, 0},
12906 {0x23, 0x6, 0},
12907 {0x24, 0x1, 0},
12908 {0x25, 0x6, 0},
12909 {0x26, 0x4, 0},
12910 {0x27, 0xd, 0},
12911 {0x28, 0xd, 0},
12912 {0x29, 0x30, 0},
12913 {0x2A, 0x32, 0},
12914 {0x2B, 0x8, 0},
12915 {0x2C, 0x1c, 0},
12916 {0x2D, 0x2, 0},
12917 {0x2E, 0x4, 0},
12918 {0x2F, 0x7f, 0},
12919 {0x30, 0x27, 0},
12920 {0x31, 0, 1},
12921 {0x32, 0, 1},
12922 {0x33, 0, 1},
12923 {0x34, 0, 0},
12924 {0x35, 0x20, 0},
12925 {0x36, 0x18, 0},
12926 {0x37, 0x7, 0},
12927 {0x38, 0x66, 0},
12928 {0x39, 0x66, 0},
12929 {0x3A, 0x66, 0},
12930 {0x3B, 0x66, 0},
12931 {0x3C, 0xff, 0},
12932 {0x3D, 0xff, 0},
12933 {0x3E, 0xff, 0},
12934 {0x3F, 0xff, 0},
12935 {0x40, 0x16, 0},
12936 {0x41, 0x7, 0},
12937 {0x42, 0x19, 0},
12938 {0x43, 0x7, 0},
12939 {0x44, 0x6, 0},
12940 {0x45, 0x3, 0},
12941 {0x46, 0x1, 0},
12942 {0x47, 0x7, 0},
12943 {0x48, 0x33, 0},
12944 {0x49, 0x5, 0},
12945 {0x4A, 0x77, 0},
12946 {0x4B, 0x66, 0},
12947 {0x4C, 0x66, 0},
12948 {0x4D, 0, 0},
12949 {0x4E, 0x4, 0},
12950 {0x4F, 0xc, 0},
12951 {0x50, 0, 0},
12952 {0x51, 0x70, 1},
12953 {0x56, 0x7, 0},
12954 {0x57, 0, 0},
12955 {0x58, 0, 0},
12956 {0x59, 0x88, 1},
12957 {0x5A, 0, 0},
12958 {0x5B, 0x1f, 0},
12959 {0x5C, 0x20, 1},
12960 {0x5D, 0x1, 0},
12961 {0x5E, 0x30, 0},
12962 {0x5F, 0x70, 0},
12963 {0x60, 0, 0},
12964 {0x61, 0, 0},
12965 {0x62, 0x33, 1},
12966 {0x63, 0xf, 1},
12967 {0x64, 0xf, 1},
12968 {0x65, 0, 0},
12969 {0x66, 0x11, 0},
12970 {0x69, 0, 0},
12971 {0x6A, 0x7e, 0},
12972 {0x6B, 0x3f, 0},
12973 {0x6C, 0x7f, 0},
12974 {0x6D, 0x78, 0},
12975 {0x6E, 0x58, 1},
12976 {0x6F, 0x88, 0},
12977 {0x70, 0x8, 0},
12978 {0x71, 0xf, 0},
12979 {0x72, 0xbc, 0},
12980 {0x73, 0x8, 0},
12981 {0x74, 0x60, 0},
12982 {0x75, 0x13, 1},
12983 {0x76, 0x70, 0},
12984 {0x77, 0, 0},
12985 {0x78, 0, 0},
12986 {0x79, 0, 0},
12987 {0x7A, 0x33, 0},
12988 {0x7B, 0x13, 1},
12989 {0x7C, 0xf, 1},
12990 {0x7D, 0xee, 1},
12991 {0x80, 0x3c, 0},
12992 {0x81, 0x1, 1},
12993 {0x82, 0xa, 0},
12994 {0x83, 0x9d, 0},
12995 {0x84, 0xa, 0},
12996 {0x85, 0, 0},
12997 {0x86, 0x40, 0},
12998 {0x87, 0x40, 0},
12999 {0x88, 0x88, 0},
13000 {0x89, 0x10, 0},
13001 {0x8A, 0xf0, 0},
13002 {0x8B, 0x10, 0},
13003 {0x8C, 0xf0, 0},
13004 {0x8D, 0, 0},
13005 {0x8E, 0, 0},
13006 {0x8F, 0x10, 0},
13007 {0x90, 0x55, 0},
13008 {0x91, 0x3f, 1},
13009 {0x92, 0x36, 1},
13010 {0x93, 0, 0},
13011 {0x94, 0, 0},
13012 {0x95, 0, 0},
13013 {0x96, 0x87, 0},
13014 {0x97, 0x11, 0},
13015 {0x98, 0, 0},
13016 {0x99, 0x33, 0},
13017 {0x9A, 0x88, 0},
13018 {0x9B, 0, 0},
13019 {0x9C, 0x87, 0},
13020 {0x9D, 0x11, 0},
13021 {0x9E, 0, 0},
13022 {0x9F, 0x33, 0},
13023 {0xA0, 0x88, 0},
13024 {0xA1, 0x20, 1},
13025 {0xA2, 0x3f, 0},
13026 {0xA3, 0x44, 0},
13027 {0xA4, 0x8c, 0},
13028 {0xA5, 0x6c, 0},
13029 {0xA6, 0x22, 0},
13030 {0xA7, 0xbe, 0},
13031 {0xA8, 0x55, 0},
13032 {0xAA, 0xc, 0},
13033 {0xAB, 0xaa, 0},
13034 {0xAC, 0x2, 0},
13035 {0xAD, 0, 0},
13036 {0xAE, 0x10, 0},
13037 {0xAF, 0x1, 0},
13038 {0xB0, 0, 0},
13039 {0xB1, 0, 0},
13040 {0xB2, 0x80, 0},
13041 {0xB3, 0x60, 0},
13042 {0xB4, 0x44, 0},
13043 {0xB5, 0x55, 0},
13044 {0xB6, 0x1, 0},
13045 {0xB7, 0x55, 0},
13046 {0xB8, 0x1, 0},
13047 {0xB9, 0x5, 0},
13048 {0xBA, 0x55, 0},
13049 {0xBB, 0x55, 0},
13050 {0xC1, 0, 0},
13051 {0xC2, 0, 0},
13052 {0xC3, 0, 0},
13053 {0xC4, 0, 0},
13054 {0xC5, 0, 0},
13055 {0xC6, 0, 0},
13056 {0xC7, 0, 0},
13057 {0xC8, 0, 0},
13058 {0xC9, 0x1, 1},
13059 {0xCA, 0, 0},
13060 {0xCB, 0, 0},
13061 {0xCC, 0, 0},
13062 {0xCD, 0, 0},
13063 {0xCE, 0x5e, 0},
13064 {0xCF, 0xc, 0},
13065 {0xD0, 0xc, 0},
13066 {0xD1, 0xc, 0},
13067 {0xD2, 0, 0},
13068 {0xD3, 0x2b, 0},
13069 {0xD4, 0xc, 0},
13070 {0xD5, 0, 0},
13071 {0xD6, 0x70, 1},
13072 {0xDB, 0x7, 0},
13073 {0xDC, 0, 0},
13074 {0xDD, 0, 0},
13075 {0xDE, 0x88, 1},
13076 {0xDF, 0, 0},
13077 {0xE0, 0x1f, 0},
13078 {0xE1, 0x20, 1},
13079 {0xE2, 0x1, 0},
13080 {0xE3, 0x30, 0},
13081 {0xE4, 0x70, 0},
13082 {0xE5, 0, 0},
13083 {0xE6, 0, 0},
13084 {0xE7, 0x33, 0},
13085 {0xE8, 0xf, 1},
13086 {0xE9, 0xf, 1},
13087 {0xEA, 0, 0},
13088 {0xEB, 0x11, 0},
13089 {0xEE, 0, 0},
13090 {0xEF, 0x7e, 0},
13091 {0xF0, 0x3f, 0},
13092 {0xF1, 0x7f, 0},
13093 {0xF2, 0x78, 0},
13094 {0xF3, 0x58, 1},
13095 {0xF4, 0x88, 0},
13096 {0xF5, 0x8, 0},
13097 {0xF6, 0xf, 0},
13098 {0xF7, 0xbc, 0},
13099 {0xF8, 0x8, 0},
13100 {0xF9, 0x60, 0},
13101 {0xFA, 0x13, 1},
13102 {0xFB, 0x70, 0},
13103 {0xFC, 0, 0},
13104 {0xFD, 0, 0},
13105 {0xFE, 0, 0},
13106 {0xFF, 0x33, 0},
13107 {0x100, 0x13, 1},
13108 {0x101, 0xf, 1},
13109 {0x102, 0xee, 1},
13110 {0x105, 0x3c, 0},
13111 {0x106, 0x1, 1},
13112 {0x107, 0xa, 0},
13113 {0x108, 0x9d, 0},
13114 {0x109, 0xa, 0},
13115 {0x10A, 0, 0},
13116 {0x10B, 0x40, 0},
13117 {0x10C, 0x40, 0},
13118 {0x10D, 0x88, 0},
13119 {0x10E, 0x10, 0},
13120 {0x10F, 0xf0, 0},
13121 {0x110, 0x10, 0},
13122 {0x111, 0xf0, 0},
13123 {0x112, 0, 0},
13124 {0x113, 0, 0},
13125 {0x114, 0x10, 0},
13126 {0x115, 0x55, 0},
13127 {0x116, 0x3f, 1},
13128 {0x117, 0x36, 1},
13129 {0x118, 0, 0},
13130 {0x119, 0, 0},
13131 {0x11A, 0, 0},
13132 {0x11B, 0x87, 0},
13133 {0x11C, 0x11, 0},
13134 {0x11D, 0, 0},
13135 {0x11E, 0x33, 0},
13136 {0x11F, 0x88, 0},
13137 {0x120, 0, 0},
13138 {0x121, 0x87, 0},
13139 {0x122, 0x11, 0},
13140 {0x123, 0, 0},
13141 {0x124, 0x33, 0},
13142 {0x125, 0x88, 0},
13143 {0x126, 0x20, 1},
13144 {0x127, 0x3f, 0},
13145 {0x128, 0x44, 0},
13146 {0x129, 0x8c, 0},
13147 {0x12A, 0x6c, 0},
13148 {0x12B, 0x22, 0},
13149 {0x12C, 0xbe, 0},
13150 {0x12D, 0x55, 0},
13151 {0x12F, 0xc, 0},
13152 {0x130, 0xaa, 0},
13153 {0x131, 0x2, 0},
13154 {0x132, 0, 0},
13155 {0x133, 0x10, 0},
13156 {0x134, 0x1, 0},
13157 {0x135, 0, 0},
13158 {0x136, 0, 0},
13159 {0x137, 0x80, 0},
13160 {0x138, 0x60, 0},
13161 {0x139, 0x44, 0},
13162 {0x13A, 0x55, 0},
13163 {0x13B, 0x1, 0},
13164 {0x13C, 0x55, 0},
13165 {0x13D, 0x1, 0},
13166 {0x13E, 0x5, 0},
13167 {0x13F, 0x55, 0},
13168 {0x140, 0x55, 0},
13169 {0x146, 0, 0},
13170 {0x147, 0, 0},
13171 {0x148, 0, 0},
13172 {0x149, 0, 0},
13173 {0x14A, 0, 0},
13174 {0x14B, 0, 0},
13175 {0x14C, 0, 0},
13176 {0x14D, 0, 0},
13177 {0x14E, 0x1, 1},
13178 {0x14F, 0, 0},
13179 {0x150, 0, 0},
13180 {0x151, 0, 0},
13181 {0x154, 0xc, 0},
13182 {0x155, 0xc, 0},
13183 {0x156, 0xc, 0},
13184 {0x157, 0, 0},
13185 {0x158, 0x2b, 0},
13186 {0x159, 0x84, 0},
13187 {0x15A, 0x15, 0},
13188 {0x15B, 0xf, 0},
13189 {0x15C, 0, 0},
13190 {0x15D, 0, 0},
13191 {0x15E, 0, 1},
13192 {0x15F, 0, 1},
13193 {0x160, 0, 1},
13194 {0x161, 0, 1},
13195 {0x162, 0, 1},
13196 {0x163, 0, 1},
13197 {0x164, 0, 0},
13198 {0x165, 0, 0},
13199 {0x166, 0, 0},
13200 {0x167, 0, 0},
13201 {0x168, 0, 0},
13202 {0x169, 0, 0},
13203 {0x16A, 0, 1},
13204 {0x16B, 0, 1},
13205 {0x16C, 0, 1},
13206 {0x16D, 0, 0},
13207 {0x170, 0, 0},
13208 {0x171, 0x77, 0},
13209 {0x172, 0x77, 0},
13210 {0x173, 0x77, 0},
13211 {0x174, 0x77, 0},
13212 {0x175, 0, 0},
13213 {0x176, 0x3, 0},
13214 {0x177, 0x37, 0},
13215 {0x178, 0x3, 0},
13216 {0x179, 0, 0},
13217 {0x17A, 0x21, 0},
13218 {0x17B, 0x21, 0},
13219 {0x17C, 0, 0},
13220 {0x17D, 0xaa, 0},
13221 {0x17E, 0, 0},
13222 {0x17F, 0xaa, 0},
13223 {0x180, 0, 0},
13224 {0x190, 0, 0},
13225 {0x191, 0x77, 0},
13226 {0x192, 0x77, 0},
13227 {0x193, 0x77, 0},
13228 {0x194, 0x77, 0},
13229 {0x195, 0, 0},
13230 {0x196, 0x3, 0},
13231 {0x197, 0x37, 0},
13232 {0x198, 0x3, 0},
13233 {0x199, 0, 0},
13234 {0x19A, 0x21, 0},
13235 {0x19B, 0x21, 0},
13236 {0x19C, 0, 0},
13237 {0x19D, 0xaa, 0},
13238 {0x19E, 0, 0},
13239 {0x19F, 0xaa, 0},
13240 {0x1A0, 0, 0},
13241 {0x1A1, 0x2, 0},
13242 {0x1A2, 0xf, 0},
13243 {0x1A3, 0xf, 0},
13244 {0x1A4, 0, 1},
13245 {0x1A5, 0, 1},
13246 {0x1A6, 0, 1},
13247 {0x1A7, 0x2, 0},
13248 {0x1A8, 0xf, 0},
13249 {0x1A9, 0xf, 0},
13250 {0x1AA, 0, 1},
13251 {0x1AB, 0, 1},
13252 {0x1AC, 0, 1},
13253 {0x1AD, 0x84, 0},
13254 {0x1AE, 0x60, 0},
13255 {0x1AF, 0x47, 0},
13256 {0x1B0, 0x47, 0},
13257 {0x1B1, 0, 0},
13258 {0x1B2, 0, 0},
13259 {0x1B3, 0, 0},
13260 {0x1B4, 0, 0},
13261 {0x1B5, 0, 0},
13262 {0x1B6, 0, 0},
13263 {0x1B7, 0x5, 1},
13264 {0x1B8, 0, 0},
13265 {0x1B9, 0, 0},
13266 {0x1BA, 0, 0},
13267 {0x1BB, 0, 0},
13268 {0x1BC, 0, 0},
13269 {0x1BD, 0, 0},
13270 {0x1BE, 0, 0},
13271 {0x1BF, 0, 0},
13272 {0x1C0, 0, 0},
13273 {0x1C1, 0, 0},
13274 {0x1C2, 0xa0, 1},
13275 {0x1C3, 0, 0},
13276 {0x1C4, 0, 0},
13277 {0x1C5, 0, 0},
13278 {0x1C6, 0, 0},
13279 {0x1C7, 0, 0},
13280 {0x1C8, 0, 0},
13281 {0x1C9, 0, 0},
13282 {0x1CA, 0, 0},
13283 {0xFFFF, 0, 0}
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,
13768 5, 4, 3, 2, 1
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,
13775 1, 0
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,
14124 u16 *rg, u8 type);
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,
14143 u32 e);
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,
14155 u8 *dlys, u8 len);
14157 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset);
14159 static void
14160 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
14161 u8 core_mask, u8 off,
14162 u8 override_id);
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,
14169 u16 *pwr_offset,
14170 u8 tmp_max_pwr, u8 rate_start,
14171 u8 rate_end);
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,
14181 u8 idx1);
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,
14189 u16 max_val,
14190 u8 dac_test_mode);
14191 static void wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, cs32 *tone_buf,
14192 u16 num_samps);
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))
14203 return true;
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)) {
14213 return true;
14216 return false;
14219 static void WLBANDINITFN(wlc_phy_bphy_init_nphy) (struct brcms_phy *pi)
14221 u16 addr, val;
14223 val = 0x1e1f;
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))
14228 val = 0x3e3f;
14229 else
14230 val -= 0x0202;
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);
14241 } else {
14243 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14247 void
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;
14253 tbl.tbl_id = id;
14254 tbl.tbl_len = len;
14255 tbl.tbl_offset = offset;
14256 tbl.tbl_width = width;
14257 tbl.tbl_ptr = data;
14258 wlc_phy_write_table_nphy(pi, &tbl);
14261 void
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;
14267 tbl.tbl_id = id;
14268 tbl.tbl_len = len;
14269 tbl.tbl_offset = offset;
14270 tbl.tbl_width = width;
14271 tbl.tbl_ptr = data;
14272 wlc_phy_read_table_nphy(pi, &tbl);
14275 static void
14276 WLBANDINITFN(wlc_phy_static_table_download_nphy) (struct brcms_phy *pi)
14278 uint idx;
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]);
14292 } else {
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)
14301 uint idx = 0;
14302 u8 antswctrllut;
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) {
14313 case 0:
14315 break;
14317 case 1:
14319 if (pi->aa2g == 7) {
14321 wlc_phy_table_write_nphy(pi,
14322 NPHY_TBL_ID_ANTSWCTRLLUT,
14323 2, 0x21, 8,
14324 &ant_sw_ctrl_tbl_rev8_2o3
14325 [0]);
14326 } else {
14327 wlc_phy_table_write_nphy(pi,
14328 NPHY_TBL_ID_ANTSWCTRLLUT,
14329 2, 0x21, 8,
14330 &ant_sw_ctrl_tbl_rev8
14331 [0]);
14333 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14334 2, 0x25, 8,
14335 &ant_sw_ctrl_tbl_rev8[2]);
14336 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14337 2, 0x29, 8,
14338 &ant_sw_ctrl_tbl_rev8[4]);
14339 break;
14341 case 2:
14343 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14344 2, 0x1, 8,
14345 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14346 [0]);
14347 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14348 2, 0x5, 8,
14349 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14350 [2]);
14351 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14352 2, 0x9, 8,
14353 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14354 [4]);
14356 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14357 2, 0x21, 8,
14358 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14359 [0]);
14360 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14361 2, 0x25, 8,
14362 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14363 [2]);
14364 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14365 2, 0x29, 8,
14366 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14367 [4]);
14368 break;
14370 default:
14371 break;
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) {
14382 case 0:
14383 wlc_phy_write_table_nphy(pi,
14384 &mimophytbl_info_rev3_volatile
14385 [idx]);
14386 break;
14387 case 1:
14388 wlc_phy_write_table_nphy(pi,
14389 &mimophytbl_info_rev3_volatile1
14390 [idx]);
14391 break;
14392 case 2:
14393 wlc_phy_write_table_nphy(pi,
14394 &mimophytbl_info_rev3_volatile2
14395 [idx]);
14396 break;
14397 case 3:
14398 wlc_phy_write_table_nphy(pi,
14399 &mimophytbl_info_rev3_volatile3
14400 [idx]);
14401 break;
14402 default:
14403 break;
14405 } else {
14406 wlc_phy_write_table_nphy(pi,
14407 &mimophytbl_info_rev3_volatile
14408 [idx]);
14411 } else {
14412 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++) {
14413 wlc_phy_write_table_nphy(pi,
14414 &mimophytbl_info_rev0_volatile
14415 [idx]);
14420 static void
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;
14431 if (rifs) {
14433 holdoff = 0x10;
14434 delay = 0x258;
14435 } else {
14437 holdoff = 0x15;
14438 delay = 0x320;
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)
14450 uint i;
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))
14502 return false;
14504 return true;
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;
14513 return;
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)
14529 u16 val;
14530 u16 clip1_ths[2];
14531 struct nphy_txgains target_gain;
14532 u8 tx_pwr_ctrl_state;
14533 bool do_nphy_cal = false;
14534 uint core;
14535 uint origidx, intr_val;
14536 d11regs_t *regs;
14537 u32 d11_clk_ctl_st;
14539 core = 0;
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,
14552 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(&regs->clk_ctl_st);
14562 AND_REG(&regs->clk_ctl_st,
14563 ~(CCS_FORCEHT | CCS_HTAREQ));
14565 W_REG(&regs->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 =
14571 (PHY_IPA(pi) ||
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);
14596 } else {
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);
14612 } else {
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);
14626 else
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);
14646 if (PHY_IPA(pi)) {
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);
14659 } else {
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;
14699 u16 idx;
14700 s16 pga_gn = 0;
14701 s16 pad_gn = 0;
14702 s32 rfpwr_offset = 0;
14704 if (PHY_IPA(pi)) {
14705 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
14706 } else {
14707 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14708 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
14709 tx_pwrctrl_tbl =
14710 nphy_tpc_5GHz_txgain_rev3;
14711 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
14712 tx_pwrctrl_tbl =
14713 (pi->srom_fem5g.extpagain == 3) ?
14714 nphy_tpc_5GHz_txgain_HiPwrEPA :
14715 nphy_tpc_5GHz_txgain_rev4;
14716 } else {
14717 tx_pwrctrl_tbl =
14718 nphy_tpc_5GHz_txgain_rev5;
14721 } else {
14722 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14723 if (pi->pubpi.radiorev == 5) {
14724 tx_pwrctrl_tbl =
14725 nphy_tpc_txgain_epa_2057rev5;
14726 } else if (pi->pubpi.radiorev == 3) {
14727 tx_pwrctrl_tbl =
14728 nphy_tpc_txgain_epa_2057rev3;
14731 } else {
14732 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
14733 (pi->srom_fem2g.extpagain == 3)) {
14734 tx_pwrctrl_tbl =
14735 nphy_tpc_txgain_HiPwrEPA;
14736 } else {
14737 tx_pwrctrl_tbl =
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
14763 [pad_gn];
14764 } else if (pi->pubpi.radiorev == 5) {
14765 rfpwr_offset = (s16)
14766 nphy_papd_padgain_dlt_2g_2057rev5
14767 [pad_gn];
14768 } else if ((pi->pubpi.radiorev == 7)
14769 || (pi->pubpi.radiorev ==
14770 8)) {
14771 rfpwr_offset = (s16)
14772 nphy_papd_padgain_dlt_2g_2057rev7
14773 [pad_gn];
14775 } else {
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
14781 [pga_gn];
14782 } else if ((pi->pubpi.radiorev == 7)
14783 || (pi->pubpi.radiorev ==
14784 8)) {
14785 rfpwr_offset = (s16)
14786 nphy_papd_pgagain_dlt_5g_2057rev7
14787 [pga_gn];
14790 wlc_phy_table_write_nphy(pi,
14791 NPHY_TBL_ID_CORE1TXPWRCTL,
14792 1, 576 + idx, 32,
14793 &rfpwr_offset);
14794 wlc_phy_table_write_nphy(pi,
14795 NPHY_TBL_ID_CORE2TXPWRCTL,
14796 1, 576 + idx, 32,
14797 &rfpwr_offset);
14799 } else {
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
14806 [pga_gn];
14807 } else {
14808 rfpwr_offset = (s16)
14809 nphy_papd_pga_gain_delta_ipa_5g
14810 [pga_gn];
14813 wlc_phy_table_write_nphy(pi,
14814 NPHY_TBL_ID_CORE1TXPWRCTL,
14815 1, 576 + idx, 32,
14816 &rfpwr_offset);
14817 wlc_phy_table_write_nphy(pi,
14818 NPHY_TBL_ID_CORE2TXPWRCTL,
14819 1, 576 + idx, 32,
14820 &rfpwr_offset);
14824 } else {
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);
14849 if (do_rssi_cal) {
14850 wlc_phy_rssi_cal_nphy(pi);
14851 } else {
14852 wlc_phy_restore_rssical_nphy(pi);
14854 } else {
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;
14867 if (do_nphy_cal) {
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,
14873 true);
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].
14881 index_internal;
14882 pi->nphy_cal_orig_pwr_idx[1] =
14883 pi->nphy_txpwrindex[PHY_CORE_1].
14884 index_internal;
14886 wlc_phy_precal_txgain_nphy(pi);
14887 target_gain =
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,
14895 false) == 0) {
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);
14906 } else {
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;
14930 u16 val;
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;
14940 if (gf_preamble)
14941 val |= RX_GF_OR_MM;
14943 write_phy_reg(pi, 0xed, val);
14946 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
14948 u16 val;
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);
14954 udelay(1);
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;
14966 if (!en) {
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;
14976 } else {
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);
14983 } else {
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)
14994 u16 txrx_chain =
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);
15020 } else {
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)
15028 u16 regval;
15029 u16 tbl_buf[16];
15030 uint i;
15031 struct brcms_phy *pi = (struct brcms_phy *) pih;
15032 u16 tbl_opcode;
15033 bool suspend;
15035 pi->sh->phyrxchain = rxcore_bitmask;
15037 if (!pi->sh->clk)
15038 return;
15040 suspend =
15041 (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
15042 if (!suspend)
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,
15061 16, tbl_buf);
15063 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
15064 if (tbl_buf[i] ==
15065 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
15067 pi->rx2tx_biasentry = (u8) i;
15068 tbl_opcode =
15069 NPHY_REV3_RFSEQ_CMD_NOP;
15070 wlc_phy_table_write_nphy(pi,
15071 NPHY_TBL_ID_RFSEQ,
15072 1, i,
15074 &tbl_opcode);
15075 break;
15076 } else if (tbl_buf[i] ==
15077 NPHY_REV3_RFSEQ_CMD_END) {
15078 break;
15083 } else {
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,
15092 16, &tbl_opcode);
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);
15103 if (!suspend)
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++) {
15132 idx2 = 0;
15134 delta_ind = 0;
15136 switch (i) {
15137 case 0:
15139 if (CHSPEC_IS40(pi->radio_chanspec)
15140 && NPHY_IS_SROM_REINTERPRET) {
15141 idx = TXP_FIRST_MCS_40_SISO;
15142 } else {
15143 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15144 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
15145 delta_ind = 1;
15147 break;
15149 case 1:
15151 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15152 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
15153 break;
15155 case 2:
15157 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15158 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
15159 break;
15161 case 3:
15163 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15164 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
15165 break;
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)
15221 static void
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);
15228 } else {
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);
15235 } else {
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;
15247 if (!txchain0) {
15248 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15251 if (!txchain1) {
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,
15319 stbc_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 };
15326 u16 *aux_adc_vmid;
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 };
15330 u16 *aux_adc_gain;
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;
15335 u8 pdetrange;
15336 u8 triso;
15337 u16 regval;
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;
15363 u16 freq;
15364 int coreNum;
15366 if (CHSPEC_IS5G(pi->radio_chanspec)) {
15367 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
15368 } else {
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,
15410 &dac_control);
15411 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15412 &dac_control);
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,
15421 2, 0x15e, 16,
15422 rfseq_rx2tx_dacbufpu_rev7);
15423 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
15424 rfseq_rx2tx_dacbufpu_rev7);
15426 if (PHY_IPA(pi)) {
15427 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15428 rfseq_rx2tx_events_rev3_ipa,
15429 rfseq_rx2tx_dlys_rev3_ipa,
15430 sizeof
15431 (rfseq_rx2tx_events_rev3_ipa) /
15432 sizeof
15433 (rfseq_rx2tx_events_rev3_ipa
15434 [0]));
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);
15444 if (PHY_IPA(pi)) {
15446 if (((pi->pubpi.radiorev == 5)
15447 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
15448 || (pi->pubpi.radiorev == 7)
15449 || (pi->pubpi.radiorev == 8)) {
15451 rccal_bcap_val =
15452 read_radio_reg(pi,
15453 RADIO_2057_RCCAL_BCAP_VAL);
15454 rccal_scap_val =
15455 read_radio_reg(pi,
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;
15469 rccal_ovrd = true;
15471 } else if ((pi->pubpi.radiorev == 7)
15472 || (pi->pubpi.radiorev == 8)) {
15474 tx_lpf_bw_ofdm_20mhz = 4;
15475 tx_lpf_bw_11b = 1;
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;
15482 } else {
15483 rccal_tx20_11n_bcap = 0x14;
15484 rccal_tx20_11n_scap = 0x14;
15485 rccal_tx40_11n_bcap = 0xf;
15486 rccal_tx40_11n_scap = 0xf;
15489 rccal_ovrd = true;
15493 } else {
15495 if (pi->pubpi.radiorev == 5) {
15497 tx_lpf_bw_ofdm_20mhz = 1;
15498 tx_lpf_bw_ofdm_40mhz = 3;
15500 rccal_bcap_val =
15501 read_radio_reg(pi,
15502 RADIO_2057_RCCAL_BCAP_VAL);
15503 rccal_scap_val =
15504 read_radio_reg(pi,
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;
15515 rccal_ovrd = true;
15519 if (rccal_ovrd) {
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),
15572 1, 0x3, 0,
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),
15582 1, 0x3, 0,
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,
15594 0x5);
15595 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
15596 0x30);
15597 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
15598 or_radio_reg(pi,
15599 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
15600 0x1);
15601 or_radio_reg(pi,
15602 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
15603 0x1);
15605 ipa2g_mainbias = 0x1f;
15607 ipa2g_casconv = 0x6f;
15609 ipa2g_biasfilt = 0xaa;
15610 } else {
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,
15623 ipa2g_mainbias);
15624 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15625 coreNum, IPA2G_CASCONV,
15626 ipa2g_casconv);
15627 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15628 coreNum,
15629 IPA2G_BIAS_FILTER,
15630 ipa2g_biasfilt);
15635 if (PHY_IPA(pi)) {
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,
15647 CORE, coreNum,
15648 TXGM_IDAC_BLEED,
15649 txgm_idac_bleed);
15652 if (pi->pubpi.radiorev == 5) {
15654 for (coreNum = 0; coreNum <= 1;
15655 coreNum++) {
15656 WRITE_RADIO_REG4(pi, RADIO_2057,
15657 CORE, coreNum,
15658 IPA2G_CASCONV,
15659 0x13);
15660 WRITE_RADIO_REG4(pi, RADIO_2057,
15661 CORE, coreNum,
15662 IPA2G_IMAIN,
15663 0x1f);
15664 WRITE_RADIO_REG4(pi, RADIO_2057,
15665 CORE, coreNum,
15666 IPA2G_BIAS_FILTER,
15667 0xee);
15668 WRITE_RADIO_REG4(pi, RADIO_2057,
15669 CORE, coreNum,
15670 PAD2G_IDACS,
15671 0x8a);
15672 WRITE_RADIO_REG4(pi, RADIO_2057,
15673 CORE, coreNum,
15674 PAD_BIAS_FILTER_BWS,
15675 0x3e);
15678 } else if ((pi->pubpi.radiorev == 7)
15679 || (pi->pubpi.radiorev == 8)) {
15681 if (CHSPEC_IS40(pi->radio_chanspec) ==
15682 0) {
15683 WRITE_RADIO_REG4(pi, RADIO_2057,
15684 CORE, 0,
15685 IPA2G_IMAIN,
15686 0x14);
15687 WRITE_RADIO_REG4(pi, RADIO_2057,
15688 CORE, 1,
15689 IPA2G_IMAIN,
15690 0x12);
15691 } else {
15692 WRITE_RADIO_REG4(pi, RADIO_2057,
15693 CORE, 0,
15694 IPA2G_IMAIN,
15695 0x16);
15696 WRITE_RADIO_REG4(pi, RADIO_2057,
15697 CORE, 1,
15698 IPA2G_IMAIN,
15699 0x16);
15703 } else {
15704 freq =
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,
15711 0xff);
15712 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15713 1, IPA5G_BIAS_FILTER,
15714 0xff);
15717 } else {
15719 if (pi->pubpi.radiorev != 5) {
15720 for (coreNum = 0; coreNum <= 1; coreNum++) {
15721 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15722 coreNum,
15723 TXMIX2G_TUNE_BOOST_PU,
15724 0x61);
15725 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15726 coreNum,
15727 TXGM_IDAC_BLEED, 0x70);
15732 if (pi->pubpi.radiorev == 4) {
15733 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15734 0x05, 16,
15735 &afectrl_adc_ctrl1_rev7);
15736 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15737 0x15, 16,
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);
15748 } else {
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,
15760 0x05, 16,
15761 &afectrl_adc_ctrl2_rev7);
15762 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15763 0x15, 16,
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);
15800 } else {
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);
15812 pdetrange =
15813 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15814 pdetrange : pi->srom_fem2g.pdetrange;
15816 if (pdetrange == 0) {
15817 chan_freq_range =
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;
15823 } else {
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;
15833 } else {
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] =
15846 0x8c;
15847 aux_adc_vmid_rev7_core1[3] =
15848 0x8c;
15849 aux_adc_gain_rev7[3] = 0;
15850 } else {
15851 aux_adc_vmid_rev7_core0[3] =
15852 0x96;
15853 aux_adc_vmid_rev7_core1[3] =
15854 0x96;
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;
15873 } else {
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);
15900 alpha0 = 293;
15901 alpha1 = 435;
15902 alpha2 = 261;
15903 beta0 = 366;
15904 beta1 = 205;
15905 beta2 = 32;
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]));
15922 if (PHY_IPA(pi)) {
15923 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15924 rfseq_rx2tx_events_rev3_ipa,
15925 rfseq_rx2tx_dlys_rev3_ipa,
15926 sizeof
15927 (rfseq_rx2tx_events_rev3_ipa) /
15928 sizeof
15929 (rfseq_rx2tx_events_rev3_ipa
15930 [0]));
15933 if ((pi->sh->hw_phyrxchain != 0x3) &&
15934 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
15936 if (PHY_IPA(pi)) {
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
15948 [0]));
15951 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15952 write_phy_reg(pi, 0x6a, 0x2);
15953 } else {
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);
15964 } else {
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,
15977 &dac_control);
15978 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15979 &dac_control);
15981 pdetrange =
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;
15989 } else {
15990 aux_adc_vmid = aux_adc_vmid_rev3;
15991 aux_adc_gain = aux_adc_gain_rev3;
15993 chan_freq_range =
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;
16000 break;
16001 case WL_CHAN_FREQ_RANGE_5GM:
16002 aux_adc_vmid[3] = 0x89;
16003 aux_adc_gain[3] = 0;
16004 break;
16005 case WL_CHAN_FREQ_RANGE_5GH:
16006 aux_adc_vmid[3] = 0x89;
16007 aux_adc_gain[3] = 0;
16008 break;
16009 default:
16010 break;
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)) {
16036 chan_freq_range =
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;
16041 } else {
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) {
16059 chan_freq_range =
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];
16087 chan_freq_range =
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;
16094 } else {
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),
16118 0x0);
16119 write_radio_reg(pi,
16120 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
16121 0x0);
16123 write_radio_reg(pi,
16124 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
16125 0x6);
16126 write_radio_reg(pi,
16127 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
16128 0x6);
16130 write_radio_reg(pi,
16131 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
16132 0x7);
16133 write_radio_reg(pi,
16134 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
16135 0x7);
16137 write_radio_reg(pi,
16138 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
16139 0x88);
16140 write_radio_reg(pi,
16141 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
16142 0x88);
16144 write_radio_reg(pi,
16145 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
16146 0x0);
16147 write_radio_reg(pi,
16148 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
16149 0x0);
16151 write_radio_reg(pi,
16152 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
16153 0x0);
16154 write_radio_reg(pi,
16155 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
16156 0x0);
16158 triso =
16159 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16160 triso : pi->srom_fem2g.triso;
16161 if (triso == 7) {
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;
16176 } else {
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,
16218 MHF4_BPHY_TXCORE0,
16219 MHF4_BPHY_TXCORE0, WLC_BAND_ALL);
16222 } else {
16224 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
16225 (pi->sh->boardtype == 0x8b)) {
16226 uint i;
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);
16235 } else {
16236 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
16237 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
16240 regval = 0x000a;
16241 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
16242 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
16244 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16245 regval = 0xcdaa;
16246 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
16247 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
16250 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16251 regval = 0x0000;
16252 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
16253 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
16255 regval = 0x7aab;
16256 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
16257 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
16259 regval = 0x0800;
16260 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
16261 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
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,
16270 rfseq_rx2tx_dlys,
16271 sizeof(rfseq_rx2tx_events) /
16272 sizeof(rfseq_rx2tx_events[0]));
16274 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
16275 rfseq_tx2rx_dlys,
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,
16287 WLC_BAND_ALL);
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);
16297 alpha0 = 293;
16298 alpha1 = 435;
16299 alpha2 = 261;
16300 beta0 = 366;
16301 beta1 = 205;
16302 beta2 = 32;
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;
16332 int ctr;
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 };
16368 s8 *tia_gain_db;
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 };
16379 s8 *tia_gainbits;
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;
16409 u16 init_gaincode;
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;
16445 u8 crsmin_th;
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;
16453 u8 crsminl_th = 0;
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;
16462 u8 crsminu_th;
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;
16471 u16 nbclip_th = 0;
16472 u8 w1clipG_th = 5;
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;
16480 u8 rssi_gain;
16481 u16 regval[21];
16482 u8 triso;
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));
16507 } else {
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));
16517 currband =
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;
16524 rfseq_init_gain =
16525 rfseqG_init_gain_rev6_224B0;
16526 init_gaincode =
16527 initG_gaincode_rev6_224B0;
16528 clip1hi_gaincode =
16529 clip1hiG_gaincode_rev6;
16530 clip1lo_gaincode =
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;
16538 } else {
16539 lna1_gain_db = lna1G_gain_db_rev6;
16540 lna2_gain_db = lna2G_gain_db_rev6;
16541 if (pi->sh->boardflags & BFL_EXTLNA) {
16543 rfseq_init_gain =
16544 rfseqG_init_gain_rev6_elna;
16545 init_gaincode =
16546 initG_gaincode_rev6_elna;
16547 } else {
16548 rfseq_init_gain =
16549 rfseqG_init_gain_rev6;
16550 init_gaincode =
16551 initG_gaincode_rev6;
16553 clip1hi_gaincode =
16554 clip1hiG_gaincode_rev6;
16555 switch (triso) {
16556 case 0:
16557 clip1lo_gaincode =
16558 clip1loG_gaincode_rev6[0];
16559 break;
16560 case 1:
16561 clip1lo_gaincode =
16562 clip1loG_gaincode_rev6[1];
16563 break;
16564 case 2:
16565 clip1lo_gaincode =
16566 clip1loG_gaincode_rev6[2];
16567 break;
16568 case 3:
16569 default:
16571 clip1lo_gaincode =
16572 clip1loG_gaincode_rev6[3];
16573 break;
16574 case 4:
16575 clip1lo_gaincode =
16576 clip1loG_gaincode_rev6[4];
16577 break;
16578 case 5:
16579 clip1lo_gaincode =
16580 clip1loG_gaincode_rev6[5];
16581 break;
16582 case 6:
16583 clip1lo_gaincode =
16584 clip1loG_gaincode_rev6[6];
16585 break;
16586 case 7:
16587 clip1lo_gaincode =
16588 clip1loG_gaincode_rev6[7];
16589 break;
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) {
16603 rfseq_init_gain =
16604 rfseqG_init_gain_rev5_elna;
16605 init_gaincode =
16606 initG_gaincode_rev5_elna;
16607 } else {
16608 rfseq_init_gain = rfseqG_init_gain_rev5;
16609 init_gaincode = initG_gaincode_rev5;
16611 clip1hi_gaincode = clip1hiG_gaincode_rev5;
16612 switch (triso) {
16613 case 0:
16614 clip1lo_gaincode =
16615 clip1loG_gaincode_rev5[0];
16616 break;
16617 case 1:
16618 clip1lo_gaincode =
16619 clip1loG_gaincode_rev5[1];
16620 break;
16621 case 2:
16622 clip1lo_gaincode =
16623 clip1loG_gaincode_rev5[2];
16624 break;
16625 case 3:
16627 clip1lo_gaincode =
16628 clip1loG_gaincode_rev5[3];
16629 break;
16630 case 4:
16631 clip1lo_gaincode =
16632 clip1loG_gaincode_rev5[4];
16633 break;
16634 case 5:
16635 clip1lo_gaincode =
16636 clip1loG_gaincode_rev5[5];
16637 break;
16638 case 6:
16639 clip1lo_gaincode =
16640 clip1loG_gaincode_rev5[6];
16641 break;
16642 case 7:
16643 clip1lo_gaincode =
16644 clip1loG_gaincode_rev5[7];
16645 break;
16646 default:
16647 clip1lo_gaincode =
16648 clip1loG_gaincode_rev5[3];
16649 break;
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;
16670 } else {
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;
16687 } else {
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;
16703 } else {
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) {
16730 rfseq_init_gain =
16731 rfseqA_init_gain_rev4_elna;
16732 init_gaincode =
16733 initA_gaincode_rev4_elna;
16734 } else {
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;
16746 } else {
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),
16773 0xf0);
16774 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16775 0xf0);
16777 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16778 0x0);
16779 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16780 0x0);
16782 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16783 rssi_gain);
16784 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16785 rssi_gain);
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),
16795 0xFF);
16796 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16797 0xFF);
16799 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16800 8, lna1_gain_db);
16801 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16802 8, lna1_gain_db);
16804 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16805 8, lna2_gain_db);
16806 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16807 8, lna2_gain_db);
16809 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16810 8, tia_gain_db);
16811 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16812 8, tia_gain_db);
16814 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16815 8, tia_gainbits);
16816 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16817 8, tia_gainbits);
16819 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16820 8, &lpf_gain_db);
16821 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16822 8, &lpf_gain_db);
16823 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16824 8, &lpf_gainbits);
16825 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16826 8, &lpf_gainbits);
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,
16833 rfseq_init_gain);
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);
16856 } else {
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)))
16888 hpf_code = 4;
16889 else
16890 hpf_code = 5;
16891 else if (CHSPEC_IS40(pi->radio_chanspec))
16892 hpf_code = 6;
16893 else
16894 hpf_code = 7;
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) {
16907 regval[0] = 0;
16908 regval[1] = 1;
16909 regval[2] = 1;
16910 regval[3] = 1;
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))
16943 mod_phy_reg(pi,
16944 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16945 0x7f, 0x4);
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,
16966 lna1_gain_db);
16967 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
16968 lna1_gain_db);
16970 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
16971 lna2_gain_db);
16972 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
16973 lna2_gain_db);
16975 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
16976 tia_gain_db);
16977 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
16978 tia_gain_db);
16980 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
16981 tia_gainbits);
16982 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
16983 tia_gainbits);
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));
16997 } else {
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)
17006 u16 currband;
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 };
17012 s8 *tia_gain_db;
17013 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
17014 s8 *tia_gainbits;
17015 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
17016 u16 *rfseq_init_gain;
17017 u16 init_gaincode;
17018 u16 clip1hi_gaincode;
17019 u16 clip1md_gaincode = 0;
17020 u16 clip1md_gaincode_B;
17021 u16 clip1lo_gaincode;
17022 u16 clip1lo_gaincode_B;
17023 u8 crsminl_th = 0;
17024 u8 crsminu_th;
17025 u16 nbclip_th = 0;
17026 u8 w1clip_th;
17027 u16 freq;
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,
17040 lna1_gain_db);
17041 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17042 lna1_gain_db);
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));
17057 } else {
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)) {
17072 w1clip_th = 25;
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[] = {
17079 11, 17, 22, 25 };
17080 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
17082 crsminu_th = 0x3e;
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[] = {
17090 12, 18, 22, 26 };
17091 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
17093 crsminu_th = 0x45;
17094 clip1md_gaincode_B = 0x14;
17095 nbclip_th = 0xff;
17096 chg_nbclip_th = 1;
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;
17100 } else {
17102 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
17103 s8 lna1A_gain_db_2_rev7[] = {
17104 12, 18, 22, 26 };
17105 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
17107 crsminu_th = 0x41;
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;
17122 } else {
17123 nvar_baseline_offset0 = 4;
17124 nvar_baseline_offset1 = 0;
17126 } else {
17128 crsminu_th = 0x3a;
17129 crsminl_th = 0x3a;
17130 w1clip_th = 20;
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;
17138 } else {
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,
17149 rfseq_init_gain);
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,
17163 tia_gain_db);
17164 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
17165 tia_gain_db);
17167 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17168 tia_gainbits);
17169 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17170 tia_gainbits);
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,
17191 lna1_gain_db);
17192 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17193 lna1_gain_db_2);
17195 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
17196 8, lna2_gain_db);
17197 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
17198 8, lna2_gain_db);
17200 write_phy_reg(pi, 0x24, clip1md_gaincode);
17201 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
17202 } else {
17203 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
17210 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
17212 uint core;
17213 int ctr;
17214 s16 gain_delta[2];
17215 u8 curr_channel;
17216 u16 minmax_gain[2];
17217 u16 regval[4];
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))) {
17225 gain_delta[0] = 6;
17226 gain_delta[1] = 6;
17227 } else {
17229 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17230 gain_delta[0] =
17231 (s16)
17232 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
17233 curr_channel) +
17234 nphy_lnagain_est0[1]), 13);
17235 gain_delta[1] =
17236 (s16)
17237 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
17238 curr_channel) +
17239 nphy_lnagain_est1[1]), 13);
17241 } else {
17243 gain_delta[0] = 0;
17244 gain_delta[1] = 0;
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];
17254 } else {
17255 for (ctr = 0; ctr < 4; ctr++) {
17256 regval[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)
17275 if (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);
17292 } else {
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;
17300 } else {
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);
17319 mod_radio_reg(pi,
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);
17338 mod_radio_reg(pi,
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);
17393 udelay(1000);
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"))
17403 return;
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));
17425 } else {
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);
17432 udelay(2);
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;
17460 } else {
17461 switch (pi->pubpi.radiorev) {
17462 case 5:
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;
17466 break;
17468 case 6:
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;
17472 break;
17474 case 7:
17475 case 9:
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;
17479 break;
17481 case 8:
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;
17485 break;
17487 case 11:
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;
17491 break;
17493 default:
17494 break;
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);
17515 udelay(1000);
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);
17522 } else {
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) {
17544 case 5:
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;
17553 } else {
17554 break;
17557 case 7:
17559 regs_2057_ptr = regs_2057_rev7;
17560 break;
17562 case 8:
17564 regs_2057_ptr = regs_2057_rev8;
17565 break;
17567 default:
17568 break;
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);
17582 mdelay(2);
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);
17594 static bool
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)
17601 uint i;
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;
17605 u32 tbl_len = 0;
17607 int freq = 0;
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) {
17620 case 5:
17622 if (pi->pubpi.radiover == 0x0) {
17624 chan_info_tbl_p_2 =
17625 chan_info_nphyrev8_2057_rev5;
17626 tbl_len =
17627 ARRAY_SIZE
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;
17634 tbl_len =
17635 ARRAY_SIZE
17636 (chan_info_nphyrev9_2057_rev5v1);
17639 break;
17641 case 7:
17642 chan_info_tbl_p_0 =
17643 chan_info_nphyrev8_2057_rev7;
17644 tbl_len =
17645 ARRAY_SIZE(chan_info_nphyrev8_2057_rev7);
17646 break;
17648 case 8:
17649 chan_info_tbl_p_0 =
17650 chan_info_nphyrev8_2057_rev8;
17651 tbl_len =
17652 ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
17653 break;
17655 default:
17656 if (NORADIO_ENAB(pi->pubpi)) {
17657 goto fail;
17659 break;
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);
17665 } else {
17666 goto fail;
17669 for (i = 0; i < tbl_len; i++) {
17670 if (pi->pubpi.radiorev == 5) {
17672 if (chan_info_tbl_p_2[i].chan == channel)
17673 break;
17674 } else {
17676 if (chan_info_tbl_p_0[i].chan == channel)
17677 break;
17681 if (i >= tbl_len) {
17682 goto fail;
17684 if (pi->pubpi.radiorev == 5) {
17685 *t2 = &chan_info_tbl_p_2[i];
17686 freq = chan_info_tbl_p_2[i].freq;
17687 } else {
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) {
17702 case 5:
17703 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
17704 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
17705 break;
17706 case 6:
17707 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
17708 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
17709 break;
17710 case 7:
17711 case 9:
17712 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
17713 tbl_len =
17714 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
17715 break;
17716 case 8:
17717 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
17718 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
17719 break;
17720 case 11:
17721 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
17722 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v11);
17723 break;
17724 default:
17725 if (NORADIO_ENAB(pi->pubpi)) {
17726 goto fail;
17728 break;
17732 for (i = 0; i < tbl_len; i++) {
17733 if (chan_info_tbl_p_1[i].chan == channel)
17734 break;
17737 if (i >= tbl_len) {
17738 goto fail;
17740 *t1 = &chan_info_tbl_p_1[i];
17741 freq = chan_info_tbl_p_1[i].freq;
17743 } else {
17744 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
17745 if (chan_info_nphy_2055[i].chan == channel)
17746 break;
17748 if (i >= ARRAY_SIZE(chan_info_nphy_2055)) {
17749 goto fail;
17751 *t3 = &chan_info_nphy_2055[i];
17752 freq = chan_info_nphy_2055[i].freq;
17755 *f = freq;
17756 return true;
17758 fail:
17759 *f = WL_CHAN_FREQ_RANGE_2G;
17760 return false;
17763 u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
17765 int freq;
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;
17774 if (channel == 0)
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;
17786 } else {
17787 return WL_CHAN_FREQ_RANGE_5GH;
17791 static void
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);
17842 udelay(50);
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);
17851 udelay(300);
17854 static void
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;
17944 else {
17945 switch (pi->pubpi.radiorev) {
17946 case 5:
17947 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17948 break;
17949 case 6:
17950 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17951 break;
17952 case 7:
17953 case 9:
17954 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17955 break;
17956 case 8:
17957 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17958 break;
17959 case 11:
17960 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17961 break;
17964 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17965 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17966 RADIO_2056_SYN,
17967 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
17968 } else {
17969 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17970 RADIO_2056_SYN,
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,
17994 0x1f);
17995 write_radio_reg(pi,
17996 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
17997 0x1f);
17998 write_radio_reg(pi,
17999 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
18000 0xb);
18001 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
18002 0x20);
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;
18024 uint core;
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,
18031 PADG_IDAC, 0xcc);
18033 bias = 0x25;
18034 cascbias = 0x20;
18036 if ((pi->sh->chip ==
18037 BCM43224_CHIP_ID)
18038 || (pi->sh->chip ==
18039 BCM43225_CHIP_ID)) {
18040 if (pi->sh->chippkg ==
18041 BCM43224_FAB_SMIC) {
18042 bias = 0x2a;
18043 cascbias = 0x38;
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,
18060 INTPAG_BOOST_TUNE,
18061 pag_boost_tune);
18062 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18063 PGAG_BOOST_TUNE,
18064 pgag_boost_tune);
18065 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18066 PADG_BOOST_TUNE,
18067 padg_boost_tune);
18068 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18069 MIXG_BOOST_TUNE,
18070 mixg_boost_tune);
18071 } else {
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,
18083 0xee);
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;
18094 uint core;
18096 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
18098 if (freq < 5150) {
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;
18116 } else {
18118 paa_boost_tune = 0x0;
18119 pada_boost_tune = 0x77;
18120 if (freq != 5825) {
18121 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
18122 } else {
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,
18139 TXSPARE1, 0x30);
18140 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18141 PA_SPARE2, 0xee);
18143 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18144 PADA_CASCBIAS, 0x3);
18146 cascbias = 0x30;
18148 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
18149 (pi->sh->chip == BCM43225_CHIP_ID)) {
18150 if (pi->sh->chippkg == BCM43224_FAB_SMIC) {
18151 cascbias = 0x35;
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);
18166 udelay(50);
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,
18177 (1 << 2));
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);
18187 udelay(300);
18190 #define MAX_205x_RCAL_WAITLOOPS 10000
18192 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
18194 u16 rcal_reg = 0;
18195 int i;
18197 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18199 if (pi->pubpi.radiorev == 5) {
18201 and_phy_reg(pi, 0x342, ~(0x1 << 1));
18203 udelay(10);
18205 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
18206 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18207 0x1);
18209 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
18211 udelay(10);
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) {
18218 break;
18220 udelay(100);
18223 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
18224 "HW error: radio calib2"))
18225 return 0;
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,
18236 0x0);
18239 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18241 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
18242 rcal_reg);
18243 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
18244 rcal_reg << 2);
18247 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
18248 u16 savereg;
18250 savereg =
18251 read_radio_reg(pi,
18252 RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN);
18253 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18254 savereg | 0x7);
18255 udelay(10);
18257 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18258 0x1);
18259 udelay(10);
18261 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18262 0x9);
18264 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18265 rcal_reg = read_radio_reg(pi,
18266 RADIO_2056_SYN_RCAL_CODE_OUT |
18267 RADIO_2056_SYN);
18268 if (rcal_reg & 0x80) {
18269 break;
18271 udelay(100);
18274 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
18275 "HW error: radio calib3"))
18276 return 0;
18278 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18279 0x1);
18281 rcal_reg =
18282 read_radio_reg(pi,
18283 RADIO_2056_SYN_RCAL_CODE_OUT |
18284 RADIO_2056_SYN);
18286 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18287 0x0);
18289 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18290 savereg);
18292 return rcal_reg & 0x1f;
18294 return rcal_reg & 0x3e;
18297 static void
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)
18302 int coreNum;
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);
18351 } else {
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,
18419 0x3f);
18420 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18421 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18422 0x8);
18423 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18424 0x8);
18425 } else {
18426 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18427 0x1f);
18428 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18429 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18430 0x8);
18431 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18432 0x8);
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,
18439 0x1b);
18440 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
18441 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18442 0xa);
18443 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18444 0xa);
18445 } else {
18446 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18447 0x1f);
18448 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18449 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18450 0x8);
18451 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18452 0x8);
18457 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18458 if (PHY_IPA(pi)) {
18459 if (pi->pubpi.radiorev == 3) {
18460 txmix2g_tune_boost_pu = 0x6b;
18463 if (pi->pubpi.radiorev == 5)
18464 pad2g_tune_pus = 0x73;
18466 } else {
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,
18483 PAD2G_TUNE_PUS,
18484 pad2g_tune_pus);
18488 udelay(50);
18490 wlc_phy_radio205x_vcocal_nphy(pi);
18493 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
18495 u16 rccal_valid;
18496 int i;
18497 bool chip43226_6362A0;
18499 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
18500 || (pi->pubpi.radiorev == 4)
18501 || (pi->pubpi.radiorev == 6));
18503 rccal_valid = 0;
18504 if (chip43226_6362A0) {
18505 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
18506 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
18507 } else {
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) {
18518 break;
18520 udelay(500);
18523 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18525 rccal_valid = 0;
18526 if (chip43226_6362A0) {
18527 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
18528 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18529 } else {
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) {
18540 break;
18542 udelay(500);
18545 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18547 rccal_valid = 0;
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);
18553 } else {
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) {
18563 break;
18565 udelay(500);
18568 if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
18569 return 0;
18571 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18573 return rccal_valid;
18576 static void
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 |
18585 RADIO_2056_RX0),
18586 ((pi->nphy_rccal_value +
18587 reduction_factr) | 0x80));
18589 pi->nphy_anarxlpf_adjusted = true;
18591 } else {
18592 if (pi->nphy_anarxlpf_adjusted) {
18593 write_radio_reg(pi,
18594 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18595 RADIO_2056_RX0),
18596 (pi->nphy_rccal_value | 0x80));
18598 pi->nphy_anarxlpf_adjusted = false;
18604 static void
18605 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
18606 int *tone_id_buf, u32 *noise_var_buf)
18608 int i;
18609 u32 offset;
18610 int tone_id;
18611 int tbllen =
18612 CHSPEC_IS40(pi->
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,
18622 offset, 32,
18623 (void *)&pi->
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,
18641 offset, 32,
18642 &pi->nphy_saved_noisevars.
18643 min_noise_vars[i]);
18644 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18645 offset, 32,
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)
18656 u16 regval;
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;
18664 regval &= 0xff00;
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;
18670 regval &= 0xff00;
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;
18676 regval &= 0xff00;
18677 regval |= (u16) minpwr;
18678 write_phy_reg(pi, 0x283, regval);
18680 pi->nphy_crsminpwr_adjusted = true;
18682 } else {
18683 if (pi->nphy_crsminpwr_adjusted) {
18684 regval = read_phy_reg(pi, 0x27d);
18685 regval &= 0xff00;
18686 regval |= pi->nphy_crsminpwr[0];
18687 write_phy_reg(pi, 0x27d, regval);
18689 regval = read_phy_reg(pi, 0x280);
18690 regval &= 0xff00;
18691 regval |= pi->nphy_crsminpwr[1];
18692 write_phy_reg(pi, 0x280, regval);
18694 regval = read_phy_reg(pi, 0x283);
18695 regval &= 0xff00;
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)
18707 u8 tx_lpf_bw = 0;
18709 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18710 if (CHSPEC_IS40(pi->radio_chanspec)) {
18711 tx_lpf_bw = 3;
18712 } else {
18713 tx_lpf_bw = 1;
18716 if (PHY_IPA(pi)) {
18717 if (CHSPEC_IS40(pi->radio_chanspec)) {
18718 tx_lpf_bw = 5;
18719 } else {
18720 tx_lpf_bw = 4;
18723 write_phy_reg(pi, 0xe8,
18724 (tx_lpf_bw << 0) |
18725 (tx_lpf_bw << 3) |
18726 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18728 if (PHY_IPA(pi)) {
18730 if (CHSPEC_IS40(pi->radio_chanspec)) {
18731 tx_lpf_bw = 4;
18732 } else {
18733 tx_lpf_bw = 1;
18736 write_phy_reg(pi, 0xe9,
18737 (tx_lpf_bw << 0) |
18738 (tx_lpf_bw << 3) |
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;
18751 u32 tempval = 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);
18771 } else {
18773 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
18774 NULL,
18775 NULL);
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) {
18787 case 3:
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;
18793 break;
18794 case 4:
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;
18800 break;
18801 case 5:
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;
18807 break;
18808 case 6:
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;
18814 break;
18815 case 7:
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;
18821 break;
18822 case 8:
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;
18828 break;
18829 case 9:
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;
18835 break;
18836 case 10:
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;
18842 break;
18843 default:
18844 isAdjustNoiseVar = false;
18845 break;
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,
18854 numTonesAdjust,
18855 nphy_adj_tone_id_buf,
18856 nphy_adj_noise_var_buf);
18858 tempval = 0;
18860 } else {
18862 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18863 NULL);
18867 if ((pi->nphy_aband_spurwar_en) &&
18868 (CHSPEC_IS5G(pi->radio_chanspec))) {
18869 switch (cur_channel) {
18870 case 54:
18871 nphy_adj_tone_id_buf[0] = 32;
18872 nphy_adj_noise_var_buf[0] = 0x25f;
18873 break;
18874 case 38:
18875 case 102:
18876 case 118:
18877 nphy_adj_tone_id_buf[0] = 0;
18878 nphy_adj_noise_var_buf[0] = 0x0;
18879 break;
18880 case 134:
18881 nphy_adj_tone_id_buf[0] = 32;
18882 nphy_adj_noise_var_buf[0] = 0x21f;
18883 break;
18884 case 151:
18885 nphy_adj_tone_id_buf[0] = 16;
18886 nphy_adj_noise_var_buf[0] = 0x23f;
18887 break;
18888 case 153:
18889 case 161:
18890 nphy_adj_tone_id_buf[0] = 48;
18891 nphy_adj_noise_var_buf[0] = 0x23f;
18892 break;
18893 default:
18894 nphy_adj_tone_id_buf[0] = 0;
18895 nphy_adj_noise_var_buf[0] = 0x0;
18896 break;
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);
18904 } else {
18905 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18906 NULL);
18910 if (pi->phyhang_avoid)
18911 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18915 static void
18916 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, chanspec_t chanspec,
18917 const struct nphy_sfo_cfg *ci)
18919 u16 val;
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);
18960 } else {
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)) {
18981 u8 spuravoid = 0;
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)) {
18987 spuravoid = 1;
18989 } else {
18991 if (((val >= 5) && (val <= 8)) || (val == 13)
18992 || (val == 14)) {
18993 spuravoid = 1;
18996 } else {
18997 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18998 if (val == 54) {
18999 spuravoid = 1;
19001 } else {
19003 if (pi->nphy_aband_spurwar_en &&
19004 ((val == 38) || (val == 102)
19005 || (val == 118)))
19006 spuravoid = 1;
19010 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
19011 spuravoid = 1;
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,
19023 0x5341);
19024 W_REG(&pi->regs->tsf_clk_frac_h,
19025 0x8);
19026 } else {
19028 W_REG(&pi->regs->tsf_clk_frac_l,
19029 0x8889);
19030 W_REG(&pi->regs->tsf_clk_frac_h,
19031 0x8);
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)
19053 int freq;
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)) {
19060 return;
19063 if (!wlc_phy_chan2freq_nphy
19064 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
19065 return;
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);
19078 } else {
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,
19093 0x2,
19094 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19095 : 0));
19096 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
19097 0x2,
19098 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19099 : 0));
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));
19108 } else {
19110 mod_radio_reg(pi,
19111 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
19112 0x4,
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));
19120 } else {
19122 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
19123 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
19124 : (0x05 << 4)));
19126 wlc_phy_chanspec_radio2055_setup(pi, t3);
19127 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19128 (const struct nphy_sfo_cfg *)&(t3->
19129 PHY_BW1a));
19134 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
19136 void *tbl_ptr;
19137 int coreNum;
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.
19147 rxcal_coeffs_2G);
19149 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19150 txcal_radio_regs =
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] =
19155 read_radio_reg(pi,
19156 RADIO_2056_TX_LOFT_FINE_I |
19157 RADIO_2056_TX0);
19158 pi->calibration_cache.txcal_radio_regs_2G[1] =
19159 read_radio_reg(pi,
19160 RADIO_2056_TX_LOFT_FINE_Q |
19161 RADIO_2056_TX0);
19162 pi->calibration_cache.txcal_radio_regs_2G[2] =
19163 read_radio_reg(pi,
19164 RADIO_2056_TX_LOFT_FINE_I |
19165 RADIO_2056_TX1);
19166 pi->calibration_cache.txcal_radio_regs_2G[3] =
19167 read_radio_reg(pi,
19168 RADIO_2056_TX_LOFT_FINE_Q |
19169 RADIO_2056_TX1);
19171 pi->calibration_cache.txcal_radio_regs_2G[4] =
19172 read_radio_reg(pi,
19173 RADIO_2056_TX_LOFT_COARSE_I |
19174 RADIO_2056_TX0);
19175 pi->calibration_cache.txcal_radio_regs_2G[5] =
19176 read_radio_reg(pi,
19177 RADIO_2056_TX_LOFT_COARSE_Q |
19178 RADIO_2056_TX0);
19179 pi->calibration_cache.txcal_radio_regs_2G[6] =
19180 read_radio_reg(pi,
19181 RADIO_2056_TX_LOFT_COARSE_I |
19182 RADIO_2056_TX1);
19183 pi->calibration_cache.txcal_radio_regs_2G[7] =
19184 read_radio_reg(pi,
19185 RADIO_2056_TX_LOFT_COARSE_Q |
19186 RADIO_2056_TX1);
19187 } else {
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;
19200 } else {
19202 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19203 &pi->calibration_cache.
19204 rxcal_coeffs_5G);
19206 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19207 txcal_radio_regs =
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] =
19212 read_radio_reg(pi,
19213 RADIO_2056_TX_LOFT_FINE_I |
19214 RADIO_2056_TX0);
19215 pi->calibration_cache.txcal_radio_regs_5G[1] =
19216 read_radio_reg(pi,
19217 RADIO_2056_TX_LOFT_FINE_Q |
19218 RADIO_2056_TX0);
19219 pi->calibration_cache.txcal_radio_regs_5G[2] =
19220 read_radio_reg(pi,
19221 RADIO_2056_TX_LOFT_FINE_I |
19222 RADIO_2056_TX1);
19223 pi->calibration_cache.txcal_radio_regs_5G[3] =
19224 read_radio_reg(pi,
19225 RADIO_2056_TX_LOFT_FINE_Q |
19226 RADIO_2056_TX1);
19228 pi->calibration_cache.txcal_radio_regs_5G[4] =
19229 read_radio_reg(pi,
19230 RADIO_2056_TX_LOFT_COARSE_I |
19231 RADIO_2056_TX0);
19232 pi->calibration_cache.txcal_radio_regs_5G[5] =
19233 read_radio_reg(pi,
19234 RADIO_2056_TX_LOFT_COARSE_Q |
19235 RADIO_2056_TX0);
19236 pi->calibration_cache.txcal_radio_regs_5G[6] =
19237 read_radio_reg(pi,
19238 RADIO_2056_TX_LOFT_COARSE_I |
19239 RADIO_2056_TX1);
19240 pi->calibration_cache.txcal_radio_regs_5G[7] =
19241 read_radio_reg(pi,
19242 RADIO_2056_TX_LOFT_COARSE_Q |
19243 RADIO_2056_TX1);
19244 } else {
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,
19263 LOFT_FINE_I);
19264 txcal_radio_regs[2 * coreNum + 1] =
19265 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19266 LOFT_FINE_Q);
19268 txcal_radio_regs[2 * coreNum + 4] =
19269 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19270 LOFT_COARSE_I);
19271 txcal_radio_regs[2 * coreNum + 5] =
19272 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19273 LOFT_COARSE_Q);
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)
19285 u16 *loft_comp;
19286 u16 txcal_coeffs_bphy[4];
19287 u16 *tbl_ptr;
19288 int coreNum;
19289 u16 *txcal_radio_regs = NULL;
19291 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19292 if (pi->nphy_iqcal_chanspec_2G == 0)
19293 return;
19295 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19296 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
19297 } else {
19298 if (pi->nphy_iqcal_chanspec_5G == 0)
19299 return;
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,
19306 (void *)tbl_ptr);
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];
19313 } else {
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)) {
19332 txcal_radio_regs =
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 |
19338 RADIO_2056_TX0,
19339 pi->calibration_cache.
19340 txcal_radio_regs_2G[0]);
19341 write_radio_reg(pi,
19342 RADIO_2056_TX_LOFT_FINE_Q |
19343 RADIO_2056_TX0,
19344 pi->calibration_cache.
19345 txcal_radio_regs_2G[1]);
19346 write_radio_reg(pi,
19347 RADIO_2056_TX_LOFT_FINE_I |
19348 RADIO_2056_TX1,
19349 pi->calibration_cache.
19350 txcal_radio_regs_2G[2]);
19351 write_radio_reg(pi,
19352 RADIO_2056_TX_LOFT_FINE_Q |
19353 RADIO_2056_TX1,
19354 pi->calibration_cache.
19355 txcal_radio_regs_2G[3]);
19357 write_radio_reg(pi,
19358 RADIO_2056_TX_LOFT_COARSE_I |
19359 RADIO_2056_TX0,
19360 pi->calibration_cache.
19361 txcal_radio_regs_2G[4]);
19362 write_radio_reg(pi,
19363 RADIO_2056_TX_LOFT_COARSE_Q |
19364 RADIO_2056_TX0,
19365 pi->calibration_cache.
19366 txcal_radio_regs_2G[5]);
19367 write_radio_reg(pi,
19368 RADIO_2056_TX_LOFT_COARSE_I |
19369 RADIO_2056_TX1,
19370 pi->calibration_cache.
19371 txcal_radio_regs_2G[6]);
19372 write_radio_reg(pi,
19373 RADIO_2056_TX_LOFT_COARSE_Q |
19374 RADIO_2056_TX1,
19375 pi->calibration_cache.
19376 txcal_radio_regs_2G[7]);
19377 } else {
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.
19394 rxcal_coeffs_2G);
19395 } else {
19396 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19397 txcal_radio_regs =
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 |
19403 RADIO_2056_TX0,
19404 pi->calibration_cache.
19405 txcal_radio_regs_5G[0]);
19406 write_radio_reg(pi,
19407 RADIO_2056_TX_LOFT_FINE_Q |
19408 RADIO_2056_TX0,
19409 pi->calibration_cache.
19410 txcal_radio_regs_5G[1]);
19411 write_radio_reg(pi,
19412 RADIO_2056_TX_LOFT_FINE_I |
19413 RADIO_2056_TX1,
19414 pi->calibration_cache.
19415 txcal_radio_regs_5G[2]);
19416 write_radio_reg(pi,
19417 RADIO_2056_TX_LOFT_FINE_Q |
19418 RADIO_2056_TX1,
19419 pi->calibration_cache.
19420 txcal_radio_regs_5G[3]);
19422 write_radio_reg(pi,
19423 RADIO_2056_TX_LOFT_COARSE_I |
19424 RADIO_2056_TX0,
19425 pi->calibration_cache.
19426 txcal_radio_regs_5G[4]);
19427 write_radio_reg(pi,
19428 RADIO_2056_TX_LOFT_COARSE_Q |
19429 RADIO_2056_TX0,
19430 pi->calibration_cache.
19431 txcal_radio_regs_5G[5]);
19432 write_radio_reg(pi,
19433 RADIO_2056_TX_LOFT_COARSE_I |
19434 RADIO_2056_TX1,
19435 pi->calibration_cache.
19436 txcal_radio_regs_5G[6]);
19437 write_radio_reg(pi,
19438 RADIO_2056_TX_LOFT_COARSE_Q |
19439 RADIO_2056_TX1,
19440 pi->calibration_cache.
19441 txcal_radio_regs_5G[7]);
19442 } else {
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.
19459 rxcal_coeffs_5G);
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,
19466 LOFT_FINE_I,
19467 txcal_radio_regs[2 * coreNum]);
19468 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19469 LOFT_FINE_Q,
19470 txcal_radio_regs[2 * coreNum + 1]);
19472 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19473 LOFT_COARSE_I,
19474 txcal_radio_regs[2 * coreNum + 4]);
19475 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19476 LOFT_COARSE_Q,
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;
19485 u16 mask = 0xfc00;
19486 u32 mc = 0;
19488 if (NREV_GE(pi->pubpi.phy_rev, 7))
19489 return;
19491 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19492 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
19494 if (lut_init == false)
19495 return;
19497 if (pi->srom_fem2g.antswctrllut == 0) {
19498 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19499 1, 0x02, 16, &v0);
19500 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19501 1, 0x03, 16, &v1);
19502 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19503 1, 0x08, 16, &v2);
19504 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19505 1, 0x0C, 16, &v3);
19508 if (pi->srom_fem5g.antswctrllut == 0) {
19509 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19510 1, 0x12, 16, &v0);
19511 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19512 1, 0x13, 16, &v1);
19513 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19514 1, 0x18, 16, &v2);
19515 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19516 1, 0x1C, 16, &v3);
19518 } else {
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);
19533 if (lut_init) {
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)) {
19548 suspended =
19549 (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC) ?
19550 false : true;
19551 if (!suspended)
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);
19564 return new_ctl;
19567 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
19570 if (write == 0) {
19571 vals[0] = read_phy_reg(pi, 0x2c);
19572 vals[1] = read_phy_reg(pi, 0x42);
19573 } else {
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;
19584 switch (cmd) {
19585 case NPHY_RFSEQ_RX2TX:
19586 trigger_mask = NPHY_RfseqTrigger_rx2tx;
19587 status_mask = NPHY_RfseqStatus_rx2tx;
19588 break;
19589 case NPHY_RFSEQ_TX2RX:
19590 trigger_mask = NPHY_RfseqTrigger_tx2rx;
19591 status_mask = NPHY_RfseqStatus_tx2rx;
19592 break;
19593 case NPHY_RFSEQ_RESET2RX:
19594 trigger_mask = NPHY_RfseqTrigger_reset2rx;
19595 status_mask = NPHY_RfseqStatus_reset2rx;
19596 break;
19597 case NPHY_RFSEQ_UPDATEGAINH:
19598 trigger_mask = NPHY_RfseqTrigger_updategainh;
19599 status_mask = NPHY_RfseqStatus_updategainh;
19600 break;
19601 case NPHY_RFSEQ_UPDATEGAINL:
19602 trigger_mask = NPHY_RfseqTrigger_updategainl;
19603 status_mask = NPHY_RfseqStatus_updategainl;
19604 break;
19605 case NPHY_RFSEQ_UPDATEGAINU:
19606 trigger_mask = NPHY_RfseqTrigger_updategainu;
19607 status_mask = NPHY_RfseqStatus_updategainu;
19608 break;
19609 default:
19610 return;
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");
19623 static void
19624 wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys,
19625 u8 len)
19627 u32 t1_offset, t2_offset;
19628 u8 ctr;
19629 u8 end_event =
19630 NREV_GE(pi->pubpi.phy_rev,
19631 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
19632 u8 end_dly = 1;
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,
19639 events);
19640 t2_offset = t1_offset + 0x080;
19641 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
19642 dlys);
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;
19660 if (offset == 0) {
19661 if (CHSPEC_IS40(pi->radio_chanspec)) {
19662 rx2tx_lpf_rc_lut_offset = 0x159;
19663 } else {
19664 rx2tx_lpf_rc_lut_offset = 0x154;
19666 } else {
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,
19671 &lpf_bw_ctl_val);
19673 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
19675 return lpf_bw_ctl_val;
19678 static void
19679 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
19680 u8 core_mask, u8 off, u8 override_id)
19682 u8 core_num;
19683 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
19684 u8 val_shift = 0;
19686 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19687 en_mask = field;
19688 for (core_num = 0; core_num < 2; core_num++) {
19689 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
19691 switch (field) {
19692 case (0x1 << 2):
19693 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19694 val_addr = (core_num == 0) ? 0x7a :
19695 0x7d;
19696 val_mask = (0x1 << 1);
19697 val_shift = 1;
19698 break;
19699 case (0x1 << 3):
19700 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19701 val_addr = (core_num == 0) ? 0x7a :
19702 0x7d;
19703 val_mask = (0x1 << 2);
19704 val_shift = 2;
19705 break;
19706 case (0x1 << 4):
19707 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19708 val_addr = (core_num == 0) ? 0x7a :
19709 0x7d;
19710 val_mask = (0x1 << 4);
19711 val_shift = 4;
19712 break;
19713 case (0x1 << 5):
19714 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19715 val_addr = (core_num == 0) ? 0x7a :
19716 0x7d;
19717 val_mask = (0x1 << 5);
19718 val_shift = 5;
19719 break;
19720 case (0x1 << 6):
19721 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19722 val_addr = (core_num == 0) ? 0x7a :
19723 0x7d;
19724 val_mask = (0x1 << 6);
19725 val_shift = 6;
19726 break;
19727 case (0x1 << 7):
19728 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19729 val_addr = (core_num == 0) ? 0x7a :
19730 0x7d;
19731 val_mask = (0x1 << 7);
19732 val_shift = 7;
19733 break;
19734 case (0x1 << 10):
19735 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19736 val_addr = (core_num == 0) ? 0xf8 :
19737 0xfa;
19738 val_mask = (0x7 << 4);
19739 val_shift = 4;
19740 break;
19741 case (0x1 << 11):
19742 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19743 val_addr = (core_num == 0) ? 0x7b :
19744 0x7e;
19745 val_mask = (0xffff << 0);
19746 val_shift = 0;
19747 break;
19748 case (0x1 << 12):
19749 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19750 val_addr = (core_num == 0) ? 0x7c :
19751 0x7f;
19752 val_mask = (0xffff << 0);
19753 val_shift = 0;
19754 break;
19755 case (0x3 << 13):
19756 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19757 val_addr = (core_num == 0) ? 0x348 :
19758 0x349;
19759 val_mask = (0xff << 0);
19760 val_shift = 0;
19761 break;
19762 case (0x1 << 13):
19763 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19764 val_addr = (core_num == 0) ? 0x348 :
19765 0x349;
19766 val_mask = (0xf << 0);
19767 val_shift = 0;
19768 break;
19769 default:
19770 addr = 0xffff;
19771 break;
19773 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID1) {
19775 switch (field) {
19776 case (0x1 << 1):
19777 en_addr = (core_num == 0) ? 0x342 :
19778 0x343;
19779 val_addr = (core_num == 0) ? 0x340 :
19780 0x341;
19781 val_mask = (0x1 << 1);
19782 val_shift = 1;
19783 break;
19784 case (0x1 << 3):
19785 en_addr = (core_num == 0) ? 0x342 :
19786 0x343;
19787 val_addr = (core_num == 0) ? 0x340 :
19788 0x341;
19789 val_mask = (0x1 << 3);
19790 val_shift = 3;
19791 break;
19792 case (0x1 << 5):
19793 en_addr = (core_num == 0) ? 0x342 :
19794 0x343;
19795 val_addr = (core_num == 0) ? 0x340 :
19796 0x341;
19797 val_mask = (0x1 << 5);
19798 val_shift = 5;
19799 break;
19800 case (0x1 << 4):
19801 en_addr = (core_num == 0) ? 0x342 :
19802 0x343;
19803 val_addr = (core_num == 0) ? 0x340 :
19804 0x341;
19805 val_mask = (0x1 << 4);
19806 val_shift = 4;
19807 break;
19808 case (0x1 << 2):
19810 en_addr = (core_num == 0) ? 0x342 :
19811 0x343;
19812 val_addr = (core_num == 0) ? 0x340 :
19813 0x341;
19814 val_mask = (0x1 << 2);
19815 val_shift = 2;
19816 break;
19817 case (0x1 << 7):
19819 en_addr = (core_num == 0) ? 0x342 :
19820 0x343;
19821 val_addr = (core_num == 0) ? 0x340 :
19822 0x341;
19823 val_mask = (0x7 << 8);
19824 val_shift = 8;
19825 break;
19826 case (0x1 << 11):
19827 en_addr = (core_num == 0) ? 0x342 :
19828 0x343;
19829 val_addr = (core_num == 0) ? 0x340 :
19830 0x341;
19831 val_mask = (0x1 << 14);
19832 val_shift = 14;
19833 break;
19834 case (0x1 << 10):
19835 en_addr = (core_num == 0) ? 0x342 :
19836 0x343;
19837 val_addr = (core_num == 0) ? 0x340 :
19838 0x341;
19839 val_mask = (0x1 << 13);
19840 val_shift = 13;
19841 break;
19842 case (0x1 << 9):
19843 en_addr = (core_num == 0) ? 0x342 :
19844 0x343;
19845 val_addr = (core_num == 0) ? 0x340 :
19846 0x341;
19847 val_mask = (0x1 << 12);
19848 val_shift = 12;
19849 break;
19850 case (0x1 << 8):
19851 en_addr = (core_num == 0) ? 0x342 :
19852 0x343;
19853 val_addr = (core_num == 0) ? 0x340 :
19854 0x341;
19855 val_mask = (0x1 << 11);
19856 val_shift = 11;
19857 break;
19858 case (0x1 << 6):
19859 en_addr = (core_num == 0) ? 0x342 :
19860 0x343;
19861 val_addr = (core_num == 0) ? 0x340 :
19862 0x341;
19863 val_mask = (0x1 << 6);
19864 val_shift = 6;
19865 break;
19866 case (0x1 << 0):
19867 en_addr = (core_num == 0) ? 0x342 :
19868 0x343;
19869 val_addr = (core_num == 0) ? 0x340 :
19870 0x341;
19871 val_mask = (0x1 << 0);
19872 val_shift = 0;
19873 break;
19874 default:
19875 addr = 0xffff;
19876 break;
19878 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID2) {
19880 switch (field) {
19881 case (0x1 << 3):
19882 en_addr = (core_num == 0) ? 0x346 :
19883 0x347;
19884 val_addr = (core_num == 0) ? 0x344 :
19885 0x345;
19886 val_mask = (0x1 << 3);
19887 val_shift = 3;
19888 break;
19889 case (0x1 << 1):
19890 en_addr = (core_num == 0) ? 0x346 :
19891 0x347;
19892 val_addr = (core_num == 0) ? 0x344 :
19893 0x345;
19894 val_mask = (0x1 << 1);
19895 val_shift = 1;
19896 break;
19897 case (0x1 << 0):
19898 en_addr = (core_num == 0) ? 0x346 :
19899 0x347;
19900 val_addr = (core_num == 0) ? 0x344 :
19901 0x345;
19902 val_mask = (0x1 << 0);
19903 val_shift = 0;
19904 break;
19905 case (0x1 << 2):
19906 en_addr = (core_num == 0) ? 0x346 :
19907 0x347;
19908 val_addr = (core_num == 0) ? 0x344 :
19909 0x345;
19910 val_mask = (0x1 << 2);
19911 val_shift = 2;
19912 break;
19913 case (0x1 << 4):
19914 en_addr = (core_num == 0) ? 0x346 :
19915 0x347;
19916 val_addr = (core_num == 0) ? 0x344 :
19917 0x345;
19918 val_mask = (0x1 << 4);
19919 val_shift = 4;
19920 break;
19921 default:
19922 addr = 0xffff;
19923 break;
19927 if (off) {
19928 and_phy_reg(pi, en_addr, ~en_mask);
19929 and_phy_reg(pi, val_addr, ~val_mask);
19930 } else {
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,
19938 val_mask,
19939 (value <<
19940 val_shift));
19948 static void
19949 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
19950 u8 core_mask, u8 off)
19952 u8 core_num;
19953 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
19954 0, val_mask = 0;
19955 u8 shift = 0, val_shift = 0;
19957 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19959 en_mask = field;
19960 for (core_num = 0; core_num < 2; core_num++) {
19962 switch (field) {
19963 case (0x1 << 1):
19964 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19965 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19966 val_mask = (0x1 << 0);
19967 val_shift = 0;
19968 break;
19969 case (0x1 << 2):
19970 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19971 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19972 val_mask = (0x1 << 1);
19973 val_shift = 1;
19974 break;
19975 case (0x1 << 3):
19976 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19977 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19978 val_mask = (0x1 << 2);
19979 val_shift = 2;
19980 break;
19981 case (0x1 << 4):
19982 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19983 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19984 val_mask = (0x1 << 4);
19985 val_shift = 4;
19986 break;
19987 case (0x1 << 5):
19988 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19989 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19990 val_mask = (0x1 << 5);
19991 val_shift = 5;
19992 break;
19993 case (0x1 << 6):
19994 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19995 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19996 val_mask = (0x1 << 6);
19997 val_shift = 6;
19998 break;
19999 case (0x1 << 7):
20000 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20001 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20002 val_mask = (0x1 << 7);
20003 val_shift = 7;
20004 break;
20005 case (0x1 << 8):
20006 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20007 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20008 val_mask = (0x7 << 8);
20009 val_shift = 8;
20010 break;
20011 case (0x1 << 11):
20012 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20013 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20014 val_mask = (0x7 << 13);
20015 val_shift = 13;
20016 break;
20018 case (0x1 << 9):
20019 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20020 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20021 val_mask = (0x7 << 0);
20022 val_shift = 0;
20023 break;
20025 case (0x1 << 10):
20026 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20027 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20028 val_mask = (0x7 << 4);
20029 val_shift = 4;
20030 break;
20032 case (0x1 << 12):
20033 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20034 val_addr = (core_num == 0) ? 0x7b : 0x7e;
20035 val_mask = (0xffff << 0);
20036 val_shift = 0;
20037 break;
20038 case (0x1 << 13):
20039 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20040 val_addr = (core_num == 0) ? 0x7c : 0x7f;
20041 val_mask = (0xffff << 0);
20042 val_shift = 0;
20043 break;
20044 case (0x1 << 14):
20045 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20046 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20047 val_mask = (0x3 << 6);
20048 val_shift = 6;
20049 break;
20050 case (0x1 << 0):
20051 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
20052 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20053 val_mask = (0x1 << 15);
20054 val_shift = 15;
20055 break;
20056 default:
20057 addr = 0xffff;
20058 break;
20061 if (off) {
20062 and_phy_reg(pi, en_addr, ~en_mask);
20063 and_phy_reg(pi, val_addr, ~val_mask);
20064 } else {
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,
20072 val_mask,
20073 (value <<
20074 val_shift));
20079 } else {
20081 if (off) {
20082 and_phy_reg(pi, 0xec, ~field);
20083 value = 0x0;
20084 } else {
20085 or_phy_reg(pi, 0xec, field);
20088 for (core_num = 0; core_num < 2; core_num++) {
20090 switch (field) {
20091 case (0x1 << 1):
20092 case (0x1 << 9):
20093 case (0x1 << 12):
20094 case (0x1 << 13):
20095 case (0x1 << 14):
20096 addr = 0x78;
20098 core_mask = 0x1;
20099 break;
20100 case (0x1 << 2):
20101 case (0x1 << 3):
20102 case (0x1 << 4):
20103 case (0x1 << 5):
20104 case (0x1 << 6):
20105 case (0x1 << 7):
20106 case (0x1 << 8):
20107 addr = (core_num == 0) ? 0x7a : 0x7d;
20108 break;
20109 case (0x1 << 10):
20110 addr = (core_num == 0) ? 0x7b : 0x7e;
20111 break;
20112 case (0x1 << 11):
20113 addr = (core_num == 0) ? 0x7c : 0x7f;
20114 break;
20115 default:
20116 addr = 0xffff;
20119 switch (field) {
20120 case (0x1 << 1):
20121 mask = (0x7 << 3);
20122 shift = 3;
20123 break;
20124 case (0x1 << 9):
20125 mask = (0x1 << 2);
20126 shift = 2;
20127 break;
20128 case (0x1 << 12):
20129 mask = (0x1 << 8);
20130 shift = 8;
20131 break;
20132 case (0x1 << 13):
20133 mask = (0x1 << 9);
20134 shift = 9;
20135 break;
20136 case (0x1 << 14):
20137 mask = (0xf << 12);
20138 shift = 12;
20139 break;
20140 case (0x1 << 2):
20141 mask = (0x1 << 0);
20142 shift = 0;
20143 break;
20144 case (0x1 << 3):
20145 mask = (0x1 << 1);
20146 shift = 1;
20147 break;
20148 case (0x1 << 4):
20149 mask = (0x1 << 2);
20150 shift = 2;
20151 break;
20152 case (0x1 << 5):
20153 mask = (0x3 << 4);
20154 shift = 4;
20155 break;
20156 case (0x1 << 6):
20157 mask = (0x3 << 6);
20158 shift = 6;
20159 break;
20160 case (0x1 << 7):
20161 mask = (0x1 << 8);
20162 shift = 8;
20163 break;
20164 case (0x1 << 8):
20165 mask = (0x1 << 9);
20166 shift = 9;
20167 break;
20168 case (0x1 << 10):
20169 mask = 0x1fff;
20170 shift = 0x0;
20171 break;
20172 case (0x1 << 11):
20173 mask = 0x1fff;
20174 shift = 0x0;
20175 break;
20176 default:
20177 mask = 0x0;
20178 shift = 0x0;
20179 break;
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));
20189 udelay(1);
20190 and_phy_reg(pi, 0xec, ~(0x1 << 0));
20194 static void
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;
20199 u16 tgain = 0;
20201 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20203 switch (cmd) {
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,
20209 core_mask, off,
20210 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20211 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), value,
20212 core_mask, off,
20213 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20214 break;
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,
20220 core_mask, off,
20221 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20222 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20223 core_mask, off,
20224 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20225 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20226 core_mask, off,
20227 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20228 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0,
20229 core_mask, off,
20230 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20231 break;
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,
20237 core_mask, off,
20238 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20239 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20240 core_mask, off,
20241 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20242 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), value,
20243 core_mask, off,
20244 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20245 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1,
20246 core_mask, off,
20247 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20248 break;
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,
20256 off,
20257 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20258 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x3 << 13),
20259 lpfgain, core_mask,
20260 off,
20261 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20262 break;
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,
20273 off,
20274 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20275 break;
20280 static void
20281 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
20282 u8 coresel, u8 rail, u8 rssi_type)
20284 u16 valuetostuff;
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)
20423 u16 mask, val;
20424 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
20425 startseq;
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;
20430 u8 core;
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);
20448 } else {
20449 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20450 if (core_code == RADIO_MIMO_CORESEL_CORE1
20451 && core == PHY_CORE_1)
20452 continue;
20453 else if (core_code == RADIO_MIMO_CORESEL_CORE2
20454 && core == PHY_CORE_0)
20455 continue;
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) {
20464 mod_phy_reg(pi,
20465 (core ==
20466 PHY_CORE_0) ? 0xa6 : 0xa7,
20467 (0x3 << 8), 0);
20469 mask = (0x1 << 2) |
20470 (0x1 << 3) |
20471 (0x1 << 4) | (0x1 << 5);
20472 mod_phy_reg(pi,
20473 (core ==
20474 PHY_CORE_0) ? 0xf9 : 0xfb,
20475 mask, 0);
20477 if (rssi_type == NPHY_RSSI_SEL_W1) {
20478 if (CHSPEC_IS5G
20479 (pi->radio_chanspec)) {
20480 mask = (0x1 << 2);
20481 val = 1 << 2;
20482 } else {
20483 mask = (0x1 << 3);
20484 val = 1 << 3;
20486 } else if (rssi_type ==
20487 NPHY_RSSI_SEL_W2) {
20488 mask = (0x1 << 4);
20489 val = 1 << 4;
20490 } else {
20491 mask = (0x1 << 5);
20492 val = 1 << 5;
20494 mod_phy_reg(pi,
20495 (core ==
20496 PHY_CORE_0) ? 0xf9 : 0xfb,
20497 mask, val);
20499 mask = (0x1 << 5);
20500 val = 1 << 5;
20501 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20502 0xe5 : 0xe6, mask, val);
20503 } else {
20504 if (rssi_type == NPHY_RSSI_SEL_TBD) {
20506 mask = (0x3 << 8);
20507 val = 1 << 8;
20508 mod_phy_reg(pi,
20509 (core ==
20510 PHY_CORE_0) ? 0xa6
20511 : 0xa7, mask, val);
20512 mask = (0x3 << 10);
20513 val = 1 << 10;
20514 mod_phy_reg(pi,
20515 (core ==
20516 PHY_CORE_0) ? 0xa6
20517 : 0xa7, mask, val);
20518 } else if (rssi_type ==
20519 NPHY_RSSI_SEL_IQ) {
20521 mask = (0x3 << 8);
20522 val = 2 << 8;
20523 mod_phy_reg(pi,
20524 (core ==
20525 PHY_CORE_0) ? 0xa6
20526 : 0xa7, mask, val);
20527 mask = (0x3 << 10);
20528 val = 2 << 10;
20529 mod_phy_reg(pi,
20530 (core ==
20531 PHY_CORE_0) ? 0xa6
20532 : 0xa7, mask, val);
20533 } else {
20535 mask = (0x3 << 8);
20536 val = 3 << 8;
20537 mod_phy_reg(pi,
20538 (core ==
20539 PHY_CORE_0) ? 0xa6
20540 : 0xa7, mask, val);
20541 mask = (0x3 << 10);
20542 val = 3 << 10;
20543 mod_phy_reg(pi,
20544 (core ==
20545 PHY_CORE_0) ? 0xa6
20546 : 0xa7, mask, val);
20548 if (PHY_IPA(pi)) {
20549 if (NREV_GE
20550 (pi->pubpi.phy_rev,
20551 7)) {
20553 write_radio_reg
20554 (pi,
20555 ((core ==
20556 PHY_CORE_0)
20558 RADIO_2057_TX0_TX_SSI_MUX
20560 RADIO_2057_TX1_TX_SSI_MUX),
20561 (CHSPEC_IS5G
20562 (pi->
20563 radio_chanspec)
20564 ? 0xc :
20565 0xe));
20566 } else {
20567 write_radio_reg
20568 (pi,
20569 RADIO_2056_TX_TX_SSI_MUX
20571 ((core ==
20572 PHY_CORE_0)
20574 RADIO_2056_TX0
20576 RADIO_2056_TX1),
20577 (CHSPEC_IS5G
20578 (pi->
20579 radio_chanspec)
20580 ? 0xc :
20581 0xe));
20583 } else {
20585 if (NREV_GE
20586 (pi->pubpi.phy_rev,
20587 7)) {
20588 write_radio_reg
20589 (pi,
20590 ((core ==
20591 PHY_CORE_0)
20593 RADIO_2057_TX0_TX_SSI_MUX
20595 RADIO_2057_TX1_TX_SSI_MUX),
20596 0x11);
20598 if (pi->pubpi.
20599 radioid ==
20600 BCM2057_ID)
20601 write_radio_reg
20602 (pi,
20603 RADIO_2057_IQTEST_SEL_PU,
20604 0x1);
20606 } else {
20607 write_radio_reg
20608 (pi,
20609 RADIO_2056_TX_TX_SSI_MUX
20611 ((core ==
20612 PHY_CORE_0)
20614 RADIO_2056_TX0
20616 RADIO_2056_TX1),
20617 0x11);
20621 afectrlovr_rssi_val = 1 << 9;
20622 mod_phy_reg(pi,
20623 (core ==
20624 PHY_CORE_0) ? 0x8f
20625 : 0xa5, (0x1 << 9),
20626 afectrlovr_rssi_val);
20631 } else {
20633 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20634 (rssi_type == NPHY_RSSI_SEL_W2) ||
20635 (rssi_type == NPHY_RSSI_SEL_NB)) {
20637 val = 0x0;
20638 } else if (rssi_type == NPHY_RSSI_SEL_TBD) {
20640 val = 0x1;
20641 } else if (rssi_type == NPHY_RSSI_SEL_IQ) {
20643 val = 0x2;
20644 } else {
20646 val = 0x3;
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) {
20657 val = 0x1;
20659 if (rssi_type == NPHY_RSSI_SEL_W2) {
20660 val = 0x2;
20662 if (rssi_type == NPHY_RSSI_SEL_NB) {
20663 val = 0x3;
20665 mask = (0x3 << 4);
20666 val = (val << 4);
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;
20679 startseq = 0;
20680 } else {
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;
20688 startseq = 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) |
20705 (0x1 << 12) |
20706 (0x1 << 1) | (0x1 << 0));
20707 rfctrlovr_val = (rfctrlovr_rssi_val <<
20708 5) |
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));
20717 udelay(20);
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,
20726 u8 nsamps)
20728 s16 rssi0, rssi1;
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;
20741 s8 tmp_buf[4];
20742 u8 ctr = 0, samp = 0;
20743 s32 rssi_out_val;
20744 u16 gpiosel_orig;
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);
20755 } else {
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++) {
20771 rssi_buf[ctr] = 0;
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);
20778 } else {
20779 rssi0 = read_phy_reg(pi, 0x219);
20780 rssi1 = read_phy_reg(pi, 0x21a);
20783 ctr = 0;
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);
20813 } else {
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;
20835 u16 gpioSel_save;
20836 s32 radio_temp[4];
20837 s32 radio_temp2[4];
20838 u16 syn_tempprocsense_save;
20839 s16 offset = 0;
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;
20845 s32 auxADC_Vl;
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,
20867 &auxADC_Av_save);
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),
20888 1, 0, 0,
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));
20899 udelay(5);
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;
20912 auxADC_Av = 0x0;
20913 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20914 &auxADC_Vmid);
20915 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20916 &auxADC_Av);
20918 udelay(3);
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);
20924 udelay(5);
20925 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
20927 auxADC_Av = 0x7;
20928 if (radio_temp[1] + radio_temp2[1] < -30) {
20929 auxADC_Vmid = 0x45;
20930 auxADC_Vl = 263;
20931 } else if (radio_temp[1] + radio_temp2[1] < -9) {
20932 auxADC_Vmid = 0x200;
20933 auxADC_Vl = 467;
20934 } else if (radio_temp[1] + radio_temp2[1] < 11) {
20935 auxADC_Vmid = 0x266;
20936 auxADC_Vl = 634;
20937 } else {
20938 auxADC_Vmid = 0x2D5;
20939 auxADC_Vl = 816;
20942 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20943 &auxADC_Vmid);
20944 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20945 &auxADC_Av);
20947 udelay(3);
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);
20953 udelay(5);
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,
20972 &auxADC_Av_save);
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 +
20980 128) / 256;
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);
21003 } else {
21004 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21007 radio_temp[0] =
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;
21020 } else {
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]);
21063 radio_temp[0] =
21064 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
21065 radio_temp[3]);
21067 radio_temp[0] =
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;
21095 static void
21096 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
21098 u8 core;
21100 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21101 if (rssi_type == NPHY_RSSI_SEL_NB) {
21102 if (core == PHY_CORE_0) {
21103 mod_radio_reg(pi,
21104 RADIO_2055_CORE1_B0_NBRSSI_VCM,
21105 RADIO_2055_NBRSSI_VCM_I_MASK,
21106 vcm_buf[2 *
21107 core] <<
21108 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21109 mod_radio_reg(pi,
21110 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21111 RADIO_2055_NBRSSI_VCM_Q_MASK,
21112 vcm_buf[2 * core +
21113 1] <<
21114 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21115 } else {
21116 mod_radio_reg(pi,
21117 RADIO_2055_CORE2_B0_NBRSSI_VCM,
21118 RADIO_2055_NBRSSI_VCM_I_MASK,
21119 vcm_buf[2 *
21120 core] <<
21121 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21122 mod_radio_reg(pi,
21123 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21124 RADIO_2055_NBRSSI_VCM_Q_MASK,
21125 vcm_buf[2 * core +
21126 1] <<
21127 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21129 } else {
21131 if (core == PHY_CORE_0) {
21132 mod_radio_reg(pi,
21133 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21134 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21135 vcm_buf[2 *
21136 core] <<
21137 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21138 } else {
21139 mod_radio_reg(pi,
21140 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21141 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21142 vcm_buf[2 *
21143 core] <<
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);
21155 } else {
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)
21164 s32 target_code;
21165 u16 classif_state;
21166 u16 clip_state[2];
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] = {
21176 {0, 0, 0, 0},
21177 {0, 0, 0, 0},
21178 {0, 0, 0, 0},
21179 {0, 0, 0, 0}
21181 s32 poll_miniq[4][2] = {
21182 {0, 0},
21183 {0, 0},
21184 {0, 0},
21185 {0, 0}
21187 s32 min_d, curr_d;
21188 s32 fine_digital_offset[4];
21189 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21190 s32 min_poll;
21192 switch (rssi_type) {
21193 case NPHY_RSSI_SEL_NB:
21194 target_code = NPHY_RSSICAL_NB_TARGET;
21195 break;
21196 case NPHY_RSSI_SEL_W1:
21197 target_code = NPHY_RSSICAL_W1_TARGET;
21198 break;
21199 case NPHY_RSSI_SEL_W2:
21200 target_code = NPHY_RSSICAL_W2_TARGET;
21201 break;
21202 default:
21203 return;
21204 break;
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;
21228 pd_state[0] =
21229 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
21230 pd_state[1] =
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;
21269 min_vcm = 0;
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) {
21277 min_d = curr_d;
21278 min_vcm = vcm;
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];
21304 } else {
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,
21317 (s8)
21318 fine_digital_offset[result_idx],
21319 (result_idx / 2 ==
21320 0) ? RADIO_MIMO_CORESEL_CORE1 :
21321 RADIO_MIMO_CORESEL_CORE2,
21322 (result_idx % 2 ==
21323 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
21324 rssi_type);
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,
21331 NPHY_RSSI_SEL_NB);
21332 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL) {
21333 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21334 NPHY_RSSI_SEL_W1);
21335 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL) {
21336 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21337 NPHY_RSSI_SEL_W2);
21338 } else {
21339 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21340 NPHY_RSSI_SEL_W2);
21342 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL) {
21343 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21344 NPHY_RSSI_SEL_NB);
21345 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL) {
21346 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21347 NPHY_RSSI_SEL_W1);
21348 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL) {
21349 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21350 NPHY_RSSI_SEL_W2);
21351 } else {
21352 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21353 NPHY_RSSI_SEL_W2);
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;
21376 rxpwr = 0;
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;
21380 if (rxpwr0 > 127)
21381 rxpwr0 -= 256;
21382 if (rxpwr1 > 127)
21383 rxpwr1 -= 256;
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)
21388 phyRx2_l -= 256;
21390 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
21391 rxpwr0 = rxpwr1;
21392 rxpwr1 = phyRx2_l;
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;
21406 return rxpwr;
21409 static void
21410 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
21411 u8 core_code)
21413 u16 mask;
21414 u16 val;
21415 u8 core;
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)
21421 continue;
21422 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21423 && core == PHY_CORE_0)
21424 continue;
21426 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
21428 mask = (0x1 << 10);
21429 val = 1 << 10;
21430 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21431 0x92, mask, val);
21434 if (field == NPHY_RfctrlIntc_override_OFF) {
21436 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21437 0x92, 0);
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);
21447 val = value << 6;
21448 mod_phy_reg(pi,
21449 (core ==
21450 PHY_CORE_0) ? 0x91 : 0x92,
21451 mask, val);
21453 or_phy_reg(pi,
21454 (core ==
21455 PHY_CORE_0) ? 0x91 : 0x92,
21456 (0x1 << 10));
21458 and_phy_reg(pi, 0x2ff, (u16)
21459 ~(0x3 << 14));
21460 or_phy_reg(pi, 0x2ff, (0x1 << 13));
21461 or_phy_reg(pi, 0x2ff, (0x1 << 0));
21462 } else {
21464 mask = (0x1 << 6) |
21465 (0x1 << 7) |
21466 (0x1 << 8) | (0x1 << 9);
21467 val = value << 6;
21468 mod_phy_reg(pi,
21469 (core ==
21470 PHY_CORE_0) ? 0x91 : 0x92,
21471 mask, val);
21473 mask = (0x1 << 0);
21474 val = 1 << 0;
21475 mod_phy_reg(pi,
21476 (core ==
21477 PHY_CORE_0) ? 0xe7 : 0xec,
21478 mask, val);
21480 mask = (core == PHY_CORE_0) ? (0x1 << 0)
21481 : (0x1 << 1);
21482 val = 1 << ((core == PHY_CORE_0) ?
21483 0 : 1);
21484 mod_phy_reg(pi, 0x78, mask, val);
21486 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
21487 != 0), 10000);
21488 if (WARN(read_phy_reg(pi, 0x78) & val,
21489 "HW error: override failed"))
21490 return;
21492 mask = (0x1 << 0);
21493 val = 0 << 0;
21494 mod_phy_reg(pi,
21495 (core ==
21496 PHY_CORE_0) ? 0xe7 : 0xec,
21497 mask, val);
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)) {
21505 val = value << 5;
21506 } else {
21507 val = value << 4;
21510 mod_phy_reg(pi,
21511 (core ==
21512 PHY_CORE_0) ? 0x91 : 0x92,
21513 mask, val);
21515 or_phy_reg(pi,
21516 (core ==
21517 PHY_CORE_0) ? 0x91 : 0x92,
21518 (0x1 << 12));
21519 } else {
21521 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21522 mask = (0x1 << 5);
21523 val = value << 5;
21524 } else {
21525 mask = (0x1 << 4);
21526 val = value << 4;
21528 mod_phy_reg(pi,
21529 (core ==
21530 PHY_CORE_0) ? 0x91 : 0x92,
21531 mask, val);
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)) {
21537 mask = (0x1 << 0);
21538 val = value << 0;
21539 mod_phy_reg(pi,
21540 (core ==
21541 PHY_CORE_0) ? 0x91
21542 : 0x92, mask, val);
21544 mask = (0x1 << 2);
21545 mod_phy_reg(pi,
21546 (core ==
21547 PHY_CORE_0) ? 0x91
21548 : 0x92, mask, 0);
21549 } else {
21551 mask = (0x1 << 2);
21552 val = value << 2;
21553 mod_phy_reg(pi,
21554 (core ==
21555 PHY_CORE_0) ? 0x91
21556 : 0x92, mask, val);
21558 mask = (0x1 << 0);
21559 mod_phy_reg(pi,
21560 (core ==
21561 PHY_CORE_0) ? 0x91
21562 : 0x92, mask, 0);
21565 mask = (0x1 << 11);
21566 val = 1 << 11;
21567 mod_phy_reg(pi,
21568 (core ==
21569 PHY_CORE_0) ? 0x91 : 0x92,
21570 mask, val);
21571 } else {
21573 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21574 mask = (0x1 << 0);
21575 val = value << 0;
21576 } else {
21577 mask = (0x1 << 2);
21578 val = value << 2;
21580 mod_phy_reg(pi,
21581 (core ==
21582 PHY_CORE_0) ? 0x91 : 0x92,
21583 mask, val);
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)) {
21590 mask = (0x1 << 1);
21591 val = value << 1;
21592 mod_phy_reg(pi,
21593 (core ==
21594 PHY_CORE_0) ? 0x91
21595 : 0x92, mask, val);
21597 mask = (0x1 << 3);
21598 mod_phy_reg(pi,
21599 (core ==
21600 PHY_CORE_0) ? 0x91
21601 : 0x92, mask, 0);
21602 } else {
21604 mask = (0x1 << 3);
21605 val = value << 3;
21606 mod_phy_reg(pi,
21607 (core ==
21608 PHY_CORE_0) ? 0x91
21609 : 0x92, mask, val);
21611 mask = (0x1 << 1);
21612 mod_phy_reg(pi,
21613 (core ==
21614 PHY_CORE_0) ? 0x91
21615 : 0x92, mask, 0);
21618 mask = (0x1 << 11);
21619 val = 1 << 11;
21620 mod_phy_reg(pi,
21621 (core ==
21622 PHY_CORE_0) ? 0x91 : 0x92,
21623 mask, val);
21624 } else {
21626 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21627 mask = (0x1 << 1);
21628 val = value << 1;
21629 } else {
21630 mask = (0x1 << 3);
21631 val = value << 3;
21633 mod_phy_reg(pi,
21634 (core ==
21635 PHY_CORE_0) ? 0x91 : 0x92,
21636 mask, val);
21640 } else {
21641 return;
21645 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
21647 u16 classif_state;
21648 u16 clip_state[2];
21649 u16 clip_off[] = { 0xffff, 0xffff };
21650 s32 target_code;
21651 u8 vcm, min_vcm;
21652 u8 vcm_final = 0;
21653 u8 result_idx;
21654 s32 poll_results[8][4] = {
21655 {0, 0, 0, 0},
21656 {0, 0, 0, 0},
21657 {0, 0, 0, 0},
21658 {0, 0, 0, 0},
21659 {0, 0, 0, 0},
21660 {0, 0, 0, 0},
21661 {0, 0, 0, 0},
21662 {0, 0, 0, 0}
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 };
21668 s32 min_poll;
21669 u8 vcm_level_max;
21670 u8 core;
21671 u8 wb_cnt;
21672 u8 rssi_type;
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;
21681 u8 rxcore_state;
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,
21733 0, 0, 0);
21734 } else {
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,
21741 1, 0, 0);
21742 } else {
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),
21748 1, 0, 0,
21749 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21750 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
21751 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21752 } else {
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),
21760 0, 0, 0,
21761 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21762 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 1, 0,
21764 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21765 } else {
21766 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
21767 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
21770 } else {
21771 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21772 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
21773 0, 0, 0,
21774 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21775 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 1, 0,
21777 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21778 } else {
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);
21787 vcm_level_max = 8;
21789 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21791 if ((rxcore_state & (1 << core)) == 0)
21792 continue;
21794 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21795 core ==
21796 PHY_CORE_0 ?
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,
21801 core ==
21802 PHY_CORE_0 ?
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);
21814 } else {
21816 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21817 ((core ==
21818 PHY_CORE_0) ? RADIO_2056_RX0 :
21819 RADIO_2056_RX1),
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;
21833 min_vcm = 0;
21834 min_poll =
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) {
21843 min_d = curr_d;
21844 min_vcm = vcm;
21846 if (poll_results[vcm][result_idx] <
21847 min_poll) {
21848 min_poll =
21849 poll_results[vcm]
21850 [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);
21863 } else {
21864 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21865 ((core ==
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
21880 [result_idx]);
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];
21887 } else {
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,
21902 (s8)
21903 fine_digital_offset
21904 [result_idx],
21905 (result_idx /
21906 2 ==
21907 0) ?
21908 RADIO_MIMO_CORESEL_CORE1
21910 RADIO_MIMO_CORESEL_CORE2,
21911 (result_idx %
21912 2 ==
21913 0) ? NPHY_RAIL_I
21914 : NPHY_RAIL_Q,
21915 NPHY_RSSI_SEL_NB);
21921 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21923 if ((rxcore_state & (1 << core)) == 0)
21924 continue;
21926 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
21927 if (wb_cnt == 0) {
21928 rssi_type = NPHY_RSSI_SEL_W1;
21929 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
21930 } else {
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,
21936 core ==
21937 PHY_CORE_0 ?
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,
21943 core ==
21944 PHY_CORE_0 ?
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
21962 [result_idx]);
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
21970 [result_idx];
21971 } else {
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,
21979 (s8)
21980 fine_digital_offset
21981 [core *
21983 (core ==
21984 PHY_CORE_0)
21986 RADIO_MIMO_CORESEL_CORE1
21988 RADIO_MIMO_CORESEL_CORE2,
21989 (result_idx
21990 % 2 ==
21991 0) ?
21992 NPHY_RAIL_I
21994 NPHY_RAIL_Q,
21995 rssi_type);
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);
22047 } else {
22048 pi->rssical_cache.rssical_radio_regs_2G[0] =
22049 read_radio_reg(pi,
22050 RADIO_2056_RX_RSSI_MISC |
22051 RADIO_2056_RX0);
22052 pi->rssical_cache.rssical_radio_regs_2G[1] =
22053 read_radio_reg(pi,
22054 RADIO_2056_RX_RSSI_MISC |
22055 RADIO_2056_RX1);
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;
22084 } else {
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);
22090 } else {
22091 pi->rssical_cache.rssical_radio_regs_5G[0] =
22092 read_radio_reg(pi,
22093 RADIO_2056_RX_RSSI_MISC |
22094 RADIO_2056_RX0);
22095 pi->rssical_cache.rssical_radio_regs_5G[1] =
22096 read_radio_reg(pi,
22097 RADIO_2056_RX_RSSI_MISC |
22098 RADIO_2056_RX1);
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)
22137 return;
22139 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22140 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22141 RADIO_2057_VCM_MASK,
22142 pi->rssical_cache.
22143 rssical_radio_regs_2G[0]);
22144 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22145 RADIO_2057_VCM_MASK,
22146 pi->rssical_cache.
22147 rssical_radio_regs_2G[1]);
22148 } else {
22149 mod_radio_reg(pi,
22150 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22151 RADIO_2056_VCM_MASK,
22152 pi->rssical_cache.
22153 rssical_radio_regs_2G[0]);
22154 mod_radio_reg(pi,
22155 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22156 RADIO_2056_VCM_MASK,
22157 pi->rssical_cache.
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]);
22186 } else {
22187 if (pi->nphy_rssical_chanspec_5G == 0)
22188 return;
22190 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22191 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22192 RADIO_2057_VCM_MASK,
22193 pi->rssical_cache.
22194 rssical_radio_regs_5G[0]);
22195 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22196 RADIO_2057_VCM_MASK,
22197 pi->rssical_cache.
22198 rssical_radio_regs_5G[1]);
22199 } else {
22200 mod_radio_reg(pi,
22201 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22202 RADIO_2056_VCM_MASK,
22203 pi->rssical_cache.
22204 rssical_radio_regs_5G[0]);
22205 mod_radio_reg(pi,
22206 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22207 RADIO_2056_VCM_MASK,
22208 pi->rssical_cache.
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]);
22239 static u16
22240 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
22241 u8 dac_test_mode)
22243 u8 phy_bw, is_phybw40;
22244 u16 num_samps, t, spur;
22245 fixed theta = 0, rot = 0;
22246 u32 tbl_len;
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) {
22264 return 0;
22267 num_samps = (u16) tbl_len;
22268 rot = FIXED((f_kHz * 36) / phy_bw) / 100;
22269 theta = 0;
22271 for (t = 0; t < num_samps; t++) {
22273 wlc_phy_cordic(theta, &tone_buf[t]);
22275 theta += rot;
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);
22283 kfree(tone_buf);
22285 return 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)
22292 u16 num_samps;
22293 u16 loops = 0xffff;
22294 u16 wait = 0;
22296 num_samps =
22297 wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val, dac_test_mode);
22298 if (num_samps == 0) {
22299 return -EBADE;
22302 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
22303 dac_test_mode, modify_bbmult);
22305 return 0;
22308 static void
22309 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, cs32 *tone_buf,
22310 u16 num_samps)
22312 u16 t;
22313 u32 *data_buf = NULL;
22315 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
22316 if (data_buf == NULL) {
22317 return;
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,
22328 data_buf);
22330 kfree(data_buf);
22332 if (pi->phyhang_avoid)
22333 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22336 static void
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)
22341 u16 bb_mult;
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);
22350 phy_bw = 20;
22351 if (CHSPEC_IS40(pi->radio_chanspec))
22352 phy_bw = 40;
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) &
22360 (0x7 << 8);
22361 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22362 (0x7 << 8);
22363 } else {
22364 wlc_phy_rfctrl_override_nphy_rev7(pi,
22365 (0x1 << 7),
22366 wlc_phy_read_lpf_bw_ctl_nphy
22367 (pi, 0), 0, 0,
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) &
22373 (0x7 << 8);
22374 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22375 (0x7 << 8);
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,
22382 &bb_mult);
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,
22391 &bb_mult);
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);
22401 } else {
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);
22408 if (iqmode) {
22410 and_phy_reg(pi, 0xc2, 0x7FFF);
22412 or_phy_reg(pi, 0xc2, 0x8000);
22413 } else {
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;
22427 u16 bb_mult;
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,
22447 &bb_mult);
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,
22455 (0x1 << 7),
22456 0, 0, 1,
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];
22469 u8 core_no;
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,
22478 curr_gain);
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);
22504 } else {
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);
22515 } else {
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)) {
22522 if (PHY_IPA(pi)) {
22523 tx_pwrctrl_tbl =
22524 wlc_phy_get_ipa_gaintbl_nphy(pi);
22525 } else {
22526 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22527 if (NREV_IS(phyrev, 3)) {
22528 tx_pwrctrl_tbl =
22529 nphy_tpc_5GHz_txgain_rev3;
22530 } else if (NREV_IS(phyrev, 4)) {
22531 tx_pwrctrl_tbl =
22532 (pi->srom_fem5g.
22533 extpagain ==
22534 3) ?
22535 nphy_tpc_5GHz_txgain_HiPwrEPA
22537 nphy_tpc_5GHz_txgain_rev4;
22538 } else {
22539 tx_pwrctrl_tbl =
22540 nphy_tpc_5GHz_txgain_rev5;
22542 } else {
22543 if (NREV_GE(phyrev, 7)) {
22544 if (pi->pubpi.
22545 radiorev == 3) {
22546 tx_pwrctrl_tbl =
22547 nphy_tpc_txgain_epa_2057rev3;
22548 } else if (pi->pubpi.
22549 radiorev ==
22550 5) {
22551 tx_pwrctrl_tbl =
22552 nphy_tpc_txgain_epa_2057rev5;
22555 } else {
22556 if (NREV_GE(phyrev, 5)
22557 && (pi->srom_fem2g.
22558 extpagain ==
22559 3)) {
22560 tx_pwrctrl_tbl =
22561 nphy_tpc_txgain_HiPwrEPA;
22562 } else {
22563 tx_pwrctrl_tbl =
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]]
22572 >> 16) & 0x7;
22573 target_gain.pad[core_no] =
22574 (tx_pwrctrl_tbl[base_idx[core_no]]
22575 >> 19) & 0x1f;
22576 target_gain.pga[core_no] =
22577 (tx_pwrctrl_tbl[base_idx[core_no]]
22578 >> 24) & 0xf;
22579 target_gain.txgm[core_no] =
22580 (tx_pwrctrl_tbl[base_idx[core_no]]
22581 >> 28) & 0x7;
22582 target_gain.txlpf[core_no] =
22583 (tx_pwrctrl_tbl[base_idx[core_no]]
22584 >> 31) & 0x1;
22585 } else {
22586 target_gain.ipa[core_no] =
22587 (tx_pwrctrl_tbl[base_idx[core_no]]
22588 >> 16) & 0xf;
22589 target_gain.pad[core_no] =
22590 (tx_pwrctrl_tbl[base_idx[core_no]]
22591 >> 20) & 0xf;
22592 target_gain.pga[core_no] =
22593 (tx_pwrctrl_tbl[base_idx[core_no]]
22594 >> 24) & 0xf;
22595 target_gain.txgm[core_no] =
22596 (tx_pwrctrl_tbl[base_idx[core_no]]
22597 >> 28) & 0x7;
22599 } else {
22600 target_gain.ipa[core_no] =
22601 (nphy_tpc_txgain[base_idx[core_no]] >> 16) &
22602 0x3;
22603 target_gain.pad[core_no] =
22604 (nphy_tpc_txgain[base_idx[core_no]] >> 18) &
22605 0x3;
22606 target_gain.pga[core_no] =
22607 (nphy_tpc_txgain[base_idx[core_no]] >> 20) &
22608 0x7;
22609 target_gain.txgm[core_no] =
22610 (nphy_tpc_txgain[base_idx[core_no]] >> 23) &
22611 0x7;
22616 return target_gain;
22619 static void
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)
22624 u8 k;
22625 int idx;
22626 u16 gain_index;
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)) {
22638 params->cal_gain =
22639 ((params->txlpf << 15) | (params->
22640 txgm << 12) | (params->
22641 pga << 8) |
22642 (params->pad << 3) | (params->ipa));
22643 } else {
22644 params->cal_gain =
22645 ((params->txgm << 12) | (params->
22646 pga << 8) | (params->
22647 pad << 4) |
22648 (params->ipa));
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;
22655 } else {
22657 gain_index = ((target_gain.pad[core_no] << 0) |
22658 (target_gain.pga[core_no] << 4) | (target_gain.
22659 txgm[core_no]
22660 << 8));
22662 idx = -1;
22663 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
22664 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
22665 gain_index) {
22666 idx = k;
22667 break;
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,
22693 TX_SSI_MASTER);
22695 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22696 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22697 IQCAL_VCM_HG);
22699 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22700 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22701 IQCAL_IDAC);
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,
22710 TX_SSI_MUX);
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,
22715 TSSIA);
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,
22722 TSSI_MISC1);
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,
22730 IQCAL_IDAC, 0x55);
22731 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22732 TSSI_VCM, 0x00);
22733 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22734 TSSIG, 0x00);
22735 if (pi->use_int_tx_iqlo_cal_nphy) {
22736 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22737 core, TX_SSI_MUX, 0x4);
22738 if (!
22739 (pi->
22740 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
22742 WRITE_RADIO_REG3(pi, RADIO_2057,
22743 TX, core,
22744 TSSIA, 0x31);
22745 } else {
22747 WRITE_RADIO_REG3(pi, RADIO_2057,
22748 TX, core,
22749 TSSIA, 0x21);
22752 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22753 TSSI_MISC1, 0x00);
22754 } else {
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,
22760 IQCAL_IDAC, 0x55);
22761 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22762 TSSI_VCM, 0x00);
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,
22769 core, TX_SSI_MUX,
22770 0x06);
22771 if (!
22772 (pi->
22773 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
22775 WRITE_RADIO_REG3(pi, RADIO_2057,
22776 TX, core,
22777 TSSIG, 0x31);
22778 } else {
22780 WRITE_RADIO_REG3(pi, RADIO_2057,
22781 TX, core,
22782 TSSIG, 0x21);
22785 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22786 TSSI_MISC1, 0x00);
22789 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22791 for (core = 0; core <= 1; core++) {
22792 jtag_core =
22793 (core ==
22794 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
22796 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22797 read_radio_reg(pi,
22798 RADIO_2056_TX_TX_SSI_MASTER |
22799 jtag_core);
22801 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22802 read_radio_reg(pi,
22803 RADIO_2056_TX_IQCAL_VCM_HG |
22804 jtag_core);
22806 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22807 read_radio_reg(pi,
22808 RADIO_2056_TX_IQCAL_IDAC |
22809 jtag_core);
22811 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22812 read_radio_reg(pi,
22813 RADIO_2056_TX_TSSI_VCM | jtag_core);
22815 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
22816 read_radio_reg(pi,
22817 RADIO_2056_TX_TX_AMP_DET |
22818 jtag_core);
22820 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22821 read_radio_reg(pi,
22822 RADIO_2056_TX_TX_SSI_MUX |
22823 jtag_core);
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] =
22832 read_radio_reg(pi,
22833 RADIO_2056_TX_TSSI_MISC1 |
22834 jtag_core);
22836 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
22837 read_radio_reg(pi,
22838 RADIO_2056_TX_TSSI_MISC2 |
22839 jtag_core);
22841 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
22842 read_radio_reg(pi,
22843 RADIO_2056_TX_TSSI_MISC3 |
22844 jtag_core);
22846 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22847 write_radio_reg(pi,
22848 RADIO_2056_TX_TX_SSI_MASTER |
22849 jtag_core, 0x0a);
22850 write_radio_reg(pi,
22851 RADIO_2056_TX_IQCAL_VCM_HG |
22852 jtag_core, 0x40);
22853 write_radio_reg(pi,
22854 RADIO_2056_TX_IQCAL_IDAC |
22855 jtag_core, 0x55);
22856 write_radio_reg(pi,
22857 RADIO_2056_TX_TSSI_VCM |
22858 jtag_core, 0x00);
22859 write_radio_reg(pi,
22860 RADIO_2056_TX_TX_AMP_DET |
22861 jtag_core, 0x00);
22863 if (PHY_IPA(pi)) {
22864 write_radio_reg(pi,
22865 RADIO_2056_TX_TX_SSI_MUX
22866 | jtag_core, 0x4);
22867 write_radio_reg(pi,
22868 RADIO_2056_TX_TSSIA |
22869 jtag_core, 0x1);
22870 } else {
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 |
22876 jtag_core, 0x2f);
22878 write_radio_reg(pi,
22879 RADIO_2056_TX_TSSIG | jtag_core,
22880 0x00);
22881 write_radio_reg(pi,
22882 RADIO_2056_TX_TSSI_MISC1 |
22883 jtag_core, 0x00);
22885 write_radio_reg(pi,
22886 RADIO_2056_TX_TSSI_MISC2 |
22887 jtag_core, 0x00);
22888 write_radio_reg(pi,
22889 RADIO_2056_TX_TSSI_MISC3 |
22890 jtag_core, 0x00);
22891 } else {
22892 write_radio_reg(pi,
22893 RADIO_2056_TX_TX_SSI_MASTER |
22894 jtag_core, 0x06);
22895 write_radio_reg(pi,
22896 RADIO_2056_TX_IQCAL_VCM_HG |
22897 jtag_core, 0x40);
22898 write_radio_reg(pi,
22899 RADIO_2056_TX_IQCAL_IDAC |
22900 jtag_core, 0x55);
22901 write_radio_reg(pi,
22902 RADIO_2056_TX_TSSI_VCM |
22903 jtag_core, 0x00);
22904 write_radio_reg(pi,
22905 RADIO_2056_TX_TX_AMP_DET |
22906 jtag_core, 0x00);
22907 write_radio_reg(pi,
22908 RADIO_2056_TX_TSSIA | jtag_core,
22909 0x00);
22911 if (PHY_IPA(pi)) {
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
22920 | jtag_core,
22921 0x11);
22922 } else {
22924 write_radio_reg(pi,
22925 RADIO_2056_TX_TSSIG
22926 | jtag_core,
22927 0x1);
22929 } else {
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 |
22935 jtag_core, 0x20);
22938 write_radio_reg(pi,
22939 RADIO_2056_TX_TSSI_MISC1 |
22940 jtag_core, 0x00);
22941 write_radio_reg(pi,
22942 RADIO_2056_TX_TSSI_MISC2 |
22943 jtag_core, 0x00);
22944 write_radio_reg(pi,
22945 RADIO_2056_TX_TSSI_MISC3 |
22946 jtag_core, 0x00);
22949 } else {
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) ==
22971 0) {
22973 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
22974 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
22975 } else {
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);
22985 } else {
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,
23001 TX_SSI_MASTER,
23002 pi->
23003 tx_rx_cal_radio_saveregs[(core * 11) +
23004 0]);
23006 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23007 pi->
23008 tx_rx_cal_radio_saveregs[(core * 11) +
23009 1]);
23011 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23012 pi->
23013 tx_rx_cal_radio_saveregs[(core * 11) +
23014 2]);
23016 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23017 pi->
23018 tx_rx_cal_radio_saveregs[(core * 11) +
23019 3]);
23021 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23022 pi->
23023 tx_rx_cal_radio_saveregs[(core * 11) +
23024 5]);
23026 if (pi->pubpi.radiorev != 5)
23027 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23028 TSSIA,
23029 pi->
23030 tx_rx_cal_radio_saveregs[(core
23032 11) +
23033 6]);
23035 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23036 pi->
23037 tx_rx_cal_radio_saveregs[(core * 11) +
23038 7]);
23040 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23041 pi->
23042 tx_rx_cal_radio_saveregs[(core * 11) +
23043 8]);
23045 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23046 for (core = 0; core <= 1; core++) {
23047 jtag_core =
23048 (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,
23053 pi->
23054 tx_rx_cal_radio_saveregs[(core * 11) +
23055 0]);
23057 write_radio_reg(pi,
23058 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23059 pi->
23060 tx_rx_cal_radio_saveregs[(core * 11) +
23061 1]);
23063 write_radio_reg(pi,
23064 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23065 pi->
23066 tx_rx_cal_radio_saveregs[(core * 11) +
23067 2]);
23069 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23070 pi->
23071 tx_rx_cal_radio_saveregs[(core * 11) +
23072 3]);
23074 write_radio_reg(pi,
23075 RADIO_2056_TX_TX_AMP_DET | jtag_core,
23076 pi->
23077 tx_rx_cal_radio_saveregs[(core * 11) +
23078 4]);
23080 write_radio_reg(pi,
23081 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23082 pi->
23083 tx_rx_cal_radio_saveregs[(core * 11) +
23084 5]);
23086 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23087 pi->
23088 tx_rx_cal_radio_saveregs[(core * 11) +
23089 6]);
23091 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23092 pi->
23093 tx_rx_cal_radio_saveregs[(core * 11) +
23094 7]);
23096 write_radio_reg(pi,
23097 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23098 pi->
23099 tx_rx_cal_radio_saveregs[(core * 11) +
23100 8]);
23102 write_radio_reg(pi,
23103 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23104 pi->
23105 tx_rx_cal_radio_saveregs[(core * 11) +
23106 9]);
23108 write_radio_reg(pi,
23109 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23110 pi->
23111 tx_rx_cal_radio_saveregs[(core * 11) +
23112 10]);
23114 } else {
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)
23133 u16 val, mask;
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));
23140 val = (0x2 << 8);
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,
23159 &val);
23160 pi->tx_rx_cal_phy_saveregs[5] = val;
23161 val = 0;
23162 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23163 &val);
23165 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23166 &val);
23167 pi->tx_rx_cal_phy_saveregs[6] = val;
23168 val = 0;
23169 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23170 &val);
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);
23183 } else {
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
23212 (pi, 0), 0, 0,
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,
23222 1 << 4);
23224 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23225 mod_radio_reg(pi,
23226 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23227 1, 0);
23228 mod_radio_reg(pi,
23229 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23230 1, 0);
23231 } else {
23232 mod_radio_reg(pi,
23233 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23234 1, 0);
23235 mod_radio_reg(pi,
23236 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23237 1, 0);
23239 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23240 wlc_phy_rfctrl_override_nphy_rev7(pi,
23241 (0x1 << 3), 0,
23242 0x3, 0,
23243 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23246 } else {
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));
23251 val = (0x2 << 12);
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,
23262 &val);
23263 pi->tx_rx_cal_phy_saveregs[3] = val;
23264 val |= 0x2000;
23265 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23266 &val);
23268 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23269 &val);
23270 pi->tx_rx_cal_phy_saveregs[4] = val;
23271 val |= 0x2000;
23272 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23273 &val);
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)
23285 u16 mask;
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)) {
23319 mod_radio_reg(pi,
23320 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23321 1, 1);
23322 mod_radio_reg(pi,
23323 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23324 1, 1);
23325 } else {
23326 mod_radio_reg(pi,
23327 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23328 1, 1);
23329 mod_radio_reg(pi,
23330 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23331 1, 1);
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,
23338 (0x1 << 3), 0,
23339 0x3, 1,
23340 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23343 } else {
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
23364 void
23365 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
23367 u16 tssi_reg;
23368 s32 temp, pwrindex[2];
23369 s32 idle_tssi[2];
23370 s32 rssi_buf[4];
23371 s32 tssival[2];
23372 u8 tssi_type;
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);
23382 tssi_type =
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) {
23395 pwrindex[0] = 0;
23396 } else if (pwrindex[0] > 63) {
23397 pwrindex[0] = 63;
23400 if (pwrindex[1] < 0) {
23401 pwrindex[1] = 0;
23402 } else if (pwrindex[1] > 63) {
23403 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)
23414 u16 txcal_gain[2];
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,
23422 txcal_gain);
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;
23427 } else {
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,
23433 txcal_gain);
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,
23454 false);
23455 } else {
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,
23463 false);
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,
23473 pi->
23474 nphy_txcal_pwr_idx[0],
23475 true);
23476 save_bbmult = true;
23479 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
23480 if (PHY_IPA(pi)) {
23481 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23482 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23483 false);
23484 } else {
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,
23488 false);
23489 save_bbmult = true;
23491 } else {
23493 wlc_phy_internal_cal_txgain_nphy(pi);
23494 save_bbmult = true;
23497 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
23498 if (PHY_IPA(pi)) {
23499 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23500 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23501 false);
23502 } else {
23503 wlc_phy_cal_txgainctrl_nphy(pi, 14,
23504 false);
23506 } else {
23508 wlc_phy_internal_cal_txgain_nphy(pi);
23509 save_bbmult = true;
23513 } else {
23514 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
23517 if (save_bbmult) {
23518 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
23519 &pi->nphy_txcal_bbmult);
23523 void
23524 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
23525 bool debug)
23527 int gainctrl_loopidx;
23528 uint core;
23529 u16 m0m1, curr_m0m1;
23530 s32 delta_power;
23531 s32 txpwrindex;
23532 s32 qdBm_power[2];
23533 u16 orig_BBConfig;
23534 u16 phy_saveregs[4];
23535 u32 freq_test;
23536 u16 ampl_test = 250;
23537 uint stepsize;
23538 bool phyhang_avoid_state = false;
23540 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23542 stepsize = 2;
23543 } else {
23545 stepsize = 1;
23548 if (CHSPEC_IS40(pi->radio_chanspec)) {
23549 freq_test = 5000;
23550 } else {
23551 freq_test = 2500;
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);
23571 if (!debug) {
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);
23578 } else {
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,
23598 false);
23600 if (core == PHY_CORE_0) {
23601 curr_m0m1 = m0m1 & 0xff00;
23602 } else {
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);
23609 udelay(50);
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) {
23621 txpwrindex = 0;
23622 } else if (txpwrindex > 127) {
23623 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) {
23630 txpwrindex = 30;
23633 } else {
23634 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
23635 (pi->srom_fem2g.extpagain == 3)) {
23636 if (txpwrindex < 50) {
23637 txpwrindex = 50;
23642 wlc_phy_txpwr_index_nphy(pi, (1 << core),
23643 (u8) txpwrindex, true);
23646 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
23648 if (debug) {
23649 u16 radio_gain;
23650 u16 dbg_m0m1;
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,
23655 false);
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);
23660 udelay(100);
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,
23666 &radio_gain);
23668 mdelay(4000);
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)
23694 int index;
23695 u32 bbmult_scale;
23696 u16 bbmult;
23697 u16 tblentry;
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;
23719 tblentry =
23720 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
23721 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
23722 &tblentry);
23724 bbmult_scale = ladder_iq[index].percent * bbmult;
23725 bbmult_scale /= 100;
23727 tblentry =
23728 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
23729 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
23730 16, &tblentry);
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;
23740 bool mphase;
23742 if (NORADIO_ENAB(pi->pubpi)) {
23743 wlc_phy_cal_perical_mphase_reset(pi);
23744 return;
23747 if (PHY_MUTED(pi))
23748 return;
23750 if (caltype == PHY_PERICAL_AUTO)
23751 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
23752 else if (caltype == PHY_PERICAL_PARTIAL)
23753 fullcal = false;
23755 if (pi->cal_type_override != PHY_PERICAL_AUTO) {
23756 fullcal =
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,
23782 0x110, 16,
23783 pi->nphy_cal_orig_tx_gain);
23784 } else {
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);
23797 if (!mphase) {
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;
23806 if (0 ==
23807 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal, mphase)) {
23808 if (PHY_IPA(pi))
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,
23814 10000);
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,
23819 (pi->
23820 first_cal_after_assoc
23821 || (pi->
23822 cal_type_override
23824 PHY_PERICAL_FULL))
23825 ? 2 : 0, false)) {
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);
23847 } else {
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++;
23858 break;
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,
23871 true) != 0) {
23873 wlc_phy_cal_perical_mphase_reset(pi);
23874 break;
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;
23881 } else {
23882 pi->mphase_cal_phase_id++;
23884 break;
23886 case MPHASE_CAL_STATE_PAPDCAL:
23887 if ((pi->radar_percal_mask & 0x2) != 0)
23888 pi->nphy_rxcal_active = true;
23890 if (PHY_IPA(pi)) {
23891 wlc_phy_a4(pi, true);
23893 pi->mphase_cal_phase_id++;
23894 break;
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,
23903 false) == 0) {
23904 wlc_phy_savecal_nphy(pi);
23907 pi->mphase_cal_phase_id++;
23908 break;
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++;
23923 } else {
23924 wlc_phy_cal_perical_mphase_reset(pi);
23927 break;
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);
23940 break;
23942 default:
23943 wlc_phy_cal_perical_mphase_reset(pi);
23944 break;
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,
23953 pi->
23954 nphy_cal_orig_pwr_idx
23955 [0], false);
23956 wlc_phy_txpwr_index_nphy(pi, 2,
23957 pi->
23958 nphy_cal_orig_pwr_idx
23959 [1], false);
23961 pi->nphy_txpwrindex[0].index = -1;
23962 pi->nphy_txpwrindex[1].index = -1;
23963 } else {
23964 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
23965 (s8) (pi->
23966 nphy_txpwrindex
23967 [0].
23968 index_internal),
23969 false);
23970 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
23971 (s8) (pi->
23972 nphy_txpwrindex
23973 [1].
23974 index_internal),
23975 false);
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)
23989 u16 val;
23990 u16 tbl_buf[11];
23991 u8 cal_cnt;
23992 u16 cal_cmd;
23993 u8 num_cals, max_cal_cmds;
23994 u16 core_no, cal_type;
23995 u16 diq_start = 0;
23996 u8 phy_bw;
23997 u16 max_val;
23998 u16 tone_freq;
23999 u16 gain_save[2];
24000 u16 cal_gain[2];
24001 struct nphy_iqcal_params cal_params[2];
24002 u32 tbl_len;
24003 void *tbl_ptr;
24004 bool ladder_updated[2];
24005 u8 mphase_cal_lastphase = 0;
24006 int bcmerror = 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,
24011 0x1902,
24012 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
24013 0x6407
24016 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
24017 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
24018 0x3200,
24019 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
24020 0x6407
24023 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
24024 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
24025 0x1202,
24026 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
24027 0x4707
24030 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
24031 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
24032 0x2300,
24033 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
24034 0x4707
24037 u16 tbl_tx_iqlo_cal_startcoefs[] = {
24038 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24039 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,
24055 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)) {
24076 phy_bw = 40;
24077 } else {
24078 phy_bw = 20;
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);
24103 } else {
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,
24108 16, tbl_ptr);
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);
24113 } else {
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,
24118 16, tbl_ptr);
24121 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24122 write_phy_reg(pi, 0xc2, 0x8ad9);
24123 } else {
24124 write_phy_reg(pi, 0xc2, 0x8aa9);
24127 max_val = 250;
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);
24132 bcmerror = 0;
24133 } else {
24134 bcmerror =
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)) {
24145 tbl_len -= 2;
24147 } else {
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)) {
24154 tbl_len -= 2;
24156 } else {
24158 fullcal = true;
24160 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24161 tbl_ptr =
24162 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
24163 tbl_len =
24164 ARRAY_SIZE
24165 (tbl_tx_iqlo_cal_startcoefs_nphyrev3);
24166 } else {
24167 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
24168 tbl_len =
24169 ARRAY_SIZE
24170 (tbl_tx_iqlo_cal_startcoefs);
24174 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
24175 16, tbl_ptr);
24177 if (fullcal) {
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);
24181 } else {
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);
24187 if (mphase) {
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;
24191 } else {
24192 num_cals = max_cal_cmds;
24194 } else {
24195 cal_cnt = 0;
24196 num_cals = max_cal_cmds;
24199 for (; cal_cnt < num_cals; cal_cnt++) {
24201 if (fullcal) {
24202 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24203 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
24204 [cal_cnt] :
24205 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
24206 } else {
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) &&
24217 PHY_IPA(pi)
24218 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
24219 if (!ladder_updated[core_no]) {
24220 wlc_phy_update_txcal_ladder_nphy(pi,
24221 core_no);
24222 ladder_updated[core_no] = true;
24226 val =
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,
24236 tbl_buf);
24238 diq_start = tbl_buf[0];
24240 tbl_buf[0] = 0;
24241 wlc_phy_table_write_nphy(pi,
24242 NPHY_TBL_ID_IQLOCAL, 1,
24243 69 + core_no, 16,
24244 tbl_buf);
24247 write_phy_reg(pi, 0xc0, cal_cmd);
24249 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
24250 20000);
24251 if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
24252 "HW error: txiq calib"))
24253 return -EIO;
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;
24269 if (mphase) {
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;
24279 if (!mphase
24280 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
24282 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
24283 16, tbl_buf);
24284 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24285 16, tbl_buf);
24287 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24289 tbl_buf[0] = 0;
24290 tbl_buf[1] = 0;
24291 tbl_buf[2] = 0;
24292 tbl_buf[3] = 0;
24295 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24296 16, tbl_buf);
24298 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
24299 16, tbl_buf);
24300 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24301 16, tbl_buf);
24303 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24304 16, tbl_buf);
24306 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
24307 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24309 tbl_len -= 2;
24311 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24312 tbl_len, 96, 16,
24313 pi->nphy_txiqlocal_bestc);
24315 pi->nphy_txiqlocal_coeffsvalid = true;
24316 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
24317 } else {
24318 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
24319 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24321 tbl_len -= 2;
24323 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24324 tbl_len, 96, 16,
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,
24337 gain_save);
24339 wlc_phy_txcal_radio_cleanup_nphy(pi);
24341 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24342 if (!mphase
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);
24353 return bcmerror;
24356 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
24358 u16 tbl_buf[7];
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);
24373 tbl_buf[0] = 0;
24374 tbl_buf[1] = 0;
24375 tbl_buf[2] = 0;
24376 tbl_buf[3] = 0;
24377 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24378 16, tbl_buf);
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);
24403 void
24404 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
24405 struct nphy_iq_comp *pcomp)
24407 if (write) {
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);
24412 } else {
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);
24420 void
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)
24424 u8 core;
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),
24434 10000);
24435 if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
24436 "HW error: rxiq est"))
24437 return;
24439 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
24440 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24441 est[core].i_pwr =
24442 (read_phy_reg(pi, NPHY_IqestipwrAccHi(core)) << 16)
24443 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
24444 est[core].q_pwr =
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)
24457 u8 curr_core;
24458 struct phy_iq_est est[PHY_CORE_MAX];
24459 struct nphy_iq_comp old_comp, new_comp;
24460 s32 iq = 0;
24461 u32 ii = 0, qq = 0;
24462 s16 iq_nbits, qq_nbits, brsh, arsh;
24463 s32 a, b, temp;
24464 int bcmerror = 0;
24465 uint cal_retry = 0;
24467 if (core_mask == 0x0)
24468 return;
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);
24474 cal_try:
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;
24489 } else {
24490 continue;
24493 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
24494 bcmerror = -EBADE;
24495 break;
24498 iq_nbits = wlc_phy_nbits(iq);
24499 qq_nbits = wlc_phy_nbits(qq);
24501 arsh = 10 - (30 - iq_nbits);
24502 if (arsh >= 0) {
24503 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
24504 temp = (s32) (ii >> arsh);
24505 if (temp == 0) {
24506 bcmerror = -EBADE;
24507 break;
24509 } else {
24510 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
24511 temp = (s32) (ii << -arsh);
24512 if (temp == 0) {
24513 bcmerror = -EBADE;
24514 break;
24518 a /= temp;
24520 brsh = qq_nbits - 31 + 20;
24521 if (brsh >= 0) {
24522 b = (qq << (31 - qq_nbits));
24523 temp = (s32) (ii >> brsh);
24524 if (temp == 0) {
24525 bcmerror = -EBADE;
24526 break;
24528 } else {
24529 b = (qq << (31 - qq_nbits));
24530 temp = (s32) (ii << -brsh);
24531 if (temp == 0) {
24532 bcmerror = -EBADE;
24533 break;
24536 b /= temp;
24537 b -= a * a;
24538 b = (s32) int_sqrt((unsigned long) b);
24539 b -= (1 << 10);
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;
24545 } else {
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;
24555 } else {
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__,
24565 cal_retry);
24567 if (cal_retry < CAL_RETRY_CNT) {
24568 cal_retry++;
24569 goto cal_try;
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)
24580 u16 offtune_val;
24581 u16 bias_g = 0;
24582 u16 bias_a = 0;
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] =
24588 read_radio_reg(pi,
24589 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
24590 pi->tx_rx_cal_radio_saveregs[1] =
24591 read_radio_reg(pi,
24592 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
24594 write_radio_reg(pi,
24595 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24596 0x3);
24597 write_radio_reg(pi,
24598 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24599 0xaf);
24601 } else {
24602 pi->tx_rx_cal_radio_saveregs[0] =
24603 read_radio_reg(pi,
24604 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
24605 pi->tx_rx_cal_radio_saveregs[1] =
24606 read_radio_reg(pi,
24607 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
24609 write_radio_reg(pi,
24610 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24611 0x3);
24612 write_radio_reg(pi,
24613 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24614 0x7f);
24617 } else {
24618 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24619 pi->tx_rx_cal_radio_saveregs[0] =
24620 read_radio_reg(pi,
24621 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
24622 pi->tx_rx_cal_radio_saveregs[1] =
24623 read_radio_reg(pi,
24624 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
24626 write_radio_reg(pi,
24627 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24628 0x3);
24629 write_radio_reg(pi,
24630 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24631 0xaf);
24633 } else {
24634 pi->tx_rx_cal_radio_saveregs[0] =
24635 read_radio_reg(pi,
24636 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
24637 pi->tx_rx_cal_radio_saveregs[1] =
24638 read_radio_reg(pi,
24639 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
24641 write_radio_reg(pi,
24642 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24643 0x3);
24644 write_radio_reg(pi,
24645 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24646 0x7f);
24650 } else {
24651 if (rx_core == PHY_CORE_0) {
24652 pi->tx_rx_cal_radio_saveregs[0] =
24653 read_radio_reg(pi,
24654 RADIO_2056_TX_RXIQCAL_TXMUX |
24655 RADIO_2056_TX1);
24656 pi->tx_rx_cal_radio_saveregs[1] =
24657 read_radio_reg(pi,
24658 RADIO_2056_RX_RXIQCAL_RXMUX |
24659 RADIO_2056_RX0);
24661 if (pi->pubpi.radiorev >= 5) {
24662 pi->tx_rx_cal_radio_saveregs[2] =
24663 read_radio_reg(pi,
24664 RADIO_2056_RX_RXSPARE2 |
24665 RADIO_2056_RX0);
24666 pi->tx_rx_cal_radio_saveregs[3] =
24667 read_radio_reg(pi,
24668 RADIO_2056_TX_TXSPARE2 |
24669 RADIO_2056_TX1);
24672 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24674 if (pi->pubpi.radiorev >= 5) {
24675 pi->tx_rx_cal_radio_saveregs[4] =
24676 read_radio_reg(pi,
24677 RADIO_2056_RX_LNAA_MASTER
24678 | RADIO_2056_RX0);
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);
24691 } else {
24692 pi->tx_rx_cal_radio_saveregs[4] =
24693 read_radio_reg(pi,
24694 RADIO_2056_RX_LNAA_TUNE
24695 | RADIO_2056_RX0);
24697 offtune_val =
24698 (pi->
24699 tx_rx_cal_radio_saveregs[2] & 0xF0)
24700 >> 8;
24701 offtune_val =
24702 (offtune_val <= 0x7) ? 0xF : 0;
24704 mod_radio_reg(pi,
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);
24716 } else {
24717 if (pi->pubpi.radiorev >= 5) {
24718 pi->tx_rx_cal_radio_saveregs[4] =
24719 read_radio_reg(pi,
24720 RADIO_2056_RX_LNAG_MASTER
24721 | RADIO_2056_RX0);
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);
24735 } else {
24736 pi->tx_rx_cal_radio_saveregs[4] =
24737 read_radio_reg(pi,
24738 RADIO_2056_RX_LNAG_TUNE
24739 | RADIO_2056_RX0);
24741 offtune_val =
24742 (pi->
24743 tx_rx_cal_radio_saveregs[2] & 0xF0)
24744 >> 8;
24745 offtune_val =
24746 (offtune_val <= 0x7) ? 0xF : 0;
24748 mod_radio_reg(pi,
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);
24762 } else {
24763 pi->tx_rx_cal_radio_saveregs[0] =
24764 read_radio_reg(pi,
24765 RADIO_2056_TX_RXIQCAL_TXMUX |
24766 RADIO_2056_TX0);
24767 pi->tx_rx_cal_radio_saveregs[1] =
24768 read_radio_reg(pi,
24769 RADIO_2056_RX_RXIQCAL_RXMUX |
24770 RADIO_2056_RX1);
24772 if (pi->pubpi.radiorev >= 5) {
24773 pi->tx_rx_cal_radio_saveregs[2] =
24774 read_radio_reg(pi,
24775 RADIO_2056_RX_RXSPARE2 |
24776 RADIO_2056_RX1);
24777 pi->tx_rx_cal_radio_saveregs[3] =
24778 read_radio_reg(pi,
24779 RADIO_2056_TX_TXSPARE2 |
24780 RADIO_2056_TX0);
24783 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24785 if (pi->pubpi.radiorev >= 5) {
24786 pi->tx_rx_cal_radio_saveregs[4] =
24787 read_radio_reg(pi,
24788 RADIO_2056_RX_LNAA_MASTER
24789 | RADIO_2056_RX1);
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);
24802 } else {
24803 pi->tx_rx_cal_radio_saveregs[4] =
24804 read_radio_reg(pi,
24805 RADIO_2056_RX_LNAA_TUNE
24806 | RADIO_2056_RX1);
24808 offtune_val =
24809 (pi->
24810 tx_rx_cal_radio_saveregs[2] & 0xF0)
24811 >> 8;
24812 offtune_val =
24813 (offtune_val <= 0x7) ? 0xF : 0;
24815 mod_radio_reg(pi,
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);
24827 } else {
24828 if (pi->pubpi.radiorev >= 5) {
24829 pi->tx_rx_cal_radio_saveregs[4] =
24830 read_radio_reg(pi,
24831 RADIO_2056_RX_LNAG_MASTER
24832 | RADIO_2056_RX1);
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);
24845 } else {
24846 pi->tx_rx_cal_radio_saveregs[4] =
24847 read_radio_reg(pi,
24848 RADIO_2056_RX_LNAG_TUNE
24849 | RADIO_2056_RX1);
24851 offtune_val =
24852 (pi->
24853 tx_rx_cal_radio_saveregs[2] & 0xF0)
24854 >> 8;
24855 offtune_val =
24856 (offtune_val <= 0x7) ? 0xF : 0;
24858 mod_radio_reg(pi,
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,
24882 pi->
24883 tx_rx_cal_radio_saveregs[0]);
24884 write_radio_reg(pi,
24885 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24886 pi->
24887 tx_rx_cal_radio_saveregs[1]);
24889 } else {
24890 write_radio_reg(pi,
24891 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24892 pi->
24893 tx_rx_cal_radio_saveregs[0]);
24894 write_radio_reg(pi,
24895 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24896 pi->
24897 tx_rx_cal_radio_saveregs[1]);
24900 } else {
24901 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24902 write_radio_reg(pi,
24903 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24904 pi->
24905 tx_rx_cal_radio_saveregs[0]);
24906 write_radio_reg(pi,
24907 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24908 pi->
24909 tx_rx_cal_radio_saveregs[1]);
24911 } else {
24912 write_radio_reg(pi,
24913 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24914 pi->
24915 tx_rx_cal_radio_saveregs[0]);
24916 write_radio_reg(pi,
24917 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24918 pi->
24919 tx_rx_cal_radio_saveregs[1]);
24923 } else {
24924 if (rx_core == PHY_CORE_0) {
24925 write_radio_reg(pi,
24926 RADIO_2056_TX_RXIQCAL_TXMUX |
24927 RADIO_2056_TX1,
24928 pi->tx_rx_cal_radio_saveregs[0]);
24930 write_radio_reg(pi,
24931 RADIO_2056_RX_RXIQCAL_RXMUX |
24932 RADIO_2056_RX0,
24933 pi->tx_rx_cal_radio_saveregs[1]);
24935 if (pi->pubpi.radiorev >= 5) {
24936 write_radio_reg(pi,
24937 RADIO_2056_RX_RXSPARE2 |
24938 RADIO_2056_RX0,
24939 pi->
24940 tx_rx_cal_radio_saveregs[2]);
24942 write_radio_reg(pi,
24943 RADIO_2056_TX_TXSPARE2 |
24944 RADIO_2056_TX1,
24945 pi->
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
24953 | RADIO_2056_RX0,
24954 pi->
24955 tx_rx_cal_radio_saveregs
24956 [4]);
24957 } else {
24958 write_radio_reg(pi,
24959 RADIO_2056_RX_LNAA_TUNE
24960 | RADIO_2056_RX0,
24961 pi->
24962 tx_rx_cal_radio_saveregs
24963 [4]);
24965 } else {
24966 if (pi->pubpi.radiorev >= 5) {
24967 write_radio_reg(pi,
24968 RADIO_2056_RX_LNAG_MASTER
24969 | RADIO_2056_RX0,
24970 pi->
24971 tx_rx_cal_radio_saveregs
24972 [4]);
24973 } else {
24974 write_radio_reg(pi,
24975 RADIO_2056_RX_LNAG_TUNE
24976 | RADIO_2056_RX0,
24977 pi->
24978 tx_rx_cal_radio_saveregs
24979 [4]);
24983 } else {
24984 write_radio_reg(pi,
24985 RADIO_2056_TX_RXIQCAL_TXMUX |
24986 RADIO_2056_TX0,
24987 pi->tx_rx_cal_radio_saveregs[0]);
24989 write_radio_reg(pi,
24990 RADIO_2056_RX_RXIQCAL_RXMUX |
24991 RADIO_2056_RX1,
24992 pi->tx_rx_cal_radio_saveregs[1]);
24994 if (pi->pubpi.radiorev >= 5) {
24995 write_radio_reg(pi,
24996 RADIO_2056_RX_RXSPARE2 |
24997 RADIO_2056_RX1,
24998 pi->
24999 tx_rx_cal_radio_saveregs[2]);
25001 write_radio_reg(pi,
25002 RADIO_2056_TX_TXSPARE2 |
25003 RADIO_2056_TX0,
25004 pi->
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
25012 | RADIO_2056_RX1,
25013 pi->
25014 tx_rx_cal_radio_saveregs
25015 [4]);
25016 } else {
25017 write_radio_reg(pi,
25018 RADIO_2056_RX_LNAA_TUNE
25019 | RADIO_2056_RX1,
25020 pi->
25021 tx_rx_cal_radio_saveregs
25022 [4]);
25024 } else {
25025 if (pi->pubpi.radiorev >= 5) {
25026 write_radio_reg(pi,
25027 RADIO_2056_RX_LNAG_MASTER
25028 | RADIO_2056_RX1,
25029 pi->
25030 tx_rx_cal_radio_saveregs
25031 [4]);
25032 } else {
25033 write_radio_reg(pi,
25034 RADIO_2056_RX_LNAG_TUNE
25035 | RADIO_2056_RX1,
25036 pi->
25037 tx_rx_cal_radio_saveregs
25038 [4]);
25045 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
25047 u8 tx_core;
25048 u16 rx_antval, tx_antval;
25050 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25052 tx_core = rx_core;
25053 } else {
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);
25089 } else {
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) ?
25104 0x8f : 0xa5,
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),
25114 0, 0, 0,
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,
25128 (0x1 << 7),
25129 2, 0, 0,
25130 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25131 } else {
25132 wlc_phy_rfctrl_override_nphy_rev7(pi,
25133 (0x1 << 7),
25134 0, 0, 0,
25135 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25137 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
25138 0, 0, 0,
25139 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25140 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
25141 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25142 } else {
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,
25152 0x1, rx_core + 1);
25153 } else {
25155 if (rx_core == PHY_CORE_0) {
25156 rx_antval = 0x1;
25157 tx_antval = 0x8;
25158 } else {
25159 rx_antval = 0x4;
25160 tx_antval = 0x2;
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]);
25198 static void
25199 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
25200 u16 *rxgain, u8 cal_type)
25203 u16 num_samps;
25204 struct phy_iq_est est[PHY_CORE_MAX];
25205 u8 tx_core;
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 =
25208 10000;
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;
25217 int fine_gain_idx;
25218 s8 txpwrindex;
25219 u16 nphy_rxcal_txgain[2];
25221 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25223 tx_core = rx_core;
25224 } else {
25225 tx_core = 1 - rx_core;
25228 num_samps = 1024;
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)) {
25237 mix_tia_gain = 3;
25238 } else if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25239 mix_tia_gain = 4;
25240 } else {
25241 mix_tia_gain = 6;
25243 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25244 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
25245 } else {
25246 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
25248 } else {
25249 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25250 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
25251 } else {
25252 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
25256 do {
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) |
25270 (lpf_biq0 << 8) |
25271 (mix_tia_gain <<
25272 4) | (lna2 << 2)
25273 | lna1), 0x3, 0);
25274 } else {
25275 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25276 ((hpvga << 12) |
25277 (lpf_biq1 << 10) |
25278 (lpf_biq0 << 8) |
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,
25290 2, 0x110, 16,
25291 nphy_rxcal_txgain);
25292 } else {
25293 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
25294 false);
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--;
25313 } else {
25314 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
25315 prev_gaintbl_index = curr_gaintbl_index;
25316 curr_gaintbl_index++;
25318 break;
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;
25325 } else {
25326 prev_gaintbl_index = curr_gaintbl_index;
25327 curr_gaintbl_index++;
25329 break;
25331 case NPHY_RXCAL_GAIN_DOWN:
25332 if (curr_pwr > thresh_pwr) {
25333 prev_gaintbl_index = curr_gaintbl_index;
25334 curr_gaintbl_index--;
25335 } else {
25336 gainctrl_done = true;
25337 optim_pwr = curr_pwr;
25338 optim_gaintbl_index = curr_gaintbl_index;
25340 break;
25342 default:
25343 break;
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;
25351 } else {
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;
25373 } else {
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) |
25379 (lpf_biq0 << 8) |
25380 (mix_tia_gain << 4) |
25381 (lna2 << 2) | lna1), 0x3,
25383 } else {
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 <<
25388 4) | (lna2 <<
25389 2) |
25390 lna1), 0x3, 0);
25394 if (rxgain != NULL) {
25395 *rxgain++ = lna1;
25396 *rxgain++ = lna2;
25397 *rxgain++ = mix_tia_gain;
25398 *rxgain++ = lpf_biq0;
25399 *rxgain++ = lpf_biq1;
25400 *rxgain = hpvga;
25403 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
25406 static void
25407 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
25408 u8 cal_type)
25410 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
25413 static u8
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;
25431 u16 orig_dcBypass;
25432 u16 orig_RxStrnFilt40Num[6];
25433 u16 orig_RxStrnFilt40Den[4];
25434 u16 orig_rfctrloverride[2];
25435 u16 orig_rfctrlauxreg[2];
25436 u16 orig_rfctrlrssiothers;
25437 u16 tx_lpf_bw = 4;
25439 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
25440 u16 lpf_hpc = 7, hpvga_hpc = 7;
25442 s8 rccal_stepsize;
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)) {
25449 return 0;
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];
25459 } else {
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;
25470 } else {
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 =
25477 read_radio_reg(pi,
25478 (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx));
25479 orig_rxlpf_rccal_hpc_ovr_val =
25480 read_radio_reg(pi,
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,
25548 0, 1, false);
25549 udelay(2);
25551 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25553 if (core_idx == 0) {
25554 ref_iq_vals =
25555 max_t(u32, (est[0].i_pwr +
25556 est[0].q_pwr) >> (log_num_samps + 1),
25558 } else {
25559 ref_iq_vals =
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,
25566 0, 1, false);
25567 udelay(2);
25570 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25572 if (core_idx == 0) {
25573 target_iq_vals =
25574 (est[0].i_pwr + est[0].q_pwr) >> (log_num_samps +
25576 } else {
25577 target_iq_vals =
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) {
25584 rccal_stepsize--;
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;
25589 rccal_stepsize--;
25590 } else {
25591 rccal_stepsize = (rccal_stepsize >> 1);
25592 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
25593 rccal_stepsize : (-rccal_stepsize));
25596 if (rccal_stepsize == -1) {
25597 best_rccal_val =
25598 (ABS((int)last_pwr_ratio - (int)target_pwr_ratio) <
25599 ABS((int)pwr_ratio -
25600 (int)target_pwr_ratio)) ? last_rccal_val :
25601 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;
25608 } else {
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)
25658 u16 orig_BBConfig;
25659 u8 core_no, rx_core;
25660 u8 best_rccal[2];
25661 u16 gain_save[2];
25662 u16 cal_gain[2];
25663 struct nphy_iqcal_params cal_params[2];
25664 u8 rxcore_state;
25665 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
25666 s8 txlpf_idac;
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++) {
25695 skip_rxiqcal =
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,
25711 false);
25713 if (debug)
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,
25740 rxcore_state);
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++) {
25759 rxlpf_rccal_hpc =
25760 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
25761 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
25763 if (PHY_IPA(pi)) {
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 |
25774 ((rx_core ==
25775 PHY_CORE_0) ? RADIO_2056_RX0 :
25776 RADIO_2056_RX1)),
25777 (rxlpf_rccal_hpc | 0x80));
25779 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
25780 ((rx_core ==
25781 PHY_CORE_0) ? RADIO_2056_TX0 :
25782 RADIO_2056_TX1)),
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,
25794 0, 0x3, 1);
25795 } else {
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,
25801 gain_save);
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);
25809 return 0;
25812 static int
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;
25825 u16 num_samps;
25826 u32 i_pwr, q_pwr, tot_pwr[3];
25827 u8 gain_pass, use_hpf_num;
25828 u16 mask, val1, val2;
25829 u16 core_no;
25830 u16 gain_save[2];
25831 u16 cal_gain[2];
25832 struct nphy_iqcal_params cal_params[2];
25833 u8 phy_bw;
25834 int bcmerror = 0;
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);
25854 num_samps = 1024;
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) ?
25864 0xa6 : 0xa7);
25865 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
25866 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25867 0x91 : 0x92);
25868 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
25869 0x91 : 0x92);
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)) {
25880 write_phy_reg(pi,
25881 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25882 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 :
25883 0x110));
25884 } else {
25886 write_phy_reg(pi,
25887 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25888 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 :
25889 0x120));
25892 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
25893 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
25894 0x114));
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;
25900 } else {
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,
25907 val1);
25908 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
25909 val2);
25912 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
25914 if (debug)
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];
25921 } else {
25923 if (tot_pwr[1] > 10000) {
25924 curr_lna = lna_vals[2];
25925 curr_hpf1 = hpf1_vals[2];
25926 curr_hpf2 = hpf2_vals[2];
25927 use_hpf_num = 1;
25928 curr_hpf = curr_hpf1;
25929 actual_log2_pwr =
25930 wlc_phy_nbits(tot_pwr[2]);
25931 } else {
25932 if (tot_pwr[0] > 10000) {
25933 curr_lna = lna_vals[1];
25934 curr_hpf1 = hpf1_vals[1];
25935 curr_hpf2 = hpf2_vals[1];
25936 use_hpf_num = 1;
25937 curr_hpf = curr_hpf1;
25938 actual_log2_pwr =
25939 wlc_phy_nbits(tot_pwr[1]);
25940 } else {
25941 curr_lna = lna_vals[0];
25942 curr_hpf1 = hpf1_vals[0];
25943 curr_hpf2 = hpf2_vals[0];
25944 use_hpf_num = 2;
25945 curr_hpf = curr_hpf2;
25946 actual_log2_pwr =
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;
25956 } else {
25957 curr_hpf2 = curr_hpf;
25961 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
25962 ((curr_hpf2 << 8) |
25963 (curr_hpf1 << 4) |
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,
25971 (u16) (pi->
25972 nphy_rxcalparams
25974 0xffff),
25975 0, 0, true);
25976 first_playtone = false;
25977 } else {
25978 phy_bw =
25979 (CHSPEC_IS40(pi->radio_chanspec)) ? 40 : 20;
25980 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
25981 0, 0, 0, true);
25984 if (bcmerror == 0) {
25985 if (gain_pass < 3) {
25987 wlc_phy_rx_iq_est_nphy(pi, est,
25988 num_samps, 32,
25990 i_pwr =
25991 (est[rx_core].i_pwr +
25992 num_samps / 2) / num_samps;
25993 q_pwr =
25994 (est[rx_core].q_pwr +
25995 num_samps / 2) / num_samps;
25996 tot_pwr[gain_pass] = i_pwr + q_pwr;
25997 } else {
25999 wlc_phy_calc_rx_iq_comp_nphy(pi,
26000 (1 <<
26001 rx_core));
26004 wlc_phy_stopplayback_nphy(pi);
26007 if (bcmerror != 0)
26008 break;
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);
26023 if (bcmerror != 0)
26024 break;
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,
26031 gain_save);
26033 wlc_phy_stay_in_carriersearch_nphy(pi, false);
26035 return bcmerror;
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)) {
26044 cal_type = 0;
26046 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26047 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
26048 debug);
26049 } else {
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)
26056 int j, type = 2;
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)
26067 int j, type;
26068 u16 addr_offset[] = { 0x186, 0x195,
26069 0x2c5
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]);
26079 if (IS40MHZ(pi)) {
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]);
26084 } else {
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]
26089 [j]);
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]
26097 [j]);
26103 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
26105 int j;
26107 if (IS40MHZ(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]);
26112 } else {
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)
26122 u16 m0m1;
26124 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
26126 return 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)) {
26148 tx_pwrctrl_tbl =
26149 nphy_tpc_txgain_ipa_2g_2057rev4n6;
26150 } else if (pi->pubpi.radiorev == 3) {
26152 tx_pwrctrl_tbl =
26153 nphy_tpc_txgain_ipa_2g_2057rev3;
26154 } else if (pi->pubpi.radiorev == 5) {
26156 tx_pwrctrl_tbl =
26157 nphy_tpc_txgain_ipa_2g_2057rev5;
26158 } else if ((pi->pubpi.radiorev == 7)
26159 || (pi->pubpi.radiorev == 8)) {
26161 tx_pwrctrl_tbl =
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;
26171 } else {
26173 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
26176 } else {
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)) {
26187 tx_pwrctrl_tbl =
26188 nphy_tpc_txgain_ipa_5g_2057rev7;
26191 } else {
26192 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
26196 return tx_pwrctrl_tbl;
26199 static void
26200 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
26201 struct nphy_papd_restore_state *state, u8 core)
26203 s32 tone_freq;
26204 u8 off_core;
26205 u16 mixgain = 0;
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
26214 (pi, 0), 0, 0,
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)) {
26225 mixgain = 0x00;
26227 } else if ((pi->pubpi.radiorev <= 4)
26228 || (pi->pubpi.radiorev == 6)) {
26230 mixgain = 0x00;
26233 } else {
26234 if ((pi->pubpi.radiorev == 4) ||
26235 (pi->pubpi.radiorev == 6)) {
26237 mixgain = 0x50;
26238 } else if ((pi->pubpi.radiorev == 3)
26239 || (pi->pubpi.radiorev == 7)
26240 || (pi->pubpi.radiorev == 8)) {
26242 mixgain = 0x0;
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),
26258 0, 0x3, 0,
26259 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26260 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
26261 (1 << core), 0,
26262 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26263 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
26264 (1 << core), 0,
26265 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26266 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
26267 (1 << core), 0,
26268 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26269 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
26270 (1 << core), 0,
26271 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26272 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
26273 (1 << core), 0,
26274 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26275 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
26276 (1 << core), 0,
26277 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26278 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
26279 (1 << core), 0,
26280 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26282 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
26283 0, (1 << core), 0,
26284 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26285 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
26286 (1 << core), 0,
26287 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26289 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26290 0xa6 : 0xa7);
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),
26299 (0x1 << 2), 0);
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);
26351 } else {
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);
26374 } else {
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);
26385 tone_freq = 4000;
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);
26401 } else {
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) ?
26413 0xa6 : 0xa7);
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 :
26420 0xa5),
26421 (0x1 << 0) |
26422 (0x1 << 1) |
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,
26431 TXFBMIX_G);
26432 state->intpa_master[core] =
26433 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26434 INTPAG_MASTER);
26436 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
26437 0x03);
26438 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26439 INTPAG_MASTER, 0x04);
26440 } else {
26441 state->fbmix[core] =
26442 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26443 TXFBMIX_A);
26444 state->intpa_master[core] =
26445 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26446 INTPAA_MASTER);
26448 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
26449 0x03);
26450 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26451 INTPAA_MASTER, 0x04);
26455 tone_freq = 4000;
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);
26469 static void
26470 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
26471 struct nphy_papd_restore_state *state)
26473 u8 core;
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]);
26487 } else {
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),
26498 1, 0x3, 0,
26499 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26500 } else {
26501 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26502 0, 0x3, 1,
26503 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26505 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
26506 0, 0x3, 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);
26556 } else {
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,
26573 INTPAG_MASTER,
26574 state->intpa_master[core]);
26575 } else {
26576 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26577 TXFBMIX_A, state->fbmix[core]);
26578 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26579 INTPAA_MASTER,
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);
26596 static void
26597 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
26598 u32 end)
26600 u32 *buf, *src, *dst, sz;
26602 sz = end - start + 1;
26604 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
26605 if (NULL == buf) {
26606 return;
26609 src = buf;
26610 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
26612 wlc_phy_table_read_nphy(pi,
26613 (core ==
26614 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
26615 NPHY_TBL_ID_EPSILONTBL1),
26616 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
26618 do {
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;
26625 phy_a6 = 0;
26626 phy_a7 = 0;
26628 do {
26629 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
26630 &phy_a5);
26631 phy_a6 += phy_a4;
26632 phy_a7 += phy_a5;
26633 } while (phy_a2-- != phy_a1);
26635 phy_a6 /= phy_a3;
26636 phy_a7 /= phy_a3;
26637 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
26638 } while (end-- != start);
26640 wlc_phy_table_write_nphy(pi,
26641 (core ==
26642 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
26643 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
26645 kfree(buf);
26648 static void
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;
26654 bool phy_a6;
26655 u8 phy_a7, m[2];
26656 u32 phy_a8 = 0;
26657 struct nphy_txgains phy_a9;
26659 if (NREV_LT(pi->pubpi.phy_rev, 3))
26660 return;
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]));
26677 } else {
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;
26693 } else {
26695 m[core] = IS40MHZ(pi) ? 45 : 64;
26698 } else {
26699 m[core] = IS40MHZ(pi) ? 75 : 107;
26702 m[phy_a7] = 0;
26703 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26705 phy_a2 = 63;
26707 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26708 if ((pi->pubpi.radiorev == 4)
26709 || (pi->pubpi.radiorev == 6)) {
26710 phy_a1 = 30;
26711 phy_a3 = 30;
26712 } else {
26713 phy_a1 = 25;
26714 phy_a3 = 25;
26716 } else {
26717 if ((pi->pubpi.radiorev == 5)
26718 || (pi->pubpi.radiorev == 7)
26719 || (pi->pubpi.radiorev == 8)) {
26720 phy_a1 = 25;
26721 phy_a3 = 25;
26722 } else {
26723 phy_a1 = 35;
26724 phy_a3 = 35;
26728 if (cal_mode == CAL_GCTRL) {
26729 if ((pi->pubpi.radiorev == 5)
26730 && (CHSPEC_IS2G(pi->radio_chanspec))) {
26731 phy_a1 = 55;
26732 } else if (((pi->pubpi.radiorev == 7) &&
26733 (CHSPEC_IS2G(pi->radio_chanspec))) ||
26734 ((pi->pubpi.radiorev == 8) &&
26735 (CHSPEC_IS2G(pi->radio_chanspec)))) {
26736 phy_a1 = 60;
26737 } else {
26738 phy_a1 = 63;
26741 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
26743 phy_a1 = 35;
26744 phy_a3 = 35;
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),
26790 0, 0x3, 0,
26791 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26793 wlc_phy_table_write_nphy(pi,
26794 (core ==
26795 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26796 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26797 32, &phy_a8);
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);
26809 } else {
26811 if (txgains) {
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);
26818 else
26819 if (NREV_IS(pi->pubpi.phy_rev, 5))
26820 phy_a5 = 0x10f7 | (phy_a4 << 8);
26821 else
26822 phy_a5 = 0x50f7 | (phy_a4 << 8);
26823 } else {
26824 phy_a5 = 0x70f7 | (phy_a4 << 8);
26826 wlc_phy_rfctrl_override_nphy(pi,
26827 (0x1 << 13),
26828 phy_a5,
26829 (1 << core), 0);
26830 } else {
26831 wlc_phy_rfctrl_override_nphy(pi,
26832 (0x1 << 13),
26833 0x5bf7,
26834 (1 << core), 0);
26838 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26839 m[core] = IS40MHZ(pi) ? 45 : 64;
26840 } else {
26841 m[core] = IS40MHZ(pi) ? 75 : 107;
26844 m[phy_a7] = 0;
26845 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26847 phy_a2 = 63;
26849 if (cal_mode == CAL_FULL) {
26850 phy_a1 = 25;
26851 phy_a3 = 25;
26852 } else if (cal_mode == CAL_SOFT) {
26853 phy_a1 = 25;
26854 phy_a3 = 25;
26855 } else if (cal_mode == CAL_GCTRL) {
26856 phy_a1 = 63;
26857 phy_a3 = 25;
26858 } else {
26860 phy_a1 = 25;
26861 phy_a3 = 25;
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);
26890 } else {
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,
26927 (core ==
26928 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26929 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26930 32, &phy_a8);
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)
26940 int phy_a1;
26941 int phy_a2;
26942 bool phy_a3;
26943 struct nphy_ipa_txcalgains phy_a4;
26944 bool phy_a5 = false;
26945 bool phy_a6 = true;
26946 s32 phy_a7, phy_a8;
26947 u32 phy_a9;
26948 int phy_a10;
26949 bool phy_a11 = false;
26950 int phy_a12;
26951 u8 phy_a13 = 0;
26952 u8 phy_a14;
26953 u8 *phy_a15 = NULL;
26955 phy_a4.useindex = true;
26956 phy_a12 = start_gain;
26958 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26960 phy_a2 = 20;
26961 phy_a1 = 1;
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;
26977 } else {
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;
26984 } else {
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;
26991 phy_a14 = 0;
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];
26997 } else {
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,
27005 (core ==
27006 PHY_CORE_0 ?
27007 NPHY_TBL_ID_EPSILONTBL0 :
27008 NPHY_TBL_ID_EPSILONTBL1), 1,
27009 63, 32, &phy_a9);
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)) {
27017 if (!phy_a3) {
27018 phy_a12 -= (u8) phy_a1;
27020 phy_a11 = true;
27021 break;
27024 if (phy_a3)
27025 phy_a12 += (u8) phy_a1;
27026 else
27027 phy_a12 -= (u8) phy_a1;
27029 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
27030 if (phy_a12 < phy_a14) {
27031 phy_a12 = phy_a14;
27032 } else {
27033 phy_a12 = phy_a13;
27035 phy_a11 = true;
27036 break;
27039 phy_a6 = false;
27040 phy_a5 = phy_a3;
27043 } else {
27044 phy_a2 = 10;
27045 phy_a1 = 8;
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,
27051 (core ==
27052 PHY_CORE_0 ?
27053 NPHY_TBL_ID_EPSILONTBL0 :
27054 NPHY_TBL_ID_EPSILONTBL1), 1,
27055 63, 32, &phy_a9);
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)) {
27063 if (!phy_a3) {
27064 phy_a12 -= (u8) phy_a1;
27066 phy_a11 = true;
27067 break;
27070 if (phy_a3)
27071 phy_a12 += (u8) phy_a1;
27072 else
27073 phy_a12 -= (u8) phy_a1;
27075 if ((phy_a12 < 0) || (phy_a12 > 127)) {
27076 if (phy_a12 < 0) {
27077 phy_a12 = 0;
27078 } else {
27079 phy_a12 = 127;
27081 phy_a11 = true;
27082 break;
27085 phy_a6 = false;
27086 phy_a5 = phy_a3;
27091 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27092 return (u8) phy_a15[phy_a12];
27093 } else {
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;
27103 bool phy_b3;
27104 u8 phy_b4;
27105 u8 phy_b5;
27106 s16 phy_b6, phy_b7, phy_b8;
27107 u16 phy_b9;
27108 s16 phy_b10, phy_b11, phy_b12;
27110 phy_b11 = 0;
27111 phy_b12 = 0;
27112 phy_b7 = 0;
27113 phy_b8 = 0;
27114 phy_b6 = 0;
27116 if (pi->nphy_papd_skip == 1)
27117 return;
27119 phy_b3 =
27120 (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
27121 if (!phy_b3) {
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))
27137 return;
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++) {
27151 s32 i, val = 0;
27152 for (i = 0; i < 64; i++) {
27153 wlc_phy_table_write_nphy(pi,
27154 ((phy_b5 ==
27155 PHY_CORE_0) ?
27156 NPHY_TBL_ID_EPSILONTBL0 :
27157 NPHY_TBL_ID_EPSILONTBL1), 1,
27158 i, 32, &val);
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,
27184 pi->
27185 nphy_papd_cal_gain_index
27186 [phy_b5], phy_b5);
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,
27195 pi->
27196 nphy_papd_cal_gain_index
27197 [phy_b5], phy_b5);
27201 phy_b1[phy_b5].gains.pad[phy_b5] =
27202 pi->nphy_papd_cal_gain_index[phy_b5];
27204 } else {
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,
27208 pi->
27209 nphy_papd_cal_gain_index
27210 [phy_b5], phy_b5);
27211 phy_b1[phy_b5].gains.pga[phy_b5] =
27212 pi->nphy_papd_cal_gain_index[phy_b5];
27214 } else {
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) {
27225 case 0:
27226 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
27227 break;
27228 case 1:
27229 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
27230 break;
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) {
27248 eps_offset = -2;
27249 } else if (pi->pubpi.radiorev == 5) {
27250 eps_offset = 3;
27251 } else {
27252 eps_offset = -1;
27254 } else {
27255 eps_offset = 2;
27258 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27259 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
27260 phy_b10 = 0;
27261 if ((pi->pubpi.radiorev == 3) ||
27262 (pi->pubpi.radiorev == 4) ||
27263 (pi->pubpi.radiorev == 6)) {
27264 phy_b12 =
27266 (nphy_papd_padgain_dlt_2g_2057rev3n4
27267 [phy_b8]
27268 + 1) / 2;
27269 phy_b10 = -1;
27270 } else if (pi->pubpi.radiorev == 5) {
27271 phy_b12 =
27272 -(nphy_papd_padgain_dlt_2g_2057rev5
27273 [phy_b8]
27274 + 1) / 2;
27275 } else if ((pi->pubpi.radiorev == 7) ||
27276 (pi->pubpi.radiorev == 8)) {
27277 phy_b12 =
27278 -(nphy_papd_padgain_dlt_2g_2057rev7
27279 [phy_b8]
27280 + 1) / 2;
27282 } else {
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)) {
27287 phy_b11 =
27288 -(nphy_papd_pgagain_dlt_5g_2057
27289 [phy_b7]
27290 + 1) / 2;
27291 } else if ((pi->pubpi.radiorev == 7)
27292 || (pi->pubpi.radiorev == 8)) {
27293 phy_b11 =
27294 -(nphy_papd_pgagain_dlt_5g_2057rev7
27295 [phy_b7]
27296 + 1) / 2;
27299 phy_b10 = -9;
27302 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27303 phy_b6 =
27304 -60 + 27 + eps_offset + phy_b12 + phy_b10;
27305 } else {
27306 phy_b6 =
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;
27314 } else {
27315 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
27316 eps_offset = 4;
27317 } else {
27318 eps_offset = 2;
27321 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
27323 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27324 phy_b11 =
27325 -(nphy_papd_pga_gain_delta_ipa_2g[phy_b7] +
27326 1) / 2;
27327 phy_b10 = 0;
27328 } else {
27329 phy_b11 =
27330 -(nphy_papd_pga_gain_delta_ipa_5g[phy_b7] +
27331 1) / 2;
27332 phy_b10 = -9;
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);
27357 } else {
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);
27383 if (!phy_b3) {
27384 wlapi_enable_mac(pi->sh->physhim);
27388 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
27390 uint core;
27391 u32 txgain;
27392 u16 rad_gain, dac_gain, bbmult, m1m2;
27393 u8 txpi[2], chan_freq_range;
27394 s32 rfpwr_offset;
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;
27401 } else {
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];
27408 break;
27409 case WL_CHAN_FREQ_RANGE_5GL:
27410 txpi[0] = pi->nphy_txpid5gl[0];
27411 txpi[1] = pi->nphy_txpid5gl[1];
27412 break;
27413 case WL_CHAN_FREQ_RANGE_5GM:
27414 txpi[0] = pi->nphy_txpid5g[0];
27415 txpi[1] = pi->nphy_txpid5g[1];
27416 break;
27417 case WL_CHAN_FREQ_RANGE_5GH:
27418 txpi[0] = pi->nphy_txpid5gh[0];
27419 txpi[1] = pi->nphy_txpid5gh[1];
27420 break;
27421 default:
27422 txpi[0] = txpi[1] = 91;
27423 break;
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)) {
27449 if (PHY_IPA(pi)) {
27450 u32 *tx_gaintbl =
27451 wlc_phy_get_ipa_gaintbl_nphy(pi);
27452 txgain = tx_gaintbl[txpi[core]];
27453 } else {
27454 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27455 if (NREV_IS(phyrev, 3)) {
27456 txgain =
27457 nphy_tpc_5GHz_txgain_rev3
27458 [txpi[core]];
27459 } else if (NREV_IS(phyrev, 4)) {
27460 txgain =
27461 (pi->srom_fem5g.extpagain ==
27462 3) ?
27463 nphy_tpc_5GHz_txgain_HiPwrEPA
27464 [txpi[core]] :
27465 nphy_tpc_5GHz_txgain_rev4
27466 [txpi[core]];
27467 } else {
27468 txgain =
27469 nphy_tpc_5GHz_txgain_rev5
27470 [txpi[core]];
27472 } else {
27473 if (NREV_GE(phyrev, 5) &&
27474 (pi->srom_fem2g.extpagain == 3)) {
27475 txgain =
27476 nphy_tpc_txgain_HiPwrEPA
27477 [txpi[core]];
27478 } else {
27479 txgain =
27480 nphy_tpc_txgain_rev3[txpi
27481 [core]];
27485 } else {
27486 txgain = nphy_tpc_txgain[txpi[core]];
27489 if (NREV_GE(phyrev, 3))
27490 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27491 else
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);
27496 else
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));
27504 } else {
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,
27510 &rad_gain);
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);
27517 if (PHY_IPA(pi)) {
27518 wlc_phy_table_read_nphy(pi,
27519 (core ==
27520 PHY_CORE_0 ?
27521 NPHY_TBL_ID_CORE1TXPWRCTL :
27522 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27523 576 + txpi[core], 32,
27524 &rfpwr_offset);
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);
27542 static void
27543 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
27544 u8 tmp_max_pwr, u8 rate_start,
27545 u8 rate_end)
27547 u8 rate;
27548 u8 word_num, nibble_num;
27549 u8 tmp_nibble;
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;
27560 static void
27561 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
27562 u8 rate_start, u8 rate_end)
27564 u8 rate;
27566 for (rate = rate_start; rate <= rate_end; rate++) {
27567 srom_max[rate] -= 2 * pwr_offset;
27571 void
27572 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
27573 u8 rate_mcs_end, u8 rate_ofdm_start)
27575 u8 rate1, rate2;
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];
27585 void
27586 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
27587 u8 rate_ofdm_end, u8 rate_mcs_start)
27589 u8 rate1, rate2;
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) {
27609 case 0:
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,
27616 pwr_offsets1,
27617 tmp_max_pwr,
27618 TXP_FIRST_CCK,
27619 TXP_LAST_CCK);
27621 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
27622 pwr_offsets1[1] =
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;
27632 break;
27633 case 1:
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);
27639 pwr_offsets1[1] =
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;
27649 break;
27650 case 2:
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);
27656 pwr_offsets1[1] =
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;
27666 break;
27667 case 3:
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);
27673 pwr_offsets1[1] =
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;
27683 break;
27686 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
27687 tmp_max_pwr, TXP_FIRST_OFDM,
27688 TXP_LAST_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,
27693 TXP_FIRST_OFDM);
27695 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27696 tmp_max_pwr,
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,
27713 tmp_max_pwr,
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,
27720 tmp_stbcpo,
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,
27733 &pwr_offsets2[4],
27734 tmp_max_pwr,
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,
27744 &pwr_offsets2[4],
27745 tmp_max_pwr,
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,
27759 &pwr_offsets2[4],
27760 tmp_max_pwr,
27761 TXP_FIRST_MCS_40_STBC,
27762 TXP_LAST_MCS_40_STBC);
27764 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27765 tmp_stbcpo,
27766 TXP_FIRST_MCS_40_STBC,
27767 TXP_LAST_MCS_40_STBC);
27769 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27770 &pwr_offsets2[6],
27771 tmp_max_pwr,
27772 TXP_FIRST_MCS_40_SDM,
27773 TXP_LAST_MCS_40_SDM);
27774 } else {
27776 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
27777 TXP_FIRST_OFDM; rate1 <= TXP_LAST_MCS_40_SDM;
27778 rate1++, rate2++)
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,
27785 tmp_bw40po,
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];
27794 return;
27797 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy *pi)
27799 u16 bw40po, cddpo, stbcpo, bwduppo;
27800 uint band_num;
27802 if (pi->sh->sromrev >= 9) {
27804 return;
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) {
27833 case 0:
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");
27872 break;
27873 case 1:
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");
27910 break;
27911 case 2:
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");
27938 pi->mcs5glpo[0] =
27939 (u16) PHY_GETINTVAR(pi, "mcs5glpo0");
27940 pi->mcs5glpo[1] =
27941 (u16) PHY_GETINTVAR(pi, "mcs5glpo1");
27942 pi->mcs5glpo[2] =
27943 (u16) PHY_GETINTVAR(pi, "mcs5glpo2");
27944 pi->mcs5glpo[3] =
27945 (u16) PHY_GETINTVAR(pi, "mcs5glpo3");
27946 pi->mcs5glpo[4] =
27947 (u16) PHY_GETINTVAR(pi, "mcs5glpo4");
27948 pi->mcs5glpo[5] =
27949 (u16) PHY_GETINTVAR(pi, "mcs5glpo5");
27950 pi->mcs5glpo[6] =
27951 (u16) PHY_GETINTVAR(pi, "mcs5glpo6");
27952 pi->mcs5glpo[7] =
27953 (u16) PHY_GETINTVAR(pi, "mcs5glpo7");
27954 break;
27955 case 3:
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");
27982 pi->mcs5ghpo[0] =
27983 (u16) PHY_GETINTVAR(pi, "mcs5ghpo0");
27984 pi->mcs5ghpo[1] =
27985 (u16) PHY_GETINTVAR(pi, "mcs5ghpo1");
27986 pi->mcs5ghpo[2] =
27987 (u16) PHY_GETINTVAR(pi, "mcs5ghpo2");
27988 pi->mcs5ghpo[3] =
27989 (u16) PHY_GETINTVAR(pi, "mcs5ghpo3");
27990 pi->mcs5ghpo[4] =
27991 (u16) PHY_GETINTVAR(pi, "mcs5ghpo4");
27992 pi->mcs5ghpo[5] =
27993 (u16) PHY_GETINTVAR(pi, "mcs5ghpo5");
27994 pi->mcs5ghpo[6] =
27995 (u16) PHY_GETINTVAR(pi, "mcs5ghpo6");
27996 pi->mcs5ghpo[7] =
27997 (u16) PHY_GETINTVAR(pi, "mcs5ghpo7");
27998 break;
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");
28026 } else {
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;
28047 } else {
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);
28062 return true;
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);
28076 udelay(1);
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)
28087 u32 idx;
28088 u16 iqloCalbuf[7];
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;
28093 u32 regval[128];
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);
28100 tbl_len = 128;
28101 tbl_offset = 320;
28102 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28103 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28104 iqcomp =
28105 (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,
28115 regval);
28118 tbl_offset = 448;
28119 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28120 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28122 locomp =
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;
28130 } else {
28131 curr_locomp_i = (s8) ((locomp_i *
28132 nphy_tpc_loscale[idx] +
28133 128) >> 8);
28134 curr_locomp_q =
28135 (s8) ((locomp_q * nphy_tpc_loscale[idx] +
28136 128) >> 8);
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,
28143 regval);
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)
28158 u8 core;
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,
28166 TX_SSI_MUX, 0xe);
28168 if (pi->pubpi.radiorev != 5)
28169 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28170 core, TSSIA, 0);
28172 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28174 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28175 core, TSSIG, 0x1);
28176 } else {
28178 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28179 core, TSSIG, 0x31);
28181 } else {
28182 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28183 TX_SSI_MASTER, 0x9);
28184 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28185 TX_SSI_MUX, 0xc);
28186 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28187 TSSIG, 0);
28189 if (pi->pubpi.radiorev != 5) {
28190 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28192 WRITE_RADIO_REG3(pi, RADIO_2057,
28193 TX, core,
28194 TSSIA, 0x1);
28195 } else {
28197 WRITE_RADIO_REG3(pi, RADIO_2057,
28198 TX, core,
28199 TSSIA, 0x31);
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,
28208 0x3);
28209 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
28210 0x0);
28212 } else {
28213 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
28214 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
28215 0x80);
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,
28221 0x0);
28222 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
28223 0x0);
28224 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
28225 0x3);
28226 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
28227 0x0);
28228 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
28229 0x8);
28230 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
28231 0x0);
28232 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
28233 0x0);
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,
28241 core, TSSIA, 0x0);
28242 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
28244 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28245 core, TSSIG, 0x31);
28246 } else {
28247 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28248 core, TSSIG, 0x11);
28250 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28251 TX_SSI_MUX, 0xe);
28252 } else {
28253 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28254 TX_SSI_MASTER, 0x9);
28255 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28256 TSSIA, 0x31);
28257 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28258 TSSIG, 0x0);
28259 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28260 TX_SSI_MUX, 0xc);
28266 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
28268 s32 rssi_buf[4];
28269 s32 int_val;
28271 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
28273 return;
28275 if (PHY_IPA(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),
28281 0, 0x3, 0,
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);
28291 udelay(20);
28292 int_val =
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),
28300 0, 0x3, 1,
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);
28317 } else {
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)
28334 u32 idx;
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;
28339 u8 idle_tssi[2];
28340 u32 tbl_id, tbl_len, tbl_offset;
28341 u32 regval[64];
28342 u8 core;
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);
28347 udelay(1);
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)));
28357 } else {
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;
28370 a1[0] = -424;
28371 a1[1] = -424;
28372 b0[0] = 5612;
28373 b0[1] = 5612;
28374 b1[1] = -1393;
28375 b1[0] = -1393;
28376 } else {
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;
28393 break;
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;
28407 break;
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;
28421 break;
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;
28435 break;
28436 default:
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;
28441 a1[0] = -424;
28442 a1[1] = -424;
28443 b0[0] = 5612;
28444 b0[1] = 5612;
28445 b1[1] = -1393;
28446 b1[0] = -1393;
28447 break;
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++) {
28461 if (PHY_IPA(pi)) {
28463 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28464 WRITE_RADIO_REG3(pi, RADIO_2057,
28465 TX, core,
28466 TX_SSI_MUX,
28467 0xe);
28468 } else {
28469 WRITE_RADIO_REG3(pi, RADIO_2057,
28470 TX, core,
28471 TX_SSI_MUX,
28472 0xc);
28474 } else {
28477 } else {
28478 if (PHY_IPA(pi)) {
28480 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28481 RADIO_2056_TX0,
28482 (CHSPEC_IS5G
28483 (pi->
28484 radio_chanspec)) ? 0xc : 0xe);
28485 write_radio_reg(pi,
28486 RADIO_2056_TX_TX_SSI_MUX |
28487 RADIO_2056_TX1,
28488 (CHSPEC_IS5G
28489 (pi->
28490 radio_chanspec)) ? 0xc : 0xe);
28491 } else {
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);
28504 udelay(1);
28507 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28508 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28509 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28510 } else {
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));
28535 tbl_len = 64;
28536 tbl_offset = 0;
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++) {
28541 num =
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)) {
28546 if (idx <=
28547 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
28548 pwr_est =
28549 max(pwr_est,
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,
28556 regval);
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)
28577 u16 tmp;
28578 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
28580 tmp = (tmp & (0x7f << 8)) >> 8;
28581 return (u8) tmp;
28584 static void
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)
28595 u16 tmp;
28596 u16 pwr_idx[2];
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];
28603 } else {
28604 tmp =
28605 ((pi->nphy_txpwrindex[PHY_CORE_0].
28606 index_internal & 0xff) << 8) | (pi->
28607 nphy_txpwrindex
28608 [PHY_CORE_1].
28609 index_internal & 0xff);
28612 return tmp;
28615 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
28617 if (PHY_IPA(pi)
28618 && (pi->nphy_force_papd_cal
28619 || (wlc_phy_txpwr_ison_nphy(pi)
28621 (((u32)
28622 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28623 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28624 || ((u32)
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;
28634 u8 ctr;
28635 uint core;
28636 u32 tbl_offset;
28637 u32 tbl_len;
28638 u16 regval[84];
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;
28647 break;
28648 default:
28649 break;
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;
28657 core++)
28658 pi->nphy_txpwr_idx[core] =
28659 wlc_phy_txpwr_idx_cur_get_nphy(pi,
28660 (u8)
28661 core);
28666 tbl_len = 84;
28667 tbl_offset = 64;
28668 for (ctr = 0; ctr < tbl_len; ctr++) {
28669 regval[ctr] = 0;
28671 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28672 regval);
28673 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28674 regval);
28676 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28678 and_phy_reg(pi, 0x1e7,
28679 (u16) (~((0x1 << 15) |
28680 (0x1 << 14) | (0x1 << 13))));
28681 } else {
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));
28689 } else {
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);
28702 } else {
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);
28724 } else {
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,
28736 pi->
28737 nphy_txpwr_idx
28738 [0],
28739 pi->
28740 nphy_txpwr_idx
28741 [1]);
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));
28748 } else {
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);
28761 if (PHY_IPA(pi)) {
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);
28776 void
28777 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28778 bool restore_cals)
28780 u8 core, txpwrctl_tbl;
28781 u16 tx_ind0, iq_ind0, lo_ind0;
28782 u16 m1m2;
28783 u32 txgain;
28784 u16 rad_gain, dac_gain;
28785 u8 bbmult;
28786 u32 iqcomp;
28787 u16 iqcomp_a, iqcomp_b;
28788 u32 locomp;
28789 u16 tmpval;
28790 u8 tx_pwr_ctrl_state;
28791 s32 rfpwr_offset;
28792 u16 regval[2];
28794 if (pi->phyhang_avoid)
28795 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28797 tx_ind0 = 192;
28798 iq_ind0 = 320;
28799 lo_ind0 = 448;
28801 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28803 if ((core_mask & (1 << core)) == 0) {
28804 continue;
28807 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28809 if (txpwrindex < 0) {
28810 if (pi->nphy_txpwrindex[core].index < 0) {
28812 continue;
28815 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28816 mod_phy_reg(pi, 0x8f,
28817 (0x1 << 8),
28818 pi->nphy_txpwrindex[core].
28819 AfectrlOverride);
28820 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28821 pi->nphy_txpwrindex[core].
28822 AfectrlOverride);
28823 } else {
28824 mod_phy_reg(pi, 0xa5,
28825 (0x1 << 14),
28826 pi->nphy_txpwrindex[core].
28827 AfectrlOverride);
28830 write_phy_reg(pi, (core == PHY_CORE_0) ?
28831 0xaa : 0xab,
28832 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28834 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28835 &pi->nphy_txpwrindex[core].
28836 rad_gain);
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,
28849 (void *)&pi->
28850 nphy_txpwrindex[core].
28851 iqcomp_a);
28853 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28855 &pi->
28856 nphy_txpwrindex[core].
28857 locomp);
28858 wlc_phy_table_write_nphy(pi, 15, 1, (93 + core),
28860 (void *)&pi->
28861 nphy_txpwrindex[core].
28862 locomp);
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;
28869 } else {
28871 if (pi->nphy_txpwrindex[core].index < 0) {
28873 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28874 mod_phy_reg(pi, 0x8f,
28875 (0x1 << 8),
28876 pi->nphy_txpwrindex[core].
28877 AfectrlOverride);
28878 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28879 pi->nphy_txpwrindex[core].
28880 AfectrlOverride);
28881 } else {
28882 pi->nphy_txpwrindex[core].
28883 AfectrlOverride =
28884 read_phy_reg(pi, 0xa5);
28887 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28888 read_phy_reg(pi,
28889 (core ==
28890 PHY_CORE_0) ? 0xaa : 0xab);
28892 wlc_phy_table_read_nphy(pi, 7, 1,
28893 (0x110 + core), 16,
28894 &pi->
28895 nphy_txpwrindex[core].
28896 rad_gain);
28898 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28899 &tmpval);
28900 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28901 tmpval &= 0xff;
28902 pi->nphy_txpwrindex[core].bbmult =
28903 (u8) tmpval;
28905 wlc_phy_table_read_nphy(pi, 15, 2,
28906 (80 + 2 * core), 16,
28907 (void *)&pi->
28908 nphy_txpwrindex[core].
28909 iqcomp_a);
28911 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28913 (void *)&pi->
28914 nphy_txpwrindex[core].
28915 locomp);
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,
28929 &txgain);
28931 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28932 rad_gain =
28933 (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
28934 } else {
28935 rad_gain =
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));
28944 } else {
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,
28951 &rad_gain);
28953 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28954 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28955 m1m2 |=
28956 ((core ==
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,
28963 &iqcomp);
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,
28972 regval);
28975 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28976 (lo_ind0 + txpwrindex), 32,
28977 &locomp);
28978 if (restore_cals) {
28979 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28980 16, &locomp);
28983 if (NREV_IS(pi->pubpi.phy_rev, 1))
28984 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28986 if (PHY_IPA(pi)) {
28987 wlc_phy_table_read_nphy(pi,
28988 (core ==
28989 PHY_CORE_0 ?
28990 NPHY_TBL_ID_CORE1TXPWRCTL
28992 NPHY_TBL_ID_CORE2TXPWRCTL),
28993 1, 576 + txpwrindex, 32,
28994 &rfpwr_offset);
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);
29015 void
29016 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
29017 u8 txp_rate_idx)
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];
29025 break;
29026 case WL_CHAN_FREQ_RANGE_5GM:
29027 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
29028 break;
29029 case WL_CHAN_FREQ_RANGE_5GL:
29030 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
29031 break;
29032 case WL_CHAN_FREQ_RANGE_5GH:
29033 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
29034 break;
29035 default:
29036 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29037 break;
29040 return;
29043 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
29045 u16 clip_off[] = { 0xffff, 0xffff };
29047 if (enable) {
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);
29060 } else {
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);
29075 if (mode) {
29076 if (pi->nphy_deaf_count == 0)
29077 wlc_phy_stay_in_carriersearch_nphy(pi, true);
29078 } else {
29079 if (pi->nphy_deaf_count > 0)
29080 wlc_phy_stay_in_carriersearch_nphy(pi, false);
29082 wlapi_enable_mac(pi->sh->physhim);