Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
phy_n.c
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010 Broadcom Corporation
3  *
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.
7  *
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.
15  */
16 
17 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
18 
19 #include <linux/kernel.h>
20 #include <linux/delay.h>
21 #include <linux/cordic.h>
22 
23 #include <brcm_hw_ids.h>
24 #include <aiutils.h>
25 #include <chipcommon.h>
26 #include <pmu.h>
27 #include <d11.h>
28 #include <phy_shim.h>
29 #include "phy_int.h"
30 #include "phy_hal.h"
31 #include "phy_radio.h"
32 #include "phyreg_n.h"
33 #include "phytbl_n.h"
34 #include "soc.h"
35 
36 #define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
37  read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
38  ((core == PHY_CORE_0) ? \
39  radio_type##_##jspace##0 : \
40  radio_type##_##jspace##1))
41 
42 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
43  write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
44  ((core == PHY_CORE_0) ? \
45  radio_type##_##jspace##0 : \
46  radio_type##_##jspace##1), value)
47 
48 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
49  write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value)
50 
51 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
52  read_radio_reg(pi, ((core == PHY_CORE_0) ? \
53  radio_type##_##jspace##0##_##reg_name : \
54  radio_type##_##jspace##1##_##reg_name))
55 
56 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
57  write_radio_reg(pi, ((core == PHY_CORE_0) ? \
58  radio_type##_##jspace##0##_##reg_name : \
59  radio_type##_##jspace##1##_##reg_name), \
60  value)
61 
62 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
63  read_radio_reg(pi, ((core == PHY_CORE_0) ? \
64  radio_type##_##reg_name##_##jspace##0 : \
65  radio_type##_##reg_name##_##jspace##1))
66 
67 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
68  write_radio_reg(pi, ((core == PHY_CORE_0) ? \
69  radio_type##_##reg_name##_##jspace##0 : \
70  radio_type##_##reg_name##_##jspace##1), \
71  value)
72 
73 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
74 #define NPHY_ACI_CHANNEL_DELTA 5
75 #define NPHY_ACI_CHANNEL_SKIP 4
76 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
77 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
78 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
79 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
80 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
81 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
82 
83 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
84 
85 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
86 
87 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
88 
89 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
90 
91 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
92 
93 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
94 
95 #define NPHY_NOISE_NOASSOC_ENTER_TH 400
96 
97 #define NPHY_NOISE_ASSOC_ENTER_TH 400
98 
99 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
100 
101 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
102 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
103 
104 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
105 
106 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
107 
108 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
109 
110 #define NPHY_RSSICAL_MAXREAD 31
111 
112 #define NPHY_RSSICAL_NPOLL 8
113 #define NPHY_RSSICAL_MAXD (1<<20)
114 #define NPHY_MIN_RXIQ_PWR 2
115 
116 #define NPHY_RSSICAL_W1_TARGET 25
117 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
118 #define NPHY_RSSICAL_NB_TARGET 0
119 
120 #define NPHY_RSSICAL_W1_TARGET_REV3 29
121 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
122 
123 #define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
124 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
125 #define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
126 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - \
127  NPHY_RSSICAL_MAXREAD)
128 #define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
129 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - \
130  NPHY_RSSICAL_MAXREAD)
131 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
132 #define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
133  ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
134 #define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
135  ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
136 #define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
137  ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
138 
139 #define NPHY_IQCAL_NUMGAINS 9
140 #define NPHY_N_GCTL 0x66
141 
142 #define NPHY_PAPD_EPS_TBL_SIZE 64
143 #define NPHY_PAPD_SCL_TBL_SIZE 64
144 #define NPHY_NUM_DIG_FILT_COEFFS 15
145 
146 #define NPHY_PAPD_COMP_OFF 0
147 #define NPHY_PAPD_COMP_ON 1
148 
149 #define NPHY_SROM_TEMPSHIFT 32
150 #define NPHY_SROM_MAXTEMPOFFSET 16
151 #define NPHY_SROM_MINTEMPOFFSET -16
152 
153 #define NPHY_CAL_MAXTEMPDELTA 64
154 
155 #define NPHY_NOISEVAR_TBLLEN40 256
156 #define NPHY_NOISEVAR_TBLLEN20 128
157 
158 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
159 
160 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
161 
162 /* 5357 Chip specific ChipControl register bits */
163 #define CCTRL5357_EXTPA (1<<14) /* extPA in ChipControl 1, bit 14 */
164 #define CCTRL5357_ANT_MUX_2o3 (1<<15) /* 2o3 in ChipControl 1, bit 15 */
165 
166 #define NPHY_CAL_TSSISAMPS 64
167 #define NPHY_TEST_TONE_FREQ_40MHz 4000
168 #define NPHY_TEST_TONE_FREQ_20MHz 2500
169 
170 #define MAX_205x_RCAL_WAITLOOPS 10000
171 
172 #define NPHY_RXCAL_TONEAMP 181
173 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
174 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
175 
176 #define TXFILT_SHAPING_OFDM20 0
177 #define TXFILT_SHAPING_OFDM40 1
178 #define TXFILT_SHAPING_CCK 2
179 #define TXFILT_DEFAULT_OFDM20 3
180 #define TXFILT_DEFAULT_OFDM40 4
181 
182 struct nphy_iqcal_params {
184  u16 txgm;
185  u16 pga;
186  u16 pad;
187  u16 ipa;
188  u16 cal_gain;
189  u16 ncorr[5];
190 };
191 
192 struct nphy_txiqcal_ladder {
193  u8 percent;
194  u8 g_env;
195 };
196 
199  bool useindex;
201 };
202 
204  u16 fbmix[2];
209  u16 pwrup[2];
210  u16 atten[2];
212 };
213 
221 };
222 
223 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
224 
225 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz[] = {
226  {0, 0, 0, 0, 0, 100},
227  {0, 0, 0, 0, 0, 50},
228  {0, 0, 0, 0, 0, -1},
229  {0, 0, 0, 3, 0, -1},
230  {0, 0, 3, 3, 0, -1},
231  {0, 2, 3, 3, 0, -1}
232 };
233 
234 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz[] = {
235  {0, 0, 0, 0, 0, 128},
236  {0, 0, 0, 0, 0, 70},
237  {0, 0, 0, 0, 0, 20},
238  {0, 0, 0, 3, 0, 20},
239  {0, 0, 3, 3, 0, 20},
240  {0, 2, 3, 3, 0, 20}
241 };
242 
243 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = {
244  {0, 0, 0, 0, 0, 100},
245  {0, 0, 0, 0, 0, 50},
246  {0, 0, 0, 0, 0, -1},
247  {0, 0, 0, 3, 0, -1},
248  {0, 0, 3, 3, 0, -1},
249  {0, 0, 5, 3, 0, -1}
250 };
251 
252 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = {
253  {0, 0, 0, 0, 0, 10},
254  {0, 0, 0, 1, 0, 10},
255  {0, 0, 1, 2, 0, 10},
256  {0, 0, 1, 3, 0, 10},
257  {0, 0, 4, 3, 0, 10},
258  {0, 0, 6, 3, 0, 10}
259 };
260 
261 enum {
265 };
266 
267 #define wlc_phy_get_papd_nphy(pi) \
268  (read_phy_reg((pi), 0x1e7) & \
269  ((0x1 << 15) | \
270  (0x1 << 14) | \
271  (0x1 << 13)))
272 
273 static const u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
274  {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
275  230, -44, 230, 201, -191, 201},
276  {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
277  26, 34, -32, 34},
278  {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
279  121, -73, 121, 91, 124, 91},
280  {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
281  151, 301, 151, 602, -752, 602},
282  {-92, 58, -96, 49, -104, 44, 17, 35, 17,
283  12, 25, 12, 13, 27, 13},
284  {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
285  230, -44, 230, 201, -191, 201},
286  {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
287  0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
288 };
289 
322 };
323 
370 };
371 
409 };
410 
438 };
439 
440 struct nphy_sfo_cfg {
447 };
448 
449 static const struct chan_info_nphy_2055 chan_info_nphy_2055[] = {
450  {
451  184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
452  0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
453  0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
454  {
455  186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
456  0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
457  0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
458  {
459  188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
460  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
461  0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
462  {
463  190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
464  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
465  0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
466  {
467  192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
468  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
469  0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
470  {
471  194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
472  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
473  0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
474  {
475  196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
476  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
477  0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
478  {
479  198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
480  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
481  0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
482  {
483  200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
484  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
485  0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
486  {
487  202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
488  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
489  0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
490  {
491  204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
492  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
493  0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
494  {
495  206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
496  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
497  0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
498  {
499  208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
500  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
501  0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
502  {
503  210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
504  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
505  0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
506  {
507  212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
508  0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
509  0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
510  {
511  214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
512  0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
513  0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
514  {
515  216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
516  0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
517  0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
518  {
519  218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
520  0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
521  0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
522  {
523  220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
524  0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
525  0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
526  {
527  222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
528  0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
529  0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
530  {
531  224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
532  0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
533  0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
534  {
535  226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
536  0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
537  0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
538  {
539  228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
540  0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
541  0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
542  {
543  32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
544  0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
545  0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
546  {
547  34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
548  0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
549  0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
550  {
551  36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
552  0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
553  0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
554  {
555  38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
556  0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
557  0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
558  {
559  40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
560  0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
561  0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
562  {
563  42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
564  0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
565  0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
566  {
567  44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
568  0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
569  0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
570  {
571  46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
572  0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
573  0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
574  {
575  48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
576  0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
577  0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
578  {
579  50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
580  0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
581  0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
582  {
583  52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
584  0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
585  0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
586  {
587  54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
588  0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
589  0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
590  {
591  56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
592  0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
593  0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
594  {
595  58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
596  0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
597  0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
598  {
599  60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
600  0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
601  0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
602  {
603  62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
604  0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
605  0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
606  {
607  64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
608  0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
609  0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
610  {
611  66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
612  0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
613  0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
614  {
615  68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
616  0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
617  0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
618  {
619  70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
620  0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
621  0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
622  {
623  72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
624  0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
625  0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
626  {
627  74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
628  0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
629  0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
630  {
631  76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
632  0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
633  0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
634  {
635  78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
636  0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
637  0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
638  {
639  80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
640  0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
641  0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
642  {
643  82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
644  0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
645  0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
646  {
647  84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
648  0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
649  0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
650  {
651  86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
652  0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
653  0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
654  {
655  88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
656  0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
657  0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
658  {
659  90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
660  0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
661  0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
662  {
663  92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
664  0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
665  0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
666  {
667  94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
668  0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
669  0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
670  {
671  96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
672  0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
673  0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
674  {
675  98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
676  0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
677  0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
678  {
679  100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
680  0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
681  0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
682  {
683  102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
684  0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
685  0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
686  {
687  104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
688  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
689  0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
690  {
691  106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
692  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
693  0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
694  {
695  108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
696  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
697  0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
698  {
699  110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
700  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
701  0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
702  {
703  112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
704  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
705  0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
706  {
707  114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
708  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
709  0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
710  {
711  116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
712  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
713  0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
714  {
715  118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
716  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
717  0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
718  {
719  120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
720  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
721  0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
722  {
723  122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
724  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
725  0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
726  {
727  124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
728  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
729  0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
730  {
731  126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
732  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
733  0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
734  {
735  128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
736  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
737  0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
738  {
739  130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
740  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
741  0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
742  {
743  132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
744  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
745  0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
746  {
747  134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
748  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
749  0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
750  {
751  136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
752  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
753  0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
754  {
755  138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
756  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
757  0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
758  {
759  140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
760  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
761  0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
762  {
763  142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
764  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
765  0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
766  {
767  144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
768  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
769  0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
770  {
771  145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
772  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
773  0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
774  {
775  146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
776  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
777  0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
778  {
779  147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
780  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
781  0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
782  {
783  148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
784  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
785  0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
786  {
787  149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
788  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
789  0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
790  {
791  150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
792  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
793  0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
794  {
795  151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
796  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
797  0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
798  {
799  152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
800  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
801  0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
802  {
803  153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
804  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
805  0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
806  {
807  154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
808  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
809  0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
810  {
811  155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
812  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
813  0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
814  {
815  156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
816  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
817  0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
818  {
819  157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
820  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
821  0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
822  {
823  158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
824  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
825  0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
826  {
827  159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
828  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
829  0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
830  {
831  160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
832  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
833  0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
834  {
835  161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
836  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
837  0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
838  {
839  162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
840  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
841  0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
842  {
843  163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
844  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
845  0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
846  {
847  164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
848  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
849  0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
850  {
851  165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
852  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
853  0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
854  {
855  166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
856  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
857  0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
858  {
859  168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
860  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
861  0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
862  {
863  170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
864  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
865  0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
866  {
867  172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
868  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
869  0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
870  {
871  174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
872  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
873  0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
874  {
875  176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
876  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
877  0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
878  {
879  178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
880  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
881  0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
882  {
883  180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
884  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
885  0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
886  {
887  182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
888  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
889  0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
890  {
891  1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
892  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
893  0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
894  {
895  2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
896  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
897  0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
898  {
899  3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
900  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
901  0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
902  {
903  4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
904  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
905  0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
906  {
907  5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
908  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
909  0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
910  {
911  6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
912  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
913  0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
914  {
915  7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
916  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
917  0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
918  {
919  8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
920  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
921  0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
922  {
923  9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
924  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
925  0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
926  {
927  10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
928  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
929  0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
930  {
931  11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
932  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
933  0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
934  {
935  12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
936  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
937  0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
938  {
939  13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
940  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
941  0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
942  {
943  14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
944  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
945  0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
946 };
947 
948 static const struct chan_info_nphy_radio205x chan_info_nphyrev3_2056[] = {
949  {
950  184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
951  0x00, 0x00, 0x00, 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, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
954  {
955  186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
956  0x00, 0x00, 0x00, 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, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
959  {
960  188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
961  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
962  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
963  0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
964  {
965  190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
966  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
967  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
968  0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
969  {
970  192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
971  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
972  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
973  0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
974  {
975  194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
976  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
977  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
978  0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
979  {
980  196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
981  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
982  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
983  0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
984  {
985  198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
986  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
987  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
988  0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
989  {
990  200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 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, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
994  {
995  202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 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, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
999  {
1000  204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 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, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1004  {
1005  206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 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, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1009  {
1010  208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1011  0x01, 0x01, 0x01, 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, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1014  {
1015  210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1016  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1017  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1018  0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1019  {
1020  212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1021  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1022  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1023  0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1024  {
1025  214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1026  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1027  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1028  0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1029  {
1030  216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1031  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1032  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1033  0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1034  {
1035  218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1036  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1037  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1038  0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1039  {
1040  220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1041  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1042  0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1043  0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1044  {
1045  222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1046  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1047  0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1048  0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1049  {
1050  224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1051  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1052  0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1053  0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1054  {
1055  226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1056  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1057  0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1058  0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1059  {
1060  228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1061  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1062  0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1063  0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1064  {
1065  32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1066  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1067  0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1068  0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1069  {
1070  34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1071  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1072  0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1073  0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1074  {
1075  36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1076  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1077  0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1078  0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1079  {
1080  38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1081  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1082  0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1083  0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1084  {
1085  40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1086  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1087  0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1088  0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1089  {
1090  42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1091  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1092  0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1093  0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1094  {
1095  44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1096  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1097  0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1098  0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1099  {
1100  46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1101  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1102  0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1103  0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1104  {
1105  48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1106  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1107  0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1108  0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1109  {
1110  50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1111  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1112  0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1113  0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1114  {
1115  52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1116  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1117  0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1118  0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1119  {
1120  54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1121  0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1122  0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1123  0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1124  {
1125  56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1126  0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1127  0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1128  0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1129  {
1130  58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1131  0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1132  0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1133  0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1134  {
1135  60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1136  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1137  0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1138  0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1139  {
1140  62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1141  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1142  0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1143  0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1144  {
1145  64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1146  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1147  0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1148  0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1149  {
1150  66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1151  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1152  0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1153  0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1154  {
1155  68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1156  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1157  0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1158  0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1159  {
1160  70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1161  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1162  0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1163  0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1164  {
1165  72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1166  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1167  0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1168  0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1169  {
1170  74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1171  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1172  0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1173  0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1174  {
1175  76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1176  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1177  0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1178  0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1179  {
1180  78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1181  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1182  0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1183  0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1184  {
1185  80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1186  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1187  0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1188  0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1189  {
1190  82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1191  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1192  0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1193  0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1194  {
1195  84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1196  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1197  0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1198  0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1199  {
1200  86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1201  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1202  0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1203  0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1204  {
1205  88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1206  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1207  0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1208  0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1209  {
1210  90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1211  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1212  0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1213  0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1214  {
1215  92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1216  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1217  0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1218  0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1219  {
1220  94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1221  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1222  0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1223  0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1224  {
1225  96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1226  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1227  0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1228  0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1229  {
1230  98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1231  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1232  0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1233  0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1234  {
1235  100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1236  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1237  0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1238  0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1239  {
1240  102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1241  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1242  0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1243  0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1244  {
1245  104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1246  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1247  0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1248  0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1249  {
1250  106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1251  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1252  0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1253  0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1254  {
1255  108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1256  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1257  0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1258  0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1259  {
1260  110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1261  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1262  0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1263  0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1264  {
1265  112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1266  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1267  0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1268  0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1269  {
1270  114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1271  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1272  0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1273  0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1274  {
1275  116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1276  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1277  0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1278  0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1279  {
1280  118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1281  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1282  0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1283  0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1284  {
1285  120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1286  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1287  0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1288  0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1289  {
1290  122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1291  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1292  0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1293  0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1294  {
1295  124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1296  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1297  0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1298  0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1299  {
1300  126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1301  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1302  0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1303  0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1304  {
1305  128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1306  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1307  0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1308  0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1309  {
1310  130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1311  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1312  0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1313  0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1314  {
1315  132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1316  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1317  0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1318  0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1319  {
1320  134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1321  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1322  0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1323  0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1324  {
1325  136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1326  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1327  0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1328  0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1329  {
1330  138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1331  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1332  0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1333  0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1334  {
1335  140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1336  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1337  0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1338  0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1339  {
1340  142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1341  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1342  0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1343  0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1344  {
1345  144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1346  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1347  0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1348  0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1349  {
1350  145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1351  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1352  0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1353  0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1354  {
1355  146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1356  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1357  0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1358  0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1359  {
1360  147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1361  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1362  0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1363  0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1364  {
1365  148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1366  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1367  0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1368  0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1369  {
1370  149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1371  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1372  0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1373  0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1374  {
1375  150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1376  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1377  0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1378  0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1379  {
1380  151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1381  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1382  0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1383  0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1384  {
1385  152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1386  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1387  0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1388  0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1389  {
1390  153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1391  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1392  0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1393  0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1394  {
1395  154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1396  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1397  0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1398  0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1399  {
1400  155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1401  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1402  0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1403  0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1404  {
1405  156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1406  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1407  0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1408  0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1409  {
1410  157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1411  0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1412  0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1413  0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1414  {
1415  158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1416  0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1417  0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1418  0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1419  {
1420  159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1421  0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1422  0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1423  0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1424  {
1425  160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1426  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1427  0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1428  0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1429  {
1430  161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1431  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1432  0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1433  0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1434  {
1435  162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1436  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1437  0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1438  0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1439  {
1440  163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1441  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1442  0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1443  0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1444  {
1445  164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1446  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1447  0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1448  0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1449  {
1450  165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1451  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1452  0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1453  0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1454  {
1455  166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1456  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1457  0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1458  0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1459  {
1460  168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1461  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1462  0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1463  0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1464  {
1465  170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1466  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1467  0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1468  0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1469  {
1470  172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1471  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1472  0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1473  0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1474  {
1475  174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1476  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1477  0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1478  0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1479  {
1480  176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1481  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1482  0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1483  0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1484  {
1485  178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1486  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1487  0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1488  0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1489  {
1490  180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1491  0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1492  0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1493  0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1494  {
1495  182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1496  0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1497  0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1498  0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1499  {
1500  1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1501  0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1502  0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1503  0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1504  {
1505  2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1506  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1507  0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1508  0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1509  {
1510  3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1511  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1512  0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1513  0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1514  {
1515  4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1516  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1517  0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1518  0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1519  {
1520  5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1521  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1522  0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1523  0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1524  {
1525  6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1526  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1527  0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1528  0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1529  {
1530  7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1531  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1532  0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1533  0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1534  {
1535  8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1536  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1537  0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1538  0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1539  {
1540  9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1541  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1542  0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1543  0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1544  {
1545  10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1546  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1547  0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1548  0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1549  {
1550  11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1551  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1552  0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1553  0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1554  {
1555  12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1556  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1557  0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1558  0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1559  {
1560  13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1561  0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1562  0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1563  0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1564  {
1565  14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1566  0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1567  0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1568  0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1569 };
1570 
1571 static const struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1[] = {
1572  {
1573  184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1574  0x00, 0x00, 0x00, 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, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1577  {
1578  186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1579  0x00, 0x00, 0x00, 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, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1582  {
1583  188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1584  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1585  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1586  0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1587  {
1588  190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1589  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1590  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1591  0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1592  {
1593  192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1594  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1595  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1596  0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1597  {
1598  194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1599  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1600  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1601  0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1602  {
1603  196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1604  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1605  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1606  0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1607  {
1608  198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1609  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1610  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1611  0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1612  {
1613  200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 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, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1617  {
1618  202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 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, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1622  {
1623  204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 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, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1627  {
1628  206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 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, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1632  {
1633  208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1634  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1635  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1636  0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1637  {
1638  210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1639  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1640  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1641  0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1642  {
1643  212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1644  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1645  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1646  0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1647  {
1648  214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1649  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1650  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1651  0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1652  {
1653  216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1654  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1655  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1656  0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1657  {
1658  218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1659  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1660  0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1661  0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1662  {
1663  220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 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, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1667  {
1668  222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1669  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1670  0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1671  0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1672  {
1673  224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1674  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1675  0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1676  0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1677  {
1678  226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1679  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1680  0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1681  0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1682  {
1683  228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1684  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1685  0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1686  0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1687  {
1688  32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1689  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1690  0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1691  0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1692  {
1693  34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1694  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1695  0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1696  0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1697  {
1698  36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1699  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1700  0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1701  0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1702  {
1703  38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1704  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1705  0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1706  0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1707  {
1708  40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1709  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1710  0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1711  0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1712  {
1713  42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1714  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1715  0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1716  0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1717  {
1718  44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1719  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1720  0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1721  0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1722  {
1723  46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1724  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1725  0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1726  0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1727  {
1728  48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1729  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1730  0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1731  0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1732  {
1733  50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1734  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1735  0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1736  0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1737  {
1738  52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1739  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1740  0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1741  0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1742  {
1743  54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1744  0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1745  0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1746  0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1747  {
1748  56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1749  0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1750  0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1751  0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1752  {
1753  58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1754  0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1755  0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1756  0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1757  {
1758  60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1759  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1760  0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1761  0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1762  {
1763  62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1764  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1765  0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1766  0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1767  {
1768  64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1769  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1770  0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1771  0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1772  {
1773  66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1774  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1775  0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1776  0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1777  {
1778  68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1779  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1780  0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1781  0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1782  {
1783  70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1784  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1785  0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1786  0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1787  {
1788  72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1789  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1790  0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1791  0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1792  {
1793  74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1794  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1795  0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1796  0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1797  {
1798  76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1799  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1800  0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1801  0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1802  {
1803  78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1804  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1805  0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1806  0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1807  {
1808  80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1809  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1810  0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1811  0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1812  {
1813  82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1814  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1815  0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1816  0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1817  {
1818  84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1819  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1820  0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1821  0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1822  {
1823  86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1824  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1825  0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1826  0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1827  {
1828  88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1829  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1830  0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1831  0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1832  {
1833  90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1834  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1835  0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1836  0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1837  {
1838  92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1839  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1840  0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1841  0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1842  {
1843  94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1844  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1845  0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1846  0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1847  {
1848  96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1849  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1850  0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1851  0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1852  {
1853  98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1854  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1855  0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1856  0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1857  {
1858  100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1859  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1860  0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1861  0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1862  {
1863  102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1864  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1865  0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1866  0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1867  {
1868  104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1869  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1870  0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1871  0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1872  {
1873  106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1874  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1875  0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1876  0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1877  {
1878  108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1879  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1880  0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1881  0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1882  {
1883  110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1884  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1885  0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1886  0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1887  {
1888  112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1889  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1890  0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1891  0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1892  {
1893  114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1894  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1895  0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1896  0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1897  {
1898  116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1899  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1900  0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1901  0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1902  {
1903  118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1904  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1905  0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1906  0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1907  {
1908  120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1909  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1910  0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1911  0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1912  {
1913  122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1914  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1915  0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1916  0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1917  {
1918  124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1919  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1920  0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1921  0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1922  {
1923  126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1924  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1925  0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1926  0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1927  {
1928  128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1929  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1930  0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1931  0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1932  {
1933  130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1934  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1935  0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1936  0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1937  {
1938  132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1939  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1940  0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1941  0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1942  {
1943  134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1944  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1945  0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1946  0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1947  {
1948  136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1949  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1950  0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1951  0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1952  {
1953  138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1954  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1955  0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1956  0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1957  {
1958  140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1959  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1960  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1961  0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1962  {
1963  142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1964  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1965  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1966  0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1967  {
1968  144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1969  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1970  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1971  0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1972  {
1973  145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1974  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1975  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1976  0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1977  {
1978  146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1979  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1980  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1981  0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1982  {
1983  147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1984  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1985  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1986  0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1987  {
1988  148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1989  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1990  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1991  0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1992  {
1993  149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1994  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1995  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1996  0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1997  {
1998  150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1999  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
2000  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2001  0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2002  {
2003  151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2004  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2005  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2006  0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2007  {
2008  152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2009  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2010  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2011  0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2012  {
2013  153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2014  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2015  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2016  0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2017  {
2018  154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2019  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2020  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2021  0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2022  {
2023  155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2024  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2025  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2026  0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2027  {
2028  156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2029  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2030  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2031  0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2032  {
2033  157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2034  0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2035  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2036  0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2037  {
2038  158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2039  0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2040  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2041  0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2042  {
2043  159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2044  0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2045  0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2046  0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2047  {
2048  160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2049  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2050  0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2051  0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2052  {
2053  161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2054  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2055  0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2056  0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2057  {
2058  162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2059  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2060  0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2061  0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2062  {
2063  163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2064  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2065  0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2066  0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2067  {
2068  164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2069  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2070  0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2071  0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2072  {
2073  165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2074  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2075  0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2076  0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2077  {
2078  166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2079  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2080  0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2081  0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2082  {
2083  168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2084  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2085  0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2086  0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2087  {
2088  170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2089  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2090  0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2091  0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2092  {
2093  172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2094  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2095  0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2096  0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2097  {
2098  174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2099  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2100  0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2101  0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2102  {
2103  176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2104  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2105  0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2106  0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2107  {
2108  178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2109  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2110  0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2111  0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2112  {
2113  180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2114  0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2115  0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2116  0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2117  {
2118  182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2119  0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2120  0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2121  0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2122  {
2123  1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2124  0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2125  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2126  0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2127  {
2128  2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2129  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2130  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2131  0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2132  {
2133  3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2134  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2135  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2136  0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2137  {
2138  4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2139  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2140  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2141  0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2142  {
2143  5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2144  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2145  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2146  0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2147  {
2148  6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2149  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2150  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2151  0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2152  {
2153  7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2154  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2155  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2156  0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2157  {
2158  8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2159  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2160  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2161  0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2162  {
2163  9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2164  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2165  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2166  0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2167  {
2168  10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2169  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2170  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2171  0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2172  {
2173  11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2174  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2175  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2176  0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2177  {
2178  12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2179  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2180  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2181  0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2182  {
2183  13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2184  0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2185  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2186  0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2187  {
2188  14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2189  0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2190  0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2191  0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2192 };
2193 
2194 static const struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5[] = {
2195  {
2196  184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2197  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2198  0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2199  0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2200  {
2201  186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2202  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2203  0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2204  0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2205  {
2206  188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2207  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2208  0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2209  0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2210  {
2211  190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2212  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2213  0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2214  0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2215  {
2216  192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2217  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2218  0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2219  0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2220  {
2221  194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2222  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2223  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2224  0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2225  {
2226  196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2227  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2228  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2229  0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2230  {
2231  198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2232  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2233  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2234  0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2235  {
2236  200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2237  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2238  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2239  0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2240  {
2241  202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2242  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2243  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2244  0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2245  {
2246  204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2247  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2248  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2249  0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2250  {
2251  206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2252  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2253  0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2254  0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2255  {
2256  208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2257  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2258  0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2259  0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2260  {
2261  210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2262  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2263  0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2264  0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2265  {
2266  212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2267  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2268  0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2269  0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2270  {
2271  214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2272  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2273  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2274  0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2275  {
2276  216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2277  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2278  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2279  0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2280  {
2281  218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2282  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2283  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2284  0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2285  {
2286  220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2287  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2288  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2289  0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2290  {
2291  222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2292  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2293  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2294  0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2295  {
2296  224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2297  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2298  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2299  0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2300  {
2301  226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2302  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2303  0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2304  0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2305  {
2306  228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2307  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2308  0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2309  0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2310  {
2311  32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2312  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2313  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2314  0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2315  {
2316  34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2317  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2318  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2319  0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2320  {
2321  36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2322  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2323  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2324  0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2325  {
2326  38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2327  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2328  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2329  0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2330  {
2331  40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2332  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2333  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2334  0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2335  {
2336  42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2337  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2338  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2339  0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2340  {
2341  44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2342  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2343  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2344  0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2345  {
2346  46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2347  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2348  0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2349  0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2350  {
2351  48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2352  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2353  0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2354  0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2355  {
2356  50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2357  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2358  0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2359  0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2360  {
2361  52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2362  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2363  0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2364  0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2365  {
2366  54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2367  0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2368  0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2369  0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2370  {
2371  56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2372  0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2373  0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2374  0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2375  {
2376  58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2377  0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2378  0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2379  0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2380  {
2381  60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2382  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2383  0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2384  0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2385  {
2386  62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2387  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2388  0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2389  0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2390  {
2391  64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2392  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2393  0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2394  0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2395  {
2396  66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2397  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2398  0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2399  0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2400  {
2401  68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2402  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2403  0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2404  0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2405  {
2406  70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2407  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2408  0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2409  0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2410  {
2411  72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2412  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2413  0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2414  0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2415  {
2416  74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2417  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2418  0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2419  0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2420  {
2421  76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2422  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2423  0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2424  0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2425  {
2426  78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2427  0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2428  0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2429  0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2430  {
2431  80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2432  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2433  0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2434  0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2435  {
2436  82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2437  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2438  0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2439  0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2440  {
2441  84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2442  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2443  0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2444  0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2445  {
2446  86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2447  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2448  0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2449  0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2450  {
2451  88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2452  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2453  0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2454  0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2455  {
2456  90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2457  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2458  0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2459  0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2460  {
2461  92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2462  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2463  0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2464  0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2465  {
2466  94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2467  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2468  0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2469  0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2470  {
2471  96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2472  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2473  0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2474  0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2475  {
2476  98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2477  0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2478  0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2479  0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2480  {
2481  100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2482  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2483  0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2484  0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2485  {
2486  102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2487  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2488  0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2489  0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2490  {
2491  104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2492  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2493  0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2494  0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2495  {
2496  106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2497  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2498  0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2499  0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2500  {
2501  108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2502  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2503  0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2504  0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2505  {
2506  110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2507  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2508  0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2509  0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2510  {
2511  112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2512  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2513  0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2514  0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2515  {
2516  114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2517  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2518  0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2519  0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2520  {
2521  116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2522  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2523  0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2524  0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2525  {
2526  118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2527  0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2528  0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2529  0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2530  {
2531  120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2532  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2533  0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2534  0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2535  {
2536  122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2537  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2538  0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2539  0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2540  {
2541  124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2542  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2543  0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2544  0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2545  {
2546  126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2547  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2548  0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2549  0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2550  {
2551  128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2552  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2553  0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2554  0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2555  {
2556  130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2557  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2558  0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2559  0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2560  {
2561  132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2562  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2563  0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2564  0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2565  {
2566  134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2567  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2568  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2569  0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2570  {
2571  136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2572  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2573  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2574  0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2575  {
2576  138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2577  0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2578  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2579  0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2580  {
2581  140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2582  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2583  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2584  0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2585  {
2586  142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2587  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2588  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2589  0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2590  {
2591  144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2592  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2593  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2594  0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2595  {
2596  145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2597  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2598  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2599  0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2600  {
2601  146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2602  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2603  0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2604  0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2605  {
2606  147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2607  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2608  0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2609  0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2610  {
2611  148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2612  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2613  0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2614  0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2615  {
2616  149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2617  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2618  0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2619  0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2620  {
2621  150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2622  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2623  0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2624  0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2625  {
2626  151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2627  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2628  0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2629  0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2630  {
2631  152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2632  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2633  0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2634  0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2635  {
2636  153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2637  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2638  0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2639  0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2640  {
2641  154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2642  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2643  0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2644  0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2645  {
2646  155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2647  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2648  0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2649  0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2650  {
2651  156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2652  0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2653  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2654  0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2655  {
2656  157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2657  0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2658  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2659  0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2660  {
2661  158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2662  0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2663  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2664  0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2665  {
2666  159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2667  0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2668  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2669  0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2670  {
2671  160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 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, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2675  {
2676  161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 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, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2680  {
2681  162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2682  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2683  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2684  0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2685  {
2686  163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2687  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2688  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2689  0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2690  {
2691  164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2692  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2693  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2694  0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2695  {
2696  165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2697  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2698  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2699  0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2700  {
2701  166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2702  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2703  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2704  0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2705  {
2706  168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2707  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2708  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2709  0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2710  {
2711  170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2712  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2713  0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2714  0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2715  {
2716  172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2717  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2718  0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2719  0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2720  {
2721  174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2722  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2723  0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2724  0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2725  {
2726  176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2727  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2728  0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2729  0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2730  {
2731  178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2732  0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2733  0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2734  0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2735  {
2736  180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2737  0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2738  0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2739  0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2740  {
2741  182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2742  0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2743  0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2744  0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2745  {
2746  1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2747  0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2748  0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2749  0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2750  {
2751  2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2752  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2753  0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2754  0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2755  {
2756  3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2757  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2758  0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2759  0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2760  {
2761  4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2762  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2763  0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2764  0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2765  {
2766  5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2767  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2768  0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2769  0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2770  {
2771  6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2772  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2773  0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2774  0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2775  {
2776  7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2777  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2778  0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2779  0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2780  {
2781  8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2782  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2783  0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2784  0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2785  {
2786  9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2787  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2788  0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2789  0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2790  {
2791  10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2792  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2793  0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2794  0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2795  {
2796  11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2797  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2798  0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2799  0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2800  {
2801  12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2802  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2803  0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2804  0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2805  {
2806  13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2807  0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2808  0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2809  0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2810  {
2811  14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2812  0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2813  0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2814  0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2815 };
2816 
2817 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6[] = {
2818  {
2819  184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2820  0x00, 0x00, 0x00, 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, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2823  {
2824  186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2825  0x00, 0x00, 0x00, 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, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2828  {
2829  188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2830  0x00, 0x00, 0x00, 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, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2833  {
2834  190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2835  0x00, 0x00, 0x00, 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, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2838  {
2839  192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 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, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2843  {
2844  194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 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, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2848  {
2849  196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 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, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2853  {
2854  198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 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, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2858  {
2859  200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 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, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2863  {
2864  202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2865  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2866  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2867  0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2868  {
2869  204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2870  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2871  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2872  0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2873  {
2874  206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2875  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2876  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2877  0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2878  {
2879  208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2880  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2881  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2882  0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2883  {
2884  210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2885  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2886  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2887  0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2888  {
2889  212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2890  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2891  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2892  0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2893  {
2894  214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2895  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2896  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2897  0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2898  {
2899  216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2900  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2901  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2902  0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2903  {
2904  218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2905  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2906  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2907  0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2908  {
2909  220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2910  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2911  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2912  0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2913  {
2914  222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2915  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2916  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2917  0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2918  {
2919  224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2920  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2921  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2922  0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2923  {
2924  226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2925  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2926  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2927  0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2928  {
2929  228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2930  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2931  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2932  0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2933  {
2934  32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2935  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2936  0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2937  0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2938  {
2939  34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2940  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2941  0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2942  0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2943  {
2944  36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2945  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2946  0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2947  0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2948  {
2949  38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2950  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2951  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2952  0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2953  {
2954  40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2955  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2956  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2957  0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2958  {
2959  42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2960  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2961  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2962  0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2963  {
2964  44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2965  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2966  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2967  0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2968  {
2969  46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2970  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2971  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2972  0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2973  {
2974  48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2975  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2976  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2977  0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2978  {
2979  50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2980  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2981  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2982  0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2983  {
2984  52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2985  0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2986  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2987  0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2988  {
2989  54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2990  0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2991  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2992  0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2993  {
2994  56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2995  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2996  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2997  0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2998  {
2999  58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3000  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3001  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3002  0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3003  {
3004  60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3005  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3006  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3007  0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3008  {
3009  62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3010  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3011  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3012  0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3013  {
3014  64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3015  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
3016  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3017  0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3018  {
3019  66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3020  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
3021  0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3022  0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3023  {
3024  68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3025  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3026  0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3027  0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3028  {
3029  70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3030  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3031  0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3032  0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3033  {
3034  72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3035  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3036  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3037  0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3038  {
3039  74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3040  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3041  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3042  0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3043  {
3044  76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3045  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3046  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3047  0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3048  {
3049  78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3050  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3051  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3052  0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3053  {
3054  80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3055  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3056  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3057  0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3058  {
3059  82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3060  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3061  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3062  0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3063  {
3064  84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3065  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3066  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3067  0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3068  {
3069  86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3070  0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3071  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3072  0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3073  {
3074  88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3075  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3076  0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3077  0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3078  {
3079  90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3080  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3081  0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3082  0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3083  {
3084  92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3085  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3086  0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3087  0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3088  {
3089  94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3090  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3091  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3092  0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3093  {
3094  96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3095  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3096  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3097  0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3098  {
3099  98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3100  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3101  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3102  0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3103  {
3104  100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3105  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3106  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3107  0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3108  {
3109  102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3110  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3111  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3112  0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3113  {
3114  104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3115  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3116  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3117  0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3118  {
3119  106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3120  0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3121  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3122  0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3123  {
3124  108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3125  0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3126  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3127  0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3128  {
3129  110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3130  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3131  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3132  0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3133  {
3134  112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3135  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3136  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3137  0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3138  {
3139  114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3140  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3141  0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3142  0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3143  {
3144  116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3145  0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3146  0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3147  0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3148  {
3149  118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3150  0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3151  0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3152  0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3153  {
3154  120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3155  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3156  0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3157  0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3158  {
3159  122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3160  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3161  0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3162  0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3163  {
3164  124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3165  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3166  0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3167  0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3168  {
3169  126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3170  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3171  0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3172  0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3173  {
3174  128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3175  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3176  0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3177  0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3178  {
3179  130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3180  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3181  0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3182  0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3183  {
3184  132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3185  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3186  0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3187  0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3188  {
3189  134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3190  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3191  0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3192  0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3193  {
3194  136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3195  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3196  0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3197  0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3198  {
3199  138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3200  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3201  0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3202  0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3203  {
3204  140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3205  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3206  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3207  0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3208  {
3209  142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3210  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3211  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3212  0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3213  {
3214  144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3215  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3216  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3217  0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3218  {
3219  145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3220  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3221  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3222  0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3223  {
3224  146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3225  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3226  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3227  0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3228  {
3229  147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3230  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3231  0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3232  0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3233  {
3234  148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3235  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3236  0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3237  0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3238  {
3239  149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3240  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3241  0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3242  0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3243  {
3244  150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3245  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3246  0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3247  0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3248  {
3249  151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3250  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3251  0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3252  0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3253  {
3254  152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3255  0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3256  0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3257  0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3258  {
3259  153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3260  0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3261  0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3262  0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3263  {
3264  154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3265  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3266  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3267  0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3268  {
3269  155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3270  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3271  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3272  0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3273  {
3274  156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3275  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3276  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3277  0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3278  {
3279  157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3280  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3281  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3282  0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3283  {
3284  158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3285  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3286  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3287  0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3288  {
3289  159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3290  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3291  0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3292  0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3293  {
3294  160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3295  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3296  0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3297  0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3298  {
3299  161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3300  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3301  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3302  0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3303  {
3304  162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3305  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3306  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3307  0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3308  {
3309  163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3310  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3311  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3312  0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3313  {
3314  164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3315  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3316  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3317  0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3318  {
3319  165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3320  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3321  0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3322  0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3323  {
3324  166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3325  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3326  0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3327  0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3328  {
3329  168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3330  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3331  0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3332  0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3333  {
3334  170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3335  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3336  0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3337  0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3338  {
3339  172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3340  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3341  0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3342  0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3343  {
3344  174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3345  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3346  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3347  0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3348  {
3349  176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3350  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3351  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3352  0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3353  {
3354  178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3355  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3356  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3357  0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3358  {
3359  180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3360  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3361  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3362  0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3363  {
3364  182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3365  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3366  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3367  0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3368  {
3369  1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3370  0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3371  0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3372  0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3373  {
3374  2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3375  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3376  0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3377  0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3378  {
3379  3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3380  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3381  0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3382  0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3383  {
3384  4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3385  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3386  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3387  0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3388  {
3389  5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3390  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3391  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3392  0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3393  {
3394  6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3395  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3396  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3397  0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3398  {
3399  7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3400  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3401  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3402  0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3403  {
3404  8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3405  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3406  0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3407  0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3408  {
3409  9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3410  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3411  0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3412  0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3413  {
3414  10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3415  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3416  0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3417  0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3418  {
3419  11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3420  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3421  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3422  0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3423  {
3424  12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3425  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3426  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3427  0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3428  {
3429  13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3430  0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3431  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3432  0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3433  {
3434  14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3435  0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3436  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3437  0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3438 };
3439 
3440 static const struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7[] = {
3441  {
3442  184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3443  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3444  0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3445  0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3446  {
3447  186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3448  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3449  0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3450  0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3451  {
3452  188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3453  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3454  0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3455  0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3456  {
3457  190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3458  0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3459  0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3460  0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3461  {
3462  192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3463  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3464  0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3465  0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3466  {
3467  194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3468  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3469  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3470  0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3471  {
3472  196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3473  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3474  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3475  0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3476  {
3477  198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3478  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3479  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3480  0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3481  {
3482  200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3483  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3484  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3485  0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3486  {
3487  202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3488  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3489  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3490  0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3491  {
3492  204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3493  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3494  0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3495  0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3496  {
3497  206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3498  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3499  0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3500  0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3501  {
3502  208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3503  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3504  0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3505  0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3506  {
3507  210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3508  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3509  0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3510  0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3511  {
3512  212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3513  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3514  0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3515  0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3516  {
3517  214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3518  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3519  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3520  0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3521  {
3522  216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3523  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3524  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3525  0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3526  {
3527  218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3528  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3529  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3530  0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3531  {
3532  220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3533  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3534  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3535  0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3536  {
3537  222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3538  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3539  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3540  0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3541  {
3542  224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3543  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3544  0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3545  0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3546  {
3547  226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3548  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3549  0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3550  0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3551  {
3552  228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3553  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3554  0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3555  0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3556  {
3557  32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3558  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3559  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3560  0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3561  {
3562  34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3563  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3564  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3565  0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3566  {
3567  36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3568  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3569  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3570  0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3571  {
3572  38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3573  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3574  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3575  0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3576  {
3577  40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3578  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3579  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3580  0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3581  {
3582  42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3583  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3584  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3585  0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3586  {
3587  44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3588  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3589  0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3590  0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3591  {
3592  46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3593  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3594  0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3595  0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3596  {
3597  48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3598  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3599  0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3600  0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3601  {
3602  50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3603  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3604  0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3605  0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3606  {
3607  52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3608  0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3609  0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3610  0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3611  {
3612  54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3613  0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3614  0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3615  0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3616  {
3617  56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3618  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3619  0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3620  0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3621  {
3622  58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3623  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3624  0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3625  0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3626  {
3627  60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3628  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3629  0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3630  0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3631  {
3632  62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3633  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3634  0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3635  0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3636  {
3637  64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3638  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3639  0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3640  0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3641  {
3642  66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3643  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3644  0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3645  0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3646  {
3647  68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3648  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3649  0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3650  0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3651  {
3652  70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3653  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3654  0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3655  0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3656  {
3657  72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3658  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3659  0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3660  0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3661  {
3662  74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3663  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3664  0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3665  0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3666  {
3667  76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3668  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3669  0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3670  0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3671  {
3672  78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3673  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3674  0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3675  0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3676  {
3677  80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3678  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3679  0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3680  0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3681  {
3682  82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3683  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3684  0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3685  0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3686  {
3687  84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3688  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3689  0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3690  0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3691  {
3692  86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3693  0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3694  0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3695  0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3696  {
3697  88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3698  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3699  0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3700  0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3701  {
3702  90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3703  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3704  0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3705  0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3706  {
3707  92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3708  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3709  0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3710  0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3711  {
3712  94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3713  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3714  0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3715  0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3716  {
3717  96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3718  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3719  0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3720  0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3721  {
3722  98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3723  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3724  0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3725  0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3726  {
3727  100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3728  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3729  0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3730  0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3731  {
3732  102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3733  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3734  0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3735  0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3736  {
3737  104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3738  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3739  0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3740  0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3741  {
3742  106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3743  0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3744  0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3745  0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3746  {
3747  108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3748  0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3749  0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3750  0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3751  {
3752  110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3753  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3754  0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3755  0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3756  {
3757  112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3758  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3759  0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3760  0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3761  {
3762  114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3763  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3764  0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3765  0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3766  {
3767  116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3768  0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3769  0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3770  0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3771  {
3772  118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3773  0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3774  0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3775  0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3776  {
3777  120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3778  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3779  0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3780  0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3781  {
3782  122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3783  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3784  0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3785  0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3786  {
3787  124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3788  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3789  0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3790  0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3791  {
3792  126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3793  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3794  0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3795  0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3796  {
3797  128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3798  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3799  0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3800  0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3801  {
3802  130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3803  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3804  0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3805  0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3806  {
3807  132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3808  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3809  0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3810  0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3811  {
3812  134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3813  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3814  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3815  0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3816  {
3817  136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3818  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3819  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3820  0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3821  {
3822  138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3823  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3824  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3825  0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3826  {
3827  140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3828  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3829  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3830  0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3831  {
3832  142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3833  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3834  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3835  0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3836  {
3837  144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3838  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3839  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3840  0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3841  {
3842  145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3843  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3844  0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3845  0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3846  {
3847  146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3848  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3849  0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3850  0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3851  {
3852  147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3853  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3854  0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3855  0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3856  {
3857  148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3858  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3859  0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3860  0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3861  {
3862  149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3863  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3864  0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3865  0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3866  {
3867  150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3868  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3869  0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3870  0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3871  {
3872  151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3873  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3874  0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3875  0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3876  {
3877  152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3878  0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3879  0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3880  0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3881  {
3882  153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3883  0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3884  0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3885  0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3886  {
3887  154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3888  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3889  0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3890  0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3891  {
3892  155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3893  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3894  0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3895  0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3896  {
3897  156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3898  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3899  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3900  0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3901  {
3902  157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 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, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3906  {
3907  158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 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, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3911  {
3912  159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 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, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3916  {
3917  160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 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, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3921  {
3922  161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 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, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3926  {
3927  162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3928  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3929  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3930  0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3931  {
3932  163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3933  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3934  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3935  0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3936  {
3937  164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3938  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3939  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3940  0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3941  {
3942  165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3943  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3944  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3945  0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3946  {
3947  166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3948  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3949  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3950  0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3951  {
3952  168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3953  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3954  0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3955  0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3956  {
3957  170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3958  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3959  0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3960  0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3961  {
3962  172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3963  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3964  0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3965  0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3966  {
3967  174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3968  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3969  0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3970  0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3971  {
3972  176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3973  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3974  0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3975  0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3976  {
3977  178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3978  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3979  0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3980  0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3981  {
3982  180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3983  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3984  0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3985  0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3986  {
3987  182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3988  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3989  0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3990  0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3991  {
3992  1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3993  0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3994  0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3995  0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3996  {
3997  2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3998  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3999  0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4000  0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4001  {
4002  3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4003  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
4004  0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4005  0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4006  {
4007  4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4008  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4009  0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4010  0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4011  {
4012  5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4013  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
4014  0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4015  0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4016  {
4017  6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4018  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
4019  0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4020  0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4021  {
4022  7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4023  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
4024  0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
4025  0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4026  {
4027  8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4028  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
4029  0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4030  0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4031  {
4032  9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4033  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4034  0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4035  0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4036  {
4037  10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4038  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4039  0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4040  0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4041  {
4042  11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4043  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4044  0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4045  0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4046  {
4047  12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4048  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4049  0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4050  0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4051  {
4052  13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4053  0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4054  0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4055  0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4056  {
4057  14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4058  0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4059  0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4060  0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4061 };
4062 
4063 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8[] = {
4064  {
4065  184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4066  0x00, 0x00, 0x00, 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, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4069  {
4070  186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4071  0x00, 0x00, 0x00, 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, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4074  {
4075  188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4076  0x00, 0x00, 0x00, 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, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4079  {
4080  190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4081  0x00, 0x00, 0x00, 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, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4084  {
4085  192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 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, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4089  {
4090  194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 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, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4094  {
4095  196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 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, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4099  {
4100  198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 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, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4104  {
4105  200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 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, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4109  {
4110  202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4111  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4112  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4113  0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4114  {
4115  204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4116  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4117  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4118  0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4119  {
4120  206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4121  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4122  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4123  0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4124  {
4125  208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4126  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4127  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4128  0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4129  {
4130  210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4131  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4132  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4133  0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4134  {
4135  212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4136  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4137  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4138  0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4139  {
4140  214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4141  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4142  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4143  0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4144  {
4145  216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4146  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4147  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4148  0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4149  {
4150  218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4151  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4152  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4153  0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4154  {
4155  220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4156  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4157  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4158  0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4159  {
4160  222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4161  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4162  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4163  0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4164  {
4165  224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4166  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4167  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4168  0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4169  {
4170  226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4171  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4172  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4173  0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4174  {
4175  228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4176  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4177  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4178  0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4179  {
4180  32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4181  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4182  0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4183  0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4184  {
4185  34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4186  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4187  0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4188  0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4189  {
4190  36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4191  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4192  0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4193  0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4194  {
4195  38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4196  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4197  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4198  0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4199  {
4200  40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4201  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4202  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4203  0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4204  {
4205  42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4206  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4207  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4208  0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4209  {
4210  44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4211  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4212  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4213  0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4214  {
4215  46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4216  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4217  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4218  0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4219  {
4220  48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4221  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4222  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4223  0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4224  {
4225  50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4226  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4227  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4228  0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4229  {
4230  52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4231  0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4232  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4233  0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4234  {
4235  54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4236  0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4237  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4238  0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4239  {
4240  56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4241  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4242  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4243  0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4244  {
4245  58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4246  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4247  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4248  0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4249  {
4250  60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4251  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4252  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4253  0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4254  {
4255  62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4256  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4257  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4258  0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4259  {
4260  64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4261  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4262  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4263  0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4264  {
4265  66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4266  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4267  0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4268  0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4269  {
4270  68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4271  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4272  0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4273  0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4274  {
4275  70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4276  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4277  0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4278  0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4279  {
4280  72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4281  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4282  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4283  0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4284  {
4285  74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4286  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4287  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4288  0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4289  {
4290  76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4291  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4292  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4293  0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4294  {
4295  78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4296  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4297  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4298  0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4299  {
4300  80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4301  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4302  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4303  0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4304  {
4305  82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4306  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4307  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4308  0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4309  {
4310  84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4311  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4312  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4313  0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4314  {
4315  86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4316  0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4317  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4318  0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4319  {
4320  88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4321  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4322  0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4323  0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4324  {
4325  90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4326  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4327  0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4328  0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4329  {
4330  92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4331  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4332  0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4333  0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4334  {
4335  94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4336  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4337  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4338  0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4339  {
4340  96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4341  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4342  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4343  0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4344  {
4345  98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4346  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4347  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4348  0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4349  {
4350  100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4351  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4352  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4353  0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4354  {
4355  102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4356  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4357  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4358  0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4359  {
4360  104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4361  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4362  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4363  0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4364  {
4365  106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4366  0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4367  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4368  0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4369  {
4370  108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4371  0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4372  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4373  0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4374  {
4375  110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4376  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4377  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4378  0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4379  {
4380  112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4381  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4382  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4383  0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4384  {
4385  114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4386  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4387  0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4388  0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4389  {
4390  116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4391  0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4392  0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4393  0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4394  {
4395  118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4396  0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4397  0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4398  0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4399  {
4400  120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4401  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4402  0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4403  0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4404  {
4405  122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4406  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4407  0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4408  0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4409  {
4410  124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4411  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4412  0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4413  0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4414  {
4415  126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4416  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4417  0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4418  0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4419  {
4420  128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4421  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4422  0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4423  0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4424  {
4425  130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4426  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4427  0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4428  0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4429  {
4430  132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4431  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4432  0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4433  0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4434  {
4435  134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4436  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4437  0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4438  0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4439  {
4440  136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4441  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4442  0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4443  0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4444  {
4445  138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4446  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4447  0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4448  0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4449  {
4450  140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4451  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4452  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4453  0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4454  {
4455  142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4456  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4457  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4458  0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4459  {
4460  144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4461  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4462  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4463  0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4464  {
4465  145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4466  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4467  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4468  0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4469  {
4470  146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4471  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4472  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4473  0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4474  {
4475  147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4476  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4477  0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4478  0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4479  {
4480  148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4481  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4482  0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4483  0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4484  {
4485  149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4486  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4487  0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4488  0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4489  {
4490  150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4491  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4492  0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4493  0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4494  {
4495  151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4496  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4497  0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4498  0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4499  {
4500  152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4501  0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4502  0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4503  0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4504  {
4505  153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4506  0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4507  0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4508  0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4509  {
4510  154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4511  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4512  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4513  0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4514  {
4515  155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4516  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4517  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4518  0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4519  {
4520  156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4521  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4522  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4523  0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4524  {
4525  157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4526  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4527  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4528  0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4529  {
4530  158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4531  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4532  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4533  0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4534  {
4535  159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4536  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4537  0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4538  0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4539  {
4540  160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4541  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4542  0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4543  0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4544  {
4545  161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4546  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4547  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4548  0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4549  {
4550  162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4551  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4552  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4553  0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4554  {
4555  163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4556  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4557  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4558  0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4559  {
4560  164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4561  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4562  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4563  0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4564  {
4565  165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4566  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4567  0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4568  0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4569  {
4570  166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4571  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4572  0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4573  0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4574  {
4575  168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4576  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4577  0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4578  0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4579  {
4580  170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4581  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4582  0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4583  0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4584  {
4585  172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4586  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4587  0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4588  0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4589  {
4590  174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4591  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4592  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4593  0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4594  {
4595  176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4596  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4597  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4598  0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4599  {
4600  178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4601  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4602  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4603  0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4604  {
4605  180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4606  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4607  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4608  0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4609  {
4610  182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4611  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4612  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4613  0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4614  {
4615  1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4616  0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4617  0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4618  0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4619  {
4620  2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4621  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4622  0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4623  0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4624  {
4625  3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4626  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4627  0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4628  0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4629  {
4630  4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4631  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4632  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4633  0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4634  {
4635  5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4636  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4637  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4638  0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4639  {
4640  6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4641  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4642  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4643  0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4644  {
4645  7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4646  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4647  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4648  0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4649  {
4650  8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4651  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4652  0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4653  0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4654  {
4655  9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4656  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4657  0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4658  0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4659  {
4660  10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4661  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4662  0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4663  0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4664  {
4665  11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4666  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4667  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4668  0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4669  {
4670  12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4671  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4672  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4673  0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4674  {
4675  13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4676  0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4677  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4678  0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4679  {
4680  14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4681  0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4682  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4683  0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4684 };
4685 
4686 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11[] = {
4687  {
4688  184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4689  0x00, 0x00, 0x00, 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, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4692  {
4693  186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4694  0x00, 0x00, 0x00, 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, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4697  {
4698  188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4699  0x00, 0x00, 0x00, 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, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4702  {
4703  190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4704  0x00, 0x00, 0x00, 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, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4707  {
4708  192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 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, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4712  {
4713  194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 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, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4717  {
4718  196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 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, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4722  {
4723  198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 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, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4727  {
4728  200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 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, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4732  {
4733  202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4734  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4735  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4736  0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4737  {
4738  204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4739  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4740  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4741  0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4742  {
4743  206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4744  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4745  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4746  0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4747  {
4748  208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4749  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4750  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4751  0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4752  {
4753  210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4754  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4755  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4756  0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4757  {
4758  212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4759  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4760  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4761  0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4762  {
4763  214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4764  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4765  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4766  0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4767  {
4768  216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4769  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4770  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4771  0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4772  {
4773  218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4774  0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4775  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4776  0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4777  {
4778  220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4779  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4780  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4781  0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4782  {
4783  222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4784  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4785  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4786  0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4787  {
4788  224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4789  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4790  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4791  0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4792  {
4793  226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4794  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4795  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4796  0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4797  {
4798  228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4799  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4800  0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4801  0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4802  {
4803  32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4804  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4805  0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4806  0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4807  {
4808  34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4809  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4810  0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4811  0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4812  {
4813  36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4814  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4815  0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4816  0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4817  {
4818  38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4819  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4820  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4821  0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4822  {
4823  40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4824  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4825  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4826  0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4827  {
4828  42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4829  0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4830  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4831  0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4832  {
4833  44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4834  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4835  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4836  0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4837  {
4838  46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4839  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4840  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4841  0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4842  {
4843  48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4844  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4845  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4846  0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4847  {
4848  50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4849  0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4850  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4851  0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4852  {
4853  52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4854  0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4855  0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4856  0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4857  {
4858  54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4859  0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4860  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4861  0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4862  {
4863  56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4864  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4865  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4866  0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4867  {
4868  58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4869  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4870  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4871  0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4872  {
4873  60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4874  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4875  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4876  0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4877  {
4878  62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4879  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4880  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4881  0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4882  {
4883  64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4884  0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4885  0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4886  0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4887  {
4888  66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4889  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4890  0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4891  0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4892  {
4893  68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4894  0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4895  0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4896  0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4897  {
4898  70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4899  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4900  0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4901  0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4902  {
4903  72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4904  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4905  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4906  0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4907  {
4908  74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4909  0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4910  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4911  0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4912  {
4913  76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4914  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4915  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4916  0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4917  {
4918  78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4919  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4920  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4921  0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4922  {
4923  80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4924  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4925  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4926  0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4927  {
4928  82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4929  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4930  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4931  0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4932  {
4933  84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4934  0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4935  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4936  0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4937  {
4938  86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4939  0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4940  0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4941  0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4942  {
4943  88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4944  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4945  0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4946  0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4947  {
4948  90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4949  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4950  0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4951  0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4952  {
4953  92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4954  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4955  0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4956  0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4957  {
4958  94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4959  0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4960  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4961  0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4962  {
4963  96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4964  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4965  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4966  0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4967  {
4968  98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4969  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4970  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4971  0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4972  {
4973  100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4974  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4975  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4976  0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4977  {
4978  102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4979  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4980  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4981  0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4982  {
4983  104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4984  0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4985  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4986  0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4987  {
4988  106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4989  0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4990  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4991  0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4992  {
4993  108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4994  0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4995  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4996  0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4997  {
4998  110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4999  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5000  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5001  0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
5002  {
5003  112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5004  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5005  0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5006  0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
5007  {
5008  114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5009  0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
5010  0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5011  0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
5012  {
5013  116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5014  0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
5015  0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5016  0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
5017  {
5018  118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5019  0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
5020  0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5021  0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
5022  {
5023  120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
5024  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5025  0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5026  0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
5027  {
5028  122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
5029  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5030  0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5031  0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5032  {
5033  124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5034  0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5035  0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5036  0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5037  {
5038  126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5039  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5040  0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5041  0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5042  {
5043  128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5044  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5045  0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5046  0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5047  {
5048  130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5049  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5050  0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5051  0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5052  {
5053  132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5054  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5055  0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5056  0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5057  {
5058  134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5059  0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5060  0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5061  0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5062  {
5063  136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5064  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5065  0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5066  0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5067  {
5068  138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5069  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5070  0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5071  0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5072  {
5073  140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5074  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5075  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5076  0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5077  {
5078  142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5079  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5080  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5081  0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5082  {
5083  144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5084  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5085  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5086  0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5087  {
5088  145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5089  0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5090  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5091  0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5092  {
5093  146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5094  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5095  0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5096  0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5097  {
5098  147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5099  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5100  0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5101  0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5102  {
5103  148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5104  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5105  0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5106  0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5107  {
5108  149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5109  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5110  0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5111  0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5112  {
5113  150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5114  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5115  0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5116  0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5117  {
5118  151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5119  0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5120  0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5121  0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5122  {
5123  152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5124  0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5125  0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5126  0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5127  {
5128  153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5129  0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5130  0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5131  0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5132  {
5133  154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5134  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5135  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5136  0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5137  {
5138  155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5139  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5140  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5141  0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5142  {
5143  156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5144  0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5145  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5146  0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5147  {
5148  157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5149  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5150  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5151  0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5152  {
5153  158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5154  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5155  0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5156  0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5157  {
5158  159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5159  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5160  0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5161  0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5162  {
5163  160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5164  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5165  0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5166  0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5167  {
5168  161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5169  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5170  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5171  0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5172  {
5173  162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5174  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5175  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5176  0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5177  {
5178  163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5179  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5180  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5181  0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5182  {
5183  164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5184  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5185  0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5186  0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5187  {
5188  165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5189  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5190  0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5191  0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5192  {
5193  166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5194  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5195  0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5196  0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5197  {
5198  168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5199  0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5200  0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5201  0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5202  {
5203  170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5204  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5205  0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5206  0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5207  {
5208  172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5209  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5210  0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5211  0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5212  {
5213  174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5214  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5215  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5216  0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5217  {
5218  176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5219  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5220  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5221  0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5222  {
5223  178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5224  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5225  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5226  0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5227  {
5228  180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5229  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5230  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5231  0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5232  {
5233  182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5234  0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5235  0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5236  0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5237  {
5238  1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5239  0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5240  0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5241  0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5242  {
5243  2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5244  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5245  0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5246  0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5247  {
5248  3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5249  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5250  0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5251  0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5252  {
5253  4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5254  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5255  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5256  0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5257  {
5258  5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5259  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5260  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5261  0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5262  {
5263  6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5264  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5265  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5266  0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5267  {
5268  7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5269  0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5270  0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5271  0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5272  {
5273  8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5274  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5275  0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5276  0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5277  {
5278  9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5279  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5280  0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5281  0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5282  {
5283  10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5284  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5285  0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5286  0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5287  {
5288  11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5289  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5290  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5291  0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5292  {
5293  12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5294  0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5295  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5296  0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5297  {
5298  13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5299  0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5300  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5301  0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5302  {
5303  14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5304  0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5305  0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5306  0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5307 };
5308 
5309 static const struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4[] = {
5310  {
5311  184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5312  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5313  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5314  0x0215,
5315  0x0216,
5316  },
5317  {
5318  186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5319  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5320  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5321  0x0214,
5322  0x0215,
5323  },
5324  {
5325  188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5326  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5327  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5328  0x0213,
5329  0x0214,
5330  },
5331  {
5332  190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5333  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5334  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5335  0x0212,
5336  0x0213,
5337  },
5338  {
5339  192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5340  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5341  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5342  0x0211,
5343  0x0212,
5344  },
5345  {
5346  194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5347  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5348  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5349  0x020f,
5350  0x0211,
5351  },
5352  {
5353  196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5354  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5355  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5356  0x020e,
5357  0x020f,
5358  },
5359  {
5360  198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5361  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5362  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5363  0x020d,
5364  0x020e,
5365  },
5366  {
5367  200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5368  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5369  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5370  0x020c,
5371  0x020d,
5372  },
5373  {
5374  202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5375  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5376  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5377  0x020b,
5378  0x020c,
5379  },
5380  {
5381  204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5382  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5383  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5384  0x020a,
5385  0x020b,
5386  },
5387  {
5388  206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5389  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5390  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5391  0x0209,
5392  0x020a,
5393  },
5394  {
5395  208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5396  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5397  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5398  0x0208,
5399  0x0209,
5400  },
5401  {
5402  210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5403  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5404  0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5405  0x0207,
5406  0x0208,
5407  },
5408  {
5409  212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5410  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5411  0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5412  0x0206,
5413  0x0207,
5414  },
5415  {
5416  214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5417  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5418  0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5419  0x0205,
5420  0x0206,
5421  },
5422  {
5423  216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5424  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5425  0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5426  0x0204,
5427  0x0205,
5428  },
5429  {
5430  218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5431  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5432  0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5433  0x0203,
5434  0x0204,
5435  },
5436  {
5437  220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5438  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5439  0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5440  0x0202,
5441  0x0203,
5442  },
5443  {
5444  222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5445  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5446  0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5447  0x0201,
5448  0x0202,
5449  },
5450  {
5451  224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5452  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5453  0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5454  0x0200,
5455  0x0201,
5456  },
5457  {
5458  226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5459  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5460  0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5461  0x01ff,
5462  0x0200,
5463  },
5464  {
5465  228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5466  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5467  0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5468  0x01fe,
5469  0x01ff,
5470  },
5471  {
5472  32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5473  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5474  0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5475  0x01fc,
5476  0x01fd,
5477  },
5478  {
5479  34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5480  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5481  0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5482  0x01fb,
5483  0x01fc,
5484  },
5485  {
5486  36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5487  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5488  0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5489  0x01fa,
5490  0x01fb,
5491  },
5492  {
5493  38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5494  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5495  0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5496  0x01f9,
5497  0x01fa,
5498  },
5499  {
5500  40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5501  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5502  0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5503  0x01f8,
5504  0x01f9,
5505  },
5506  {
5507  42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5508  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5509  0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5510  0x01f7,
5511  0x01f8,
5512  },
5513  {
5514  44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5515  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5516  0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5517  0x01f6,
5518  0x01f7,
5519  },
5520  {
5521  46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5522  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5523  0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5524  0x01f5,
5525  0x01f6,
5526  },
5527  {
5528  48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5529  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5530  0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5531  0x01f4,
5532  0x01f5,
5533  },
5534  {
5535  50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5536  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5537  0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5538  0x01f3,
5539  0x01f4,
5540  },
5541  {
5542  52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5543  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5544  0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5545  0x01f2,
5546  0x01f3,
5547  },
5548  {
5549  54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5550  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5551  0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5552  0x01f1,
5553  0x01f2,
5554  },
5555  {
5556  56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5557  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5558  0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5559  0x01f0,
5560  0x01f1,
5561  },
5562  {
5563  58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5564  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5565  0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5566  0x01f0,
5567  0x01f0,
5568  },
5569  {
5570  60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5571  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5572  0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5573  0x01ef,
5574  0x01f0,
5575  },
5576  {
5577  62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5578  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5579  0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5580  0x01ee,
5581  0x01ef,
5582  },
5583  {
5584  64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5585  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5586  0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5587  0x01ed,
5588  0x01ee,
5589  },
5590  {
5591  66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5592  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5593  0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5594  0x01ec,
5595  0x01ed,
5596  },
5597  {
5598  68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5599  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5600  0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5601  0x01eb,
5602  0x01ec,
5603  },
5604  {
5605  70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5606  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5607  0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5608  0x01ea,
5609  0x01eb,
5610  },
5611  {
5612  72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5613  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5614  0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5615  0x01e9,
5616  0x01ea,
5617  },
5618  {
5619  74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5620  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5621  0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5622  0x01e8,
5623  0x01e9,
5624  },
5625  {
5626  76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5627  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5628  0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5629  0x01e7,
5630  0x01e8,
5631  },
5632  {
5633  78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5634  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5635  0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5636  0x01e6,
5637  0x01e7,
5638  },
5639  {
5640  80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5641  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5642  0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5643  0x01e5,
5644  0x01e6,
5645  },
5646  {
5647  82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5648  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5649  0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5650  0x01e5,
5651  0x01e5,
5652  },
5653  {
5654  84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5655  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5656  0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5657  0x01e4,
5658  0x01e5,
5659  },
5660  {
5661  86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5662  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5663  0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5664  0x01e3,
5665  0x01e4,
5666  },
5667  {
5668  88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5669  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5670  0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5671  0x01e2,
5672  0x01e3,
5673  },
5674  {
5675  90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5676  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5677  0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5678  0x01e1,
5679  0x01e2,
5680  },
5681  {
5682  92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5683  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5684  0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5685  0x01e0,
5686  0x01e1,
5687  },
5688  {
5689  94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5690  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5691  0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5692  0x01df,
5693  0x01e0,
5694  },
5695  {
5696  96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5697  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5698  0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5699  0x01de,
5700  0x01df,
5701  },
5702  {
5703  98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5704  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5705  0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5706  0x01dd,
5707  0x01de,
5708  },
5709  {
5710  100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5711  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5712  0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5713  0x01dd,
5714  0x01dd,
5715  },
5716  {
5717  102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5718  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5719  0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5720  0x01dc,
5721  0x01dd,
5722  },
5723  {
5724  104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5725  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5726  0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5727  0x01db,
5728  0x01dc,
5729  },
5730  {
5731  106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5732  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5733  0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5734  0x01da,
5735  0x01db,
5736  },
5737  {
5738  108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5739  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5740  0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5741  0x01d9,
5742  0x01da,
5743  },
5744  {
5745  110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5746  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5747  0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5748  0x01d8,
5749  0x01d9,
5750  },
5751  {
5752  112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5753  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5754  0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5755  0x01d7,
5756  0x01d8,
5757  },
5758  {
5759  114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5760  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5761  0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5762  0x01d7,
5763  0x01d7,
5764  },
5765  {
5766  116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5767  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5768  0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5769  0x01d6,
5770  0x01d7,
5771  },
5772  {
5773  118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5774  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5775  0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5776  0x01d5,
5777  0x01d6,
5778  },
5779  {
5780  120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5781  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5782  0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5783  0x01d4,
5784  0x01d5,
5785  },
5786  {
5787  122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5788  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5789  0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5790  0x01d3,
5791  0x01d4,
5792  },
5793  {
5794  124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5795  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5796  0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5797  0x01d2,
5798  0x01d3,
5799  },
5800  {
5801  126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5802  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5803  0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5804  0x01d2,
5805  0x01d2,
5806  },
5807  {
5808  128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5809  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5810  0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5811  0x01d1,
5812  0x01d2,
5813  },
5814  {
5815  130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5816  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5817  0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5818  0x01d0,
5819  0x01d1,
5820  },
5821  {
5822  132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5823  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5824  0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5825  0x01cf,
5826  0x01d0,
5827  },
5828  {
5829  134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5830  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5831  0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5832  0x01ce,
5833  0x01cf,
5834  },
5835  {
5836  136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5837  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5838  0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5839  0x01ce,
5840  0x01ce,
5841  },
5842  {
5843  138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5844  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5845  0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5846  0x01cd,
5847  0x01ce,
5848  },
5849  {
5850  140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5851  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5852  0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5853  0x01cc,
5854  0x01cd,
5855  },
5856  {
5857  142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5858  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5859  0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5860  0x01cb,
5861  0x01cc,
5862  },
5863  {
5864  144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5865  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5866  0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5867  0x01ca,
5868  0x01cb,
5869  },
5870  {
5871  145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5872  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5873  0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5874  0x01ca,
5875  0x01cb,
5876  },
5877  {
5878  146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5879  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5880  0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5881  0x01c9,
5882  0x01ca,
5883  },
5884  {
5885  147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5886  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5887  0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5888  0x01c9,
5889  0x01ca,
5890  },
5891  {
5892  148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5893  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5894  0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5895  0x01c9,
5896  0x01c9,
5897  },
5898  {
5899  149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5900  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5901  0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5902  0x01c8,
5903  0x01c9,
5904  },
5905  {
5906  150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5907  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5908  0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5909  0x01c8,
5910  0x01c9,
5911  },
5912  {
5913  151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5914  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5915  0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5916  0x01c8,
5917  0x01c8,
5918  },
5919  {
5920  152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5921  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5922  0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5923  0x01c7,
5924  0x01c8,
5925  },
5926  {
5927  153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5928  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5929  0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5930  0x01c7,
5931  0x01c8,
5932  },
5933  {
5934  154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5935  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5936  0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5937  0x01c6,
5938  0x01c7,
5939  },
5940  {
5941  155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5942  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5943  0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5944  0x01c6,
5945  0x01c7,
5946  },
5947  {
5948  156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5949  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5950  0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5951  0x01c6,
5952  0x01c6,
5953  },
5954  {
5955  157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5956  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5957  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5958  0x01c5,
5959  0x01c6,
5960  },
5961  {
5962  158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5963  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5964  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5965  0x01c5,
5966  0x01c6,
5967  },
5968  {
5969  159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5970  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5971  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5972  0x01c4,
5973  0x01c5,
5974  },
5975  {
5976  160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5977  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5978  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5979  0x01c4,
5980  0x01c5,
5981  },
5982  {
5983  161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5984  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5985  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5986  0x01c4,
5987  0x01c4,
5988  },
5989  {
5990  162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5991  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5992  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5993  0x01c3,
5994  0x01c4,
5995  },
5996  {
5997  163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5998  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5999  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6000  0x01c3,
6001  0x01c4,
6002  },
6003  {
6004  164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6005  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6006  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6007  0x01c2,
6008  0x01c3,
6009  },
6010  {
6011  165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6012  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6013  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6014  0x01c2,
6015  0x01c3,
6016  },
6017  {
6018  166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6019  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6020  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6021  0x01c2,
6022  0x01c2,
6023  },
6024  {
6025  168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6026  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6027  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6028  0x01c1,
6029  0x01c2,
6030  },
6031  {
6032  170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6033  0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6034  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6035  0x01c0,
6036  0x01c1,
6037  },
6038  {
6039  172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6040  0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6041  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6042  0x01bf,
6043  0x01c0,
6044  },
6045  {
6046  174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6047  0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6048  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6049  0x01bf,
6050  0x01bf,
6051  },
6052  {
6053  176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6054  0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6055  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6056  0x01be,
6057  0x01bf,
6058  },
6059  {
6060  178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6061  0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6062  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6063  0x01bd,
6064  0x01be,
6065  },
6066  {
6067  180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6068  0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6069  0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6070  0x01bc,
6071  0x01bd,
6072  },
6073  {
6074  1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6075  0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6076  0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6077  0x043f,
6078  0x0443,
6079  },
6080  {
6081  2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6082  0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6083  0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6084  0x043d,
6085  0x0441,
6086  },
6087  {
6088  3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6089  0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6090  0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6091  0x043a,
6092  0x043f,
6093  },
6094  {
6095  4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6096  0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6097  0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6098  0x0438,
6099  0x043d,
6100  },
6101  {
6102  5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6103  0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6104  0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6105  0x0436,
6106  0x043a,
6107  },
6108  {
6109  6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6110  0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6111  0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6112  0x0434,
6113  0x0438,
6114  },
6115  {
6116  7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6117  0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6118  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6119  0x0431,
6120  0x0436,
6121  },
6122  {
6123  8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6124  0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6125  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6126  0x042f,
6127  0x0434,
6128  },
6129  {
6130  9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6131  0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6132  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6133  0x042d,
6134  0x0431,
6135  },
6136  {
6137  10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6138  0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6139  0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6140  0x042b,
6141  0x042f,
6142  },
6143  {
6144  11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6145  0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6146  0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6147  0x0429,
6148  0x042d,
6149  },
6150  {
6151  12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6152  0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6153  0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6154  0x0427,
6155  0x042b,
6156  },
6157  {
6158  13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6159  0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6160  0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6161  0x0424,
6162  0x0429,
6163  },
6164  {
6165  14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6166  0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6167  0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6168  0x041f,
6169  0x0424}
6170 };
6171 
6172 static const struct chan_info_nphy_radio2057_rev5
6173 chan_info_nphyrev8_2057_rev5[] = {
6174  {
6175  1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6176  0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6177  0x043a, 0x043f, 0x0443},
6178  {
6179  2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6180  0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6181  0x0438, 0x043d, 0x0441},
6182  {
6183  3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6184  0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6185  0x0436, 0x043a, 0x043f},
6186  {
6187  4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6188  0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6189  0x0434, 0x0438, 0x043d},
6190  {
6191  5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6192  0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6193  0x0431, 0x0436, 0x043a},
6194  {
6195  6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6196  0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6197  0x042f, 0x0434, 0x0438},
6198  {
6199  7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6200  0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6201  0x042d, 0x0431, 0x0436},
6202  {
6203  8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6204  0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6205  0x042b, 0x042f, 0x0434},
6206  {
6207  9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6208  0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6209  0x0429, 0x042d, 0x0431},
6210  {
6211  10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6212  0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6213  0x0427, 0x042b, 0x042f},
6214  {
6215  11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6216  0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6217  0x0424, 0x0429, 0x042d},
6218  {
6219  12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6220  0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6221  0x0422, 0x0427, 0x042b},
6222  {
6223  13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6224  0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6225  0x0420, 0x0424, 0x0429},
6226  {
6227  14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6228  0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6229  0x041b, 0x041f, 0x0424}
6230 };
6231 
6232 static const struct chan_info_nphy_radio2057_rev5
6233 chan_info_nphyrev9_2057_rev5v1[] = {
6234  {
6235  1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6236  0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6237  0x043a, 0x043f, 0x0443},
6238  {
6239  2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6240  0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6241  0x0438, 0x043d, 0x0441},
6242  {
6243  3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6244  0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6245  0x0436, 0x043a, 0x043f},
6246  {
6247  4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6248  0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6249  0x0434, 0x0438, 0x043d},
6250  {
6251  5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6252  0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6253  0x0431, 0x0436, 0x043a},
6254  {
6255  6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6256  0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6257  0x042f, 0x0434, 0x0438},
6258  {
6259  7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6260  0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6261  0x042d, 0x0431, 0x0436},
6262  {
6263  8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6264  0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6265  0x042b, 0x042f, 0x0434},
6266  {
6267  9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6268  0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6269  0x0429, 0x042d, 0x0431},
6270  {
6271  10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6272  0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6273  0x0427, 0x042b, 0x042f},
6274  {
6275  11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6276  0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6277  0x0424, 0x0429, 0x042d},
6278  {
6279  12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6280  0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6281  0x0422, 0x0427, 0x042b},
6282  {
6283  13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6284  0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6285  0x0420, 0x0424, 0x0429},
6286  {
6287  14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6288  0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6289  0x041b, 0x041f, 0x0424}
6290 };
6291 
6292 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7[] = {
6293  {
6294  184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6295  0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6296  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6297  0x0215,
6298  0x0216},
6299  {
6300  186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6301  0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6302  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6303  0x0214,
6304  0x0215},
6305  {
6306  188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6307  0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6308  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6309  0x0213,
6310  0x0214},
6311  {
6312  190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6313  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6314  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6315  0x0212,
6316  0x0213},
6317  {
6318  192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6319  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6320  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6321  0x0211,
6322  0x0212},
6323  {
6324  194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6325  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6326  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6327  0x020f,
6328  0x0211},
6329  {
6330  196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6331  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6332  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6333  0x020e,
6334  0x020f},
6335  {
6336  198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6337  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6338  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6339  0x020d,
6340  0x020e},
6341  {
6342  200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6343  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6344  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6345  0x020c,
6346  0x020d},
6347  {
6348  202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6349  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6350  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6351  0x020b,
6352  0x020c},
6353  {
6354  204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6355  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6356  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6357  0x020a,
6358  0x020b},
6359  {
6360  206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6361  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6362  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6363  0x0209,
6364  0x020a},
6365  {
6366  208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6367  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6368  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6369  0x0208,
6370  0x0209},
6371  {
6372  210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6373  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6374  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6375  0x0207,
6376  0x0208},
6377  {
6378  212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6379  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6380  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6381  0x0206,
6382  0x0207},
6383  {
6384  214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6385  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6386  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6387  0x0205,
6388  0x0206},
6389  {
6390  216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6391  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6392  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6393  0x0204,
6394  0x0205},
6395  {
6396  218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6397  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6398  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6399  0x0203,
6400  0x0204},
6401  {
6402  220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6403  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6404  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6405  0x0202,
6406  0x0203},
6407  {
6408  222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6409  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6410  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6411  0x0201,
6412  0x0202},
6413  {
6414  224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6415  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6416  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6417  0x0200,
6418  0x0201},
6419  {
6420  226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6421  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6422  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6423  0x01ff,
6424  0x0200},
6425  {
6426  228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6427  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6428  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6429  0x01fe,
6430  0x01ff},
6431  {
6432  32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6433  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6434  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6435  0x01fc,
6436  0x01fd},
6437  {
6438  34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6439  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6440  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6441  0x01fb,
6442  0x01fc},
6443  {
6444  36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6445  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6446  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6447  0x01fa,
6448  0x01fb},
6449  {
6450  38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6451  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6452  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6453  0x01f9,
6454  0x01fa},
6455  {
6456  40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6457  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6458  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6459  0x01f8,
6460  0x01f9},
6461  {
6462  42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6463  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6464  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6465  0x01f7,
6466  0x01f8},
6467  {
6468  44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6469  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6470  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6471  0x01f6,
6472  0x01f7},
6473  {
6474  46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6475  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6476  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6477  0x01f5,
6478  0x01f6},
6479  {
6480  48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6481  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6482  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6483  0x01f4,
6484  0x01f5},
6485  {
6486  50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6487  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6488  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6489  0x01f3,
6490  0x01f4},
6491  {
6492  52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6493  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6494  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6495  0x01f2,
6496  0x01f3},
6497  {
6498  54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6499  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6500  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6501  0x01f1,
6502  0x01f2},
6503  {
6504  56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6505  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6506  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6507  0x01f0,
6508  0x01f1},
6509  {
6510  58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6511  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6512  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6513  0x01f0,
6514  0x01f0},
6515  {
6516  60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6517  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6518  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6519  0x01ef,
6520  0x01f0},
6521  {
6522  62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6523  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6524  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6525  0x01ee,
6526  0x01ef},
6527  {
6528  64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6529  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6530  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6531  0x01ed,
6532  0x01ee},
6533  {
6534  66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6535  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6536  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6537  0x01ec,
6538  0x01ed},
6539  {
6540  68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6541  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6542  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6543  0x01eb,
6544  0x01ec},
6545  {
6546  70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6547  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6548  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6549  0x01ea,
6550  0x01eb},
6551  {
6552  72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6553  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6554  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6555  0x01e9,
6556  0x01ea},
6557  {
6558  74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6559  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6560  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6561  0x01e8,
6562  0x01e9},
6563  {
6564  76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6565  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6566  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6567  0x01e7,
6568  0x01e8},
6569  {
6570  78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6571  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6572  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6573  0x01e6,
6574  0x01e7},
6575  {
6576  80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6577  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6578  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6579  0x01e5,
6580  0x01e6},
6581  {
6582  82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6583  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6584  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6585  0x01e5,
6586  0x01e5},
6587  {
6588  84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6589  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6590  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6591  0x01e4,
6592  0x01e5},
6593  {
6594  86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6595  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6596  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6597  0x01e3,
6598  0x01e4},
6599  {
6600  88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6601  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6602  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6603  0x01e2,
6604  0x01e3},
6605  {
6606  90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6607  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6608  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6609  0x01e1,
6610  0x01e2},
6611  {
6612  92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6613  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6614  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6615  0x01e0,
6616  0x01e1},
6617  {
6618  94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6619  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6620  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6621  0x01df,
6622  0x01e0},
6623  {
6624  96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6625  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6626  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6627  0x01de,
6628  0x01df},
6629  {
6630  98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6631  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6632  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6633  0x01dd,
6634  0x01de},
6635  {
6636  100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6637  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6638  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6639  0x01dd,
6640  0x01dd},
6641  {
6642  102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6643  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6644  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6645  0x01dc,
6646  0x01dd},
6647  {
6648  104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6649  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6650  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6651  0x01db,
6652  0x01dc},
6653  {
6654  106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6655  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6656  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6657  0x01da,
6658  0x01db},
6659  {
6660  108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6661  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6662  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6663  0x01d9,
6664  0x01da},
6665  {
6666  110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6667  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6668  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6669  0x01d8,
6670  0x01d9},
6671  {
6672  112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6673  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6674  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6675  0x01d7,
6676  0x01d8},
6677  {
6678  114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6679  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6680  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6681  0x01d7,
6682  0x01d7},
6683  {
6684  116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6685  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6686  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6687  0x01d6,
6688  0x01d7},
6689  {
6690  118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6691  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6692  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6693  0x01d5,
6694  0x01d6},
6695  {
6696  120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6697  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6698  0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6699  0x01d4,
6700  0x01d5},
6701  {
6702  122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6703  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6704  0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6705  0x01d3,
6706  0x01d4},
6707  {
6708  124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6709  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6710  0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6711  0x01d2,
6712  0x01d3},
6713  {
6714  126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6715  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6716  0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6717  0x01d2,
6718  0x01d2},
6719  {
6720  128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6721  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6722  0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6723  0x01d1,
6724  0x01d2},
6725  {
6726  130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6727  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6728  0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6729  0x01d0,
6730  0x01d1},
6731  {
6732  132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6733  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6734  0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6735  0x01cf,
6736  0x01d0},
6737  {
6738  134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6739  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6740  0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6741  0x01ce,
6742  0x01cf},
6743  {
6744  136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6745  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6746  0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6747  0x01ce,
6748  0x01ce},
6749  {
6750  138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6751  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6752  0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6753  0x01cd,
6754  0x01ce},
6755  {
6756  140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6757  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6758  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6759  0x01cc,
6760  0x01cd},
6761  {
6762  142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6763  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6764  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6765  0x01cb,
6766  0x01cc},
6767  {
6768  144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6769  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6770  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6771  0x01ca,
6772  0x01cb},
6773  {
6774  145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6775  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6776  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6777  0x01ca,
6778  0x01cb},
6779  {
6780  146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6781  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6782  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6783  0x01c9,
6784  0x01ca},
6785  {
6786  147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6787  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6788  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6789  0x01c9,
6790  0x01ca},
6791  {
6792  148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6793  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6794  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6795  0x01c9,
6796  0x01c9},
6797  {
6798  149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6799  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6800  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6801  0x01c8,
6802  0x01c9},
6803  {
6804  150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6805  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6806  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6807  0x01c8,
6808  0x01c9},
6809  {
6810  151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6811  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6812  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6813  0x01c8,
6814  0x01c8},
6815  {
6816  152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6817  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6818  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6819  0x01c7,
6820  0x01c8},
6821  {
6822  153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6823  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6824  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6825  0x01c7,
6826  0x01c8},
6827  {
6828  154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6829  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6830  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6831  0x01c6,
6832  0x01c7},
6833  {
6834  155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6835  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6836  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6837  0x01c6,
6838  0x01c7},
6839  {
6840  156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6841  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6842  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6843  0x01c6,
6844  0x01c6},
6845  {
6846  157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6847  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6848  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6849  0x01c5,
6850  0x01c6},
6851  {
6852  158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6853  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6854  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6855  0x01c5,
6856  0x01c6},
6857  {
6858  159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6859  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6860  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6861  0x01c4,
6862  0x01c5},
6863  {
6864  160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6865  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6866  0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6867  0x01c4,
6868  0x01c5},
6869  {
6870  161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6871  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6872  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6873  0x01c4,
6874  0x01c4},
6875  {
6876  162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6877  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6878  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6879  0x01c3,
6880  0x01c4},
6881  {
6882  163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6883  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6884  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6885  0x01c3,
6886  0x01c4},
6887  {
6888  164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6889  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6890  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6891  0x01c2,
6892  0x01c3},
6893  {
6894  165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6895  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6896  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6897  0x01c2,
6898  0x01c3},
6899  {
6900  166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6901  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6902  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6903  0x01c2,
6904  0x01c2},
6905  {
6906  168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6907  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6908  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6909  0x01c1,
6910  0x01c2},
6911  {
6912  170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6913  0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6914  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6915  0x01c0,
6916  0x01c1},
6917  {
6918  172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6919  0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6920  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6921  0x01bf,
6922  0x01c0},
6923  {
6924  174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6925  0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6926  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6927  0x01bf,
6928  0x01bf},
6929  {
6930  176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6931  0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6932  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6933  0x01be,
6934  0x01bf},
6935  {
6936  178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6937  0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6938  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6939  0x01bd,
6940  0x01be},
6941  {
6942  180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6943  0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6944  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6945  0x01bc,
6946  0x01bd},
6947  {
6948  1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6949  0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6950  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6951  0x043f,
6952  0x0443},
6953  {
6954  2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6955  0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6956  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6957  0x043d,
6958  0x0441},
6959  {
6960  3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6961  0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6962  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6963  0x043a,
6964  0x043f},
6965  {
6966  4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6967  0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6968  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6969  0x0438,
6970  0x043d},
6971  {
6972  5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6973  0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6974  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6975  0x0436,
6976  0x043a},
6977  {
6978  6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6979  0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6980  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6981  0x0434,
6982  0x0438},
6983  {
6984  7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6985  0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6986  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6987  0x0431,
6988  0x0436},
6989  {
6990  8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6991  0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6992  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6993  0x042f,
6994  0x0434},
6995  {
6996  9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6997  0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6998  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6999  0x042d,
7000  0x0431},
7001  {
7002  10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7003  0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7004  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7005  0x042b,
7006  0x042f},
7007  {
7008  11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7009  0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7010  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7011  0x0429,
7012  0x042d},
7013  {
7014  12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7015  0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7016  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7017  0x0427,
7018  0x042b},
7019  {
7020  13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7021  0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7022  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7023  0x0424,
7024  0x0429},
7025  {
7026  14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7027  0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7028  0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7029  0x041f,
7030  0x0424}
7031 };
7032 
7033 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8[] = {
7034  {
7035  186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7036  0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7037  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7038  0x0214,
7039  0x0215},
7040  {
7041  188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7042  0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7043  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7044  0x0213,
7045  0x0214},
7046  {
7047  190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7048  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7049  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7050  0x0212,
7051  0x0213},
7052  {
7053  192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7054  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7055  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7056  0x0211,
7057  0x0212},
7058  {
7059  194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7060  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7061  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7062  0x020f,
7063  0x0211},
7064  {
7065  196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7066  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7067  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7068  0x020e,
7069  0x020f},
7070  {
7071  198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7072  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7073  0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7074  0x020d,
7075  0x020e},
7076  {
7077  200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7078  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7079  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7080  0x020c,
7081  0x020d},
7082  {
7083  202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7084  0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7085  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7086  0x020b,
7087  0x020c},
7088  {
7089  204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7090  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7091  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7092  0x020a,
7093  0x020b},
7094  {
7095  206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7096  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7097  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7098  0x0209,
7099  0x020a},
7100  {
7101  208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7102  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7103  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7104  0x0208,
7105  0x0209},
7106  {
7107  210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7108  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7109  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7110  0x0207,
7111  0x0208},
7112  {
7113  212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7114  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7115  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7116  0x0206,
7117  0x0207},
7118  {
7119  214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7120  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7121  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7122  0x0205,
7123  0x0206},
7124  {
7125  216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7126  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7127  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7128  0x0204,
7129  0x0205},
7130  {
7131  218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7132  0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7133  0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7134  0x0203,
7135  0x0204},
7136  {
7137  220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7138  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7139  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7140  0x0202,
7141  0x0203},
7142  {
7143  222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7144  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7145  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7146  0x0201,
7147  0x0202},
7148  {
7149  224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7150  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7151  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7152  0x0200,
7153  0x0201},
7154  {
7155  226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7156  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7157  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7158  0x01ff,
7159  0x0200},
7160  {
7161  228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7162  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7163  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7164  0x01fe,
7165  0x01ff},
7166  {
7167  32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7168  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7169  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7170  0x01fc,
7171  0x01fd},
7172  {
7173  34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7174  0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7175  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7176  0x01fb,
7177  0x01fc},
7178  {
7179  36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7180  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7181  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7182  0x01fa,
7183  0x01fb},
7184  {
7185  38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7186  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7187  0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7188  0x01f9,
7189  0x01fa},
7190  {
7191  40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7192  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7193  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7194  0x01f8,
7195  0x01f9},
7196  {
7197  42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7198  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7199  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7200  0x01f7,
7201  0x01f8},
7202  {
7203  44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7204  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7205  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7206  0x01f6,
7207  0x01f7},
7208  {
7209  46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7210  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7211  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7212  0x01f5,
7213  0x01f6},
7214  {
7215  48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7216  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7217  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7218  0x01f4,
7219  0x01f5},
7220  {
7221  50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7222  0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7223  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7224  0x01f3,
7225  0x01f4},
7226  {
7227  52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7228  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7229  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7230  0x01f2,
7231  0x01f3},
7232  {
7233  54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7234  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7235  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7236  0x01f1,
7237  0x01f2},
7238  {
7239  56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7240  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7241  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7242  0x01f0,
7243  0x01f1},
7244  {
7245  58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7246  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7247  0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7248  0x01f0,
7249  0x01f0},
7250  {
7251  60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7252  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7253  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7254  0x01ef,
7255  0x01f0},
7256  {
7257  62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7258  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7259  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7260  0x01ee,
7261  0x01ef},
7262  {
7263  64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7264  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7265  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7266  0x01ed,
7267  0x01ee},
7268  {
7269  66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7270  0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7271  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7272  0x01ec,
7273  0x01ed},
7274  {
7275  68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7276  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7277  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7278  0x01eb,
7279  0x01ec},
7280  {
7281  70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7282  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7283  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7284  0x01ea,
7285  0x01eb},
7286  {
7287  72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7288  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7289  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7290  0x01e9,
7291  0x01ea},
7292  {
7293  74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7294  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7295  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7296  0x01e8,
7297  0x01e9},
7298  {
7299  76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7300  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7301  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7302  0x01e7,
7303  0x01e8},
7304  {
7305  78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7306  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7307  0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7308  0x01e6,
7309  0x01e7},
7310  {
7311  80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7312  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7313  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7314  0x01e5,
7315  0x01e6},
7316  {
7317  82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7318  0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7319  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7320  0x01e5,
7321  0x01e5},
7322  {
7323  84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7324  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7325  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7326  0x01e4,
7327  0x01e5},
7328  {
7329  86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7330  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7331  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7332  0x01e3,
7333  0x01e4},
7334  {
7335  88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7336  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7337  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7338  0x01e2,
7339  0x01e3},
7340  {
7341  90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7342  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7343  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7344  0x01e1,
7345  0x01e2},
7346  {
7347  92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7348  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7349  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7350  0x01e0,
7351  0x01e1},
7352  {
7353  94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7354  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7355  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7356  0x01df,
7357  0x01e0},
7358  {
7359  96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7360  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7361  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7362  0x01de,
7363  0x01df},
7364  {
7365  98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7366  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7367  0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7368  0x01dd,
7369  0x01de},
7370  {
7371  100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7372  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7373  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7374  0x01dd,
7375  0x01dd},
7376  {
7377  102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7378  0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7379  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7380  0x01dc,
7381  0x01dd},
7382  {
7383  104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7384  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7385  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7386  0x01db,
7387  0x01dc},
7388  {
7389  106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7390  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7391  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7392  0x01da,
7393  0x01db},
7394  {
7395  108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7396  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7397  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7398  0x01d9,
7399  0x01da},
7400  {
7401  110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7402  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7403  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7404  0x01d8,
7405  0x01d9},
7406  {
7407  112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7408  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7409  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7410  0x01d7,
7411  0x01d8},
7412  {
7413  114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7414  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7415  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7416  0x01d7,
7417  0x01d7},
7418  {
7419  116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7420  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7421  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7422  0x01d6,
7423  0x01d7},
7424  {
7425  118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7426  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7427  0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7428  0x01d5,
7429  0x01d6},
7430  {
7431  120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7432  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7433  0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7434  0x01d4,
7435  0x01d5},
7436  {
7437  122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7438  0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7439  0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7440  0x01d3,
7441  0x01d4},
7442  {
7443  124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7444  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7445  0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7446  0x01d2,
7447  0x01d3},
7448  {
7449  126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7450  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7451  0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7452  0x01d2,
7453  0x01d2},
7454  {
7455  128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7456  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7457  0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7458  0x01d1,
7459  0x01d2},
7460  {
7461  130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7462  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7463  0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7464  0x01d0,
7465  0x01d1},
7466  {
7467  132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7468  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7469  0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7470  0x01cf,
7471  0x01d0},
7472  {
7473  134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7474  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7475  0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7476  0x01ce,
7477  0x01cf},
7478  {
7479  136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7480  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7481  0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7482  0x01ce,
7483  0x01ce},
7484  {
7485  138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7486  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7487  0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7488  0x01cd,
7489  0x01ce},
7490  {
7491  140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7492  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7493  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7494  0x01cc,
7495  0x01cd},
7496  {
7497  142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7498  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7499  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7500  0x01cb,
7501  0x01cc},
7502  {
7503  144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7504  0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7505  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7506  0x01ca,
7507  0x01cb},
7508  {
7509  145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7510  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7511  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7512  0x01ca,
7513  0x01cb},
7514  {
7515  146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7516  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7517  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7518  0x01c9,
7519  0x01ca},
7520  {
7521  147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7522  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7523  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7524  0x01c9,
7525  0x01ca},
7526  {
7527  148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7528  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7529  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7530  0x01c9,
7531  0x01c9},
7532  {
7533  149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7534  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7535  0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7536  0x01c8,
7537  0x01c9},
7538  {
7539  150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7540  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7541  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7542  0x01c8,
7543  0x01c9},
7544  {
7545  151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7546  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7547  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7548  0x01c8,
7549  0x01c8},
7550  {
7551  152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7552  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7553  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7554  0x01c7,
7555  0x01c8},
7556  {
7557  153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7558  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7559  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7560  0x01c7,
7561  0x01c8},
7562  {
7563  154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7564  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7565  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7566  0x01c6,
7567  0x01c7},
7568  {
7569  155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7570  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7571  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7572  0x01c6,
7573  0x01c7},
7574  {
7575  156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7576  0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7577  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7578  0x01c6,
7579  0x01c6},
7580  {
7581  157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7582  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7583  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7584  0x01c5,
7585  0x01c6},
7586  {
7587  158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7588  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7589  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7590  0x01c5,
7591  0x01c6},
7592  {
7593  159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7594  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7595  0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7596  0x01c4,
7597  0x01c5},
7598  {
7599  160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7600  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7601  0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7602  0x01c4,
7603  0x01c5},
7604  {
7605  161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7606  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7607  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7608  0x01c4,
7609  0x01c4},
7610  {
7611  162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7612  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7613  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7614  0x01c3,
7615  0x01c4},
7616  {
7617  163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7618  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7619  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7620  0x01c3,
7621  0x01c4},
7622  {
7623  164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7624  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7625  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7626  0x01c2,
7627  0x01c3},
7628  {
7629  165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7630  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7631  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7632  0x01c2,
7633  0x01c3},
7634  {
7635  166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7636  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7637  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7638  0x01c2,
7639  0x01c2},
7640  {
7641  168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7642  0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7643  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7644  0x01c1,
7645  0x01c2},
7646  {
7647  170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7648  0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7649  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7650  0x01c0,
7651  0x01c1},
7652  {
7653  172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7654  0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7655  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7656  0x01bf,
7657  0x01c0},
7658  {
7659  174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7660  0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7661  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7662  0x01bf,
7663  0x01bf},
7664  {
7665  176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7666  0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7667  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7668  0x01be,
7669  0x01bf},
7670  {
7671  178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7672  0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7673  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7674  0x01bd,
7675  0x01be},
7676  {
7677  180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7678  0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7679  0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7680  0x01bc,
7681  0x01bd},
7682  {
7683  1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7684  0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7685  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7686  0x043f,
7687  0x0443},
7688  {
7689  2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7690  0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7691  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7692  0x043d,
7693  0x0441},
7694  {
7695  3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7696  0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7697  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7698  0x043a,
7699  0x043f},
7700  {
7701  4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7702  0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7703  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7704  0x0438,
7705  0x043d},
7706  {
7707  5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7708  0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7709  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7710  0x0436,
7711  0x043a},
7712  {
7713  6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7714  0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7715  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7716  0x0434,
7717  0x0438},
7718  {
7719  7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7720  0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7721  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7722  0x0431,
7723  0x0436},
7724  {
7725  8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7726  0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7727  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7728  0x042f,
7729  0x0434},
7730  {
7731  9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7732  0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7733  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7734  0x042d,
7735  0x0431},
7736  {
7737  10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7738  0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7739  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7740  0x042b,
7741  0x042f},
7742  {
7743  11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7744  0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7745  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7746  0x0429,
7747  0x042d},
7748  {
7749  12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7750  0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7751  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7752  0x0427,
7753  0x042b},
7754  {
7755  13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7756  0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7757  0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7758  0x0424,
7759  0x0429},
7760  {
7761  14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7762  0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7763  0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7764  0x041f,
7765  0x0424}
7766 };
7767 
7768 static struct radio_regs regs_2055[] = {
7769  {0x02, 0x80, 0x80, 0, 0},
7770  {0x03, 0, 0, 0, 0},
7771  {0x04, 0x27, 0x27, 0, 0},
7772  {0x05, 0, 0, 0, 0},
7773  {0x06, 0x27, 0x27, 0, 0},
7774  {0x07, 0x7f, 0x7f, 1, 1},
7775  {0x08, 0x7, 0x7, 1, 1},
7776  {0x09, 0x7f, 0x7f, 1, 1},
7777  {0x0A, 0x7, 0x7, 1, 1},
7778  {0x0B, 0x15, 0x15, 0, 0},
7779  {0x0C, 0x15, 0x15, 0, 0},
7780  {0x0D, 0x4f, 0x4f, 1, 1},
7781  {0x0E, 0x5, 0x5, 1, 1},
7782  {0x0F, 0x4f, 0x4f, 1, 1},
7783  {0x10, 0x5, 0x5, 1, 1},
7784  {0x11, 0xd0, 0xd0, 0, 0},
7785  {0x12, 0x2, 0x2, 0, 0},
7786  {0x13, 0, 0, 0, 0},
7787  {0x14, 0x40, 0x40, 0, 0},
7788  {0x15, 0, 0, 0, 0},
7789  {0x16, 0, 0, 0, 0},
7790  {0x17, 0, 0, 0, 0},
7791  {0x18, 0, 0, 0, 0},
7792  {0x19, 0, 0, 0, 0},
7793  {0x1A, 0, 0, 0, 0},
7794  {0x1B, 0, 0, 0, 0},
7795  {0x1C, 0, 0, 0, 0},
7796  {0x1D, 0xc0, 0xc0, 0, 0},
7797  {0x1E, 0xff, 0xff, 0, 0},
7798  {0x1F, 0xc0, 0xc0, 0, 0},
7799  {0x20, 0xff, 0xff, 0, 0},
7800  {0x21, 0xc0, 0xc0, 0, 0},
7801  {0x22, 0, 0, 0, 0},
7802  {0x23, 0x2c, 0x2c, 0, 0},
7803  {0x24, 0, 0, 0, 0},
7804  {0x25, 0, 0, 0, 0},
7805  {0x26, 0, 0, 0, 0},
7806  {0x27, 0, 0, 0, 0},
7807  {0x28, 0, 0, 0, 0},
7808  {0x29, 0, 0, 0, 0},
7809  {0x2A, 0, 0, 0, 0},
7810  {0x2B, 0, 0, 0, 0},
7811  {0x2C, 0, 0, 0, 0},
7812  {0x2D, 0xa4, 0xa4, 0, 0},
7813  {0x2E, 0x38, 0x38, 0, 0},
7814  {0x2F, 0, 0, 0, 0},
7815  {0x30, 0x4, 0x4, 1, 1},
7816  {0x31, 0, 0, 0, 0},
7817  {0x32, 0xa, 0xa, 0, 0},
7818  {0x33, 0x87, 0x87, 0, 0},
7819  {0x34, 0x9, 0x9, 0, 0},
7820  {0x35, 0x70, 0x70, 0, 0},
7821  {0x36, 0x11, 0x11, 0, 0},
7822  {0x37, 0x18, 0x18, 1, 1},
7823  {0x38, 0x6, 0x6, 0, 0},
7824  {0x39, 0x4, 0x4, 1, 1},
7825  {0x3A, 0x6, 0x6, 0, 0},
7826  {0x3B, 0x9e, 0x9e, 0, 0},
7827  {0x3C, 0x9, 0x9, 0, 0},
7828  {0x3D, 0xc8, 0xc8, 1, 1},
7829  {0x3E, 0x88, 0x88, 0, 0},
7830  {0x3F, 0, 0, 0, 0},
7831  {0x40, 0, 0, 0, 0},
7832  {0x41, 0, 0, 0, 0},
7833  {0x42, 0x1, 0x1, 0, 0},
7834  {0x43, 0x2, 0x2, 0, 0},
7835  {0x44, 0x96, 0x96, 0, 0},
7836  {0x45, 0x3e, 0x3e, 0, 0},
7837  {0x46, 0x3e, 0x3e, 0, 0},
7838  {0x47, 0x13, 0x13, 0, 0},
7839  {0x48, 0x2, 0x2, 0, 0},
7840  {0x49, 0x15, 0x15, 0, 0},
7841  {0x4A, 0x7, 0x7, 0, 0},
7842  {0x4B, 0, 0, 0, 0},
7843  {0x4C, 0, 0, 0, 0},
7844  {0x4D, 0, 0, 0, 0},
7845  {0x4E, 0, 0, 0, 0},
7846  {0x4F, 0, 0, 0, 0},
7847  {0x50, 0x8, 0x8, 0, 0},
7848  {0x51, 0x8, 0x8, 0, 0},
7849  {0x52, 0x6, 0x6, 0, 0},
7850  {0x53, 0x84, 0x84, 1, 1},
7851  {0x54, 0xc3, 0xc3, 0, 0},
7852  {0x55, 0x8f, 0x8f, 0, 0},
7853  {0x56, 0xff, 0xff, 0, 0},
7854  {0x57, 0xff, 0xff, 0, 0},
7855  {0x58, 0x88, 0x88, 0, 0},
7856  {0x59, 0x88, 0x88, 0, 0},
7857  {0x5A, 0, 0, 0, 0},
7858  {0x5B, 0xcc, 0xcc, 0, 0},
7859  {0x5C, 0x6, 0x6, 0, 0},
7860  {0x5D, 0x80, 0x80, 0, 0},
7861  {0x5E, 0x80, 0x80, 0, 0},
7862  {0x5F, 0xf8, 0xf8, 0, 0},
7863  {0x60, 0x88, 0x88, 0, 0},
7864  {0x61, 0x88, 0x88, 0, 0},
7865  {0x62, 0x88, 0x8, 1, 1},
7866  {0x63, 0x88, 0x88, 0, 0},
7867  {0x64, 0, 0, 0, 0},
7868  {0x65, 0x1, 0x1, 1, 1},
7869  {0x66, 0x8a, 0x8a, 0, 0},
7870  {0x67, 0x8, 0x8, 0, 0},
7871  {0x68, 0x83, 0x83, 0, 0},
7872  {0x69, 0x6, 0x6, 0, 0},
7873  {0x6A, 0xa0, 0xa0, 0, 0},
7874  {0x6B, 0xa, 0xa, 0, 0},
7875  {0x6C, 0x87, 0x87, 1, 1},
7876  {0x6D, 0x2a, 0x2a, 0, 0},
7877  {0x6E, 0x2a, 0x2a, 0, 0},
7878  {0x6F, 0x2a, 0x2a, 0, 0},
7879  {0x70, 0x2a, 0x2a, 0, 0},
7880  {0x71, 0x18, 0x18, 0, 0},
7881  {0x72, 0x6a, 0x6a, 1, 1},
7882  {0x73, 0xab, 0xab, 1, 1},
7883  {0x74, 0x13, 0x13, 1, 1},
7884  {0x75, 0xc1, 0xc1, 1, 1},
7885  {0x76, 0xaa, 0xaa, 1, 1},
7886  {0x77, 0x87, 0x87, 1, 1},
7887  {0x78, 0, 0, 0, 0},
7888  {0x79, 0x6, 0x6, 0, 0},
7889  {0x7A, 0x7, 0x7, 0, 0},
7890  {0x7B, 0x7, 0x7, 0, 0},
7891  {0x7C, 0x15, 0x15, 0, 0},
7892  {0x7D, 0x55, 0x55, 0, 0},
7893  {0x7E, 0x97, 0x97, 1, 1},
7894  {0x7F, 0x8, 0x8, 0, 0},
7895  {0x80, 0x14, 0x14, 1, 1},
7896  {0x81, 0x33, 0x33, 0, 0},
7897  {0x82, 0x88, 0x88, 0, 0},
7898  {0x83, 0x6, 0x6, 0, 0},
7899  {0x84, 0x3, 0x3, 1, 1},
7900  {0x85, 0xa, 0xa, 0, 0},
7901  {0x86, 0x3, 0x3, 1, 1},
7902  {0x87, 0x2a, 0x2a, 0, 0},
7903  {0x88, 0xa4, 0xa4, 0, 0},
7904  {0x89, 0x18, 0x18, 0, 0},
7905  {0x8A, 0x28, 0x28, 0, 0},
7906  {0x8B, 0, 0, 0, 0},
7907  {0x8C, 0x4a, 0x4a, 0, 0},
7908  {0x8D, 0, 0, 0, 0},
7909  {0x8E, 0xf8, 0xf8, 0, 0},
7910  {0x8F, 0x88, 0x88, 0, 0},
7911  {0x90, 0x88, 0x88, 0, 0},
7912  {0x91, 0x88, 0x8, 1, 1},
7913  {0x92, 0x88, 0x88, 0, 0},
7914  {0x93, 0, 0, 0, 0},
7915  {0x94, 0x1, 0x1, 1, 1},
7916  {0x95, 0x8a, 0x8a, 0, 0},
7917  {0x96, 0x8, 0x8, 0, 0},
7918  {0x97, 0x83, 0x83, 0, 0},
7919  {0x98, 0x6, 0x6, 0, 0},
7920  {0x99, 0xa0, 0xa0, 0, 0},
7921  {0x9A, 0xa, 0xa, 0, 0},
7922  {0x9B, 0x87, 0x87, 1, 1},
7923  {0x9C, 0x2a, 0x2a, 0, 0},
7924  {0x9D, 0x2a, 0x2a, 0, 0},
7925  {0x9E, 0x2a, 0x2a, 0, 0},
7926  {0x9F, 0x2a, 0x2a, 0, 0},
7927  {0xA0, 0x18, 0x18, 0, 0},
7928  {0xA1, 0x6a, 0x6a, 1, 1},
7929  {0xA2, 0xab, 0xab, 1, 1},
7930  {0xA3, 0x13, 0x13, 1, 1},
7931  {0xA4, 0xc1, 0xc1, 1, 1},
7932  {0xA5, 0xaa, 0xaa, 1, 1},
7933  {0xA6, 0x87, 0x87, 1, 1},
7934  {0xA7, 0, 0, 0, 0},
7935  {0xA8, 0x6, 0x6, 0, 0},
7936  {0xA9, 0x7, 0x7, 0, 0},
7937  {0xAA, 0x7, 0x7, 0, 0},
7938  {0xAB, 0x15, 0x15, 0, 0},
7939  {0xAC, 0x55, 0x55, 0, 0},
7940  {0xAD, 0x97, 0x97, 1, 1},
7941  {0xAE, 0x8, 0x8, 0, 0},
7942  {0xAF, 0x14, 0x14, 1, 1},
7943  {0xB0, 0x33, 0x33, 0, 0},
7944  {0xB1, 0x88, 0x88, 0, 0},
7945  {0xB2, 0x6, 0x6, 0, 0},
7946  {0xB3, 0x3, 0x3, 1, 1},
7947  {0xB4, 0xa, 0xa, 0, 0},
7948  {0xB5, 0x3, 0x3, 1, 1},
7949  {0xB6, 0x2a, 0x2a, 0, 0},
7950  {0xB7, 0xa4, 0xa4, 0, 0},
7951  {0xB8, 0x18, 0x18, 0, 0},
7952  {0xB9, 0x28, 0x28, 0, 0},
7953  {0xBA, 0, 0, 0, 0},
7954  {0xBB, 0x4a, 0x4a, 0, 0},
7955  {0xBC, 0, 0, 0, 0},
7956  {0xBD, 0x71, 0x71, 0, 0},
7957  {0xBE, 0x72, 0x72, 0, 0},
7958  {0xBF, 0x73, 0x73, 0, 0},
7959  {0xC0, 0x74, 0x74, 0, 0},
7960  {0xC1, 0x75, 0x75, 0, 0},
7961  {0xC2, 0x76, 0x76, 0, 0},
7962  {0xC3, 0x77, 0x77, 0, 0},
7963  {0xC4, 0x78, 0x78, 0, 0},
7964  {0xC5, 0x79, 0x79, 0, 0},
7965  {0xC6, 0x7a, 0x7a, 0, 0},
7966  {0xC7, 0, 0, 0, 0},
7967  {0xC8, 0, 0, 0, 0},
7968  {0xC9, 0, 0, 0, 0},
7969  {0xCA, 0, 0, 0, 0},
7970  {0xCB, 0, 0, 0, 0},
7971  {0xCC, 0, 0, 0, 0},
7972  {0xCD, 0, 0, 0, 0},
7973  {0xCE, 0x6, 0x6, 0, 0},
7974  {0xCF, 0, 0, 0, 0},
7975  {0xD0, 0, 0, 0, 0},
7976  {0xD1, 0x18, 0x18, 0, 0},
7977  {0xD2, 0x88, 0x88, 0, 0},
7978  {0xD3, 0, 0, 0, 0},
7979  {0xD4, 0, 0, 0, 0},
7980  {0xD5, 0, 0, 0, 0},
7981  {0xD6, 0, 0, 0, 0},
7982  {0xD7, 0, 0, 0, 0},
7983  {0xD8, 0, 0, 0, 0},
7984  {0xD9, 0, 0, 0, 0},
7985  {0xDA, 0x6, 0x6, 0, 0},
7986  {0xDB, 0, 0, 0, 0},
7987  {0xDC, 0, 0, 0, 0},
7988  {0xDD, 0x18, 0x18, 0, 0},
7989  {0xDE, 0x88, 0x88, 0, 0},
7990  {0xDF, 0, 0, 0, 0},
7991  {0xE0, 0, 0, 0, 0},
7992  {0xE1, 0, 0, 0, 0},
7993  {0xE2, 0, 0, 0, 0},
7994  {0xFFFF, 0, 0, 0, 0},
7995 };
7996 
7997 static struct radio_regs regs_SYN_2056[] = {
7998  {0x02, 0, 0, 0, 0},
7999  {0x03, 0, 0, 0, 0},
8000  {0x04, 0, 0, 0, 0},
8001  {0x05, 0, 0, 0, 0},
8002  {0x06, 0, 0, 0, 0},
8003  {0x07, 0, 0, 0, 0},
8004  {0x08, 0, 0, 0, 0},
8005  {0x09, 0x1, 0x1, 0, 0},
8006  {0x0A, 0, 0, 0, 0},
8007  {0x0B, 0, 0, 0, 0},
8008  {0x0C, 0, 0, 0, 0},
8009  {0x0D, 0, 0, 0, 0},
8010  {0x0E, 0, 0, 0, 0},
8011  {0x0F, 0, 0, 0, 0},
8012  {0x10, 0, 0, 0, 0},
8013  {0x11, 0, 0, 0, 0},
8014  {0x12, 0, 0, 0, 0},
8015  {0x13, 0, 0, 0, 0},
8016  {0x14, 0, 0, 0, 0},
8017  {0x15, 0, 0, 0, 0},
8018  {0x16, 0, 0, 0, 0},
8019  {0x17, 0, 0, 0, 0},
8020  {0x18, 0, 0, 0, 0},
8021  {0x19, 0, 0, 0, 0},
8022  {0x1A, 0, 0, 0, 0},
8023  {0x1B, 0, 0, 0, 0},
8024  {0x1C, 0, 0, 0, 0},
8025  {0x1D, 0, 0, 0, 0},
8026  {0x1E, 0, 0, 0, 0},
8027  {0x1F, 0, 0, 0, 0},
8028  {0x20, 0, 0, 0, 0},
8029  {0x21, 0, 0, 0, 0},
8030  {0x22, 0x60, 0x60, 0, 0},
8031  {0x23, 0x6, 0x6, 0, 0},
8032  {0x24, 0xc, 0xc, 0, 0},
8033  {0x25, 0, 0, 0, 0},
8034  {0x26, 0, 0, 0, 0},
8035  {0x27, 0, 0, 0, 0},
8036  {0x28, 0x1, 0x1, 0, 0},
8037  {0x29, 0, 0, 0, 0},
8038  {0x2A, 0, 0, 0, 0},
8039  {0x2B, 0, 0, 0, 0},
8040  {0x2C, 0, 0, 0, 0},
8041  {0x2D, 0, 0, 0, 0},
8042  {0x2E, 0xd, 0xd, 0, 0},
8043  {0x2F, 0x1f, 0x1f, 0, 0},
8044  {0x30, 0x15, 0x15, 0, 0},
8045  {0x31, 0xf, 0xf, 0, 0},
8046  {0x32, 0, 0, 0, 0},
8047  {0x33, 0, 0, 0, 0},
8048  {0x34, 0, 0, 0, 0},
8049  {0x35, 0, 0, 0, 0},
8050  {0x36, 0, 0, 0, 0},
8051  {0x37, 0, 0, 0, 0},
8052  {0x38, 0, 0, 0, 0},
8053  {0x39, 0, 0, 0, 0},
8054  {0x3A, 0, 0, 0, 0},
8055  {0x3B, 0, 0, 0, 0},
8056  {0x3C, 0x13, 0x13, 0, 0},
8057  {0x3D, 0xf, 0xf, 0, 0},
8058  {0x3E, 0x18, 0x18, 0, 0},
8059  {0x3F, 0, 0, 0, 0},
8060  {0x40, 0, 0, 0, 0},
8061  {0x41, 0x20, 0x20, 0, 0},
8062  {0x42, 0x20, 0x20, 0, 0},
8063  {0x43, 0, 0, 0, 0},
8064  {0x44, 0x77, 0x77, 0, 0},
8065  {0x45, 0x7, 0x7, 0, 0},
8066  {0x46, 0x1, 0x1, 0, 0},
8067  {0x47, 0x4, 0x4, 0, 0},
8068  {0x48, 0xf, 0xf, 0, 0},
8069  {0x49, 0x30, 0x30, 0, 0},
8070  {0x4A, 0x32, 0x32, 0, 0},
8071  {0x4B, 0xd, 0xd, 0, 0},
8072  {0x4C, 0xd, 0xd, 0, 0},
8073  {0x4D, 0x4, 0x4, 0, 0},
8074  {0x4E, 0x6, 0x6, 0, 0},
8075  {0x4F, 0x1, 0x1, 0, 0},
8076  {0x50, 0x1c, 0x1c, 0, 0},
8077  {0x51, 0x2, 0x2, 0, 0},
8078  {0x52, 0x2, 0x2, 0, 0},
8079  {0x53, 0xf7, 0xf7, 1, 1},
8080  {0x54, 0xb4, 0xb4, 0, 0},
8081  {0x55, 0xd2, 0xd2, 0, 0},
8082  {0x56, 0, 0, 0, 0},
8083  {0x57, 0, 0, 0, 0},
8084  {0x58, 0x4, 0x4, 0, 0},
8085  {0x59, 0x96, 0x96, 0, 0},
8086  {0x5A, 0x3e, 0x3e, 0, 0},
8087  {0x5B, 0x3e, 0x3e, 0, 0},
8088  {0x5C, 0x13, 0x13, 0, 0},
8089  {0x5D, 0x2, 0x2, 0, 0},
8090  {0x5E, 0, 0, 0, 0},
8091  {0x5F, 0x7, 0x7, 0, 0},
8092  {0x60, 0x7, 0x7, 1, 1},
8093  {0x61, 0x8, 0x8, 0, 0},
8094  {0x62, 0x3, 0x3, 0, 0},
8095  {0x63, 0, 0, 0, 0},
8096  {0x64, 0, 0, 0, 0},
8097  {0x65, 0, 0, 0, 0},
8098  {0x66, 0, 0, 0, 0},
8099  {0x67, 0, 0, 0, 0},
8100  {0x68, 0x40, 0x40, 0, 0},
8101  {0x69, 0, 0, 0, 0},
8102  {0x6A, 0, 0, 0, 0},
8103  {0x6B, 0, 0, 0, 0},
8104  {0x6C, 0, 0, 0, 0},
8105  {0x6D, 0x1, 0x1, 0, 0},
8106  {0x6E, 0, 0, 0, 0},
8107  {0x6F, 0, 0, 0, 0},
8108  {0x70, 0x60, 0x60, 0, 0},
8109  {0x71, 0x66, 0x66, 0, 0},
8110  {0x72, 0xc, 0xc, 0, 0},
8111  {0x73, 0x66, 0x66, 0, 0},
8112  {0x74, 0x8f, 0x8f, 1, 1},
8113  {0x75, 0, 0, 0, 0},
8114  {0x76, 0xcc, 0xcc, 0, 0},
8115  {0x77, 0x1, 0x1, 0, 0},
8116  {0x78, 0x66, 0x66, 0, 0},
8117  {0x79, 0x66, 0x66, 0, 0},
8118  {0x7A, 0, 0, 0, 0},
8119  {0x7B, 0, 0, 0, 0},
8120  {0x7C, 0, 0, 0, 0},
8121  {0x7D, 0, 0, 0, 0},
8122  {0x7E, 0, 0, 0, 0},
8123  {0x7F, 0, 0, 0, 0},
8124  {0x80, 0, 0, 0, 0},
8125  {0x81, 0, 0, 0, 0},
8126  {0x82, 0, 0, 0, 0},
8127  {0x83, 0, 0, 0, 0},
8128  {0x84, 0, 0, 0, 0},
8129  {0x85, 0xff, 0xff, 0, 0},
8130  {0x86, 0, 0, 0, 0},
8131  {0x87, 0, 0, 0, 0},
8132  {0x88, 0, 0, 0, 0},
8133  {0x89, 0, 0, 0, 0},
8134  {0x8A, 0, 0, 0, 0},
8135  {0x8B, 0, 0, 0, 0},
8136  {0x8C, 0, 0, 0, 0},
8137  {0x8D, 0, 0, 0, 0},
8138  {0x8E, 0, 0, 0, 0},
8139  {0x8F, 0, 0, 0, 0},
8140  {0x90, 0, 0, 0, 0},
8141  {0x91, 0, 0, 0, 0},
8142  {0x92, 0, 0, 0, 0},
8143  {0x93, 0, 0, 0, 0},
8144  {0x94, 0, 0, 0, 0},
8145  {0x95, 0, 0, 0, 0},
8146  {0x96, 0, 0, 0, 0},
8147  {0x97, 0, 0, 0, 0},
8148  {0x98, 0, 0, 0, 0},
8149  {0x99, 0, 0, 0, 0},
8150  {0x9A, 0, 0, 0, 0},
8151  {0x9B, 0, 0, 0, 0},
8152  {0x9C, 0, 0, 0, 0},
8153  {0x9D, 0, 0, 0, 0},
8154  {0x9E, 0, 0, 0, 0},
8155  {0x9F, 0x6, 0x6, 0, 0},
8156  {0xA0, 0x66, 0x66, 0, 0},
8157  {0xA1, 0x66, 0x66, 0, 0},
8158  {0xA2, 0x66, 0x66, 0, 0},
8159  {0xA3, 0x66, 0x66, 0, 0},
8160  {0xA4, 0x66, 0x66, 0, 0},
8161  {0xA5, 0x66, 0x66, 0, 0},
8162  {0xA6, 0x66, 0x66, 0, 0},
8163  {0xA7, 0x66, 0x66, 0, 0},
8164  {0xA8, 0x66, 0x66, 0, 0},
8165  {0xA9, 0x66, 0x66, 0, 0},
8166  {0xAA, 0x66, 0x66, 0, 0},
8167  {0xAB, 0x66, 0x66, 0, 0},
8168  {0xAC, 0x66, 0x66, 0, 0},
8169  {0xAD, 0x66, 0x66, 0, 0},
8170  {0xAE, 0x66, 0x66, 0, 0},
8171  {0xAF, 0x66, 0x66, 0, 0},
8172  {0xB0, 0x66, 0x66, 0, 0},
8173  {0xB1, 0x66, 0x66, 0, 0},
8174  {0xB2, 0x66, 0x66, 0, 0},
8175  {0xB3, 0xa, 0xa, 0, 0},
8176  {0xB4, 0, 0, 0, 0},
8177  {0xB5, 0, 0, 0, 0},
8178  {0xB6, 0, 0, 0, 0},
8179  {0xFFFF, 0, 0, 0, 0}
8180 };
8181 
8182 static struct radio_regs regs_TX_2056[] = {
8183  {0x02, 0, 0, 0, 0},
8184  {0x03, 0, 0, 0, 0},
8185  {0x04, 0, 0, 0, 0},
8186  {0x05, 0, 0, 0, 0},
8187  {0x06, 0, 0, 0, 0},
8188  {0x07, 0, 0, 0, 0},
8189  {0x08, 0, 0, 0, 0},
8190  {0x09, 0, 0, 0, 0},
8191  {0x0A, 0, 0, 0, 0},
8192  {0x0B, 0, 0, 0, 0},
8193  {0x0C, 0, 0, 0, 0},
8194  {0x0D, 0, 0, 0, 0},
8195  {0x0E, 0, 0, 0, 0},
8196  {0x0F, 0, 0, 0, 0},
8197  {0x10, 0, 0, 0, 0},
8198  {0x11, 0, 0, 0, 0},
8199  {0x12, 0, 0, 0, 0},
8200  {0x13, 0, 0, 0, 0},
8201  {0x14, 0, 0, 0, 0},
8202  {0x15, 0, 0, 0, 0},
8203  {0x16, 0, 0, 0, 0},
8204  {0x17, 0, 0, 0, 0},
8205  {0x18, 0, 0, 0, 0},
8206  {0x19, 0, 0, 0, 0},
8207  {0x1A, 0, 0, 0, 0},
8208  {0x1B, 0, 0, 0, 0},
8209  {0x1C, 0, 0, 0, 0},
8210  {0x1D, 0, 0, 0, 0},
8211  {0x1E, 0, 0, 0, 0},
8212  {0x1F, 0, 0, 0, 0},
8213  {0x20, 0, 0, 0, 0},
8214  {0x21, 0x88, 0x88, 0, 0},
8215  {0x22, 0x88, 0x88, 0, 0},
8216  {0x23, 0x88, 0x88, 0, 0},
8217  {0x24, 0x88, 0x88, 0, 0},
8218  {0x25, 0xc, 0xc, 0, 0},
8219  {0x26, 0, 0, 0, 0},
8220  {0x27, 0x3, 0x3, 0, 0},
8221  {0x28, 0, 0, 0, 0},
8222  {0x29, 0x3, 0x3, 0, 0},
8223  {0x2A, 0x37, 0x37, 0, 0},
8224  {0x2B, 0x3, 0x3, 0, 0},
8225  {0x2C, 0, 0, 0, 0},
8226  {0x2D, 0, 0, 0, 0},
8227  {0x2E, 0x1, 0x1, 0, 0},
8228  {0x2F, 0x1, 0x1, 0, 0},
8229  {0x30, 0, 0, 0, 0},
8230  {0x31, 0, 0, 0, 0},
8231  {0x32, 0, 0, 0, 0},
8232  {0x33, 0x11, 0x11, 0, 0},
8233  {0x34, 0x11, 0x11, 0, 0},
8234  {0x35, 0, 0, 0, 0},
8235  {0x36, 0, 0, 0, 0},
8236  {0x37, 0x3, 0x3, 0, 0},
8237  {0x38, 0xf, 0xf, 0, 0},
8238  {0x39, 0, 0, 0, 0},
8239  {0x3A, 0x2d, 0x2d, 0, 0},
8240  {0x3B, 0, 0, 0, 0},
8241  {0x3C, 0x6e, 0x6e, 0, 0},
8242  {0x3D, 0xf0, 0xf0, 1, 1},
8243  {0x3E, 0, 0, 0, 0},
8244  {0x3F, 0, 0, 0, 0},
8245  {0x40, 0, 0, 0, 0},
8246  {0x41, 0x3, 0x3, 0, 0},
8247  {0x42, 0x3, 0x3, 0, 0},
8248  {0x43, 0, 0, 0, 0},
8249  {0x44, 0x1e, 0x1e, 0, 0},
8250  {0x45, 0, 0, 0, 0},
8251  {0x46, 0x6e, 0x6e, 0, 0},
8252  {0x47, 0xf0, 0xf0, 1, 1},
8253  {0x48, 0, 0, 0, 0},
8254  {0x49, 0x2, 0x2, 0, 0},
8255  {0x4A, 0xff, 0xff, 1, 1},
8256  {0x4B, 0xc, 0xc, 0, 0},
8257  {0x4C, 0, 0, 0, 0},
8258  {0x4D, 0x38, 0x38, 0, 0},
8259  {0x4E, 0x70, 0x70, 1, 1},
8260  {0x4F, 0x2, 0x2, 0, 0},
8261  {0x50, 0x88, 0x88, 0, 0},
8262  {0x51, 0xc, 0xc, 0, 0},
8263  {0x52, 0, 0, 0, 0},
8264  {0x53, 0x8, 0x8, 0, 0},
8265  {0x54, 0x70, 0x70, 1, 1},
8266  {0x55, 0x2, 0x2, 0, 0},
8267  {0x56, 0xff, 0xff, 1, 1},
8268  {0x57, 0, 0, 0, 0},
8269  {0x58, 0x83, 0x83, 0, 0},
8270  {0x59, 0x77, 0x77, 1, 1},
8271  {0x5A, 0, 0, 0, 0},
8272  {0x5B, 0x2, 0x2, 0, 0},
8273  {0x5C, 0x88, 0x88, 0, 0},
8274  {0x5D, 0, 0, 0, 0},
8275  {0x5E, 0x8, 0x8, 0, 0},
8276  {0x5F, 0x77, 0x77, 1, 1},
8277  {0x60, 0x1, 0x1, 0, 0},
8278  {0x61, 0, 0, 0, 0},
8279  {0x62, 0x7, 0x7, 0, 0},
8280  {0x63, 0, 0, 0, 0},
8281  {0x64, 0x7, 0x7, 0, 0},
8282  {0x65, 0, 0, 0, 0},
8283  {0x66, 0, 0, 0, 0},
8284  {0x67, 0x74, 0x74, 1, 1},
8285  {0x68, 0, 0, 0, 0},
8286  {0x69, 0xa, 0xa, 0, 0},
8287  {0x6A, 0, 0, 0, 0},
8288  {0x6B, 0, 0, 0, 0},
8289  {0x6C, 0, 0, 0, 0},
8290  {0x6D, 0, 0, 0, 0},
8291  {0x6E, 0, 0, 0, 0},
8292  {0x6F, 0, 0, 0, 0},
8293  {0x70, 0, 0, 0, 0},
8294  {0x71, 0x2, 0x2, 0, 0},
8295  {0x72, 0, 0, 0, 0},
8296  {0x73, 0, 0, 0, 0},
8297  {0x74, 0xe, 0xe, 0, 0},
8298  {0x75, 0xe, 0xe, 0, 0},
8299  {0x76, 0xe, 0xe, 0, 0},
8300  {0x77, 0x13, 0x13, 0, 0},
8301  {0x78, 0x13, 0x13, 0, 0},
8302  {0x79, 0x1b, 0x1b, 0, 0},
8303  {0x7A, 0x1b, 0x1b, 0, 0},
8304  {0x7B, 0x55, 0x55, 0, 0},
8305  {0x7C, 0x5b, 0x5b, 0, 0},
8306  {0x7D, 0, 0, 0, 0},
8307  {0x7E, 0, 0, 0, 0},
8308  {0x7F, 0, 0, 0, 0},
8309  {0x80, 0, 0, 0, 0},
8310  {0x81, 0, 0, 0, 0},
8311  {0x82, 0, 0, 0, 0},
8312  {0x83, 0, 0, 0, 0},
8313  {0x84, 0, 0, 0, 0},
8314  {0x85, 0, 0, 0, 0},
8315  {0x86, 0, 0, 0, 0},
8316  {0x87, 0, 0, 0, 0},
8317  {0x88, 0, 0, 0, 0},
8318  {0x89, 0, 0, 0, 0},
8319  {0x8A, 0, 0, 0, 0},
8320  {0x8B, 0, 0, 0, 0},
8321  {0x8C, 0, 0, 0, 0},
8322  {0x8D, 0, 0, 0, 0},
8323  {0x8E, 0, 0, 0, 0},
8324  {0x8F, 0, 0, 0, 0},
8325  {0x90, 0, 0, 0, 0},
8326  {0x91, 0, 0, 0, 0},
8327  {0x92, 0, 0, 0, 0},
8328  {0xFFFF, 0, 0, 0, 0}
8329 };
8330 
8331 static struct radio_regs regs_RX_2056[] = {
8332  {0x02, 0, 0, 0, 0},
8333  {0x03, 0, 0, 0, 0},
8334  {0x04, 0, 0, 0, 0},
8335  {0x05, 0, 0, 0, 0},
8336  {0x06, 0, 0, 0, 0},
8337  {0x07, 0, 0, 0, 0},
8338  {0x08, 0, 0, 0, 0},
8339  {0x09, 0, 0, 0, 0},
8340  {0x0A, 0, 0, 0, 0},
8341  {0x0B, 0, 0, 0, 0},
8342  {0x0C, 0, 0, 0, 0},
8343  {0x0D, 0, 0, 0, 0},
8344  {0x0E, 0, 0, 0, 0},
8345  {0x0F, 0, 0, 0, 0},
8346  {0x10, 0, 0, 0, 0},
8347  {0x11, 0, 0, 0, 0},
8348  {0x12, 0, 0, 0, 0},
8349  {0x13, 0, 0, 0, 0},
8350  {0x14, 0, 0, 0, 0},
8351  {0x15, 0, 0, 0, 0},
8352  {0x16, 0, 0, 0, 0},
8353  {0x17, 0, 0, 0, 0},
8354  {0x18, 0, 0, 0, 0},
8355  {0x19, 0, 0, 0, 0},
8356  {0x1A, 0, 0, 0, 0},
8357  {0x1B, 0, 0, 0, 0},
8358  {0x1C, 0, 0, 0, 0},
8359  {0x1D, 0, 0, 0, 0},
8360  {0x1E, 0, 0, 0, 0},
8361  {0x1F, 0, 0, 0, 0},
8362  {0x20, 0x3, 0x3, 0, 0},
8363  {0x21, 0, 0, 0, 0},
8364  {0x22, 0, 0, 0, 0},
8365  {0x23, 0x90, 0x90, 0, 0},
8366  {0x24, 0x55, 0x55, 0, 0},
8367  {0x25, 0x15, 0x15, 0, 0},
8368  {0x26, 0x5, 0x5, 0, 0},
8369  {0x27, 0x15, 0x15, 0, 0},
8370  {0x28, 0x5, 0x5, 0, 0},
8371  {0x29, 0x20, 0x20, 0, 0},
8372  {0x2A, 0x11, 0x11, 0, 0},
8373  {0x2B, 0x90, 0x90, 0, 0},
8374  {0x2C, 0, 0, 0, 0},
8375  {0x2D, 0x88, 0x88, 0, 0},
8376  {0x2E, 0x32, 0x32, 0, 0},
8377  {0x2F, 0x77, 0x77, 0, 0},
8378  {0x30, 0x17, 0x17, 1, 1},
8379  {0x31, 0xff, 0xff, 1, 1},
8380  {0x32, 0x20, 0x20, 0, 0},
8381  {0x33, 0, 0, 0, 0},
8382  {0x34, 0x88, 0x88, 0, 0},
8383  {0x35, 0x32, 0x32, 0, 0},
8384  {0x36, 0x77, 0x77, 0, 0},
8385  {0x37, 0x17, 0x17, 1, 1},
8386  {0x38, 0xf0, 0xf0, 1, 1},
8387  {0x39, 0x20, 0x20, 0, 0},
8388  {0x3A, 0x8, 0x8, 0, 0},
8389  {0x3B, 0x99, 0x99, 0, 0},
8390  {0x3C, 0, 0, 0, 0},
8391  {0x3D, 0x44, 0x44, 1, 1},
8392  {0x3E, 0, 0, 0, 0},
8393  {0x3F, 0x44, 0x44, 0, 0},
8394  {0x40, 0xf, 0xf, 1, 1},
8395  {0x41, 0x6, 0x6, 0, 0},
8396  {0x42, 0x4, 0x4, 0, 0},
8397  {0x43, 0x50, 0x50, 1, 1},
8398  {0x44, 0x8, 0x8, 0, 0},
8399  {0x45, 0x99, 0x99, 0, 0},
8400  {0x46, 0, 0, 0, 0},
8401  {0x47, 0x11, 0x11, 0, 0},
8402  {0x48, 0, 0, 0, 0},
8403  {0x49, 0x44, 0x44, 0, 0},
8404  {0x4A, 0x7, 0x7, 0, 0},
8405  {0x4B, 0x6, 0x6, 0, 0},
8406  {0x4C, 0x4, 0x4, 0, 0},
8407  {0x4D, 0, 0, 0, 0},
8408  {0x4E, 0, 0, 0, 0},
8409  {0x4F, 0x66, 0x66, 0, 0},
8410  {0x50, 0x66, 0x66, 0, 0},
8411  {0x51, 0x57, 0x57, 0, 0},
8412  {0x52, 0x57, 0x57, 0, 0},
8413  {0x53, 0x44, 0x44, 0, 0},
8414  {0x54, 0, 0, 0, 0},
8415  {0x55, 0, 0, 0, 0},
8416  {0x56, 0x8, 0x8, 0, 0},
8417  {0x57, 0x8, 0x8, 0, 0},
8418  {0x58, 0x7, 0x7, 0, 0},
8419  {0x59, 0x22, 0x22, 0, 0},
8420  {0x5A, 0x22, 0x22, 0, 0},
8421  {0x5B, 0x2, 0x2, 0, 0},
8422  {0x5C, 0x23, 0x23, 0, 0},
8423  {0x5D, 0x7, 0x7, 0, 0},
8424  {0x5E, 0x55, 0x55, 0, 0},
8425  {0x5F, 0x23, 0x23, 0, 0},
8426  {0x60, 0x41, 0x41, 0, 0},
8427  {0x61, 0x1, 0x1, 0, 0},
8428  {0x62, 0xa, 0xa, 0, 0},
8429  {0x63, 0, 0, 0, 0},
8430  {0x64, 0, 0, 0, 0},
8431  {0x65, 0, 0, 0, 0},
8432  {0x66, 0, 0, 0, 0},
8433  {0x67, 0, 0, 0, 0},
8434  {0x68, 0, 0, 0, 0},
8435  {0x69, 0, 0, 0, 0},
8436  {0x6A, 0, 0, 0, 0},
8437  {0x6B, 0xc, 0xc, 0, 0},
8438  {0x6C, 0, 0, 0, 0},
8439  {0x6D, 0, 0, 0, 0},
8440  {0x6E, 0, 0, 0, 0},
8441  {0x6F, 0, 0, 0, 0},
8442  {0x70, 0, 0, 0, 0},
8443  {0x71, 0, 0, 0, 0},
8444  {0x72, 0x22, 0x22, 0, 0},
8445  {0x73, 0x22, 0x22, 0, 0},
8446  {0x74, 0x2, 0x2, 0, 0},
8447  {0x75, 0xa, 0xa, 0, 0},
8448  {0x76, 0x1, 0x1, 0, 0},
8449  {0x77, 0x22, 0x22, 0, 0},
8450  {0x78, 0x30, 0x30, 0, 0},
8451  {0x79, 0, 0, 0, 0},
8452  {0x7A, 0, 0, 0, 0},
8453  {0x7B, 0, 0, 0, 0},
8454  {0x7C, 0, 0, 0, 0},
8455  {0x7D, 0, 0, 0, 0},
8456  {0x7E, 0, 0, 0, 0},
8457  {0x7F, 0, 0, 0, 0},
8458  {0x80, 0, 0, 0, 0},
8459  {0x81, 0, 0, 0, 0},
8460  {0x82, 0, 0, 0, 0},
8461  {0x83, 0, 0, 0, 0},
8462  {0x84, 0, 0, 0, 0},
8463  {0x85, 0, 0, 0, 0},
8464  {0x86, 0, 0, 0, 0},
8465  {0x87, 0, 0, 0, 0},
8466  {0x88, 0, 0, 0, 0},
8467  {0x89, 0, 0, 0, 0},
8468  {0x8A, 0, 0, 0, 0},
8469  {0x8B, 0, 0, 0, 0},
8470  {0x8C, 0, 0, 0, 0},
8471  {0x8D, 0, 0, 0, 0},
8472  {0x8E, 0, 0, 0, 0},
8473  {0x8F, 0, 0, 0, 0},
8474  {0x90, 0, 0, 0, 0},
8475  {0x91, 0, 0, 0, 0},
8476  {0x92, 0, 0, 0, 0},
8477  {0x93, 0, 0, 0, 0},
8478  {0x94, 0, 0, 0, 0},
8479  {0xFFFF, 0, 0, 0, 0}
8480 };
8481 
8482 static struct radio_regs regs_SYN_2056_A1[] = {
8483  {0x02, 0, 0, 0, 0},
8484  {0x03, 0, 0, 0, 0},
8485  {0x04, 0, 0, 0, 0},
8486  {0x05, 0, 0, 0, 0},
8487  {0x06, 0, 0, 0, 0},
8488  {0x07, 0, 0, 0, 0},
8489  {0x08, 0, 0, 0, 0},
8490  {0x09, 0x1, 0x1, 0, 0},
8491  {0x0A, 0, 0, 0, 0},
8492  {0x0B, 0, 0, 0, 0},
8493  {0x0C, 0, 0, 0, 0},
8494  {0x0D, 0, 0, 0, 0},
8495  {0x0E, 0, 0, 0, 0},
8496  {0x0F, 0, 0, 0, 0},
8497  {0x10, 0, 0, 0, 0},
8498  {0x11, 0, 0, 0, 0},
8499  {0x12, 0, 0, 0, 0},
8500  {0x13, 0, 0, 0, 0},
8501  {0x14, 0, 0, 0, 0},
8502  {0x15, 0, 0, 0, 0},
8503  {0x16, 0, 0, 0, 0},
8504  {0x17, 0, 0, 0, 0},
8505  {0x18, 0, 0, 0, 0},
8506  {0x19, 0, 0, 0, 0},
8507  {0x1A, 0, 0, 0, 0},
8508  {0x1B, 0, 0, 0, 0},
8509  {0x1C, 0, 0, 0, 0},
8510  {0x1D, 0, 0, 0, 0},
8511  {0x1E, 0, 0, 0, 0},
8512  {0x1F, 0, 0, 0, 0},
8513  {0x20, 0, 0, 0, 0},
8514  {0x21, 0, 0, 0, 0},
8515  {0x22, 0x60, 0x60, 0, 0},
8516  {0x23, 0x6, 0x6, 0, 0},
8517  {0x24, 0xc, 0xc, 0, 0},
8518  {0x25, 0, 0, 0, 0},
8519  {0x26, 0, 0, 0, 0},
8520  {0x27, 0, 0, 0, 0},
8521  {0x28, 0x1, 0x1, 0, 0},
8522  {0x29, 0, 0, 0, 0},
8523  {0x2A, 0, 0, 0, 0},
8524  {0x2B, 0, 0, 0, 0},
8525  {0x2C, 0, 0, 0, 0},
8526  {0x2D, 0, 0, 0, 0},
8527  {0x2E, 0xd, 0xd, 0, 0},
8528  {0x2F, 0x1f, 0x1f, 0, 0},
8529  {0x30, 0x15, 0x15, 0, 0},
8530  {0x31, 0xf, 0xf, 0, 0},
8531  {0x32, 0, 0, 0, 0},
8532  {0x33, 0, 0, 0, 0},
8533  {0x34, 0, 0, 0, 0},
8534  {0x35, 0, 0, 0, 0},
8535  {0x36, 0, 0, 0, 0},
8536  {0x37, 0, 0, 0, 0},
8537  {0x38, 0, 0, 0, 0},
8538  {0x39, 0, 0, 0, 0},
8539  {0x3A, 0, 0, 0, 0},
8540  {0x3B, 0, 0, 0, 0},
8541  {0x3C, 0x13, 0x13, 0, 0},
8542  {0x3D, 0xf, 0xf, 0, 0},
8543  {0x3E, 0x18, 0x18, 0, 0},
8544  {0x3F, 0, 0, 0, 0},
8545  {0x40, 0, 0, 0, 0},
8546  {0x41, 0x20, 0x20, 0, 0},
8547  {0x42, 0x20, 0x20, 0, 0},
8548  {0x43, 0, 0, 0, 0},
8549  {0x44, 0x77, 0x77, 0, 0},
8550  {0x45, 0x7, 0x7, 0, 0},
8551  {0x46, 0x1, 0x1, 0, 0},
8552  {0x47, 0x4, 0x4, 0, 0},
8553  {0x48, 0xf, 0xf, 0, 0},
8554  {0x49, 0x30, 0x30, 0, 0},
8555  {0x4A, 0x32, 0x32, 0, 0},
8556  {0x4B, 0xd, 0xd, 0, 0},
8557  {0x4C, 0xd, 0xd, 0, 0},
8558  {0x4D, 0x4, 0x4, 0, 0},
8559  {0x4E, 0x6, 0x6, 0, 0},
8560  {0x4F, 0x1, 0x1, 0, 0},
8561  {0x50, 0x1c, 0x1c, 0, 0},
8562  {0x51, 0x2, 0x2, 0, 0},
8563  {0x52, 0x2, 0x2, 0, 0},
8564  {0x53, 0xf7, 0xf7, 1, 1},
8565  {0x54, 0xb4, 0xb4, 0, 0},
8566  {0x55, 0xd2, 0xd2, 0, 0},
8567  {0x56, 0, 0, 0, 0},
8568  {0x57, 0, 0, 0, 0},
8569  {0x58, 0x4, 0x4, 0, 0},
8570  {0x59, 0x96, 0x96, 0, 0},
8571  {0x5A, 0x3e, 0x3e, 0, 0},
8572  {0x5B, 0x3e, 0x3e, 0, 0},
8573  {0x5C, 0x13, 0x13, 0, 0},
8574  {0x5D, 0x2, 0x2, 0, 0},
8575  {0x5E, 0, 0, 0, 0},
8576  {0x5F, 0x7, 0x7, 0, 0},
8577  {0x60, 0x7, 0x7, 1, 1},
8578  {0x61, 0x8, 0x8, 0, 0},
8579  {0x62, 0x3, 0x3, 0, 0},
8580  {0x63, 0, 0, 0, 0},
8581  {0x64, 0, 0, 0, 0},
8582  {0x65, 0, 0, 0, 0},
8583  {0x66, 0, 0, 0, 0},
8584  {0x67, 0, 0, 0, 0},
8585  {0x68, 0x40, 0x40, 0, 0},
8586  {0x69, 0, 0, 0, 0},
8587  {0x6A, 0, 0, 0, 0},
8588  {0x6B, 0, 0, 0, 0},
8589  {0x6C, 0, 0, 0, 0},
8590  {0x6D, 0x1, 0x1, 0, 0},
8591  {0x6E, 0, 0, 0, 0},
8592  {0x6F, 0, 0, 0, 0},
8593  {0x70, 0x60, 0x60, 0, 0},
8594  {0x71, 0x66, 0x66, 0, 0},
8595  {0x72, 0xc, 0xc, 0, 0},
8596  {0x73, 0x66, 0x66, 0, 0},
8597  {0x74, 0x8f, 0x8f, 1, 1},
8598  {0x75, 0, 0, 0, 0},
8599  {0x76, 0xcc, 0xcc, 0, 0},
8600  {0x77, 0x1, 0x1, 0, 0},
8601  {0x78, 0x66, 0x66, 0, 0},
8602  {0x79, 0x66, 0x66, 0, 0},
8603  {0x7A, 0, 0, 0, 0},
8604  {0x7B, 0, 0, 0, 0},
8605  {0x7C, 0, 0, 0, 0},
8606  {0x7D, 0, 0, 0, 0},
8607  {0x7E, 0, 0, 0, 0},
8608  {0x7F, 0, 0, 0, 0},
8609  {0x80, 0, 0, 0, 0},
8610  {0x81, 0, 0, 0, 0},
8611  {0x82, 0, 0, 0, 0},
8612  {0x83, 0, 0, 0, 0},
8613  {0x84, 0, 0, 0, 0},
8614  {0x85, 0xff, 0xff, 0, 0},
8615  {0x86, 0, 0, 0, 0},
8616  {0x87, 0, 0, 0, 0},
8617  {0x88, 0, 0, 0, 0},
8618  {0x89, 0, 0, 0, 0},
8619  {0x8A, 0, 0, 0, 0},
8620  {0x8B, 0, 0, 0, 0},
8621  {0x8C, 0, 0, 0, 0},
8622  {0x8D, 0, 0, 0, 0},
8623  {0x8E, 0, 0, 0, 0},
8624  {0x8F, 0, 0, 0, 0},
8625  {0x90, 0, 0, 0, 0},
8626  {0x91, 0, 0, 0, 0},
8627  {0x92, 0, 0, 0, 0},
8628  {0x93, 0, 0, 0, 0},
8629  {0x94, 0, 0, 0, 0},
8630  {0x95, 0, 0, 0, 0},
8631  {0x96, 0, 0, 0, 0},
8632  {0x97, 0, 0, 0, 0},
8633  {0x98, 0, 0, 0, 0},
8634  {0x99, 0, 0, 0, 0},
8635  {0x9A, 0, 0, 0, 0},
8636  {0x9B, 0, 0, 0, 0},
8637  {0x9C, 0, 0, 0, 0},
8638  {0x9D, 0, 0, 0, 0},
8639  {0x9E, 0, 0, 0, 0},
8640  {0x9F, 0x6, 0x6, 0, 0},
8641  {0xA0, 0x66, 0x66, 0, 0},
8642  {0xA1, 0x66, 0x66, 0, 0},
8643  {0xA2, 0x66, 0x66, 0, 0},
8644  {0xA3, 0x66, 0x66, 0, 0},
8645  {0xA4, 0x66, 0x66, 0, 0},
8646  {0xA5, 0x66, 0x66, 0, 0},
8647  {0xA6, 0x66, 0x66, 0, 0},
8648  {0xA7, 0x66, 0x66, 0, 0},
8649  {0xA8, 0x66, 0x66, 0, 0},
8650  {0xA9, 0x66, 0x66, 0, 0},
8651  {0xAA, 0x66, 0x66, 0, 0},
8652  {0xAB, 0x66, 0x66, 0, 0},
8653  {0xAC, 0x66, 0x66, 0, 0},
8654  {0xAD, 0x66, 0x66, 0, 0},
8655  {0xAE, 0x66, 0x66, 0, 0},
8656  {0xAF, 0x66, 0x66, 0, 0},
8657  {0xB0, 0x66, 0x66, 0, 0},
8658  {0xB1, 0x66, 0x66, 0, 0},
8659  {0xB2, 0x66, 0x66, 0, 0},
8660  {0xB3, 0xa, 0xa, 0, 0},
8661  {0xB4, 0, 0, 0, 0},
8662  {0xB5, 0, 0, 0, 0},
8663  {0xB6, 0, 0, 0, 0},
8664  {0xFFFF, 0, 0, 0, 0}
8665 };
8666 
8667 static struct radio_regs regs_TX_2056_A1[] = {
8668  {0x02, 0, 0, 0, 0},
8669  {0x03, 0, 0, 0, 0},
8670  {0x04, 0, 0, 0, 0},
8671  {0x05, 0, 0, 0, 0},
8672  {0x06, 0, 0, 0, 0},
8673  {0x07, 0, 0, 0, 0},
8674  {0x08, 0, 0, 0, 0},
8675  {0x09, 0, 0, 0, 0},
8676  {0x0A, 0, 0, 0, 0},
8677  {0x0B, 0, 0, 0, 0},
8678  {0x0C, 0, 0, 0, 0},
8679  {0x0D, 0, 0, 0, 0},
8680  {0x0E, 0, 0, 0, 0},
8681  {0x0F, 0, 0, 0, 0},
8682  {0x10, 0, 0, 0, 0},
8683  {0x11, 0, 0, 0, 0},
8684  {0x12, 0, 0, 0, 0},
8685  {0x13, 0, 0, 0, 0},
8686  {0x14, 0, 0, 0, 0},
8687  {0x15, 0, 0, 0, 0},
8688  {0x16, 0, 0, 0, 0},
8689  {0x17, 0, 0, 0, 0},
8690  {0x18, 0, 0, 0, 0},
8691  {0x19, 0, 0, 0, 0},
8692  {0x1A, 0, 0, 0, 0},
8693  {0x1B, 0, 0, 0, 0},
8694  {0x1C, 0, 0, 0, 0},
8695  {0x1D, 0, 0, 0, 0},
8696  {0x1E, 0, 0, 0, 0},
8697  {0x1F, 0, 0, 0, 0},
8698  {0x20, 0, 0, 0, 0},
8699  {0x21, 0x88, 0x88, 0, 0},
8700  {0x22, 0x88, 0x88, 0, 0},
8701  {0x23, 0x88, 0x88, 0, 0},
8702  {0x24, 0x88, 0x88, 0, 0},
8703  {0x25, 0xc, 0xc, 0, 0},
8704  {0x26, 0, 0, 0, 0},
8705  {0x27, 0x3, 0x3, 0, 0},
8706  {0x28, 0, 0, 0, 0},
8707  {0x29, 0x3, 0x3, 0, 0},
8708  {0x2A, 0x37, 0x37, 0, 0},
8709  {0x2B, 0x3, 0x3, 0, 0},
8710  {0x2C, 0, 0, 0, 0},
8711  {0x2D, 0, 0, 0, 0},
8712  {0x2E, 0x1, 0x1, 0, 0},
8713  {0x2F, 0x1, 0x1, 0, 0},
8714  {0x30, 0, 0, 0, 0},
8715  {0x31, 0, 0, 0, 0},
8716  {0x32, 0, 0, 0, 0},
8717  {0x33, 0x11, 0x11, 0, 0},
8718  {0x34, 0x11, 0x11, 0, 0},
8719  {0x35, 0, 0, 0, 0},
8720  {0x36, 0, 0, 0, 0},
8721  {0x37, 0x3, 0x3, 0, 0},
8722  {0x38, 0xf, 0xf, 0, 0},
8723  {0x39, 0, 0, 0, 0},
8724  {0x3A, 0x2d, 0x2d, 0, 0},
8725  {0x3B, 0, 0, 0, 0},
8726  {0x3C, 0x6e, 0x6e, 0, 0},
8727  {0x3D, 0xf0, 0xf0, 1, 1},
8728  {0x3E, 0, 0, 0, 0},
8729  {0x3F, 0, 0, 0, 0},
8730  {0x40, 0, 0, 0, 0},
8731  {0x41, 0x3, 0x3, 0, 0},
8732  {0x42, 0x3, 0x3, 0, 0},
8733  {0x43, 0, 0, 0, 0},
8734  {0x44, 0x1e, 0x1e, 0, 0},
8735  {0x45, 0, 0, 0, 0},
8736  {0x46, 0x6e, 0x6e, 0, 0},
8737  {0x47, 0xf0, 0xf0, 1, 1},
8738  {0x48, 0, 0, 0, 0},
8739  {0x49, 0x2, 0x2, 0, 0},
8740  {0x4A, 0xff, 0xff, 1, 1},
8741  {0x4B, 0xc, 0xc, 0, 0},
8742  {0x4C, 0, 0, 0, 0},
8743  {0x4D, 0x38, 0x38, 0, 0},
8744  {0x4E, 0x70, 0x70, 1, 1},
8745  {0x4F, 0x2, 0x2, 0, 0},
8746  {0x50, 0x88, 0x88, 0, 0},
8747  {0x51, 0xc, 0xc, 0, 0},
8748  {0x52, 0, 0, 0, 0},
8749  {0x53, 0x8, 0x8, 0, 0},
8750  {0x54, 0x70, 0x70, 1, 1},
8751  {0x55, 0x2, 0x2, 0, 0},
8752  {0x56, 0xff, 0xff, 1, 1},
8753  {0x57, 0, 0, 0, 0},
8754  {0x58, 0x83, 0x83, 0, 0},
8755  {0x59, 0x77, 0x77, 1, 1},
8756  {0x5A, 0, 0, 0, 0},
8757  {0x5B, 0x2, 0x2, 0, 0},
8758  {0x5C, 0x88, 0x88, 0, 0},
8759  {0x5D, 0, 0, 0, 0},
8760  {0x5E, 0x8, 0x8, 0, 0},
8761  {0x5F, 0x77, 0x77, 1, 1},
8762  {0x60, 0x1, 0x1, 0, 0},
8763  {0x61, 0, 0, 0, 0},
8764  {0x62, 0x7, 0x7, 0, 0},
8765  {0x63, 0, 0, 0, 0},
8766  {0x64, 0x7, 0x7, 0, 0},
8767  {0x65, 0, 0, 0, 0},
8768  {0x66, 0, 0, 0, 0},
8769  {0x67, 0x72, 0x72, 1, 1},
8770  {0x68, 0, 0, 0, 0},
8771  {0x69, 0xa, 0xa, 0, 0},
8772  {0x6A, 0, 0, 0, 0},
8773  {0x6B, 0, 0, 0, 0},
8774  {0x6C, 0, 0, 0, 0},
8775  {0x6D, 0, 0, 0, 0},
8776  {0x6E, 0, 0, 0, 0},
8777  {0x6F, 0, 0, 0, 0},
8778  {0x70, 0, 0, 0, 0},
8779  {0x71, 0x2, 0x2, 0, 0},
8780  {0x72, 0, 0, 0, 0},
8781  {0x73, 0, 0, 0, 0},
8782  {0x74, 0xe, 0xe, 0, 0},
8783  {0x75, 0xe, 0xe, 0, 0},
8784  {0x76, 0xe, 0xe, 0, 0},
8785  {0x77, 0x13, 0x13, 0, 0},
8786  {0x78, 0x13, 0x13, 0, 0},
8787  {0x79, 0x1b, 0x1b, 0, 0},
8788  {0x7A, 0x1b, 0x1b, 0, 0},
8789  {0x7B, 0x55, 0x55, 0, 0},
8790  {0x7C, 0x5b, 0x5b, 0, 0},
8791  {0x7D, 0, 0, 0, 0},
8792  {0x7E, 0, 0, 0, 0},
8793  {0x7F, 0, 0, 0, 0},
8794  {0x80, 0, 0, 0, 0},
8795  {0x81, 0, 0, 0, 0},
8796  {0x82, 0, 0, 0, 0},
8797  {0x83, 0, 0, 0, 0},
8798  {0x84, 0, 0, 0, 0},
8799  {0x85, 0, 0, 0, 0},
8800  {0x86, 0, 0, 0, 0},
8801  {0x87, 0, 0, 0, 0},
8802  {0x88, 0, 0, 0, 0},
8803  {0x89, 0, 0, 0, 0},
8804  {0x8A, 0, 0, 0, 0},
8805  {0x8B, 0, 0, 0, 0},
8806  {0x8C, 0, 0, 0, 0},
8807  {0x8D, 0, 0, 0, 0},
8808  {0x8E, 0, 0, 0, 0},
8809  {0x8F, 0, 0, 0, 0},
8810  {0x90, 0, 0, 0, 0},
8811  {0x91, 0, 0, 0, 0},
8812  {0x92, 0, 0, 0, 0},
8813  {0xFFFF, 0, 0, 0, 0}
8814 };
8815 
8816 static struct radio_regs regs_RX_2056_A1[] = {
8817  {0x02, 0, 0, 0, 0},
8818  {0x03, 0, 0, 0, 0},
8819  {0x04, 0, 0, 0, 0},
8820  {0x05, 0, 0, 0, 0},
8821  {0x06, 0, 0, 0, 0},
8822  {0x07, 0, 0, 0, 0},
8823  {0x08, 0, 0, 0, 0},
8824  {0x09, 0, 0, 0, 0},
8825  {0x0A, 0, 0, 0, 0},
8826  {0x0B, 0, 0, 0, 0},
8827  {0x0C, 0, 0, 0, 0},
8828  {0x0D, 0, 0, 0, 0},
8829  {0x0E, 0, 0, 0, 0},
8830  {0x0F, 0, 0, 0, 0},
8831  {0x10, 0, 0, 0, 0},
8832  {0x11, 0, 0, 0, 0},
8833  {0x12, 0, 0, 0, 0},
8834  {0x13, 0, 0, 0, 0},
8835  {0x14, 0, 0, 0, 0},
8836  {0x15, 0, 0, 0, 0},
8837  {0x16, 0, 0, 0, 0},
8838  {0x17, 0, 0, 0, 0},
8839  {0x18, 0, 0, 0, 0},
8840  {0x19, 0, 0, 0, 0},
8841  {0x1A, 0, 0, 0, 0},
8842  {0x1B, 0, 0, 0, 0},
8843  {0x1C, 0, 0, 0, 0},
8844  {0x1D, 0, 0, 0, 0},
8845  {0x1E, 0, 0, 0, 0},
8846  {0x1F, 0, 0, 0, 0},
8847  {0x20, 0x3, 0x3, 0, 0},
8848  {0x21, 0, 0, 0, 0},
8849  {0x22, 0, 0, 0, 0},
8850  {0x23, 0x90, 0x90, 0, 0},
8851  {0x24, 0x55, 0x55, 0, 0},
8852  {0x25, 0x15, 0x15, 0, 0},
8853  {0x26, 0x5, 0x5, 0, 0},
8854  {0x27, 0x15, 0x15, 0, 0},
8855  {0x28, 0x5, 0x5, 0, 0},
8856  {0x29, 0x20, 0x20, 0, 0},
8857  {0x2A, 0x11, 0x11, 0, 0},
8858  {0x2B, 0x90, 0x90, 0, 0},
8859  {0x2C, 0, 0, 0, 0},
8860  {0x2D, 0x88, 0x88, 0, 0},
8861  {0x2E, 0x32, 0x32, 0, 0},
8862  {0x2F, 0x77, 0x77, 0, 0},
8863  {0x30, 0x17, 0x17, 1, 1},
8864  {0x31, 0xff, 0xff, 1, 1},
8865  {0x32, 0x20, 0x20, 0, 0},
8866  {0x33, 0, 0, 0, 0},
8867  {0x34, 0x88, 0x88, 0, 0},
8868  {0x35, 0x32, 0x32, 0, 0},
8869  {0x36, 0x77, 0x77, 0, 0},
8870  {0x37, 0x17, 0x17, 1, 1},
8871  {0x38, 0xf0, 0xf0, 1, 1},
8872  {0x39, 0x20, 0x20, 0, 0},
8873  {0x3A, 0x8, 0x8, 0, 0},
8874  {0x3B, 0x55, 0x55, 1, 1},
8875  {0x3C, 0, 0, 0, 0},
8876  {0x3D, 0x44, 0x44, 1, 1},
8877  {0x3E, 0, 0, 0, 0},
8878  {0x3F, 0x44, 0x44, 0, 0},
8879  {0x40, 0xf, 0xf, 1, 1},
8880  {0x41, 0x6, 0x6, 0, 0},
8881  {0x42, 0x4, 0x4, 0, 0},
8882  {0x43, 0x50, 0x50, 1, 1},
8883  {0x44, 0x8, 0x8, 0, 0},
8884  {0x45, 0x55, 0x55, 1, 1},
8885  {0x46, 0, 0, 0, 0},
8886  {0x47, 0x11, 0x11, 0, 0},
8887  {0x48, 0, 0, 0, 0},
8888  {0x49, 0x44, 0x44, 0, 0},
8889  {0x4A, 0x7, 0x7, 0, 0},
8890  {0x4B, 0x6, 0x6, 0, 0},
8891  {0x4C, 0x4, 0x4, 0, 0},
8892  {0x4D, 0, 0, 0, 0},
8893  {0x4E, 0, 0, 0, 0},
8894  {0x4F, 0x26, 0x26, 1, 1},
8895  {0x50, 0x26, 0x26, 1, 1},
8896  {0x51, 0xf, 0xf, 1, 1},
8897  {0x52, 0xf, 0xf, 1, 1},
8898  {0x53, 0x44, 0x44, 0, 0},
8899  {0x54, 0, 0, 0, 0},
8900  {0x55, 0, 0, 0, 0},
8901  {0x56, 0x8, 0x8, 0, 0},
8902  {0x57, 0x8, 0x8, 0, 0},
8903  {0x58, 0x7, 0x7, 0, 0},
8904  {0x59, 0x22, 0x22, 0, 0},
8905  {0x5A, 0x22, 0x22, 0, 0},
8906  {0x5B, 0x2, 0x2, 0, 0},
8907  {0x5C, 0x2f, 0x2f, 1, 1},
8908  {0x5D, 0x7, 0x7, 0, 0},
8909  {0x5E, 0x55, 0x55, 0, 0},
8910  {0x5F, 0x23, 0x23, 0, 0},
8911  {0x60, 0x41, 0x41, 0, 0},
8912  {0x61, 0x1, 0x1, 0, 0},
8913  {0x62, 0xa, 0xa, 0, 0},
8914  {0x63, 0, 0, 0, 0},
8915  {0x64, 0, 0, 0, 0},
8916  {0x65, 0, 0, 0, 0},
8917  {0x66, 0, 0, 0, 0},
8918  {0x67, 0, 0, 0, 0},
8919  {0x68, 0, 0, 0, 0},
8920  {0x69, 0, 0, 0, 0},
8921  {0x6A, 0, 0, 0, 0},
8922  {0x6B, 0xc, 0xc, 0, 0},
8923  {0x6C, 0, 0, 0, 0},
8924  {0x6D, 0, 0, 0, 0},
8925  {0x6E, 0, 0, 0, 0},
8926  {0x6F, 0, 0, 0, 0},
8927  {0x70, 0, 0, 0, 0},
8928  {0x71, 0, 0, 0, 0},
8929  {0x72, 0x22, 0x22, 0, 0},
8930  {0x73, 0x22, 0x22, 0, 0},
8931  {0x74, 0, 0, 1, 1},
8932  {0x75, 0xa, 0xa, 0, 0},
8933  {0x76, 0x1, 0x1, 0, 0},
8934  {0x77, 0x22, 0x22, 0, 0},
8935  {0x78, 0x30, 0x30, 0, 0},
8936  {0x79, 0, 0, 0, 0},
8937  {0x7A, 0, 0, 0, 0},
8938  {0x7B, 0, 0, 0, 0},
8939  {0x7C, 0, 0, 0, 0},
8940  {0x7D, 0, 0, 0, 0},
8941  {0x7E, 0, 0, 0, 0},
8942  {0x7F, 0, 0, 0, 0},
8943  {0x80, 0, 0, 0, 0},
8944  {0x81, 0, 0, 0, 0},
8945  {0x82, 0, 0, 0, 0},
8946  {0x83, 0, 0, 0, 0},
8947  {0x84, 0, 0, 0, 0},
8948  {0x85, 0, 0, 0, 0},
8949  {0x86, 0, 0, 0, 0},
8950  {0x87, 0, 0, 0, 0},
8951  {0x88, 0, 0, 0, 0},
8952  {0x89, 0, 0, 0, 0},
8953  {0x8A, 0, 0, 0, 0},
8954  {0x8B, 0, 0, 0, 0},
8955  {0x8C, 0, 0, 0, 0},
8956  {0x8D, 0, 0, 0, 0},
8957  {0x8E, 0, 0, 0, 0},
8958  {0x8F, 0, 0, 0, 0},
8959  {0x90, 0, 0, 0, 0},
8960  {0x91, 0, 0, 0, 0},
8961  {0x92, 0, 0, 0, 0},
8962  {0x93, 0, 0, 0, 0},
8963  {0x94, 0, 0, 0, 0},
8964  {0xFFFF, 0, 0, 0, 0}
8965 };
8966 
8967 static struct radio_regs regs_SYN_2056_rev5[] = {
8968  {0x02, 0, 0, 0, 0},
8969  {0x03, 0, 0, 0, 0},
8970  {0x04, 0, 0, 0, 0},
8971  {0x05, 0, 0, 0, 0},
8972  {0x06, 0, 0, 0, 0},
8973  {0x07, 0, 0, 0, 0},
8974  {0x08, 0, 0, 0, 0},
8975  {0x09, 0x1, 0x1, 0, 0},
8976  {0x0A, 0, 0, 0, 0},
8977  {0x0B, 0, 0, 0, 0},
8978  {0x0C, 0, 0, 0, 0},
8979  {0x0D, 0, 0, 0, 0},
8980  {0x0E, 0, 0, 0, 0},
8981  {0x0F, 0, 0, 0, 0},
8982  {0x10, 0, 0, 0, 0},
8983  {0x11, 0, 0, 0, 0},
8984  {0x12, 0, 0, 0, 0},
8985  {0x13, 0, 0, 0, 0},
8986  {0x14, 0, 0, 0, 0},
8987  {0x15, 0, 0, 0, 0},
8988  {0x16, 0, 0, 0, 0},
8989  {0x17, 0, 0, 0, 0},
8990  {0x18, 0, 0, 0, 0},
8991  {0x19, 0, 0, 0, 0},
8992  {0x1A, 0, 0, 0, 0},
8993  {0x1B, 0, 0, 0, 0},
8994  {0x1C, 0, 0, 0, 0},
8995  {0x1D, 0, 0, 0, 0},
8996  {0x1E, 0, 0, 0, 0},
8997  {0x1F, 0, 0, 0, 0},
8998  {0x20, 0, 0, 0, 0},
8999  {0x21, 0, 0, 0, 0},
9000  {0x22, 0x60, 0x60, 0, 0},
9001  {0x23, 0x6, 0x6, 0, 0},
9002  {0x24, 0xc, 0xc, 0, 0},
9003  {0x25, 0, 0, 0, 0},
9004  {0x26, 0, 0, 0, 0},
9005  {0x27, 0, 0, 0, 0},
9006  {0x28, 0x1, 0x1, 0, 0},
9007  {0x29, 0, 0, 0, 0},
9008  {0x2A, 0, 0, 0, 0},
9009  {0x2B, 0, 0, 0, 0},
9010  {0x2C, 0, 0, 0, 0},
9011  {0x2D, 0, 0, 0, 0},
9012  {0x2E, 0, 0, 0, 0},
9013  {0x2F, 0x1f, 0x1f, 0, 0},
9014  {0x30, 0x15, 0x15, 0, 0},
9015  {0x31, 0xf, 0xf, 0, 0},
9016  {0x32, 0, 0, 0, 0},
9017  {0x33, 0, 0, 0, 0},
9018  {0x34, 0, 0, 0, 0},
9019  {0x35, 0, 0, 0, 0},
9020  {0x36, 0, 0, 0, 0},
9021  {0x37, 0, 0, 0, 0},
9022  {0x38, 0, 0, 0, 0},
9023  {0x39, 0, 0, 0, 0},
9024  {0x3A, 0, 0, 0, 0},
9025  {0x3B, 0, 0, 0, 0},
9026  {0x3C, 0x13, 0x13, 0, 0},
9027  {0x3D, 0xf, 0xf, 0, 0},
9028  {0x3E, 0x18, 0x18, 0, 0},
9029  {0x3F, 0, 0, 0, 0},
9030  {0x40, 0, 0, 0, 0},
9031  {0x41, 0x20, 0x20, 0, 0},
9032  {0x42, 0x20, 0x20, 0, 0},
9033  {0x43, 0, 0, 0, 0},
9034  {0x44, 0x77, 0x77, 0, 0},
9035  {0x45, 0x7, 0x7, 0, 0},
9036  {0x46, 0x1, 0x1, 0, 0},
9037  {0x47, 0x4, 0x4, 0, 0},
9038  {0x48, 0xf, 0xf, 0, 0},
9039  {0x49, 0x30, 0x30, 0, 0},
9040  {0x4A, 0x32, 0x32, 0, 0},
9041  {0x4B, 0xd, 0xd, 0, 0},
9042  {0x4C, 0xd, 0xd, 0, 0},
9043  {0x4D, 0x4, 0x4, 0, 0},
9044  {0x4E, 0x6, 0x6, 0, 0},
9045  {0x4F, 0x1, 0x1, 0, 0},
9046  {0x50, 0x1c, 0x1c, 0, 0},
9047  {0x51, 0x2, 0x2, 0, 0},
9048  {0x52, 0x2, 0x2, 0, 0},
9049  {0x53, 0xf7, 0xf7, 1, 1},
9050  {0x54, 0xb4, 0xb4, 0, 0},
9051  {0x55, 0xd2, 0xd2, 0, 0},
9052  {0x56, 0, 0, 0, 0},
9053  {0x57, 0, 0, 0, 0},
9054  {0x58, 0x4, 0x4, 0, 0},
9055  {0x59, 0x96, 0x96, 0, 0},
9056  {0x5A, 0x3e, 0x3e, 0, 0},
9057  {0x5B, 0x3e, 0x3e, 0, 0},
9058  {0x5C, 0x13, 0x13, 0, 0},
9059  {0x5D, 0x2, 0x2, 0, 0},
9060  {0x5E, 0, 0, 0, 0},
9061  {0x5F, 0x7, 0x7, 0, 0},
9062  {0x60, 0x7, 0x7, 1, 1},
9063  {0x61, 0x8, 0x8, 0, 0},
9064  {0x62, 0x3, 0x3, 0, 0},
9065  {0x63, 0, 0, 0, 0},
9066  {0x64, 0, 0, 0, 0},
9067  {0x65, 0, 0, 0, 0},
9068  {0x66, 0, 0, 0, 0},
9069  {0x67, 0, 0, 0, 0},
9070  {0x68, 0x40, 0x40, 0, 0},
9071  {0x69, 0, 0, 0, 0},
9072  {0x6A, 0, 0, 0, 0},
9073  {0x6B, 0, 0, 0, 0},
9074  {0x6C, 0, 0, 0, 0},
9075  {0x6D, 0x1, 0x1, 0, 0},
9076  {0x6E, 0, 0, 0, 0},
9077  {0x6F, 0, 0, 0, 0},
9078  {0x70, 0x60, 0x60, 0, 0},
9079  {0x71, 0x66, 0x66, 0, 0},
9080  {0x72, 0xc, 0xc, 0, 0},
9081  {0x73, 0x66, 0x66, 0, 0},
9082  {0x74, 0x8f, 0x8f, 1, 1},
9083  {0x75, 0, 0, 0, 0},
9084  {0x76, 0xcc, 0xcc, 0, 0},
9085  {0x77, 0x1, 0x1, 0, 0},
9086  {0x78, 0x66, 0x66, 0, 0},
9087  {0x79, 0x66, 0x66, 0, 0},
9088  {0x7A, 0, 0, 0, 0},
9089  {0x7B, 0, 0, 0, 0},
9090  {0x7C, 0, 0, 0, 0},
9091  {0x7D, 0, 0, 0, 0},
9092  {0x7E, 0, 0, 0, 0},
9093  {0x7F, 0, 0, 0, 0},
9094  {0x80, 0, 0, 0, 0},
9095  {0x81, 0, 0, 0, 0},
9096  {0x82, 0, 0, 0, 0},
9097  {0x83, 0, 0, 0, 0},
9098  {0x84, 0, 0, 0, 0},
9099  {0x85, 0xff, 0xff, 0, 0},
9100  {0x86, 0, 0, 0, 0},
9101  {0x87, 0, 0, 0, 0},
9102  {0x88, 0, 0, 0, 0},
9103  {0x89, 0, 0, 0, 0},
9104  {0x8A, 0, 0, 0, 0},
9105  {0x8B, 0, 0, 0, 0},
9106  {0x8C, 0, 0, 0, 0},
9107  {0x8D, 0, 0, 0, 0},
9108  {0x8E, 0, 0, 0, 0},
9109  {0x8F, 0, 0, 0, 0},
9110  {0x90, 0, 0, 0, 0},
9111  {0x91, 0, 0, 0, 0},
9112  {0x92, 0, 0, 0, 0},
9113  {0x93, 0, 0, 0, 0},
9114  {0x94, 0, 0, 0, 0},
9115  {0x95, 0, 0, 0, 0},
9116  {0x96, 0, 0, 0, 0},
9117  {0x97, 0, 0, 0, 0},
9118  {0x98, 0, 0, 0, 0},
9119  {0x99, 0, 0, 0, 0},
9120  {0x9A, 0, 0, 0, 0},
9121  {0x9B, 0, 0, 0, 0},
9122  {0x9C, 0, 0, 0, 0},
9123  {0x9D, 0, 0, 0, 0},
9124  {0x9E, 0, 0, 0, 0},
9125  {0x9F, 0x6, 0x6, 0, 0},
9126  {0xA0, 0x66, 0x66, 0, 0},
9127  {0xA1, 0x66, 0x66, 0, 0},
9128  {0xA2, 0x66, 0x66, 0, 0},
9129  {0xA3, 0x66, 0x66, 0, 0},
9130  {0xA4, 0x66, 0x66, 0, 0},
9131  {0xA5, 0x66, 0x66, 0, 0},
9132  {0xA6, 0x66, 0x66, 0, 0},
9133  {0xA7, 0x66, 0x66, 0, 0},
9134  {0xA8, 0x66, 0x66, 0, 0},
9135  {0xA9, 0x66, 0x66, 0, 0},
9136  {0xAA, 0x66, 0x66, 0, 0},
9137  {0xAB, 0x66, 0x66, 0, 0},
9138  {0xAC, 0x66, 0x66, 0, 0},
9139  {0xAD, 0x66, 0x66, 0, 0},
9140  {0xAE, 0x66, 0x66, 0, 0},
9141  {0xAF, 0x66, 0x66, 0, 0},
9142  {0xB0, 0x66, 0x66, 0, 0},
9143  {0xB1, 0x66, 0x66, 0, 0},
9144  {0xB2, 0x66, 0x66, 0, 0},
9145  {0xB3, 0xa, 0xa, 0, 0},
9146  {0xB4, 0, 0, 0, 0},
9147  {0xB5, 0, 0, 0, 0},
9148  {0xB6, 0, 0, 0, 0},
9149  {0xFFFF, 0, 0, 0, 0}
9150 };
9151 
9152 static struct radio_regs regs_TX_2056_rev5[] = {
9153  {0x02, 0, 0, 0, 0},
9154  {0x03, 0, 0, 0, 0},
9155  {0x04, 0, 0, 0, 0},
9156  {0x05, 0, 0, 0, 0},
9157  {0x06, 0, 0, 0, 0},
9158  {0x07, 0, 0, 0, 0},
9159  {0x08, 0, 0, 0, 0},
9160  {0x09, 0, 0, 0, 0},
9161  {0x0A, 0, 0, 0, 0},
9162  {0x0B, 0, 0, 0, 0},
9163  {0x0C, 0, 0, 0, 0},
9164  {0x0D, 0, 0, 0, 0},
9165  {0x0E, 0, 0, 0, 0},
9166  {0x0F, 0, 0, 0, 0},
9167  {0x10, 0, 0, 0, 0},
9168  {0x11, 0, 0, 0, 0},
9169  {0x12, 0, 0, 0, 0},
9170  {0x13, 0, 0, 0, 0},
9171  {0x14, 0, 0, 0, 0},
9172  {0x15, 0, 0, 0, 0},
9173  {0x16, 0, 0, 0, 0},
9174  {0x17, 0, 0, 0, 0},
9175  {0x18, 0, 0, 0, 0},
9176  {0x19, 0, 0, 0, 0},
9177  {0x1A, 0, 0, 0, 0},
9178  {0x1B, 0, 0, 0, 0},
9179  {0x1C, 0, 0, 0, 0},
9180  {0x1D, 0, 0, 0, 0},
9181  {0x1E, 0, 0, 0, 0},
9182  {0x1F, 0, 0, 0, 0},
9183  {0x20, 0, 0, 0, 0},
9184  {0x21, 0x88, 0x88, 0, 0},
9185  {0x22, 0x88, 0x88, 0, 0},
9186  {0x23, 0x88, 0x88, 0, 0},
9187  {0x24, 0x88, 0x88, 0, 0},
9188  {0x25, 0xc, 0xc, 0, 0},
9189  {0x26, 0, 0, 0, 0},
9190  {0x27, 0x3, 0x3, 0, 0},
9191  {0x28, 0, 0, 0, 0},
9192  {0x29, 0x3, 0x3, 0, 0},
9193  {0x2A, 0x37, 0x37, 0, 0},
9194  {0x2B, 0x3, 0x3, 0, 0},
9195  {0x2C, 0, 0, 0, 0},
9196  {0x2D, 0, 0, 0, 0},
9197  {0x2E, 0x1, 0x1, 0, 0},
9198  {0x2F, 0x1, 0x1, 0, 0},
9199  {0x30, 0, 0, 0, 0},
9200  {0x31, 0, 0, 0, 0},
9201  {0x32, 0, 0, 0, 0},
9202  {0x33, 0x11, 0x11, 0, 0},
9203  {0x34, 0x11, 0x11, 0, 0},
9204  {0x35, 0, 0, 0, 0},
9205  {0x36, 0, 0, 0, 0},
9206  {0x37, 0x3, 0x3, 0, 0},
9207  {0x38, 0xf, 0xf, 0, 0},
9208  {0x39, 0, 0, 0, 0},
9209  {0x3A, 0x2d, 0x2d, 0, 0},
9210  {0x3B, 0, 0, 0, 0},
9211  {0x3C, 0x6e, 0x6e, 0, 0},
9212  {0x3D, 0xf0, 0xf0, 1, 1},
9213  {0x3E, 0, 0, 0, 0},
9214  {0x3F, 0, 0, 0, 0},
9215  {0x40, 0, 0, 0, 0},
9216  {0x41, 0x3, 0x3, 0, 0},
9217  {0x42, 0x3, 0x3, 0, 0},
9218  {0x43, 0, 0, 0, 0},
9219  {0x44, 0x1e, 0x1e, 0, 0},
9220  {0x45, 0, 0, 0, 0},
9221  {0x46, 0x6e, 0x6e, 0, 0},
9222  {0x47, 0xf0, 0xf0, 1, 1},
9223  {0x48, 0, 0, 0, 0},
9224  {0x49, 0x2, 0x2, 0, 0},
9225  {0x4A, 0xff, 0xff, 1, 1},
9226  {0x4B, 0xc, 0xc, 0, 0},
9227  {0x4C, 0, 0, 0, 0},
9228  {0x4D, 0x38, 0x38, 0, 0},
9229  {0x4E, 0x70, 0x70, 1, 1},
9230  {0x4F, 0x2, 0x2, 0, 0},
9231  {0x50, 0x88, 0x88, 0, 0},
9232  {0x51, 0xc, 0xc, 0, 0},
9233  {0x52, 0, 0, 0, 0},
9234  {0x53, 0x8, 0x8, 0, 0},
9235  {0x54, 0x70, 0x70, 1, 1},
9236  {0x55, 0x2, 0x2, 0, 0},
9237  {0x56, 0xff, 0xff, 1, 1},
9238  {0x57, 0, 0, 0, 0},
9239  {0x58, 0x83, 0x83, 0, 0},
9240  {0x59, 0x77, 0x77, 1, 1},
9241  {0x5A, 0, 0, 0, 0},
9242  {0x5B, 0x2, 0x2, 0, 0},
9243  {0x5C, 0x88, 0x88, 0, 0},
9244  {0x5D, 0, 0, 0, 0},
9245  {0x5E, 0x8, 0x8, 0, 0},
9246  {0x5F, 0x77, 0x77, 1, 1},
9247  {0x60, 0x1, 0x1, 0, 0},
9248  {0x61, 0, 0, 0, 0},
9249  {0x62, 0x7, 0x7, 0, 0},
9250  {0x63, 0, 0, 0, 0},
9251  {0x64, 0x7, 0x7, 0, 0},
9252  {0x65, 0, 0, 0, 0},
9253  {0x66, 0, 0, 0, 0},
9254  {0x67, 0, 0, 1, 1},
9255  {0x68, 0, 0, 0, 0},
9256  {0x69, 0xa, 0xa, 0, 0},
9257  {0x6A, 0, 0, 0, 0},
9258  {0x6B, 0, 0, 0, 0},
9259  {0x6C, 0, 0, 0, 0},
9260  {0x6D, 0, 0, 0, 0},
9261  {0x6E, 0, 0, 0, 0},
9262  {0x6F, 0, 0, 0, 0},
9263  {0x70, 0, 0, 0, 0},
9264  {0x71, 0x2, 0x2, 0, 0},
9265  {0x72, 0, 0, 0, 0},
9266  {0x73, 0, 0, 0, 0},
9267  {0x74, 0xe, 0xe, 0, 0},
9268  {0x75, 0xe, 0xe, 0, 0},
9269  {0x76, 0xe, 0xe, 0, 0},
9270  {0x77, 0x13, 0x13, 0, 0},
9271  {0x78, 0x13, 0x13, 0, 0},
9272  {0x79, 0x1b, 0x1b, 0, 0},
9273  {0x7A, 0x1b, 0x1b, 0, 0},
9274  {0x7B, 0x55, 0x55, 0, 0},
9275  {0x7C, 0x5b, 0x5b, 0, 0},
9276  {0x7D, 0, 0, 0, 0},
9277  {0x7E, 0, 0, 0, 0},
9278  {0x7F, 0, 0, 0, 0},
9279  {0x80, 0, 0, 0, 0},
9280  {0x81, 0, 0, 0, 0},
9281  {0x82, 0, 0, 0, 0},
9282  {0x83, 0, 0, 0, 0},
9283  {0x84, 0, 0, 0, 0},
9284  {0x85, 0, 0, 0, 0},
9285  {0x86, 0, 0, 0, 0},
9286  {0x87, 0, 0, 0, 0},
9287  {0x88, 0, 0, 0, 0},
9288  {0x89, 0, 0, 0, 0},
9289  {0x8A, 0, 0, 0, 0},
9290  {0x8B, 0, 0, 0, 0},
9291  {0x8C, 0, 0, 0, 0},
9292  {0x8D, 0, 0, 0, 0},
9293  {0x8E, 0, 0, 0, 0},
9294  {0x8F, 0, 0, 0, 0},
9295  {0x90, 0, 0, 0, 0},
9296  {0x91, 0, 0, 0, 0},
9297  {0x92, 0, 0, 0, 0},
9298  {0x93, 0x70, 0x70, 0, 0},
9299  {0x94, 0x70, 0x70, 0, 0},
9300  {0x95, 0x71, 0x71, 1, 1},
9301  {0x96, 0x71, 0x71, 1, 1},
9302  {0x97, 0x72, 0x72, 1, 1},
9303  {0x98, 0x73, 0x73, 1, 1},
9304  {0x99, 0x74, 0x74, 1, 1},
9305  {0x9A, 0x75, 0x75, 1, 1},
9306  {0xFFFF, 0, 0, 0, 0}
9307 };
9308 
9309 static struct radio_regs regs_RX_2056_rev5[] = {
9310  {0x02, 0, 0, 0, 0},
9311  {0x03, 0, 0, 0, 0},
9312  {0x04, 0, 0, 0, 0},
9313  {0x05, 0, 0, 0, 0},
9314  {0x06, 0, 0, 0, 0},
9315  {0x07, 0, 0, 0, 0},
9316  {0x08, 0, 0, 0, 0},
9317  {0x09, 0, 0, 0, 0},
9318  {0x0A, 0, 0, 0, 0},
9319  {0x0B, 0, 0, 0, 0},
9320  {0x0C, 0, 0, 0, 0},
9321  {0x0D, 0, 0, 0, 0},
9322  {0x0E, 0, 0, 0, 0},
9323  {0x0F, 0, 0, 0, 0},
9324  {0x10, 0, 0, 0, 0},
9325  {0x11, 0, 0, 0, 0},
9326  {0x12, 0, 0, 0, 0},
9327  {0x13, 0, 0, 0, 0},
9328  {0x14, 0, 0, 0, 0},
9329  {0x15, 0, 0, 0, 0},
9330  {0x16, 0, 0, 0, 0},
9331  {0x17, 0, 0, 0, 0},
9332  {0x18, 0, 0, 0, 0},
9333  {0x19, 0, 0, 0, 0},
9334  {0x1A, 0, 0, 0, 0},
9335  {0x1B, 0, 0, 0, 0},
9336  {0x1C, 0, 0, 0, 0},
9337  {0x1D, 0, 0, 0, 0},
9338  {0x1E, 0, 0, 0, 0},
9339  {0x1F, 0, 0, 0, 0},
9340  {0x20, 0x3, 0x3, 0, 0},
9341  {0x21, 0, 0, 0, 0},
9342  {0x22, 0, 0, 0, 0},
9343  {0x23, 0x90, 0x90, 0, 0},
9344  {0x24, 0x55, 0x55, 0, 0},
9345  {0x25, 0x15, 0x15, 0, 0},
9346  {0x26, 0x5, 0x5, 0, 0},
9347  {0x27, 0x15, 0x15, 0, 0},
9348  {0x28, 0x5, 0x5, 0, 0},
9349  {0x29, 0x20, 0x20, 0, 0},
9350  {0x2A, 0x11, 0x11, 0, 0},
9351  {0x2B, 0x90, 0x90, 0, 0},
9352  {0x2C, 0, 0, 0, 0},
9353  {0x2D, 0x88, 0x88, 0, 0},
9354  {0x2E, 0x32, 0x32, 0, 0},
9355  {0x2F, 0x77, 0x77, 0, 0},
9356  {0x30, 0x17, 0x17, 1, 1},
9357  {0x31, 0xff, 0xff, 1, 1},
9358  {0x32, 0x20, 0x20, 0, 0},
9359  {0x33, 0, 0, 0, 0},
9360  {0x34, 0x88, 0x88, 0, 0},
9361  {0x35, 0x32, 0x32, 0, 0},
9362  {0x36, 0x77, 0x77, 0, 0},
9363  {0x37, 0x17, 0x17, 1, 1},
9364  {0x38, 0xf0, 0xf0, 1, 1},
9365  {0x39, 0x20, 0x20, 0, 0},
9366  {0x3A, 0x8, 0x8, 0, 0},
9367  {0x3B, 0x55, 0x55, 1, 1},
9368  {0x3C, 0, 0, 0, 0},
9369  {0x3D, 0x88, 0x88, 1, 1},
9370  {0x3E, 0, 0, 0, 0},
9371  {0x3F, 0, 0, 1, 1},
9372  {0x40, 0x7, 0x7, 1, 1},
9373  {0x41, 0x6, 0x6, 0, 0},
9374  {0x42, 0x4, 0x4, 0, 0},
9375  {0x43, 0, 0, 0, 0},
9376  {0x44, 0x8, 0x8, 0, 0},
9377  {0x45, 0x55, 0x55, 1, 1},
9378  {0x46, 0, 0, 0, 0},
9379  {0x47, 0x11, 0x11, 0, 0},
9380  {0x48, 0, 0, 0, 0},
9381  {0x49, 0, 0, 1, 1},
9382  {0x4A, 0x7, 0x7, 0, 0},
9383  {0x4B, 0x6, 0x6, 0, 0},
9384  {0x4C, 0x4, 0x4, 0, 0},
9385  {0x4D, 0, 0, 0, 0},
9386  {0x4E, 0, 0, 0, 0},
9387  {0x4F, 0x26, 0x26, 1, 1},
9388  {0x50, 0x26, 0x26, 1, 1},
9389  {0x51, 0xf, 0xf, 1, 1},
9390  {0x52, 0xf, 0xf, 1, 1},
9391  {0x53, 0x44, 0x44, 0, 0},
9392  {0x54, 0, 0, 0, 0},
9393  {0x55, 0, 0, 0, 0},
9394  {0x56, 0x8, 0x8, 0, 0},
9395  {0x57, 0x8, 0x8, 0, 0},
9396  {0x58, 0x7, 0x7, 0, 0},
9397  {0x59, 0x22, 0x22, 0, 0},
9398  {0x5A, 0x22, 0x22, 0, 0},
9399  {0x5B, 0x2, 0x2, 0, 0},
9400  {0x5C, 0x4, 0x4, 1, 1},
9401  {0x5D, 0x7, 0x7, 0, 0},
9402  {0x5E, 0x55, 0x55, 0, 0},
9403  {0x5F, 0x23, 0x23, 0, 0},
9404  {0x60, 0x41, 0x41, 0, 0},
9405  {0x61, 0x1, 0x1, 0, 0},
9406  {0x62, 0xa, 0xa, 0, 0},
9407  {0x63, 0, 0, 0, 0},
9408  {0x64, 0, 0, 0, 0},
9409  {0x65, 0, 0, 0, 0},
9410  {0x66, 0, 0, 0, 0},
9411  {0x67, 0, 0, 0, 0},
9412  {0x68, 0, 0, 0, 0},
9413  {0x69, 0, 0, 0, 0},
9414  {0x6A, 0, 0, 0, 0},
9415  {0x6B, 0xc, 0xc, 0, 0},
9416  {0x6C, 0, 0, 0, 0},
9417  {0x6D, 0, 0, 0, 0},
9418  {0x6E, 0, 0, 0, 0},
9419  {0x6F, 0, 0, 0, 0},
9420  {0x70, 0, 0, 0, 0},
9421  {0x71, 0, 0, 0, 0},
9422  {0x72, 0x22, 0x22, 0, 0},
9423  {0x73, 0x22, 0x22, 0, 0},
9424  {0x74, 0, 0, 1, 1},
9425  {0x75, 0xa, 0xa, 0, 0},
9426  {0x76, 0x1, 0x1, 0, 0},
9427  {0x77, 0x22, 0x22, 0, 0},
9428  {0x78, 0x30, 0x30, 0, 0},
9429  {0x79, 0, 0, 0, 0},
9430  {0x7A, 0, 0, 0, 0},
9431  {0x7B, 0, 0, 0, 0},
9432  {0x7C, 0, 0, 0, 0},
9433  {0x7D, 0, 0, 0, 0},
9434  {0x7E, 0, 0, 0, 0},
9435  {0x7F, 0, 0, 0, 0},
9436  {0x80, 0, 0, 0, 0},
9437  {0x81, 0, 0, 0, 0},
9438  {0x82, 0, 0, 0, 0},
9439  {0x83, 0, 0, 0, 0},
9440  {0x84, 0, 0, 0, 0},
9441  {0x85, 0, 0, 0, 0},
9442  {0x86, 0, 0, 0, 0},
9443  {0x87, 0, 0, 0, 0},
9444  {0x88, 0, 0, 0, 0},
9445  {0x89, 0, 0, 0, 0},
9446  {0x8A, 0, 0, 0, 0},
9447  {0x8B, 0, 0, 0, 0},
9448  {0x8C, 0, 0, 0, 0},
9449  {0x8D, 0, 0, 0, 0},
9450  {0x8E, 0, 0, 0, 0},
9451  {0x8F, 0, 0, 0, 0},
9452  {0x90, 0, 0, 0, 0},
9453  {0x91, 0, 0, 0, 0},
9454  {0x92, 0, 0, 0, 0},
9455  {0x93, 0, 0, 0, 0},
9456  {0x94, 0, 0, 0, 0},
9457  {0xFFFF, 0, 0, 0, 0}
9458 };
9459 
9460 static struct radio_regs regs_SYN_2056_rev6[] = {
9461  {0x02, 0, 0, 0, 0},
9462  {0x03, 0, 0, 0, 0},
9463  {0x04, 0, 0, 0, 0},
9464  {0x05, 0, 0, 0, 0},
9465  {0x06, 0, 0, 0, 0},
9466  {0x07, 0, 0, 0, 0},
9467  {0x08, 0, 0, 0, 0},
9468  {0x09, 0x1, 0x1, 0, 0},
9469  {0x0A, 0, 0, 0, 0},
9470  {0x0B, 0, 0, 0, 0},
9471  {0x0C, 0, 0, 0, 0},
9472  {0x0D, 0, 0, 0, 0},
9473  {0x0E, 0, 0, 0, 0},
9474  {0x0F, 0, 0, 0, 0},
9475  {0x10, 0, 0, 0, 0},
9476  {0x11, 0, 0, 0, 0},
9477  {0x12, 0, 0, 0, 0},
9478  {0x13, 0, 0, 0, 0},
9479  {0x14, 0, 0, 0, 0},
9480  {0x15, 0, 0, 0, 0},
9481  {0x16, 0, 0, 0, 0},
9482  {0x17, 0, 0, 0, 0},
9483  {0x18, 0, 0, 0, 0},
9484  {0x19, 0, 0, 0, 0},
9485  {0x1A, 0, 0, 0, 0},
9486  {0x1B, 0, 0, 0, 0},
9487  {0x1C, 0, 0, 0, 0},
9488  {0x1D, 0, 0, 0, 0},
9489  {0x1E, 0, 0, 0, 0},
9490  {0x1F, 0, 0, 0, 0},
9491  {0x20, 0, 0, 0, 0},
9492  {0x21, 0, 0, 0, 0},
9493  {0x22, 0x60, 0x60, 0, 0},
9494  {0x23, 0x6, 0x6, 0, 0},
9495  {0x24, 0xc, 0xc, 0, 0},
9496  {0x25, 0, 0, 0, 0},
9497  {0x26, 0, 0, 0, 0},
9498  {0x27, 0, 0, 0, 0},
9499  {0x28, 0x1, 0x1, 0, 0},
9500  {0x29, 0, 0, 0, 0},
9501  {0x2A, 0, 0, 0, 0},
9502  {0x2B, 0, 0, 0, 0},
9503  {0x2C, 0, 0, 0, 0},
9504  {0x2D, 0, 0, 0, 0},
9505  {0x2E, 0, 0, 0, 0},
9506  {0x2F, 0x1f, 0x1f, 0, 0},
9507  {0x30, 0x15, 0x15, 0, 0},
9508  {0x31, 0xf, 0xf, 0, 0},
9509  {0x32, 0, 0, 0, 0},
9510  {0x33, 0, 0, 0, 0},
9511  {0x34, 0, 0, 0, 0},
9512  {0x35, 0, 0, 0, 0},
9513  {0x36, 0, 0, 0, 0},
9514  {0x37, 0, 0, 0, 0},
9515  {0x38, 0, 0, 0, 0},
9516  {0x39, 0, 0, 0, 0},
9517  {0x3A, 0, 0, 0, 0},
9518  {0x3B, 0, 0, 0, 0},
9519  {0x3C, 0x13, 0x13, 0, 0},
9520  {0x3D, 0xf, 0xf, 0, 0},
9521  {0x3E, 0x18, 0x18, 0, 0},
9522  {0x3F, 0, 0, 0, 0},
9523  {0x40, 0, 0, 0, 0},
9524  {0x41, 0x20, 0x20, 0, 0},
9525  {0x42, 0x20, 0x20, 0, 0},
9526  {0x43, 0, 0, 0, 0},
9527  {0x44, 0x77, 0x77, 0, 0},
9528  {0x45, 0x7, 0x7, 0, 0},
9529  {0x46, 0x1, 0x1, 0, 0},
9530  {0x47, 0x4, 0x4, 0, 0},
9531  {0x48, 0xf, 0xf, 0, 0},
9532  {0x49, 0x30, 0x30, 0, 0},
9533  {0x4A, 0x32, 0x32, 0, 0},
9534  {0x4B, 0xd, 0xd, 0, 0},
9535  {0x4C, 0xd, 0xd, 0, 0},
9536  {0x4D, 0x4, 0x4, 0, 0},
9537  {0x4E, 0x6, 0x6, 0, 0},
9538  {0x4F, 0x1, 0x1, 0, 0},
9539  {0x50, 0x1c, 0x1c, 0, 0},
9540  {0x51, 0x2, 0x2, 0, 0},
9541  {0x52, 0x2, 0x2, 0, 0},
9542  {0x53, 0xf7, 0xf7, 1, 1},
9543  {0x54, 0xb4, 0xb4, 0, 0},
9544  {0x55, 0xd2, 0xd2, 0, 0},
9545  {0x56, 0, 0, 0, 0},
9546  {0x57, 0, 0, 0, 0},
9547  {0x58, 0x4, 0x4, 0, 0},
9548  {0x59, 0x96, 0x96, 0, 0},
9549  {0x5A, 0x3e, 0x3e, 0, 0},
9550  {0x5B, 0x3e, 0x3e, 0, 0},
9551  {0x5C, 0x13, 0x13, 0, 0},
9552  {0x5D, 0x2, 0x2, 0, 0},
9553  {0x5E, 0, 0, 0, 0},
9554  {0x5F, 0x7, 0x7, 0, 0},
9555  {0x60, 0x7, 0x7, 1, 1},
9556  {0x61, 0x8, 0x8, 0, 0},
9557  {0x62, 0x3, 0x3, 0, 0},
9558  {0x63, 0, 0, 0, 0},
9559  {0x64, 0, 0, 0, 0},
9560  {0x65, 0, 0, 0, 0},
9561  {0x66, 0, 0, 0, 0},
9562  {0x67, 0, 0, 0, 0},
9563  {0x68, 0x40, 0x40, 0, 0},
9564  {0x69, 0, 0, 0, 0},
9565  {0x6A, 0, 0, 0, 0},
9566  {0x6B, 0, 0, 0, 0},
9567  {0x6C, 0, 0, 0, 0},
9568  {0x6D, 0x1, 0x1, 0, 0},
9569  {0x6E, 0, 0, 0, 0},
9570  {0x6F, 0, 0, 0, 0},
9571  {0x70, 0x60, 0x60, 0, 0},
9572  {0x71, 0x66, 0x66, 0, 0},
9573  {0x72, 0xc, 0xc, 0, 0},
9574  {0x73, 0x66, 0x66, 0, 0},
9575  {0x74, 0x8f, 0x8f, 1, 1},
9576  {0x75, 0, 0, 0, 0},
9577  {0x76, 0xcc, 0xcc, 0, 0},
9578  {0x77, 0x1, 0x1, 0, 0},
9579  {0x78, 0x66, 0x66, 0, 0},
9580  {0x79, 0x66, 0x66, 0, 0},
9581  {0x7A, 0, 0, 0, 0},
9582  {0x7B, 0, 0, 0, 0},
9583  {0x7C, 0, 0, 0, 0},
9584  {0x7D, 0, 0, 0, 0},
9585  {0x7E, 0, 0, 0, 0},
9586  {0x7F, 0, 0, 0, 0},
9587  {0x80, 0, 0, 0, 0},
9588  {0x81, 0, 0, 0, 0},
9589  {0x82, 0, 0, 0, 0},
9590  {0x83, 0, 0, 0, 0},
9591  {0x84, 0, 0, 0, 0},
9592  {0x85, 0xff, 0xff, 0, 0},
9593  {0x86, 0, 0, 0, 0},
9594  {0x87, 0, 0, 0, 0},
9595  {0x88, 0, 0, 0, 0},
9596  {0x89, 0, 0, 0, 0},
9597  {0x8A, 0, 0, 0, 0},
9598  {0x8B, 0, 0, 0, 0},
9599  {0x8C, 0, 0, 0, 0},
9600  {0x8D, 0, 0, 0, 0},
9601  {0x8E, 0, 0, 0, 0},
9602  {0x8F, 0, 0, 0, 0},
9603  {0x90, 0, 0, 0, 0},
9604  {0x91, 0, 0, 0, 0},
9605  {0x92, 0, 0, 0, 0},
9606  {0x93, 0, 0, 0, 0},
9607  {0x94, 0, 0, 0, 0},
9608  {0x95, 0, 0, 0, 0},
9609  {0x96, 0, 0, 0, 0},
9610  {0x97, 0, 0, 0, 0},
9611  {0x98, 0, 0, 0, 0},
9612  {0x99, 0, 0, 0, 0},
9613  {0x9A, 0, 0, 0, 0},
9614  {0x9B, 0, 0, 0, 0},
9615  {0x9C, 0, 0, 0, 0},
9616  {0x9D, 0, 0, 0, 0},
9617  {0x9E, 0, 0, 0, 0},
9618  {0x9F, 0x6, 0x6, 0, 0},
9619  {0xA0, 0x66, 0x66, 0, 0},
9620  {0xA1, 0x66, 0x66, 0, 0},
9621  {0xA2, 0x66, 0x66, 0, 0},
9622  {0xA3, 0x66, 0x66, 0, 0},
9623  {0xA4, 0x66, 0x66, 0, 0},
9624  {0xA5, 0x66, 0x66, 0, 0},
9625  {0xA6, 0x66, 0x66, 0, 0},
9626  {0xA7, 0x66, 0x66, 0, 0},
9627  {0xA8, 0x66, 0x66, 0, 0},
9628  {0xA9, 0x66, 0x66, 0, 0},
9629  {0xAA, 0x66, 0x66, 0, 0},
9630  {0xAB, 0x66, 0x66, 0, 0},
9631  {0xAC, 0x66, 0x66, 0, 0},
9632  {0xAD, 0x66, 0x66, 0, 0},
9633  {0xAE, 0x66, 0x66, 0, 0},
9634  {0xAF, 0x66, 0x66, 0, 0},
9635  {0xB0, 0x66, 0x66, 0, 0},
9636  {0xB1, 0x66, 0x66, 0, 0},
9637  {0xB2, 0x66, 0x66, 0, 0},
9638  {0xB3, 0xa, 0xa, 0, 0},
9639  {0xB4, 0, 0, 0, 0},
9640  {0xB5, 0, 0, 0, 0},
9641  {0xB6, 0, 0, 0, 0},
9642  {0xFFFF, 0, 0, 0, 0}
9643 };
9644 
9645 static struct radio_regs regs_TX_2056_rev6[] = {
9646  {0x02, 0, 0, 0, 0},
9647  {0x03, 0, 0, 0, 0},
9648  {0x04, 0, 0, 0, 0},
9649  {0x05, 0, 0, 0, 0},
9650  {0x06, 0, 0, 0, 0},
9651  {0x07, 0, 0, 0, 0},
9652  {0x08, 0, 0, 0, 0},
9653  {0x09, 0, 0, 0, 0},
9654  {0x0A, 0, 0, 0, 0},
9655  {0x0B, 0, 0, 0, 0},
9656  {0x0C, 0, 0, 0, 0},
9657  {0x0D, 0, 0, 0, 0},
9658  {0x0E, 0, 0, 0, 0},
9659  {0x0F, 0, 0, 0, 0},
9660  {0x10, 0, 0, 0, 0},
9661  {0x11, 0, 0, 0, 0},
9662  {0x12, 0, 0, 0, 0},
9663  {0x13, 0, 0, 0, 0},
9664  {0x14, 0, 0, 0, 0},
9665  {0x15, 0, 0, 0, 0},
9666  {0x16, 0, 0, 0, 0},
9667  {0x17, 0, 0, 0, 0},
9668  {0x18, 0, 0, 0, 0},
9669  {0x19, 0, 0, 0, 0},
9670  {0x1A, 0, 0, 0, 0},
9671  {0x1B, 0, 0, 0, 0},
9672  {0x1C, 0, 0, 0, 0},
9673  {0x1D, 0, 0, 0, 0},
9674  {0x1E, 0, 0, 0, 0},
9675  {0x1F, 0, 0, 0, 0},
9676  {0x20, 0, 0, 0, 0},
9677  {0x21, 0x88, 0x88, 0, 0},
9678  {0x22, 0x88, 0x88, 0, 0},
9679  {0x23, 0x88, 0x88, 0, 0},
9680  {0x24, 0x88, 0x88, 0, 0},
9681  {0x25, 0xc, 0xc, 0, 0},
9682  {0x26, 0, 0, 0, 0},
9683  {0x27, 0x3, 0x3, 0, 0},
9684  {0x28, 0, 0, 0, 0},
9685  {0x29, 0x3, 0x3, 0, 0},
9686  {0x2A, 0x37, 0x37, 0, 0},
9687  {0x2B, 0x3, 0x3, 0, 0},
9688  {0x2C, 0, 0, 0, 0},
9689  {0x2D, 0, 0, 0, 0},
9690  {0x2E, 0x1, 0x1, 0, 0},
9691  {0x2F, 0x1, 0x1, 0, 0},
9692  {0x30, 0, 0, 0, 0},
9693  {0x31, 0, 0, 0, 0},
9694  {0x32, 0, 0, 0, 0},
9695  {0x33, 0x11, 0x11, 0, 0},
9696  {0x34, 0xee, 0xee, 1, 1},
9697  {0x35, 0, 0, 0, 0},
9698  {0x36, 0, 0, 0, 0},
9699  {0x37, 0x3, 0x3, 0, 0},
9700  {0x38, 0x50, 0x50, 1, 1},
9701  {0x39, 0, 0, 0, 0},
9702  {0x3A, 0x50, 0x50, 1, 1},
9703  {0x3B, 0, 0, 0, 0},
9704  {0x3C, 0x6e, 0x6e, 0, 0},
9705  {0x3D, 0xf0, 0xf0, 1, 1},
9706  {0x3E, 0, 0, 0, 0},
9707  {0x3F, 0, 0, 0, 0},
9708  {0x40, 0, 0, 0, 0},
9709  {0x41, 0x3, 0x3, 0, 0},
9710  {0x42, 0x3, 0x3, 0, 0},
9711  {0x43, 0, 0, 0, 0},
9712  {0x44, 0x1e, 0x1e, 0, 0},
9713  {0x45, 0, 0, 0, 0},
9714  {0x46, 0x6e, 0x6e, 0, 0},
9715  {0x47, 0xf0, 0xf0, 1, 1},
9716  {0x48, 0, 0, 0, 0},
9717  {0x49, 0x2, 0x2, 0, 0},
9718  {0x4A, 0xff, 0xff, 1, 1},
9719  {0x4B, 0xc, 0xc, 0, 0},
9720  {0x4C, 0, 0, 0, 0},
9721  {0x4D, 0x38, 0x38, 0, 0},
9722  {0x4E, 0x70, 0x70, 1, 1},
9723  {0x4F, 0x2, 0x2, 0, 0},
9724  {0x50, 0x88, 0x88, 0, 0},
9725  {0x51, 0xc, 0xc, 0, 0},
9726  {0x52, 0, 0, 0, 0},
9727  {0x53, 0x8, 0x8, 0, 0},
9728  {0x54, 0x70, 0x70, 1, 1},
9729  {0x55, 0x2, 0x2, 0, 0},
9730  {0x56, 0xff, 0xff, 1, 1},
9731  {0x57, 0, 0, 0, 0},
9732  {0x58, 0x83, 0x83, 0, 0},
9733  {0x59, 0x77, 0x77, 1, 1},
9734  {0x5A, 0, 0, 0, 0},
9735  {0x5B, 0x2, 0x2, 0, 0},
9736  {0x5C, 0x88, 0x88, 0, 0},
9737  {0x5D, 0, 0, 0, 0},
9738  {0x5E, 0x8, 0x8, 0, 0},
9739  {0x5F, 0x77, 0x77, 1, 1},
9740  {0x60, 0x1, 0x1, 0, 0},
9741  {0x61, 0, 0, 0, 0},
9742  {0x62, 0x7, 0x7, 0, 0},
9743  {0x63, 0, 0, 0, 0},
9744  {0x64, 0x7, 0x7, 0, 0},
9745  {0x65, 0, 0, 0, 0},
9746  {0x66, 0, 0, 0, 0},
9747  {0x67, 0, 0, 1, 1},
9748  {0x68, 0, 0, 0, 0},
9749  {0x69, 0xa, 0xa, 0, 0},
9750  {0x6A, 0, 0, 0, 0},
9751  {0x6B, 0, 0, 0, 0},
9752  {0x6C, 0, 0, 0, 0},
9753  {0x6D, 0, 0, 0, 0},
9754  {0x6E, 0, 0, 0, 0},
9755  {0x6F, 0, 0, 0, 0},
9756  {0x70, 0, 0, 0, 0},
9757  {0x71, 0x2, 0x2, 0, 0},
9758  {0x72, 0, 0, 0, 0},
9759  {0x73, 0, 0, 0, 0},
9760  {0x74, 0xe, 0xe, 0, 0},
9761  {0x75, 0xe, 0xe, 0, 0},
9762  {0x76, 0xe, 0xe, 0, 0},
9763  {0x77, 0x13, 0x13, 0, 0},
9764  {0x78, 0x13, 0x13, 0, 0},
9765  {0x79, 0x1b, 0x1b, 0, 0},
9766  {0x7A, 0x1b, 0x1b, 0, 0},
9767  {0x7B, 0x55, 0x55, 0, 0},
9768  {0x7C, 0x5b, 0x5b, 0, 0},
9769  {0x7D, 0x30, 0x30, 1, 1},
9770  {0x7E, 0, 0, 0, 0},
9771  {0x7F, 0, 0, 0, 0},
9772  {0x80, 0, 0, 0, 0},
9773  {0x81, 0, 0, 0, 0},
9774  {0x82, 0, 0, 0, 0},
9775  {0x83, 0, 0, 0, 0},
9776  {0x84, 0, 0, 0, 0},
9777  {0x85, 0, 0, 0, 0},
9778  {0x86, 0, 0, 0, 0},
9779  {0x87, 0, 0, 0, 0},
9780  {0x88, 0, 0, 0, 0},
9781  {0x89, 0, 0, 0, 0},
9782  {0x8A, 0, 0, 0, 0},
9783  {0x8B, 0, 0, 0, 0},
9784  {0x8C, 0, 0, 0, 0},
9785  {0x8D, 0, 0, 0, 0},
9786  {0x8E, 0, 0, 0, 0},
9787  {0x8F, 0, 0, 0, 0},
9788  {0x90, 0, 0, 0, 0},
9789  {0x91, 0, 0, 0, 0},
9790  {0x92, 0, 0, 0, 0},
9791  {0x93, 0x70, 0x70, 0, 0},
9792  {0x94, 0x70, 0x70, 0, 0},
9793  {0x95, 0x70, 0x70, 0, 0},
9794  {0x96, 0x70, 0x70, 0, 0},
9795  {0x97, 0x70, 0x70, 0, 0},
9796  {0x98, 0x70, 0x70, 0, 0},
9797  {0x99, 0x70, 0x70, 0, 0},
9798  {0x9A, 0x70, 0x70, 0, 0},
9799  {0xFFFF, 0, 0, 0, 0}
9800 };
9801 
9802 static struct radio_regs regs_RX_2056_rev6[] = {
9803  {0x02, 0, 0, 0, 0},
9804  {0x03, 0, 0, 0, 0},
9805  {0x04, 0, 0, 0, 0},
9806  {0x05, 0, 0, 0, 0},
9807  {0x06, 0, 0, 0, 0},
9808  {0x07, 0, 0, 0, 0},
9809  {0x08, 0, 0, 0, 0},
9810  {0x09, 0, 0, 0, 0},
9811  {0x0A, 0, 0, 0, 0},
9812  {0x0B, 0, 0, 0, 0},
9813  {0x0C, 0, 0, 0, 0},
9814  {0x0D, 0, 0, 0, 0},
9815  {0x0E, 0, 0, 0, 0},
9816  {0x0F, 0, 0, 0, 0},
9817  {0x10, 0, 0, 0, 0},
9818  {0x11, 0, 0, 0, 0},
9819  {0x12, 0, 0, 0, 0},
9820  {0x13, 0, 0, 0, 0},
9821  {0x14, 0, 0, 0, 0},
9822  {0x15, 0, 0, 0, 0},
9823  {0x16, 0, 0, 0, 0},
9824  {0x17, 0, 0, 0, 0},
9825  {0x18, 0, 0, 0, 0},
9826  {0x19, 0, 0, 0, 0},
9827  {0x1A, 0, 0, 0, 0},
9828  {0x1B, 0, 0, 0, 0},
9829  {0x1C, 0, 0, 0, 0},
9830  {0x1D, 0, 0, 0, 0},
9831  {0x1E, 0, 0, 0, 0},
9832  {0x1F, 0, 0, 0, 0},
9833  {0x20, 0x3, 0x3, 0, 0},
9834  {0x21, 0, 0, 0, 0},
9835  {0x22, 0, 0, 0, 0},
9836  {0x23, 0x90, 0x90, 0, 0},
9837  {0x24, 0x55, 0x55, 0, 0},
9838  {0x25, 0x15, 0x15, 0, 0},
9839  {0x26, 0x5, 0x5, 0, 0},
9840  {0x27, 0x15, 0x15, 0, 0},
9841  {0x28, 0x5, 0x5, 0, 0},
9842  {0x29, 0x20, 0x20, 0, 0},
9843  {0x2A, 0x11, 0x11, 0, 0},
9844  {0x2B, 0x90, 0x90, 0, 0},
9845  {0x2C, 0, 0, 0, 0},
9846  {0x2D, 0x88, 0x88, 0, 0},
9847  {0x2E, 0x32, 0x32, 0, 0},
9848  {0x2F, 0x77, 0x77, 0, 0},
9849  {0x30, 0x17, 0x17, 1, 1},
9850  {0x31, 0xff, 0xff, 1, 1},
9851  {0x32, 0x20, 0x20, 0, 0},
9852  {0x33, 0, 0, 0, 0},
9853  {0x34, 0x88, 0x88, 0, 0},
9854  {0x35, 0x32, 0x32, 0, 0},
9855  {0x36, 0x77, 0x77, 0, 0},
9856  {0x37, 0x17, 0x17, 1, 1},
9857  {0x38, 0xf0, 0xf0, 1, 1},
9858  {0x39, 0x20, 0x20, 0, 0},
9859  {0x3A, 0x8, 0x8, 0, 0},
9860  {0x3B, 0x55, 0x55, 1, 1},
9861  {0x3C, 0, 0, 0, 0},
9862  {0x3D, 0x88, 0x88, 1, 1},
9863  {0x3E, 0, 0, 0, 0},
9864  {0x3F, 0x44, 0x44, 0, 0},
9865  {0x40, 0x7, 0x7, 1, 1},
9866  {0x41, 0x6, 0x6, 0, 0},
9867  {0x42, 0x4, 0x4, 0, 0},
9868  {0x43, 0, 0, 0, 0},
9869  {0x44, 0x8, 0x8, 0, 0},
9870  {0x45, 0x55, 0x55, 1, 1},
9871  {0x46, 0, 0, 0, 0},
9872  {0x47, 0x11, 0x11, 0, 0},
9873  {0x48, 0, 0, 0, 0},
9874  {0x49, 0x44, 0x44, 0, 0},
9875  {0x4A, 0x7, 0x7, 0, 0},
9876  {0x4B, 0x6, 0x6, 0, 0},
9877  {0x4C, 0x4, 0x4, 0, 0},
9878  {0x4D, 0, 0, 0, 0},
9879  {0x4E, 0, 0, 0, 0},
9880  {0x4F, 0x26, 0x26, 1, 1},
9881  {0x50, 0x26, 0x26, 1, 1},
9882  {0x51, 0xf, 0xf, 1, 1},
9883  {0x52, 0xf, 0xf, 1, 1},
9884  {0x53, 0x44, 0x44, 0, 0},
9885  {0x54, 0, 0, 0, 0},
9886  {0x55, 0, 0, 0, 0},
9887  {0x56, 0x8, 0x8, 0, 0},
9888  {0x57, 0x8, 0x8, 0, 0},
9889  {0x58, 0x7, 0x7, 0, 0},
9890  {0x59, 0x22, 0x22, 0, 0},
9891  {0x5A, 0x22, 0x22, 0, 0},
9892  {0x5B, 0x2, 0x2, 0, 0},
9893  {0x5C, 0x4, 0x4, 1, 1},
9894  {0x5D, 0x7, 0x7, 0, 0},
9895  {0x5E, 0x55, 0x55, 0, 0},
9896  {0x5F, 0x23, 0x23, 0, 0},
9897  {0x60, 0x41, 0x41, 0, 0},
9898  {0x61, 0x1, 0x1, 0, 0},
9899  {0x62, 0xa, 0xa, 0, 0},
9900  {0x63, 0, 0, 0, 0},
9901  {0x64, 0, 0, 0, 0},
9902  {0x65, 0, 0, 0, 0},
9903  {0x66, 0, 0, 0, 0},
9904  {0x67, 0, 0, 0, 0},
9905  {0x68, 0, 0, 0, 0},
9906  {0x69, 0, 0, 0, 0},
9907  {0x6A, 0, 0, 0, 0},
9908  {0x6B, 0xc, 0xc, 0, 0},
9909  {0x6C, 0, 0, 0, 0},
9910  {0x6D, 0, 0, 0, 0},
9911  {0x6E, 0, 0, 0, 0},
9912  {0x6F, 0, 0, 0, 0},
9913  {0x70, 0, 0, 0, 0},
9914  {0x71, 0, 0, 0, 0},
9915  {0x72, 0x22, 0x22, 0, 0},
9916  {0x73, 0x22, 0x22, 0, 0},
9917  {0x74, 0, 0, 1, 1},
9918  {0x75, 0xa, 0xa, 0, 0},
9919  {0x76, 0x1, 0x1, 0, 0},
9920  {0x77, 0x22, 0x22, 0, 0},
9921  {0x78, 0x30, 0x30, 0, 0},
9922  {0x79, 0, 0, 0, 0},
9923  {0x7A, 0, 0, 0, 0},
9924  {0x7B, 0, 0, 0, 0},
9925  {0x7C, 0, 0, 0, 0},
9926  {0x7D, 0x5, 0x5, 1, 1},
9927  {0x7E, 0, 0, 0, 0},
9928  {0x7F, 0, 0, 0, 0},
9929  {0x80, 0, 0, 0, 0},
9930  {0x81, 0, 0, 0, 0},
9931  {0x82, 0, 0, 0, 0},
9932  {0x83, 0, 0, 0, 0},
9933  {0x84, 0, 0, 0, 0},
9934  {0x85, 0, 0, 0, 0},
9935  {0x86, 0, 0, 0, 0},
9936  {0x87, 0, 0, 0, 0},
9937  {0x88, 0, 0, 0, 0},
9938  {0x89, 0, 0, 0, 0},
9939  {0x8A, 0, 0, 0, 0},
9940  {0x8B, 0, 0, 0, 0},
9941  {0x8C, 0, 0, 0, 0},
9942  {0x8D, 0, 0, 0, 0},
9943  {0x8E, 0, 0, 0, 0},
9944  {0x8F, 0, 0, 0, 0},
9945  {0x90, 0, 0, 0, 0},
9946  {0x91, 0, 0, 0, 0},
9947  {0x92, 0, 0, 0, 0},
9948  {0x93, 0, 0, 0, 0},
9949  {0x94, 0, 0, 0, 0},
9950  {0xFFFF, 0, 0, 0, 0}
9951 };
9952 
9953 static struct radio_regs regs_SYN_2056_rev7[] = {
9954  {0x02, 0, 0, 0, 0},
9955  {0x03, 0, 0, 0, 0},
9956  {0x04, 0, 0, 0, 0},
9957  {0x05, 0, 0, 0, 0},
9958  {0x06, 0, 0, 0, 0},
9959  {0x07, 0, 0, 0, 0},
9960  {0x08, 0, 0, 0, 0},
9961  {0x09, 0x1, 0x1, 0, 0},
9962  {0x0A, 0, 0, 0, 0},
9963  {0x0B, 0, 0, 0, 0},
9964  {0x0C, 0, 0, 0, 0},
9965  {0x0D, 0, 0, 0, 0},
9966  {0x0E, 0, 0, 0, 0},
9967  {0x0F, 0, 0, 0, 0},
9968  {0x10, 0, 0, 0, 0},
9969  {0x11, 0, 0, 0, 0},
9970  {0x12, 0, 0, 0, 0},
9971  {0x13, 0, 0, 0, 0},
9972  {0x14, 0, 0, 0, 0},
9973  {0x15, 0, 0, 0, 0},
9974  {0x16, 0, 0, 0, 0},
9975  {0x17, 0, 0, 0, 0},
9976  {0x18, 0, 0, 0, 0},
9977  {0x19, 0, 0, 0, 0},
9978  {0x1A, 0, 0, 0, 0},
9979  {0x1B, 0, 0, 0, 0},
9980  {0x1C, 0, 0, 0, 0},
9981  {0x1D, 0, 0, 0, 0},
9982  {0x1E, 0, 0, 0, 0},
9983  {0x1F, 0, 0, 0, 0},
9984  {0x20, 0, 0, 0, 0},
9985  {0x21, 0, 0, 0, 0},
9986  {0x22, 0x60, 0x60, 0, 0},
9987  {0x23, 0x6, 0x6, 0, 0},
9988  {0x24, 0xc, 0xc, 0, 0},
9989  {0x25, 0, 0, 0, 0},
9990  {0x26, 0, 0, 0, 0},
9991  {0x27, 0, 0, 0, 0},
9992  {0x28, 0x1, 0x1, 0, 0},
9993  {0x29, 0, 0, 0, 0},
9994  {0x2A, 0, 0, 0, 0},
9995  {0x2B, 0, 0, 0, 0},
9996  {0x2C, 0, 0, 0, 0},
9997  {0x2D, 0, 0, 0, 0},
9998  {0x2E, 0, 0, 0, 0},
9999  {0x2F, 0x1f, 0x1f, 0, 0},
10000  {0x30, 0x15, 0x15, 0, 0},
10001  {0x31, 0xf, 0xf, 0, 0},
10002  {0x32, 0, 0, 0, 0},
10003  {0x33, 0, 0, 0, 0},
10004  {0x34, 0, 0, 0, 0},
10005  {0x35, 0, 0, 0, 0},
10006  {0x36, 0, 0, 0, 0},
10007  {0x37, 0, 0, 0, 0},
10008  {0x38, 0, 0, 0, 0},
10009  {0x39, 0, 0, 0, 0},
10010  {0x3A, 0, 0, 0, 0},
10011  {0x3B, 0, 0, 0, 0},
10012  {0x3C, 0x13, 0x13, 0, 0},
10013  {0x3D, 0xf, 0xf, 0, 0},
10014  {0x3E, 0x18, 0x18, 0, 0},
10015  {0x3F, 0, 0, 0, 0},
10016  {0x40, 0, 0, 0, 0},
10017  {0x41, 0x20, 0x20, 0, 0},
10018  {0x42, 0x20, 0x20, 0, 0},
10019  {0x43, 0, 0, 0, 0},
10020  {0x44, 0x77, 0x77, 0, 0},
10021  {0x45, 0x7, 0x7, 0, 0},
10022  {0x46, 0x1, 0x1, 0, 0},
10023  {0x47, 0x4, 0x4, 0, 0},
10024  {0x48, 0xf, 0xf, 0, 0},
10025  {0x49, 0x30, 0x30, 0, 0},
10026  {0x4A, 0x32, 0x32, 0, 0},
10027  {0x4B, 0xd, 0xd, 0, 0},
10028  {0x4C, 0xd, 0xd, 0, 0},
10029  {0x4D, 0x4, 0x4, 0, 0},
10030  {0x4E, 0x6, 0x6, 0, 0},
10031  {0x4F, 0x1, 0x1, 0, 0},
10032  {0x50, 0x1c, 0x1c, 0, 0},
10033  {0x51, 0x2, 0x2, 0, 0},
10034  {0x52, 0x2, 0x2, 0, 0},
10035  {0x53, 0xf7, 0xf7, 1, 1},
10036  {0x54, 0xb4, 0xb4, 0, 0},
10037  {0x55, 0xd2, 0xd2, 0, 0},
10038  {0x56, 0, 0, 0, 0},
10039  {0x57, 0, 0, 0, 0},
10040  {0x58, 0x4, 0x4, 0, 0},
10041  {0x59, 0x96, 0x96, 0, 0},
10042  {0x5A, 0x3e, 0x3e, 0, 0},
10043  {0x5B, 0x3e, 0x3e, 0, 0},
10044  {0x5C, 0x13, 0x13, 0, 0},
10045  {0x5D, 0x2, 0x2, 0, 0},
10046  {0x5E, 0, 0, 0, 0},
10047  {0x5F, 0x7, 0x7, 0, 0},
10048  {0x60, 0x7, 0x7, 1, 1},
10049  {0x61, 0x8, 0x8, 0, 0},
10050  {0x62, 0x3, 0x3, 0, 0},
10051  {0x63, 0, 0, 0, 0},
10052  {0x64, 0, 0, 0, 0},
10053  {0x65, 0, 0, 0, 0},
10054  {0x66, 0, 0, 0, 0},
10055  {0x67, 0, 0, 0, 0},
10056  {0x68, 0x40, 0x40, 0, 0},
10057  {0x69, 0, 0, 0, 0},
10058  {0x6A, 0, 0, 0, 0},
10059  {0x6B, 0, 0, 0, 0},
10060  {0x6C, 0, 0, 0, 0},
10061  {0x6D, 0x1, 0x1, 0, 0},
10062  {0x6E, 0, 0, 0, 0},
10063  {0x6F, 0, 0, 0, 0},
10064  {0x70, 0x60, 0x60, 0, 0},
10065  {0x71, 0x66, 0x66, 0, 0},
10066  {0x72, 0xc, 0xc, 0, 0},
10067  {0x73, 0x66, 0x66, 0, 0},
10068  {0x74, 0x8f, 0x8f, 1, 1},
10069  {0x75, 0, 0, 0, 0},
10070  {0x76, 0xcc, 0xcc, 0, 0},
10071  {0x77, 0x1, 0x1, 0, 0},
10072  {0x78, 0x66, 0x66, 0, 0},
10073  {0x79, 0x66, 0x66, 0, 0},
10074  {0x7A, 0, 0, 0, 0},
10075  {0x7B, 0, 0, 0, 0},
10076  {0x7C, 0, 0, 0, 0},
10077  {0x7D, 0, 0, 0, 0},
10078  {0x7E, 0, 0, 0, 0},
10079  {0x7F, 0, 0, 0, 0},
10080  {0x80, 0, 0, 0, 0},
10081  {0x81, 0, 0, 0, 0},
10082  {0x82, 0, 0, 0, 0},
10083  {0x83, 0, 0, 0, 0},
10084  {0x84, 0, 0, 0, 0},
10085  {0x85, 0xff, 0xff, 0, 0},
10086  {0x86, 0, 0, 0, 0},
10087  {0x87, 0, 0, 0, 0},
10088  {0x88, 0, 0, 0, 0},
10089  {0x89, 0, 0, 0, 0},
10090  {0x8A, 0, 0, 0, 0},
10091  {0x8B, 0, 0, 0, 0},
10092  {0x8C, 0, 0, 0, 0},
10093  {0x8D, 0, 0, 0, 0},
10094  {0x8E, 0, 0, 0, 0},
10095  {0x8F, 0, 0, 0, 0},
10096  {0x90, 0, 0, 0, 0},
10097  {0x91, 0, 0, 0, 0},
10098  {0x92, 0, 0, 0, 0},
10099  {0x93, 0, 0, 0, 0},
10100  {0x94, 0, 0, 0, 0},
10101  {0x95, 0, 0, 0, 0},
10102  {0x96, 0, 0, 0, 0},
10103  {0x97, 0, 0, 0, 0},
10104  {0x98, 0, 0, 0, 0},
10105  {0x99, 0, 0, 0, 0},
10106  {0x9A, 0, 0, 0, 0},
10107  {0x9B, 0, 0, 0, 0},
10108  {0x9C, 0, 0, 0, 0},
10109  {0x9D, 0, 0, 0, 0},
10110  {0x9E, 0, 0, 0, 0},
10111  {0x9F, 0x6, 0x6, 0, 0},
10112  {0xA0, 0x66, 0x66, 0, 0},
10113  {0xA1, 0x66, 0x66, 0, 0},
10114  {0xA2, 0x66, 0x66, 0, 0},
10115  {0xA3, 0x66, 0x66, 0, 0},
10116  {0xA4, 0x66, 0x66, 0, 0},
10117  {0xA5, 0x66, 0x66, 0, 0},
10118  {0xA6, 0x66, 0x66, 0, 0},
10119  {0xA7, 0x66, 0x66, 0, 0},
10120  {0xA8, 0x66, 0x66, 0, 0},
10121  {0xA9, 0x66, 0x66, 0, 0},
10122  {0xAA, 0x66, 0x66, 0, 0},
10123  {0xAB, 0x66, 0x66, 0, 0},
10124  {0xAC, 0x66, 0x66, 0, 0},
10125  {0xAD, 0x66, 0x66, 0, 0},
10126  {0xAE, 0x66, 0x66, 0, 0},
10127  {0xAF, 0x66, 0x66, 0, 0},
10128  {0xB0, 0x66, 0x66, 0, 0},
10129  {0xB1, 0x66, 0x66, 0, 0},
10130  {0xB2, 0x66, 0x66, 0, 0},
10131  {0xB3, 0xa, 0xa, 0, 0},
10132  {0xB4, 0, 0, 0, 0},
10133  {0xB5, 0, 0, 0, 0},
10134  {0xB6, 0, 0, 0, 0},
10135  {0xFFFF, 0, 0, 0, 0},
10136 };
10137 
10138 static struct radio_regs regs_TX_2056_rev7[] = {
10139  {0x02, 0, 0, 0, 0},
10140  {0x03, 0, 0, 0, 0},
10141  {0x04, 0, 0, 0, 0},
10142  {0x05, 0, 0, 0, 0},
10143  {0x06, 0, 0, 0, 0},
10144  {0x07, 0, 0, 0, 0},
10145  {0x08, 0, 0, 0, 0},
10146  {0x09, 0, 0, 0, 0},
10147  {0x0A, 0, 0, 0, 0},
10148  {0x0B, 0, 0, 0, 0},
10149  {0x0C, 0, 0, 0, 0},
10150  {0x0D, 0, 0, 0, 0},
10151  {0x0E, 0, 0, 0, 0},
10152  {0x0F, 0, 0, 0, 0},
10153  {0x10, 0, 0, 0, 0},
10154  {0x11, 0, 0, 0, 0},
10155  {0x12, 0, 0, 0, 0},
10156  {0x13, 0, 0, 0, 0},
10157  {0x14, 0, 0, 0, 0},
10158  {0x15, 0, 0, 0, 0},
10159  {0x16, 0, 0, 0, 0},
10160  {0x17, 0, 0, 0, 0},
10161  {0x18, 0, 0, 0, 0},
10162  {0x19, 0, 0, 0, 0},
10163  {0x1A, 0, 0, 0, 0},
10164  {0x1B, 0, 0, 0, 0},
10165  {0x1C, 0, 0, 0, 0},
10166  {0x1D, 0, 0, 0, 0},
10167  {0x1E, 0, 0, 0, 0},
10168  {0x1F, 0, 0, 0, 0},
10169  {0x20, 0, 0, 0, 0},
10170  {0x21, 0x88, 0x88, 0, 0},
10171  {0x22, 0x88, 0x88, 0, 0},
10172  {0x23, 0x88, 0x88, 0, 0},
10173  {0x24, 0x88, 0x88, 0, 0},
10174  {0x25, 0xc, 0xc, 0, 0},
10175  {0x26, 0, 0, 0, 0},
10176  {0x27, 0x3, 0x3, 0, 0},
10177  {0x28, 0, 0, 0, 0},
10178  {0x29, 0x3, 0x3, 0, 0},
10179  {0x2A, 0x37, 0x37, 0, 0},
10180  {0x2B, 0x3, 0x3, 0, 0},
10181  {0x2C, 0, 0, 0, 0},
10182  {0x2D, 0, 0, 0, 0},
10183  {0x2E, 0x1, 0x1, 0, 0},
10184  {0x2F, 0x1, 0x1, 0, 0},
10185  {0x30, 0, 0, 0, 0},
10186  {0x31, 0, 0, 0, 0},
10187  {0x32, 0, 0, 0, 0},
10188  {0x33, 0x11, 0x11, 0, 0},
10189  {0x34, 0xee, 0xee, 1, 1},
10190  {0x35, 0, 0, 0, 0},
10191  {0x36, 0, 0, 0, 0},
10192  {0x37, 0x3, 0x3, 0, 0},
10193  {0x38, 0x50, 0x50, 1, 1},
10194  {0x39, 0, 0, 0, 0},
10195  {0x3A, 0x50, 0x50, 1, 1},
10196  {0x3B, 0, 0, 0, 0},
10197  {0x3C, 0x6e, 0x6e, 0, 0},
10198  {0x3D, 0xf0, 0xf0, 1, 1},
10199  {0x3E, 0, 0, 0, 0},
10200  {0x3F, 0, 0, 0, 0},
10201  {0x40, 0, 0, 0, 0},
10202  {0x41, 0x3, 0x3, 0, 0},
10203  {0x42, 0x3, 0x3, 0, 0},
10204  {0x43, 0, 0, 0, 0},
10205  {0x44, 0x1e, 0x1e, 0, 0},
10206  {0x45, 0, 0, 0, 0},
10207  {0x46, 0x6e, 0x6e, 0, 0},
10208  {0x47, 0xf0, 0xf0, 1, 1},
10209  {0x48, 0, 0, 0, 0},
10210  {0x49, 0x2, 0x2, 0, 0},
10211  {0x4A, 0xff, 0xff, 1, 1},
10212  {0x4B, 0xc, 0xc, 0, 0},
10213  {0x4C, 0, 0, 0, 0},
10214  {0x4D, 0x38, 0x38, 0, 0},
10215  {0x4E, 0x70, 0x70, 1, 1},
10216  {0x4F, 0x2, 0x2, 0, 0},
10217  {0x50, 0x88, 0x88, 0, 0},
10218  {0x51, 0xc, 0xc, 0, 0},
10219  {0x52, 0, 0, 0, 0},
10220  {0x53, 0x8, 0x8, 0, 0},
10221  {0x54, 0x70, 0x70, 1, 1},
10222  {0x55, 0x2, 0x2, 0, 0},
10223  {0x56, 0xff, 0xff, 1, 1},
10224  {0x57, 0, 0, 0, 0},
10225  {0x58, 0x83, 0x83, 0, 0},
10226  {0x59, 0x77, 0x77, 1, 1},
10227  {0x5A, 0, 0, 0, 0},
10228  {0x5B, 0x2, 0x2, 0, 0},
10229  {0x5C, 0x88, 0x88, 0, 0},
10230  {0x5D, 0, 0, 0, 0},
10231  {0x5E, 0x8, 0x8, 0, 0},
10232  {0x5F, 0x77, 0x77, 1, 1},
10233  {0x60, 0x1, 0x1, 0, 0},
10234  {0x61, 0, 0, 0, 0},
10235  {0x62, 0x7, 0x7, 0, 0},
10236  {0x63, 0, 0, 0, 0},
10237  {0x64, 0x7, 0x7, 0, 0},
10238  {0x65, 0, 0, 0, 0},
10239  {0x66, 0, 0, 0, 0},
10240  {0x67, 0, 0, 1, 1},
10241  {0x68, 0, 0, 0, 0},
10242  {0x69, 0xa, 0xa, 0, 0},
10243  {0x6A, 0, 0, 0, 0},
10244  {0x6B, 0, 0, 0, 0},
10245  {0x6C, 0, 0, 0, 0},
10246  {0x6D, 0, 0, 0, 0},
10247  {0x6E, 0, 0, 0, 0},
10248  {0x6F, 0, 0, 0, 0},
10249  {0x70, 0, 0, 0, 0},
10250  {0x71, 0x2, 0x2, 0, 0},
10251  {0x72, 0, 0, 0, 0},
10252  {0x73, 0, 0, 0, 0},
10253  {0x74, 0xe, 0xe, 0, 0},
10254  {0x75, 0xe, 0xe, 0, 0},
10255  {0x76, 0xe, 0xe, 0, 0},
10256  {0x77, 0x13, 0x13, 0, 0},
10257  {0x78, 0x13, 0x13, 0, 0},
10258  {0x79, 0x1b, 0x1b, 0, 0},
10259  {0x7A, 0x1b, 0x1b, 0, 0},
10260  {0x7B, 0x55, 0x55, 0, 0},
10261  {0x7C, 0x5b, 0x5b, 0, 0},
10262  {0x7D, 0x30, 0x30, 1, 1},
10263  {0x7E, 0, 0, 0, 0},
10264  {0x7F, 0, 0, 0, 0},
10265  {0x80, 0, 0, 0, 0},
10266  {0x81, 0, 0, 0, 0},
10267  {0x82, 0, 0, 0, 0},
10268  {0x83, 0, 0, 0, 0},
10269  {0x84, 0, 0, 0, 0},
10270  {0x85, 0, 0, 0, 0},
10271  {0x86, 0, 0, 0, 0},
10272  {0x87, 0, 0, 0, 0},
10273  {0x88, 0, 0, 0, 0},
10274  {0x89, 0, 0, 0, 0},
10275  {0x8A, 0, 0, 0, 0},
10276  {0x8B, 0, 0, 0, 0},
10277  {0x8C, 0, 0, 0, 0},
10278  {0x8D, 0, 0, 0, 0},
10279  {0x8E, 0, 0, 0, 0},
10280  {0x8F, 0, 0, 0, 0},
10281  {0x90, 0, 0, 0, 0},
10282  {0x91, 0, 0, 0, 0},
10283  {0x92, 0, 0, 0, 0},
10284  {0x93, 0x70, 0x70, 0, 0},
10285  {0x94, 0x70, 0x70, 0, 0},
10286  {0x95, 0x71, 0x71, 1, 1},
10287  {0x96, 0x71, 0x71, 1, 1},
10288  {0x97, 0x72, 0x72, 1, 1},
10289  {0x98, 0x73, 0x73, 1, 1},
10290  {0x99, 0x74, 0x74, 1, 1},
10291  {0x9A, 0x75, 0x75, 1, 1},
10292  {0xFFFF, 0, 0, 0, 0},
10293 };
10294 
10295 static struct radio_regs regs_RX_2056_rev7[] = {
10296  {0x02, 0, 0, 0, 0},
10297  {0x03, 0, 0, 0, 0},
10298  {0x04, 0, 0, 0, 0},
10299  {0x05, 0, 0, 0, 0},
10300  {0x06, 0, 0, 0, 0},
10301  {0x07, 0, 0, 0, 0},
10302  {0x08, 0, 0, 0, 0},
10303  {0x09, 0, 0, 0, 0},
10304  {0x0A, 0, 0, 0, 0},
10305  {0x0B, 0, 0, 0, 0},
10306  {0x0C, 0, 0, 0, 0},
10307  {0x0D, 0, 0, 0, 0},
10308  {0x0E, 0, 0, 0, 0},
10309  {0x0F, 0, 0, 0, 0},
10310  {0x10, 0, 0, 0, 0},
10311  {0x11, 0, 0, 0, 0},
10312  {0x12, 0, 0, 0, 0},
10313  {0x13, 0, 0, 0, 0},
10314  {0x14, 0, 0, 0, 0},
10315  {0x15, 0, 0, 0, 0},
10316  {0x16, 0, 0, 0, 0},
10317  {0x17, 0, 0, 0, 0},
10318  {0x18, 0, 0, 0, 0},
10319  {0x19, 0, 0, 0, 0},
10320  {0x1A, 0, 0, 0, 0},
10321  {0x1B, 0, 0, 0, 0},
10322  {0x1C, 0, 0, 0, 0},
10323  {0x1D, 0, 0, 0, 0},
10324  {0x1E, 0, 0, 0, 0},
10325  {0x1F, 0, 0, 0, 0},
10326  {0x20, 0x3, 0x3, 0, 0},
10327  {0x21, 0, 0, 0, 0},
10328  {0x22, 0, 0, 0, 0},
10329  {0x23, 0x90, 0x90, 0, 0},
10330  {0x24, 0x55, 0x55, 0, 0},
10331  {0x25, 0x15, 0x15, 0, 0},
10332  {0x26, 0x5, 0x5, 0, 0},
10333  {0x27, 0x15, 0x15, 0, 0},
10334  {0x28, 0x5, 0x5, 0, 0},
10335  {0x29, 0x20, 0x20, 0, 0},
10336  {0x2A, 0x11, 0x11, 0, 0},
10337  {0x2B, 0x90, 0x90, 0, 0},
10338  {0x2C, 0, 0, 0, 0},
10339  {0x2D, 0x88, 0x88, 0, 0},
10340  {0x2E, 0x32, 0x32, 0, 0},
10341  {0x2F, 0x77, 0x77, 0, 0},
10342  {0x30, 0x17, 0x17, 1, 1},
10343  {0x31, 0xff, 0xff, 1, 1},
10344  {0x32, 0x20, 0x20, 0, 0},
10345  {0x33, 0, 0, 0, 0},
10346  {0x34, 0x88, 0x88, 0, 0},
10347  {0x35, 0x32, 0x32, 0, 0},
10348  {0x36, 0x77, 0x77, 0, 0},
10349  {0x37, 0x17, 0x17, 1, 1},
10350  {0x38, 0xf0, 0xf0, 1, 1},
10351  {0x39, 0x20, 0x20, 0, 0},
10352  {0x3A, 0x8, 0x8, 0, 0},
10353  {0x3B, 0x55, 0x55, 1, 1},
10354  {0x3C, 0, 0, 0, 0},
10355  {0x3D, 0x88, 0x88, 1, 1},
10356  {0x3E, 0, 0, 0, 0},
10357  {0x3F, 0, 0, 1, 1},
10358  {0x40, 0x7, 0x7, 1, 1},
10359  {0x41, 0x6, 0x6, 0, 0},
10360  {0x42, 0x4, 0x4, 0, 0},
10361  {0x43, 0, 0, 0, 0},
10362  {0x44, 0x8, 0x8, 0, 0},
10363  {0x45, 0x55, 0x55, 1, 1},
10364  {0x46, 0, 0, 0, 0},
10365  {0x47, 0x11, 0x11, 0, 0},
10366  {0x48, 0, 0, 0, 0},
10367  {0x49, 0, 0, 1, 1},
10368  {0x4A, 0x7, 0x7, 0, 0},
10369  {0x4B, 0x6, 0x6, 0, 0},
10370  {0x4C, 0x4, 0x4, 0, 0},
10371  {0x4D, 0, 0, 0, 0},
10372  {0x4E, 0, 0, 0, 0},
10373  {0x4F, 0x26, 0x26, 1, 1},
10374  {0x50, 0x26, 0x26, 1, 1},
10375  {0x51, 0xf, 0xf, 1, 1},
10376  {0x52, 0xf, 0xf, 1, 1},
10377  {0x53, 0x44, 0x44, 0, 0},
10378  {0x54, 0, 0, 0, 0},
10379  {0x55, 0, 0, 0, 0},
10380  {0x56, 0x8, 0x8, 0, 0},
10381  {0x57, 0x8, 0x8, 0, 0},
10382  {0x58, 0x7, 0x7, 0, 0},
10383  {0x59, 0x22, 0x22, 0, 0},
10384  {0x5A, 0x22, 0x22, 0, 0},
10385  {0x5B, 0x2, 0x2, 0, 0},
10386  {0x5C, 0x4, 0x4, 1, 1},
10387  {0x5D, 0x7, 0x7, 0, 0},
10388  {0x5E, 0x55, 0x55, 0, 0},
10389  {0x5F, 0x23, 0x23, 0, 0},
10390  {0x60, 0x41, 0x41, 0, 0},
10391  {0x61, 0x1, 0x1, 0, 0},
10392  {0x62, 0xa, 0xa, 0, 0},
10393  {0x63, 0, 0, 0, 0},
10394  {0x64, 0, 0, 0, 0},
10395  {0x65, 0, 0, 0, 0},
10396  {0x66, 0, 0, 0, 0},
10397  {0x67, 0, 0, 0, 0},
10398  {0x68, 0, 0, 0, 0},
10399  {0x69, 0, 0, 0, 0},
10400  {0x6A, 0, 0, 0, 0},
10401  {0x6B, 0xc, 0xc, 0, 0},
10402  {0x6C, 0, 0, 0, 0},
10403  {0x6D, 0, 0, 0, 0},
10404  {0x6E, 0, 0, 0, 0},
10405  {0x6F, 0, 0, 0, 0},
10406  {0x70, 0, 0, 0, 0},
10407  {0x71, 0, 0, 0, 0},
10408  {0x72, 0x22, 0x22, 0, 0},
10409  {0x73, 0x22, 0x22, 0, 0},
10410  {0x74, 0, 0, 1, 1},
10411  {0x75, 0xa, 0xa, 0, 0},
10412  {0x76, 0x1, 0x1, 0, 0},
10413  {0x77, 0x22, 0x22, 0, 0},
10414  {0x78, 0x30, 0x30, 0, 0},
10415  {0x79, 0, 0, 0, 0},
10416  {0x7A, 0, 0, 0, 0},
10417  {0x7B, 0, 0, 0, 0},
10418  {0x7C, 0, 0, 0, 0},
10419  {0x7D, 0, 0, 0, 0},
10420  {0x7E, 0, 0, 0, 0},
10421  {0x7F, 0, 0, 0, 0},
10422  {0x80, 0, 0, 0, 0},
10423  {0x81, 0, 0, 0, 0},
10424  {0x82, 0, 0, 0, 0},
10425  {0x83, 0, 0, 0, 0},
10426  {0x84, 0, 0, 0, 0},
10427  {0x85, 0, 0, 0, 0},
10428  {0x86, 0, 0, 0, 0},
10429  {0x87, 0, 0, 0, 0},
10430  {0x88, 0, 0, 0, 0},
10431  {0x89, 0, 0, 0, 0},
10432  {0x8A, 0, 0, 0, 0},
10433  {0x8B, 0, 0, 0, 0},
10434  {0x8C, 0, 0, 0, 0},
10435  {0x8D, 0, 0, 0, 0},
10436  {0x8E, 0, 0, 0, 0},
10437  {0x8F, 0, 0, 0, 0},
10438  {0x90, 0, 0, 0, 0},
10439  {0x91, 0, 0, 0, 0},
10440  {0x92, 0, 0, 0, 0},
10441  {0x93, 0, 0, 0, 0},
10442  {0x94, 0, 0, 0, 0},
10443  {0xFFFF, 0, 0, 0, 0},
10444 };
10445 
10446 static struct radio_regs regs_SYN_2056_rev8[] = {
10447  {0x02, 0, 0, 0, 0},
10448  {0x03, 0, 0, 0, 0},
10449  {0x04, 0, 0, 0, 0},
10450  {0x05, 0, 0, 0, 0},
10451  {0x06, 0, 0, 0, 0},
10452  {0x07, 0, 0, 0, 0},
10453  {0x08, 0, 0, 0, 0},
10454  {0x09, 0x1, 0x1, 0, 0},
10455  {0x0A, 0, 0, 0, 0},
10456  {0x0B, 0, 0, 0, 0},
10457  {0x0C, 0, 0, 0, 0},
10458  {0x0D, 0, 0, 0, 0},
10459  {0x0E, 0, 0, 0, 0},
10460  {0x0F, 0, 0, 0, 0},
10461  {0x10, 0, 0, 0, 0},
10462  {0x11, 0, 0, 0, 0},
10463  {0x12, 0, 0, 0, 0},
10464  {0x13, 0, 0, 0, 0},
10465  {0x14, 0, 0, 0, 0},
10466  {0x15, 0, 0, 0, 0},
10467  {0x16, 0, 0, 0, 0},
10468  {0x17, 0, 0, 0, 0},
10469  {0x18, 0, 0, 0, 0},
10470  {0x19, 0, 0, 0, 0},
10471  {0x1A, 0, 0, 0, 0},
10472  {0x1B, 0, 0, 0, 0},
10473  {0x1C, 0, 0, 0, 0},
10474  {0x1D, 0, 0, 0, 0},
10475  {0x1E, 0, 0, 0, 0},
10476  {0x1F, 0, 0, 0, 0},
10477  {0x20, 0, 0, 0, 0},
10478  {0x21, 0, 0, 0, 0},
10479  {0x22, 0x60, 0x60, 0, 0},
10480  {0x23, 0x6, 0x6, 0, 0},
10481  {0x24, 0xc, 0xc, 0, 0},
10482  {0x25, 0, 0, 0, 0},
10483  {0x26, 0, 0, 0, 0},
10484  {0x27, 0, 0, 0, 0},
10485  {0x28, 0x1, 0x1, 0, 0},
10486  {0x29, 0, 0, 0, 0},
10487  {0x2A, 0, 0, 0, 0},
10488  {0x2B, 0, 0, 0, 0},
10489  {0x2C, 0, 0, 0, 0},
10490  {0x2D, 0, 0, 0, 0},
10491  {0x2E, 0, 0, 0, 0},
10492  {0x2F, 0x1f, 0x1f, 0, 0},
10493  {0x30, 0x15, 0x15, 0, 0},
10494  {0x31, 0xf, 0xf, 0, 0},
10495  {0x32, 0, 0, 0, 0},
10496  {0x33, 0, 0, 0, 0},
10497  {0x34, 0, 0, 0, 0},
10498  {0x35, 0, 0, 0, 0},
10499  {0x36, 0, 0, 0, 0},
10500  {0x37, 0, 0, 0, 0},
10501  {0x38, 0, 0, 0, 0},
10502  {0x39, 0, 0, 0, 0},
10503  {0x3A, 0, 0, 0, 0},
10504  {0x3B, 0, 0, 0, 0},
10505  {0x3C, 0x13, 0x13, 0, 0},
10506  {0x3D, 0xf, 0xf, 0, 0},
10507  {0x3E, 0x18, 0x18, 0, 0},
10508  {0x3F, 0, 0, 0, 0},
10509  {0x40, 0, 0, 0, 0},
10510  {0x41, 0x20, 0x20, 0, 0},
10511  {0x42, 0x20, 0x20, 0, 0},
10512  {0x43, 0, 0, 0, 0},
10513  {0x44, 0x77, 0x77, 0, 0},
10514  {0x45, 0x7, 0x7, 0, 0},
10515  {0x46, 0x1, 0x1, 0, 0},
10516  {0x47, 0x4, 0x4, 0, 0},
10517  {0x48, 0xf, 0xf, 0, 0},
10518  {0x49, 0x30, 0x30, 0, 0},
10519  {0x4A, 0x32, 0x32, 0, 0},
10520  {0x4B, 0xd, 0xd, 0, 0},
10521  {0x4C, 0xd, 0xd, 0, 0},
10522  {0x4D, 0x4, 0x4, 0, 0},
10523  {0x4E, 0x6, 0x6, 0, 0},
10524  {0x4F, 0x1, 0x1, 0, 0},
10525  {0x50, 0x1c, 0x1c, 0, 0},
10526  {0x51, 0x2, 0x2, 0, 0},
10527  {0x52, 0x2, 0x2, 0, 0},
10528  {0x53, 0xf7, 0xf7, 1, 1},
10529  {0x54, 0xb4, 0xb4, 0, 0},
10530  {0x55, 0xd2, 0xd2, 0, 0},
10531  {0x56, 0, 0, 0, 0},
10532  {0x57, 0, 0, 0, 0},
10533  {0x58, 0x4, 0x4, 0, 0},
10534  {0x59, 0x96, 0x96, 0, 0},
10535  {0x5A, 0x3e, 0x3e, 0, 0},
10536  {0x5B, 0x3e, 0x3e, 0, 0},
10537  {0x5C, 0x13, 0x13, 0, 0},
10538  {0x5D, 0x2, 0x2, 0, 0},
10539  {0x5E, 0, 0, 0, 0},
10540  {0x5F, 0x7, 0x7, 0, 0},
10541  {0x60, 0x7, 0x7, 1, 1},
10542  {0x61, 0x8, 0x8, 0, 0},
10543  {0x62, 0x3, 0x3, 0, 0},
10544  {0x63, 0, 0, 0, 0},
10545  {0x64, 0, 0, 0, 0},
10546  {0x65, 0, 0, 0, 0},
10547  {0x66, 0, 0, 0, 0},
10548  {0x67, 0, 0, 0, 0},
10549  {0x68, 0x40, 0x40, 0, 0},
10550  {0x69, 0, 0, 0, 0},
10551  {0x6A, 0, 0, 0, 0},
10552  {0x6B, 0, 0, 0, 0},
10553  {0x6C, 0, 0, 0, 0},
10554  {0x6D, 0x1, 0x1, 0, 0},
10555  {0x6E, 0, 0, 0, 0},
10556  {0x6F, 0, 0, 0, 0},
10557  {0x70, 0x60, 0x60, 0, 0},
10558  {0x71, 0x66, 0x66, 0, 0},
10559  {0x72, 0xc, 0xc, 0, 0},
10560  {0x73, 0x66, 0x66, 0, 0},
10561  {0x74, 0x8f, 0x8f, 1, 1},
10562  {0x75, 0, 0, 0, 0},
10563  {0x76, 0xcc, 0xcc, 0, 0},
10564  {0x77, 0x1, 0x1, 0, 0},
10565  {0x78, 0x66, 0x66, 0, 0},
10566  {0x79, 0x66, 0x66, 0, 0},
10567  {0x7A, 0, 0, 0, 0},
10568  {0x7B, 0, 0, 0, 0},
10569  {0x7C, 0, 0, 0, 0},
10570  {0x7D, 0, 0, 0, 0},
10571  {0x7E, 0, 0, 0, 0},
10572  {0x7F, 0, 0, 0, 0},
10573  {0x80, 0, 0, 0, 0},
10574  {0x81, 0, 0, 0, 0},
10575  {0x82, 0, 0, 0, 0},
10576  {0x83, 0, 0, 0, 0},
10577  {0x84, 0, 0, 0, 0},
10578  {0x85, 0xff, 0xff, 0, 0},
10579  {0x86, 0, 0, 0, 0},
10580  {0x87, 0, 0, 0, 0},
10581  {0x88, 0, 0, 0, 0},
10582  {0x89, 0, 0, 0, 0},
10583  {0x8A, 0, 0, 0, 0},
10584  {0x8B, 0, 0, 0, 0},
10585  {0x8C, 0, 0, 0, 0},
10586  {0x8D, 0, 0, 0, 0},
10587  {0x8E, 0, 0, 0, 0},
10588  {0x8F, 0, 0, 0, 0},
10589  {0x90, 0, 0, 0, 0},
10590  {0x91, 0, 0, 0, 0},
10591  {0x92, 0, 0, 0, 0},
10592  {0x93, 0, 0, 0, 0},
10593  {0x94, 0, 0, 0, 0},
10594  {0x95, 0, 0, 0, 0},
10595  {0x96, 0, 0, 0, 0},
10596  {0x97, 0, 0, 0, 0},
10597  {0x98, 0, 0, 0, 0},
10598  {0x99, 0, 0, 0, 0},
10599  {0x9A, 0, 0, 0, 0},
10600  {0x9B, 0, 0, 0, 0},
10601  {0x9C, 0, 0, 0, 0},
10602  {0x9D, 0, 0, 0, 0},
10603  {0x9E, 0, 0, 0, 0},
10604  {0x9F, 0x6, 0x6, 0, 0},
10605  {0xA0, 0x66, 0x66, 0, 0},
10606  {0xA1, 0x66, 0x66, 0, 0},
10607  {0xA2, 0x66, 0x66, 0, 0},
10608  {0xA3, 0x66, 0x66, 0, 0},
10609  {0xA4, 0x66, 0x66, 0, 0},
10610  {0xA5, 0x66, 0x66, 0, 0},
10611  {0xA6, 0x66, 0x66, 0, 0},
10612  {0xA7, 0x66, 0x66, 0, 0},
10613  {0xA8, 0x66, 0x66, 0, 0},
10614  {0xA9, 0x66, 0x66, 0, 0},
10615  {0xAA, 0x66, 0x66, 0, 0},
10616  {0xAB, 0x66, 0x66, 0, 0},
10617  {0xAC, 0x66, 0x66, 0, 0},
10618  {0xAD, 0x66, 0x66, 0, 0},
10619  {0xAE, 0x66, 0x66, 0, 0},
10620  {0xAF, 0x66, 0x66, 0, 0},
10621  {0xB0, 0x66, 0x66, 0, 0},
10622  {0xB1, 0x66, 0x66, 0, 0},
10623  {0xB2, 0x66, 0x66, 0, 0},
10624  {0xB3, 0xa, 0xa, 0, 0},
10625  {0xB4, 0, 0, 0, 0},
10626  {0xB5, 0, 0, 0, 0},
10627  {0xB6, 0, 0, 0, 0},
10628  {0xFFFF, 0, 0, 0, 0},
10629 };
10630 
10631 static struct radio_regs regs_TX_2056_rev8[] = {
10632  {0x02, 0, 0, 0, 0},
10633  {0x03, 0, 0, 0, 0},
10634  {0x04, 0, 0, 0, 0},
10635  {0x05, 0, 0, 0, 0},
10636  {0x06, 0, 0, 0, 0},
10637  {0x07, 0, 0, 0, 0},
10638  {0x08, 0, 0, 0, 0},
10639  {0x09, 0, 0, 0, 0},
10640  {0x0A, 0, 0, 0, 0},
10641  {0x0B, 0, 0, 0, 0},
10642  {0x0C, 0, 0, 0, 0},
10643  {0x0D, 0, 0, 0, 0},
10644  {0x0E, 0, 0, 0, 0},
10645  {0x0F, 0, 0, 0, 0},
10646  {0x10, 0, 0, 0, 0},
10647  {0x11, 0, 0, 0, 0},
10648  {0x12, 0, 0, 0, 0},
10649  {0x13, 0, 0, 0, 0},
10650  {0x14, 0, 0, 0, 0},
10651  {0x15, 0, 0, 0, 0},
10652  {0x16, 0, 0, 0, 0},
10653  {0x17, 0, 0, 0, 0},
10654  {0x18, 0, 0, 0, 0},
10655  {0x19, 0, 0, 0, 0},
10656  {0x1A, 0, 0, 0, 0},
10657  {0x1B, 0, 0, 0, 0},
10658  {0x1C, 0, 0, 0, 0},
10659  {0x1D, 0, 0, 0, 0},
10660  {0x1E, 0, 0, 0, 0},
10661  {0x1F, 0, 0, 0, 0},
10662  {0x20, 0, 0, 0, 0},
10663  {0x21, 0x88, 0x88, 0, 0},
10664  {0x22, 0x88, 0x88, 0, 0},
10665  {0x23, 0x88, 0x88, 0, 0},
10666  {0x24, 0x88, 0x88, 0, 0},
10667  {0x25, 0xc, 0xc, 0, 0},
10668  {0x26, 0, 0, 0, 0},
10669  {0x27, 0x3, 0x3, 0, 0},
10670  {0x28, 0, 0, 0, 0},
10671  {0x29, 0x3, 0x3, 0, 0},
10672  {0x2A, 0x37, 0x37, 0, 0},
10673  {0x2B, 0x3, 0x3, 0, 0},
10674  {0x2C, 0, 0, 0, 0},
10675  {0x2D, 0, 0, 0, 0},
10676  {0x2E, 0x1, 0x1, 0, 0},
10677  {0x2F, 0x1, 0x1, 0, 0},
10678  {0x30, 0, 0, 0, 0},
10679  {0x31, 0, 0, 0, 0},
10680  {0x32, 0, 0, 0, 0},
10681  {0x33, 0x11, 0x11, 0, 0},
10682  {0x34, 0xee, 0xee, 1, 1},
10683  {0x35, 0, 0, 0, 0},
10684  {0x36, 0, 0, 0, 0},
10685  {0x37, 0x3, 0x3, 0, 0},
10686  {0x38, 0x50, 0x50, 1, 1},
10687  {0x39, 0, 0, 0, 0},
10688  {0x3A, 0x50, 0x50, 1, 1},
10689  {0x3B, 0, 0, 0, 0},
10690  {0x3C, 0x6e, 0x6e, 0, 0},
10691  {0x3D, 0xf0, 0xf0, 1, 1},
10692  {0x3E, 0, 0, 0, 0},
10693  {0x3F, 0, 0, 0, 0},
10694  {0x40, 0, 0, 0, 0},
10695  {0x41, 0x3, 0x3, 0, 0},
10696  {0x42, 0x3, 0x3, 0, 0},
10697  {0x43, 0, 0, 0, 0},
10698  {0x44, 0x1e, 0x1e, 0, 0},
10699  {0x45, 0, 0, 0, 0},
10700  {0x46, 0x6e, 0x6e, 0, 0},
10701  {0x47, 0xf0, 0xf0, 1, 1},
10702  {0x48, 0, 0, 0, 0},
10703  {0x49, 0x2, 0x2, 0, 0},
10704  {0x4A, 0xff, 0xff, 1, 1},
10705  {0x4B, 0xc, 0xc, 0, 0},
10706  {0x4C, 0, 0, 0, 0},
10707  {0x4D, 0x38, 0x38, 0, 0},
10708  {0x4E, 0x70, 0x70, 1, 1},
10709  {0x4F, 0x2, 0x2, 0, 0},
10710  {0x50, 0x88, 0x88, 0, 0},
10711  {0x51, 0xc, 0xc, 0, 0},
10712  {0x52, 0, 0, 0, 0},
10713  {0x53, 0x8, 0x8, 0, 0},
10714  {0x54, 0x70, 0x70, 1, 1},
10715  {0x55, 0x2, 0x2, 0, 0},
10716  {0x56, 0xff, 0xff, 1, 1},
10717  {0x57, 0, 0, 0, 0},
10718  {0x58, 0x83, 0x83, 0, 0},
10719  {0x59, 0x77, 0x77, 1, 1},
10720  {0x5A, 0, 0, 0, 0},
10721  {0x5B, 0x2, 0x2, 0, 0},
10722  {0x5C, 0x88, 0x88, 0, 0},
10723  {0x5D, 0, 0, 0, 0},
10724  {0x5E, 0x8, 0x8, 0, 0},
10725  {0x5F, 0x77, 0x77, 1, 1},
10726  {0x60, 0x1, 0x1, 0, 0},
10727  {0x61, 0, 0, 0, 0},
10728  {0x62, 0x7, 0x7, 0, 0},
10729  {0x63, 0, 0, 0, 0},
10730  {0x64, 0x7, 0x7, 0, 0},
10731  {0x65, 0, 0, 0, 0},
10732  {0x66, 0, 0, 0, 0},
10733  {0x67, 0, 0, 1, 1},
10734  {0x68, 0, 0, 0, 0},
10735  {0x69, 0xa, 0xa, 0, 0},
10736  {0x6A, 0, 0, 0, 0},
10737  {0x6B, 0, 0, 0, 0},
10738  {0x6C, 0, 0, 0, 0},
10739  {0x6D, 0, 0, 0, 0},
10740  {0x6E, 0, 0, 0, 0},
10741  {0x6F, 0, 0, 0, 0},
10742  {0x70, 0, 0, 0, 0},
10743  {0x71, 0x2, 0x2, 0, 0},
10744  {0x72, 0, 0, 0, 0},
10745  {0x73, 0, 0, 0, 0},
10746  {0x74, 0xe, 0xe, 0, 0},
10747  {0x75, 0xe, 0xe, 0, 0},
10748  {0x76, 0xe, 0xe, 0, 0},
10749  {0x77, 0x13, 0x13, 0, 0},
10750  {0x78, 0x13, 0x13, 0, 0},
10751  {0x79, 0x1b, 0x1b, 0, 0},
10752  {0x7A, 0x1b, 0x1b, 0, 0},
10753  {0x7B, 0x55, 0x55, 0, 0},
10754  {0x7C, 0x5b, 0x5b, 0, 0},
10755  {0x7D, 0x30, 0x30, 1, 1},
10756  {0x7E, 0, 0, 0, 0},
10757  {0x7F, 0, 0, 0, 0},
10758  {0x80, 0, 0, 0, 0},
10759  {0x81, 0, 0, 0, 0},
10760  {0x82, 0, 0, 0, 0},
10761  {0x83, 0, 0, 0, 0},
10762  {0x84, 0, 0, 0, 0},
10763  {0x85, 0, 0, 0, 0},
10764  {0x86, 0, 0, 0, 0},
10765  {0x87, 0, 0, 0, 0},
10766  {0x88, 0, 0, 0, 0},
10767  {0x89, 0, 0, 0, 0},
10768  {0x8A, 0, 0, 0, 0},
10769  {0x8B, 0, 0, 0, 0},
10770  {0x8C, 0, 0, 0, 0},
10771  {0x8D, 0, 0, 0, 0},
10772  {0x8E, 0, 0, 0, 0},
10773  {0x8F, 0, 0, 0, 0},
10774  {0x90, 0, 0, 0, 0},
10775  {0x91, 0, 0, 0, 0},
10776  {0x92, 0, 0, 0, 0},
10777  {0x93, 0x70, 0x70, 0, 0},
10778  {0x94, 0x70, 0x70, 0, 0},
10779  {0x95, 0x70, 0x70, 0, 0},
10780  {0x96, 0x70, 0x70, 0, 0},
10781  {0x97, 0x70, 0x70, 0, 0},
10782  {0x98, 0x70, 0x70, 0, 0},
10783  {0x99, 0x70, 0x70, 0, 0},
10784  {0x9A, 0x70, 0x70, 0, 0},
10785  {0xFFFF, 0, 0, 0, 0},
10786 };
10787 
10788 static struct radio_regs regs_RX_2056_rev8[] = {
10789  {0x02, 0, 0, 0, 0},
10790  {0x03, 0, 0, 0, 0},
10791  {0x04, 0, 0, 0, 0},
10792  {0x05, 0, 0, 0, 0},
10793  {0x06, 0, 0, 0, 0},
10794  {0x07, 0, 0, 0, 0},
10795  {0x08, 0, 0, 0, 0},
10796  {0x09, 0, 0, 0, 0},
10797  {0x0A, 0, 0, 0, 0},
10798  {0x0B, 0, 0, 0, 0},
10799  {0x0C, 0, 0, 0, 0},
10800  {0x0D, 0, 0, 0, 0},
10801  {0x0E, 0, 0, 0, 0},
10802  {0x0F, 0, 0, 0, 0},
10803  {0x10, 0, 0, 0, 0},
10804  {0x11, 0, 0, 0, 0},
10805  {0x12, 0, 0, 0, 0},
10806  {0x13, 0, 0, 0, 0},
10807  {0x14, 0, 0, 0, 0},
10808  {0x15, 0, 0, 0, 0},
10809  {0x16, 0, 0, 0, 0},
10810  {0x17, 0, 0, 0, 0},
10811  {0x18, 0, 0, 0, 0},
10812  {0x19, 0, 0, 0, 0},
10813  {0x1A, 0, 0, 0, 0},
10814  {0x1B, 0, 0, 0, 0},
10815  {0x1C, 0, 0, 0, 0},
10816  {0x1D, 0, 0, 0, 0},
10817  {0x1E, 0, 0, 0, 0},
10818  {0x1F, 0, 0, 0, 0},
10819  {0x20, 0x3, 0x3, 0, 0},
10820  {0x21, 0, 0, 0, 0},
10821  {0x22, 0, 0, 0, 0},
10822  {0x23, 0x90, 0x90, 0, 0},
10823  {0x24, 0x55, 0x55, 0, 0},
10824  {0x25, 0x15, 0x15, 0, 0},
10825  {0x26, 0x5, 0x5, 0, 0},
10826  {0x27, 0x15, 0x15, 0, 0},
10827  {0x28, 0x5, 0x5, 0, 0},
10828  {0x29, 0x20, 0x20, 0, 0},
10829  {0x2A, 0x11, 0x11, 0, 0},
10830  {0x2B, 0x90, 0x90, 0, 0},
10831  {0x2C, 0, 0, 0, 0},
10832  {0x2D, 0x88, 0x88, 0, 0},
10833  {0x2E, 0x32, 0x32, 0, 0},
10834  {0x2F, 0x77, 0x77, 0, 0},
10835  {0x30, 0x17, 0x17, 1, 1},
10836  {0x31, 0xff, 0xff, 1, 1},
10837  {0x32, 0x20, 0x20, 0, 0},
10838  {0x33, 0, 0, 0, 0},
10839  {0x34, 0x88, 0x88, 0, 0},
10840  {0x35, 0x32, 0x32, 0, 0},
10841  {0x36, 0x77, 0x77, 0, 0},
10842  {0x37, 0x17, 0x17, 1, 1},
10843  {0x38, 0xf0, 0xf0, 1, 1},
10844  {0x39, 0x20, 0x20, 0, 0},
10845  {0x3A, 0x8, 0x8, 0, 0},
10846  {0x3B, 0x55, 0x55, 1, 1},
10847  {0x3C, 0, 0, 0, 0},
10848  {0x3D, 0x88, 0x88, 1, 1},
10849  {0x3E, 0, 0, 0, 0},
10850  {0x3F, 0x44, 0x44, 0, 0},
10851  {0x40, 0x7, 0x7, 1, 1},
10852  {0x41, 0x6, 0x6, 0, 0},
10853  {0x42, 0x4, 0x4, 0, 0},
10854  {0x43, 0, 0, 0, 0},
10855  {0x44, 0x8, 0x8, 0, 0},
10856  {0x45, 0x55, 0x55, 1, 1},
10857  {0x46, 0, 0, 0, 0},
10858  {0x47, 0x11, 0x11, 0, 0},
10859  {0x48, 0, 0, 0, 0},
10860  {0x49, 0x44, 0x44, 0, 0},
10861  {0x4A, 0x7, 0x7, 0, 0},
10862  {0x4B, 0x6, 0x6, 0, 0},
10863  {0x4C, 0x4, 0x4, 0, 0},
10864  {0x4D, 0, 0, 0, 0},
10865  {0x4E, 0, 0, 0, 0},
10866  {0x4F, 0x26, 0x26, 1, 1},
10867  {0x50, 0x26, 0x26, 1, 1},
10868  {0x51, 0xf, 0xf, 1, 1},
10869  {0x52, 0xf, 0xf, 1, 1},
10870  {0x53, 0x44, 0x44, 0, 0},
10871  {0x54, 0, 0, 0, 0},
10872  {0x55, 0, 0, 0, 0},
10873  {0x56, 0x8, 0x8, 0, 0},
10874  {0x57, 0x8, 0x8, 0, 0},
10875  {0x58, 0x7, 0x7, 0, 0},
10876  {0x59, 0x22, 0x22, 0, 0},
10877  {0x5A, 0x22, 0x22, 0, 0},
10878  {0x5B, 0x2, 0x2, 0, 0},
10879  {0x5C, 0x4, 0x4, 1, 1},
10880  {0x5D, 0x7, 0x7, 0, 0},
10881  {0x5E, 0x55, 0x55, 0, 0},
10882  {0x5F, 0x23, 0x23, 0, 0},
10883  {0x60, 0x41, 0x41, 0, 0},
10884  {0x61, 0x1, 0x1, 0, 0},
10885  {0x62, 0xa, 0xa, 0, 0},
10886  {0x63, 0, 0, 0, 0},
10887  {0x64, 0, 0, 0, 0},
10888  {0x65, 0, 0, 0, 0},
10889  {0x66, 0, 0, 0, 0},
10890  {0x67, 0, 0, 0, 0},
10891  {0x68, 0, 0, 0, 0},
10892  {0x69, 0, 0, 0, 0},
10893  {0x6A, 0, 0, 0, 0},
10894  {0x6B, 0xc, 0xc, 0, 0},
10895  {0x6C, 0, 0, 0, 0},
10896  {0x6D, 0, 0, 0, 0},
10897  {0x6E, 0, 0, 0, 0},
10898  {0x6F, 0, 0, 0, 0},
10899  {0x70, 0, 0, 0, 0},
10900  {0x71, 0, 0, 0, 0},
10901  {0x72, 0x22, 0x22, 0, 0},
10902  {0x73, 0x22, 0x22, 0, 0},
10903  {0x74, 0, 0, 1, 1},
10904  {0x75, 0xa, 0xa, 0, 0},
10905  {0x76, 0x1, 0x1, 0, 0},
10906  {0x77, 0x22, 0x22, 0, 0},
10907  {0x78, 0x30, 0x30, 0, 0},
10908  {0x79, 0, 0, 0, 0},
10909  {0x7A, 0, 0, 0, 0},
10910  {0x7B, 0, 0, 0, 0},
10911  {0x7C, 0, 0, 0, 0},
10912  {0x7D, 0x5, 0x5, 1, 1},
10913  {0x7E, 0, 0, 0, 0},
10914  {0x7F, 0, 0, 0, 0},
10915  {0x80, 0, 0, 0, 0},
10916  {0x81, 0, 0, 0, 0},
10917  {0x82, 0, 0, 0, 0},
10918  {0x83, 0, 0, 0, 0},
10919  {0x84, 0, 0, 0, 0},
10920  {0x85, 0, 0, 0, 0},
10921  {0x86, 0, 0, 0, 0},
10922  {0x87, 0, 0, 0, 0},
10923  {0x88, 0, 0, 0, 0},
10924  {0x89, 0, 0, 0, 0},
10925  {0x8A, 0, 0, 0, 0},
10926  {0x8B, 0, 0, 0, 0},
10927  {0x8C, 0, 0, 0, 0},
10928  {0x8D, 0, 0, 0, 0},
10929  {0x8E, 0, 0, 0, 0},
10930  {0x8F, 0, 0, 0, 0},
10931  {0x90, 0, 0, 0, 0},
10932  {0x91, 0, 0, 0, 0},
10933  {0x92, 0, 0, 0, 0},
10934  {0x93, 0, 0, 0, 0},
10935  {0x94, 0, 0, 0, 0},
10936  {0xFFFF, 0, 0, 0, 0},
10937 };
10938 
10939 static const struct radio_regs regs_SYN_2056_rev11[] = {
10940  {0x02, 0, 0, 0, 0},
10941  {0x03, 0, 0, 0, 0},
10942  {0x04, 0, 0, 0, 0},
10943  {0x05, 0, 0, 0, 0},
10944  {0x06, 0, 0, 0, 0},
10945  {0x07, 0, 0, 0, 0},
10946  {0x08, 0, 0, 0, 0},
10947  {0x09, 0x1, 0x1, 0, 0},
10948  {0x0A, 0, 0, 0, 0},
10949  {0x0B, 0, 0, 0, 0},
10950  {0x0C, 0, 0, 0, 0},
10951  {0x0D, 0, 0, 0, 0},
10952  {0x0E, 0, 0, 0, 0},
10953  {0x0F, 0, 0, 0, 0},
10954  {0x10, 0, 0, 0, 0},
10955  {0x11, 0, 0, 0, 0},
10956  {0x12, 0, 0, 0, 0},
10957  {0x13, 0, 0, 0, 0},
10958  {0x14, 0, 0, 0, 0},
10959  {0x15, 0, 0, 0, 0},
10960  {0x16, 0, 0, 0, 0},
10961  {0x17, 0, 0, 0, 0},
10962  {0x18, 0, 0, 0, 0},
10963  {0x19, 0, 0, 0, 0},
10964  {0x1A, 0, 0, 0, 0},
10965  {0x1B, 0, 0, 0, 0},
10966  {0x1C, 0, 0, 0, 0},
10967  {0x1D, 0, 0, 0, 0},
10968  {0x1E, 0, 0, 0, 0},
10969  {0x1F, 0, 0, 0, 0},
10970  {0x20, 0, 0, 0, 0},
10971  {0x21, 0, 0, 0, 0},
10972  {0x22, 0x60, 0x60, 0, 0},
10973  {0x23, 0x6, 0x6, 0, 0},
10974  {0x24, 0xc, 0xc, 0, 0},
10975  {0x25, 0, 0, 0, 0},
10976  {0x26, 0, 0, 0, 0},
10977  {0x27, 0, 0, 0, 0},
10978  {0x28, 0x1, 0x1, 0, 0},
10979  {0x29, 0, 0, 0, 0},
10980  {0x2A, 0, 0, 0, 0},
10981  {0x2B, 0, 0, 0, 0},
10982  {0x2C, 0, 0, 0, 0},
10983  {0x2D, 0, 0, 0, 0},
10984  {0x2E, 0, 0, 0, 0},
10985  {0x2F, 0x1f, 0x1f, 0, 0},
10986  {0x30, 0x15, 0x15, 0, 0},
10987  {0x31, 0xf, 0xf, 0, 0},
10988  {0x32, 0, 0, 0, 0},
10989  {0x33, 0, 0, 0, 0},
10990  {0x34, 0, 0, 0, 0},
10991  {0x35, 0, 0, 0, 0},
10992  {0x36, 0, 0, 0, 0},
10993  {0x37, 0, 0, 0, 0},
10994  {0x38, 0, 0, 0, 0},
10995  {0x39, 0, 0, 0, 0},
10996  {0x3A, 0, 0, 0, 0},
10997  {0x3B, 0, 0, 0, 0},
10998  {0x3C, 0x13, 0x13, 0, 0},
10999  {0x3D, 0xf, 0xf, 0, 0},
11000  {0x3E, 0x18, 0x18, 0, 0},
11001  {0x3F, 0, 0, 0, 0},
11002  {0x40, 0, 0, 0, 0},
11003  {0x41, 0x20, 0x20, 0, 0},
11004  {0x42, 0x20, 0x20, 0, 0},
11005  {0x43, 0, 0, 0, 0},
11006  {0x44, 0x77, 0x77, 0, 0},
11007  {0x45, 0x7, 0x7, 0, 0},
11008  {0x46, 0x1, 0x1, 0, 0},
11009  {0x47, 0x6, 0x6, 1, 1},
11010  {0x48, 0xf, 0xf, 0, 0},
11011  {0x49, 0x3f, 0x3f, 1, 1},
11012  {0x4A, 0x32, 0x32, 0, 0},
11013  {0x4B, 0x6, 0x6, 1, 1},
11014  {0x4C, 0x6, 0x6, 1, 1},
11015  {0x4D, 0x4, 0x4, 0, 0},
11016  {0x4E, 0x2b, 0x2b, 1, 1},
11017  {0x4F, 0x1, 0x1, 0, 0},
11018  {0x50, 0x1c, 0x1c, 0, 0},
11019  {0x51, 0x2, 0x2, 0, 0},
11020  {0x52, 0x2, 0x2, 0, 0},
11021  {0x53, 0xf7, 0xf7, 1, 1},
11022  {0x54, 0xb4, 0xb4, 0, 0},
11023  {0x55, 0xd2, 0xd2, 0, 0},
11024  {0x56, 0, 0, 0, 0},
11025  {0x57, 0, 0, 0, 0},
11026  {0x58, 0x4, 0x4, 0, 0},
11027  {0x59, 0x96, 0x96, 0, 0},
11028  {0x5A, 0x3e, 0x3e, 0, 0},
11029  {0x5B, 0x3e, 0x3e, 0, 0},
11030  {0x5C, 0x13, 0x13, 0, 0},
11031  {0x5D, 0x2, 0x2, 0, 0},
11032  {0x5E, 0, 0, 0, 0},
11033  {0x5F, 0x7, 0x7, 0, 0},
11034  {0x60, 0x7, 0x7, 1, 1},
11035  {0x61, 0x8, 0x8, 0, 0},
11036  {0x62, 0x3, 0x3, 0, 0},
11037  {0x63, 0, 0, 0, 0},
11038  {0x64, 0, 0, 0, 0},
11039  {0x65, 0, 0, 0, 0},
11040  {0x66, 0, 0, 0, 0},
11041  {0x67, 0, 0, 0, 0},
11042  {0x68, 0x40, 0x40, 0, 0},
11043  {0x69, 0, 0, 0, 0},
11044  {0x6A, 0, 0, 0, 0},
11045  {0x6B, 0, 0, 0, 0},
11046  {0x6C, 0, 0, 0, 0},
11047  {0x6D, 0x1, 0x1, 0, 0},
11048  {0x6E, 0, 0, 0, 0},
11049  {0x6F, 0, 0, 0, 0},
11050  {0x70, 0x60, 0x60, 0, 0},
11051  {0x71, 0x66, 0x66, 0, 0},
11052  {0x72, 0xc, 0xc, 0, 0},
11053  {0x73, 0x66, 0x66, 0, 0},
11054  {0x74, 0x8f, 0x8f, 1, 1},
11055  {0x75, 0, 0, 0, 0},
11056  {0x76, 0xcc, 0xcc, 0, 0},
11057  {0x77, 0x1, 0x1, 0, 0},
11058  {0x78, 0x66, 0x66, 0, 0},
11059  {0x79, 0x66, 0x66, 0, 0},
11060  {0x7A, 0, 0, 0, 0},
11061  {0x7B, 0, 0, 0, 0},
11062  {0x7C, 0, 0, 0, 0},
11063  {0x7D, 0, 0, 0, 0},
11064  {0x7E, 0, 0, 0, 0},
11065  {0x7F, 0, 0, 0, 0},
11066  {0x80, 0, 0, 0, 0},
11067  {0x81, 0, 0, 0, 0},
11068  {0x82, 0, 0, 0, 0},
11069  {0x83, 0, 0, 0, 0},
11070  {0x84, 0, 0, 0, 0},
11071  {0x85, 0xff, 0xff, 0, 0},
11072  {0x86, 0, 0, 0, 0},
11073  {0x87, 0, 0, 0, 0},
11074  {0x88, 0, 0, 0, 0},
11075  {0x89, 0, 0, 0, 0},
11076  {0x8A, 0, 0, 0, 0},
11077  {0x8B, 0, 0, 0, 0},
11078  {0x8C, 0, 0, 0, 0},
11079  {0x8D, 0, 0, 0, 0},
11080  {0x8E, 0, 0, 0, 0},
11081  {0x8F, 0, 0, 0, 0},
11082  {0x90, 0, 0, 0, 0},
11083  {0x91, 0, 0, 0, 0},
11084  {0x92, 0, 0, 0, 0},
11085  {0x93, 0, 0, 0, 0},
11086  {0x94, 0, 0, 0, 0},
11087  {0x95, 0, 0, 0, 0},
11088  {0x96, 0, 0, 0, 0},
11089  {0x97, 0, 0, 0, 0},
11090  {0x98, 0, 0, 0, 0},
11091  {0x99, 0, 0, 0, 0},
11092  {0x9A, 0, 0, 0, 0},
11093  {0x9B, 0, 0, 0, 0},
11094  {0x9C, 0, 0, 0, 0},
11095  {0x9D, 0, 0, 0, 0},
11096  {0x9E, 0, 0, 0, 0},
11097  {0x9F, 0x6, 0x6, 0, 0},
11098  {0xA0, 0x66, 0x66, 0, 0},
11099  {0xA1, 0x66, 0x66, 0, 0},
11100  {0xA2, 0x66, 0x66, 0, 0},
11101  {0xA3, 0x66, 0x66, 0, 0},
11102  {0xA4, 0x66, 0x66, 0, 0},
11103  {0xA5, 0x66, 0x66, 0, 0},
11104  {0xA6, 0x66, 0x66, 0, 0},
11105  {0xA7, 0x66, 0x66, 0, 0},
11106  {0xA8, 0x66, 0x66, 0, 0},
11107  {0xA9, 0x66, 0x66, 0, 0},
11108  {0xAA, 0x66, 0x66, 0, 0},
11109  {0xAB, 0x66, 0x66, 0, 0},
11110  {0xAC, 0x66, 0x66, 0, 0},
11111  {0xAD, 0x66, 0x66, 0, 0},
11112  {0xAE, 0x66, 0x66, 0, 0},
11113  {0xAF, 0x66, 0x66, 0, 0},
11114  {0xB0, 0x66, 0x66, 0, 0},
11115  {0xB1, 0x66, 0x66, 0, 0},
11116  {0xB2, 0x66, 0x66, 0, 0},
11117  {0xB3, 0xa, 0xa, 0, 0},
11118  {0xB4, 0, 0, 0, 0},
11119  {0xB5, 0, 0, 0, 0},
11120  {0xB6, 0, 0, 0, 0},
11121  {0xFFFF, 0, 0, 0, 0},
11122 };
11123 
11124 static const struct radio_regs regs_TX_2056_rev11[] = {
11125  {0x02, 0, 0, 0, 0},
11126  {0x03, 0, 0, 0, 0},
11127  {0x04, 0, 0, 0, 0},
11128  {0x05, 0, 0, 0, 0},
11129  {0x06, 0, 0, 0, 0},
11130  {0x07, 0, 0, 0, 0},
11131  {0x08, 0, 0, 0, 0},
11132  {0x09, 0, 0, 0, 0},
11133  {0x0A, 0, 0, 0, 0},
11134  {0x0B, 0, 0, 0, 0},
11135  {0x0C, 0, 0, 0, 0},
11136  {0x0D, 0, 0, 0, 0},
11137  {0x0E, 0, 0, 0, 0},
11138  {0x0F, 0, 0, 0, 0},
11139  {0x10, 0, 0, 0, 0},
11140  {0x11, 0, 0, 0, 0},
11141  {0x12, 0, 0, 0, 0},
11142  {0x13, 0, 0, 0, 0},
11143  {0x14, 0, 0, 0, 0},
11144  {0x15, 0, 0, 0, 0},
11145  {0x16, 0, 0, 0, 0},
11146  {0x17, 0, 0, 0, 0},
11147  {0x18, 0, 0, 0, 0},
11148  {0x19, 0, 0, 0, 0},
11149  {0x1A, 0, 0, 0, 0},
11150  {0x1B, 0, 0, 0, 0},
11151  {0x1C, 0, 0, 0, 0},
11152  {0x1D, 0, 0, 0, 0},
11153  {0x1E, 0, 0, 0, 0},
11154  {0x1F, 0, 0, 0, 0},
11155  {0x20, 0, 0, 0, 0},
11156  {0x21, 0x88, 0x88, 0, 0},
11157  {0x22, 0x88, 0x88, 0, 0},
11158  {0x23, 0x88, 0x88, 0, 0},
11159  {0x24, 0x88, 0x88, 0, 0},
11160  {0x25, 0xc, 0xc, 0, 0},
11161  {0x26, 0, 0, 0, 0},
11162  {0x27, 0x3, 0x3, 0, 0},
11163  {0x28, 0, 0, 0, 0},
11164  {0x29, 0x3, 0x3, 0, 0},
11165  {0x2A, 0x37, 0x37, 0, 0},
11166  {0x2B, 0x3, 0x3, 0, 0},
11167  {0x2C, 0, 0, 0, 0},
11168  {0x2D, 0, 0, 0, 0},
11169  {0x2E, 0x1, 0x1, 0, 0},
11170  {0x2F, 0x1, 0x1, 0, 0},
11171  {0x30, 0, 0, 0, 0},
11172  {0x31, 0, 0, 0, 0},
11173  {0x32, 0, 0, 0, 0},
11174  {0x33, 0x11, 0x11, 0, 0},
11175  {0x34, 0xee, 0xee, 1, 1},
11176  {0x35, 0, 0, 0, 0},
11177  {0x36, 0, 0, 0, 0},
11178  {0x37, 0x3, 0x3, 0, 0},
11179  {0x38, 0x50, 0x50, 1, 1},
11180  {0x39, 0, 0, 0, 0},
11181  {0x3A, 0x50, 0x50, 1, 1},
11182  {0x3B, 0, 0, 0, 0},
11183  {0x3C, 0x6e, 0x6e, 0, 0},
11184  {0x3D, 0xf0, 0xf0, 1, 1},
11185  {0x3E, 0, 0, 0, 0},
11186  {0x3F, 0, 0, 0, 0},
11187  {0x40, 0, 0, 0, 0},
11188  {0x41, 0x3, 0x3, 0, 0},
11189  {0x42, 0x3, 0x3, 0, 0},
11190  {0x43, 0, 0, 0, 0},
11191  {0x44, 0x1e, 0x1e, 0, 0},
11192  {0x45, 0, 0, 0, 0},
11193  {0x46, 0x6e, 0x6e, 0, 0},
11194  {0x47, 0xf0, 0xf0, 1, 1},
11195  {0x48, 0, 0, 0, 0},
11196  {0x49, 0x2, 0x2, 0, 0},
11197  {0x4A, 0xff, 0xff, 1, 1},
11198  {0x4B, 0xc, 0xc, 0, 0},
11199  {0x4C, 0, 0, 0, 0},
11200  {0x4D, 0x38, 0x38, 0, 0},
11201  {0x4E, 0x70, 0x70, 1, 1},
11202  {0x4F, 0x2, 0x2, 0, 0},
11203  {0x50, 0x88, 0x88, 0, 0},
11204  {0x51, 0xc, 0xc, 0, 0},
11205  {0x52, 0, 0, 0, 0},
11206  {0x53, 0x8, 0x8, 0, 0},
11207  {0x54, 0x70, 0x70, 1, 1},
11208  {0x55, 0x2, 0x2, 0, 0},
11209  {0x56, 0xff, 0xff, 1, 1},
11210  {0x57, 0, 0, 0, 0},
11211  {0x58, 0x83, 0x83, 0, 0},
11212  {0x59, 0x77, 0x77, 1, 1},
11213  {0x5A, 0, 0, 0, 0},
11214  {0x5B, 0x2, 0x2, 0, 0},
11215  {0x5C, 0x88, 0x88, 0, 0},
11216  {0x5D, 0, 0, 0, 0},
11217  {0x5E, 0x8, 0x8, 0, 0},
11218  {0x5F, 0x77, 0x77, 1, 1},
11219  {0x60, 0x1, 0x1, 0, 0},
11220  {0x61, 0, 0, 0, 0},
11221  {0x62, 0x7, 0x7, 0, 0},
11222  {0x63, 0, 0, 0, 0},
11223  {0x64, 0x7, 0x7, 0, 0},
11224  {0x65, 0, 0, 0, 0},
11225  {0x66, 0, 0, 0, 0},
11226  {0x67, 0, 0, 1, 1},
11227  {0x68, 0, 0, 0, 0},
11228  {0x69, 0xa, 0xa, 0, 0},
11229  {0x6A, 0, 0, 0, 0},
11230  {0x6B, 0, 0, 0, 0},
11231  {0x6C, 0, 0, 0, 0},
11232  {0x6D, 0, 0, 0, 0},
11233  {0x6E, 0, 0, 0, 0},
11234  {0x6F, 0, 0, 0, 0},
11235  {0x70, 0, 0, 0, 0},
11236  {0x71, 0x2, 0x2, 0, 0},
11237  {0x72, 0, 0, 0, 0},
11238  {0x73, 0, 0, 0, 0},
11239  {0x74, 0xe, 0xe, 0, 0},
11240  {0x75, 0xe, 0xe, 0, 0},
11241  {0x76, 0xe, 0xe, 0, 0},
11242  {0x77, 0x13, 0x13, 0, 0},
11243  {0x78, 0x13, 0x13, 0, 0},
11244  {0x79, 0x1b, 0x1b, 0, 0},
11245  {0x7A, 0x1b, 0x1b, 0, 0},
11246  {0x7B, 0x55, 0x55, 0, 0},
11247  {0x7C, 0x5b, 0x5b, 0, 0},
11248  {0x7D, 0x30, 0x30, 1, 1},
11249  {0x7E, 0, 0, 0, 0},
11250  {0x7F, 0, 0, 0, 0},
11251  {0x80, 0, 0, 0, 0},
11252  {0x81, 0, 0, 0, 0},
11253  {0x82, 0, 0, 0, 0},
11254  {0x83, 0, 0, 0, 0},
11255  {0x84, 0, 0, 0, 0},
11256  {0x85, 0, 0, 0, 0},
11257  {0x86, 0, 0, 0, 0},
11258  {0x87, 0, 0, 0, 0},
11259  {0x88, 0, 0, 0, 0},
11260  {0x89, 0, 0, 0, 0},
11261  {0x8A, 0, 0, 0, 0},
11262  {0x8B, 0, 0, 0, 0},
11263  {0x8C, 0, 0, 0, 0},
11264  {0x8D, 0, 0, 0, 0},
11265  {0x8E, 0, 0, 0, 0},
11266  {0x8F, 0, 0, 0, 0},
11267  {0x90, 0, 0, 0, 0},
11268  {0x91, 0, 0, 0, 0},
11269  {0x92, 0, 0, 0, 0},
11270  {0x93, 0x70, 0x70, 0, 0},
11271  {0x94, 0x70, 0x70, 0, 0},
11272  {0x95, 0x70, 0x70, 0, 0},
11273  {0x96, 0x70, 0x70, 0, 0},
11274  {0x97, 0x70, 0x70, 0, 0},
11275  {0x98, 0x70, 0x70, 0, 0},
11276  {0x99, 0x70, 0x70, 0, 0},
11277  {0x9A, 0x70, 0x70, 0, 0},
11278  {0xFFFF, 0, 0, 0, 0},
11279 };
11280 
11281 static const struct radio_regs regs_RX_2056_rev11[] = {
11282  {0x02, 0, 0, 0, 0},
11283  {0x03, 0, 0, 0, 0},
11284  {0x04, 0, 0, 0, 0},
11285  {0x05, 0, 0, 0, 0},
11286  {0x06, 0, 0, 0, 0},
11287  {0x07, 0, 0, 0, 0},
11288  {0x08, 0, 0, 0, 0},
11289  {0x09, 0, 0, 0, 0},
11290  {0x0A, 0, 0, 0, 0},
11291  {0x0B, 0, 0, 0, 0},
11292  {0x0C, 0, 0, 0, 0},
11293  {0x0D, 0, 0, 0, 0},
11294  {0x0E, 0, 0, 0, 0},
11295  {0x0F, 0, 0, 0, 0},
11296  {0x10, 0, 0, 0, 0},
11297  {0x11, 0, 0, 0, 0},
11298  {0x12, 0, 0, 0, 0},
11299  {0x13, 0, 0, 0, 0},
11300  {0x14, 0, 0, 0, 0},
11301  {0x15, 0, 0, 0, 0},
11302  {0x16, 0, 0, 0, 0},
11303  {0x17, 0, 0, 0, 0},
11304  {0x18, 0, 0, 0, 0},
11305  {0x19, 0, 0, 0, 0},
11306  {0x1A, 0, 0, 0, 0},
11307  {0x1B, 0, 0, 0, 0},
11308  {0x1C, 0, 0, 0, 0},
11309  {0x1D, 0, 0, 0, 0},
11310  {0x1E, 0, 0, 0, 0},
11311  {0x1F, 0, 0, 0, 0},
11312  {0x20, 0x3, 0x3, 0, 0},
11313  {0x21, 0, 0, 0, 0},
11314  {0x22, 0, 0, 0, 0},
11315  {0x23, 0x90, 0x90, 0, 0},
11316  {0x24, 0x55, 0x55, 0, 0},
11317  {0x25, 0x15, 0x15, 0, 0},
11318  {0x26, 0x5, 0x5, 0, 0},
11319  {0x27, 0x15, 0x15, 0, 0},
11320  {0x28, 0x5, 0x5, 0, 0},
11321  {0x29, 0x20, 0x20, 0, 0},
11322  {0x2A, 0x11, 0x11, 0, 0},
11323  {0x2B, 0x90, 0x90, 0, 0},
11324  {0x2C, 0, 0, 0, 0},
11325  {0x2D, 0x88, 0x88, 0, 0},
11326  {0x2E, 0x32, 0x32, 0, 0},
11327  {0x2F, 0x77, 0x77, 0, 0},
11328  {0x30, 0x17, 0x17, 1, 1},
11329  {0x31, 0xff, 0xff, 1, 1},
11330  {0x32, 0x20, 0x20, 0, 0},
11331  {0x33, 0, 0, 0, 0},
11332  {0x34, 0x88, 0x88, 0, 0},
11333  {0x35, 0x32, 0x32, 0, 0},
11334  {0x36, 0x77, 0x77, 0, 0},
11335  {0x37, 0x17, 0x17, 1, 1},
11336  {0x38, 0xf0, 0xf0, 1, 1},
11337  {0x39, 0x20, 0x20, 0, 0},
11338  {0x3A, 0x8, 0x8, 0, 0},
11339  {0x3B, 0x55, 0x55, 1, 1},
11340  {0x3C, 0, 0, 0, 0},
11341  {0x3D, 0x88, 0x88, 1, 1},
11342  {0x3E, 0, 0, 0, 0},
11343  {0x3F, 0x44, 0x44, 0, 0},
11344  {0x40, 0x7, 0x7, 1, 1},
11345  {0x41, 0x6, 0x6, 0, 0},
11346  {0x42, 0x4, 0x4, 0, 0},
11347  {0x43, 0, 0, 0, 0},
11348  {0x44, 0x8, 0x8, 0, 0},
11349  {0x45, 0x55, 0x55, 1, 1},
11350  {0x46, 0, 0, 0, 0},
11351  {0x47, 0x11, 0x11, 0, 0},
11352  {0x48, 0, 0, 0, 0},
11353  {0x49, 0x44, 0x44, 0, 0},
11354  {0x4A, 0x7, 0x7, 0, 0},
11355  {0x4B, 0x6, 0x6, 0, 0},
11356  {0x4C, 0x4, 0x4, 0, 0},
11357  {0x4D, 0, 0, 0, 0},
11358  {0x4E, 0, 0, 0, 0},
11359  {0x4F, 0x26, 0x26, 1, 1},
11360  {0x50, 0x26, 0x26, 1, 1},
11361  {0x51, 0xf, 0xf, 1, 1},
11362  {0x52, 0xf, 0xf, 1, 1},
11363  {0x53, 0x44, 0x44, 0, 0},
11364  {0x54, 0, 0, 0, 0},
11365  {0x55, 0, 0, 0, 0},
11366  {0x56, 0x8, 0x8, 0, 0},
11367  {0x57, 0x8, 0x8, 0, 0},
11368  {0x58, 0x7, 0x7, 0, 0},
11369  {0x59, 0x22, 0x22, 0, 0},
11370  {0x5A, 0x22, 0x22, 0, 0},
11371  {0x5B, 0x2, 0x2, 0, 0},
11372  {0x5C, 0x4, 0x4, 1, 1},
11373  {0x5D, 0x7, 0x7, 0, 0},
11374  {0x5E, 0x55, 0x55, 0, 0},
11375  {0x5F, 0x23, 0x23, 0, 0},
11376  {0x60, 0x41, 0x41, 0, 0},
11377  {0x61, 0x1, 0x1, 0, 0},
11378  {0x62, 0xa, 0xa, 0, 0},
11379  {0x63, 0, 0, 0, 0},
11380  {0x64, 0, 0, 0, 0},
11381  {0x65, 0, 0, 0, 0},
11382  {0x66, 0, 0, 0, 0},
11383  {0x67, 0, 0, 0, 0},
11384  {0x68, 0, 0, 0, 0},
11385  {0x69, 0, 0, 0, 0},
11386  {0x6A, 0, 0, 0, 0},
11387  {0x6B, 0xc, 0xc, 0, 0},
11388  {0x6C, 0, 0, 0, 0},
11389  {0x6D, 0, 0, 0, 0},
11390  {0x6E, 0, 0, 0, 0},
11391  {0x6F, 0, 0, 0, 0},
11392  {0x70, 0, 0, 0, 0},
11393  {0x71, 0, 0, 0, 0},
11394  {0x72, 0x22, 0x22, 0, 0},
11395  {0x73, 0x22, 0x22, 0, 0},
11396  {0x74, 0, 0, 1, 1},
11397  {0x75, 0xa, 0xa, 0, 0},
11398  {0x76, 0x1, 0x1, 0, 0},
11399  {0x77, 0x22, 0x22, 0, 0},
11400  {0x78, 0x30, 0x30, 0, 0},
11401  {0x79, 0, 0, 0, 0},
11402  {0x7A, 0, 0, 0, 0},
11403  {0x7B, 0, 0, 0, 0},
11404  {0x7C, 0, 0, 0, 0},
11405  {0x7D, 0x5, 0x5, 1, 1},
11406  {0x7E, 0, 0, 0, 0},
11407  {0x7F, 0, 0, 0, 0},
11408  {0x80, 0, 0, 0, 0},
11409  {0x81, 0, 0, 0, 0},
11410  {0x82, 0, 0, 0, 0},
11411  {0x83, 0, 0, 0, 0},
11412  {0x84, 0, 0, 0, 0},
11413  {0x85, 0, 0, 0, 0},
11414  {0x86, 0, 0, 0, 0},
11415  {0x87, 0, 0, 0, 0},
11416  {0x88, 0, 0, 0, 0},
11417  {0x89, 0, 0, 0, 0},
11418  {0x8A, 0, 0, 0, 0},
11419  {0x8B, 0, 0, 0, 0},
11420  {0x8C, 0, 0, 0, 0},
11421  {0x8D, 0, 0, 0, 0},
11422  {0x8E, 0, 0, 0, 0},
11423  {0x8F, 0, 0, 0, 0},
11424  {0x90, 0, 0, 0, 0},
11425  {0x91, 0, 0, 0, 0},
11426  {0x92, 0, 0, 0, 0},
11427  {0x93, 0, 0, 0, 0},
11428  {0x94, 0, 0, 0, 0},
11429  {0xFFFF, 0, 0, 0, 0},
11430 };
11431 
11432 static struct radio_20xx_regs regs_2057_rev4[] = {
11433  {0x00, 0x84, 0},
11434  {0x01, 0, 0},
11435  {0x02, 0x60, 0},
11436  {0x03, 0x1f, 0},
11437  {0x04, 0x4, 0},
11438  {0x05, 0x2, 0},
11439  {0x06, 0x1, 0},
11440  {0x07, 0x1, 0},
11441  {0x08, 0x1, 0},
11442  {0x09, 0x69, 0},
11443  {0x0A, 0x66, 0},
11444  {0x0B, 0x6, 0},
11445  {0x0C, 0x18, 0},
11446  {0x0D, 0x3, 0},
11447  {0x0E, 0x20, 1},
11448  {0x0F, 0x20, 0},
11449  {0x10, 0, 0},
11450  {0x11, 0x7c, 0},
11451  {0x12, 0x42, 0},
11452  {0x13, 0xbd, 0},
11453  {0x14, 0x7, 0},
11454  {0x15, 0xf7, 0},
11455  {0x16, 0x8, 0},
11456  {0x17, 0x17, 0},
11457  {0x18, 0x7, 0},
11458  {0x19, 0, 0},
11459  {0x1A, 0x2, 0},
11460  {0x1B, 0x13, 0},
11461  {0x1C, 0x3e, 0},
11462  {0x1D, 0x3e, 0},
11463  {0x1E, 0x96, 0},
11464  {0x1F, 0x4, 0},
11465  {0x20, 0, 0},
11466  {0x21, 0, 0},
11467  {0x22, 0x17, 0},
11468  {0x23, 0x4, 0},
11469  {0x24, 0x1, 0},
11470  {0x25, 0x6, 0},
11471  {0x26, 0x4, 0},
11472  {0x27, 0xd, 0},
11473  {0x28, 0xd, 0},
11474  {0x29, 0x30, 0},
11475  {0x2A, 0x32, 0},
11476  {0x2B, 0x8, 0},
11477  {0x2C, 0x1c, 0},
11478  {0x2D, 0x2, 0},
11479  {0x2E, 0x4, 0},
11480  {0x2F, 0x7f, 0},
11481  {0x30, 0x27, 0},
11482  {0x31, 0, 1},
11483  {0x32, 0, 1},
11484  {0x33, 0, 1},
11485  {0x34, 0, 0},
11486  {0x35, 0x26, 1},
11487  {0x36, 0x18, 0},
11488  {0x37, 0x7, 0},
11489  {0x38, 0x66, 0},
11490  {0x39, 0x66, 0},
11491  {0x3A, 0x66, 0},
11492  {0x3B, 0x66, 0},
11493  {0x3C, 0xff, 1},
11494  {0x3D, 0xff, 1},
11495  {0x3E, 0xff, 1},
11496  {0x3F, 0xff, 1},
11497  {0x40, 0x16, 0},
11498  {0x41, 0x7, 0},
11499  {0x42, 0x19, 0},
11500  {0x43, 0x7, 0},
11501  {0x44, 0x6, 0},
11502  {0x45, 0x3, 0},
11503  {0x46, 0x1, 0},
11504  {0x47, 0x7, 0},
11505  {0x48, 0x33, 0},
11506  {0x49, 0x5, 0},
11507  {0x4A, 0x77, 0},
11508  {0x4B, 0x66, 0},
11509  {0x4C, 0x66, 0},
11510  {0x4D, 0, 0},
11511  {0x4E, 0x4, 0},
11512  {0x4F, 0xc, 0},
11513  {0x50, 0, 0},
11514  {0x51, 0x75, 0},
11515  {0x56, 0x7, 0},
11516  {0x57, 0, 0},
11517  {0x58, 0, 0},
11518  {0x59, 0xa8, 0},
11519  {0x5A, 0, 0},
11520  {0x5B, 0x1f, 0},
11521  {0x5C, 0x30, 0},
11522  {0x5D, 0x1, 0},
11523  {0x5E, 0x30, 0},
11524  {0x5F, 0x70, 0},
11525  {0x60, 0, 0},
11526  {0x61, 0, 0},
11527  {0x62, 0x33, 1},
11528  {0x63, 0x19, 0},
11529  {0x64, 0x62, 0},
11530  {0x65, 0, 0},
11531  {0x66, 0x11, 0},
11532  {0x69, 0, 0},
11533  {0x6A, 0x7e, 0},
11534  {0x6B, 0x3f, 0},
11535  {0x6C, 0x7f, 0},
11536  {0x6D, 0x78, 0},
11537  {0x6E, 0xc8, 0},
11538  {0x6F, 0x88, 0},
11539  {0x70, 0x8, 0},
11540  {0x71, 0xf, 0},
11541  {0x72, 0xbc, 0},
11542  {0x73, 0x8, 0},
11543  {0x74, 0x60, 0},
11544  {0x75, 0x1e, 0},
11545  {0x76, 0x70, 0},
11546  {0x77, 0, 0},
11547  {0x78, 0, 0},
11548  {0x79, 0, 0},
11549  {0x7A, 0x33, 0},
11550  {0x7B, 0x1e, 0},
11551  {0x7C, 0x62, 0},
11552  {0x7D, 0x11, 0},
11553  {0x80, 0x3c, 0},
11554  {0x81, 0x9c, 0},
11555  {0x82, 0xa, 0},
11556  {0x83, 0x9d, 0},
11557  {0x84, 0xa, 0},
11558  {0x85, 0, 0},
11559  {0x86, 0x40, 0},
11560  {0x87, 0x40, 0},
11561  {0x88, 0x88, 0},
11562  {0x89, 0x10, 0},
11563  {0x8A, 0xf0, 1},
11564  {0x8B, 0x10, 1},
11565  {0x8C, 0xf0, 1},
11566  {0x8D, 0, 0},
11567  {0x8E, 0, 0},
11568  {0x8F, 0x10, 0},
11569  {0x90, 0x55, 0},
11570  {0x91, 0x3f, 1},
11571  {0x92, 0x36, 1},
11572  {0x93, 0, 0},
11573  {0x94, 0, 0},
11574  {0x95, 0, 0},
11575  {0x96, 0x87, 0},
11576  {0x97, 0x11, 0},
11577  {0x98, 0, 0},
11578  {0x99, 0x33, 0},
11579  {0x9A, 0x88, 0},
11580  {0x9B, 0, 0},
11581  {0x9C, 0x87, 0},
11582  {0x9D, 0x11, 0},
11583  {0x9E, 0, 0},
11584  {0x9F, 0x33, 0},
11585  {0xA0, 0x88, 0},
11586  {0xA1, 0xe1, 0},
11587  {0xA2, 0x3f, 0},
11588  {0xA3, 0x44, 0},
11589  {0xA4, 0x8c, 1},
11590  {0xA5, 0x6d, 0},
11591  {0xA6, 0x22, 0},
11592  {0xA7, 0xbe, 0},
11593  {0xA8, 0x55, 1},
11594  {0xA9, 0xc, 0},
11595  {0xAA, 0xc, 0},
11596  {0xAB, 0xaa, 0},
11597  {0xAC, 0x2, 0},
11598  {0xAD, 0, 0},
11599  {0xAE, 0x10, 0},
11600  {0xAF, 0x1, 1},
11601  {0xB0, 0, 0},
11602  {0xB1, 0, 0},
11603  {0xB2, 0x80, 0},
11604  {0xB3, 0x60, 0},
11605  {0xB4, 0x44, 0},
11606  {0xB5, 0x55, 0},
11607  {0xB6, 0x1, 0},
11608  {0xB7, 0x55, 0},
11609  {0xB8, 0x1, 0},
11610  {0xB9, 0x5, 0},
11611  {0xBA, 0x55, 0},
11612  {0xBB, 0x55, 0},
11613  {0xC1, 0, 0},
11614  {0xC2, 0, 0},
11615  {0xC3, 0, 0},
11616  {0xC4, 0, 0},
11617  {0xC5, 0, 0},
11618  {0xC6, 0, 0},
11619  {0xC7, 0, 0},
11620  {0xC8, 0, 0},
11621  {0xC9, 0, 0},
11622  {0xCA, 0, 0},
11623  {0xCB, 0, 0},
11624  {0xCC, 0, 0},
11625  {0xCD, 0, 0},
11626  {0xCE, 0x5e, 0},
11627  {0xCF, 0xc, 0},
11628  {0xD0, 0xc, 0},
11629  {0xD1, 0xc, 0},
11630  {0xD2, 0, 0},
11631  {0xD3, 0x2b, 0},
11632  {0xD4, 0xc, 0},
11633  {0xD5, 0, 0},
11634  {0xD6, 0x75, 0},
11635  {0xDB, 0x7, 0},
11636  {0xDC, 0, 0},
11637  {0xDD, 0, 0},
11638  {0xDE, 0xa8, 0},
11639  {0xDF, 0, 0},
11640  {0xE0, 0x1f, 0},
11641  {0xE1, 0x30, 0},
11642  {0xE2, 0x1, 0},
11643  {0xE3, 0x30, 0},
11644  {0xE4, 0x70, 0},
11645  {0xE5, 0, 0},
11646  {0xE6, 0, 0},
11647  {0xE7, 0x33, 0},
11648  {0xE8, 0x19, 0},
11649  {0xE9, 0x62, 0},
11650  {0xEA, 0, 0},
11651  {0xEB, 0x11, 0},
11652  {0xEE, 0, 0},
11653  {0xEF, 0x7e, 0},
11654  {0xF0, 0x3f, 0},
11655  {0xF1, 0x7f, 0},
11656  {0xF2, 0x78, 0},
11657  {0xF3, 0xc8, 0},
11658  {0xF4, 0x88, 0},
11659  {0xF5, 0x8, 0},
11660  {0xF6, 0xf, 0},
11661  {0xF7, 0xbc, 0},
11662  {0xF8, 0x8, 0},
11663  {0xF9, 0x60, 0},
11664  {0xFA, 0x1e, 0},
11665  {0xFB, 0x70, 0},
11666  {0xFC, 0, 0},
11667  {0xFD, 0, 0},
11668  {0xFE, 0, 0},
11669  {0xFF, 0x33, 0},
11670  {0x100, 0x1e, 0},
11671  {0x101, 0x62, 0},
11672  {0x102, 0x11, 0},
11673  {0x105, 0x3c, 0},
11674  {0x106, 0x9c, 0},
11675  {0x107, 0xa, 0},
11676  {0x108, 0x9d, 0},
11677  {0x109, 0xa, 0},
11678  {0x10A, 0, 0},
11679  {0x10B, 0x40, 0},
11680  {0x10C, 0x40, 0},
11681  {0x10D, 0x88, 0},
11682  {0x10E, 0x10, 0},
11683  {0x10F, 0xf0, 1},
11684  {0x110, 0x10, 1},
11685  {0x111, 0xf0, 1},
11686  {0x112, 0, 0},
11687  {0x113, 0, 0},
11688  {0x114, 0x10, 0},
11689  {0x115, 0x55, 0},
11690  {0x116, 0x3f, 1},
11691  {0x117, 0x36, 1},
11692  {0x118, 0, 0},
11693  {0x119, 0, 0},
11694  {0x11A, 0, 0},
11695  {0x11B, 0x87, 0},
11696  {0x11C, 0x11, 0},
11697  {0x11D, 0, 0},
11698  {0x11E, 0x33, 0},
11699  {0x11F, 0x88, 0},
11700  {0x120, 0, 0},
11701  {0x121, 0x87, 0},
11702  {0x122, 0x11, 0},
11703  {0x123, 0, 0},
11704  {0x124, 0x33, 0},
11705  {0x125, 0x88, 0},
11706  {0x126, 0xe1, 0},
11707  {0x127, 0x3f, 0},
11708  {0x128, 0x44, 0},
11709  {0x129, 0x8c, 1},
11710  {0x12A, 0x6d, 0},
11711  {0x12B, 0x22, 0},
11712  {0x12C, 0xbe, 0},
11713  {0x12D, 0x55, 1},
11714  {0x12E, 0xc, 0},
11715  {0x12F, 0xc, 0},
11716  {0x130, 0xaa, 0},
11717  {0x131, 0x2, 0},
11718  {0x132, 0, 0},
11719  {0x133, 0x10, 0},
11720  {0x134, 0x1, 1},
11721  {0x135, 0, 0},
11722  {0x136, 0, 0},
11723  {0x137, 0x80, 0},
11724  {0x138, 0x60, 0},
11725  {0x139, 0x44, 0},
11726  {0x13A, 0x55, 0},
11727  {0x13B, 0x1, 0},
11728  {0x13C, 0x55, 0},
11729  {0x13D, 0x1, 0},
11730  {0x13E, 0x5, 0},
11731  {0x13F, 0x55, 0},
11732  {0x140, 0x55, 0},
11733  {0x146, 0, 0},
11734  {0x147, 0, 0},
11735  {0x148, 0, 0},
11736  {0x149, 0, 0},
11737  {0x14A, 0, 0},
11738  {0x14B, 0, 0},
11739  {0x14C, 0, 0},
11740  {0x14D, 0, 0},
11741  {0x14E, 0, 0},
11742  {0x14F, 0, 0},
11743  {0x150, 0, 0},
11744  {0x151, 0, 0},
11745  {0x152, 0, 0},
11746  {0x153, 0, 0},
11747  {0x154, 0xc, 0},
11748  {0x155, 0xc, 0},
11749  {0x156, 0xc, 0},
11750  {0x157, 0, 0},
11751  {0x158, 0x2b, 0},
11752  {0x159, 0x84, 0},
11753  {0x15A, 0x15, 0},
11754  {0x15B, 0xf, 0},
11755  {0x15C, 0, 0},
11756  {0x15D, 0, 0},
11757  {0x15E, 0, 1},
11758  {0x15F, 0, 1},
11759  {0x160, 0, 1},
11760  {0x161, 0, 1},
11761  {0x162, 0, 1},
11762  {0x163, 0, 1},
11763  {0x164, 0, 0},
11764  {0x165, 0, 0},
11765  {0x166, 0, 0},
11766  {0x167, 0, 0},
11767  {0x168, 0, 0},
11768  {0x169, 0x2, 1},
11769  {0x16A, 0, 1},
11770  {0x16B, 0, 1},
11771  {0x16C, 0, 1},
11772  {0x16D, 0, 0},
11773  {0x170, 0, 0},
11774  {0x171, 0x77, 0},
11775  {0x172, 0x77, 0},
11776  {0x173, 0x77, 0},
11777  {0x174, 0x77, 0},
11778  {0x175, 0, 0},
11779  {0x176, 0x3, 0},
11780  {0x177, 0x37, 0},
11781  {0x178, 0x3, 0},
11782  {0x179, 0, 0},
11783  {0x17A, 0x21, 0},
11784  {0x17B, 0x21, 0},
11785  {0x17C, 0, 0},
11786  {0x17D, 0xaa, 0},
11787  {0x17E, 0, 0},
11788  {0x17F, 0xaa, 0},
11789  {0x180, 0, 0},
11790  {0x190, 0, 0},
11791  {0x191, 0x77, 0},
11792  {0x192, 0x77, 0},
11793  {0x193, 0x77, 0},
11794  {0x194, 0x77, 0},
11795  {0x195, 0, 0},
11796  {0x196, 0x3, 0},
11797  {0x197, 0x37, 0},
11798  {0x198, 0x3, 0},
11799  {0x199, 0, 0},
11800  {0x19A, 0x21, 0},
11801  {0x19B, 0x21, 0},
11802  {0x19C, 0, 0},
11803  {0x19D, 0xaa, 0},
11804  {0x19E, 0, 0},
11805  {0x19F, 0xaa, 0},
11806  {0x1A0, 0, 0},
11807  {0x1A1, 0x2, 0},
11808  {0x1A2, 0xf, 0},
11809  {0x1A3, 0xf, 0},
11810  {0x1A4, 0, 1},
11811  {0x1A5, 0, 1},
11812  {0x1A6, 0, 1},
11813  {0x1A7, 0x2, 0},
11814  {0x1A8, 0xf, 0},
11815  {0x1A9, 0xf, 0},
11816  {0x1AA, 0, 1},
11817  {0x1AB, 0, 1},
11818  {0x1AC, 0, 1},
11819  {0xFFFF, 0, 0},
11820 };
11821 
11822 static struct radio_20xx_regs regs_2057_rev5[] = {
11823  {0x00, 0, 1},
11824  {0x01, 0x57, 1},
11825  {0x02, 0x20, 1},
11826  {0x03, 0x1f, 0},
11827  {0x04, 0x4, 0},
11828  {0x05, 0x2, 0},
11829  {0x06, 0x1, 0},
11830  {0x07, 0x1, 0},
11831  {0x08, 0x1, 0},
11832  {0x09, 0x69, 0},
11833  {0x0A, 0x66, 0},
11834  {0x0B, 0x6, 0},
11835  {0x0C, 0x18, 0},
11836  {0x0D, 0x3, 0},
11837  {0x0E, 0x20, 0},
11838  {0x0F, 0x20, 0},
11839  {0x10, 0, 0},
11840  {0x11, 0x7c, 0},
11841  {0x12, 0x42, 0},
11842  {0x13, 0xbd, 0},
11843  {0x14, 0x7, 0},
11844  {0x15, 0x87, 0},
11845  {0x16, 0x8, 0},
11846  {0x17, 0x17, 0},
11847  {0x18, 0x7, 0},
11848  {0x19, 0, 0},
11849  {0x1A, 0x2, 0},
11850  {0x1B, 0x13, 0},
11851  {0x1C, 0x3e, 0},
11852  {0x1D, 0x3e, 0},
11853  {0x1E, 0x96, 0},
11854  {0x1F, 0x4, 0},
11855  {0x20, 0, 0},
11856  {0x21, 0, 0},
11857  {0x22, 0x17, 0},
11858  {0x23, 0x6, 1},
11859  {0x24, 0x1, 0},
11860  {0x25, 0x6, 0},
11861  {0x26, 0x4, 0},
11862  {0x27, 0xd, 0},
11863  {0x28, 0xd, 0},
11864  {0x29, 0x30, 0},
11865  {0x2A, 0x32, 0},
11866  {0x2B, 0x8, 0},
11867  {0x2C, 0x1c, 0},
11868  {0x2D, 0x2, 0},
11869  {0x2E, 0x4, 0},
11870  {0x2F, 0x7f, 0},
11871  {0x30, 0x27, 0},
11872  {0x31, 0, 1},
11873  {0x32, 0, 1},
11874  {0x33, 0, 1},
11875  {0x34, 0, 0},
11876  {0x35, 0x20, 0},
11877  {0x36, 0x18, 0},
11878  {0x37, 0x7, 0},
11879  {0x38, 0x66, 0},
11880  {0x39, 0x66, 0},
11881  {0x3C, 0xff, 0},
11882  {0x3D, 0xff, 0},
11883  {0x40, 0x16, 0},
11884  {0x41, 0x7, 0},
11885  {0x45, 0x3, 0},
11886  {0x46, 0x1, 0},
11887  {0x47, 0x7, 0},
11888  {0x4B, 0x66, 0},
11889  {0x4C, 0x66, 0},
11890  {0x4D, 0, 0},
11891  {0x4E, 0x4, 0},
11892  {0x4F, 0xc, 0},
11893  {0x50, 0, 0},
11894  {0x51, 0x70, 1},
11895  {0x56, 0x7, 0},
11896  {0x57, 0, 0},
11897  {0x58, 0, 0},
11898  {0x59, 0x88, 1},
11899  {0x5A, 0, 0},
11900  {0x5B, 0x1f, 0},
11901  {0x5C, 0x20, 1},
11902  {0x5D, 0x1, 0},
11903  {0x5E, 0x30, 0},
11904  {0x5F, 0x70, 0},
11905  {0x60, 0, 0},
11906  {0x61, 0, 0},
11907  {0x62, 0x33, 1},
11908  {0x63, 0xf, 1},
11909  {0x64, 0xf, 1},
11910  {0x65, 0, 0},
11911  {0x66, 0x11, 0},
11912  {0x80, 0x3c, 0},
11913  {0x81, 0x1, 1},
11914  {0x82, 0xa, 0},
11915  {0x85, 0, 0},
11916  {0x86, 0x40, 0},
11917  {0x87, 0x40, 0},
11918  {0x88, 0x88, 0},
11919  {0x89, 0x10, 0},
11920  {0x8A, 0xf0, 0},
11921  {0x8B, 0x10, 0},
11922  {0x8C, 0xf0, 0},
11923  {0x8F, 0x10, 0},
11924  {0x90, 0x55, 0},
11925  {0x91, 0x3f, 1},
11926  {0x92, 0x36, 1},
11927  {0x93, 0, 0},
11928  {0x94, 0, 0},
11929  {0x95, 0, 0},
11930  {0x96, 0x87, 0},
11931  {0x97, 0x11, 0},
11932  {0x98, 0, 0},
11933  {0x99, 0x33, 0},
11934  {0x9A, 0x88, 0},
11935  {0xA1, 0x20, 1},
11936  {0xA2, 0x3f, 0},
11937  {0xA3, 0x44, 0},
11938  {0xA4, 0x8c, 0},
11939  {0xA5, 0x6c, 0},
11940  {0xA6, 0x22, 0},
11941  {0xA7, 0xbe, 0},
11942  {0xA8, 0x55, 0},
11943  {0xAA, 0xc, 0},
11944  {0xAB, 0xaa, 0},
11945  {0xAC, 0x2, 0},
11946  {0xAD, 0, 0},
11947  {0xAE, 0x10, 0},
11948  {0xAF, 0x1, 0},
11949  {0xB0, 0, 0},
11950  {0xB1, 0, 0},
11951  {0xB2, 0x80, 0},
11952  {0xB3, 0x60, 0},
11953  {0xB4, 0x44, 0},
11954  {0xB5, 0x55, 0},
11955  {0xB6, 0x1, 0},
11956  {0xB7, 0x55, 0},
11957  {0xB8, 0x1, 0},
11958  {0xB9, 0x5, 0},
11959  {0xBA, 0x55, 0},
11960  {0xBB, 0x55, 0},
11961  {0xC3, 0, 0},
11962  {0xC4, 0, 0},
11963  {0xC5, 0, 0},
11964  {0xC6, 0, 0},
11965  {0xC7, 0, 0},
11966  {0xC8, 0, 0},
11967  {0xC9, 0, 0},
11968  {0xCA, 0, 0},
11969  {0xCB, 0, 0},
11970  {0xCD, 0, 0},
11971  {0xCE, 0x5e, 0},
11972  {0xCF, 0xc, 0},
11973  {0xD0, 0xc, 0},
11974  {0xD1, 0xc, 0},
11975  {0xD2, 0, 0},
11976  {0xD3, 0x2b, 0},
11977  {0xD4, 0xc, 0},
11978  {0xD5, 0, 0},
11979  {0xD6, 0x70, 1},
11980  {0xDB, 0x7, 0},
11981  {0xDC, 0, 0},
11982  {0xDD, 0, 0},
11983  {0xDE, 0x88, 1},
11984  {0xDF, 0, 0},
11985  {0xE0, 0x1f, 0},
11986  {0xE1, 0x20, 1},
11987  {0xE2, 0x1, 0},
11988  {0xE3, 0x30, 0},
11989  {0xE4, 0x70, 0},
11990  {0xE5, 0, 0},
11991  {0xE6, 0, 0},
11992  {0xE7, 0x33, 0},
11993  {0xE8, 0xf, 1},
11994  {0xE9, 0xf, 1},
11995  {0xEA, 0, 0},
11996  {0xEB, 0x11, 0},
11997  {0x105, 0x3c, 0},
11998  {0x106, 0x1, 1},
11999  {0x107, 0xa, 0},
12000  {0x10A, 0, 0},
12001  {0x10B, 0x40, 0},
12002  {0x10C, 0x40, 0},
12003  {0x10D, 0x88, 0},
12004  {0x10E, 0x10, 0},
12005  {0x10F, 0xf0, 0},
12006  {0x110, 0x10, 0},
12007  {0x111, 0xf0, 0},
12008  {0x114, 0x10, 0},
12009  {0x115, 0x55, 0},
12010  {0x116, 0x3f, 1},
12011  {0x117, 0x36, 1},
12012  {0x118, 0, 0},
12013  {0x119, 0, 0},
12014  {0x11A, 0, 0},
12015  {0x11B, 0x87, 0},
12016  {0x11C, 0x11, 0},
12017  {0x11D, 0, 0},
12018  {0x11E, 0x33, 0},
12019  {0x11F, 0x88, 0},
12020  {0x126, 0x20, 1},
12021  {0x127, 0x3f, 0},
12022  {0x128, 0x44, 0},
12023  {0x129, 0x8c, 0},
12024  {0x12A, 0x6c, 0},
12025  {0x12B, 0x22, 0},
12026  {0x12C, 0xbe, 0},
12027  {0x12D, 0x55, 0},
12028  {0x12F, 0xc, 0},
12029  {0x130, 0xaa, 0},
12030  {0x131, 0x2, 0},
12031  {0x132, 0, 0},
12032  {0x133, 0x10, 0},
12033  {0x134, 0x1, 0},
12034  {0x135, 0, 0},
12035  {0x136, 0, 0},
12036  {0x137, 0x80, 0},
12037  {0x138, 0x60, 0},
12038  {0x139, 0x44, 0},
12039  {0x13A, 0x55, 0},
12040  {0x13B, 0x1, 0},
12041  {0x13C, 0x55, 0},
12042  {0x13D, 0x1, 0},
12043  {0x13E, 0x5, 0},
12044  {0x13F, 0x55, 0},
12045  {0x140, 0x55, 0},
12046  {0x148, 0, 0},
12047  {0x149, 0, 0},
12048  {0x14A, 0, 0},
12049  {0x14B, 0, 0},
12050  {0x14C, 0, 0},
12051  {0x14D, 0, 0},
12052  {0x14E, 0, 0},
12053  {0x14F, 0, 0},
12054  {0x150, 0, 0},
12055  {0x154, 0xc, 0},
12056  {0x155, 0xc, 0},
12057  {0x156, 0xc, 0},
12058  {0x157, 0, 0},
12059  {0x158, 0x2b, 0},
12060  {0x159, 0x84, 0},
12061  {0x15A, 0x15, 0},
12062  {0x15B, 0xf, 0},
12063  {0x15C, 0, 0},
12064  {0x15D, 0, 0},
12065  {0x15E, 0, 1},
12066  {0x15F, 0, 1},
12067  {0x160, 0, 1},
12068  {0x161, 0, 1},
12069  {0x162, 0, 1},
12070  {0x163, 0, 1},
12071  {0x164, 0, 0},
12072  {0x165, 0, 0},
12073  {0x166, 0, 0},
12074  {0x167, 0, 0},
12075  {0x168, 0, 0},
12076  {0x169, 0, 0},
12077  {0x16A, 0, 1},
12078  {0x16B, 0, 1},
12079  {0x16C, 0, 1},
12080  {0x16D, 0, 0},
12081  {0x170, 0, 0},
12082  {0x171, 0x77, 0},
12083  {0x172, 0x77, 0},
12084  {0x173, 0x77, 0},
12085  {0x174, 0x77, 0},
12086  {0x175, 0, 0},
12087  {0x176, 0x3, 0},
12088  {0x177, 0x37, 0},
12089  {0x178, 0x3, 0},
12090  {0x179, 0, 0},
12091  {0x17B, 0x21, 0},
12092  {0x17C, 0, 0},
12093  {0x17D, 0xaa, 0},
12094  {0x17E, 0, 0},
12095  {0x190, 0, 0},
12096  {0x191, 0x77, 0},
12097  {0x192, 0x77, 0},
12098  {0x193, 0x77, 0},
12099  {0x194, 0x77, 0},
12100  {0x195, 0, 0},
12101  {0x196, 0x3, 0},
12102  {0x197, 0x37, 0},
12103  {0x198, 0x3, 0},
12104  {0x199, 0, 0},
12105  {0x19B, 0x21, 0},
12106  {0x19C, 0, 0},
12107  {0x19D, 0xaa, 0},
12108  {0x19E, 0, 0},
12109  {0x1A1, 0x2, 0},
12110  {0x1A2, 0xf, 0},
12111  {0x1A3, 0xf, 0},
12112  {0x1A4, 0, 1},
12113  {0x1A5, 0, 1},
12114  {0x1A6, 0, 1},
12115  {0x1A7, 0x2, 0},
12116  {0x1A8, 0xf, 0},
12117  {0x1A9, 0xf, 0},
12118  {0x1AA, 0, 1},
12119  {0x1AB, 0, 1},
12120  {0x1AC, 0, 1},
12121  {0x1AD, 0x84, 0},
12122  {0x1AE, 0x60, 0},
12123  {0x1AF, 0x47, 0},
12124  {0x1B0, 0x47, 0},
12125  {0x1B1, 0, 0},
12126  {0x1B2, 0, 0},
12127  {0x1B3, 0, 0},
12128  {0x1B4, 0, 0},
12129  {0x1B5, 0, 0},
12130  {0x1B6, 0, 0},
12131  {0x1B7, 0xc, 1},
12132  {0x1B8, 0, 0},
12133  {0x1B9, 0, 0},
12134  {0x1BA, 0, 0},
12135  {0x1BB, 0, 0},
12136  {0x1BC, 0, 0},
12137  {0x1BD, 0, 0},
12138  {0x1BE, 0, 0},
12139  {0x1BF, 0, 0},
12140  {0x1C0, 0, 0},
12141  {0x1C1, 0x1, 1},
12142  {0x1C2, 0x80, 1},
12143  {0x1C3, 0, 0},
12144  {0x1C4, 0, 0},
12145  {0x1C5, 0, 0},
12146  {0x1C6, 0, 0},
12147  {0x1C7, 0, 0},
12148  {0x1C8, 0, 0},
12149  {0x1C9, 0, 0},
12150  {0x1CA, 0, 0},
12151  {0xFFFF, 0, 0}
12152 };
12153 
12154 static struct radio_20xx_regs regs_2057_rev5v1[] = {
12155  {0x00, 0x15, 1},
12156  {0x01, 0x57, 1},
12157  {0x02, 0x20, 1},
12158  {0x03, 0x1f, 0},
12159  {0x04, 0x4, 0},
12160  {0x05, 0x2, 0},
12161  {0x06, 0x1, 0},
12162  {0x07, 0x1, 0},
12163  {0x08, 0x1, 0},
12164  {0x09, 0x69, 0},
12165  {0x0A, 0x66, 0},
12166  {0x0B, 0x6, 0},
12167  {0x0C, 0x18, 0},
12168  {0x0D, 0x3, 0},
12169  {0x0E, 0x20, 0},
12170  {0x0F, 0x20, 0},
12171  {0x10, 0, 0},
12172  {0x11, 0x7c, 0},
12173  {0x12, 0x42, 0},
12174  {0x13, 0xbd, 0},
12175  {0x14, 0x7, 0},
12176  {0x15, 0x87, 0},
12177  {0x16, 0x8, 0},
12178  {0x17, 0x17, 0},
12179  {0x18, 0x7, 0},
12180  {0x19, 0, 0},
12181  {0x1A, 0x2, 0},
12182  {0x1B, 0x13, 0},
12183  {0x1C, 0x3e, 0},
12184  {0x1D, 0x3e, 0},
12185  {0x1E, 0x96, 0},
12186  {0x1F, 0x4, 0},
12187  {0x20, 0, 0},
12188  {0x21, 0, 0},
12189  {0x22, 0x17, 0},
12190  {0x23, 0x6, 1},
12191  {0x24, 0x1, 0},
12192  {0x25, 0x6, 0},
12193  {0x26, 0x4, 0},
12194  {0x27, 0xd, 0},
12195  {0x28, 0xd, 0},
12196  {0x29, 0x30, 0},
12197  {0x2A, 0x32, 0},
12198  {0x2B, 0x8, 0},
12199  {0x2C, 0x1c, 0},
12200  {0x2D, 0x2, 0},
12201  {0x2E, 0x4, 0},
12202  {0x2F, 0x7f, 0},
12203  {0x30, 0x27, 0},
12204  {0x31, 0, 1},
12205  {0x32, 0, 1},
12206  {0x33, 0, 1},
12207  {0x34, 0, 0},
12208  {0x35, 0x20, 0},
12209  {0x36, 0x18, 0},
12210  {0x37, 0x7, 0},
12211  {0x38, 0x66, 0},
12212  {0x39, 0x66, 0},
12213  {0x3C, 0xff, 0},
12214  {0x3D, 0xff, 0},
12215  {0x40, 0x16, 0},
12216  {0x41, 0x7, 0},
12217  {0x45, 0x3, 0},
12218  {0x46, 0x1, 0},
12219  {0x47, 0x7, 0},
12220  {0x4B, 0x66, 0},
12221  {0x4C, 0x66, 0},
12222  {0x4D, 0, 0},
12223  {0x4E, 0x4, 0},
12224  {0x4F, 0xc, 0},
12225  {0x50, 0, 0},
12226  {0x51, 0x70, 1},
12227  {0x56, 0x7, 0},
12228  {0x57, 0, 0},
12229  {0x58, 0, 0},
12230  {0x59, 0x88, 1},
12231  {0x5A, 0, 0},
12232  {0x5B, 0x1f, 0},
12233  {0x5C, 0x20, 1},
12234  {0x5D, 0x1, 0},
12235  {0x5E, 0x30, 0},
12236  {0x5F, 0x70, 0},
12237  {0x60, 0, 0},
12238  {0x61, 0, 0},
12239  {0x62, 0x33, 1},
12240  {0x63, 0xf, 1},
12241  {0x64, 0xf, 1},
12242  {0x65, 0, 0},
12243  {0x66, 0x11, 0},
12244  {0x80, 0x3c, 0},
12245  {0x81, 0x1, 1},
12246  {0x82, 0xa, 0},
12247  {0x85, 0, 0},
12248  {0x86, 0x40, 0},
12249  {0x87, 0x40, 0},
12250  {0x88, 0x88, 0},
12251  {0x89, 0x10, 0},
12252  {0x8A, 0xf0, 0},
12253  {0x8B, 0x10, 0},
12254  {0x8C, 0xf0, 0},
12255  {0x8F, 0x10, 0},
12256  {0x90, 0x55, 0},
12257  {0x91, 0x3f, 1},
12258  {0x92, 0x36, 1},
12259  {0x93, 0, 0},
12260  {0x94, 0, 0},
12261  {0x95, 0, 0},
12262  {0x96, 0x87, 0},
12263  {0x97, 0x11, 0},
12264  {0x98, 0, 0},
12265  {0x99, 0x33, 0},
12266  {0x9A, 0x88, 0},
12267  {0xA1, 0x20, 1},
12268  {0xA2, 0x3f, 0},
12269  {0xA3, 0x44, 0},
12270  {0xA4, 0x8c, 0},
12271  {0xA5, 0x6c, 0},
12272  {0xA6, 0x22, 0},
12273  {0xA7, 0xbe, 0},
12274  {0xA8, 0x55, 0},
12275  {0xAA, 0xc, 0},
12276  {0xAB, 0xaa, 0},
12277  {0xAC, 0x2, 0},
12278  {0xAD, 0, 0},
12279  {0xAE, 0x10, 0},
12280  {0xAF, 0x1, 0},
12281  {0xB0, 0, 0},
12282  {0xB1, 0, 0},
12283  {0xB2, 0x80, 0},
12284  {0xB3, 0x60, 0},
12285  {0xB4, 0x44, 0},
12286  {0xB5, 0x55, 0},
12287  {0xB6, 0x1, 0},
12288  {0xB7, 0x55, 0},
12289  {0xB8, 0x1, 0},
12290  {0xB9, 0x5, 0},
12291  {0xBA, 0x55, 0},
12292  {0xBB, 0x55, 0},
12293  {0xC3, 0, 0},
12294  {0xC4, 0, 0},
12295  {0xC5, 0, 0},
12296  {0xC6, 0, 0},
12297  {0xC7, 0, 0},
12298  {0xC8, 0, 0},
12299  {0xC9, 0x1, 1},
12300  {0xCA, 0, 0},
12301  {0xCB, 0, 0},
12302  {0xCD, 0, 0},
12303  {0xCE, 0x5e, 0},
12304  {0xCF, 0xc, 0},
12305  {0xD0, 0xc, 0},
12306  {0xD1, 0xc, 0},
12307  {0xD2, 0, 0},
12308  {0xD3, 0x2b, 0},
12309  {0xD4, 0xc, 0},
12310  {0xD5, 0, 0},
12311  {0xD6, 0x70, 1},
12312  {0xDB, 0x7, 0},
12313  {0xDC, 0, 0},
12314  {0xDD, 0, 0},
12315  {0xDE, 0x88, 1},
12316  {0xDF, 0, 0},
12317  {0xE0, 0x1f, 0},
12318  {0xE1, 0x20, 1},
12319  {0xE2, 0x1, 0},
12320  {0xE3, 0x30, 0},
12321  {0xE4, 0x70, 0},
12322  {0xE5, 0, 0},
12323  {0xE6, 0, 0},
12324  {0xE7, 0x33, 0},
12325  {0xE8, 0xf, 1},
12326  {0xE9, 0xf, 1},
12327  {0xEA, 0, 0},
12328  {0xEB, 0x11, 0},
12329  {0x105, 0x3c, 0},
12330  {0x106, 0x1, 1},
12331  {0x107, 0xa, 0},
12332  {0x10A, 0, 0},
12333  {0x10B, 0x40, 0},
12334  {0x10C, 0x40, 0},
12335  {0x10D, 0x88, 0},
12336  {0x10E, 0x10, 0},
12337  {0x10F, 0xf0, 0},
12338  {0x110, 0x10, 0},
12339  {0x111, 0xf0, 0},
12340  {0x114, 0x10, 0},
12341  {0x115, 0x55, 0},
12342  {0x116, 0x3f, 1},
12343  {0x117, 0x36, 1},
12344  {0x118, 0, 0},
12345  {0x119, 0, 0},
12346  {0x11A, 0, 0},
12347  {0x11B, 0x87, 0},
12348  {0x11C, 0x11, 0},
12349  {0x11D, 0, 0},
12350  {0x11E, 0x33, 0},
12351  {0x11F, 0x88, 0},
12352  {0x126, 0x20, 1},
12353  {0x127, 0x3f, 0},
12354  {0x128, 0x44, 0},
12355  {0x129, 0x8c, 0},
12356  {0x12A, 0x6c, 0},
12357  {0x12B, 0x22, 0},
12358  {0x12C, 0xbe, 0},
12359  {0x12D, 0x55, 0},
12360  {0x12F, 0xc, 0},
12361  {0x130, 0xaa, 0},
12362  {0x131, 0x2, 0},
12363  {0x132, 0, 0},
12364  {0x133, 0x10, 0},
12365  {0x134, 0x1, 0},
12366  {0x135, 0, 0},
12367  {0x136, 0, 0},
12368  {0x137, 0x80, 0},
12369  {0x138, 0x60, 0},
12370  {0x139, 0x44, 0},
12371  {0x13A, 0x55, 0},
12372  {0x13B, 0x1, 0},
12373  {0x13C, 0x55, 0},
12374  {0x13D, 0x1, 0},
12375  {0x13E, 0x5, 0},
12376  {0x13F, 0x55, 0},
12377  {0x140, 0x55, 0},
12378  {0x148, 0, 0},
12379  {0x149, 0, 0},
12380  {0x14A, 0, 0},
12381  {0x14B, 0, 0},
12382  {0x14C, 0, 0},
12383  {0x14D, 0, 0},
12384  {0x14E, 0x1, 1},
12385  {0x14F, 0, 0},
12386  {0x150, 0, 0},
12387  {0x154, 0xc, 0},
12388  {0x155, 0xc, 0},
12389  {0x156, 0xc, 0},
12390  {0x157, 0, 0},
12391  {0x158, 0x2b, 0},
12392  {0x159, 0x84, 0},
12393  {0x15A, 0x15, 0},
12394  {0x15B, 0xf, 0},
12395  {0x15C, 0, 0},
12396  {0x15D, 0, 0},
12397  {0x15E, 0, 1},
12398  {0x15F, 0, 1},
12399  {0x160, 0, 1},
12400  {0x161, 0, 1},
12401  {0x162, 0, 1},
12402  {0x163, 0, 1},
12403  {0x164, 0, 0},
12404  {0x165, 0, 0},
12405  {0x166, 0, 0},
12406  {0x167, 0, 0},
12407  {0x168, 0, 0},
12408  {0x169, 0, 0},
12409  {0x16A, 0, 1},
12410  {0x16B, 0, 1},
12411  {0x16C, 0, 1},
12412  {0x16D, 0, 0},
12413  {0x170, 0, 0},
12414  {0x171, 0x77, 0},
12415  {0x172, 0x77, 0},
12416  {0x173, 0x77, 0},
12417  {0x174, 0x77, 0},
12418  {0x175, 0, 0},
12419  {0x176, 0x3, 0},
12420  {0x177, 0x37, 0},
12421  {0x178, 0x3, 0},
12422  {0x179, 0, 0},
12423  {0x17B, 0x21, 0},
12424  {0x17C, 0, 0},
12425  {0x17D, 0xaa, 0},
12426  {0x17E, 0, 0},
12427  {0x190, 0, 0},
12428  {0x191, 0x77, 0},
12429  {0x192, 0x77, 0},
12430  {0x193, 0x77, 0},
12431  {0x194, 0x77, 0},
12432  {0x195, 0, 0},
12433  {0x196, 0x3, 0},
12434  {0x197, 0x37, 0},
12435  {0x198, 0x3, 0},
12436  {0x199, 0, 0},
12437  {0x19B, 0x21, 0},
12438  {0x19C, 0, 0},
12439  {0x19D, 0xaa, 0},
12440  {0x19E, 0, 0},
12441  {0x1A1, 0x2, 0},
12442  {0x1A2, 0xf, 0},
12443  {0x1A3, 0xf, 0},
12444  {0x1A4, 0, 1},
12445  {0x1A5, 0, 1},
12446  {0x1A6, 0, 1},
12447  {0x1A7, 0x2, 0},
12448  {0x1A8, 0xf, 0},
12449  {0x1A9, 0xf, 0},
12450  {0x1AA, 0, 1},
12451  {0x1AB, 0, 1},
12452  {0x1AC, 0, 1},
12453  {0x1AD, 0x84, 0},
12454  {0x1AE, 0x60, 0},
12455  {0x1AF, 0x47, 0},
12456  {0x1B0, 0x47, 0},
12457  {0x1B1, 0, 0},
12458  {0x1B2, 0, 0},
12459  {0x1B3, 0, 0},
12460  {0x1B4, 0, 0},
12461  {0x1B5, 0, 0},
12462  {0x1B6, 0, 0},
12463  {0x1B7, 0xc, 1},
12464  {0x1B8, 0, 0},
12465  {0x1B9, 0, 0},
12466  {0x1BA, 0, 0},
12467  {0x1BB, 0, 0},
12468  {0x1BC, 0, 0},
12469  {0x1BD, 0, 0},
12470  {0x1BE, 0, 0},
12471  {0x1BF, 0, 0},
12472  {0x1C0, 0, 0},
12473  {0x1C1, 0x1, 1},
12474  {0x1C2, 0x80, 1},
12475  {0x1C3, 0, 0},
12476  {0x1C4, 0, 0},
12477  {0x1C5, 0, 0},
12478  {0x1C6, 0, 0},
12479  {0x1C7, 0, 0},
12480  {0x1C8, 0, 0},
12481  {0x1C9, 0, 0},
12482  {0x1CA, 0, 0},
12483  {0xFFFF, 0, 0}
12484 };
12485 
12486 static struct radio_20xx_regs regs_2057_rev7[] = {
12487  {0x00, 0, 1},
12488  {0x01, 0x57, 1},
12489  {0x02, 0x20, 1},
12490  {0x03, 0x1f, 0},
12491  {0x04, 0x4, 0},
12492  {0x05, 0x2, 0},
12493  {0x06, 0x1, 0},
12494  {0x07, 0x1, 0},
12495  {0x08, 0x1, 0},
12496  {0x09, 0x69, 0},
12497  {0x0A, 0x66, 0},
12498  {0x0B, 0x6, 0},
12499  {0x0C, 0x18, 0},
12500  {0x0D, 0x3, 0},
12501  {0x0E, 0x20, 0},
12502  {0x0F, 0x20, 0},
12503  {0x10, 0, 0},
12504  {0x11, 0x7c, 0},
12505  {0x12, 0x42, 0},
12506  {0x13, 0xbd, 0},
12507  {0x14, 0x7, 0},
12508  {0x15, 0x87, 0},
12509  {0x16, 0x8, 0},
12510  {0x17, 0x17, 0},
12511  {0x18, 0x7, 0},
12512  {0x19, 0, 0},
12513  {0x1A, 0x2, 0},
12514  {0x1B, 0x13, 0},
12515  {0x1C, 0x3e, 0},
12516  {0x1D, 0x3e, 0},
12517  {0x1E, 0x96, 0},
12518  {0x1F, 0x4, 0},
12519  {0x20, 0, 0},
12520  {0x21, 0, 0},
12521  {0x22, 0x17, 0},
12522  {0x23, 0x6, 0},
12523  {0x24, 0x1, 0},
12524  {0x25, 0x6, 0},
12525  {0x26, 0x4, 0},
12526  {0x27, 0xd, 0},
12527  {0x28, 0xd, 0},
12528  {0x29, 0x30, 0},
12529  {0x2A, 0x32, 0},
12530  {0x2B, 0x8, 0},
12531  {0x2C, 0x1c, 0},
12532  {0x2D, 0x2, 0},
12533  {0x2E, 0x4, 0},
12534  {0x2F, 0x7f, 0},
12535  {0x30, 0x27, 0},
12536  {0x31, 0, 1},
12537  {0x32, 0, 1},
12538  {0x33, 0, 1},
12539  {0x34, 0, 0},
12540  {0x35, 0x20, 0},
12541  {0x36, 0x18, 0},
12542  {0x37, 0x7, 0},
12543  {0x38, 0x66, 0},
12544  {0x39, 0x66, 0},
12545  {0x3A, 0x66, 0},
12546  {0x3B, 0x66, 0},
12547  {0x3C, 0xff, 0},
12548  {0x3D, 0xff, 0},
12549  {0x3E, 0xff, 0},
12550  {0x3F, 0xff, 0},
12551  {0x40, 0x16, 0},
12552  {0x41, 0x7, 0},
12553  {0x42, 0x19, 0},
12554  {0x43, 0x7, 0},
12555  {0x44, 0x6, 0},
12556  {0x45, 0x3, 0},
12557  {0x46, 0x1, 0},
12558  {0x47, 0x7, 0},
12559  {0x48, 0x33, 0},
12560  {0x49, 0x5, 0},
12561  {0x4A, 0x77, 0},
12562  {0x4B, 0x66, 0},
12563  {0x4C, 0x66, 0},
12564  {0x4D, 0, 0},
12565  {0x4E, 0x4, 0},
12566  {0x4F, 0xc, 0},
12567  {0x50, 0, 0},
12568  {0x51, 0x70, 1},
12569  {0x56, 0x7, 0},
12570  {0x57, 0, 0},
12571  {0x58, 0, 0},
12572  {0x59, 0x88, 1},
12573  {0x5A, 0, 0},
12574  {0x5B, 0x1f, 0},
12575  {0x5C, 0x20, 1},
12576  {0x5D, 0x1, 0},
12577  {0x5E, 0x30, 0},
12578  {0x5F, 0x70, 0},
12579  {0x60, 0, 0},
12580  {0x61, 0, 0},
12581  {0x62, 0x33, 1},
12582  {0x63, 0xf, 1},
12583  {0x64, 0x13, 1},
12584  {0x65, 0, 0},
12585  {0x66, 0xee, 1},
12586  {0x69, 0, 0},
12587  {0x6A, 0x7e, 0},
12588  {0x6B, 0x3f, 0},
12589  {0x6C, 0x7f, 0},
12590  {0x6D, 0x78, 0},
12591  {0x6E, 0x58, 1},
12592  {0x6F, 0x88, 0},
12593  {0x70, 0x8, 0},
12594  {0x71, 0xf, 0},
12595  {0x72, 0xbc, 0},
12596  {0x73, 0x8, 0},
12597  {0x74, 0x60, 0},
12598  {0x75, 0x13, 1},
12599  {0x76, 0x70, 0},
12600  {0x77, 0, 0},
12601  {0x78, 0, 0},
12602  {0x79, 0, 0},
12603  {0x7A, 0x33, 0},
12604  {0x7B, 0x13, 1},
12605  {0x7C, 0x14, 1},
12606  {0x7D, 0xee, 1},
12607  {0x80, 0x3c, 0},
12608  {0x81, 0x1, 1},
12609  {0x82, 0xa, 0},
12610  {0x83, 0x9d, 0},
12611  {0x84, 0xa, 0},
12612  {0x85, 0, 0},
12613  {0x86, 0x40, 0},
12614  {0x87, 0x40, 0},
12615  {0x88, 0x88, 0},
12616  {0x89, 0x10, 0},
12617  {0x8A, 0xf0, 0},
12618  {0x8B, 0x10, 0},
12619  {0x8C, 0xf0, 0},
12620  {0x8D, 0, 0},
12621  {0x8E, 0, 0},
12622  {0x8F, 0x10, 0},
12623  {0x90, 0x55, 0},
12624  {0x91, 0x3f, 1},
12625  {0x92, 0x36, 1},
12626  {0x93, 0, 0},
12627  {0x94, 0, 0},
12628  {0x95, 0, 0},
12629  {0x96, 0x87, 0},
12630  {0x97, 0x11, 0},
12631  {0x98, 0, 0},
12632  {0x99, 0x33, 0},
12633  {0x9A, 0x88, 0},
12634  {0x9B, 0, 0},
12635  {0x9C, 0x87, 0},
12636  {0x9D, 0x11, 0},
12637  {0x9E, 0, 0},
12638  {0x9F, 0x33, 0},
12639  {0xA0, 0x88, 0},
12640  {0xA1, 0x20, 1},
12641  {0xA2, 0x3f, 0},
12642  {0xA3, 0x44, 0},
12643  {0xA4, 0x8c, 0},
12644  {0xA5, 0x6c, 0},
12645  {0xA6, 0x22, 0},
12646  {0xA7, 0xbe, 0},
12647  {0xA8, 0x55, 0},
12648  {0xAA, 0xc, 0},
12649  {0xAB, 0xaa, 0},
12650  {0xAC, 0x2, 0},
12651  {0xAD, 0, 0},
12652  {0xAE, 0x10, 0},
12653  {0xAF, 0x1, 0},
12654  {0xB0, 0, 0},
12655  {0xB1, 0, 0},
12656  {0xB2, 0x80, 0},
12657  {0xB3, 0x60, 0},
12658  {0xB4, 0x44, 0},
12659  {0xB5, 0x55, 0},
12660  {0xB6, 0x1, 0},
12661  {0xB7, 0x55, 0},
12662  {0xB8, 0x1, 0},
12663  {0xB9, 0x5, 0},
12664  {0xBA, 0x55, 0},
12665  {0xBB, 0x55, 0},
12666  {0xC1, 0, 0},
12667  {0xC2, 0, 0},
12668  {0xC3, 0, 0},
12669  {0xC4, 0, 0},
12670  {0xC5, 0, 0},
12671  {0xC6, 0, 0},
12672  {0xC7, 0, 0},
12673  {0xC8, 0, 0},
12674  {0xC9, 0, 0},
12675  {0xCA, 0, 0},
12676  {0xCB, 0, 0},
12677  {0xCC, 0, 0},
12678  {0xCD, 0, 0},
12679  {0xCE, 0x5e, 0},
12680  {0xCF, 0xc, 0},
12681  {0xD0, 0xc, 0},
12682  {0xD1, 0xc, 0},
12683  {0xD2, 0, 0},
12684  {0xD3, 0x2b, 0},
12685  {0xD4, 0xc, 0},
12686  {0xD5, 0, 0},
12687  {0xD6, 0x70, 1},
12688  {0xDB, 0x7, 0},
12689  {0xDC, 0, 0},
12690  {0xDD, 0, 0},
12691  {0xDE, 0x88, 1},
12692  {0xDF, 0, 0},
12693  {0xE0, 0x1f, 0},
12694  {0xE1, 0x20, 1},
12695  {0xE2, 0x1, 0},
12696  {0xE3, 0x30, 0},
12697  {0xE4, 0x70, 0},
12698  {0xE5, 0, 0},
12699  {0xE6, 0, 0},
12700  {0xE7, 0x33, 0},
12701  {0xE8, 0xf, 1},
12702  {0xE9, 0x13, 1},
12703  {0xEA, 0, 0},
12704  {0xEB, 0xee, 1},
12705  {0xEE, 0, 0},
12706  {0xEF, 0x7e, 0},
12707  {0xF0, 0x3f, 0},
12708  {0xF1, 0x7f, 0},
12709  {0xF2, 0x78, 0},
12710  {0xF3, 0x58, 1},
12711  {0xF4, 0x88, 0},
12712  {0xF5, 0x8, 0},
12713  {0xF6, 0xf, 0},
12714  {0xF7, 0xbc, 0},
12715  {0xF8, 0x8, 0},
12716  {0xF9, 0x60, 0},
12717  {0xFA, 0x13, 1},
12718  {0xFB, 0x70, 0},
12719  {0xFC, 0, 0},
12720  {0xFD, 0, 0},
12721  {0xFE, 0, 0},
12722  {0xFF, 0x33, 0},
12723  {0x100, 0x13, 1},
12724  {0x101, 0x14, 1},
12725  {0x102, 0xee, 1},
12726  {0x105, 0x3c, 0},
12727  {0x106, 0x1, 1},
12728  {0x107, 0xa, 0},
12729  {0x108, 0x9d, 0},
12730  {0x109, 0xa, 0},
12731  {0x10A, 0, 0},
12732  {0x10B, 0x40, 0},
12733  {0x10C, 0x40, 0},
12734  {0x10D, 0x88, 0},
12735  {0x10E, 0x10, 0},
12736  {0x10F, 0xf0, 0},
12737  {0x110, 0x10, 0},
12738  {0x111, 0xf0, 0},
12739  {0x112, 0, 0},
12740  {0x113, 0, 0},
12741  {0x114, 0x10, 0},
12742  {0x115, 0x55, 0},
12743  {0x116, 0x3f, 1},
12744  {0x117, 0x36, 1},
12745  {0x118, 0, 0},
12746  {0x119, 0, 0},
12747  {0x11A, 0, 0},
12748  {0x11B, 0x87, 0},
12749  {0x11C, 0x11, 0},
12750  {0x11D, 0, 0},
12751  {0x11E, 0x33, 0},
12752  {0x11F, 0x88, 0},
12753  {0x120, 0, 0},
12754  {0x121, 0x87, 0},
12755  {0x122, 0x11, 0},
12756  {0x123, 0, 0},
12757  {0x124, 0x33, 0},
12758  {0x125, 0x88, 0},
12759  {0x126, 0x20, 1},
12760  {0x127, 0x3f, 0},
12761  {0x128, 0x44, 0},
12762  {0x129, 0x8c, 0},
12763  {0x12A, 0x6c, 0},
12764  {0x12B, 0x22, 0},
12765  {0x12C, 0xbe, 0},
12766  {0x12D, 0x55, 0},
12767  {0x12F, 0xc, 0},
12768  {0x130, 0xaa, 0},
12769  {0x131, 0x2, 0},
12770  {0x132, 0, 0},
12771  {0x133, 0x10, 0},
12772  {0x134, 0x1, 0},
12773  {0x135, 0, 0},
12774  {0x136, 0, 0},
12775  {0x137, 0x80, 0},
12776  {0x138, 0x60, 0},
12777  {0x139, 0x44, 0},
12778  {0x13A, 0x55, 0},
12779  {0x13B, 0x1, 0},
12780  {0x13C, 0x55, 0},
12781  {0x13D, 0x1, 0},
12782  {0x13E, 0x5, 0},
12783  {0x13F, 0x55, 0},
12784  {0x140, 0x55, 0},
12785  {0x146, 0, 0},
12786  {0x147, 0, 0},
12787  {0x148, 0, 0},
12788  {0x149, 0, 0},
12789  {0x14A, 0, 0},
12790  {0x14B, 0, 0},
12791  {0x14C, 0, 0},
12792  {0x14D, 0, 0},
12793  {0x14E, 0, 0},
12794  {0x14F, 0, 0},
12795  {0x150, 0, 0},
12796  {0x151, 0, 0},
12797  {0x154, 0xc, 0},
12798  {0x155, 0xc, 0},
12799  {0x156, 0xc, 0},
12800  {0x157, 0, 0},
12801  {0x158, 0x2b, 0},
12802  {0x159, 0x84, 0},
12803  {0x15A, 0x15, 0},
12804  {0x15B, 0xf, 0},
12805  {0x15C, 0, 0},
12806  {0x15D, 0, 0},
12807  {0x15E, 0, 1},
12808  {0x15F, 0, 1},
12809  {0x160, 0, 1},
12810  {0x161, 0, 1},
12811  {0x162, 0, 1},
12812  {0x163, 0, 1},
12813  {0x164, 0, 0},
12814  {0x165, 0, 0},
12815  {0x166, 0, 0},
12816  {0x167, 0, 0},
12817  {0x168, 0, 0},
12818  {0x169, 0, 0},
12819  {0x16A, 0, 1},
12820  {0x16B, 0, 1},
12821  {0x16C, 0, 1},
12822  {0x16D, 0, 0},
12823  {0x170, 0, 0},
12824  {0x171, 0x77, 0},
12825  {0x172, 0x77, 0},
12826  {0x173, 0x77, 0},
12827  {0x174, 0x77, 0},
12828  {0x175, 0, 0},
12829  {0x176, 0x3, 0},
12830  {0x177, 0x37, 0},
12831  {0x178, 0x3, 0},
12832  {0x179, 0, 0},
12833  {0x17A, 0x21, 0},
12834  {0x17B, 0x21, 0},
12835  {0x17C, 0, 0},
12836  {0x17D, 0xaa, 0},
12837  {0x17E, 0, 0},
12838  {0x17F, 0xaa, 0},
12839  {0x180, 0, 0},
12840  {0x190, 0, 0},
12841  {0x191, 0x77, 0},
12842  {0x192, 0x77, 0},
12843  {0x193, 0x77, 0},
12844  {0x194, 0x77, 0},
12845  {0x195, 0, 0},
12846  {0x196, 0x3, 0},
12847  {0x197, 0x37, 0},
12848  {0x198, 0x3, 0},
12849  {0x199, 0, 0},
12850  {0x19A, 0x21, 0},
12851  {0x19B, 0x21, 0},
12852  {0x19C, 0, 0},
12853  {0x19D, 0xaa, 0},
12854  {0x19E, 0, 0},
12855  {0x19F, 0xaa, 0},
12856  {0x1A0, 0, 0},
12857  {0x1A1, 0x2, 0},
12858  {0x1A2, 0xf, 0},
12859  {0x1A3, 0xf, 0},
12860  {0x1A4, 0, 1},
12861  {0x1A5, 0, 1},
12862  {0x1A6, 0, 1},
12863  {0x1A7, 0x2, 0},
12864  {0x1A8, 0xf, 0},
12865  {0x1A9, 0xf, 0},
12866  {0x1AA, 0, 1},
12867  {0x1AB, 0, 1},
12868  {0x1AC, 0, 1},
12869  {0x1AD, 0x84, 0},
12870  {0x1AE, 0x60, 0},
12871  {0x1AF, 0x47, 0},
12872  {0x1B0, 0x47, 0},
12873  {0x1B1, 0, 0},
12874  {0x1B2, 0, 0},
12875  {0x1B3, 0, 0},
12876  {0x1B4, 0, 0},
12877  {0x1B5, 0, 0},
12878  {0x1B6, 0, 0},
12879  {0x1B7, 0x5, 1},
12880  {0x1B8, 0, 0},
12881  {0x1B9, 0, 0},
12882  {0x1BA, 0, 0},
12883  {0x1BB, 0, 0},
12884  {0x1BC, 0, 0},
12885  {0x1BD, 0, 0},
12886  {0x1BE, 0, 0},
12887  {0x1BF, 0, 0},
12888  {0x1C0, 0, 0},
12889  {0x1C1, 0, 0},
12890  {0x1C2, 0xa0, 1},
12891  {0x1C3, 0, 0},
12892  {0x1C4, 0, 0},
12893  {0x1C5, 0, 0},
12894  {0x1C6, 0, 0},
12895  {0x1C7, 0, 0},
12896  {0x1C8, 0, 0},
12897  {0x1C9, 0, 0},
12898  {0x1CA, 0, 0},
12899  {0xFFFF, 0, 0}
12900 };
12901 
12902 static struct radio_20xx_regs regs_2057_rev8[] = {
12903  {0x00, 0x8, 1},
12904  {0x01, 0x57, 1},
12905  {0x02, 0x20, 1},
12906  {0x03, 0x1f, 0},
12907  {0x04, 0x4, 0},
12908  {0x05, 0x2, 0},
12909  {0x06, 0x1, 0},
12910  {0x07, 0x1, 0},
12911  {0x08, 0x1, 0},
12912  {0x09, 0x69, 0},
12913  {0x0A, 0x66, 0},
12914  {0x0B, 0x6, 0},
12915  {0x0C, 0x18, 0},
12916  {0x0D, 0x3, 0},
12917  {0x0E, 0x20, 0},
12918  {0x0F, 0x20, 0},
12919  {0x10, 0, 0},
12920  {0x11, 0x7c, 0},
12921  {0x12, 0x42, 0},
12922  {0x13, 0xbd, 0},
12923  {0x14, 0x7, 0},
12924  {0x15, 0x87, 0},
12925  {0x16, 0x8, 0},
12926  {0x17, 0x17, 0},
12927  {0x18, 0x7, 0},
12928  {0x19, 0, 0},
12929  {0x1A, 0x2, 0},
12930  {0x1B, 0x13, 0},
12931  {0x1C, 0x3e, 0},
12932  {0x1D, 0x3e, 0},
12933  {0x1E, 0x96, 0},
12934  {0x1F, 0x4, 0},
12935  {0x20, 0, 0},
12936  {0x21, 0, 0},
12937  {0x22, 0x17, 0},
12938  {0x23, 0x6, 0},
12939  {0x24, 0x1, 0},
12940  {0x25, 0x6, 0},
12941  {0x26, 0x4, 0},
12942  {0x27, 0xd, 0},
12943  {0x28, 0xd, 0},
12944  {0x29, 0x30, 0},
12945  {0x2A, 0x32, 0},
12946  {0x2B, 0x8, 0},
12947  {0x2C, 0x1c, 0},
12948  {0x2D, 0x2, 0},
12949  {0x2E, 0x4, 0},
12950  {0x2F, 0x7f, 0},
12951  {0x30, 0x27, 0},
12952  {0x31, 0, 1},
12953  {0x32, 0, 1},
12954  {0x33, 0, 1},
12955  {0x34, 0, 0},
12956  {0x35, 0x20, 0},
12957  {0x36, 0x18, 0},
12958  {0x37, 0x7, 0},
12959  {0x38, 0x66, 0},
12960  {0x39, 0x66, 0},
12961  {0x3A, 0x66, 0},
12962  {0x3B, 0x66, 0},
12963  {0x3C, 0xff, 0},
12964  {0x3D, 0xff, 0},
12965  {0x3E, 0xff, 0},
12966  {0x3F, 0xff, 0},
12967  {0x40, 0x16, 0},
12968  {0x41, 0x7, 0},
12969  {0x42, 0x19, 0},
12970  {0x43, 0x7, 0},
12971  {0x44, 0x6, 0},
12972  {0x45, 0x3, 0},
12973  {0x46, 0x1, 0},
12974  {0x47, 0x7, 0},
12975  {0x48, 0x33, 0},
12976  {0x49, 0x5, 0},
12977  {0x4A, 0x77, 0},
12978  {0x4B, 0x66, 0},
12979  {0x4C, 0x66, 0},
12980  {0x4D, 0, 0},
12981  {0x4E, 0x4, 0},
12982  {0x4F, 0xc, 0},
12983  {0x50, 0, 0},
12984  {0x51, 0x70, 1},
12985  {0x56, 0x7, 0},
12986  {0x57, 0, 0},
12987  {0x58, 0, 0},
12988  {0x59, 0x88, 1},
12989  {0x5A, 0, 0},
12990  {0x5B, 0x1f, 0},
12991  {0x5C, 0x20, 1},
12992  {0x5D, 0x1, 0},
12993  {0x5E, 0x30, 0},
12994  {0x5F, 0x70, 0},
12995  {0x60, 0, 0},
12996  {0x61, 0, 0},
12997  {0x62, 0x33, 1},
12998  {0x63, 0xf, 1},
12999  {0x64, 0xf, 1},
13000  {0x65, 0, 0},
13001  {0x66, 0x11, 0},
13002  {0x69, 0, 0},
13003  {0x6A, 0x7e, 0},
13004  {0x6B, 0x3f, 0},
13005  {0x6C, 0x7f, 0},
13006  {0x6D, 0x78, 0},
13007  {0x6E, 0x58, 1},
13008  {0x6F, 0x88, 0},
13009  {0x70, 0x8, 0},
13010  {0x71, 0xf, 0},
13011  {0x72, 0xbc, 0},
13012  {0x73, 0x8, 0},
13013  {0x74, 0x60, 0},
13014  {0x75, 0x13, 1},
13015  {0x76, 0x70, 0},
13016  {0x77, 0, 0},
13017  {0x78, 0, 0},
13018  {0x79, 0, 0},
13019  {0x7A, 0x33, 0},
13020  {0x7B, 0x13, 1},
13021  {0x7C, 0xf, 1},
13022  {0x7D, 0xee, 1},
13023  {0x80, 0x3c, 0},
13024  {0x81, 0x1, 1},
13025  {0x82, 0xa, 0},
13026  {0x83, 0x9d, 0},
13027  {0x84, 0xa, 0},
13028  {0x85, 0, 0},
13029  {0x86, 0x40, 0},
13030  {0x87, 0x40, 0},
13031  {0x88, 0x88, 0},
13032  {0x89, 0x10, 0},
13033  {0x8A, 0xf0, 0},
13034  {0x8B, 0x10, 0},
13035  {0x8C, 0xf0, 0},
13036  {0x8D, 0, 0},
13037  {0x8E, 0, 0},
13038  {0x8F, 0x10, 0},
13039  {0x90, 0x55, 0},
13040  {0x91, 0x3f, 1},
13041  {0x92, 0x36, 1},
13042  {0x93, 0, 0},
13043  {0x94, 0, 0},
13044  {0x95, 0, 0},
13045  {0x96, 0x87, 0},
13046  {0x97, 0x11, 0},
13047  {0x98, 0, 0},
13048  {0x99, 0x33, 0},
13049  {0x9A, 0x88, 0},
13050  {0x9B, 0, 0},
13051  {0x9C, 0x87, 0},
13052  {0x9D, 0x11, 0},
13053  {0x9E, 0, 0},
13054  {0x9F, 0x33, 0},
13055  {0xA0, 0x88, 0},
13056  {0xA1, 0x20, 1},
13057  {0xA2, 0x3f, 0},
13058  {0xA3, 0x44, 0},
13059  {0xA4, 0x8c, 0},
13060  {0xA5, 0x6c, 0},
13061  {0xA6, 0x22, 0},
13062  {0xA7, 0xbe, 0},
13063  {0xA8, 0x55, 0},
13064  {0xAA, 0xc, 0},
13065  {0xAB, 0xaa, 0},
13066  {0xAC, 0x2, 0},
13067  {0xAD, 0, 0},
13068  {0xAE, 0x10, 0},
13069  {0xAF, 0x1, 0},
13070  {0xB0, 0, 0},
13071  {0xB1, 0, 0},
13072  {0xB2, 0x80, 0},
13073  {0xB3, 0x60, 0},
13074  {0xB4, 0x44, 0},
13075  {0xB5, 0x55, 0},
13076  {0xB6, 0x1, 0},
13077  {0xB7, 0x55, 0},
13078  {0xB8, 0x1, 0},
13079  {0xB9, 0x5, 0},
13080  {0xBA, 0x55, 0},
13081  {0xBB, 0x55, 0},
13082  {0xC1, 0, 0},
13083  {0xC2, 0, 0},
13084  {0xC3, 0, 0},
13085  {0xC4, 0, 0},
13086  {0xC5, 0, 0},
13087  {0xC6, 0, 0},
13088  {0xC7, 0, 0},
13089  {0xC8, 0, 0},
13090  {0xC9, 0x1, 1},
13091  {0xCA, 0, 0},
13092  {0xCB, 0, 0},
13093  {0xCC, 0, 0},
13094  {0xCD, 0, 0},
13095  {0xCE, 0x5e, 0},
13096  {0xCF, 0xc, 0},
13097  {0xD0, 0xc, 0},
13098  {0xD1, 0xc, 0},
13099  {0xD2, 0, 0},
13100  {0xD3, 0x2b, 0},
13101  {0xD4, 0xc, 0},
13102  {0xD5, 0, 0},
13103  {0xD6, 0x70, 1},
13104  {0xDB, 0x7, 0},
13105  {0xDC, 0, 0},
13106  {0xDD, 0, 0},
13107  {0xDE, 0x88, 1},
13108  {0xDF, 0, 0},
13109  {0xE0, 0x1f, 0},
13110  {0xE1, 0x20, 1},
13111  {0xE2, 0x1, 0},
13112  {0xE3, 0x30, 0},
13113  {0xE4, 0x70, 0},
13114  {0xE5, 0, 0},
13115  {0xE6, 0, 0},
13116  {0xE7, 0x33, 0},
13117  {0xE8, 0xf, 1},
13118  {0xE9, 0xf, 1},
13119  {0xEA, 0, 0},
13120  {0xEB, 0x11, 0},
13121  {0xEE, 0, 0},
13122  {0xEF, 0x7e, 0},
13123  {0xF0, 0x3f, 0},
13124  {0xF1, 0x7f, 0},
13125  {0xF2, 0x78, 0},
13126  {0xF3, 0x58, 1},
13127  {0xF4, 0x88, 0},
13128  {0xF5, 0x8, 0},
13129  {0xF6, 0xf, 0},
13130  {0xF7, 0xbc, 0},
13131  {0xF8, 0x8, 0},
13132  {0xF9, 0x60, 0},
13133  {0xFA, 0x13, 1},
13134  {0xFB, 0x70, 0},
13135  {0xFC, 0, 0},
13136  {0xFD, 0, 0},
13137  {0xFE, 0, 0},
13138  {0xFF, 0x33, 0},
13139  {0x100, 0x13, 1},
13140  {0x101, 0xf, 1},
13141  {0x102, 0xee, 1},
13142  {0x105, 0x3c, 0},
13143  {0x106, 0x1, 1},
13144  {0x107, 0xa, 0},
13145  {0x108, 0x9d, 0},
13146  {0x109, 0xa, 0},
13147  {0x10A, 0, 0},
13148  {0x10B, 0x40, 0},
13149  {0x10C, 0x40, 0},
13150  {0x10D, 0x88, 0},
13151  {0x10E, 0x10, 0},
13152  {0x10F, 0xf0, 0},
13153  {0x110, 0x10, 0},
13154  {0x111, 0xf0, 0},
13155  {0x112, 0, 0},
13156  {0x113, 0, 0},
13157  {0x114, 0x10, 0},
13158  {0x115, 0x55, 0},
13159  {0x116, 0x3f, 1},
13160  {0x117, 0x36, 1},
13161  {0x118, 0, 0},
13162  {0x119, 0, 0},
13163  {0x11A, 0, 0},
13164  {0x11B, 0x87, 0},
13165  {0x11C, 0x11, 0},
13166  {0x11D, 0, 0},
13167  {0x11E, 0x33, 0},
13168  {0x11F, 0x88, 0},
13169  {0x120, 0, 0},
13170  {0x121, 0x87, 0},
13171  {0x122, 0x11, 0},
13172  {0x123, 0, 0},
13173  {0x124, 0x33, 0},
13174  {0x125, 0x88, 0},
13175  {0x126, 0x20, 1},
13176  {0x127, 0x3f, 0},
13177  {0x128, 0x44, 0},
13178  {0x129, 0x8c, 0},
13179  {0x12A, 0x6c, 0},
13180  {0x12B, 0x22, 0},
13181  {0x12C, 0xbe, 0},
13182  {0x12D, 0x55, 0},
13183  {0x12F, 0xc, 0},
13184  {0x130, 0xaa, 0},
13185  {0x131, 0x2, 0},
13186  {0x132, 0, 0},
13187  {0x133, 0x10, 0},
13188  {0x134, 0x1, 0},
13189  {0x135, 0, 0},
13190  {0x136, 0, 0},
13191  {0x137, 0x80, 0},
13192  {0x138, 0x60, 0},
13193  {0x139, 0x44, 0},
13194  {0x13A, 0x55, 0},
13195  {0x13B, 0x1, 0},
13196  {0x13C, 0x55, 0},
13197  {0x13D, 0x1, 0},
13198  {0x13E, 0x5, 0},
13199  {0x13F, 0x55, 0},
13200  {0x140, 0x55, 0},
13201  {0x146, 0, 0},
13202  {0x147, 0, 0},
13203  {0x148, 0, 0},
13204  {0x149, 0, 0},
13205  {0x14A, 0, 0},
13206  {0x14B, 0, 0},
13207  {0x14C, 0, 0},
13208  {0x14D, 0, 0},
13209  {0x14E, 0x1, 1},
13210  {0x14F, 0, 0},
13211  {0x150, 0, 0},
13212  {0x151, 0, 0},
13213  {0x154, 0xc, 0},
13214  {0x155, 0xc, 0},
13215  {0x156, 0xc, 0},
13216  {0x157, 0, 0},
13217  {0x158, 0x2b, 0},
13218  {0x159, 0x84, 0},
13219  {0x15A, 0x15, 0},
13220  {0x15B, 0xf, 0},
13221  {0x15C, 0, 0},
13222  {0x15D, 0, 0},
13223  {0x15E, 0, 1},
13224  {0x15F, 0, 1},
13225  {0x160, 0, 1},
13226  {0x161, 0, 1},
13227  {0x162, 0, 1},
13228  {0x163, 0, 1},
13229  {0x164, 0, 0},
13230  {0x165, 0, 0},
13231  {0x166, 0, 0},
13232  {0x167, 0, 0},
13233  {0x168, 0, 0},
13234  {0x169, 0, 0},
13235  {0x16A, 0, 1},
13236  {0x16B, 0, 1},
13237  {0x16C, 0, 1},
13238  {0x16D, 0, 0},
13239  {0x170, 0, 0},
13240  {0x171, 0x77, 0},
13241  {0x172, 0x77, 0},
13242  {0x173, 0x77, 0},
13243  {0x174, 0x77, 0},
13244  {0x175, 0, 0},
13245  {0x176, 0x3, 0},
13246  {0x177, 0x37, 0},
13247  {0x178, 0x3, 0},
13248  {0x179, 0, 0},
13249  {0x17A, 0x21, 0},
13250  {0x17B, 0x21, 0},
13251  {0x17C, 0, 0},
13252  {0x17D, 0xaa, 0},
13253  {0x17E, 0, 0},
13254  {0x17F, 0xaa, 0},
13255  {0x180, 0, 0},
13256  {0x190, 0, 0},
13257  {0x191, 0x77, 0},
13258  {0x192, 0x77, 0},
13259  {0x193, 0x77, 0},
13260  {0x194, 0x77, 0},
13261  {0x195, 0, 0},
13262  {0x196, 0x3, 0},
13263  {0x197, 0x37, 0},
13264  {0x198, 0x3, 0},
13265  {0x199, 0, 0},
13266  {0x19A, 0x21, 0},
13267  {0x19B, 0x21, 0},
13268  {0x19C, 0, 0},
13269  {0x19D, 0xaa, 0},
13270  {0x19E, 0, 0},
13271  {0x19F, 0xaa, 0},
13272  {0x1A0, 0, 0},
13273  {0x1A1, 0x2, 0},
13274  {0x1A2, 0xf, 0},
13275  {0x1A3, 0xf, 0},
13276  {0x1A4, 0, 1},
13277  {0x1A5, 0, 1},
13278  {0x1A6, 0, 1},
13279  {0x1A7, 0x2, 0},
13280  {0x1A8, 0xf, 0},
13281  {0x1A9, 0xf, 0},
13282  {0x1AA, 0, 1},
13283  {0x1AB, 0, 1},
13284  {0x1AC, 0, 1},
13285  {0x1AD, 0x84, 0},
13286  {0x1AE, 0x60, 0},
13287  {0x1AF, 0x47, 0},
13288  {0x1B0, 0x47, 0},
13289  {0x1B1, 0, 0},
13290  {0x1B2, 0, 0},
13291  {0x1B3, 0, 0},
13292  {0x1B4, 0, 0},
13293  {0x1B5, 0, 0},
13294  {0x1B6, 0, 0},
13295  {0x1B7, 0x5, 1},
13296  {0x1B8, 0, 0},
13297  {0x1B9, 0, 0},
13298  {0x1BA, 0, 0},
13299  {0x1BB, 0, 0},
13300  {0x1BC, 0, 0},
13301  {0x1BD, 0, 0},
13302  {0x1BE, 0, 0},
13303  {0x1BF, 0, 0},
13304  {0x1C0, 0, 0},
13305  {0x1C1, 0, 0},
13306  {0x1C2, 0xa0, 1},
13307  {0x1C3, 0, 0},
13308  {0x1C4, 0, 0},
13309  {0x1C5, 0, 0},
13310  {0x1C6, 0, 0},
13311  {0x1C7, 0, 0},
13312  {0x1C8, 0, 0},
13313  {0x1C9, 0, 0},
13314  {0x1CA, 0, 0},
13315  {0xFFFF, 0, 0}
13316 };
13317 
13318 static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
13319 
13320 static s32 nphy_lnagain_est0[] = { -315, 40370 };
13321 static s32 nphy_lnagain_est1[] = { -224, 23242 };
13322 
13323 static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
13324  {
13325  {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13326  {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13327  {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13328  {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13329  {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13330  {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13331  {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13332  {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13333  {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13334  },
13335  {
13336  {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13337  {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13338  {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13339  {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13340  {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13341  {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13342  {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13343  {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13344  {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13345  }
13346 };
13347 
13348 static const u32 nphy_tpc_txgain[] = {
13349  0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13350  0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13351  0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13352  0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13353  0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13354  0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13355  0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13356  0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13357  0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13358  0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13359  0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13360  0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13361  0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13362  0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13363  0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13364  0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13365  0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13366  0x03902942, 0x03902844, 0x03902842, 0x03902744,
13367  0x03902742, 0x03902644, 0x03902642, 0x03902544,
13368  0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13369  0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13370  0x03802842, 0x03802744, 0x03802742, 0x03802644,
13371  0x03802642, 0x03802544, 0x03802542, 0x03802444,
13372  0x03802442, 0x03802344, 0x03802342, 0x03802244,
13373  0x03802242, 0x03802144, 0x03802142, 0x03802044,
13374  0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13375  0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13376  0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13377  0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13378  0x03801842, 0x03801744, 0x03801742, 0x03801644,
13379  0x03801642, 0x03801544, 0x03801542, 0x03801444,
13380  0x03801442, 0x03801344, 0x03801342, 0x00002b00
13381 };
13382 
13383 static const u16 nphy_tpc_loscale[] = {
13384  256, 256, 271, 271, 287, 256, 256, 271,
13385  271, 287, 287, 304, 304, 256, 256, 271,
13386  271, 287, 287, 304, 304, 322, 322, 341,
13387  341, 362, 362, 383, 383, 256, 256, 271,
13388  271, 287, 287, 304, 304, 322, 322, 256,
13389  256, 271, 271, 287, 287, 304, 304, 322,
13390  322, 341, 341, 362, 362, 256, 256, 271,
13391  271, 287, 287, 304, 304, 322, 322, 256,
13392  256, 271, 271, 287, 287, 304, 304, 322,
13393  322, 341, 341, 362, 362, 256, 256, 271,
13394  271, 287, 287, 304, 304, 322, 322, 341,
13395  341, 362, 362, 383, 383, 406, 406, 430,
13396  430, 455, 455, 482, 482, 511, 511, 541,
13397  541, 573, 573, 607, 607, 643, 643, 681,
13398  681, 722, 722, 764, 764, 810, 810, 858,
13399  858, 908, 908, 962, 962, 1019, 1019, 256
13400 };
13401 
13402 static u32 nphy_tpc_txgain_ipa[] = {
13403  0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13404  0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13405  0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13406  0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13407  0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13408  0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13409  0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13410  0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13411  0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13412  0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13413  0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13414  0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13415  0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13416  0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13417  0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13418  0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13419  0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13420  0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13421  0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13422  0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13423  0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13424  0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13425  0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13426  0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13427  0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13428  0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13429  0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13430  0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13431  0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13432  0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13433  0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13434  0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13435 };
13436 
13437 static u32 nphy_tpc_txgain_ipa_rev5[] = {
13438  0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13439  0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13440  0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13441  0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13442  0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13443  0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13444  0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13445  0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13446  0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13447  0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13448  0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13449  0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13450  0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13451  0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13452  0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13453  0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13454  0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13455  0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13456  0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13457  0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13458  0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13459  0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13460  0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13461  0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13462  0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13463  0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13464  0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13465  0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13466  0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13467  0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13468  0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13469  0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13470 };
13471 
13472 static u32 nphy_tpc_txgain_ipa_rev6[] = {
13473  0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13474  0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13475  0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13476  0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13477  0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13478  0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13479  0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13480  0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13481  0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13482  0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13483  0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13484  0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13485  0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13486  0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13487  0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13488  0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13489  0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13490  0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13491  0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13492  0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13493  0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13494  0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13495  0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13496  0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13497  0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13498  0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13499  0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13500  0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13501  0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13502  0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13503  0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13504  0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13505 };
13506 
13507 static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
13508  0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13509  0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13510  0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13511  0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13512  0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13513  0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13514  0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13515  0x70470028, 0x70470026, 0x70470024, 0x70470022,
13516  0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13517  0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13518  0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13519  0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13520  0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13521  0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13522  0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13523  0x70170019, 0x70170018, 0x70170016, 0x70170015,
13524  0x70170014, 0x70170013, 0x70170012, 0x70170010,
13525  0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13526  0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13527  0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13528  0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13529  0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13530  0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13531  0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13532  0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13533  0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13534  0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13535  0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13536  0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13537  0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13538  0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13539  0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13540 };
13541 
13542 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
13543  0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13544  0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13545  0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13546  0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13547  0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13548  0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13549  0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13550  0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13551  0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13552  0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13553  0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13554  0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13555  0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13556  0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13557  0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13558  0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13559  0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13560  0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13561  0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13562  0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13563  0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13564  0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13565  0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13566  0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13567  0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13568  0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13569  0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13570  0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13571  0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13572  0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13573  0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13574  0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13575 };
13576 
13577 static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
13578  0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13579  0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13580  0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13581  0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13582  0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13583  0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13584  0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13585  0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13586  0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13587  0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13588  0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13589  0x30170028, 0x30170026, 0x30170024, 0x30170022,
13590  0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13591  0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13592  0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13593  0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13594  0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13595  0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13596  0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13597  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13598  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13599  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13600  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13601  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13602  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13603  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13604  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13605  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13606  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13607  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13608  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13609  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13610 };
13611 
13612 static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
13613  0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13614  0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13615  0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13616  0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13617  0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13618  0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13619  0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13620  0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13621  0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13622  0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13623  0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13624  0x30170028, 0x30170026, 0x30170024, 0x30170022,
13625  0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13626  0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13627  0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13628  0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13629  0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13630  0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13631  0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13632  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13633  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13634  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13635  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13636  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13637  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13638  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13639  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13640  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13641  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13642  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13643  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13644  0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13645 };
13646 
13647 static u32 nphy_tpc_txgain_ipa_5g[] = {
13648  0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13649  0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13650  0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13651  0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13652  0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13653  0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13654  0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13655  0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13656  0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13657  0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13658  0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13659  0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13660  0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13661  0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13662  0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13663  0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13664  0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13665  0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13666  0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13667  0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13668  0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13669  0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13670  0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13671  0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13672  0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13673  0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13674  0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13675  0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13676  0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13677  0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13678  0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13679  0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13680 };
13681 
13682 static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
13683  0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13684  0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13685  0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13686  0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13687  0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13688  0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13689  0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13690  0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13691  0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13692  0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13693  0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13694  0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13695  0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13696  0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13697  0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13698  0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13699  0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13700  0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13701  0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13702  0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13703  0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13704  0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13705  0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13706  0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13707  0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13708  0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13709  0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13710  0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13711  0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13712  0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13713  0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13714  0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13715 };
13716 
13717 static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
13718  0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13719  0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13720  0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13721  0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13722  0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13723  0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13724  0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13725  0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13726  0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13727  0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13728  0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13729  0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13730  0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13731  0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13732  0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13733  0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13734  0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13735  0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13736  0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13737  0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13738  0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13739  0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13740  0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13741  0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13742  0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13743  0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13744  0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13745  0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13746  0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13747  0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13748  0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13749  0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13750 };
13751 
13752 static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
13753  -114, -108, -98, -91, -84, -78, -70, -62,
13754  -54, -46, -39, -31, -23, -15, -8, 0
13755 };
13756 
13757 static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
13758  -100, -95, -89, -83, -77, -70, -63, -56,
13759  -48, -41, -33, -25, -19, -12, -6, 0
13760 };
13761 
13762 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
13763  -159, -113, -86, -72, -62, -54, -48, -43,
13764  -39, -35, -31, -28, -25, -23, -20, -18,
13765  -17, -15, -13, -11, -10, -8, -7, -6,
13766  -5, -4, -3, -3, -2, -1, -1, 0
13767 };
13768 
13769 static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
13770  -109, -109, -82, -68, -58, -50, -44, -39,
13771  -35, -31, -28, -26, -23, -21, -19, -17,
13772  -16, -14, -13, -11, -10, -9, -8, -7,
13773  -5, -5, -4, -3, -2, -1, -1, 0
13774 };
13775 
13776 static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
13777  -122, -122, -95, -80, -69, -61, -54, -49,
13778  -43, -39, -35, -32, -28, -26, -23, -21,
13779  -18, -16, -15, -13, -11, -10, -8, -7,
13780  -6, -5, -4, -3, -2, -1, -1, 0
13781 };
13782 
13783 static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
13784  -107, -101, -92, -85, -78, -71, -62, -55,
13785  -47, -39, -32, -24, -19, -12, -6, 0
13786 };
13787 
13788 static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
13789  -110, -104, -95, -88, -81, -74, -66, -58,
13790  -50, -44, -36, -28, -23, -15, -8, 0
13791 };
13792 
13793 static u8 pad_gain_codes_used_2057rev5[] = {
13794  20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13795  10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13796 };
13797 
13798 static u8 pad_gain_codes_used_2057rev7[] = {
13799  15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13800  5, 4, 3, 2, 1
13801 };
13802 
13803 static u8 pad_all_gain_codes_2057[] = {
13804  31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13805  21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13806  11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13807  1, 0
13808 };
13809 
13810 static u8 pga_all_gain_codes_2057[] = {
13811  15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13812 };
13813 
13814 static u32 nphy_papd_scaltbl[] = {
13815  0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13816  0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13817  0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13818  0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13819  0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13820  0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13821  0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13822  0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13823  0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13824  0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13825  0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13826  0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13827  0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13828  0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13829  0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13830  0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13831 };
13832 
13833 static u32 nphy_tpc_txgain_rev3[] = {
13834  0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13835  0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13836  0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13837  0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13838  0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13839  0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13840  0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13841  0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13842  0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13843  0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13844  0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13845  0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13846  0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13847  0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13848  0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13849  0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13850  0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13851  0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13852  0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13853  0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13854  0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13855  0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13856  0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13857  0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13858  0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13859  0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13860  0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13861  0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13862  0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13863  0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13864  0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13865  0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13866 };
13867 
13868 static u32 nphy_tpc_txgain_HiPwrEPA[] = {
13869  0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13870  0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13871  0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13872  0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13873  0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13874  0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13875  0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13876  0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13877  0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13878  0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13879  0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13880  0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13881  0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13882  0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13883  0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13884  0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13885  0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13886  0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13887  0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13888  0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13889  0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13890  0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13891  0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13892  0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13893  0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13894  0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13895  0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13896  0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13897  0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13898  0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13899  0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13900  0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13901 };
13902 
13903 static u32 nphy_tpc_txgain_epa_2057rev3[] = {
13904  0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13905  0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13906  0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13907  0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13908  0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13909  0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13910  0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13911  0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13912  0x80290031, 0x80210039, 0x80210036, 0x80210033,
13913  0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13914  0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13915  0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13916  0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13917  0x80110027, 0x80110024, 0x80110022, 0x80110020,
13918  0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13919  0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13920  0x80090029, 0x80090027, 0x80090025, 0x80090023,
13921  0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13922  0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13923  0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13924  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13925  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13926  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13927  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13928  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13929  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13930  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13931  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13932  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13933  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13934  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13935  0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13936 };
13937 
13938 static u32 nphy_tpc_txgain_epa_2057rev5[] = {
13939  0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13940  0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13941  0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13942  0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13943  0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13944  0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13945  0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13946  0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13947  0x10290031, 0x10210039, 0x10210036, 0x10210033,
13948  0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13949  0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13950  0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13951  0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13952  0x10110027, 0x10110024, 0x10110022, 0x10110020,
13953  0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13954  0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13955  0x10090029, 0x10090027, 0x10090025, 0x10090023,
13956  0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13957  0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13958  0x10090015, 0x10090013, 0x10090012, 0x10090011,
13959  0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13960  0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13961  0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13962  0x10090008, 0x10090008, 0x10090007, 0x10090007,
13963  0x10090007, 0x10090006, 0x10090006, 0x10090005,
13964  0x10090005, 0x10090005, 0x10090005, 0x10090004,
13965  0x10090004, 0x10090004, 0x10090004, 0x10090003,
13966  0x10090003, 0x10090003, 0x10090003, 0x10090003,
13967  0x10090003, 0x10090002, 0x10090002, 0x10090002,
13968  0x10090002, 0x10090002, 0x10090002, 0x10090002,
13969  0x10090002, 0x10090002, 0x10090001, 0x10090001,
13970  0x10090001, 0x10090001, 0x10090001, 0x10090001
13971 };
13972 
13973 static u32 nphy_tpc_5GHz_txgain_rev3[] = {
13974  0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13975  0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13976  0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13977  0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13978  0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13979  0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13980  0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13981  0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13982  0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13983  0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13984  0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13985  0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13986  0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13987  0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13988  0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13989  0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13990  0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13991  0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13992  0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13993  0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13994  0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13995  0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13996  0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13997  0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13998  0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13999  0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
14000  0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
14001  0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
14002  0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
14003  0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
14004  0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
14005  0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
14006 };
14007 
14008 static u32 nphy_tpc_5GHz_txgain_rev4[] = {
14009  0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
14010  0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
14011  0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
14012  0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
14013  0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
14014  0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
14015  0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
14016  0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
14017  0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
14018  0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
14019  0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
14020  0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
14021  0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
14022  0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
14023  0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
14024  0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
14025  0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
14026  0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
14027  0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
14028  0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
14029  0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
14030  0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
14031  0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14032  0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14033  0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14034  0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14035  0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14036  0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14037  0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14038  0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14039  0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14040  0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14041 };
14042 
14043 static u32 nphy_tpc_5GHz_txgain_rev5[] = {
14044  0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14045  0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14046  0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14047  0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14048  0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14049  0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14050  0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14051  0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14052  0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14053  0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14054  0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14055  0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14056  0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14057  0x09620039, 0x09620037, 0x09620035, 0x09620033,
14058  0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14059  0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14060  0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14061  0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14062  0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14063  0x06620039, 0x06620037, 0x06620035, 0x06620033,
14064  0x05620046, 0x05620044, 0x05620042, 0x05620040,
14065  0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14066  0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14067  0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14068  0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14069  0x03620038, 0x03620037, 0x03620035, 0x03620033,
14070  0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14071  0x02620046, 0x02620044, 0x02620043, 0x02620042,
14072  0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14073  0x01620043, 0x01620042, 0x01620041, 0x01620040,
14074  0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14075  0x0062003b, 0x00620039, 0x00620037, 0x00620035
14076 };
14077 
14078 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
14079  0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14080  0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14081  0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14082  0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14083  0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14084  0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14085  0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14086  0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14087  0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14088  0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14089  0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14090  0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14091  0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14092  0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14093  0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14094  0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14095  0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14096  0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14097  0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14098  0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14099  0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14100  0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14101  0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14102  0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14103  0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14104  0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14105  0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14106  0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14107  0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14108  0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14109  0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14110  0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14111 };
14112 
14113 static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14114 static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14115 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
14116  0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a
14117 };
14118 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
14119  0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16
14120 };
14121 
14123 {
14124  struct brcms_phy *pi = (struct brcms_phy *) pih;
14125  u32 phybist0, phybist1, phybist2, phybist3, phybist4;
14126 
14127  if (NREV_GE(pi->pubpi.phy_rev, 16))
14128  return true;
14129 
14130  phybist0 = read_phy_reg(pi, 0x0e);
14131  phybist1 = read_phy_reg(pi, 0x0f);
14132  phybist2 = read_phy_reg(pi, 0xea);
14133  phybist3 = read_phy_reg(pi, 0xeb);
14134  phybist4 = read_phy_reg(pi, 0x156);
14135 
14136  if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14137  (phybist3 == 0) && (phybist4 == 0))
14138  return true;
14139 
14140  return false;
14141 }
14142 
14143 static void wlc_phy_bphy_init_nphy(struct brcms_phy *pi)
14144 {
14145  u16 addr, val;
14146 
14147  val = 0x1e1f;
14148  for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14149  addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14150  write_phy_reg(pi, addr, val);
14151  if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14152  val = 0x3e3f;
14153  else
14154  val -= 0x0202;
14155  }
14156 
14158 }
14159 
14160 void
14162  u32 width, const void *data)
14163 {
14164  struct phytbl_info tbl;
14165 
14166  tbl.tbl_id = id;
14167  tbl.tbl_len = len;
14168  tbl.tbl_offset = offset;
14169  tbl.tbl_width = width;
14170  tbl.tbl_ptr = data;
14171  wlc_phy_write_table_nphy(pi, &tbl);
14172 }
14173 
14174 void
14176  u32 width, void *data)
14177 {
14178  struct phytbl_info tbl;
14179 
14180  tbl.tbl_id = id;
14181  tbl.tbl_len = len;
14182  tbl.tbl_offset = offset;
14183  tbl.tbl_width = width;
14184  tbl.tbl_ptr = data;
14185  wlc_phy_read_table_nphy(pi, &tbl);
14186 }
14187 
14188 static void
14189 wlc_phy_static_table_download_nphy(struct brcms_phy *pi)
14190 {
14191  uint idx;
14192 
14193  if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14194  for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14196  &mimophytbl_info_rev16[idx]);
14197  } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14198  for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14200  &mimophytbl_info_rev7[idx]);
14201  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14202  for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14204  &mimophytbl_info_rev3[idx]);
14205  } else {
14206  for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14208  &mimophytbl_info_rev0[idx]);
14209  }
14210 }
14211 
14212 static void wlc_phy_tbl_init_nphy(struct brcms_phy *pi)
14213 {
14214  uint idx = 0;
14215  u8 antswctrllut;
14216 
14217  if (pi->phy_init_por)
14218  wlc_phy_static_table_download_nphy(pi);
14219 
14220  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14221 
14222  antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14223  pi->srom_fem2g.antswctrllut : pi->srom_fem5g.
14224  antswctrllut;
14225 
14226  switch (antswctrllut) {
14227  case 0:
14228 
14229  break;
14230 
14231  case 1:
14232 
14233  if (pi->aa2g == 7)
14235  pi,
14237  2, 0x21, 8,
14238  &ant_sw_ctrl_tbl_rev8_2o3[0]);
14239  else
14241  pi,
14243  2, 0x21, 8,
14244  &ant_sw_ctrl_tbl_rev8
14245  [0]);
14246 
14248  2, 0x25, 8,
14249  &ant_sw_ctrl_tbl_rev8[2]);
14251  2, 0x29, 8,
14252  &ant_sw_ctrl_tbl_rev8[4]);
14253  break;
14254 
14255  case 2:
14256 
14259  2, 0x1, 8,
14260  &ant_sw_ctrl_tbl_rev8_2057v7_core0[0]);
14263  2, 0x5, 8,
14264  &ant_sw_ctrl_tbl_rev8_2057v7_core0[2]);
14267  2, 0x9, 8,
14268  &ant_sw_ctrl_tbl_rev8_2057v7_core0[4]);
14269 
14272  2, 0x21, 8,
14273  &ant_sw_ctrl_tbl_rev8_2057v7_core1[0]);
14276  2, 0x25, 8,
14277  &ant_sw_ctrl_tbl_rev8_2057v7_core1[2]);
14280  2, 0x29, 8,
14281  &ant_sw_ctrl_tbl_rev8_2057v7_core1[4]);
14282  break;
14283 
14284  default:
14285  break;
14286  }
14287 
14288  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14289  for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14290 
14291  if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14292  antswctrllut =
14294  pi->srom_fem2g.antswctrllut :
14295  pi->srom_fem5g.antswctrllut;
14296  switch (antswctrllut) {
14297  case 0:
14299  pi,
14301  [idx]);
14302  break;
14303  case 1:
14305  pi,
14307  [idx]);
14308  break;
14309  case 2:
14311  pi,
14313  [idx]);
14314  break;
14315  case 3:
14317  pi,
14319  [idx]);
14320  break;
14321  default:
14322  break;
14323  }
14324  } else {
14326  pi,
14328  }
14329  }
14330  } else {
14331  for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++)
14334  [idx]);
14335  }
14336 }
14337 
14338 static void
14339 wlc_phy_write_txmacreg_nphy(struct brcms_phy *pi, u16 holdoff, u16 delay)
14340 {
14341  write_phy_reg(pi, 0x77, holdoff);
14342  write_phy_reg(pi, 0xb4, delay);
14343 }
14344 
14346 {
14347  u16 holdoff, delay;
14348 
14349  if (rifs) {
14350 
14351  holdoff = 0x10;
14352  delay = 0x258;
14353  } else {
14354 
14355  holdoff = 0x15;
14356  delay = 0x320;
14357  }
14358 
14359  wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14360 
14361  if (pi->sh && (pi->sh->_rifs_phy != rifs))
14362  pi->sh->_rifs_phy = rifs;
14363 }
14364 
14365 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi)
14366 {
14367 
14368  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14370  pi->phy_5g_pwrgain = true;
14371  return;
14372  }
14373 
14375  pi->phy_5g_pwrgain = false;
14376 
14377  if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14378  NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14380  else if ((pi->sh->sromrev >= 4)
14381  && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14382  pi->phy_5g_pwrgain = true;
14383 }
14384 
14385 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy *pi)
14386 {
14387  u16 bw40po, cddpo, stbcpo, bwduppo;
14388  uint band_num;
14389  struct ssb_sprom *sprom = &pi->d11core->bus->sprom;
14390 
14391  if (pi->sh->sromrev >= 9)
14392  return;
14393 
14394  bw40po = sprom->bw40po;
14395  pi->bw402gpo = bw40po & 0xf;
14396  pi->bw405gpo = (bw40po & 0xf0) >> 4;
14397  pi->bw405glpo = (bw40po & 0xf00) >> 8;
14398  pi->bw405ghpo = (bw40po & 0xf000) >> 12;
14399 
14400  cddpo = sprom->cddpo;
14401  pi->cdd2gpo = cddpo & 0xf;
14402  pi->cdd5gpo = (cddpo & 0xf0) >> 4;
14403  pi->cdd5glpo = (cddpo & 0xf00) >> 8;
14404  pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
14405 
14406  stbcpo = sprom->stbcpo;
14407  pi->stbc2gpo = stbcpo & 0xf;
14408  pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
14409  pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
14410  pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
14411 
14412  bwduppo = sprom->bwduppo;
14413  pi->bwdup2gpo = bwduppo & 0xf;
14414  pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
14415  pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
14416  pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
14417 
14418  for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
14419  band_num++) {
14420  switch (band_num) {
14421  case 0:
14422  pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
14423  sprom->core_pwr_info[0].maxpwr_2g;
14424  pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
14425  sprom->core_pwr_info[1].maxpwr_2g;
14426  pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
14427  sprom->core_pwr_info[0].pa_2g[0];
14428  pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
14429  sprom->core_pwr_info[1].pa_2g[0];
14430  pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
14431  sprom->core_pwr_info[0].pa_2g[1];
14432  pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
14433  sprom->core_pwr_info[1].pa_2g[1];
14434  pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
14435  sprom->core_pwr_info[0].pa_2g[2];
14436  pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
14437  sprom->core_pwr_info[1].pa_2g[2];
14438  pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
14439  sprom->core_pwr_info[0].itssi_2g;
14440  pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
14441  sprom->core_pwr_info[1].itssi_2g;
14442 
14443  pi->cck2gpo = sprom->cck2gpo;
14444 
14445  pi->ofdm2gpo = sprom->ofdm2gpo;
14446 
14447  pi->mcs2gpo[0] = sprom->mcs2gpo[0];
14448  pi->mcs2gpo[1] = sprom->mcs2gpo[1];
14449  pi->mcs2gpo[2] = sprom->mcs2gpo[2];
14450  pi->mcs2gpo[3] = sprom->mcs2gpo[3];
14451  pi->mcs2gpo[4] = sprom->mcs2gpo[4];
14452  pi->mcs2gpo[5] = sprom->mcs2gpo[5];
14453  pi->mcs2gpo[6] = sprom->mcs2gpo[6];
14454  pi->mcs2gpo[7] = sprom->mcs2gpo[7];
14455  break;
14456  case 1:
14457 
14458  pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
14459  sprom->core_pwr_info[0].maxpwr_5g;
14460  pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
14461  sprom->core_pwr_info[1].maxpwr_5g;
14462  pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
14463  sprom->core_pwr_info[0].pa_5g[0];
14464  pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
14465  sprom->core_pwr_info[1].pa_5g[0];
14466  pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
14467  sprom->core_pwr_info[0].pa_5g[1];
14468  pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
14469  sprom->core_pwr_info[1].pa_5g[1];
14470  pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
14471  sprom->core_pwr_info[0].pa_5g[2];
14472  pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
14473  sprom->core_pwr_info[1].pa_5g[2];
14474  pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
14475  sprom->core_pwr_info[0].itssi_5g;
14476  pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
14477  sprom->core_pwr_info[1].itssi_5g;
14478 
14479  pi->ofdm5gpo = sprom->ofdm5gpo;
14480 
14481  pi->mcs5gpo[0] = sprom->mcs5gpo[0];
14482  pi->mcs5gpo[1] = sprom->mcs5gpo[1];
14483  pi->mcs5gpo[2] = sprom->mcs5gpo[2];
14484  pi->mcs5gpo[3] = sprom->mcs5gpo[3];
14485  pi->mcs5gpo[4] = sprom->mcs5gpo[4];
14486  pi->mcs5gpo[5] = sprom->mcs5gpo[5];
14487  pi->mcs5gpo[6] = sprom->mcs5gpo[6];
14488  pi->mcs5gpo[7] = sprom->mcs5gpo[7];
14489  break;
14490  case 2:
14491 
14492  pi->nphy_pwrctrl_info[0].max_pwr_5gl =
14493  sprom->core_pwr_info[0].maxpwr_5gl;
14494  pi->nphy_pwrctrl_info[1].max_pwr_5gl =
14495  sprom->core_pwr_info[1].maxpwr_5gl;
14496  pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
14497  sprom->core_pwr_info[0].pa_5gl[0];
14498  pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
14499  sprom->core_pwr_info[1].pa_5gl[0];
14500  pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
14501  sprom->core_pwr_info[0].pa_5gl[1];
14502  pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
14503  sprom->core_pwr_info[1].pa_5gl[1];
14504  pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
14505  sprom->core_pwr_info[0].pa_5gl[2];
14506  pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
14507  sprom->core_pwr_info[1].pa_5gl[2];
14508  pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
14509  pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
14510 
14511  pi->ofdm5glpo = sprom->ofdm5glpo;
14512 
14513  pi->mcs5glpo[0] = sprom->mcs5glpo[0];
14514  pi->mcs5glpo[1] = sprom->mcs5glpo[1];
14515  pi->mcs5glpo[2] = sprom->mcs5glpo[2];
14516  pi->mcs5glpo[3] = sprom->mcs5glpo[3];
14517  pi->mcs5glpo[4] = sprom->mcs5glpo[4];
14518  pi->mcs5glpo[5] = sprom->mcs5glpo[5];
14519  pi->mcs5glpo[6] = sprom->mcs5glpo[6];
14520  pi->mcs5glpo[7] = sprom->mcs5glpo[7];
14521  break;
14522  case 3:
14523 
14524  pi->nphy_pwrctrl_info[0].max_pwr_5gh =
14525  sprom->core_pwr_info[0].maxpwr_5gh;
14526  pi->nphy_pwrctrl_info[1].max_pwr_5gh =
14527  sprom->core_pwr_info[1].maxpwr_5gh;
14528  pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
14529  sprom->core_pwr_info[0].pa_5gh[0];
14530  pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
14531  sprom->core_pwr_info[1].pa_5gh[0];
14532  pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
14533  sprom->core_pwr_info[0].pa_5gh[1];
14534  pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
14535  sprom->core_pwr_info[1].pa_5gh[1];
14536  pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
14537  sprom->core_pwr_info[0].pa_5gh[2];
14538  pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
14539  sprom->core_pwr_info[1].pa_5gh[2];
14540  pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
14541  pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
14542 
14543  pi->ofdm5ghpo = sprom->ofdm5ghpo;
14544 
14545  pi->mcs5ghpo[0] = sprom->mcs5ghpo[0];
14546  pi->mcs5ghpo[1] = sprom->mcs5ghpo[1];
14547  pi->mcs5ghpo[2] = sprom->mcs5ghpo[2];
14548  pi->mcs5ghpo[3] = sprom->mcs5ghpo[3];
14549  pi->mcs5ghpo[4] = sprom->mcs5ghpo[4];
14550  pi->mcs5ghpo[5] = sprom->mcs5ghpo[5];
14551  pi->mcs5ghpo[6] = sprom->mcs5ghpo[6];
14552  pi->mcs5ghpo[7] = sprom->mcs5ghpo[7];
14553  break;
14554  }
14555  }
14556 
14558 }
14559 
14560 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi)
14561 {
14562  struct ssb_sprom *sprom = &pi->d11core->bus->sprom;
14563 
14564  pi->antswitch = sprom->antswitch;
14565  pi->aa2g = sprom->ant_available_bg;
14566  pi->aa5g = sprom->ant_available_a;
14567 
14568  pi->srom_fem2g.tssipos = sprom->fem.ghz2.tssipos;
14569  pi->srom_fem2g.extpagain = sprom->fem.ghz2.extpa_gain;
14570  pi->srom_fem2g.pdetrange = sprom->fem.ghz2.pdet_range;
14571  pi->srom_fem2g.triso = sprom->fem.ghz2.tr_iso;
14572  pi->srom_fem2g.antswctrllut = sprom->fem.ghz2.antswlut;
14573 
14574  pi->srom_fem5g.tssipos = sprom->fem.ghz5.tssipos;
14575  pi->srom_fem5g.extpagain = sprom->fem.ghz5.extpa_gain;
14576  pi->srom_fem5g.pdetrange = sprom->fem.ghz5.pdet_range;
14577  pi->srom_fem5g.triso = sprom->fem.ghz5.tr_iso;
14578  if (sprom->fem.ghz5.antswlut)
14579  pi->srom_fem5g.antswctrllut = sprom->fem.ghz5.antswlut;
14580  else
14581  pi->srom_fem5g.antswctrllut = sprom->fem.ghz2.antswlut;
14582 
14584 
14585  pi->phy_txcore_disable_temp = sprom->tempthresh;
14586  if (pi->phy_txcore_disable_temp == 0)
14588 
14589  pi->phy_tempsense_offset = sprom->tempoffset;
14590  if (pi->phy_tempsense_offset != 0) {
14591  if (pi->phy_tempsense_offset >
14594  else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
14597  else
14599  }
14600 
14603 
14604  pi->phycal_tempdelta = sprom->phycal_tempdelta;
14606  pi->phycal_tempdelta = 0;
14607 
14608  wlc_phy_txpwr_srom_read_ppr_nphy(pi);
14609 
14610  return true;
14611 }
14612 
14614 {
14615  uint i;
14616 
14617  if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6))
14618  pi->phyhang_avoid = true;
14619 
14620  if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14621  pi->nphy_gband_spurwar_en = true;
14622  if (pi->sh->boardflags2 & BFL2_SPUR_WAR)
14623  pi->nphy_aband_spurwar_en = true;
14624  }
14625  if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14626  if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR)
14627  pi->nphy_gband_spurwar2_en = true;
14628  }
14629 
14630  pi->n_preamble_override = AUTO;
14631  if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14633 
14634  pi->nphy_txrx_chain = AUTO;
14635  pi->phy_scraminit = AUTO;
14636 
14637  pi->nphy_rxcalparams = 0x010100B5;
14638 
14642 
14643  pi->nphy_gain_boost = true;
14644  pi->nphy_elna_gain_config = false;
14645  pi->radio_is_on = false;
14646 
14647  for (i = 0; i < pi->pubpi.phy_corenum; i++)
14648  pi->nphy_txpwrindex[i].index = AUTO;
14649 
14650  wlc_phy_txpwrctrl_config_nphy(pi);
14651  if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14652  pi->hwpwrctrl_capable = true;
14653 
14654  pi->pi_fptr.init = wlc_phy_init_nphy;
14655  pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14656  pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14657  pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14658 
14659  if (!wlc_phy_txpwr_srom_read_nphy(pi))
14660  return false;
14661 
14662  return true;
14663 }
14664 
14665 static s32 get_rf_pwr_offset(struct brcms_phy *pi, s16 pga_gn, s16 pad_gn)
14666 {
14667  s32 rfpwr_offset = 0;
14668 
14669  if (CHSPEC_IS2G(pi->radio_chanspec)) {
14670  if ((pi->pubpi.radiorev == 3) ||
14671  (pi->pubpi.radiorev == 4) ||
14672  (pi->pubpi.radiorev == 6))
14673  rfpwr_offset = (s16)
14674  nphy_papd_padgain_dlt_2g_2057rev3n4
14675  [pad_gn];
14676  else if (pi->pubpi.radiorev == 5)
14677  rfpwr_offset = (s16)
14678  nphy_papd_padgain_dlt_2g_2057rev5
14679  [pad_gn];
14680  else if ((pi->pubpi.radiorev == 7)
14681  || (pi->pubpi.radiorev ==
14682  8))
14683  rfpwr_offset = (s16)
14684  nphy_papd_padgain_dlt_2g_2057rev7
14685  [pad_gn];
14686  } else {
14687  if ((pi->pubpi.radiorev == 3) ||
14688  (pi->pubpi.radiorev == 4) ||
14689  (pi->pubpi.radiorev == 6))
14690  rfpwr_offset = (s16)
14691  nphy_papd_pgagain_dlt_5g_2057
14692  [pga_gn];
14693  else if ((pi->pubpi.radiorev == 7)
14694  || (pi->pubpi.radiorev ==
14695  8))
14696  rfpwr_offset = (s16)
14697  nphy_papd_pgagain_dlt_5g_2057rev7
14698  [pga_gn];
14699  }
14700  return rfpwr_offset;
14701 }
14702 
14703 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble)
14704 {
14705  bool gf_preamble = false;
14706  u16 val;
14707 
14708  if (preamble == BRCMS_N_PREAMBLE_GF)
14709  gf_preamble = true;
14710 
14711  val = read_phy_reg(pi, 0xed);
14712 
14713  val |= RX_GF_MM_AUTO;
14714  val &= ~RX_GF_OR_MM;
14715  if (gf_preamble)
14716  val |= RX_GF_OR_MM;
14717 
14718  write_phy_reg(pi, 0xed, val);
14719 }
14720 
14721 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
14722 {
14723  int j, type;
14724  u16 addr_offset[] = { 0x186, 0x195, 0x2c5};
14725 
14726  for (type = 0; type < 3; type++) {
14727  for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14728  write_phy_reg(pi, addr_offset[type] + j,
14729  NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
14730  }
14731 
14732  if (pi->bw == WL_CHANSPEC_BW_40) {
14733  for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14734  write_phy_reg(pi, 0x186 + j,
14735  NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14736  } else {
14737  if (CHSPEC_IS5G(pi->radio_chanspec)) {
14738  for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14739  write_phy_reg(pi, 0x186 + j,
14740  NPHY_IPA_REV4_txdigi_filtcoeffs[5][j]);
14741  }
14742 
14743  if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
14744  for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14745  write_phy_reg(pi, 0x2c5 + j,
14746  NPHY_IPA_REV4_txdigi_filtcoeffs[6][j]);
14747  }
14748  }
14749 }
14750 
14751 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
14752 {
14753  int j;
14754 
14755  if (pi->bw == WL_CHANSPEC_BW_40) {
14756  for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14757  write_phy_reg(pi, 0x195 + j,
14758  NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
14759  } else {
14760  for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14761  write_phy_reg(pi, 0x186 + j,
14762  NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14763  }
14764 }
14765 
14766 static void
14767 wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys,
14768  u8 len)
14769 {
14770  u32 t1_offset, t2_offset;
14771  u8 ctr;
14772  u8 end_event =
14773  NREV_GE(pi->pubpi.phy_rev,
14775  u8 end_dly = 1;
14776 
14777  if (pi->phyhang_avoid)
14779 
14780  t1_offset = cmd << 4;
14781  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
14782  events);
14783  t2_offset = t1_offset + 0x080;
14784  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
14785  dlys);
14786 
14787  for (ctr = len; ctr < 16; ctr++) {
14789  t1_offset + ctr, 8, &end_event);
14791  t2_offset + ctr, 8, &end_dly);
14792  }
14793 
14794  if (pi->phyhang_avoid)
14796 }
14797 
14798 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset)
14799 {
14800  u16 lpf_bw_ctl_val = 0;
14801  u16 rx2tx_lpf_rc_lut_offset = 0;
14802 
14803  if (offset == 0) {
14804  if (CHSPEC_IS40(pi->radio_chanspec))
14805  rx2tx_lpf_rc_lut_offset = 0x159;
14806  else
14807  rx2tx_lpf_rc_lut_offset = 0x154;
14808  } else {
14809  rx2tx_lpf_rc_lut_offset = offset;
14810  }
14812  (u32) rx2tx_lpf_rc_lut_offset, 16,
14813  &lpf_bw_ctl_val);
14814 
14815  lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
14816 
14817  return lpf_bw_ctl_val;
14818 }
14819 
14820 static void
14821 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
14822  u8 core_mask, u8 off, u8 override_id)
14823 {
14824  u8 core_num;
14825  u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
14826  u8 val_shift = 0;
14827 
14828  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14829  en_mask = field;
14830  for (core_num = 0; core_num < 2; core_num++) {
14831  if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
14832 
14833  switch (field) {
14834  case (0x1 << 2):
14835  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14836  val_addr = (core_num == 0) ? 0x7a :
14837  0x7d;
14838  val_mask = (0x1 << 1);
14839  val_shift = 1;
14840  break;
14841  case (0x1 << 3):
14842  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14843  val_addr = (core_num == 0) ? 0x7a :
14844  0x7d;
14845  val_mask = (0x1 << 2);
14846  val_shift = 2;
14847  break;
14848  case (0x1 << 4):
14849  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14850  val_addr = (core_num == 0) ? 0x7a :
14851  0x7d;
14852  val_mask = (0x1 << 4);
14853  val_shift = 4;
14854  break;
14855  case (0x1 << 5):
14856  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14857  val_addr = (core_num == 0) ? 0x7a :
14858  0x7d;
14859  val_mask = (0x1 << 5);
14860  val_shift = 5;
14861  break;
14862  case (0x1 << 6):
14863  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14864  val_addr = (core_num == 0) ? 0x7a :
14865  0x7d;
14866  val_mask = (0x1 << 6);
14867  val_shift = 6;
14868  break;
14869  case (0x1 << 7):
14870  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14871  val_addr = (core_num == 0) ? 0x7a :
14872  0x7d;
14873  val_mask = (0x1 << 7);
14874  val_shift = 7;
14875  break;
14876  case (0x1 << 10):
14877  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14878  val_addr = (core_num == 0) ? 0xf8 :
14879  0xfa;
14880  val_mask = (0x7 << 4);
14881  val_shift = 4;
14882  break;
14883  case (0x1 << 11):
14884  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14885  val_addr = (core_num == 0) ? 0x7b :
14886  0x7e;
14887  val_mask = (0xffff << 0);
14888  val_shift = 0;
14889  break;
14890  case (0x1 << 12):
14891  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14892  val_addr = (core_num == 0) ? 0x7c :
14893  0x7f;
14894  val_mask = (0xffff << 0);
14895  val_shift = 0;
14896  break;
14897  case (0x3 << 13):
14898  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14899  val_addr = (core_num == 0) ? 0x348 :
14900  0x349;
14901  val_mask = (0xff << 0);
14902  val_shift = 0;
14903  break;
14904  case (0x1 << 13):
14905  en_addr = (core_num == 0) ? 0xe7 : 0xec;
14906  val_addr = (core_num == 0) ? 0x348 :
14907  0x349;
14908  val_mask = (0xf << 0);
14909  val_shift = 0;
14910  break;
14911  default:
14912  addr = 0xffff;
14913  break;
14914  }
14915  } else if (override_id ==
14917 
14918  switch (field) {
14919  case (0x1 << 1):
14920  en_addr = (core_num == 0) ? 0x342 :
14921  0x343;
14922  val_addr = (core_num == 0) ? 0x340 :
14923  0x341;
14924  val_mask = (0x1 << 1);
14925  val_shift = 1;
14926  break;
14927  case (0x1 << 3):
14928  en_addr = (core_num == 0) ? 0x342 :
14929  0x343;
14930  val_addr = (core_num == 0) ? 0x340 :
14931  0x341;
14932  val_mask = (0x1 << 3);
14933  val_shift = 3;
14934  break;
14935  case (0x1 << 5):
14936  en_addr = (core_num == 0) ? 0x342 :
14937  0x343;
14938  val_addr = (core_num == 0) ? 0x340 :
14939  0x341;
14940  val_mask = (0x1 << 5);
14941  val_shift = 5;
14942  break;
14943  case (0x1 << 4):
14944  en_addr = (core_num == 0) ? 0x342 :
14945  0x343;
14946  val_addr = (core_num == 0) ? 0x340 :
14947  0x341;
14948  val_mask = (0x1 << 4);
14949  val_shift = 4;
14950  break;
14951  case (0x1 << 2):
14952 
14953  en_addr = (core_num == 0) ? 0x342 :
14954  0x343;
14955  val_addr = (core_num == 0) ? 0x340 :
14956  0x341;
14957  val_mask = (0x1 << 2);
14958  val_shift = 2;
14959  break;
14960  case (0x1 << 7):
14961 
14962  en_addr = (core_num == 0) ? 0x342 :
14963  0x343;
14964  val_addr = (core_num == 0) ? 0x340 :
14965  0x341;
14966  val_mask = (0x7 << 8);
14967  val_shift = 8;
14968  break;
14969  case (0x1 << 11):
14970  en_addr = (core_num == 0) ? 0x342 :
14971  0x343;
14972  val_addr = (core_num == 0) ? 0x340 :
14973  0x341;
14974  val_mask = (0x1 << 14);
14975  val_shift = 14;
14976  break;
14977  case (0x1 << 10):
14978  en_addr = (core_num == 0) ? 0x342 :
14979  0x343;
14980  val_addr = (core_num == 0) ? 0x340 :
14981  0x341;
14982  val_mask = (0x1 << 13);
14983  val_shift = 13;
14984  break;
14985  case (0x1 << 9):
14986  en_addr = (core_num == 0) ? 0x342 :
14987  0x343;
14988  val_addr = (core_num == 0) ? 0x340 :
14989  0x341;
14990  val_mask = (0x1 << 12);
14991  val_shift = 12;
14992  break;
14993  case (0x1 << 8):
14994  en_addr = (core_num == 0) ? 0x342 :
14995  0x343;
14996  val_addr = (core_num == 0) ? 0x340 :
14997  0x341;
14998  val_mask = (0x1 << 11);
14999  val_shift = 11;
15000  break;
15001  case (0x1 << 6):
15002  en_addr = (core_num == 0) ? 0x342 :
15003  0x343;
15004  val_addr = (core_num == 0) ? 0x340 :
15005  0x341;
15006  val_mask = (0x1 << 6);
15007  val_shift = 6;
15008  break;
15009  case (0x1 << 0):
15010  en_addr = (core_num == 0) ? 0x342 :
15011  0x343;
15012  val_addr = (core_num == 0) ? 0x340 :
15013  0x341;
15014  val_mask = (0x1 << 0);
15015  val_shift = 0;
15016  break;
15017  default:
15018  addr = 0xffff;
15019  break;
15020  }
15021  } else if (override_id ==
15023 
15024  switch (field) {
15025  case (0x1 << 3):
15026  en_addr = (core_num == 0) ? 0x346 :
15027  0x347;
15028  val_addr = (core_num == 0) ? 0x344 :
15029  0x345;
15030  val_mask = (0x1 << 3);
15031  val_shift = 3;
15032  break;
15033  case (0x1 << 1):
15034  en_addr = (core_num == 0) ? 0x346 :
15035  0x347;
15036  val_addr = (core_num == 0) ? 0x344 :
15037  0x345;
15038  val_mask = (0x1 << 1);
15039  val_shift = 1;
15040  break;
15041  case (0x1 << 0):
15042  en_addr = (core_num == 0) ? 0x346 :
15043  0x347;
15044  val_addr = (core_num == 0) ? 0x344 :
15045  0x345;
15046  val_mask = (0x1 << 0);
15047  val_shift = 0;
15048  break;
15049  case (0x1 << 2):
15050  en_addr = (core_num == 0) ? 0x346 :
15051  0x347;
15052  val_addr = (core_num == 0) ? 0x344 :
15053  0x345;
15054  val_mask = (0x1 << 2);
15055  val_shift = 2;
15056  break;
15057  case (0x1 << 4):
15058  en_addr = (core_num == 0) ? 0x346 :
15059  0x347;
15060  val_addr = (core_num == 0) ? 0x344 :
15061  0x345;
15062  val_mask = (0x1 << 4);
15063  val_shift = 4;
15064  break;
15065  default:
15066  addr = 0xffff;
15067  break;
15068  }
15069  }
15070 
15071  if (off) {
15072  and_phy_reg(pi, en_addr, ~en_mask);
15073  and_phy_reg(pi, val_addr, ~val_mask);
15074  } else {
15075 
15076  if ((core_mask == 0)
15077  || (core_mask & (1 << core_num))) {
15078  or_phy_reg(pi, en_addr, en_mask);
15079 
15080  if (addr != 0xffff)
15081  mod_phy_reg(pi, val_addr,
15082  val_mask,
15083  (value <<
15084  val_shift));
15085  }
15086  }
15087  }
15088  }
15089 }
15090 
15091 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
15092 {
15093  uint core;
15094  int ctr;
15095  s16 gain_delta[2];
15096  u8 curr_channel;
15097  u16 minmax_gain[2];
15098  u16 regval[4];
15099 
15100  if (pi->phyhang_avoid)
15102 
15103  if (pi->nphy_gain_boost) {
15104  if ((CHSPEC_IS2G(pi->radio_chanspec))) {
15105 
15106  gain_delta[0] = 6;
15107  gain_delta[1] = 6;
15108  } else {
15109 
15110  curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
15111  gain_delta[0] =
15112  (s16)
15113  PHY_HW_ROUND(((nphy_lnagain_est0[0] *
15114  curr_channel) +
15115  nphy_lnagain_est0[1]), 13);
15116  gain_delta[1] =
15117  (s16)
15118  PHY_HW_ROUND(((nphy_lnagain_est1[0] *
15119  curr_channel) +
15120  nphy_lnagain_est1[1]), 13);
15121  }
15122  } else {
15123 
15124  gain_delta[0] = 0;
15125  gain_delta[1] = 0;
15126  }
15127 
15128  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
15129  if (pi->nphy_elna_gain_config) {
15130 
15131  regval[0] = nphy_def_lnagains[2] + gain_delta[core];
15132  regval[1] = nphy_def_lnagains[3] + gain_delta[core];
15133  regval[2] = nphy_def_lnagains[3] + gain_delta[core];
15134  regval[3] = nphy_def_lnagains[3] + gain_delta[core];
15135  } else {
15136  for (ctr = 0; ctr < 4; ctr++)
15137  regval[ctr] =
15138  nphy_def_lnagains[ctr] +
15139  gain_delta[core];
15140  }
15141  wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
15142 
15143  minmax_gain[core] =
15144  (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
15145  }
15146 
15147  mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
15148  mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
15149 
15150  if (pi->phyhang_avoid)
15152 }
15153 
15154 static void
15155 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy *pi, u8 core)
15156 {
15157  if (core == PHY_CORE_0) {
15158  write_phy_reg(pi, 0x38, 0x4);
15159  if (CHSPEC_IS2G(pi->radio_chanspec))
15160  write_phy_reg(pi, 0x37, 0x0060);
15161  else
15162  write_phy_reg(pi, 0x37, 0x1080);
15163  } else if (core == PHY_CORE_1) {
15164  write_phy_reg(pi, 0x2ae, 0x4);
15165  if (CHSPEC_IS2G(pi->radio_chanspec))
15166  write_phy_reg(pi, 0x2ad, 0x0060);
15167  else
15168  write_phy_reg(pi, 0x2ad, 0x1080);
15169  }
15170 }
15171 
15172 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy *pi, u8 txchain)
15173 {
15174  u8 txchain0, txchain1;
15175 
15176  txchain0 = txchain & 0x1;
15177  txchain1 = (txchain & 0x2) >> 1;
15178  if (!txchain0)
15179  wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15180 
15181  if (!txchain1)
15182  wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15183 }
15184 
15185 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)
15186 {
15187  s8 lna1_gain_db[] = { 8, 13, 17, 22 };
15188  s8 lna2_gain_db[] = { -2, 7, 11, 15 };
15189  s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
15190  s8 tia_gainbits[] = {
15191  0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15192 
15193  mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15194  mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15195 
15196  mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15197 
15198  mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
15199  mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
15200 
15202  lna1_gain_db);
15204  lna1_gain_db);
15205 
15207  lna2_gain_db);
15209  lna2_gain_db);
15210 
15212  tia_gain_db);
15214  tia_gain_db);
15215 
15217  tia_gainbits);
15219  tia_gainbits);
15220 
15221  write_phy_reg(pi, 0x37, 0x74);
15222  write_phy_reg(pi, 0x2ad, 0x74);
15223  write_phy_reg(pi, 0x38, 0x18);
15224  write_phy_reg(pi, 0x2ae, 0x18);
15225 
15226  write_phy_reg(pi, 0x2b, 0xe8);
15227  write_phy_reg(pi, 0x41, 0xe8);
15228 
15229  if (CHSPEC_IS20(pi->radio_chanspec)) {
15230 
15231  mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
15232  mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
15233  } else {
15234 
15235  mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
15236  mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
15237  }
15238 }
15239 
15240 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
15241 {
15242  u16 currband;
15243  s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
15244  s8 *lna1_gain_db = NULL;
15245  s8 *lna1_gain_db_2 = NULL;
15246  s8 *lna2_gain_db = NULL;
15247  s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
15248  s8 *tia_gain_db;
15249  s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
15250  s8 *tia_gainbits;
15251  u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
15252  u16 *rfseq_init_gain;
15253  u16 init_gaincode;
15254  u16 clip1hi_gaincode;
15255  u16 clip1md_gaincode = 0;
15256  u16 clip1md_gaincode_B;
15257  u16 clip1lo_gaincode;
15258  u16 clip1lo_gaincode_B;
15259  u8 crsminl_th = 0;
15260  u8 crsminu_th;
15261  u16 nbclip_th = 0;
15262  u8 w1clip_th;
15263  u16 freq;
15264  s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
15265  u8 chg_nbclip_th = 0;
15266 
15267  mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15268  mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15269 
15270  currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15271  if (currband == 0) {
15272 
15273  lna1_gain_db = lna1G_gain_db_rev7;
15274 
15276  lna1_gain_db);
15278  lna1_gain_db);
15279 
15280  mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
15281 
15282  if (CHSPEC_IS40(pi->radio_chanspec)) {
15283  mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
15284  mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
15285  }
15286 
15287  mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15288 
15289  if (CHSPEC_IS20(pi->radio_chanspec)) {
15290  mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
15291  mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
15292  }
15293  } else {
15294 
15295  init_gaincode = 0x9e;
15296  clip1hi_gaincode = 0x9e;
15297  clip1md_gaincode_B = 0x24;
15298  clip1lo_gaincode = 0x8a;
15299  clip1lo_gaincode_B = 8;
15300  rfseq_init_gain = rfseqA_init_gain_rev7;
15301 
15302  tia_gain_db = tiaA_gain_db_rev7;
15303  tia_gainbits = tiaA_gainbits_rev7;
15304 
15306  if (CHSPEC_IS20(pi->radio_chanspec)) {
15307 
15308  w1clip_th = 25;
15309  clip1md_gaincode = 0x82;
15310 
15311  if ((freq <= 5080) || (freq == 5825)) {
15312 
15313  s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
15314  s8 lna1A_gain_db_2_rev7[] = {
15315  11, 17, 22, 25};
15316  s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15317 
15318  crsminu_th = 0x3e;
15319  lna1_gain_db = lna1A_gain_db_rev7;
15320  lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15321  lna2_gain_db = lna2A_gain_db_rev7;
15322  } else if ((freq >= 5500) && (freq <= 5700)) {
15323 
15324  s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
15325  s8 lna1A_gain_db_2_rev7[] = {
15326  12, 18, 22, 26};
15327  s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
15328 
15329  crsminu_th = 0x45;
15330  clip1md_gaincode_B = 0x14;
15331  nbclip_th = 0xff;
15332  chg_nbclip_th = 1;
15333  lna1_gain_db = lna1A_gain_db_rev7;
15334  lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15335  lna2_gain_db = lna2A_gain_db_rev7;
15336  } else {
15337 
15338  s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
15339  s8 lna1A_gain_db_2_rev7[] = {
15340  12, 18, 22, 26};
15341  s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15342 
15343  crsminu_th = 0x41;
15344  lna1_gain_db = lna1A_gain_db_rev7;
15345  lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15346  lna2_gain_db = lna2A_gain_db_rev7;
15347  }
15348 
15349  if (freq <= 4920) {
15350  nvar_baseline_offset0 = 5;
15351  nvar_baseline_offset1 = 5;
15352  } else if ((freq > 4920) && (freq <= 5320)) {
15353  nvar_baseline_offset0 = 3;
15354  nvar_baseline_offset1 = 5;
15355  } else if ((freq > 5320) && (freq <= 5700)) {
15356  nvar_baseline_offset0 = 3;
15357  nvar_baseline_offset1 = 2;
15358  } else {
15359  nvar_baseline_offset0 = 4;
15360  nvar_baseline_offset1 = 0;
15361  }
15362  } else {
15363 
15364  crsminu_th = 0x3a;
15365  crsminl_th = 0x3a;
15366  w1clip_th = 20;
15367 
15368  if ((freq >= 4920) && (freq <= 5320)) {
15369  nvar_baseline_offset0 = 4;
15370  nvar_baseline_offset1 = 5;
15371  } else if ((freq > 5320) && (freq <= 5550)) {
15372  nvar_baseline_offset0 = 4;
15373  nvar_baseline_offset1 = 2;
15374  } else {
15375  nvar_baseline_offset0 = 5;
15376  nvar_baseline_offset1 = 3;
15377  }
15378  }
15379 
15380  write_phy_reg(pi, 0x20, init_gaincode);
15381  write_phy_reg(pi, 0x2a7, init_gaincode);
15382 
15384  pi->pubpi.phy_corenum, 0x106, 16,
15385  rfseq_init_gain);
15386 
15387  write_phy_reg(pi, 0x22, clip1hi_gaincode);
15388  write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
15389 
15390  write_phy_reg(pi, 0x36, clip1md_gaincode_B);
15391  write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
15392 
15393  write_phy_reg(pi, 0x37, clip1lo_gaincode);
15394  write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
15395  write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
15396  write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
15397 
15399  tia_gain_db);
15401  tia_gain_db);
15402 
15404  tia_gainbits);
15406  tia_gainbits);
15407 
15408  mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
15409 
15410  if (chg_nbclip_th == 1) {
15411  write_phy_reg(pi, 0x2b, nbclip_th);
15412  write_phy_reg(pi, 0x41, nbclip_th);
15413  }
15414 
15415  mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
15416  mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
15417 
15418  mod_phy_reg(pi, 0x2e4,
15419  (0x3f << 0), (nvar_baseline_offset0 << 0));
15420 
15421  mod_phy_reg(pi, 0x2e4,
15422  (0x3f << 6), (nvar_baseline_offset1 << 6));
15423 
15424  if (CHSPEC_IS20(pi->radio_chanspec)) {
15425 
15427  lna1_gain_db);
15429  lna1_gain_db_2);
15430 
15432  8, lna2_gain_db);
15434  8, lna2_gain_db);
15435 
15436  write_phy_reg(pi, 0x24, clip1md_gaincode);
15437  write_phy_reg(pi, 0x2ab, clip1md_gaincode);
15438  } else {
15439  mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
15440  }
15441  }
15442 }
15443 
15444 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)
15445 {
15446  u16 w1th, hpf_code, currband;
15447  int ctr;
15448  u8 rfseq_updategainu_events[] = {
15452  };
15453  u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
15454  s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
15455  s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
15456  s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
15457  s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
15458  s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
15459  s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
15460  s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
15461  s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
15462  s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
15463  s8 *lna1_gain_db = NULL;
15464  s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
15465  s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
15466  s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
15467  s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
15468  s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
15469  s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
15470  s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
15471  s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
15472  s8 *lna2_gain_db = NULL;
15473  s8 tiaG_gain_db[] = {
15474  0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
15475  s8 tiaA_gain_db[] = {
15476  0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
15477  s8 tiaA_gain_db_rev4[] = {
15478  0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15479  s8 tiaA_gain_db_rev5[] = {
15480  0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15481  s8 tiaA_gain_db_rev6[] = {
15482  0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15483  s8 *tia_gain_db;
15484  s8 tiaG_gainbits[] = {
15485  0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15486  s8 tiaA_gainbits[] = {
15487  0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
15488  s8 tiaA_gainbits_rev4[] = {
15489  0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15490  s8 tiaA_gainbits_rev5[] = {
15491  0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15492  s8 tiaA_gainbits_rev6[] = {
15493  0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15494  s8 *tia_gainbits;
15495  s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
15496  s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
15497  u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
15498  u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
15499  u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
15500  u16 rfseqG_init_gain_rev5_elna[] = {
15501  0x013f, 0x013f, 0x013f, 0x013f };
15502  u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
15503  u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
15504  u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
15505  u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
15506  u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
15507  u16 rfseqA_init_gain_rev4_elna[] = {
15508  0x314f, 0x314f, 0x314f, 0x314f };
15509  u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
15510  u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
15511  u16 *rfseq_init_gain;
15512  u16 initG_gaincode = 0x627e;
15513  u16 initG_gaincode_rev4 = 0x527e;
15514  u16 initG_gaincode_rev5 = 0x427e;
15515  u16 initG_gaincode_rev5_elna = 0x027e;
15516  u16 initG_gaincode_rev6 = 0x527e;
15517  u16 initG_gaincode_rev6_224B0 = 0x427e;
15518  u16 initG_gaincode_rev6_elna = 0x127e;
15519  u16 initA_gaincode = 0x52de;
15520  u16 initA_gaincode_rev4 = 0x629e;
15521  u16 initA_gaincode_rev4_elna = 0x329e;
15522  u16 initA_gaincode_rev5 = 0x729e;
15523  u16 initA_gaincode_rev6 = 0x729e;
15524  u16 init_gaincode;
15525  u16 clip1hiG_gaincode = 0x107e;
15526  u16 clip1hiG_gaincode_rev4 = 0x007e;
15527  u16 clip1hiG_gaincode_rev5 = 0x1076;
15528  u16 clip1hiG_gaincode_rev6 = 0x007e;
15529  u16 clip1hiA_gaincode = 0x00de;
15530  u16 clip1hiA_gaincode_rev4 = 0x029e;
15531  u16 clip1hiA_gaincode_rev5 = 0x029e;
15532  u16 clip1hiA_gaincode_rev6 = 0x029e;
15533  u16 clip1hi_gaincode;
15534  u16 clip1mdG_gaincode = 0x0066;
15535  u16 clip1mdA_gaincode = 0x00ca;
15536  u16 clip1mdA_gaincode_rev4 = 0x1084;
15537  u16 clip1mdA_gaincode_rev5 = 0x2084;
15538  u16 clip1mdA_gaincode_rev6 = 0x2084;
15539  u16 clip1md_gaincode = 0;
15540  u16 clip1loG_gaincode = 0x0074;
15541  u16 clip1loG_gaincode_rev5[] = {
15542  0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
15543  };
15544  u16 clip1loG_gaincode_rev6[] = {
15545  0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
15546  };
15547  u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
15548  u16 clip1loA_gaincode = 0x00cc;
15549  u16 clip1loA_gaincode_rev4 = 0x0086;
15550  u16 clip1loA_gaincode_rev5 = 0x2086;
15551  u16 clip1loA_gaincode_rev6 = 0x2086;
15552  u16 clip1lo_gaincode;
15553  u8 crsminG_th = 0x18;
15554  u8 crsminG_th_rev5 = 0x18;
15555  u8 crsminG_th_rev6 = 0x18;
15556  u8 crsminA_th = 0x1e;
15557  u8 crsminA_th_rev4 = 0x24;
15558  u8 crsminA_th_rev5 = 0x24;
15559  u8 crsminA_th_rev6 = 0x24;
15560  u8 crsmin_th;
15561  u8 crsminlG_th = 0x18;
15562  u8 crsminlG_th_rev5 = 0x18;
15563  u8 crsminlG_th_rev6 = 0x18;
15564  u8 crsminlA_th = 0x1e;
15565  u8 crsminlA_th_rev4 = 0x24;
15566  u8 crsminlA_th_rev5 = 0x24;
15567  u8 crsminlA_th_rev6 = 0x24;
15568  u8 crsminl_th = 0;
15569  u8 crsminuG_th = 0x18;
15570  u8 crsminuG_th_rev5 = 0x18;
15571  u8 crsminuG_th_rev6 = 0x18;
15572  u8 crsminuA_th = 0x1e;
15573  u8 crsminuA_th_rev4 = 0x24;
15574  u8 crsminuA_th_rev5 = 0x24;
15575  u8 crsminuA_th_rev6 = 0x24;
15576  u8 crsminuA_th_rev6_224B0 = 0x2d;
15577  u8 crsminu_th;
15578  u16 nbclipG_th = 0x20d;
15579  u16 nbclipG_th_rev4 = 0x1a1;
15580  u16 nbclipG_th_rev5 = 0x1d0;
15581  u16 nbclipG_th_rev6 = 0x1d0;
15582  u16 nbclipA_th = 0x1a1;
15583  u16 nbclipA_th_rev4 = 0x107;
15584  u16 nbclipA_th_rev5 = 0x0a9;
15585  u16 nbclipA_th_rev6 = 0x0f0;
15586  u16 nbclip_th = 0;
15587  u8 w1clipG_th = 5;
15588  u8 w1clipG_th_rev5 = 9;
15589  u8 w1clipG_th_rev6 = 5;
15590  u8 w1clipA_th = 25, w1clip_th;
15591  u8 rssi_gain_default = 0x50;
15592  u8 rssiG_gain_rev6_224B0 = 0x50;
15593  u8 rssiA_gain_rev5 = 0x90;
15594  u8 rssiA_gain_rev6 = 0x90;
15595  u8 rssi_gain;
15596  u16 regval[21];
15597  u8 triso;
15598 
15599  triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
15600  pi->srom_fem2g.triso;
15601 
15602  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15603  if (pi->pubpi.radiorev == 5) {
15604  wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
15605  } else if (pi->pubpi.radiorev == 7) {
15606  wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15607 
15608  mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
15609  mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
15610 
15611  } else if ((pi->pubpi.radiorev == 3)
15612  || (pi->pubpi.radiorev == 8)) {
15613  wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15614 
15615  if (pi->pubpi.radiorev == 8) {
15616  mod_phy_reg(pi, 0x283,
15617  (0xff << 0), (0x44 << 0));
15618  mod_phy_reg(pi, 0x280,
15619  (0xff << 0), (0x44 << 0));
15620  }
15621  } else {
15622  wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15623  }
15624  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15625 
15626  mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
15627 
15628  mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15629  mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15630 
15631  currband =
15633  if (currband == 0) {
15634  if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15635  if (pi->pubpi.radiorev == 11) {
15636  lna1_gain_db = lna1G_gain_db_rev6_224B0;
15637  lna2_gain_db = lna2G_gain_db_rev6_224B0;
15638  rfseq_init_gain =
15639  rfseqG_init_gain_rev6_224B0;
15640  init_gaincode =
15641  initG_gaincode_rev6_224B0;
15642  clip1hi_gaincode =
15643  clip1hiG_gaincode_rev6;
15644  clip1lo_gaincode =
15645  clip1loG_gaincode_rev6_224B0;
15646  nbclip_th = nbclipG_th_rev6;
15647  w1clip_th = w1clipG_th_rev6;
15648  crsmin_th = crsminG_th_rev6;
15649  crsminl_th = crsminlG_th_rev6;
15650  crsminu_th = crsminuG_th_rev6;
15651  rssi_gain = rssiG_gain_rev6_224B0;
15652  } else {
15653  lna1_gain_db = lna1G_gain_db_rev6;
15654  lna2_gain_db = lna2G_gain_db_rev6;
15655  if (pi->sh->boardflags & BFL_EXTLNA) {
15656 
15657  rfseq_init_gain =
15658  rfseqG_init_gain_rev6_elna;
15659  init_gaincode =
15660  initG_gaincode_rev6_elna;
15661  } else {
15662  rfseq_init_gain =
15663  rfseqG_init_gain_rev6;
15664  init_gaincode =
15665  initG_gaincode_rev6;
15666  }
15667  clip1hi_gaincode =
15668  clip1hiG_gaincode_rev6;
15669  switch (triso) {
15670  case 0:
15671  clip1lo_gaincode =
15672  clip1loG_gaincode_rev6
15673  [0];
15674  break;
15675  case 1:
15676  clip1lo_gaincode =
15677  clip1loG_gaincode_rev6
15678  [1];
15679  break;
15680  case 2:
15681  clip1lo_gaincode =
15682  clip1loG_gaincode_rev6
15683  [2];
15684  break;
15685  case 3:
15686  default:
15687 
15688  clip1lo_gaincode =
15689  clip1loG_gaincode_rev6
15690  [3];
15691  break;
15692  case 4:
15693  clip1lo_gaincode =
15694  clip1loG_gaincode_rev6
15695  [4];
15696  break;
15697  case 5:
15698  clip1lo_gaincode =
15699  clip1loG_gaincode_rev6
15700  [5];
15701  break;
15702  case 6:
15703  clip1lo_gaincode =
15704  clip1loG_gaincode_rev6
15705  [6];
15706  break;
15707  case 7:
15708  clip1lo_gaincode =
15709  clip1loG_gaincode_rev6
15710  [7];
15711  break;
15712  }
15713  nbclip_th = nbclipG_th_rev6;
15714  w1clip_th = w1clipG_th_rev6;
15715  crsmin_th = crsminG_th_rev6;
15716  crsminl_th = crsminlG_th_rev6;
15717  crsminu_th = crsminuG_th_rev6;
15718  rssi_gain = rssi_gain_default;
15719  }
15720  } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15721  lna1_gain_db = lna1G_gain_db_rev5;
15722  lna2_gain_db = lna2G_gain_db_rev5;
15723  if (pi->sh->boardflags & BFL_EXTLNA) {
15724 
15725  rfseq_init_gain =
15726  rfseqG_init_gain_rev5_elna;
15727  init_gaincode =
15728  initG_gaincode_rev5_elna;
15729  } else {
15730  rfseq_init_gain = rfseqG_init_gain_rev5;
15731  init_gaincode = initG_gaincode_rev5;
15732  }
15733  clip1hi_gaincode = clip1hiG_gaincode_rev5;
15734  switch (triso) {
15735  case 0:
15736  clip1lo_gaincode =
15737  clip1loG_gaincode_rev5[0];
15738  break;
15739  case 1:
15740  clip1lo_gaincode =
15741  clip1loG_gaincode_rev5[1];
15742  break;
15743  case 2:
15744  clip1lo_gaincode =
15745  clip1loG_gaincode_rev5[2];
15746  break;
15747  case 3:
15748 
15749  clip1lo_gaincode =
15750  clip1loG_gaincode_rev5[3];
15751  break;
15752  case 4:
15753  clip1lo_gaincode =
15754  clip1loG_gaincode_rev5[4];
15755  break;
15756  case 5:
15757  clip1lo_gaincode =
15758  clip1loG_gaincode_rev5[5];
15759  break;
15760  case 6:
15761  clip1lo_gaincode =
15762  clip1loG_gaincode_rev5[6];
15763  break;
15764  case 7:
15765  clip1lo_gaincode =
15766  clip1loG_gaincode_rev5[7];
15767  break;
15768  default:
15769  clip1lo_gaincode =
15770  clip1loG_gaincode_rev5[3];
15771  break;
15772  }
15773  nbclip_th = nbclipG_th_rev5;
15774  w1clip_th = w1clipG_th_rev5;
15775  crsmin_th = crsminG_th_rev5;
15776  crsminl_th = crsminlG_th_rev5;
15777  crsminu_th = crsminuG_th_rev5;
15778  rssi_gain = rssi_gain_default;
15779  } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15780  lna1_gain_db = lna1G_gain_db_rev4;
15781  lna2_gain_db = lna2G_gain_db;
15782  rfseq_init_gain = rfseqG_init_gain_rev4;
15783  init_gaincode = initG_gaincode_rev4;
15784  clip1hi_gaincode = clip1hiG_gaincode_rev4;
15785  clip1lo_gaincode = clip1loG_gaincode;
15786  nbclip_th = nbclipG_th_rev4;
15787  w1clip_th = w1clipG_th;
15788  crsmin_th = crsminG_th;
15789  crsminl_th = crsminlG_th;
15790  crsminu_th = crsminuG_th;
15791  rssi_gain = rssi_gain_default;
15792  } else {
15793  lna1_gain_db = lna1G_gain_db;
15794  lna2_gain_db = lna2G_gain_db;
15795  rfseq_init_gain = rfseqG_init_gain;
15796  init_gaincode = initG_gaincode;
15797  clip1hi_gaincode = clip1hiG_gaincode;
15798  clip1lo_gaincode = clip1loG_gaincode;
15799  nbclip_th = nbclipG_th;
15800  w1clip_th = w1clipG_th;
15801  crsmin_th = crsminG_th;
15802  crsminl_th = crsminlG_th;
15803  crsminu_th = crsminuG_th;
15804  rssi_gain = rssi_gain_default;
15805  }
15806  tia_gain_db = tiaG_gain_db;
15807  tia_gainbits = tiaG_gainbits;
15808  clip1md_gaincode = clip1mdG_gaincode;
15809  } else {
15810  if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15811  lna1_gain_db = lna1A_gain_db_rev6;
15812  lna2_gain_db = lna2A_gain_db_rev6;
15813  tia_gain_db = tiaA_gain_db_rev6;
15814  tia_gainbits = tiaA_gainbits_rev6;
15815  rfseq_init_gain = rfseqA_init_gain_rev6;
15816  init_gaincode = initA_gaincode_rev6;
15817  clip1hi_gaincode = clip1hiA_gaincode_rev6;
15818  clip1md_gaincode = clip1mdA_gaincode_rev6;
15819  clip1lo_gaincode = clip1loA_gaincode_rev6;
15820  crsmin_th = crsminA_th_rev6;
15821  crsminl_th = crsminlA_th_rev6;
15822  if ((pi->pubpi.radiorev == 11) &&
15823  (CHSPEC_IS40(pi->radio_chanspec) == 0))
15824  crsminu_th = crsminuA_th_rev6_224B0;
15825  else
15826  crsminu_th = crsminuA_th_rev6;
15827 
15828  nbclip_th = nbclipA_th_rev6;
15829  rssi_gain = rssiA_gain_rev6;
15830  } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15831  lna1_gain_db = lna1A_gain_db_rev5;
15832  lna2_gain_db = lna2A_gain_db_rev5;
15833  tia_gain_db = tiaA_gain_db_rev5;
15834  tia_gainbits = tiaA_gainbits_rev5;
15835  rfseq_init_gain = rfseqA_init_gain_rev5;
15836  init_gaincode = initA_gaincode_rev5;
15837  clip1hi_gaincode = clip1hiA_gaincode_rev5;
15838  clip1md_gaincode = clip1mdA_gaincode_rev5;
15839  clip1lo_gaincode = clip1loA_gaincode_rev5;
15840  crsmin_th = crsminA_th_rev5;
15841  crsminl_th = crsminlA_th_rev5;
15842  crsminu_th = crsminuA_th_rev5;
15843  nbclip_th = nbclipA_th_rev5;
15844  rssi_gain = rssiA_gain_rev5;
15845  } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15846  lna1_gain_db = lna1A_gain_db_rev4;
15847  lna2_gain_db = lna2A_gain_db_rev4;
15848  tia_gain_db = tiaA_gain_db_rev4;
15849  tia_gainbits = tiaA_gainbits_rev4;
15850  if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
15851 
15852  rfseq_init_gain =
15853  rfseqA_init_gain_rev4_elna;
15854  init_gaincode =
15855  initA_gaincode_rev4_elna;
15856  } else {
15857  rfseq_init_gain = rfseqA_init_gain_rev4;
15858  init_gaincode = initA_gaincode_rev4;
15859  }
15860  clip1hi_gaincode = clip1hiA_gaincode_rev4;
15861  clip1md_gaincode = clip1mdA_gaincode_rev4;
15862  clip1lo_gaincode = clip1loA_gaincode_rev4;
15863  crsmin_th = crsminA_th_rev4;
15864  crsminl_th = crsminlA_th_rev4;
15865  crsminu_th = crsminuA_th_rev4;
15866  nbclip_th = nbclipA_th_rev4;
15867  rssi_gain = rssi_gain_default;
15868  } else {
15869  lna1_gain_db = lna1A_gain_db;
15870  lna2_gain_db = lna2A_gain_db;
15871  tia_gain_db = tiaA_gain_db;
15872  tia_gainbits = tiaA_gainbits;
15873  rfseq_init_gain = rfseqA_init_gain;
15874  init_gaincode = initA_gaincode;
15875  clip1hi_gaincode = clip1hiA_gaincode;
15876  clip1md_gaincode = clip1mdA_gaincode;
15877  clip1lo_gaincode = clip1loA_gaincode;
15878  crsmin_th = crsminA_th;
15879  crsminl_th = crsminlA_th;
15880  crsminu_th = crsminuA_th;
15881  nbclip_th = nbclipA_th;
15882  rssi_gain = rssi_gain_default;
15883  }
15884  w1clip_th = w1clipA_th;
15885  }
15886 
15887  write_radio_reg(pi,
15889  RADIO_2056_RX0), 0x17);
15890  write_radio_reg(pi,
15892  RADIO_2056_RX1), 0x17);
15893 
15895  0xf0);
15897  0xf0);
15898 
15900  0x0);
15902  0x0);
15903 
15905  rssi_gain);
15907  rssi_gain);
15908 
15909  write_radio_reg(pi,
15911  RADIO_2056_RX0), 0x17);
15912  write_radio_reg(pi,
15914  RADIO_2056_RX1), 0x17);
15915 
15917  0xFF);
15919  0xFF);
15920 
15922  8, lna1_gain_db);
15924  8, lna1_gain_db);
15925 
15927  8, lna2_gain_db);
15929  8, lna2_gain_db);
15930 
15932  8, tia_gain_db);
15934  8, tia_gain_db);
15935 
15937  8, tia_gainbits);
15939  8, tia_gainbits);
15940 
15942  8, &lpf_gain_db);
15944  8, &lpf_gain_db);
15946  8, &lpf_gainbits);
15948  8, &lpf_gainbits);
15949 
15950  write_phy_reg(pi, 0x20, init_gaincode);
15951  write_phy_reg(pi, 0x2a7, init_gaincode);
15952 
15954  pi->pubpi.phy_corenum, 0x106, 16,
15955  rfseq_init_gain);
15956 
15957  write_phy_reg(pi, 0x22, clip1hi_gaincode);
15958  write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
15959 
15960  write_phy_reg(pi, 0x24, clip1md_gaincode);
15961  write_phy_reg(pi, 0x2ab, clip1md_gaincode);
15962 
15963  write_phy_reg(pi, 0x37, clip1lo_gaincode);
15964  write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
15965 
15966  mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
15967  mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
15968  mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
15969 
15970  write_phy_reg(pi, 0x2b, nbclip_th);
15971  write_phy_reg(pi, 0x41, nbclip_th);
15972 
15973  mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
15974  mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
15975 
15976  write_phy_reg(pi, 0x150, 0x809c);
15977 
15978  } else {
15979 
15980  mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15981  mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15982 
15983  write_phy_reg(pi, 0x2b, 0x84);
15984  write_phy_reg(pi, 0x41, 0x84);
15985 
15986  if (CHSPEC_IS20(pi->radio_chanspec)) {
15987  write_phy_reg(pi, 0x6b, 0x2b);
15988  write_phy_reg(pi, 0x6c, 0x2b);
15989  write_phy_reg(pi, 0x6d, 0x9);
15990  write_phy_reg(pi, 0x6e, 0x9);
15991  }
15992 
15993  w1th = NPHY_RSSICAL_W1_TARGET - 4;
15994  mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
15995  mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
15996 
15997  if (CHSPEC_IS20(pi->radio_chanspec)) {
15998  mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
15999  mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16000 
16001  mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16002  mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16003  }
16004 
16005  write_phy_reg(pi, 0x150, 0x809c);
16006 
16007  if (pi->nphy_gain_boost)
16008  if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16009  (CHSPEC_IS40(pi->radio_chanspec)))
16010  hpf_code = 4;
16011  else
16012  hpf_code = 5;
16013  else if (CHSPEC_IS40(pi->radio_chanspec))
16014  hpf_code = 6;
16015  else
16016  hpf_code = 7;
16017 
16018  mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16019  mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16020 
16021  for (ctr = 0; ctr < 4; ctr++)
16022  regval[ctr] = (hpf_code << 8) | 0x7c;
16023  wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16024 
16025  wlc_phy_adjust_lnagaintbl_nphy(pi);
16026 
16027  if (pi->nphy_elna_gain_config) {
16028  regval[0] = 0;
16029  regval[1] = 1;
16030  regval[2] = 1;
16031  regval[3] = 1;
16032  wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16033  wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16034 
16035  for (ctr = 0; ctr < 4; ctr++)
16036  regval[ctr] = (hpf_code << 8) | 0x74;
16037  wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16038  }
16039 
16040  if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16041  for (ctr = 0; ctr < 21; ctr++)
16042  regval[ctr] = 3 * ctr;
16043  wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16044  wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16045 
16046  for (ctr = 0; ctr < 21; ctr++)
16047  regval[ctr] = (u16) ctr;
16048  wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16049  wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16050  }
16051 
16052  wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16053  rfseq_updategainu_events,
16054  rfseq_updategainu_dlys,
16055  sizeof(rfseq_updategainu_events) /
16056  sizeof(rfseq_updategainu_events[0]));
16057 
16058  mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16059 
16060  if (CHSPEC_IS2G(pi->radio_chanspec))
16061  mod_phy_reg(pi,
16063  0x7f, 0x4);
16064  }
16065 }
16066 
16067 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
16068 {
16069  u8 rfseq_rx2tx_events[] = {
16077  };
16078  u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
16079  u8 rfseq_tx2rx_events[] = {
16087  };
16088  u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
16089  u8 rfseq_tx2rx_events_rev3[] = {
16098  };
16099  u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
16100  u8 rfseq_rx2tx_events_rev3[] = {
16110  };
16111  u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
16112 
16113  u8 rfseq_rx2tx_events_rev3_ipa[] = {
16123  };
16124  u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
16125  u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
16126 
16127  s16 alpha0, alpha1, alpha2;
16128  s16 beta0, beta1, beta2;
16129  u32 leg_data_weights, ht_data_weights, nss1_data_weights,
16130  stbc_data_weights;
16131  u8 chan_freq_range = 0;
16132  u16 dac_control = 0x0002;
16133  u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
16134  u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
16135  u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16136  u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16137  u16 *aux_adc_vmid;
16138  u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
16139  u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
16140  u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
16141  u16 *aux_adc_gain;
16142  u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
16143  u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
16144  s32 min_nvar_val = 0x18d;
16145  s32 min_nvar_offset_6mbps = 20;
16146  u8 pdetrange;
16147  u8 triso;
16148  u16 regval;
16149  u16 afectrl_adc_ctrl1_rev7 = 0x20;
16150  u16 afectrl_adc_ctrl2_rev7 = 0x0;
16151  u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
16152  u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
16153  u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
16154  u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
16155  u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16156  u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16157  u16 ipalvlshift_3p3_war_en = 0;
16158  u16 rccal_bcap_val, rccal_scap_val;
16159  u16 rccal_tx20_11b_bcap = 0;
16160  u16 rccal_tx20_11b_scap = 0;
16161  u16 rccal_tx20_11n_bcap = 0;
16162  u16 rccal_tx20_11n_scap = 0;
16163  u16 rccal_tx40_11n_bcap = 0;
16164  u16 rccal_tx40_11n_scap = 0;
16165  u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
16166  u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
16167  u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
16168  u16 tx_lpf_bw_ofdm_20mhz = 0;
16169  u16 tx_lpf_bw_ofdm_40mhz = 0;
16170  u16 tx_lpf_bw_11b = 0;
16171  u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
16172  u16 txgm_idac_bleed = 0;
16173  bool rccal_ovrd = false;
16174  u16 freq;
16175  int coreNum;
16176 
16177  if (CHSPEC_IS5G(pi->radio_chanspec))
16179  else
16181 
16182  if (pi->phyhang_avoid)
16184 
16186 
16187  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16188 
16189  if (NREV_IS(pi->pubpi.phy_rev, 7)) {
16190  mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
16191 
16192  mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
16193  mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
16194  mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
16195  mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
16196  mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
16197  mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
16198  mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
16199  mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
16200  mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
16201  mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
16202  mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
16203  mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
16204  mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
16205  mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
16206  mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
16207  mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
16208  }
16209 
16210  if (NREV_LE(pi->pubpi.phy_rev, 8)) {
16211  write_phy_reg(pi, 0x23f, 0x1b0);
16212  write_phy_reg(pi, 0x240, 0x1b0);
16213  }
16214 
16215  if (NREV_GE(pi->pubpi.phy_rev, 8))
16216  mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
16217 
16219  &dac_control);
16221  &dac_control);
16222 
16224  1, 0, 32, &leg_data_weights);
16225  leg_data_weights = leg_data_weights & 0xffffff;
16227  1, 0, 32, &leg_data_weights);
16228 
16230  2, 0x15e, 16,
16231  rfseq_rx2tx_dacbufpu_rev7);
16232  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
16233  rfseq_rx2tx_dacbufpu_rev7);
16234 
16235  if (PHY_IPA(pi))
16236  wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16237  rfseq_rx2tx_events_rev3_ipa,
16238  rfseq_rx2tx_dlys_rev3_ipa,
16239  ARRAY_SIZE(rfseq_rx2tx_events_rev3_ipa));
16240 
16241  mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
16242  mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
16243 
16244  tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
16245  tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
16246  tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
16247 
16248  if (PHY_IPA(pi)) {
16249 
16250  if (((pi->pubpi.radiorev == 5)
16251  && (CHSPEC_IS40(pi->radio_chanspec) == 1))
16252  || (pi->pubpi.radiorev == 7)
16253  || (pi->pubpi.radiorev == 8)) {
16254 
16255  rccal_bcap_val =
16257  pi,
16259  rccal_scap_val =
16261  pi,
16263 
16264  rccal_tx20_11b_bcap = rccal_bcap_val;
16265  rccal_tx20_11b_scap = rccal_scap_val;
16266 
16267  if ((pi->pubpi.radiorev == 5) &&
16268  (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
16269 
16270  rccal_tx20_11n_bcap = rccal_bcap_val;
16271  rccal_tx20_11n_scap = rccal_scap_val;
16272  rccal_tx40_11n_bcap = 0xc;
16273  rccal_tx40_11n_scap = 0xc;
16274 
16275  rccal_ovrd = true;
16276 
16277  } else if ((pi->pubpi.radiorev == 7)
16278  || (pi->pubpi.radiorev == 8)) {
16279 
16280  tx_lpf_bw_ofdm_20mhz = 4;
16281  tx_lpf_bw_11b = 1;
16282 
16283  if (CHSPEC_IS2G(pi->radio_chanspec)) {
16284  rccal_tx20_11n_bcap = 0xc;
16285  rccal_tx20_11n_scap = 0xc;
16286  rccal_tx40_11n_bcap = 0xa;
16287  rccal_tx40_11n_scap = 0xa;
16288  } else {
16289  rccal_tx20_11n_bcap = 0x14;
16290  rccal_tx20_11n_scap = 0x14;
16291  rccal_tx40_11n_bcap = 0xf;
16292  rccal_tx40_11n_scap = 0xf;
16293  }
16294 
16295  rccal_ovrd = true;
16296  }
16297  }
16298 
16299  } else {
16300 
16301  if (pi->pubpi.radiorev == 5) {
16302 
16303  tx_lpf_bw_ofdm_20mhz = 1;
16304  tx_lpf_bw_ofdm_40mhz = 3;
16305 
16306  rccal_bcap_val =
16308  pi,
16310  rccal_scap_val =
16312  pi,
16314 
16315  rccal_tx20_11b_bcap = rccal_bcap_val;
16316  rccal_tx20_11b_scap = rccal_scap_val;
16317 
16318  rccal_tx20_11n_bcap = 0x13;
16319  rccal_tx20_11n_scap = 0x11;
16320  rccal_tx40_11n_bcap = 0x13;
16321  rccal_tx40_11n_scap = 0x11;
16322 
16323  rccal_ovrd = true;
16324  }
16325  }
16326 
16327  if (rccal_ovrd) {
16328 
16329  rx2tx_lpf_rc_lut_tx20_11b =
16330  (rccal_tx20_11b_bcap << 8) |
16331  (rccal_tx20_11b_scap << 3) |
16332  tx_lpf_bw_11b;
16333  rx2tx_lpf_rc_lut_tx20_11n =
16334  (rccal_tx20_11n_bcap << 8) |
16335  (rccal_tx20_11n_scap << 3) |
16336  tx_lpf_bw_ofdm_20mhz;
16337  rx2tx_lpf_rc_lut_tx40_11n =
16338  (rccal_tx40_11n_bcap << 8) |
16339  (rccal_tx40_11n_scap << 3) |
16340  tx_lpf_bw_ofdm_40mhz;
16341 
16342  for (coreNum = 0; coreNum <= 1; coreNum++) {
16344  pi, NPHY_TBL_ID_RFSEQ,
16345  1,
16346  0x152 + coreNum * 0x10,
16347  16,
16348  &rx2tx_lpf_rc_lut_tx20_11b);
16350  pi, NPHY_TBL_ID_RFSEQ,
16351  1,
16352  0x153 + coreNum * 0x10,
16353  16,
16354  &rx2tx_lpf_rc_lut_tx20_11n);
16356  pi, NPHY_TBL_ID_RFSEQ,
16357  1,
16358  0x154 + coreNum * 0x10,
16359  16,
16360  &rx2tx_lpf_rc_lut_tx20_11n);
16362  pi, NPHY_TBL_ID_RFSEQ,
16363  1,
16364  0x155 + coreNum * 0x10,
16365  16,
16366  &rx2tx_lpf_rc_lut_tx40_11n);
16368  pi, NPHY_TBL_ID_RFSEQ,
16369  1,
16370  0x156 + coreNum * 0x10,
16371  16,
16372  &rx2tx_lpf_rc_lut_tx40_11n);
16374  pi, NPHY_TBL_ID_RFSEQ,
16375  1,
16376  0x157 + coreNum * 0x10,
16377  16,
16378  &rx2tx_lpf_rc_lut_tx40_11n);
16380  pi, NPHY_TBL_ID_RFSEQ,
16381  1,
16382  0x158 + coreNum * 0x10,
16383  16,
16384  &rx2tx_lpf_rc_lut_tx40_11n);
16386  pi, NPHY_TBL_ID_RFSEQ,
16387  1,
16388  0x159 + coreNum * 0x10,
16389  16,
16390  &rx2tx_lpf_rc_lut_tx40_11n);
16391  }
16392 
16393  wlc_phy_rfctrl_override_nphy_rev7(
16394  pi, (0x1 << 4),
16395  1, 0x3, 0,
16397  }
16398 
16399  write_phy_reg(pi, 0x32f, 0x3);
16400 
16401  if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
16402  wlc_phy_rfctrl_override_nphy_rev7(
16403  pi, (0x1 << 2),
16404  1, 0x3, 0,
16406 
16407  if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
16408  (pi->pubpi.radiorev == 6)) {
16409  if ((pi->sh->sromrev >= 8)
16410  && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
16411  ipalvlshift_3p3_war_en = 1;
16412 
16413  if (ipalvlshift_3p3_war_en) {
16415  0x5);
16417  0x30);
16419  or_radio_reg(pi,
16421  0x1);
16422  or_radio_reg(pi,
16424  0x1);
16425 
16426  ipa2g_mainbias = 0x1f;
16427 
16428  ipa2g_casconv = 0x6f;
16429 
16430  ipa2g_biasfilt = 0xaa;
16431  } else {
16432 
16433  ipa2g_mainbias = 0x2b;
16434 
16435  ipa2g_casconv = 0x7f;
16436 
16437  ipa2g_biasfilt = 0xee;
16438  }
16439 
16440  if (CHSPEC_IS2G(pi->radio_chanspec)) {
16441  for (coreNum = 0; coreNum <= 1; coreNum++) {
16442  WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16443  coreNum, IPA2G_IMAIN,
16444  ipa2g_mainbias);
16445  WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16446  coreNum, IPA2G_CASCONV,
16447  ipa2g_casconv);
16448  WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16449  coreNum,
16450  IPA2G_BIAS_FILTER,
16451  ipa2g_biasfilt);
16452  }
16453  }
16454  }
16455 
16456  if (PHY_IPA(pi)) {
16457  if (CHSPEC_IS2G(pi->radio_chanspec)) {
16458  if ((pi->pubpi.radiorev == 3)
16459  || (pi->pubpi.radiorev == 4)
16460  || (pi->pubpi.radiorev == 6))
16461  txgm_idac_bleed = 0x7f;
16462 
16463  for (coreNum = 0; coreNum <= 1; coreNum++) {
16464  if (txgm_idac_bleed != 0)
16466  pi, RADIO_2057,
16467  CORE, coreNum,
16468  TXGM_IDAC_BLEED,
16469  txgm_idac_bleed);
16470  }
16471 
16472  if (pi->pubpi.radiorev == 5) {
16473 
16474  for (coreNum = 0; coreNum <= 1;
16475  coreNum++) {
16476  WRITE_RADIO_REG4(pi, RADIO_2057,
16477  CORE, coreNum,
16478  IPA2G_CASCONV,
16479  0x13);
16480  WRITE_RADIO_REG4(pi, RADIO_2057,
16481  CORE, coreNum,
16482  IPA2G_IMAIN,
16483  0x1f);
16485  pi, RADIO_2057,
16486  CORE, coreNum,
16487  IPA2G_BIAS_FILTER,
16488  0xee);
16489  WRITE_RADIO_REG4(pi, RADIO_2057,
16490  CORE, coreNum,
16491  PAD2G_IDACS,
16492  0x8a);
16494  pi, RADIO_2057,
16495  CORE, coreNum,
16496  PAD_BIAS_FILTER_BWS,
16497  0x3e);
16498  }
16499 
16500  } else if ((pi->pubpi.radiorev == 7)
16501  || (pi->pubpi.radiorev == 8)) {
16502 
16503  if (CHSPEC_IS40(pi->radio_chanspec) ==
16504  0) {
16505  WRITE_RADIO_REG4(pi, RADIO_2057,
16506  CORE, 0,
16507  IPA2G_IMAIN,
16508  0x14);
16509  WRITE_RADIO_REG4(pi, RADIO_2057,
16510  CORE, 1,
16511  IPA2G_IMAIN,
16512  0x12);
16513  } else {
16514  WRITE_RADIO_REG4(pi, RADIO_2057,
16515  CORE, 0,
16516  IPA2G_IMAIN,
16517  0x16);
16518  WRITE_RADIO_REG4(pi, RADIO_2057,
16519  CORE, 1,
16520  IPA2G_IMAIN,
16521  0x16);
16522  }
16523  }
16524 
16525  } else {
16526  freq = CHAN5G_FREQ(CHSPEC_CHANNEL(
16527  pi->radio_chanspec));
16528  if (((freq >= 5180) && (freq <= 5230))
16529  || ((freq >= 5745) && (freq <= 5805))) {
16530  WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16531  0, IPA5G_BIAS_FILTER,
16532  0xff);
16533  WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16534  1, IPA5G_BIAS_FILTER,
16535  0xff);
16536  }
16537  }
16538  } else {
16539 
16540  if (pi->pubpi.radiorev != 5) {
16541  for (coreNum = 0; coreNum <= 1; coreNum++) {
16542  WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16543  coreNum,
16544  TXMIX2G_TUNE_BOOST_PU,
16545  0x61);
16546  WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16547  coreNum,
16548  TXGM_IDAC_BLEED, 0x70);
16549  }
16550  }
16551  }
16552 
16553  if (pi->pubpi.radiorev == 4) {
16555  0x05, 16,
16556  &afectrl_adc_ctrl1_rev7);
16558  0x15, 16,
16559  &afectrl_adc_ctrl1_rev7);
16560 
16561  for (coreNum = 0; coreNum <= 1; coreNum++) {
16562  WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16563  AFE_VCM_CAL_MASTER, 0x0);
16564  WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16565  AFE_SET_VCM_I, 0x3f);
16566  WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16567  AFE_SET_VCM_Q, 0x3f);
16568  }
16569  } else {
16570  mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
16571  mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
16572  mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
16573  mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
16574 
16575  mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
16576  mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
16577  mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
16578  mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
16579 
16581  0x05, 16,
16582  &afectrl_adc_ctrl2_rev7);
16584  0x15, 16,
16585  &afectrl_adc_ctrl2_rev7);
16586 
16587  mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
16588  mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
16589  mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
16590  mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
16591  }
16592 
16593  write_phy_reg(pi, 0x6a, 0x2);
16594 
16596  &min_nvar_offset_6mbps);
16597 
16598  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
16599  &rfseq_pktgn_lpf_hpc_rev7);
16600 
16601  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
16602  &rfseq_pktgn_lpf_h_hpc_rev7);
16603 
16604  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
16605  &rfseq_htpktgn_lpf_hpc_rev7);
16606 
16607  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
16608  &rfseq_cckpktgn_lpf_hpc_rev7);
16609 
16610  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
16611  &rfseq_tx2rx_lpf_h_hpc_rev7);
16612 
16613  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
16614  &rfseq_rx2tx_lpf_h_hpc_rev7);
16615 
16616  if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16618  32, &min_nvar_val);
16620  127, 32, &min_nvar_val);
16621  } else {
16622  min_nvar_val = noise_var_tbl_rev7[3];
16624  32, &min_nvar_val);
16625 
16626  min_nvar_val = noise_var_tbl_rev7[127];
16628  127, 32, &min_nvar_val);
16629  }
16630 
16631  wlc_phy_workarounds_nphy_gainctrl(pi);
16632 
16633  pdetrange =
16634  (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16635  pdetrange : pi->srom_fem2g.pdetrange;
16636 
16637  if (pdetrange == 0) {
16638  chan_freq_range =
16640  if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16641  aux_adc_vmid_rev7_core0[3] = 0x70;
16642  aux_adc_vmid_rev7_core1[3] = 0x70;
16643  aux_adc_gain_rev7[3] = 2;
16644  } else {
16645  aux_adc_vmid_rev7_core0[3] = 0x80;
16646  aux_adc_vmid_rev7_core1[3] = 0x80;
16647  aux_adc_gain_rev7[3] = 3;
16648  }
16649  } else if (pdetrange == 1) {
16650  if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16651  aux_adc_vmid_rev7_core0[3] = 0x7c;
16652  aux_adc_vmid_rev7_core1[3] = 0x7c;
16653  aux_adc_gain_rev7[3] = 2;
16654  } else {
16655  aux_adc_vmid_rev7_core0[3] = 0x8c;
16656  aux_adc_vmid_rev7_core1[3] = 0x8c;
16657  aux_adc_gain_rev7[3] = 1;
16658  }
16659  } else if (pdetrange == 2) {
16660  if (pi->pubpi.radioid == BCM2057_ID) {
16661  if ((pi->pubpi.radiorev == 5)
16662  || (pi->pubpi.radiorev == 7)
16663  || (pi->pubpi.radiorev == 8)) {
16664  if (chan_freq_range ==
16666  aux_adc_vmid_rev7_core0[3] =
16667  0x8c;
16668  aux_adc_vmid_rev7_core1[3] =
16669  0x8c;
16670  aux_adc_gain_rev7[3] = 0;
16671  } else {
16672  aux_adc_vmid_rev7_core0[3] =
16673  0x96;
16674  aux_adc_vmid_rev7_core1[3] =
16675  0x96;
16676  aux_adc_gain_rev7[3] = 0;
16677  }
16678  }
16679  }
16680 
16681  } else if (pdetrange == 3) {
16682  if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
16683  aux_adc_vmid_rev7_core0[3] = 0x89;
16684  aux_adc_vmid_rev7_core1[3] = 0x89;
16685  aux_adc_gain_rev7[3] = 0;
16686  }
16687 
16688  } else if (pdetrange == 5) {
16689 
16690  if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16691  aux_adc_vmid_rev7_core0[3] = 0x80;
16692  aux_adc_vmid_rev7_core1[3] = 0x80;
16693  aux_adc_gain_rev7[3] = 3;
16694  } else {
16695  aux_adc_vmid_rev7_core0[3] = 0x70;
16696  aux_adc_vmid_rev7_core1[3] = 0x70;
16697  aux_adc_gain_rev7[3] = 2;
16698  }
16699  }
16700 
16702  &aux_adc_vmid_rev7_core0);
16704  &aux_adc_vmid_rev7_core1);
16706  &aux_adc_gain_rev7);
16708  &aux_adc_gain_rev7);
16709 
16710  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16711 
16712  write_phy_reg(pi, 0x23f, 0x1f8);
16713  write_phy_reg(pi, 0x240, 0x1f8);
16714 
16716  1, 0, 32, &leg_data_weights);
16717  leg_data_weights = leg_data_weights & 0xffffff;
16719  1, 0, 32, &leg_data_weights);
16720 
16721  alpha0 = 293;
16722  alpha1 = 435;
16723  alpha2 = 261;
16724  beta0 = 366;
16725  beta1 = 205;
16726  beta2 = 32;
16727  write_phy_reg(pi, 0x145, alpha0);
16728  write_phy_reg(pi, 0x146, alpha1);
16729  write_phy_reg(pi, 0x147, alpha2);
16730  write_phy_reg(pi, 0x148, beta0);
16731  write_phy_reg(pi, 0x149, beta1);
16732  write_phy_reg(pi, 0x14a, beta2);
16733 
16734  write_phy_reg(pi, 0x38, 0xC);
16735  write_phy_reg(pi, 0x2ae, 0xC);
16736 
16737  wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
16738  rfseq_tx2rx_events_rev3,
16739  rfseq_tx2rx_dlys_rev3,
16740  ARRAY_SIZE(rfseq_tx2rx_events_rev3));
16741 
16742  if (PHY_IPA(pi))
16743  wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16744  rfseq_rx2tx_events_rev3_ipa,
16745  rfseq_rx2tx_dlys_rev3_ipa,
16746  ARRAY_SIZE(rfseq_rx2tx_events_rev3_ipa));
16747 
16748  if ((pi->sh->hw_phyrxchain != 0x3) &&
16749  (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
16750 
16751  if (PHY_IPA(pi)) {
16752  rfseq_rx2tx_dlys_rev3[5] = 59;
16753  rfseq_rx2tx_dlys_rev3[6] = 1;
16754  rfseq_rx2tx_events_rev3[7] =
16756  }
16757 
16758  wlc_phy_set_rfseq_nphy(
16759  pi, NPHY_RFSEQ_RX2TX,
16760  rfseq_rx2tx_events_rev3,
16761  rfseq_rx2tx_dlys_rev3,
16762  ARRAY_SIZE(rfseq_rx2tx_events_rev3));
16763  }
16764 
16765  if (CHSPEC_IS2G(pi->radio_chanspec))
16766  write_phy_reg(pi, 0x6a, 0x2);
16767  else
16768  write_phy_reg(pi, 0x6a, 0x9c40);
16769 
16770  mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
16771 
16772  if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16774  32, &min_nvar_val);
16776  127, 32, &min_nvar_val);
16777  } else {
16778  min_nvar_val = noise_var_tbl_rev3[3];
16780  32, &min_nvar_val);
16781 
16782  min_nvar_val = noise_var_tbl_rev3[127];
16784  127, 32, &min_nvar_val);
16785  }
16786 
16787  wlc_phy_workarounds_nphy_gainctrl(pi);
16788 
16790  &dac_control);
16792  &dac_control);
16793 
16794  pdetrange =
16795  (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16796  pdetrange : pi->srom_fem2g.pdetrange;
16797 
16798  if (pdetrange == 0) {
16799  if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16800  aux_adc_vmid = aux_adc_vmid_rev4;
16801  aux_adc_gain = aux_adc_gain_rev4;
16802  } else {
16803  aux_adc_vmid = aux_adc_vmid_rev3;
16804  aux_adc_gain = aux_adc_gain_rev3;
16805  }
16806  chan_freq_range =
16808  if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16809  switch (chan_freq_range) {
16811  aux_adc_vmid[3] = 0x89;
16812  aux_adc_gain[3] = 0;
16813  break;
16815  aux_adc_vmid[3] = 0x89;
16816  aux_adc_gain[3] = 0;
16817  break;
16819  aux_adc_vmid[3] = 0x89;
16820  aux_adc_gain[3] = 0;
16821  break;
16822  default:
16823  break;
16824  }
16825  }
16827  0x08, 16, aux_adc_vmid);
16829  0x18, 16, aux_adc_vmid);
16831  0x0c, 16, aux_adc_gain);
16833  0x1c, 16, aux_adc_gain);
16834  } else if (pdetrange == 1) {
16836  0x08, 16, sk_adc_vmid);
16838  0x18, 16, sk_adc_vmid);
16840  0x0c, 16, sk_adc_gain);
16842  0x1c, 16, sk_adc_gain);
16843  } else if (pdetrange == 2) {
16844 
16845  u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16846  u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16847 
16848  if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16849  chan_freq_range =
16851  if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16852  bcm_adc_vmid[3] = 0x8e;
16853  bcm_adc_gain[3] = 0x03;
16854  } else {
16855  bcm_adc_vmid[3] = 0x94;
16856  bcm_adc_gain[3] = 0x03;
16857  }
16858  } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16859  bcm_adc_vmid[3] = 0x84;
16860  bcm_adc_gain[3] = 0x02;
16861  }
16862 
16864  0x08, 16, bcm_adc_vmid);
16866  0x18, 16, bcm_adc_vmid);
16868  0x0c, 16, bcm_adc_gain);
16870  0x1c, 16, bcm_adc_gain);
16871  } else if (pdetrange == 3) {
16872  chan_freq_range =
16874  if ((NREV_GE(pi->pubpi.phy_rev, 4))
16875  && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16876 
16877  u16 auxadc_vmid[] = {
16878  0xa2, 0xb4, 0xb4, 0x270
16879  };
16880  u16 auxadc_gain[] = {
16881  0x02, 0x02, 0x02, 0x00
16882  };
16883 
16886  0x08, 16, auxadc_vmid);
16889  0x18, 16, auxadc_vmid);
16892  0x0c, 16, auxadc_gain);
16895  0x1c, 16, auxadc_gain);
16896  }
16897  } else if ((pdetrange == 4) || (pdetrange == 5)) {
16898  u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16899  u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16900  u16 Vmid[2], Av[2];
16901 
16902  chan_freq_range =
16904  if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16905  Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16906  Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16907  Av[0] = (pdetrange == 4) ? 2 : 0;
16908  Av[1] = (pdetrange == 4) ? 2 : 0;
16909  } else {
16910  Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16911  Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16912  Av[0] = (pdetrange == 4) ? 2 : 0;
16913  Av[1] = (pdetrange == 4) ? 2 : 0;
16914  }
16915 
16916  bcm_adc_vmid[3] = Vmid[0];
16917  bcm_adc_gain[3] = Av[0];
16919  0x08, 16, bcm_adc_vmid);
16921  0x0c, 16, bcm_adc_gain);
16922 
16923  bcm_adc_vmid[3] = Vmid[1];
16924  bcm_adc_gain[3] = Av[1];
16926  0x18, 16, bcm_adc_vmid);
16928  0x1c, 16, bcm_adc_gain);
16929  }
16930 
16931  write_radio_reg(pi,
16933  0x0);
16934  write_radio_reg(pi,
16936  0x0);
16937 
16938  write_radio_reg(pi,
16940  0x6);
16941  write_radio_reg(pi,
16943  0x6);
16944 
16945  write_radio_reg(pi,
16947  0x7);
16948  write_radio_reg(pi,
16950  0x7);
16951 
16952  write_radio_reg(pi,
16954  0x88);
16955  write_radio_reg(pi,
16957  0x88);
16958 
16959  write_radio_reg(pi,
16961  0x0);
16962  write_radio_reg(pi,
16964  0x0);
16965 
16966  write_radio_reg(pi,
16968  0x0);
16969  write_radio_reg(pi,
16971  0x0);
16972 
16973  triso =
16974  (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16975  triso : pi->srom_fem2g.triso;
16976  if (triso == 7) {
16977  wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
16978  wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
16979  }
16980 
16981  wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
16982 
16983  if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
16984  (CHSPEC_IS5G(pi->radio_chanspec))) ||
16985  (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
16986  (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
16987  (CHSPEC_IS2G(pi->radio_chanspec)))) {
16988  nss1_data_weights = 0x00088888;
16989  ht_data_weights = 0x00088888;
16990  stbc_data_weights = 0x00088888;
16991  } else {
16992  nss1_data_weights = 0x88888888;
16993  ht_data_weights = 0x88888888;
16994  stbc_data_weights = 0x88888888;
16995  }
16997  1, 1, 32, &nss1_data_weights);
16999  1, 2, 32, &ht_data_weights);
17001  1, 3, 32, &stbc_data_weights);
17002 
17003  if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17004  if (CHSPEC_IS5G(pi->radio_chanspec)) {
17005  write_radio_reg(pi,
17007  RADIO_2056_TX0, 0x70);
17008  write_radio_reg(pi,
17010  RADIO_2056_TX1, 0x70);
17011  }
17012  }
17013 
17014  if (!pi->edcrs_threshold_lock) {
17015  write_phy_reg(pi, 0x224, 0x3eb);
17016  write_phy_reg(pi, 0x225, 0x3eb);
17017  write_phy_reg(pi, 0x226, 0x341);
17018  write_phy_reg(pi, 0x227, 0x341);
17019  write_phy_reg(pi, 0x228, 0x42b);
17020  write_phy_reg(pi, 0x229, 0x42b);
17021  write_phy_reg(pi, 0x22a, 0x381);
17022  write_phy_reg(pi, 0x22b, 0x381);
17023  write_phy_reg(pi, 0x22c, 0x42b);
17024  write_phy_reg(pi, 0x22d, 0x42b);
17025  write_phy_reg(pi, 0x22e, 0x381);
17026  write_phy_reg(pi, 0x22f, 0x381);
17027  }
17028 
17029  if (NREV_GE(pi->pubpi.phy_rev, 6)) {
17030 
17031  if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK)
17032  wlapi_bmac_mhf(pi->sh->physhim, MHF4,
17035  }
17036  } else {
17037 
17038  if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
17039  (pi->sh->boardtype == 0x8b)) {
17040  uint i;
17041  u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
17042  for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
17043  rfseq_rx2tx_dlys[i] = war_dlys[i];
17044  }
17045 
17046  if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
17049  } else {
17052  }
17053 
17054  regval = 0x000a;
17055  wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
17056  wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
17057 
17058  if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17059  regval = 0xcdaa;
17060  wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
17061  wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
17062  }
17063 
17064  if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17065  regval = 0x0000;
17066  wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
17067  wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
17068 
17069  regval = 0x7aab;
17070  wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
17071  wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
17072 
17073  regval = 0x0800;
17074  wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
17075  wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
17076  }
17077 
17078  write_phy_reg(pi, 0xf8, 0x02d8);
17079  write_phy_reg(pi, 0xf9, 0x0301);
17080  write_phy_reg(pi, 0xfa, 0x02d8);
17081  write_phy_reg(pi, 0xfb, 0x0301);
17082 
17083  wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
17084  rfseq_rx2tx_dlys,
17085  ARRAY_SIZE(rfseq_rx2tx_events));
17086 
17087  wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
17088  rfseq_tx2rx_dlys,
17089  ARRAY_SIZE(rfseq_tx2rx_events));
17090 
17091  wlc_phy_workarounds_nphy_gainctrl(pi);
17092 
17093  if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17094 
17095  if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
17096  wlapi_bmac_mhf(pi->sh->physhim, MHF3,
17099  BRCM_BAND_ALL);
17100 
17101  } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
17102  write_phy_reg(pi, 0x1e3, 0x0);
17103  write_phy_reg(pi, 0x1e4, 0x0);
17104  }
17105 
17106  if (NREV_LT(pi->pubpi.phy_rev, 2))
17107  mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
17108 
17109  alpha0 = 293;
17110  alpha1 = 435;
17111  alpha2 = 261;
17112  beta0 = 366;
17113  beta1 = 205;
17114  beta2 = 32;
17115  write_phy_reg(pi, 0x145, alpha0);
17116  write_phy_reg(pi, 0x146, alpha1);
17117  write_phy_reg(pi, 0x147, alpha2);
17118  write_phy_reg(pi, 0x148, beta0);
17119  write_phy_reg(pi, 0x149, beta1);
17120  write_phy_reg(pi, 0x14a, beta2);
17121 
17122  if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17123  mod_phy_reg(pi, 0x142, (0xf << 12), 0);
17124 
17125  write_phy_reg(pi, 0x192, 0xb5);
17126  write_phy_reg(pi, 0x193, 0xa4);
17127  write_phy_reg(pi, 0x194, 0x0);
17128  }
17129 
17130  if (NREV_IS(pi->pubpi.phy_rev, 2))
17131  mod_phy_reg(pi, 0x221,
17134  }
17135 
17136  if (pi->phyhang_avoid)
17138 }
17139 
17140 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
17141 {
17142  int j, type = 2;
17143  u16 addr_offset = 0x2c5;
17144 
17145  for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
17146  write_phy_reg(pi, addr_offset + j,
17147  NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
17148 }
17149 
17150 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
17151 {
17152 
17153  if (write == 0) {
17154  vals[0] = read_phy_reg(pi, 0x2c);
17155  vals[1] = read_phy_reg(pi, 0x42);
17156  } else {
17157  write_phy_reg(pi, 0x2c, vals[0]);
17158  write_phy_reg(pi, 0x42, vals[1]);
17159  }
17160 }
17161 
17162 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
17163 {
17164  u8 core;
17165 
17166  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17167  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17168  if (CHSPEC_IS2G(pi->radio_chanspec)) {
17169  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17170  TX_SSI_MASTER, 0x5);
17171  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17172  TX_SSI_MUX, 0xe);
17173 
17174  if (pi->pubpi.radiorev != 5)
17175  WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17176  core, TSSIA, 0);
17177 
17178  if (!NREV_IS(pi->pubpi.phy_rev, 7))
17179  WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17180  core, TSSIG, 0x1);
17181  else
17182  WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17183  core, TSSIG, 0x31);
17184  } else {
17185  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17186  TX_SSI_MASTER, 0x9);
17187  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17188  TX_SSI_MUX, 0xc);
17189  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17190  TSSIG, 0);
17191 
17192  if (pi->pubpi.radiorev != 5) {
17193  if (!NREV_IS(pi->pubpi.phy_rev, 7))
17194  WRITE_RADIO_REG3(pi, RADIO_2057,
17195  TX, core,
17196  TSSIA, 0x1);
17197  else
17198  WRITE_RADIO_REG3(pi, RADIO_2057,
17199  TX, core,
17200  TSSIA, 0x31);
17201  }
17202  }
17203  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
17204  0);
17205  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
17206  0);
17207  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
17208  0x3);
17209  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
17210  0x0);
17211  }
17212  } else {
17213  WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
17214  (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
17215  0x80);
17216  WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
17217  WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
17218 
17219  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17220  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
17221  0x0);
17222  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
17223  0x0);
17224  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
17225  0x3);
17226  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
17227  0x0);
17228  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
17229  0x8);
17230  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
17231  0x0);
17232  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
17233  0x0);
17234 
17235  if (CHSPEC_IS2G(pi->radio_chanspec)) {
17236  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17237  TX_SSI_MASTER, 0x5);
17238 
17239  if (pi->pubpi.radiorev != 5)
17240  WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17241  core, TSSIA, 0x0);
17242  if (NREV_GE(pi->pubpi.phy_rev, 5))
17243  WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17244  core, TSSIG, 0x31);
17245  else
17246  WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17247  core, TSSIG, 0x11);
17248  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17249  TX_SSI_MUX, 0xe);
17250  } else {
17251  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17252  TX_SSI_MASTER, 0x9);
17253  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17254  TSSIA, 0x31);
17255  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17256  TSSIG, 0x0);
17257  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17258  TX_SSI_MUX, 0xc);
17259  }
17260  }
17261  }
17262 }
17263 
17264 static void
17265 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
17266  u8 core_mask, u8 off)
17267 {
17268  u8 core_num;
17269  u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
17270  0, val_mask = 0;
17271  u8 shift = 0, val_shift = 0;
17272 
17273  if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
17274 
17275  en_mask = field;
17276  for (core_num = 0; core_num < 2; core_num++) {
17277 
17278  switch (field) {
17279  case (0x1 << 1):
17280  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17281  val_addr = (core_num == 0) ? 0x7a : 0x7d;
17282  val_mask = (0x1 << 0);
17283  val_shift = 0;
17284  break;
17285  case (0x1 << 2):
17286  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17287  val_addr = (core_num == 0) ? 0x7a : 0x7d;
17288  val_mask = (0x1 << 1);
17289  val_shift = 1;
17290  break;
17291  case (0x1 << 3):
17292  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17293  val_addr = (core_num == 0) ? 0x7a : 0x7d;
17294  val_mask = (0x1 << 2);
17295  val_shift = 2;
17296  break;
17297  case (0x1 << 4):
17298  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17299  val_addr = (core_num == 0) ? 0x7a : 0x7d;
17300  val_mask = (0x1 << 4);
17301  val_shift = 4;
17302  break;
17303  case (0x1 << 5):
17304  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17305  val_addr = (core_num == 0) ? 0x7a : 0x7d;
17306  val_mask = (0x1 << 5);
17307  val_shift = 5;
17308  break;
17309  case (0x1 << 6):
17310  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17311  val_addr = (core_num == 0) ? 0x7a : 0x7d;
17312  val_mask = (0x1 << 6);
17313  val_shift = 6;
17314  break;
17315  case (0x1 << 7):
17316  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17317  val_addr = (core_num == 0) ? 0x7a : 0x7d;
17318  val_mask = (0x1 << 7);
17319  val_shift = 7;
17320  break;
17321  case (0x1 << 8):
17322  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17323  val_addr = (core_num == 0) ? 0x7a : 0x7d;
17324  val_mask = (0x7 << 8);
17325  val_shift = 8;
17326  break;
17327  case (0x1 << 11):
17328  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17329  val_addr = (core_num == 0) ? 0x7a : 0x7d;
17330  val_mask = (0x7 << 13);
17331  val_shift = 13;
17332  break;
17333 
17334  case (0x1 << 9):
17335  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17336  val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17337  val_mask = (0x7 << 0);
17338  val_shift = 0;
17339  break;
17340 
17341  case (0x1 << 10):
17342  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17343  val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17344  val_mask = (0x7 << 4);
17345  val_shift = 4;
17346  break;
17347 
17348  case (0x1 << 12):
17349  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17350  val_addr = (core_num == 0) ? 0x7b : 0x7e;
17351  val_mask = (0xffff << 0);
17352  val_shift = 0;
17353  break;
17354  case (0x1 << 13):
17355  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17356  val_addr = (core_num == 0) ? 0x7c : 0x7f;
17357  val_mask = (0xffff << 0);
17358  val_shift = 0;
17359  break;
17360  case (0x1 << 14):
17361  en_addr = (core_num == 0) ? 0xe7 : 0xec;
17362  val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17363  val_mask = (0x3 << 6);
17364  val_shift = 6;
17365  break;
17366  case (0x1 << 0):
17367  en_addr = (core_num == 0) ? 0xe5 : 0xe6;
17368  val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17369  val_mask = (0x1 << 15);
17370  val_shift = 15;
17371  break;
17372  default:
17373  addr = 0xffff;
17374  break;
17375  }
17376 
17377  if (off) {
17378  and_phy_reg(pi, en_addr, ~en_mask);
17379  and_phy_reg(pi, val_addr, ~val_mask);
17380  } else {
17381 
17382  if ((core_mask == 0)
17383  || (core_mask & (1 << core_num))) {
17384  or_phy_reg(pi, en_addr, en_mask);
17385 
17386  if (addr != 0xffff)
17387  mod_phy_reg(pi, val_addr,
17388  val_mask,
17389  (value <<
17390  val_shift));
17391  }
17392  }
17393  }
17394  } else {
17395 
17396  if (off) {
17397  and_phy_reg(pi, 0xec, ~field);
17398  value = 0x0;
17399  } else {
17400  or_phy_reg(pi, 0xec, field);
17401  }
17402 
17403  for (core_num = 0; core_num < 2; core_num++) {
17404 
17405  switch (field) {
17406  case (0x1 << 1):
17407  case (0x1 << 9):
17408  case (0x1 << 12):
17409  case (0x1 << 13):
17410  case (0x1 << 14):
17411  addr = 0x78;
17412 
17413  core_mask = 0x1;
17414  break;
17415  case (0x1 << 2):
17416  case (0x1 << 3):
17417  case (0x1 << 4):
17418  case (0x1 << 5):
17419  case (0x1 << 6):
17420  case (0x1 << 7):
17421  case (0x1 << 8):
17422  addr = (core_num == 0) ? 0x7a : 0x7d;
17423  break;
17424  case (0x1 << 10):
17425  addr = (core_num == 0) ? 0x7b : 0x7e;
17426  break;
17427  case (0x1 << 11):
17428  addr = (core_num == 0) ? 0x7c : 0x7f;
17429  break;
17430  default:
17431  addr = 0xffff;
17432  }
17433 
17434  switch (field) {
17435  case (0x1 << 1):
17436  mask = (0x7 << 3);
17437  shift = 3;
17438  break;
17439  case (0x1 << 9):
17440  mask = (0x1 << 2);
17441  shift = 2;
17442  break;
17443  case (0x1 << 12):
17444  mask = (0x1 << 8);
17445  shift = 8;
17446  break;
17447  case (0x1 << 13):
17448  mask = (0x1 << 9);
17449  shift = 9;
17450  break;
17451  case (0x1 << 14):
17452  mask = (0xf << 12);
17453  shift = 12;
17454  break;
17455  case (0x1 << 2):
17456  mask = (0x1 << 0);
17457  shift = 0;
17458  break;
17459  case (0x1 << 3):
17460  mask = (0x1 << 1);
17461  shift = 1;
17462  break;
17463  case (0x1 << 4):
17464  mask = (0x1 << 2);
17465  shift = 2;
17466  break;
17467  case (0x1 << 5):
17468  mask = (0x3 << 4);
17469  shift = 4;
17470  break;
17471  case (0x1 << 6):
17472  mask = (0x3 << 6);
17473  shift = 6;
17474  break;
17475  case (0x1 << 7):
17476  mask = (0x1 << 8);
17477  shift = 8;
17478  break;
17479  case (0x1 << 8):
17480  mask = (0x1 << 9);
17481  shift = 9;
17482  break;
17483  case (0x1 << 10):
17484  mask = 0x1fff;
17485  shift = 0x0;
17486  break;
17487  case (0x1 << 11):
17488  mask = 0x1fff;
17489  shift = 0x0;
17490  break;
17491  default:
17492  mask = 0x0;
17493  shift = 0x0;
17494  break;
17495  }
17496 
17497  if ((addr != 0xffff) && (core_mask & (1 << core_num)))
17498  mod_phy_reg(pi, addr, mask, (value << shift));
17499  }
17500 
17501  or_phy_reg(pi, 0xec, (0x1 << 0));
17502  or_phy_reg(pi, 0x78, (0x1 << 0));
17503  udelay(1);
17504  and_phy_reg(pi, 0xec, ~(0x1 << 0));
17505  }
17506 }
17507 
17508 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
17509 {
17510  s32 rssi_buf[4];
17511  s32 int_val;
17512 
17513  if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
17514 
17515  return;
17516 
17517  if (PHY_IPA(pi))
17518  wlc_phy_ipa_internal_tssi_setup_nphy(pi);
17519 
17520  if (NREV_GE(pi->pubpi.phy_rev, 7))
17521  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17522  0, 0x3, 0,
17524  else if (NREV_GE(pi->pubpi.phy_rev, 3))
17525  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
17526 
17528 
17529  wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
17530 
17531  udelay(20);
17532  int_val =
17534  1);
17537 
17538  if (NREV_GE(pi->pubpi.phy_rev, 7))
17539  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17540  0, 0x3, 1,
17542  else if (NREV_GE(pi->pubpi.phy_rev, 3))
17543  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
17544 
17545  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17546 
17547  pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17548  (u8) ((int_val >> 24) & 0xff);
17549  pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17550  (u8) ((int_val >> 24) & 0xff);
17551 
17552  pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17553  (u8) ((int_val >> 8) & 0xff);
17554  pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17555  (u8) ((int_val >> 8) & 0xff);
17556  } else {
17557  pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17558  (u8) ((int_val >> 24) & 0xff);
17559 
17560  pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17561  (u8) ((int_val >> 8) & 0xff);
17562 
17563  pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17564  (u8) ((int_val >> 16) & 0xff);
17565  pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17566  (u8) ((int_val) & 0xff);
17567  }
17568 
17569 }
17570 
17571 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
17572 {
17573  u8 idx, idx2, i, delta_ind;
17574 
17575  for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++)
17576  pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
17577 
17578  for (i = 0; i < 4; i++) {
17579  idx2 = 0;
17580 
17581  delta_ind = 0;
17582 
17583  switch (i) {
17584  case 0:
17585 
17586  if (CHSPEC_IS40(pi->radio_chanspec)
17588  idx = TXP_FIRST_MCS_40_SISO;
17589  } else {
17590  idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17592  delta_ind = 1;
17593  }
17594  break;
17595 
17596  case 1:
17597 
17598  idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17600  break;
17601 
17602  case 2:
17603 
17604  idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17606  break;
17607 
17608  case 3:
17609 
17610  idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17612  break;
17613  }
17614 
17615  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17616  pi->tx_power_offset[idx];
17617  idx = idx + delta_ind;
17618  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17619  pi->tx_power_offset[idx];
17620  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17621  pi->tx_power_offset[idx];
17622  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17623  pi->tx_power_offset[idx++];
17624 
17625  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17626  pi->tx_power_offset[idx++];
17627  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17628  pi->tx_power_offset[idx];
17629  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17630  pi->tx_power_offset[idx];
17631  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17632  pi->tx_power_offset[idx++];
17633 
17634  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17635  pi->tx_power_offset[idx++];
17636  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17637  pi->tx_power_offset[idx];
17638  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17639  pi->tx_power_offset[idx];
17640  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17641  pi->tx_power_offset[idx++];
17642 
17643  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17644  pi->tx_power_offset[idx];
17645  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17646  pi->tx_power_offset[idx++];
17647  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17648  pi->tx_power_offset[idx];
17649  idx = idx + 1 - delta_ind;
17650  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17651  pi->tx_power_offset[idx];
17652 
17653  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17654  pi->tx_power_offset[idx];
17655  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17656  pi->tx_power_offset[idx];
17657  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17658  pi->tx_power_offset[idx];
17659  pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17660  pi->tx_power_offset[idx];
17661  }
17662 }
17663 
17664 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
17665 {
17666  u32 idx;
17667  s16 a1[2], b0[2], b1[2];
17668  s8 target_pwr_qtrdbm[2];
17669  s32 num, den, pwr_est;
17670  u8 chan_freq_range;
17671  u8 idle_tssi[2];
17672  u32 tbl_id, tbl_len, tbl_offset;
17673  u32 regval[64];
17674  u8 core;
17675 
17676  if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17677  wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17678  (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
17679  udelay(1);
17680  }
17681 
17682  if (pi->phyhang_avoid)
17684 
17685  or_phy_reg(pi, 0x122, (0x1 << 0));
17686 
17687  if (NREV_GE(pi->pubpi.phy_rev, 3))
17688  and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
17689  else
17690  or_phy_reg(pi, 0x1e7, (0x1 << 15));
17691 
17692  if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17693  wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17694 
17695  if (pi->sh->sromrev < 4) {
17696  idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17697  idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17698  a1[0] = -424;
17699  a1[1] = -424;
17700  b0[0] = 5612;
17701  b0[1] = 5612;
17702  b1[1] = -1393;
17703  b1[0] = -1393;
17704  } else {
17705 
17706  chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
17707  switch (chan_freq_range) {
17708  case WL_CHAN_FREQ_RANGE_2G:
17709  idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17710  idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17711  a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
17712  a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
17713  b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
17714  b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
17715  b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
17716  b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
17717  break;
17719  idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17720  idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17721  a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
17722  a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
17723  b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
17724  b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
17725  b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
17726  b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
17727  break;
17729  idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17730  idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17731  a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
17732  a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
17733  b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
17734  b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
17735  b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
17736  b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
17737  break;
17739  idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17740  idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17741  a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
17742  a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
17743  b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
17744  b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
17745  b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
17746  b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
17747  break;
17748  default:
17749  idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17750  idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17751  a1[0] = -424;
17752  a1[1] = -424;
17753  b0[0] = 5612;
17754  b0[1] = 5612;
17755  b1[1] = -1393;
17756  b1[0] = -1393;
17757  break;
17758  }
17759  }
17760 
17761  /* use the provided transmit power */
17762  target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
17763  target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
17764 
17765  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17766  if (pi->srom_fem2g.tssipos)
17767  or_phy_reg(pi, 0x1e9, (0x1 << 14));
17768 
17769  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17770  for (core = 0; core <= 1; core++) {
17771  if (PHY_IPA(pi)) {
17772  if (CHSPEC_IS2G(pi->radio_chanspec))
17773  WRITE_RADIO_REG3(pi, RADIO_2057,
17774  TX, core,
17775  TX_SSI_MUX,
17776  0xe);
17777  else
17778  WRITE_RADIO_REG3(pi, RADIO_2057,
17779  TX, core,
17780  TX_SSI_MUX,
17781  0xc);
17782  }
17783  }
17784  } else {
17785  if (PHY_IPA(pi)) {
17786 
17789  (CHSPEC_IS5G
17790  (pi->radio_chanspec)) ?
17791  0xc : 0xe);
17792  write_radio_reg(pi,
17795  (CHSPEC_IS5G
17796  (pi->radio_chanspec)) ?
17797  0xc : 0xe);
17798  } else {
17799 
17801  RADIO_2056_TX0, 0x11);
17803  RADIO_2056_TX1, 0x11);
17804  }
17805  }
17806  }
17807 
17808  if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17809  wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17810  (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
17811  udelay(1);
17812  }
17813 
17814  if (NREV_GE(pi->pubpi.phy_rev, 7))
17815  mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17817  else
17818  mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17820 
17821  if (NREV_GE(pi->pubpi.phy_rev, 7))
17822  mod_phy_reg(pi, 0x222, (0xff << 0),
17824  else if (NREV_GT(pi->pubpi.phy_rev, 1))
17825  mod_phy_reg(pi, 0x222, (0xff << 0),
17827 
17828  if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17829  wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17830 
17831  write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
17832 
17833  write_phy_reg(pi, 0x1e9,
17834  (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
17835 
17836  write_phy_reg(pi, 0x1ea,
17837  (target_pwr_qtrdbm[0] << 0) |
17838  (target_pwr_qtrdbm[1] << 8));
17839 
17840  tbl_len = 64;
17841  tbl_offset = 0;
17842  for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
17843  tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
17844 
17845  for (idx = 0; idx < tbl_len; idx++) {
17846  num = 8 *
17847  (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
17848  den = 32768 + a1[tbl_id - 26] * idx;
17849  pwr_est = max(((4 * num + den / 2) / den), -8);
17850  if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17851  if (idx <=
17852  (uint) (31 - idle_tssi[tbl_id - 26] + 1))
17853  pwr_est =
17854  max(pwr_est,
17855  target_pwr_qtrdbm
17856  [tbl_id - 26] + 1);
17857  }
17858  regval[idx] = (u32) pwr_est;
17859  }
17860  wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
17861  regval);
17862  }
17863 
17864  wlc_phy_txpwr_limit_to_tbl_nphy(pi);
17866  pi->adj_pwr_tbl_nphy);
17868  pi->adj_pwr_tbl_nphy);
17869 
17870  if (pi->phyhang_avoid)
17872 }
17873 
17874 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
17875 {
17876  u32 *tx_pwrctrl_tbl = NULL;
17877 
17878  if (CHSPEC_IS2G(pi->radio_chanspec)) {
17879  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17880  if ((pi->pubpi.radiorev == 4)
17881  || (pi->pubpi.radiorev == 6))
17882  tx_pwrctrl_tbl =
17883  nphy_tpc_txgain_ipa_2g_2057rev4n6;
17884  else if (pi->pubpi.radiorev == 3)
17885  tx_pwrctrl_tbl =
17886  nphy_tpc_txgain_ipa_2g_2057rev3;
17887  else if (pi->pubpi.radiorev == 5)
17888  tx_pwrctrl_tbl =
17889  nphy_tpc_txgain_ipa_2g_2057rev5;
17890  else if ((pi->pubpi.radiorev == 7)
17891  || (pi->pubpi.radiorev == 8))
17892  tx_pwrctrl_tbl =
17893  nphy_tpc_txgain_ipa_2g_2057rev7;
17894  } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
17895  tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
17896  if (pi->sh->chip == BCMA_CHIP_ID_BCM47162)
17897  tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
17898  } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
17899  tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
17900  } else {
17901  tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
17902  }
17903  } else {
17904 
17905  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17906  if ((pi->pubpi.radiorev == 3) ||
17907  (pi->pubpi.radiorev == 4) ||
17908  (pi->pubpi.radiorev == 6))
17909  tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
17910  else if ((pi->pubpi.radiorev == 7)
17911  || (pi->pubpi.radiorev == 8))
17912  tx_pwrctrl_tbl =
17913  nphy_tpc_txgain_ipa_5g_2057rev7;
17914  } else {
17915  tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
17916  }
17917  }
17918 
17919  return tx_pwrctrl_tbl;
17920 }
17921 
17922 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
17923 {
17924  if (CHSPEC_IS2G(pi->radio_chanspec)) {
17925  if (pi->nphy_rssical_chanspec_2G == 0)
17926  return;
17927 
17928  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17931  pi->rssical_cache.
17932  rssical_radio_regs_2G[0]);
17935  pi->rssical_cache.
17936  rssical_radio_regs_2G[1]);
17937  } else {
17938  mod_radio_reg(pi,
17941  pi->rssical_cache.
17942  rssical_radio_regs_2G[0]);
17943  mod_radio_reg(pi,
17946  pi->rssical_cache.
17947  rssical_radio_regs_2G[1]);
17948  }
17949 
17950  write_phy_reg(pi, 0x1a6,
17951  pi->rssical_cache.rssical_phyregs_2G[0]);
17952  write_phy_reg(pi, 0x1ac,
17953  pi->rssical_cache.rssical_phyregs_2G[1]);
17954  write_phy_reg(pi, 0x1b2,
17955  pi->rssical_cache.rssical_phyregs_2G[2]);
17956  write_phy_reg(pi, 0x1b8,
17957  pi->rssical_cache.rssical_phyregs_2G[3]);
17958  write_phy_reg(pi, 0x1a4,
17959  pi->rssical_cache.rssical_phyregs_2G[4]);
17960  write_phy_reg(pi, 0x1aa,
17961  pi->rssical_cache.rssical_phyregs_2G[5]);
17962  write_phy_reg(pi, 0x1b0,
17963  pi->rssical_cache.rssical_phyregs_2G[6]);
17964  write_phy_reg(pi, 0x1b6,
17965  pi->rssical_cache.rssical_phyregs_2G[7]);
17966  write_phy_reg(pi, 0x1a5,
17967  pi->rssical_cache.rssical_phyregs_2G[8]);
17968  write_phy_reg(pi, 0x1ab,
17969  pi->rssical_cache.rssical_phyregs_2G[9]);
17970  write_phy_reg(pi, 0x1b1,
17971  pi->rssical_cache.rssical_phyregs_2G[10]);
17972  write_phy_reg(pi, 0x1b7,
17973  pi->rssical_cache.rssical_phyregs_2G[11]);
17974 
17975  } else {
17976  if (pi->nphy_rssical_chanspec_5G == 0)
17977  return;
17978 
17979  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17982  pi->rssical_cache.
17983  rssical_radio_regs_5G[0]);
17986  pi->rssical_cache.
17987  rssical_radio_regs_5G[1]);
17988  } else {
17989  mod_radio_reg(pi,
17992  pi->rssical_cache.
17993  rssical_radio_regs_5G[0]);
17994  mod_radio_reg(pi,
17997  pi->rssical_cache.
17998  rssical_radio_regs_5G[1]);
17999  }
18000 
18001  write_phy_reg(pi, 0x1a6,
18002  pi->rssical_cache.rssical_phyregs_5G[0]);
18003  write_phy_reg(pi, 0x1ac,
18004  pi->rssical_cache.rssical_phyregs_5G[1]);
18005  write_phy_reg(pi, 0x1b2,
18006  pi->rssical_cache.rssical_phyregs_5G[2]);
18007  write_phy_reg(pi, 0x1b8,
18008  pi->rssical_cache.rssical_phyregs_5G[3]);
18009  write_phy_reg(pi, 0x1a4,
18010  pi->rssical_cache.rssical_phyregs_5G[4]);
18011  write_phy_reg(pi, 0x1aa,
18012  pi->rssical_cache.rssical_phyregs_5G[5]);
18013  write_phy_reg(pi, 0x1b0,
18014  pi->rssical_cache.rssical_phyregs_5G[6]);
18015  write_phy_reg(pi, 0x1b6,
18016  pi->rssical_cache.rssical_phyregs_5G[7]);
18017  write_phy_reg(pi, 0x1a5,
18018  pi->rssical_cache.rssical_phyregs_5G[8]);
18019  write_phy_reg(pi, 0x1ab,
18020  pi->rssical_cache.rssical_phyregs_5G[9]);
18021  write_phy_reg(pi, 0x1b1,
18022  pi->rssical_cache.rssical_phyregs_5G[10]);
18023  write_phy_reg(pi, 0x1b7,
18024  pi->rssical_cache.rssical_phyregs_5G[11]);
18025  }
18026 }
18027 
18028 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
18029 {
18030  u16 txcal_gain[2];
18031 
18032  pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
18033  pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
18034  wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18035  wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18036 
18037  wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18038  txcal_gain);
18039 
18040  if (CHSPEC_IS2G(pi->radio_chanspec)) {
18041  txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
18042  txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
18043  } else {
18044  txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
18045  txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
18046  }
18047 
18048  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18049  txcal_gain);
18050 }
18051 
18052 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
18053 {
18054  bool save_bbmult = false;
18055  u8 txcal_index_2057_rev5n7 = 0;
18056  u8 txcal_index_2057_rev3n4n6 = 10;
18057 
18058  if (pi->use_int_tx_iqlo_cal_nphy) {
18059  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18060  if ((pi->pubpi.radiorev == 3) ||
18061  (pi->pubpi.radiorev == 4) ||
18062  (pi->pubpi.radiorev == 6)) {
18063 
18064  pi->nphy_txcal_pwr_idx[0] =
18065  txcal_index_2057_rev3n4n6;
18066  pi->nphy_txcal_pwr_idx[1] =
18067  txcal_index_2057_rev3n4n6;
18069  pi, 3,
18070  txcal_index_2057_rev3n4n6,
18071  false);
18072  } else {
18073 
18074  pi->nphy_txcal_pwr_idx[0] =
18075  txcal_index_2057_rev5n7;
18076  pi->nphy_txcal_pwr_idx[1] =
18077  txcal_index_2057_rev5n7;
18079  pi, 3,
18080  txcal_index_2057_rev5n7,
18081  false);
18082  }
18083  save_bbmult = true;
18084 
18085  } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
18086  wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
18087  if (pi->sh->hw_phytxchain != 3) {
18088  pi->nphy_txcal_pwr_idx[1] =
18089  pi->nphy_txcal_pwr_idx[0];
18091  pi->
18092  nphy_txcal_pwr_idx[0],
18093  true);
18094  save_bbmult = true;
18095  }
18096 
18097  } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18098  if (PHY_IPA(pi)) {
18099  if (CHSPEC_IS2G(pi->radio_chanspec)) {
18101  false);
18102  } else {
18103  pi->nphy_txcal_pwr_idx[0] = 80;
18104  pi->nphy_txcal_pwr_idx[1] = 80;
18105  wlc_phy_txpwr_index_nphy(pi, 3, 80,
18106  false);
18107  save_bbmult = true;
18108  }
18109  } else {
18110  wlc_phy_internal_cal_txgain_nphy(pi);
18111  save_bbmult = true;
18112  }
18113 
18114  } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18115  if (PHY_IPA(pi)) {
18116  if (CHSPEC_IS2G(pi->radio_chanspec))
18118  false);
18119  else
18121  false);
18122  } else {
18123  wlc_phy_internal_cal_txgain_nphy(pi);
18124  save_bbmult = true;
18125  }
18126  }
18127 
18128  } else {
18129  wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
18130  }
18131 
18132  if (save_bbmult)
18133  wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
18134  &pi->nphy_txcal_bbmult);
18135 }
18136 
18137 static void
18138 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
18139  u8 core_code)
18140 {
18141  u16 mask;
18142  u16 val;
18143  u8 core;
18144 
18145  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18146  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18147  if (core_code == RADIO_MIMO_CORESEL_CORE1
18148  && core == PHY_CORE_1)
18149  continue;
18150  else if (core_code == RADIO_MIMO_CORESEL_CORE2
18151  && core == PHY_CORE_0)
18152  continue;
18153 
18154  if (NREV_LT(pi->pubpi.phy_rev, 7)) {
18155 
18156  mask = (0x1 << 10);
18157  val = 1 << 10;
18158  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18159  0x92, mask, val);
18160  }
18161 
18162  if (field == NPHY_RfctrlIntc_override_OFF) {
18163 
18164  write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18165  0x92, 0);
18166 
18169  } else if (field == NPHY_RfctrlIntc_override_TRSW) {
18170 
18171  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18172 
18173  mask = (0x1 << 6) | (0x1 << 7);
18174 
18175  val = value << 6;
18176  mod_phy_reg(pi,
18177  (core ==
18178  PHY_CORE_0) ? 0x91 : 0x92,
18179  mask, val);
18180 
18181  or_phy_reg(pi,
18182  (core ==
18183  PHY_CORE_0) ? 0x91 : 0x92,
18184  (0x1 << 10));
18185 
18186  and_phy_reg(pi, 0x2ff, (u16)
18187  ~(0x3 << 14));
18188  or_phy_reg(pi, 0x2ff, (0x1 << 13));
18189  or_phy_reg(pi, 0x2ff, (0x1 << 0));
18190  } else {
18191 
18192  mask = (0x1 << 6) |
18193  (0x1 << 7) |
18194  (0x1 << 8) | (0x1 << 9);
18195  val = value << 6;
18196  mod_phy_reg(pi,
18197  (core ==
18198  PHY_CORE_0) ? 0x91 : 0x92,
18199  mask, val);
18200 
18201  mask = (0x1 << 0);
18202  val = 1 << 0;
18203  mod_phy_reg(pi,
18204  (core ==
18205  PHY_CORE_0) ? 0xe7 : 0xec,
18206  mask, val);
18207 
18208  mask = (core == PHY_CORE_0) ?
18209  (0x1 << 0) : (0x1 << 1);
18210  val = 1 << ((core == PHY_CORE_0) ?
18211  0 : 1);
18212  mod_phy_reg(pi, 0x78, mask, val);
18213 
18214  SPINWAIT(((read_phy_reg(pi, 0x78) & val)
18215  != 0), 10000);
18216  if (WARN(read_phy_reg(pi, 0x78) & val,
18217  "HW error: override failed"))
18218  return;
18219 
18220  mask = (0x1 << 0);
18221  val = 0 << 0;
18222  mod_phy_reg(pi,
18223  (core ==
18224  PHY_CORE_0) ? 0xe7 : 0xec,
18225  mask, val);
18226  }
18227  } else if (field == NPHY_RfctrlIntc_override_PA) {
18228  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18229 
18230  mask = (0x1 << 4) | (0x1 << 5);
18231 
18232  if (CHSPEC_IS5G(pi->radio_chanspec))
18233  val = value << 5;
18234  else
18235  val = value << 4;
18236 
18237  mod_phy_reg(pi,
18238  (core ==
18239  PHY_CORE_0) ? 0x91 : 0x92,
18240  mask, val);
18241 
18242  or_phy_reg(pi,
18243  (core ==
18244  PHY_CORE_0) ? 0x91 : 0x92,
18245  (0x1 << 12));
18246  } else {
18247 
18248  if (CHSPEC_IS5G(pi->radio_chanspec)) {
18249  mask = (0x1 << 5);
18250  val = value << 5;
18251  } else {
18252  mask = (0x1 << 4);
18253  val = value << 4;
18254  }
18255  mod_phy_reg(pi,
18256  (core ==
18257  PHY_CORE_0) ? 0x91 : 0x92,
18258  mask, val);
18259  }
18260  } else if (field ==
18262  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18263  if (CHSPEC_IS5G(pi->radio_chanspec)) {
18264 
18265  mask = (0x1 << 0);
18266  val = value << 0;
18267  mod_phy_reg(pi,
18268  (core ==
18269  PHY_CORE_0) ? 0x91
18270  : 0x92, mask, val);
18271 
18272  mask = (0x1 << 2);
18273  mod_phy_reg(pi,
18274  (core ==
18275  PHY_CORE_0) ? 0x91
18276  : 0x92, mask, 0);
18277  } else {
18278 
18279  mask = (0x1 << 2);
18280  val = value << 2;
18281  mod_phy_reg(pi,
18282  (core ==
18283  PHY_CORE_0) ? 0x91
18284  : 0x92, mask, val);
18285 
18286  mask = (0x1 << 0);
18287  mod_phy_reg(pi,
18288  (core ==
18289  PHY_CORE_0) ? 0x91
18290  : 0x92, mask, 0);
18291  }
18292 
18293  mask = (0x1 << 11);
18294  val = 1 << 11;
18295  mod_phy_reg(pi,
18296  (core ==
18297  PHY_CORE_0) ? 0x91 : 0x92,
18298  mask, val);
18299  } else {
18300 
18301  if (CHSPEC_IS5G(pi->radio_chanspec)) {
18302  mask = (0x1 << 0);
18303  val = value << 0;
18304  } else {
18305  mask = (0x1 << 2);
18306  val = value << 2;
18307  }
18308  mod_phy_reg(pi,
18309  (core ==
18310  PHY_CORE_0) ? 0x91 : 0x92,
18311  mask, val);
18312  }
18313  } else if (field ==
18315  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18316  if (CHSPEC_IS5G(pi->radio_chanspec)) {
18317 
18318  mask = (0x1 << 1);
18319  val = value << 1;
18320  mod_phy_reg(pi,
18321  (core ==
18322  PHY_CORE_0) ? 0x91
18323  : 0x92, mask, val);
18324 
18325  mask = (0x1 << 3);
18326  mod_phy_reg(pi,
18327  (core ==
18328  PHY_CORE_0) ? 0x91
18329  : 0x92, mask, 0);
18330  } else {
18331 
18332  mask = (0x1 << 3);
18333  val = value << 3;
18334  mod_phy_reg(pi,
18335  (core ==
18336  PHY_CORE_0) ? 0x91
18337  : 0x92, mask, val);
18338 
18339  mask = (0x1 << 1);
18340  mod_phy_reg(pi,
18341  (core ==
18342  PHY_CORE_0) ? 0x91
18343  : 0x92, mask, 0);
18344  }
18345 
18346  mask = (0x1 << 11);
18347  val = 1 << 11;
18348  mod_phy_reg(pi,
18349  (core ==
18350  PHY_CORE_0) ? 0x91 : 0x92,
18351  mask, val);
18352  } else {
18353 
18354  if (CHSPEC_IS5G(pi->radio_chanspec)) {
18355  mask = (0x1 << 1);
18356  val = value << 1;
18357  } else {
18358  mask = (0x1 << 3);
18359  val = value << 3;
18360  }
18361  mod_phy_reg(pi,
18362  (core ==
18363  PHY_CORE_0) ? 0x91 : 0x92,
18364  mask, val);
18365  }
18366  }
18367  }
18368  }
18369 }
18370 
18371 void
18372 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
18373  bool debug)
18374 {
18375  int gainctrl_loopidx;
18376  uint core;
18377  u16 m0m1, curr_m0m1;
18378  s32 delta_power;
18379  s32 txpwrindex;
18380  s32 qdBm_power[2];
18381  u16 orig_BBConfig;
18382  u16 phy_saveregs[4];
18383  u32 freq_test;
18384  u16 ampl_test = 250;
18385  uint stepsize;
18386  bool phyhang_avoid_state = false;
18387 
18388  if (NREV_GE(pi->pubpi.phy_rev, 7))
18389  stepsize = 2;
18390  else
18391  stepsize = 1;
18392 
18393  if (CHSPEC_IS40(pi->radio_chanspec))
18394  freq_test = 5000;
18395  else
18396  freq_test = 2500;
18397 
18398  wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18399  wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18400 
18401  if (pi->phyhang_avoid)
18403 
18404  phyhang_avoid_state = pi->phyhang_avoid;
18405  pi->phyhang_avoid = false;
18406 
18407  phy_saveregs[0] = read_phy_reg(pi, 0x91);
18408  phy_saveregs[1] = read_phy_reg(pi, 0x92);
18409  phy_saveregs[2] = read_phy_reg(pi, 0xe7);
18410  phy_saveregs[3] = read_phy_reg(pi, 0xec);
18411  wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
18414 
18415  if (!debug) {
18416  wlc_phy_rfctrlintc_override_nphy(pi,
18419  wlc_phy_rfctrlintc_override_nphy(pi,
18422  } else {
18423  wlc_phy_rfctrlintc_override_nphy(pi,
18426  wlc_phy_rfctrlintc_override_nphy(pi,
18429  }
18430 
18431  orig_BBConfig = read_phy_reg(pi, 0x01);
18432  mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
18433 
18434  wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
18435 
18436  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18437  txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
18438 
18439  for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
18440  gainctrl_loopidx++) {
18441  wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18442  false);
18443 
18444  if (core == PHY_CORE_0)
18445  curr_m0m1 = m0m1 & 0xff00;
18446  else
18447  curr_m0m1 = m0m1 & 0x00ff;
18448 
18449  wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
18450  wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
18451 
18452  udelay(50);
18453 
18454  wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18456 
18457  pi->nphy_bb_mult_save = 0;
18459 
18460  delta_power = (dBm_targetpower * 4) - qdBm_power[core];
18461 
18462  txpwrindex -= stepsize * delta_power;
18463  if (txpwrindex < 0)
18464  txpwrindex = 0;
18465  else if (txpwrindex > 127)
18466  txpwrindex = 127;
18467 
18468  if (CHSPEC_IS5G(pi->radio_chanspec)) {
18469  if (NREV_IS(pi->pubpi.phy_rev, 4) &&
18470  (pi->srom_fem5g.extpagain == 3)) {
18471  if (txpwrindex < 30)
18472  txpwrindex = 30;
18473  }
18474  } else {
18475  if (NREV_GE(pi->pubpi.phy_rev, 5) &&
18476  (pi->srom_fem2g.extpagain == 3)) {
18477  if (txpwrindex < 50)
18478  txpwrindex = 50;
18479  }
18480  }
18481 
18482  wlc_phy_txpwr_index_nphy(pi, (1 << core),
18483  (u8) txpwrindex, true);
18484  }
18485 
18486  pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
18487 
18488  if (debug) {
18489  u16 radio_gain;
18490  u16 dbg_m0m1;
18491 
18492  wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18493 
18494  wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18495  false);
18496 
18497  wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18498  wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
18499 
18500  udelay(100);
18501 
18502  wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18504 
18505  wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
18506  &radio_gain);
18507 
18508  mdelay(4000);
18509  pi->nphy_bb_mult_save = 0;
18511  }
18512  }
18513 
18514  wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
18515  wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
18516 
18517  wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
18518 
18519  write_phy_reg(pi, 0x01, orig_BBConfig);
18520 
18521  write_phy_reg(pi, 0x91, phy_saveregs[0]);
18522  write_phy_reg(pi, 0x92, phy_saveregs[1]);
18523  write_phy_reg(pi, 0xe7, phy_saveregs[2]);
18524  write_phy_reg(pi, 0xec, phy_saveregs[3]);
18525 
18526  pi->phyhang_avoid = phyhang_avoid_state;
18527 
18528  if (pi->phyhang_avoid)
18530 }
18531 
18532 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
18533 {
18534  void *tbl_ptr;
18535  int coreNum;
18536  u16 *txcal_radio_regs = NULL;
18537 
18538  if (pi->phyhang_avoid)
18540 
18541  if (CHSPEC_IS2G(pi->radio_chanspec)) {
18542 
18544  &pi->calibration_cache.
18545  rxcal_coeffs_2G);
18546 
18547  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18548  txcal_radio_regs =
18549  pi->calibration_cache.txcal_radio_regs_2G;
18550  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18551 
18552  pi->calibration_cache.txcal_radio_regs_2G[0] =
18553  read_radio_reg(pi,
18555  RADIO_2056_TX0);
18556  pi->calibration_cache.txcal_radio_regs_2G[1] =
18557  read_radio_reg(pi,
18559  RADIO_2056_TX0);
18560  pi->calibration_cache.txcal_radio_regs_2G[2] =
18561  read_radio_reg(pi,
18563  RADIO_2056_TX1);
18564  pi->calibration_cache.txcal_radio_regs_2G[3] =
18565  read_radio_reg(pi,
18567  RADIO_2056_TX1);
18568 
18569  pi->calibration_cache.txcal_radio_regs_2G[4] =
18570  read_radio_reg(pi,
18572  RADIO_2056_TX0);
18573  pi->calibration_cache.txcal_radio_regs_2G[5] =
18574  read_radio_reg(pi,
18576  RADIO_2056_TX0);
18577  pi->calibration_cache.txcal_radio_regs_2G[6] =
18578  read_radio_reg(pi,
18580  RADIO_2056_TX1);
18581  pi->calibration_cache.txcal_radio_regs_2G[7] =
18582  read_radio_reg(pi,
18584  RADIO_2056_TX1);
18585  } else {
18586  pi->calibration_cache.txcal_radio_regs_2G[0] =
18588  pi->calibration_cache.txcal_radio_regs_2G[1] =
18590  pi->calibration_cache.txcal_radio_regs_2G[2] =
18592  pi->calibration_cache.txcal_radio_regs_2G[3] =
18594  }
18595 
18597  tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18598  } else {
18599 
18601  &pi->calibration_cache.
18602  rxcal_coeffs_5G);
18603 
18604  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18605  txcal_radio_regs =
18606  pi->calibration_cache.txcal_radio_regs_5G;
18607  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18608 
18609  pi->calibration_cache.txcal_radio_regs_5G[0] =
18610  read_radio_reg(pi,
18612  RADIO_2056_TX0);
18613  pi->calibration_cache.txcal_radio_regs_5G[1] =
18614  read_radio_reg(pi,
18616  RADIO_2056_TX0);
18617  pi->calibration_cache.txcal_radio_regs_5G[2] =
18618  read_radio_reg(pi,
18620  RADIO_2056_TX1);
18621  pi->calibration_cache.txcal_radio_regs_5G[3] =
18622  read_radio_reg(pi,
18624  RADIO_2056_TX1);
18625 
18626  pi->calibration_cache.txcal_radio_regs_5G[4] =
18627  read_radio_reg(pi,
18629  RADIO_2056_TX0);
18630  pi->calibration_cache.txcal_radio_regs_5G[5] =
18631  read_radio_reg(pi,
18633  RADIO_2056_TX0);
18634  pi->calibration_cache.txcal_radio_regs_5G[6] =
18635  read_radio_reg(pi,
18637  RADIO_2056_TX1);
18638  pi->calibration_cache.txcal_radio_regs_5G[7] =
18639  read_radio_reg(pi,
18641  RADIO_2056_TX1);
18642  } else {
18643  pi->calibration_cache.txcal_radio_regs_5G[0] =
18645  pi->calibration_cache.txcal_radio_regs_5G[1] =
18647  pi->calibration_cache.txcal_radio_regs_5G[2] =
18649  pi->calibration_cache.txcal_radio_regs_5G[3] =
18651  }
18652 
18654  tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18655  }
18656  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18657  for (coreNum = 0; coreNum <= 1; coreNum++) {
18658 
18659  txcal_radio_regs[2 * coreNum] =
18660  READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18661  LOFT_FINE_I);
18662  txcal_radio_regs[2 * coreNum + 1] =
18663  READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18664  LOFT_FINE_Q);
18665 
18666  txcal_radio_regs[2 * coreNum + 4] =
18667  READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18668  LOFT_COARSE_I);
18669  txcal_radio_regs[2 * coreNum + 5] =
18670  READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18671  LOFT_COARSE_Q);
18672  }
18673  }
18674 
18675  wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
18676 
18677  if (pi->phyhang_avoid)
18679 }
18680 
18681 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
18682 {
18683  struct nphy_iq_comp tx_comp;
18684 
18685  wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, &tx_comp);
18686 
18687  wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
18688  wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
18689  wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
18690  wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
18691 }
18692 
18693 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
18694 {
18695  u16 *loft_comp;
18696  u16 txcal_coeffs_bphy[4];
18697  u16 *tbl_ptr;
18698  int coreNum;
18699  u16 *txcal_radio_regs = NULL;
18700 
18701  if (CHSPEC_IS2G(pi->radio_chanspec)) {
18702  if (pi->nphy_iqcal_chanspec_2G == 0)
18703  return;
18704 
18705  tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18706  loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
18707  } else {
18708  if (pi->nphy_iqcal_chanspec_5G == 0)
18709  return;
18710 
18711  tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18712  loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
18713  }
18714 
18715  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16, tbl_ptr);
18716 
18717  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18718  txcal_coeffs_bphy[0] = tbl_ptr[0];
18719  txcal_coeffs_bphy[1] = tbl_ptr[1];
18720  txcal_coeffs_bphy[2] = tbl_ptr[2];
18721  txcal_coeffs_bphy[3] = tbl_ptr[3];
18722  } else {
18723  txcal_coeffs_bphy[0] = 0;
18724  txcal_coeffs_bphy[1] = 0;
18725  txcal_coeffs_bphy[2] = 0;
18726  txcal_coeffs_bphy[3] = 0;
18727  }
18728 
18730  txcal_coeffs_bphy);
18731 
18732  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
18733 
18734  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
18735 
18736  if (NREV_LT(pi->pubpi.phy_rev, 2))
18737  wlc_phy_tx_iq_war_nphy(pi);
18738 
18739  if (CHSPEC_IS2G(pi->radio_chanspec)) {
18740  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18741  txcal_radio_regs =
18742  pi->calibration_cache.txcal_radio_regs_2G;
18743  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18744 
18745  write_radio_reg(pi,
18748  pi->calibration_cache.
18749  txcal_radio_regs_2G[0]);
18750  write_radio_reg(pi,
18753  pi->calibration_cache.
18754  txcal_radio_regs_2G[1]);
18755  write_radio_reg(pi,
18758  pi->calibration_cache.
18759  txcal_radio_regs_2G[2]);
18760  write_radio_reg(pi,
18763  pi->calibration_cache.
18764  txcal_radio_regs_2G[3]);
18765 
18766  write_radio_reg(pi,
18769  pi->calibration_cache.
18770  txcal_radio_regs_2G[4]);
18771  write_radio_reg(pi,
18774  pi->calibration_cache.
18775  txcal_radio_regs_2G[5]);
18776  write_radio_reg(pi,
18779  pi->calibration_cache.
18780  txcal_radio_regs_2G[6]);
18781  write_radio_reg(pi,
18784  pi->calibration_cache.
18785  txcal_radio_regs_2G[7]);
18786  } else {
18788  pi->calibration_cache.
18789  txcal_radio_regs_2G[0]);
18791  pi->calibration_cache.
18792  txcal_radio_regs_2G[1]);
18794  pi->calibration_cache.
18795  txcal_radio_regs_2G[2]);
18797  pi->calibration_cache.
18798  txcal_radio_regs_2G[3]);
18799  }
18800 
18802  &pi->calibration_cache.
18803  rxcal_coeffs_2G);
18804  } else {
18805  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18806  txcal_radio_regs =
18807  pi->calibration_cache.txcal_radio_regs_5G;
18808  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18809 
18810  write_radio_reg(pi,
18813  pi->calibration_cache.
18814  txcal_radio_regs_5G[0]);
18815  write_radio_reg(pi,
18818  pi->calibration_cache.
18819  txcal_radio_regs_5G[1]);
18820  write_radio_reg(pi,
18823  pi->calibration_cache.
18824  txcal_radio_regs_5G[2]);
18825  write_radio_reg(pi,
18828  pi->calibration_cache.
18829  txcal_radio_regs_5G[3]);
18830 
18831  write_radio_reg(pi,
18834  pi->calibration_cache.
18835  txcal_radio_regs_5G[4]);
18836  write_radio_reg(pi,
18839  pi->calibration_cache.
18840  txcal_radio_regs_5G[5]);
18841  write_radio_reg(pi,
18844  pi->calibration_cache.
18845  txcal_radio_regs_5G[6]);
18846  write_radio_reg(pi,
18849  pi->calibration_cache.
18850  txcal_radio_regs_5G[7]);
18851  } else {
18853  pi->calibration_cache.
18854  txcal_radio_regs_5G[0]);
18856  pi->calibration_cache.
18857  txcal_radio_regs_5G[1]);
18859  pi->calibration_cache.
18860  txcal_radio_regs_5G[2]);
18862  pi->calibration_cache.
18863  txcal_radio_regs_5G[3]);
18864  }
18865 
18867  &pi->calibration_cache.
18868  rxcal_coeffs_5G);
18869  }
18870 
18871  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18872  for (coreNum = 0; coreNum <= 1; coreNum++) {
18873 
18874  WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18875  LOFT_FINE_I,
18876  txcal_radio_regs[2 * coreNum]);
18877  WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18878  LOFT_FINE_Q,
18879  txcal_radio_regs[2 * coreNum + 1]);
18880 
18881  WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18882  LOFT_COARSE_I,
18883  txcal_radio_regs[2 * coreNum + 4]);
18884  WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18885  LOFT_COARSE_Q,
18886  txcal_radio_regs[2 * coreNum + 5]);
18887  }
18888  }
18889 }
18890 
18891 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
18892 {
18893  u32 idx;
18894  u16 iqloCalbuf[7];
18895  u32 iqcomp, locomp, curr_locomp;
18896  s8 locomp_i, locomp_q;
18897  s8 curr_locomp_i, curr_locomp_q;
18898  u32 tbl_id, tbl_len, tbl_offset;
18899  u32 regval[128];
18900 
18901  if (pi->phyhang_avoid)
18903 
18904  wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
18905 
18906  tbl_len = 128;
18907  tbl_offset = 320;
18908  for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
18909  tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
18910  iqcomp =
18911  (tbl_id ==
18912  26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
18913  (iqloCalbuf[1] & 0x3ff)
18914  : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
18915  (iqloCalbuf[3] & 0x3ff);
18916 
18917  for (idx = 0; idx < tbl_len; idx++)
18918  regval[idx] = iqcomp;
18919  wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18920  regval);
18921  }
18922 
18923  tbl_offset = 448;
18924  for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
18925  tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
18926 
18927  locomp =
18928  (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
18929  locomp_i = (s8) ((locomp >> 8) & 0xff);
18930  locomp_q = (s8) ((locomp) & 0xff);
18931  for (idx = 0; idx < tbl_len; idx++) {
18932  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18933  curr_locomp_i = locomp_i;
18934  curr_locomp_q = locomp_q;
18935  } else {
18936  curr_locomp_i = (s8) ((locomp_i *
18937  nphy_tpc_loscale[idx] +
18938  128) >> 8);
18939  curr_locomp_q =
18940  (s8) ((locomp_q *
18941  nphy_tpc_loscale[idx] +
18942  128) >> 8);
18943  }
18944  curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
18945  curr_locomp |= (u32) (curr_locomp_q & 0xff);
18946  regval[idx] = curr_locomp;
18947  }
18948  wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18949  regval);
18950  }
18951 
18952  if (NREV_LT(pi->pubpi.phy_rev, 2)) {
18953 
18954  wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
18955  wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
18956  }
18957 
18958  if (pi->phyhang_avoid)
18960 }
18961 
18962 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
18963 {
18964  u8 tx_lpf_bw = 0;
18965 
18966  if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18967  if (CHSPEC_IS40(pi->radio_chanspec))
18968  tx_lpf_bw = 3;
18969  else
18970  tx_lpf_bw = 1;
18971 
18972  if (PHY_IPA(pi)) {
18973  if (CHSPEC_IS40(pi->radio_chanspec))
18974  tx_lpf_bw = 5;
18975  else
18976  tx_lpf_bw = 4;
18977  }
18978 
18979  write_phy_reg(pi, 0xe8,
18980  (tx_lpf_bw << 0) |
18981  (tx_lpf_bw << 3) |
18982  (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18983 
18984  if (PHY_IPA(pi)) {
18985 
18986  if (CHSPEC_IS40(pi->radio_chanspec))
18987  tx_lpf_bw = 4;
18988  else
18989  tx_lpf_bw = 1;
18990 
18991  write_phy_reg(pi, 0xe9,
18992  (tx_lpf_bw << 0) |
18993  (tx_lpf_bw << 3) |
18994  (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18995  }
18996  }
18997 }
18998 
18999 static void
19000 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
19001 {
19002  if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19003  if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19004  CHSPEC_IS40(pi->radio_chanspec)) {
19005  if (!pi->nphy_anarxlpf_adjusted) {
19006  write_radio_reg(pi,
19008  RADIO_2056_RX0),
19009  ((pi->nphy_rccal_value +
19010  reduction_factr) | 0x80));
19011 
19012  pi->nphy_anarxlpf_adjusted = true;
19013  }
19014  } else {
19015  if (pi->nphy_anarxlpf_adjusted) {
19016  write_radio_reg(pi,
19018  RADIO_2056_RX0),
19019  (pi->nphy_rccal_value | 0x80));
19020 
19021  pi->nphy_anarxlpf_adjusted = false;
19022  }
19023  }
19024  }
19025 }
19026 
19027 static void
19028 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
19029  int *tone_id_buf, u32 *noise_var_buf)
19030 {
19031  int i;
19032  u32 offset;
19033  int tone_id;
19034  int tbllen =
19037 
19038  if (pi->nphy_noisevars_adjusted) {
19039  for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
19040  tone_id = pi->nphy_saved_noisevars.tone_id[i];
19041  offset = (tone_id >= 0) ?
19042  ((tone_id *
19043  2) + 1) : (tbllen + (tone_id * 2) + 1);
19045  pi, NPHY_TBL_ID_NOISEVAR, 1,
19046  offset, 32,
19047  &pi->nphy_saved_noisevars.min_noise_vars[i]);
19048  }
19049 
19050  pi->nphy_saved_noisevars.bufcount = 0;
19051  pi->nphy_noisevars_adjusted = false;
19052  }
19053 
19054  if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
19055  pi->nphy_saved_noisevars.bufcount = 0;
19056 
19057  for (i = 0; i < ntones; i++) {
19058  tone_id = tone_id_buf[i];
19059  offset = (tone_id >= 0) ?
19060  ((tone_id * 2) + 1) :
19061  (tbllen + (tone_id * 2) + 1);
19062  pi->nphy_saved_noisevars.tone_id[i] = tone_id;
19064  offset, 32,
19065  &pi->nphy_saved_noisevars.
19066  min_noise_vars[i]);
19068  offset, 32, &noise_var_buf[i]);
19069  pi->nphy_saved_noisevars.bufcount++;
19070  }
19071 
19072  pi->nphy_noisevars_adjusted = true;
19073  }
19074 }
19075 
19076 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
19077 {
19078  u16 regval;
19079 
19080  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19081  if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19082  CHSPEC_IS40(pi->radio_chanspec)) {
19083  if (!pi->nphy_crsminpwr_adjusted) {
19084  regval = read_phy_reg(pi, 0x27d);
19085  pi->nphy_crsminpwr[0] = regval & 0xff;
19086  regval &= 0xff00;
19087  regval |= (u16) minpwr;
19088  write_phy_reg(pi, 0x27d, regval);
19089 
19090  regval = read_phy_reg(pi, 0x280);
19091  pi->nphy_crsminpwr[1] = regval & 0xff;
19092  regval &= 0xff00;
19093  regval |= (u16) minpwr;
19094  write_phy_reg(pi, 0x280, regval);
19095 
19096  regval = read_phy_reg(pi, 0x283);
19097  pi->nphy_crsminpwr[2] = regval & 0xff;
19098  regval &= 0xff00;
19099  regval |= (u16) minpwr;
19100  write_phy_reg(pi, 0x283, regval);
19101 
19102  pi->nphy_crsminpwr_adjusted = true;
19103  }
19104  } else {
19105  if (pi->nphy_crsminpwr_adjusted) {
19106  regval = read_phy_reg(pi, 0x27d);
19107  regval &= 0xff00;
19108  regval |= pi->nphy_crsminpwr[0];
19109  write_phy_reg(pi, 0x27d, regval);
19110 
19111  regval = read_phy_reg(pi, 0x280);
19112  regval &= 0xff00;
19113  regval |= pi->nphy_crsminpwr[1];
19114  write_phy_reg(pi, 0x280, regval);
19115 
19116  regval = read_phy_reg(pi, 0x283);
19117  regval &= 0xff00;
19118  regval |= pi->nphy_crsminpwr[2];
19119  write_phy_reg(pi, 0x283, regval);
19120 
19121  pi->nphy_crsminpwr_adjusted = false;
19122  }
19123  }
19124  }
19125 }
19126 
19127 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
19128 {
19129  u16 cur_channel = 0;
19130  int nphy_adj_tone_id_buf[] = { 57, 58 };
19131  u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
19132  bool isAdjustNoiseVar = false;
19133  uint numTonesAdjust = 0;
19134  u32 tempval = 0;
19135 
19136  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19137  if (pi->phyhang_avoid)
19139 
19140  cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
19141 
19142  if (pi->nphy_gband_spurwar_en) {
19143 
19144  wlc_phy_adjust_rx_analpfbw_nphy(
19145  pi,
19147 
19148  if (CHSPEC_IS2G(pi->radio_chanspec)) {
19149  if ((cur_channel == 11)
19150  && CHSPEC_IS40(pi->radio_chanspec))
19151  wlc_phy_adjust_min_noisevar_nphy(
19152  pi, 2,
19153  nphy_adj_tone_id_buf,
19154  nphy_adj_noise_var_buf);
19155  else
19156  wlc_phy_adjust_min_noisevar_nphy(pi, 0,
19157  NULL,
19158  NULL);
19159  }
19160 
19161  wlc_phy_adjust_crsminpwr_nphy(pi,
19163  }
19164 
19165  if ((pi->nphy_gband_spurwar2_en)
19166  && CHSPEC_IS2G(pi->radio_chanspec)) {
19167 
19168  if (CHSPEC_IS40(pi->radio_chanspec)) {
19169  switch (cur_channel) {
19170  case 3:
19171  nphy_adj_tone_id_buf[0] = 57;
19172  nphy_adj_tone_id_buf[1] = 58;
19173  nphy_adj_noise_var_buf[0] = 0x22f;
19174  nphy_adj_noise_var_buf[1] = 0x25f;
19175  isAdjustNoiseVar = true;
19176  break;
19177  case 4:
19178  nphy_adj_tone_id_buf[0] = 41;
19179  nphy_adj_tone_id_buf[1] = 42;
19180  nphy_adj_noise_var_buf[0] = 0x22f;
19181  nphy_adj_noise_var_buf[1] = 0x25f;
19182  isAdjustNoiseVar = true;
19183  break;
19184  case 5:
19185  nphy_adj_tone_id_buf[0] = 25;
19186  nphy_adj_tone_id_buf[1] = 26;
19187  nphy_adj_noise_var_buf[0] = 0x24f;
19188  nphy_adj_noise_var_buf[1] = 0x25f;
19189  isAdjustNoiseVar = true;
19190  break;
19191  case 6:
19192  nphy_adj_tone_id_buf[0] = 9;
19193  nphy_adj_tone_id_buf[1] = 10;
19194  nphy_adj_noise_var_buf[0] = 0x22f;
19195  nphy_adj_noise_var_buf[1] = 0x24f;
19196  isAdjustNoiseVar = true;
19197  break;
19198  case 7:
19199  nphy_adj_tone_id_buf[0] = 121;
19200  nphy_adj_tone_id_buf[1] = 122;
19201  nphy_adj_noise_var_buf[0] = 0x18f;
19202  nphy_adj_noise_var_buf[1] = 0x24f;
19203  isAdjustNoiseVar = true;
19204  break;
19205  case 8:
19206  nphy_adj_tone_id_buf[0] = 105;
19207  nphy_adj_tone_id_buf[1] = 106;
19208  nphy_adj_noise_var_buf[0] = 0x22f;
19209  nphy_adj_noise_var_buf[1] = 0x25f;
19210  isAdjustNoiseVar = true;
19211  break;
19212  case 9:
19213  nphy_adj_tone_id_buf[0] = 89;
19214  nphy_adj_tone_id_buf[1] = 90;
19215  nphy_adj_noise_var_buf[0] = 0x22f;
19216  nphy_adj_noise_var_buf[1] = 0x24f;
19217  isAdjustNoiseVar = true;
19218  break;
19219  case 10:
19220  nphy_adj_tone_id_buf[0] = 73;
19221  nphy_adj_tone_id_buf[1] = 74;
19222  nphy_adj_noise_var_buf[0] = 0x22f;
19223  nphy_adj_noise_var_buf[1] = 0x24f;
19224  isAdjustNoiseVar = true;
19225  break;
19226  default:
19227  isAdjustNoiseVar = false;
19228  break;
19229  }
19230  }
19231 
19232  if (isAdjustNoiseVar) {
19233  numTonesAdjust = ARRAY_SIZE(nphy_adj_tone_id_buf);
19234 
19235  wlc_phy_adjust_min_noisevar_nphy(
19236  pi,
19237  numTonesAdjust,
19238  nphy_adj_tone_id_buf,
19239  nphy_adj_noise_var_buf);
19240 
19241  tempval = 0;
19242 
19243  } else {
19244  wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19245  NULL);
19246  }
19247  }
19248 
19249  if ((pi->nphy_aband_spurwar_en) &&
19250  (CHSPEC_IS5G(pi->radio_chanspec))) {
19251  switch (cur_channel) {
19252  case 54:
19253  nphy_adj_tone_id_buf[0] = 32;
19254  nphy_adj_noise_var_buf[0] = 0x25f;
19255  break;
19256  case 38:
19257  case 102:
19258  case 118:
19259  if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) &&
19260  (pi->sh->chippkg == BCMA_PKG_ID_BCM4717)) {
19261  nphy_adj_tone_id_buf[0] = 32;
19262  nphy_adj_noise_var_buf[0] = 0x21f;
19263  } else {
19264  nphy_adj_tone_id_buf[0] = 0;
19265  nphy_adj_noise_var_buf[0] = 0x0;
19266  }
19267  break;
19268  case 134:
19269  nphy_adj_tone_id_buf[0] = 32;
19270  nphy_adj_noise_var_buf[0] = 0x21f;
19271  break;
19272  case 151:
19273  nphy_adj_tone_id_buf[0] = 16;
19274  nphy_adj_noise_var_buf[0] = 0x23f;
19275  break;
19276  case 153:
19277  case 161:
19278  nphy_adj_tone_id_buf[0] = 48;
19279  nphy_adj_noise_var_buf[0] = 0x23f;
19280  break;
19281  default:
19282  nphy_adj_tone_id_buf[0] = 0;
19283  nphy_adj_noise_var_buf[0] = 0x0;
19284  break;
19285  }
19286 
19287  if (nphy_adj_tone_id_buf[0]
19288  && nphy_adj_noise_var_buf[0])
19289  wlc_phy_adjust_min_noisevar_nphy(
19290  pi, 1,
19291  nphy_adj_tone_id_buf,
19292  nphy_adj_noise_var_buf);
19293  else
19294  wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19295  NULL);
19296  }
19297 
19298  if (pi->phyhang_avoid)
19300  }
19301 }
19302 
19304 {
19305  u16 val;
19306  u16 clip1_ths[2];
19307  struct nphy_txgains target_gain;
19308  u8 tx_pwr_ctrl_state;
19309  bool do_nphy_cal = false;
19310  uint core;
19311  u32 d11_clk_ctl_st;
19312  bool do_rssi_cal = false;
19313 
19314  core = 0;
19315 
19316  if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN))
19318 
19319  if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
19320  ((pi->sh->chippkg == BCMA_PKG_ID_BCM4717) ||
19321  (pi->sh->chippkg == BCMA_PKG_ID_BCM4718))) {
19322  if ((pi->sh->boardflags & BFL_EXTLNA) &&
19323  (CHSPEC_IS2G(pi->radio_chanspec)))
19324  ai_cc_reg(pi->sh->sih,
19325  offsetof(struct chipcregs, chipcontrol),
19326  0x40, 0x40);
19327  }
19328 
19329  if ((!PHY_IPA(pi)) && (pi->sh->chip == BCMA_CHIP_ID_BCM5357))
19330  si_pmu_chipcontrol(pi->sh->sih, 1, CCTRL5357_EXTPA,
19331  CCTRL5357_EXTPA);
19332 
19334  CHSPEC_IS40(pi->radio_chanspec)) {
19335 
19336  d11_clk_ctl_st = bcma_read32(pi->d11core,
19337  D11REGOFFS(clk_ctl_st));
19338  bcma_mask32(pi->d11core, D11REGOFFS(clk_ctl_st),
19339  ~(CCS_FORCEHT | CCS_HTAREQ));
19340 
19341  bcma_write32(pi->d11core, D11REGOFFS(clk_ctl_st),
19342  d11_clk_ctl_st);
19343  }
19344 
19346  (PHY_IPA(pi) ||
19347  (NREV_GE(pi->pubpi.phy_rev, 7) ||
19348  (NREV_GE(pi->pubpi.phy_rev, 5)
19349  && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
19350 
19352 
19353  pi->nphy_deaf_count = 0;
19354 
19355  wlc_phy_tbl_init_nphy(pi);
19356 
19357  pi->nphy_crsminpwr_adjusted = false;
19358  pi->nphy_noisevars_adjusted = false;
19359 
19360  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19361  write_phy_reg(pi, 0xe7, 0);
19362  write_phy_reg(pi, 0xec, 0);
19363  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19364  write_phy_reg(pi, 0x342, 0);
19365  write_phy_reg(pi, 0x343, 0);
19366  write_phy_reg(pi, 0x346, 0);
19367  write_phy_reg(pi, 0x347, 0);
19368  }
19369  write_phy_reg(pi, 0xe5, 0);
19370  write_phy_reg(pi, 0xe6, 0);
19371  } else {
19372  write_phy_reg(pi, 0xec, 0);
19373  }
19374 
19375  write_phy_reg(pi, 0x91, 0);
19376  write_phy_reg(pi, 0x92, 0);
19377  if (NREV_LT(pi->pubpi.phy_rev, 6)) {
19378  write_phy_reg(pi, 0x93, 0);
19379  write_phy_reg(pi, 0x94, 0);
19380  }
19381 
19382  and_phy_reg(pi, 0xa1, ~3);
19383 
19384  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19385  write_phy_reg(pi, 0x8f, 0);
19386  write_phy_reg(pi, 0xa5, 0);
19387  } else {
19388  write_phy_reg(pi, 0xa5, 0);
19389  }
19390 
19391  if (NREV_IS(pi->pubpi.phy_rev, 2))
19392  mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
19393  else if (NREV_LT(pi->pubpi.phy_rev, 2))
19394  mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
19395 
19396  write_phy_reg(pi, 0x203, 32);
19397  write_phy_reg(pi, 0x201, 32);
19398 
19399  if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
19400  write_phy_reg(pi, 0x20d, 160);
19401  else
19402  write_phy_reg(pi, 0x20d, 184);
19403 
19404  write_phy_reg(pi, 0x13a, 200);
19405 
19406  write_phy_reg(pi, 0x70, 80);
19407 
19408  write_phy_reg(pi, 0x1ff, 48);
19409 
19410  if (NREV_LT(pi->pubpi.phy_rev, 8))
19411  wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
19412 
19414 
19415  if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19416  write_phy_reg(pi, 0x180, 0xaa8);
19417  write_phy_reg(pi, 0x181, 0x9a4);
19418  }
19419 
19420  if (PHY_IPA(pi)) {
19421  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
19422 
19423  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
19424  0x29b, (0x1 << 0), (1) << 0);
19425 
19426  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
19427  0x29c, (0x1ff << 7),
19428  (pi->nphy_papd_epsilon_offset[core]) << 7);
19429 
19430  }
19431 
19432  wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
19433  } else if (NREV_GE(pi->pubpi.phy_rev, 5)) {
19434  wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
19435  }
19436 
19437  wlc_phy_workarounds_nphy(pi);
19438 
19439  wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19440 
19441  val = read_phy_reg(pi, 0x01);
19442  write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19443  write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19444  wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19445 
19446  wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
19447 
19452 
19453  wlc_phy_classifier_nphy(pi, 0, 0);
19454  wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
19455 
19456  if (CHSPEC_IS2G(pi->radio_chanspec))
19457  wlc_phy_bphy_init_nphy(pi);
19458 
19459  tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
19461 
19463 
19464  wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
19465 
19466  wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
19467 
19468  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19469  u32 *tx_pwrctrl_tbl = NULL;
19470  u16 idx;
19471  s16 pga_gn = 0;
19472  s16 pad_gn = 0;
19473  s32 rfpwr_offset;
19474 
19475  if (PHY_IPA(pi)) {
19476  tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
19477  } else {
19478  if (CHSPEC_IS5G(pi->radio_chanspec)) {
19479  if (NREV_IS(pi->pubpi.phy_rev, 3))
19480  tx_pwrctrl_tbl =
19481  nphy_tpc_5GHz_txgain_rev3;
19482  else if (NREV_IS(pi->pubpi.phy_rev, 4))
19483  tx_pwrctrl_tbl =
19484  (pi->srom_fem5g.extpagain ==
19485  3) ?
19486  nphy_tpc_5GHz_txgain_HiPwrEPA :
19487  nphy_tpc_5GHz_txgain_rev4;
19488  else
19489  tx_pwrctrl_tbl =
19490  nphy_tpc_5GHz_txgain_rev5;
19491  } else {
19492  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19493  if (pi->pubpi.radiorev == 5)
19494  tx_pwrctrl_tbl =
19495  nphy_tpc_txgain_epa_2057rev5;
19496  else if (pi->pubpi.radiorev == 3)
19497  tx_pwrctrl_tbl =
19498  nphy_tpc_txgain_epa_2057rev3;
19499  } else {
19500  if (NREV_GE(pi->pubpi.phy_rev, 5) &&
19501  (pi->srom_fem2g.extpagain == 3))
19502  tx_pwrctrl_tbl =
19503  nphy_tpc_txgain_HiPwrEPA;
19504  else
19505  tx_pwrctrl_tbl =
19506  nphy_tpc_txgain_rev3;
19507  }
19508  }
19509  }
19510 
19512  192, 32, tx_pwrctrl_tbl);
19514  192, 32, tx_pwrctrl_tbl);
19515 
19516  pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
19517 
19518  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19519 
19520  for (idx = 0; idx < 128; idx++) {
19521  pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19522  pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
19523  rfpwr_offset = get_rf_pwr_offset(pi, pga_gn,
19524  pad_gn);
19526  pi,
19528  1, 576 + idx, 32,
19529  &rfpwr_offset);
19531  pi,
19533  1, 576 + idx, 32,
19534  &rfpwr_offset);
19535  }
19536  } else {
19537 
19538  for (idx = 0; idx < 128; idx++) {
19539  pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19540  if (CHSPEC_IS2G(pi->radio_chanspec))
19541  rfpwr_offset = (s16)
19542  nphy_papd_pga_gain_delta_ipa_2g
19543  [pga_gn];
19544  else
19545  rfpwr_offset = (s16)
19546  nphy_papd_pga_gain_delta_ipa_5g
19547  [pga_gn];
19548 
19550  pi,
19552  1, 576 + idx, 32,
19553  &rfpwr_offset);
19555  pi,
19557  1, 576 + idx, 32,
19558  &rfpwr_offset);
19559  }
19560 
19561  }
19562  } else {
19563 
19565  192, 32, nphy_tpc_txgain);
19567  192, 32, nphy_tpc_txgain);
19568  }
19569 
19570  if (pi->sh->phyrxchain != 0x3)
19572  pi->sh->phyrxchain);
19573 
19576 
19577  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19578  do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19579  (pi->nphy_rssical_chanspec_2G == 0) :
19580  (pi->nphy_rssical_chanspec_5G == 0);
19581 
19582  if (do_rssi_cal)
19584  else
19585  wlc_phy_restore_rssical_nphy(pi);
19586  } else {
19588  }
19589 
19590  if (!SCAN_RM_IN_PROGRESS(pi))
19591  do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19592  (pi->nphy_iqcal_chanspec_2G == 0) :
19593  (pi->nphy_iqcal_chanspec_5G == 0);
19594 
19595  if (!pi->do_initcal)
19596  do_nphy_cal = false;
19597 
19598  if (do_nphy_cal) {
19599 
19600  target_gain = wlc_phy_get_tx_gain_nphy(pi);
19601 
19602  if (pi->antsel_type == ANTSEL_2x3)
19603  wlc_phy_antsel_init((struct brcms_phy_pub *) pi,
19604  true);
19605 
19606  if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
19608 
19609  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19610  pi->nphy_cal_orig_pwr_idx[0] =
19612  .
19613  index_internal;
19614  pi->nphy_cal_orig_pwr_idx[1] =
19616  .
19617  index_internal;
19618 
19619  wlc_phy_precal_txgain_nphy(pi);
19620  target_gain =
19622  }
19623 
19625  (pi, target_gain, true,
19626  false) == 0) {
19628  (pi, target_gain, 2,
19629  false) == 0)
19630  wlc_phy_savecal_nphy(pi);
19631 
19632  }
19633  } else if (pi->mphase_cal_phase_id ==
19635  wlc_phy_cal_perical((struct brcms_phy_pub *) pi,
19637  }
19638  } else {
19639  wlc_phy_restorecal_nphy(pi);
19640  }
19641 
19642  wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
19643 
19644  wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
19645 
19646  wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
19647 
19648  if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
19649 
19650  write_phy_reg(pi, 0x70, 50);
19651 
19652  wlc_phy_txlpfbw_nphy(pi);
19653 
19654  wlc_phy_spurwar_nphy(pi);
19655 
19656 }
19657 
19658 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
19659 {
19660  u16 val;
19661 
19662  wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19663 
19664  val = read_phy_reg(pi, 0x01);
19665  write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19666  udelay(1);
19667  write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19668 
19669  wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19670 
19672 }
19673 
19674 void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
19675 {
19676  u16 rfctrlintc_override_val;
19677 
19678  if (!en) {
19679 
19680  pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
19681  pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
19682 
19683  if (NREV_GE(pi->pubpi.phy_rev, 7))
19684  rfctrlintc_override_val = 0x1480;
19685  else if (NREV_GE(pi->pubpi.phy_rev, 3))
19686  rfctrlintc_override_val =
19687  CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
19688  else
19689  rfctrlintc_override_val =
19690  CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
19691 
19692  write_phy_reg(pi, 0x91, rfctrlintc_override_val);
19693  write_phy_reg(pi, 0x92, rfctrlintc_override_val);
19694  } else {
19695  write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
19696  write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
19697  }
19698 
19699 }
19700 
19702 {
19703 
19704  u16 txrx_chain =
19706  bool CoreActv_override = false;
19707 
19708  if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN0) {
19709  txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
19710  CoreActv_override = true;
19711 
19712  if (NREV_LE(pi->pubpi.phy_rev, 2))
19713  and_phy_reg(pi, 0xa0, ~0x20);
19714  } else if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN1) {
19715  txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
19716  CoreActv_override = true;
19717 
19718  if (NREV_LE(pi->pubpi.phy_rev, 2))
19719  or_phy_reg(pi, 0xa0, 0x20);
19720  }
19721 
19722  mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
19723 
19724  if (CoreActv_override) {
19727  } else {
19730  }
19731 }
19732 
19733 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
19734 {
19735  u16 regval;
19736  u16 tbl_buf[16];
19737  uint i;
19738  struct brcms_phy *pi = (struct brcms_phy *) pih;
19739  u16 tbl_opcode;
19740  bool suspend;
19741 
19742  pi->sh->phyrxchain = rxcore_bitmask;
19743 
19744  if (!pi->sh->clk)
19745  return;
19746 
19747  suspend = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
19748  MCTL_EN_MAC));
19749  if (!suspend)
19750  wlapi_suspend_mac_and_wait(pi->sh->physhim);
19751 
19752  if (pi->phyhang_avoid)
19754 
19755  regval = read_phy_reg(pi, 0xa2);
19756  regval &= ~(0xf << 4);
19757  regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
19758  write_phy_reg(pi, 0xa2, regval);
19759 
19760  if ((rxcore_bitmask & 0x3) != 0x3) {
19761 
19762  write_phy_reg(pi, 0x20e, 1);
19763 
19764  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19765  if (pi->rx2tx_biasentry == -1) {
19767  ARRAY_SIZE(tbl_buf), 80,
19768  16, tbl_buf);
19769 
19770  for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
19771  if (tbl_buf[i] ==
19773  pi->rx2tx_biasentry = (u8) i;
19774  tbl_opcode =
19777  pi,
19779  1, i,
19780  16,
19781  &tbl_opcode);
19782  break;
19783  } else if (tbl_buf[i] ==
19785  break;
19786  }
19787  }
19788  }
19789  } else {
19790 
19791  write_phy_reg(pi, 0x20e, 30);
19792 
19793  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19794  if (pi->rx2tx_biasentry != -1) {
19795  tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
19797  1, pi->rx2tx_biasentry,
19798  16, &tbl_opcode);
19799  pi->rx2tx_biasentry = -1;
19800  }
19801  }
19802  }
19803 
19805 
19806  if (pi->phyhang_avoid)
19808 
19809  if (!suspend)
19810  wlapi_enable_mac(pi->sh->physhim);
19811 }
19812 
19814 {
19815  u16 regval, rxen_bits;
19816  struct brcms_phy *pi = (struct brcms_phy *) pih;
19817 
19818  regval = read_phy_reg(pi, 0xa2);
19819  rxen_bits = (regval >> 4) & 0xf;
19820 
19821  return (u8) rxen_bits;
19822 }
19823 
19825 {
19826  return PHY_IPA(pi);
19827 }
19828 
19830 {
19831 }
19832 
19833 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
19834 {
19835 
19836  and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
19837  and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
19838 
19839  or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
19840  or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
19841 
19842 }
19843 
19844 static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
19845 {
19846  struct radio_20xx_regs *regs_2057_ptr = NULL;
19847 
19848  if (NREV_IS(pi->pubpi.phy_rev, 7)) {
19849  regs_2057_ptr = regs_2057_rev4;
19850  } else if (NREV_IS(pi->pubpi.phy_rev, 8)
19851  || NREV_IS(pi->pubpi.phy_rev, 9)) {
19852  switch (pi->pubpi.radiorev) {
19853  case 5:
19854 
19855  if (NREV_IS(pi->pubpi.phy_rev, 8))
19856  regs_2057_ptr = regs_2057_rev5;
19857  else if (NREV_IS(pi->pubpi.phy_rev, 9))
19858  regs_2057_ptr = regs_2057_rev5v1;
19859  break;
19860 
19861  case 7:
19862 
19863  regs_2057_ptr = regs_2057_rev7;
19864  break;
19865 
19866  case 8:
19867 
19868  regs_2057_ptr = regs_2057_rev8;
19869  break;
19870 
19871  default:
19872  break;
19873  }
19874  }
19875 
19876  wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
19877 }
19878 
19879 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
19880 {
19881  u16 rcal_reg = 0;
19882  int i;
19883 
19884  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19885 
19886  if (pi->pubpi.radiorev == 5) {
19887 
19888  and_phy_reg(pi, 0x342, ~(0x1 << 1));
19889 
19890  udelay(10);
19891 
19892  mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
19894  0x1);
19895  }
19896  mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
19897 
19898  udelay(10);
19899 
19900  mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
19901 
19902  for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
19903  rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
19904  if (rcal_reg & 0x1)
19905  break;
19906 
19907  udelay(100);
19908  }
19909 
19910  if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
19911  "HW error: radio calib2"))
19912  return 0;
19913 
19914  mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
19915 
19916  rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
19917 
19918  mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
19919  if (pi->pubpi.radiorev == 5) {
19920 
19921  mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
19923  0x0);
19924  }
19925 
19926  if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
19927 
19929  rcal_reg);
19931  rcal_reg << 2);
19932  }
19933 
19934  } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
19935  u16 savereg;
19936 
19937  savereg =
19939  pi,
19941  RADIO_2056_SYN);
19943  savereg | 0x7);
19944  udelay(10);
19945 
19947  0x1);
19948  udelay(10);
19949 
19951  0x9);
19952 
19953  for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
19954  rcal_reg = read_radio_reg(
19955  pi,
19957  RADIO_2056_SYN);
19958  if (rcal_reg & 0x80)
19959  break;
19960 
19961  udelay(100);
19962  }
19963 
19964  if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
19965  "HW error: radio calib3"))
19966  return 0;
19967 
19969  0x1);
19970 
19971  rcal_reg =
19972  read_radio_reg(pi,
19974  RADIO_2056_SYN);
19975 
19977  0x0);
19978 
19980  savereg);
19981 
19982  return rcal_reg & 0x1f;
19983  }
19984  return rcal_reg & 0x3e;
19985 }
19986 
19987 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
19988 {
19989  u16 rccal_valid;
19990  int i;
19991  bool chip43226_6362A0;
19992 
19993  chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
19994  || (pi->pubpi.radiorev == 4)
19995  || (pi->pubpi.radiorev == 6));
19996 
19997  rccal_valid = 0;
19998  if (chip43226_6362A0) {
20001  } else {
20003 
20005  }
20008 
20009  for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20010  rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20011  if (rccal_valid & 0x2)
20012  break;
20013 
20014  udelay(500);
20015  }
20016 
20018 
20019  rccal_valid = 0;
20020  if (chip43226_6362A0) {
20023  } else {
20025 
20027  }
20030 
20031  for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20032  rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20033  if (rccal_valid & 0x2)
20034  break;
20035 
20036  udelay(500);
20037  }
20038 
20040 
20041  rccal_valid = 0;
20042  if (chip43226_6362A0) {
20044 
20047  } else {
20051  }
20053 
20054  for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20055  rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20056  if (rccal_valid & 0x2)
20057  break;
20058 
20059  udelay(500);
20060  }
20061 
20062  if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
20063  return 0;
20064 
20066 
20067  return rccal_valid;
20068 }
20069 
20070 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
20071 {
20072 
20074 
20076  mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
20077  mdelay(2);
20079  mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
20080 
20081  if (pi->phy_init_por) {
20082  wlc_phy_radio205x_rcal(pi);
20083  wlc_phy_radio2057_rccal(pi);
20084  }
20085 
20086  mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
20087 }
20088 
20089 static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
20090 {
20091  const struct radio_regs *regs_SYN_2056_ptr = NULL;
20092  const struct radio_regs *regs_TX_2056_ptr = NULL;
20093  const struct radio_regs *regs_RX_2056_ptr = NULL;
20094 
20095  if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20096  regs_SYN_2056_ptr = regs_SYN_2056;
20097  regs_TX_2056_ptr = regs_TX_2056;
20098  regs_RX_2056_ptr = regs_RX_2056;
20099  } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20100  regs_SYN_2056_ptr = regs_SYN_2056_A1;
20101  regs_TX_2056_ptr = regs_TX_2056_A1;
20102  regs_RX_2056_ptr = regs_RX_2056_A1;
20103  } else {
20104  switch (pi->pubpi.radiorev) {
20105  case 5:
20106  regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20107  regs_TX_2056_ptr = regs_TX_2056_rev5;
20108  regs_RX_2056_ptr = regs_RX_2056_rev5;
20109  break;
20110 
20111  case 6:
20112  regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20113  regs_TX_2056_ptr = regs_TX_2056_rev6;
20114  regs_RX_2056_ptr = regs_RX_2056_rev6;
20115  break;
20116 
20117  case 7:
20118  case 9:
20119  regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20120  regs_TX_2056_ptr = regs_TX_2056_rev7;
20121  regs_RX_2056_ptr = regs_RX_2056_rev7;
20122  break;
20123 
20124  case 8:
20125  regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20126  regs_TX_2056_ptr = regs_TX_2056_rev8;
20127  regs_RX_2056_ptr = regs_RX_2056_rev8;
20128  break;
20129 
20130  case 11:
20131  regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20132  regs_TX_2056_ptr = regs_TX_2056_rev11;
20133  regs_RX_2056_ptr = regs_RX_2056_rev11;
20134  break;
20135 
20136  default:
20137  break;
20138  }
20139  }
20140 
20141  wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
20142 
20143  wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
20144 
20145  wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
20146 
20147  wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
20148 
20149  wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
20150 }
20151 
20152 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
20153 {
20155 
20156  mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
20157  mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
20158  udelay(1000);
20159  mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
20160 
20161  if ((pi->sh->boardflags2 & BFL2_LEGACY)
20162  || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN))
20163  mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
20164  else
20165  mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
20166 
20168 
20169  if (pi->phy_init_por)
20170  wlc_phy_radio205x_rcal(pi);
20171 }
20172 
20173 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
20174 {
20175 
20176  and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
20178 
20179  or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
20180 }
20181 
20182 static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
20183 {
20185 }
20186 
20187 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
20188 {
20189 
20192 
20193  if (((pi->sh->sromrev >= 4)
20194  && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
20195  || ((pi->sh->sromrev < 4))) {
20198  }
20199 
20200  mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
20202 
20205 
20207 
20209 
20210  udelay(1000);
20211 
20213 
20215  RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
20216 
20218  RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
20219  "HW error: radio calibration1\n"))
20220  return;
20221 
20224 
20226 
20229 
20232 
20237  if (pi->nphy_gain_boost) {
20242  } else {
20247  }
20248 
20249  udelay(2);
20250 }
20251 
20252 void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
20253 {
20254  if (on) {
20255  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20256  if (!pi->radio_is_on) {
20257  wlc_phy_radio_preinit_205x(pi);
20258  wlc_phy_radio_init_2057(pi);
20259  wlc_phy_radio_postinit_2057(pi);
20260  }
20261 
20262  wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20263  pi->radio_chanspec);
20264  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20265  wlc_phy_radio_preinit_205x(pi);
20266  wlc_phy_radio_init_2056(pi);
20267  wlc_phy_radio_postinit_2056(pi);
20268 
20269  wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20270  pi->radio_chanspec);
20271  } else {
20272  wlc_phy_radio_preinit_2055(pi);
20273  wlc_phy_radio_init_2055(pi);
20274  wlc_phy_radio_postinit_2055(pi);
20275  }
20276 
20277  pi->radio_is_on = true;
20278 
20279  } else {
20280 
20281  if (NREV_GE(pi->pubpi.phy_rev, 3)
20282  && NREV_LT(pi->pubpi.phy_rev, 7)) {
20283  and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20284  mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
20285 
20286  write_radio_reg(pi,
20288  RADIO_2056_TX0, 0);
20289  write_radio_reg(pi,
20291  RADIO_2056_TX0, 0);
20292  write_radio_reg(pi,
20294  RADIO_2056_TX0, 0);
20295  write_radio_reg(pi,
20297  RADIO_2056_TX0, 0);
20298  mod_radio_reg(pi,
20300  RADIO_2056_TX0, 0xf0, 0);
20301  write_radio_reg(pi,
20303  RADIO_2056_TX0, 0);
20304 
20305  write_radio_reg(pi,
20307  RADIO_2056_TX1, 0);
20308  write_radio_reg(pi,
20310  RADIO_2056_TX1, 0);
20311  write_radio_reg(pi,
20313  RADIO_2056_TX1, 0);
20314  write_radio_reg(pi,
20316  RADIO_2056_TX1, 0);
20317  mod_radio_reg(pi,
20319  RADIO_2056_TX1, 0xf0, 0);
20320  write_radio_reg(pi,
20322  RADIO_2056_TX1, 0);
20323 
20324  pi->radio_is_on = false;
20325  }
20326 
20327  if (NREV_GE(pi->pubpi.phy_rev, 8)) {
20328  and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20329  pi->radio_is_on = false;
20330  }
20331 
20332  }
20333 }
20334 
20335 static bool
20336 wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
20337  const struct chan_info_nphy_radio2057 **t0,
20338  const struct chan_info_nphy_radio205x **t1,
20339  const struct chan_info_nphy_radio2057_rev5 **t2,
20340  const struct chan_info_nphy_2055 **t3)
20341 {
20342  uint i;
20343  const struct chan_info_nphy_radio2057 *chan_info_tbl_p_0 = NULL;
20344  const struct chan_info_nphy_radio205x *chan_info_tbl_p_1 = NULL;
20345  const struct chan_info_nphy_radio2057_rev5 *chan_info_tbl_p_2 = NULL;
20346  u32 tbl_len = 0;
20347 
20348  int freq = 0;
20349 
20350  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20351 
20352  if (NREV_IS(pi->pubpi.phy_rev, 7)) {
20353 
20354  chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
20355  tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
20356 
20357  } else if (NREV_IS(pi->pubpi.phy_rev, 8)
20358  || NREV_IS(pi->pubpi.phy_rev, 9)) {
20359  switch (pi->pubpi.radiorev) {
20360 
20361  case 5:
20362 
20363  if (pi->pubpi.radiover == 0x0) {
20364 
20365  chan_info_tbl_p_2 =
20366  chan_info_nphyrev8_2057_rev5;
20367  tbl_len = ARRAY_SIZE(
20368  chan_info_nphyrev8_2057_rev5);
20369 
20370  } else if (pi->pubpi.radiover == 0x1) {
20371 
20372  chan_info_tbl_p_2 =
20373  chan_info_nphyrev9_2057_rev5v1;
20374  tbl_len = ARRAY_SIZE(
20375  chan_info_nphyrev9_2057_rev5v1);
20376 
20377  }
20378  break;
20379 
20380  case 7:
20381  chan_info_tbl_p_0 =
20382  chan_info_nphyrev8_2057_rev7;
20383  tbl_len = ARRAY_SIZE(
20384  chan_info_nphyrev8_2057_rev7);
20385  break;
20386 
20387  case 8:
20388  chan_info_tbl_p_0 =
20389  chan_info_nphyrev8_2057_rev8;
20390  tbl_len = ARRAY_SIZE(
20391  chan_info_nphyrev8_2057_rev8);
20392  break;
20393 
20394  default:
20395  break;
20396  }
20397  } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
20398 
20399  chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
20400  tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
20401  } else {
20402  goto fail;
20403  }
20404 
20405  for (i = 0; i < tbl_len; i++) {
20406  if (pi->pubpi.radiorev == 5) {
20407 
20408  if (chan_info_tbl_p_2[i].chan == channel)
20409  break;
20410  } else {
20411 
20412  if (chan_info_tbl_p_0[i].chan == channel)
20413  break;
20414  }
20415  }
20416 
20417  if (i >= tbl_len)
20418  goto fail;
20419 
20420  if (pi->pubpi.radiorev == 5) {
20421  *t2 = &chan_info_tbl_p_2[i];
20422  freq = chan_info_tbl_p_2[i].freq;
20423  } else {
20424  *t0 = &chan_info_tbl_p_0[i];
20425  freq = chan_info_tbl_p_0[i].freq;
20426  }
20427 
20428  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20429  if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20430  chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
20431  tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
20432  } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20433  chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
20434  tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
20435  } else if (NREV_IS(pi->pubpi.phy_rev, 5)
20436  || NREV_IS(pi->pubpi.phy_rev, 6)) {
20437  switch (pi->pubpi.radiorev) {
20438  case 5:
20439  chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
20440  tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
20441  break;
20442  case 6:
20443  chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
20444  tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
20445  break;
20446  case 7:
20447  case 9:
20448  chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
20449  tbl_len =
20450  ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
20451  break;
20452  case 8:
20453  chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
20454  tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
20455  break;
20456  case 11:
20457  chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
20458  tbl_len = ARRAY_SIZE(
20459  chan_info_nphyrev6_2056v11);
20460  break;
20461  default:
20462  break;
20463  }
20464  }
20465 
20466  for (i = 0; i < tbl_len; i++) {
20467  if (chan_info_tbl_p_1[i].chan == channel)
20468  break;
20469  }
20470 
20471  if (i >= tbl_len)
20472  goto fail;
20473 
20474  *t1 = &chan_info_tbl_p_1[i];
20475  freq = chan_info_tbl_p_1[i].freq;
20476 
20477  } else {
20478  for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
20479  if (chan_info_nphy_2055[i].chan == channel)
20480  break;
20481 
20482  if (i >= ARRAY_SIZE(chan_info_nphy_2055))
20483  goto fail;
20484 
20485  *t3 = &chan_info_nphy_2055[i];
20486  freq = chan_info_nphy_2055[i].freq;
20487  }
20488 
20489  *f = freq;
20490  return true;
20491 
20492 fail:
20493  *f = WL_CHAN_FREQ_RANGE_2G;
20494  return false;
20495 }
20496 
20498 {
20499  int freq;
20500  const struct chan_info_nphy_radio2057 *t0 = NULL;
20501  const struct chan_info_nphy_radio205x *t1 = NULL;
20502  const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
20503  const struct chan_info_nphy_2055 *t3 = NULL;
20504 
20505  if (channel == 0)
20506  channel = CHSPEC_CHANNEL(pi->radio_chanspec);
20507 
20508  wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
20509 
20510  if (CHSPEC_IS2G(pi->radio_chanspec))
20511  return WL_CHAN_FREQ_RANGE_2G;
20512 
20513  if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN))
20514  return WL_CHAN_FREQ_RANGE_5GL;
20515  else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN))
20516  return WL_CHAN_FREQ_RANGE_5GM;
20517  else
20518  return WL_CHAN_FREQ_RANGE_5GH;
20519 }
20520 
20521 static void
20522 wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
20523  const struct chan_info_nphy_2055 *ci)
20524 {
20525 
20530 
20532 
20537 
20539 
20544 
20546 
20548  ci->RF_core1_lgbuf_a_tune);
20550  ci->RF_core1_lgbuf_g_tune);
20554 
20556 
20558  ci->RF_core1_tx_mx_bgtrim);
20560  ci->RF_core2_lgbuf_a_tune);
20562  ci->RF_core2_lgbuf_g_tune);
20564 
20566 
20570  ci->RF_core2_tx_mx_bgtrim);
20571 
20572  udelay(50);
20573 
20576 
20578 
20580 
20581  udelay(300);
20582 }
20583 
20584 static void
20585 wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
20586  const struct chan_info_nphy_radio205x *ci)
20587 {
20588  const struct radio_regs *regs_SYN_2056_ptr = NULL;
20589 
20590  write_radio_reg(pi,
20592  ci->RF_SYN_pll_vcocal1);
20594  ci->RF_SYN_pll_vcocal2);
20596  ci->RF_SYN_pll_refdiv);
20598  ci->RF_SYN_pll_mmd2);
20600  ci->RF_SYN_pll_mmd1);
20618  ci->RF_SYN_logen_VCOBUF1);
20620  ci->RF_SYN_logen_MIXER2);
20622  ci->RF_SYN_logen_BUF3);
20624  ci->RF_SYN_logen_BUF4);
20625 
20626  write_radio_reg(pi,
20628  ci->RF_RX0_lnaa_tune);
20630  ci->RF_RX0_lnag_tune);
20647 
20648  write_radio_reg(pi,
20650  ci->RF_RX1_lnaa_tune);
20652  ci->RF_RX1_lnag_tune);
20669 
20670  if (NREV_IS(pi->pubpi.phy_rev, 3))
20671  regs_SYN_2056_ptr = regs_SYN_2056;
20672  else if (NREV_IS(pi->pubpi.phy_rev, 4))
20673  regs_SYN_2056_ptr = regs_SYN_2056_A1;
20674  else {
20675  switch (pi->pubpi.radiorev) {
20676  case 5:
20677  regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20678  break;
20679  case 6:
20680  regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20681  break;
20682  case 7:
20683  case 9:
20684  regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20685  break;
20686  case 8:
20687  regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20688  break;
20689  case 11:
20690  regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20691  break;
20692  }
20693  }
20694  if (CHSPEC_IS2G(pi->radio_chanspec))
20697  (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
20698  else
20701  (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
20702 
20703  if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
20704  if (CHSPEC_IS2G(pi->radio_chanspec)) {
20706  RADIO_2056_SYN, 0x1f);
20708  RADIO_2056_SYN, 0x1f);
20709 
20710  if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
20711  (pi->sh->chip == BCMA_CHIP_ID_BCM47162)) {
20712  write_radio_reg(pi,
20714  RADIO_2056_SYN, 0x14);
20715  write_radio_reg(pi,
20717  RADIO_2056_SYN, 0x00);
20718  } else {
20719  write_radio_reg(pi,
20721  RADIO_2056_SYN, 0xb);
20722  write_radio_reg(pi,
20724  RADIO_2056_SYN, 0x14);
20725  }
20726  }
20727  }
20728 
20729  if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
20730  (CHSPEC_IS2G(pi->radio_chanspec))) {
20731  write_radio_reg(pi,
20733  0x1f);
20734  write_radio_reg(pi,
20736  0x1f);
20737  write_radio_reg(pi,
20739  0xb);
20741  0x20);
20742  }
20743 
20744  if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
20745  if (CHSPEC_IS5G(pi->radio_chanspec)) {
20747  RADIO_2056_SYN, 0x1f);
20749  RADIO_2056_SYN, 0x1f);
20751  RADIO_2056_SYN, 0x5);
20753  RADIO_2056_SYN, 0xc);
20754  }
20755  }
20756 
20757  if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
20758  u16 pag_boost_tune;
20759  u16 padg_boost_tune;
20760  u16 pgag_boost_tune;
20761  u16 mixg_boost_tune;
20762  u16 bias, cascbias;
20763  uint core;
20764 
20765  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20766 
20767  if (NREV_GE(pi->pubpi.phy_rev, 5)) {
20768 
20769  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20770  PADG_IDAC, 0xcc);
20771 
20772  if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
20773  (pi->sh->chip == BCMA_CHIP_ID_BCM47162)) {
20774  bias = 0x40;
20775  cascbias = 0x45;
20776  pag_boost_tune = 0x5;
20777  pgag_boost_tune = 0x33;
20778  padg_boost_tune = 0x77;
20779  mixg_boost_tune = 0x55;
20780  } else {
20781  bias = 0x25;
20782  cascbias = 0x20;
20783 
20784  if ((pi->sh->chip == BCMA_CHIP_ID_BCM43224 ||
20785  pi->sh->chip == BCMA_CHIP_ID_BCM43225) &&
20786  pi->sh->chippkg == BCMA_PKG_ID_BCM43224_FAB_SMIC) {
20787  bias = 0x2a;
20788  cascbias = 0x38;
20789  }
20790 
20791  pag_boost_tune = 0x4;
20792  pgag_boost_tune = 0x03;
20793  padg_boost_tune = 0x77;
20794  mixg_boost_tune = 0x65;
20795  }
20796 
20797  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20798  INTPAG_IMAIN_STAT, bias);
20799  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20800  INTPAG_IAUX_STAT, bias);
20801  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20802  INTPAG_CASCBIAS, cascbias);
20803 
20804  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20805  INTPAG_BOOST_TUNE,
20806  pag_boost_tune);
20807  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20808  PGAG_BOOST_TUNE,
20809  pgag_boost_tune);
20810  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20811  PADG_BOOST_TUNE,
20812  padg_boost_tune);
20813  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20814  MIXG_BOOST_TUNE,
20815  mixg_boost_tune);
20816  } else {
20817 
20818  bias = (pi->bw == WL_CHANSPEC_BW_40) ?
20819  0x40 : 0x20;
20820 
20821  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20822  INTPAG_IMAIN_STAT, bias);
20823  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20824  INTPAG_IAUX_STAT, bias);
20825  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20826  INTPAG_CASCBIAS, 0x30);
20827  }
20828  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
20829  0xee);
20830  }
20831  }
20832 
20833  if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
20834  && CHSPEC_IS5G(pi->radio_chanspec)) {
20835  u16 paa_boost_tune;
20836  u16 pada_boost_tune;
20837  u16 pgaa_boost_tune;
20838  u16 mixa_boost_tune;
20839  u16 freq, pabias, cascbias;
20840  uint core;
20841 
20843 
20844  if (freq < 5150) {
20845 
20846  paa_boost_tune = 0xa;
20847  pada_boost_tune = 0x77;
20848  pgaa_boost_tune = 0xf;
20849  mixa_boost_tune = 0xf;
20850  } else if (freq < 5340) {
20851 
20852  paa_boost_tune = 0x8;
20853  pada_boost_tune = 0x77;
20854  pgaa_boost_tune = 0xfb;
20855  mixa_boost_tune = 0xf;
20856  } else if (freq < 5650) {
20857 
20858  paa_boost_tune = 0x0;
20859  pada_boost_tune = 0x77;
20860  pgaa_boost_tune = 0xb;
20861  mixa_boost_tune = 0xf;
20862  } else {
20863 
20864  paa_boost_tune = 0x0;
20865  pada_boost_tune = 0x77;
20866  if (freq != 5825)
20867  pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
20868  else
20869  pgaa_boost_tune = 6;
20870 
20871  mixa_boost_tune = 0xf;
20872  }
20873 
20874  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20875  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20876  INTPAA_BOOST_TUNE, paa_boost_tune);
20877  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20878  PADA_BOOST_TUNE, pada_boost_tune);
20879  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20880  PGAA_BOOST_TUNE, pgaa_boost_tune);
20881  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20882  MIXA_BOOST_TUNE, mixa_boost_tune);
20883 
20884  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20885  TXSPARE1, 0x30);
20886  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20887  PA_SPARE2, 0xee);
20888 
20889  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20890  PADA_CASCBIAS, 0x3);
20891 
20892  cascbias = 0x30;
20893 
20894  if ((pi->sh->chip == BCMA_CHIP_ID_BCM43224 ||
20895  pi->sh->chip == BCMA_CHIP_ID_BCM43225) &&
20896  pi->sh->chippkg == BCMA_PKG_ID_BCM43224_FAB_SMIC)
20897  cascbias = 0x35;
20898 
20899  pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
20900 
20901  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20902  INTPAA_IAUX_STAT, pabias);
20903  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20904  INTPAA_IMAIN_STAT, pabias);
20905  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20906  INTPAA_CASCBIAS, cascbias);
20907  }
20908  }
20909 
20910  udelay(50);
20911 
20913 }
20914 
20916 {
20917  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20918  mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
20921  (1 << 2));
20922  mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
20923  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20929  }
20930 
20931  udelay(300);
20932 }
20933 
20934 static void
20935 wlc_phy_chanspec_radio2057_setup(
20936  struct brcms_phy *pi,
20937  const struct chan_info_nphy_radio2057 *ci,
20938  const struct chan_info_nphy_radio2057_rev5 *
20939  ci2)
20940 {
20941  int coreNum;
20942  u16 txmix2g_tune_boost_pu = 0;
20943  u16 pad2g_tune_pus = 0;
20944 
20945  if (pi->pubpi.radiorev == 5) {
20946 
20947  write_radio_reg(pi,
20949  ci2->RF_vcocal_countval0);
20951  ci2->RF_vcocal_countval1);
20955  ci2->RF_rfpll_loopfilter_r1);
20957  ci2->RF_rfpll_loopfilter_c2);
20959  ci2->RF_rfpll_loopfilter_c1);
20961  ci2->RF_cp_kpd_idac);
20964  write_radio_reg(pi,
20966  write_radio_reg(pi,
20968  ci2->RF_logen_mx2g_tune);
20970  ci2->RF_logen_indbuf2g_tune);
20971 
20972  write_radio_reg(pi,
20975  write_radio_reg(pi,
20979  ci2->RF_lna2g_tune_core0);
20980 
20981  write_radio_reg(pi,
20984  write_radio_reg(pi,
20988  ci2->RF_lna2g_tune_core1);
20989 
20990  } else {
20991 
20992  write_radio_reg(pi,
20994  ci->RF_vcocal_countval0);
20996  ci->RF_vcocal_countval1);
21009  write_radio_reg(pi,
21011  ci->RF_logen_mx2g_tune);
21013  ci->RF_logen_mx5g_tune);
21018 
21019  write_radio_reg(pi,
21022  write_radio_reg(pi,
21032  ci->RF_lna2g_tune_core0);
21034  ci->RF_lna5g_tune_core0);
21035 
21036  write_radio_reg(pi,
21039  write_radio_reg(pi,
21049  ci->RF_lna2g_tune_core1);
21051  ci->RF_lna5g_tune_core1);
21052  }
21053 
21054  if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
21055 
21056  if (CHSPEC_IS2G(pi->radio_chanspec)) {
21058  0x3f);
21061  0x8);
21063  0x8);
21064  } else {
21066  0x1f);
21069  0x8);
21071  0x8);
21072  }
21073  } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
21074  (pi->pubpi.radiorev == 8)) {
21075 
21076  if (CHSPEC_IS2G(pi->radio_chanspec)) {
21078  0x1b);
21081  0xa);
21083  0xa);
21084  } else {
21086  0x1f);
21089  0x8);
21091  0x8);
21092  }
21093 
21094  }
21095 
21096  if (CHSPEC_IS2G(pi->radio_chanspec)) {
21097  if (PHY_IPA(pi)) {
21098  if (pi->pubpi.radiorev == 3)
21099  txmix2g_tune_boost_pu = 0x6b;
21100 
21101  if (pi->pubpi.radiorev == 5)
21102  pad2g_tune_pus = 0x73;
21103 
21104  } else {
21105  if (pi->pubpi.radiorev != 5) {
21106  pad2g_tune_pus = 0x3;
21107 
21108  txmix2g_tune_boost_pu = 0x61;
21109  }
21110  }
21111 
21112  for (coreNum = 0; coreNum <= 1; coreNum++) {
21113 
21114  if (txmix2g_tune_boost_pu != 0)
21115  WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21116  TXMIX2G_TUNE_BOOST_PU,
21117  txmix2g_tune_boost_pu);
21118 
21119  if (pad2g_tune_pus != 0)
21120  WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21121  PAD2G_TUNE_PUS,
21122  pad2g_tune_pus);
21123  }
21124  }
21125 
21126  udelay(50);
21127 
21129 }
21130 
21131 static void
21132 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
21133  const struct nphy_sfo_cfg *ci)
21134 {
21135  u16 val;
21136  struct si_info *sii = container_of(pi->sh->sih, struct si_info, pub);
21137 
21138  val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
21139  if (CHSPEC_IS5G(chanspec) && !val) {
21140 
21141  val = bcma_read16(pi->d11core, D11REGOFFS(psm_phy_hdr_param));
21142  bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param),
21143  (val | MAC_PHY_FORCE_CLK));
21144 
21147 
21148  bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param), val);
21149 
21151  } else if (!CHSPEC_IS5G(chanspec) && val) {
21152 
21154 
21155  val = bcma_read16(pi->d11core, D11REGOFFS(psm_phy_hdr_param));
21156  bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param),
21157  (val | MAC_PHY_FORCE_CLK));
21158 
21160  (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
21161 
21162  bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param), val);
21163  }
21164 
21165  write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
21166  write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
21167  write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
21168 
21169  write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
21170  write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
21171  write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
21172 
21173  if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
21175 
21176  or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
21177  } else {
21180 
21181  if (CHSPEC_IS2G(chanspec))
21182  and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
21183  }
21184 
21185  if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF)
21187 
21188  if (NREV_LT(pi->pubpi.phy_rev, 3))
21189  wlc_phy_adjust_lnagaintbl_nphy(pi);
21190 
21191  wlc_phy_txlpfbw_nphy(pi);
21192 
21193  if (NREV_GE(pi->pubpi.phy_rev, 3)
21194  && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
21195  u8 spuravoid = 0;
21196 
21197  val = CHSPEC_CHANNEL(chanspec);
21198  if (!CHSPEC_IS40(pi->radio_chanspec)) {
21199  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21200  if ((val == 13) || (val == 14) || (val == 153))
21201  spuravoid = 1;
21202  } else if (((val >= 5) && (val <= 8)) || (val == 13)
21203  || (val == 14)) {
21204  spuravoid = 1;
21205  }
21206  } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21207  if (val == 54)
21208  spuravoid = 1;
21209  } else if (pi->nphy_aband_spurwar_en &&
21210  ((val == 38) || (val == 102) || (val == 118))) {
21211  if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716)
21212  && (pi->sh->chippkg == BCMA_PKG_ID_BCM4717)) {
21213  spuravoid = 0;
21214  } else {
21215  spuravoid = 1;
21216  }
21217  }
21218 
21219  if (pi->phy_spuravoid == SPURAVOID_FORCEON)
21220  spuravoid = 1;
21221 
21222  if ((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
21223  (pi->sh->chip == BCMA_CHIP_ID_BCM43225)) {
21224  bcma_pmu_spuravoid_pllupdate(&sii->icbus->drv_cc,
21225  spuravoid);
21226  } else {
21227  wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
21228  bcma_pmu_spuravoid_pllupdate(&sii->icbus->drv_cc,
21229  spuravoid);
21230  wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
21231  }
21232 
21233  if ((pi->sh->chip == BCMA_CHIP_ID_BCM43224) ||
21234  (pi->sh->chip == BCMA_CHIP_ID_BCM43225)) {
21235  if (spuravoid == 1) {
21236  bcma_write16(pi->d11core,
21237  D11REGOFFS(tsf_clk_frac_l),
21238  0x5341);
21239  bcma_write16(pi->d11core,
21240  D11REGOFFS(tsf_clk_frac_h), 0x8);
21241  } else {
21242  bcma_write16(pi->d11core,
21243  D11REGOFFS(tsf_clk_frac_l),
21244  0x8889);
21245  bcma_write16(pi->d11core,
21246  D11REGOFFS(tsf_clk_frac_h), 0x8);
21247  }
21248  }
21249 
21250  if (!((pi->sh->chip == BCMA_CHIP_ID_BCM4716) ||
21251  (pi->sh->chip == BCMA_CHIP_ID_BCM47162)))
21252  wlapi_bmac_core_phypll_reset(pi->sh->physhim);
21253 
21254  mod_phy_reg(pi, 0x01, (0x1 << 15),
21255  ((spuravoid > 0) ? (0x1 << 15) : 0));
21256 
21257  wlc_phy_resetcca_nphy(pi);
21258 
21259  pi->phy_isspuravoid = (spuravoid > 0);
21260  }
21261 
21262  if (NREV_LT(pi->pubpi.phy_rev, 7))
21263  write_phy_reg(pi, 0x17e, 0x3830);
21264 
21265  wlc_phy_spurwar_nphy(pi);
21266 }
21267 
21268 void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
21269 {
21270  int freq;
21271  const struct chan_info_nphy_radio2057 *t0 = NULL;
21272  const struct chan_info_nphy_radio205x *t1 = NULL;
21273  const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
21274  const struct chan_info_nphy_2055 *t3 = NULL;
21275 
21276  if (!wlc_phy_chan2freq_nphy
21277  (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
21278  return;
21279 
21280  wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
21281 
21282  if (CHSPEC_BW(chanspec) != pi->bw)
21283  wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
21284 
21285  if (CHSPEC_IS40(chanspec)) {
21286  if (CHSPEC_SB_UPPER(chanspec)) {
21287  or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
21288  if (NREV_GE(pi->pubpi.phy_rev, 7))
21289  or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
21290  } else {
21291  and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
21292  if (NREV_GE(pi->pubpi.phy_rev, 7))
21293  and_phy_reg(pi, 0x310,
21294  (~PRIM_SEL_UP20 & 0xffff));
21295  }
21296  }
21297 
21298  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21299  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21300 
21301  if ((pi->pubpi.radiorev <= 4)
21302  || (pi->pubpi.radiorev == 6)) {
21304  0x2,
21305  (CHSPEC_IS5G(chanspec) ? (1 << 1)
21306  : 0));
21308  0x2,
21309  (CHSPEC_IS5G(chanspec) ? (1 << 1)
21310  : 0));
21311  }
21312 
21313  wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
21314  wlc_phy_chanspec_nphy_setup(pi, chanspec,
21315  (pi->pubpi.radiorev == 5) ?
21316  (const struct nphy_sfo_cfg *)&(t2->PHY_BW1a) :
21317  (const struct nphy_sfo_cfg *)&(t0->PHY_BW1a));
21318 
21319  } else {
21320 
21321  mod_radio_reg(pi,
21323  0x4,
21324  (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
21325  wlc_phy_chanspec_radio2056_setup(pi, t1);
21326 
21327  wlc_phy_chanspec_nphy_setup(pi, chanspec,
21328  (const struct nphy_sfo_cfg *) &(t1->PHY_BW1a));
21329  }
21330 
21331  } else {
21332 
21334  (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
21335  : (0x05 << 4)));
21336 
21337  wlc_phy_chanspec_radio2055_setup(pi, t3);
21338  wlc_phy_chanspec_nphy_setup(pi, chanspec,
21339  (const struct nphy_sfo_cfg *)
21340  &(t3->PHY_BW1a));
21341  }
21342 
21343 }
21344 
21345 void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
21346 {
21347  struct brcms_phy *pi = (struct brcms_phy *) ppi;
21348  u16 mask = 0xfc00;
21349  u32 mc = 0;
21350 
21351  if (NREV_GE(pi->pubpi.phy_rev, 7))
21352  return;
21353 
21354  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21355  u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
21356 
21357  if (!lut_init)
21358  return;
21359 
21360  if (pi->srom_fem2g.antswctrllut == 0) {
21362  1, 0x02, 16, &v0);
21364  1, 0x03, 16, &v1);
21366  1, 0x08, 16, &v2);
21368  1, 0x0C, 16, &v3);
21369  }
21370 
21371  if (pi->srom_fem5g.antswctrllut == 0) {
21373  1, 0x12, 16, &v0);
21375  1, 0x13, 16, &v1);
21377  1, 0x18, 16, &v2);
21379  1, 0x1C, 16, &v3);
21380  }
21381  } else {
21382 
21383  write_phy_reg(pi, 0xc8, 0x0);
21384  write_phy_reg(pi, 0xc9, 0x0);
21385 
21386  bcma_chipco_gpio_control(&pi->d11core->bus->drv_cc, mask, mask);
21387 
21388  mc = bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
21389  mc &= ~MCTL_GPOUT_SEL_MASK;
21390  bcma_write32(pi->d11core, D11REGOFFS(maccontrol), mc);
21391 
21392  bcma_set16(pi->d11core, D11REGOFFS(psm_gpio_oe), mask);
21393 
21394  bcma_mask16(pi->d11core, D11REGOFFS(psm_gpio_out), ~mask);
21395 
21396  if (lut_init) {
21397  write_phy_reg(pi, 0xf8, 0x02d8);
21398  write_phy_reg(pi, 0xf9, 0x0301);
21399  write_phy_reg(pi, 0xfa, 0x02d8);
21400  write_phy_reg(pi, 0xfb, 0x0301);
21401  }
21402  }
21403 }
21404 
21406 {
21407  u16 curr_ctl, new_ctl;
21408  bool suspended = false;
21409 
21410  if (D11REV_IS(pi->sh->corerev, 16)) {
21411  suspended = (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
21412  MCTL_EN_MAC) ? false : true;
21413  if (!suspended)
21414  wlapi_suspend_mac_and_wait(pi->sh->physhim);
21415  }
21416 
21417  curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
21418 
21419  new_ctl = (curr_ctl & (~mask)) | (val & mask);
21420 
21421  mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
21422 
21423  if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
21424  wlapi_enable_mac(pi->sh->physhim);
21425 
21426  return new_ctl;
21427 }
21428 
21430 {
21431  u16 trigger_mask, status_mask;
21432  u16 orig_RfseqCoreActv;
21433 
21434  switch (cmd) {
21435  case NPHY_RFSEQ_RX2TX:
21436  trigger_mask = NPHY_RfseqTrigger_rx2tx;
21437  status_mask = NPHY_RfseqStatus_rx2tx;
21438  break;
21439  case NPHY_RFSEQ_TX2RX:
21440  trigger_mask = NPHY_RfseqTrigger_tx2rx;
21441  status_mask = NPHY_RfseqStatus_tx2rx;
21442  break;
21443  case NPHY_RFSEQ_RESET2RX:
21444  trigger_mask = NPHY_RfseqTrigger_reset2rx;
21445  status_mask = NPHY_RfseqStatus_reset2rx;
21446  break;
21448  trigger_mask = NPHY_RfseqTrigger_updategainh;
21449  status_mask = NPHY_RfseqStatus_updategainh;
21450  break;
21452  trigger_mask = NPHY_RfseqTrigger_updategainl;
21453  status_mask = NPHY_RfseqStatus_updategainl;
21454  break;
21456  trigger_mask = NPHY_RfseqTrigger_updategainu;
21457  status_mask = NPHY_RfseqStatus_updategainu;
21458  break;
21459  default:
21460  return;
21461  }
21462 
21463  orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
21464  or_phy_reg(pi, 0xa1,
21467  or_phy_reg(pi, 0xa3, trigger_mask);
21468  SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
21469  write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
21470  WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
21471 }
21472 
21473 static void
21474 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
21475  u8 core_mask, u8 off)
21476 {
21477  u16 rfmxgain = 0, lpfgain = 0;
21478  u16 tgain = 0;
21479 
21480  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21481 
21482  switch (cmd) {
21484  wlc_phy_rfctrl_override_nphy_rev7(
21485  pi, (0x1 << 5),
21486  value, core_mask, off,
21488  wlc_phy_rfctrl_override_nphy_rev7(
21489  pi, (0x1 << 4), value,
21490  core_mask, off,
21492  wlc_phy_rfctrl_override_nphy_rev7(
21493  pi, (0x1 << 3), value,
21494  core_mask, off,
21496  break;
21498  wlc_phy_rfctrl_override_nphy_rev7(
21499  pi, (0x1 << 2),
21500  value, core_mask, off,
21502  wlc_phy_rfctrl_override_nphy_rev7(
21503  pi, (0x1 << 1), value,
21504  core_mask, off,
21506  wlc_phy_rfctrl_override_nphy_rev7(
21507  pi, (0x1 << 0), value,
21508  core_mask, off,
21510  wlc_phy_rfctrl_override_nphy_rev7(
21511  pi, (0x1 << 1), value,
21512  core_mask, off,
21514  wlc_phy_rfctrl_override_nphy_rev7(
21515  pi, (0x1 << 11), 0,
21516  core_mask, off,
21518  break;
21520  wlc_phy_rfctrl_override_nphy_rev7(
21521  pi, (0x1 << 2),
21522  value, core_mask, off,
21524  wlc_phy_rfctrl_override_nphy_rev7(
21525  pi, (0x1 << 1), value,
21526  core_mask, off,
21528  wlc_phy_rfctrl_override_nphy_rev7(
21529  pi, (0x1 << 0), value,
21530  core_mask, off,
21532  wlc_phy_rfctrl_override_nphy_rev7(
21533  pi, (0x1 << 2), value,
21534  core_mask, off,
21536  wlc_phy_rfctrl_override_nphy_rev7(
21537  pi, (0x1 << 11), 1,
21538  core_mask, off,
21540  break;
21542  rfmxgain = value & 0x000ff;
21543  lpfgain = value & 0x0ff00;
21544  lpfgain = lpfgain >> 8;
21545 
21546  wlc_phy_rfctrl_override_nphy_rev7(
21547  pi, (0x1 << 11),
21548  rfmxgain, core_mask,
21549  off,
21551  wlc_phy_rfctrl_override_nphy_rev7(
21552  pi, (0x3 << 13),
21553  lpfgain, core_mask,
21554  off,
21556  break;
21558  tgain = value & 0x7fff;
21559  lpfgain = value & 0x8000;
21560  lpfgain = lpfgain >> 14;
21561 
21562  wlc_phy_rfctrl_override_nphy_rev7(
21563  pi, (0x1 << 12),
21564  tgain, core_mask, off,
21566  wlc_phy_rfctrl_override_nphy_rev7(
21567  pi, (0x1 << 13),
21568  lpfgain, core_mask,
21569  off,
21571  break;
21572  }
21573  }
21574 }
21575 
21576 static void
21577 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
21578  u8 coresel, u8 rail, u8 rssi_type)
21579 {
21580  u16 valuetostuff;
21581 
21582  offset = (offset > NPHY_RSSICAL_MAXREAD) ?
21583  NPHY_RSSICAL_MAXREAD : offset;
21584  offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
21586 
21587  valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
21588 
21589  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21590  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21591  (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21592  write_phy_reg(pi, 0x1a6, valuetostuff);
21593 
21594  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21595  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21596  (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21597  write_phy_reg(pi, 0x1ac, valuetostuff);
21598 
21599  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21600  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21601  (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21602  write_phy_reg(pi, 0x1b2, valuetostuff);
21603 
21604  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21605  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21606  (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21607  write_phy_reg(pi, 0x1b8, valuetostuff);
21608 
21609  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21610  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21611  (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21612  write_phy_reg(pi, 0x1a4, valuetostuff);
21613 
21614  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21615  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21616  (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21617  write_phy_reg(pi, 0x1aa, valuetostuff);
21618 
21619  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21620  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21621  (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21622  write_phy_reg(pi, 0x1b0, valuetostuff);
21623 
21624  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21625  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21626  (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21627  write_phy_reg(pi, 0x1b6, valuetostuff);
21628 
21629  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21630  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21631  (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21632  write_phy_reg(pi, 0x1a5, valuetostuff);
21633  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21634  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21635  (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21636  write_phy_reg(pi, 0x1ab, valuetostuff);
21637 
21638  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21639  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21640  (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21641  write_phy_reg(pi, 0x1b1, valuetostuff);
21642 
21643  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21644  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21645  (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21646  write_phy_reg(pi, 0x1b7, valuetostuff);
21647 
21648  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21649  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21650  (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21651  write_phy_reg(pi, 0x1a7, valuetostuff);
21652  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21653  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21654  (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21655  write_phy_reg(pi, 0x1ad, valuetostuff);
21656  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21657  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21658  (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21659  write_phy_reg(pi, 0x1b3, valuetostuff);
21660  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21661  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21662  (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21663  write_phy_reg(pi, 0x1b9, valuetostuff);
21664 
21665  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21666  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21667  (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21668  write_phy_reg(pi, 0x1a8, valuetostuff);
21669 
21670  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21671  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21672  (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21673  write_phy_reg(pi, 0x1ae, valuetostuff);
21674 
21675  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21676  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21677  (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21678  write_phy_reg(pi, 0x1b4, valuetostuff);
21679 
21680  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21681  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21682  (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21683  write_phy_reg(pi, 0x1ba, valuetostuff);
21684 
21685  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21686  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21687  (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21688  write_phy_reg(pi, 0x1a9, valuetostuff);
21689  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21690  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21691  (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21692  write_phy_reg(pi, 0x1b5, valuetostuff);
21693 
21694  if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21695  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21696  (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21697  write_phy_reg(pi, 0x1af, valuetostuff);
21698 
21699  if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21700  (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21701  (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21702  write_phy_reg(pi, 0x1bb, valuetostuff);
21703 }
21704 
21705 static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
21706 {
21707  if (PHY_IPA(pi)) {
21708  if (NREV_GE(pi->pubpi.phy_rev, 7))
21709  write_radio_reg(pi,
21710  ((core == PHY_CORE_0) ?
21713  (CHSPEC_IS5G(pi->radio_chanspec) ?
21714  0xc : 0xe));
21715  else
21716  write_radio_reg(pi,
21718  ((core == PHY_CORE_0) ?
21720  (CHSPEC_IS5G(pi->radio_chanspec) ?
21721  0xc : 0xe));
21722  } else {
21723  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21724  write_radio_reg(pi,
21725  ((core == PHY_CORE_0) ?
21727  RADIO_2057_TX1_TX_SSI_MUX),
21728  0x11);
21729 
21730  if (pi->pubpi.radioid == BCM2057_ID)
21731  write_radio_reg(pi,
21733 
21734  } else {
21735  write_radio_reg(pi,
21737  ((core == PHY_CORE_0) ?
21738  RADIO_2056_TX0 : RADIO_2056_TX1),
21739  0x11);
21740  }
21741  }
21742 }
21743 
21744 void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
21745 {
21746  u16 mask, val;
21747  u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
21748  startseq;
21749  u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
21750  rfctrlovr_trigger_val;
21751  u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
21752  u16 rfctrlcmd_val, rfctrlovr_val;
21753  u8 core;
21754 
21755  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21756  if (core_code == RADIO_MIMO_CORESEL_OFF) {
21757  mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
21758  mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
21759 
21760  mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
21761  mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
21762 
21763  mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
21764  mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
21765 
21766  mask = (0x1 << 2) |
21767  (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
21768  mod_phy_reg(pi, 0xf9, mask, 0);
21769  mod_phy_reg(pi, 0xfb, mask, 0);
21770 
21771  } else {
21772  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21773  if (core_code == RADIO_MIMO_CORESEL_CORE1
21774  && core == PHY_CORE_1)
21775  continue;
21776  else if (core_code == RADIO_MIMO_CORESEL_CORE2
21777  && core == PHY_CORE_0)
21778  continue;
21779 
21780  mod_phy_reg(pi, (core == PHY_CORE_0) ?
21781  0x8f : 0xa5, (0x1 << 9), 1 << 9);
21782 
21783  if (rssi_type == NPHY_RSSI_SEL_W1 ||
21784  rssi_type == NPHY_RSSI_SEL_W2 ||
21785  rssi_type == NPHY_RSSI_SEL_NB) {
21786  mod_phy_reg(pi,
21787  (core ==
21788  PHY_CORE_0) ? 0xa6 : 0xa7,
21789  (0x3 << 8), 0);
21790 
21791  mask = (0x1 << 2) |
21792  (0x1 << 3) |
21793  (0x1 << 4) | (0x1 << 5);
21794  mod_phy_reg(pi,
21795  (core ==
21796  PHY_CORE_0) ? 0xf9 : 0xfb,
21797  mask, 0);
21798 
21799  if (rssi_type == NPHY_RSSI_SEL_W1) {
21800  if (CHSPEC_IS5G(
21801  pi->radio_chanspec)) {
21802  mask = (0x1 << 2);
21803  val = 1 << 2;
21804  } else {
21805  mask = (0x1 << 3);
21806  val = 1 << 3;
21807  }
21808  } else if (rssi_type ==
21809  NPHY_RSSI_SEL_W2) {
21810  mask = (0x1 << 4);
21811  val = 1 << 4;
21812  } else {
21813  mask = (0x1 << 5);
21814  val = 1 << 5;
21815  }
21816  mod_phy_reg(pi,
21817  (core ==
21818  PHY_CORE_0) ? 0xf9 : 0xfb,
21819  mask, val);
21820 
21821  mask = (0x1 << 5);
21822  val = 1 << 5;
21823  mod_phy_reg(pi, (core == PHY_CORE_0) ?
21824  0xe5 : 0xe6, mask, val);
21825  } else {
21826  if (rssi_type == NPHY_RSSI_SEL_TBD) {
21827  mask = (0x3 << 8);
21828  val = 1 << 8;
21829  mod_phy_reg(pi,
21830  (core ==
21831  PHY_CORE_0) ? 0xa6
21832  : 0xa7, mask, val);
21833  mask = (0x3 << 10);
21834  val = 1 << 10;
21835  mod_phy_reg(pi,
21836  (core ==
21837  PHY_CORE_0) ? 0xa6
21838  : 0xa7, mask, val);
21839  } else if (rssi_type ==
21840  NPHY_RSSI_SEL_IQ) {
21841  mask = (0x3 << 8);
21842  val = 2 << 8;
21843  mod_phy_reg(pi,
21844  (core ==
21845  PHY_CORE_0) ? 0xa6
21846  : 0xa7, mask, val);
21847  mask = (0x3 << 10);
21848  val = 2 << 10;
21849  mod_phy_reg(pi,
21850  (core ==
21851  PHY_CORE_0) ? 0xa6
21852  : 0xa7, mask, val);
21853  } else {
21854  mask = (0x3 << 8);
21855  val = 3 << 8;
21856  mod_phy_reg(pi,
21857  (core ==
21858  PHY_CORE_0) ? 0xa6
21859  : 0xa7, mask, val);
21860  mask = (0x3 << 10);
21861  val = 3 << 10;
21862  mod_phy_reg(pi,
21863  (core ==
21864  PHY_CORE_0) ? 0xa6
21865  : 0xa7, mask, val);
21866  brcms_phy_wr_tx_mux(pi, core);
21867  afectrlovr_rssi_val = 1 << 9;
21868  mod_phy_reg(pi,
21869  (core ==
21870  PHY_CORE_0) ? 0x8f
21871  : 0xa5, (0x1 << 9),
21872  afectrlovr_rssi_val);
21873  }
21874  }
21875  }
21876  }
21877  } else {
21878 
21879  if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21880  (rssi_type == NPHY_RSSI_SEL_W2) ||
21881  (rssi_type == NPHY_RSSI_SEL_NB))
21882  val = 0x0;
21883  else if (rssi_type == NPHY_RSSI_SEL_TBD)
21884  val = 0x1;
21885  else if (rssi_type == NPHY_RSSI_SEL_IQ)
21886  val = 0x2;
21887  else
21888  val = 0x3;
21889 
21890  mask = ((0x3 << 12) | (0x3 << 14));
21891  val = (val << 12) | (val << 14);
21892  mod_phy_reg(pi, 0xa6, mask, val);
21893  mod_phy_reg(pi, 0xa7, mask, val);
21894 
21895  if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21896  (rssi_type == NPHY_RSSI_SEL_W2) ||
21897  (rssi_type == NPHY_RSSI_SEL_NB)) {
21898  if (rssi_type == NPHY_RSSI_SEL_W1)
21899  val = 0x1;
21900  if (rssi_type == NPHY_RSSI_SEL_W2)
21901  val = 0x2;
21902  if (rssi_type == NPHY_RSSI_SEL_NB)
21903  val = 0x3;
21904 
21905  mask = (0x3 << 4);
21906  val = (val << 4);
21907  mod_phy_reg(pi, 0x7a, mask, val);
21908  mod_phy_reg(pi, 0x7d, mask, val);
21909  }
21910 
21911  if (core_code == RADIO_MIMO_CORESEL_OFF) {
21912  afectrlovr_rssi_val = 0;
21913  rfctrlcmd_rxen_val = 0;
21914  rfctrlcmd_coresel_val = 0;
21915  rfctrlovr_rssi_val = 0;
21916  rfctrlovr_rxen_val = 0;
21917  rfctrlovr_coresel_val = 0;
21918  rfctrlovr_trigger_val = 0;
21919  startseq = 0;
21920  } else {
21921  afectrlovr_rssi_val = 1;
21922  rfctrlcmd_rxen_val = 1;
21923  rfctrlcmd_coresel_val = core_code;
21924  rfctrlovr_rssi_val = 1;
21925  rfctrlovr_rxen_val = 1;
21926  rfctrlovr_coresel_val = 1;
21927  rfctrlovr_trigger_val = 1;
21928  startseq = 1;
21929  }
21930 
21931  afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
21932  afectrlovr_rssi_val = (afectrlovr_rssi_val <<
21933  12) | (afectrlovr_rssi_val << 13);
21934  mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
21935  afectrlovr_rssi_val);
21936 
21937  if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21938  (rssi_type == NPHY_RSSI_SEL_W2) ||
21939  (rssi_type == NPHY_RSSI_SEL_NB)) {
21940  rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
21941  rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
21942  (rfctrlcmd_coresel_val << 3);
21943 
21944  rfctrlovr_mask = ((0x1 << 5) |
21945  (0x1 << 12) |
21946  (0x1 << 1) | (0x1 << 0));
21947  rfctrlovr_val = (rfctrlovr_rssi_val <<
21948  5) |
21949  (rfctrlovr_rxen_val << 12) |
21950  (rfctrlovr_coresel_val << 1) |
21951  (rfctrlovr_trigger_val << 0);
21952 
21953  mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
21954  mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
21955 
21956  mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
21957  udelay(20);
21958 
21959  mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
21960  }
21961  }
21962 }
21963 
21964 int
21965 wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
21966  u8 nsamps)
21967 {
21968  s16 rssi0, rssi1;
21969  u16 afectrlCore1_save = 0;
21970  u16 afectrlCore2_save = 0;
21971  u16 afectrlOverride1_save = 0;
21972  u16 afectrlOverride2_save = 0;
21973  u16 rfctrlOverrideAux0_save = 0;
21974  u16 rfctrlOverrideAux1_save = 0;
21975  u16 rfctrlMiscReg1_save = 0;
21976  u16 rfctrlMiscReg2_save = 0;
21977  u16 rfctrlcmd_save = 0;
21978  u16 rfctrloverride_save = 0;
21979  u16 rfctrlrssiothers1_save = 0;
21980  u16 rfctrlrssiothers2_save = 0;
21981  s8 tmp_buf[4];
21982  u8 ctr = 0, samp = 0;
21983  s32 rssi_out_val;
21984  u16 gpiosel_orig;
21985 
21986  afectrlCore1_save = read_phy_reg(pi, 0xa6);
21987  afectrlCore2_save = read_phy_reg(pi, 0xa7);
21988  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21989  rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
21990  rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
21991  afectrlOverride1_save = read_phy_reg(pi, 0x8f);
21992  afectrlOverride2_save = read_phy_reg(pi, 0xa5);
21993  rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
21994  rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
21995  } else {
21996  afectrlOverride1_save = read_phy_reg(pi, 0xa5);
21997  rfctrlcmd_save = read_phy_reg(pi, 0x78);
21998  rfctrloverride_save = read_phy_reg(pi, 0xec);
21999  rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
22000  rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
22001  }
22002 
22004 
22005  gpiosel_orig = read_phy_reg(pi, 0xca);
22006  if (NREV_LT(pi->pubpi.phy_rev, 2))
22007  write_phy_reg(pi, 0xca, 5);
22008 
22009  for (ctr = 0; ctr < 4; ctr++)
22010  rssi_buf[ctr] = 0;
22011 
22012  for (samp = 0; samp < nsamps; samp++) {
22013  if (NREV_LT(pi->pubpi.phy_rev, 2)) {
22014  rssi0 = read_phy_reg(pi, 0x1c9);
22015  rssi1 = read_phy_reg(pi, 0x1ca);
22016  } else {
22017  rssi0 = read_phy_reg(pi, 0x219);
22018  rssi1 = read_phy_reg(pi, 0x21a);
22019  }
22020 
22021  ctr = 0;
22022  tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
22023  tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
22024  tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
22025  tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
22026 
22027  for (ctr = 0; ctr < 4; ctr++)
22028  rssi_buf[ctr] += tmp_buf[ctr];
22029 
22030  }
22031 
22032  rssi_out_val = rssi_buf[3] & 0xff;
22033  rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
22034  rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
22035  rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
22036 
22037  if (NREV_LT(pi->pubpi.phy_rev, 2))
22038  write_phy_reg(pi, 0xca, gpiosel_orig);
22039 
22040  write_phy_reg(pi, 0xa6, afectrlCore1_save);
22041  write_phy_reg(pi, 0xa7, afectrlCore2_save);
22042  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22043  write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
22044  write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
22045  write_phy_reg(pi, 0x8f, afectrlOverride1_save);
22046  write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22047  write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
22048  write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
22049  } else {
22050  write_phy_reg(pi, 0xa5, afectrlOverride1_save);
22051  write_phy_reg(pi, 0x78, rfctrlcmd_save);
22052  write_phy_reg(pi, 0xec, rfctrloverride_save);
22053  write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
22054  write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
22055  }
22056 
22057  return rssi_out_val;
22058 }
22059 
22061 {
22062  u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
22063  u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
22064  u16 pwrdet_rxtx_core1_save;
22065  u16 pwrdet_rxtx_core2_save;
22066  u16 afectrlCore1_save;
22067  u16 afectrlCore2_save;
22068  u16 afectrlOverride_save;
22069  u16 afectrlOverride2_save;
22070  u16 pd_pll_ts_save;
22071  u16 gpioSel_save;
22072  s32 radio_temp[4];
22073  s32 radio_temp2[4];
22074  u16 syn_tempprocsense_save;
22075  s16 offset = 0;
22076 
22077  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22078  u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
22079  u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
22080  u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
22081  s32 auxADC_Vl;
22082  u16 RfctrlOverride5_save, RfctrlOverride6_save;
22083  u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
22084  u16 RSSIMultCoef0QPowerDet_save;
22085  u16 tempsense_Rcal;
22086 
22087  syn_tempprocsense_save =
22089 
22090  afectrlCore1_save = read_phy_reg(pi, 0xa6);
22091  afectrlCore2_save = read_phy_reg(pi, 0xa7);
22092  afectrlOverride_save = read_phy_reg(pi, 0x8f);
22093  afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22094  RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
22095  RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22096  RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22097  RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22098  RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22099 
22101  &auxADC_Vmid_save);
22103  &auxADC_Av_save);
22105  &auxADC_rssi_ctrlL_save);
22107  &auxADC_rssi_ctrlH_save);
22108 
22109  write_phy_reg(pi, 0x1ae, 0x0);
22110 
22111  auxADC_rssi_ctrlL = 0x0;
22112  auxADC_rssi_ctrlH = 0x20;
22114  &auxADC_rssi_ctrlL);
22116  &auxADC_rssi_ctrlH);
22117 
22118  tempsense_Rcal = syn_tempprocsense_save & 0x1c;
22119 
22121  tempsense_Rcal | 0x01);
22122 
22123  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
22124  1, 0, 0,
22126  mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
22127  mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
22128  mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
22129  mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
22130 
22131  mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
22132  mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
22133  mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
22134  mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
22135  udelay(5);
22136  mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
22137  mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
22138  mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
22139  mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
22140  mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
22141  mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
22142  mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
22143  mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
22144  mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
22145  mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
22146 
22147  auxADC_Vmid = 0xA3;
22148  auxADC_Av = 0x0;
22150  &auxADC_Vmid);
22152  &auxADC_Av);
22153 
22154  udelay(3);
22155 
22156  wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22158  tempsense_Rcal | 0x03);
22159 
22160  udelay(5);
22161  wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22162 
22163  auxADC_Av = 0x7;
22164  if (radio_temp[1] + radio_temp2[1] < -30) {
22165  auxADC_Vmid = 0x45;
22166  auxADC_Vl = 263;
22167  } else if (radio_temp[1] + radio_temp2[1] < -9) {
22168  auxADC_Vmid = 0x200;
22169  auxADC_Vl = 467;
22170  } else if (radio_temp[1] + radio_temp2[1] < 11) {
22171  auxADC_Vmid = 0x266;
22172  auxADC_Vl = 634;
22173  } else {
22174  auxADC_Vmid = 0x2D5;
22175  auxADC_Vl = 816;
22176  }
22177 
22179  &auxADC_Vmid);
22181  &auxADC_Av);
22182 
22183  udelay(3);
22184 
22185  wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22187  tempsense_Rcal | 0x01);
22188 
22189  udelay(5);
22190  wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22191 
22193  syn_tempprocsense_save);
22194 
22195  write_phy_reg(pi, 0xa6, afectrlCore1_save);
22196  write_phy_reg(pi, 0xa7, afectrlCore2_save);
22197  write_phy_reg(pi, 0x8f, afectrlOverride_save);
22198  write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22199  write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
22200  write_phy_reg(pi, 0x346, RfctrlOverride5_save);
22201  write_phy_reg(pi, 0x347, RfctrlOverride6_save);
22202  write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
22203  write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
22204 
22206  &auxADC_Vmid_save);
22208  &auxADC_Av_save);
22210  &auxADC_rssi_ctrlL_save);
22212  &auxADC_rssi_ctrlH_save);
22213 
22214  if (pi->sh->chip == BCMA_CHIP_ID_BCM5357) {
22215  radio_temp[0] = (193 * (radio_temp[1] + radio_temp2[1])
22216  + 88 * (auxADC_Vl) - 27111 +
22217  128) / 256;
22218  } else {
22219  radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
22220  + 82 * (auxADC_Vl) - 28861 +
22221  128) / 256;
22222  }
22223 
22224  offset = (s16) pi->phy_tempsense_offset;
22225 
22226  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22227  syn_tempprocsense_save =
22229 
22230  afectrlCore1_save = read_phy_reg(pi, 0xa6);
22231  afectrlCore2_save = read_phy_reg(pi, 0xa7);
22232  afectrlOverride_save = read_phy_reg(pi, 0x8f);
22233  afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22234  gpioSel_save = read_phy_reg(pi, 0xca);
22235 
22237 
22238  wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22239  if (NREV_LT(pi->pubpi.phy_rev, 7))
22241 
22242  wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22243  if (NREV_GE(pi->pubpi.phy_rev, 7))
22245  else
22247 
22248  radio_temp[0] =
22249  (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
22250 
22252  syn_tempprocsense_save);
22253 
22254  write_phy_reg(pi, 0xca, gpioSel_save);
22255  write_phy_reg(pi, 0xa6, afectrlCore1_save);
22256  write_phy_reg(pi, 0xa7, afectrlCore2_save);
22257  write_phy_reg(pi, 0x8f, afectrlOverride_save);
22258  write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22259 
22260  offset = (s16) pi->phy_tempsense_offset;
22261  } else {
22262 
22263  pwrdet_rxtx_core1_save =
22265  pwrdet_rxtx_core2_save =
22267  core1_txrf_iqcal1_save =
22269  core1_txrf_iqcal2_save =
22271  core2_txrf_iqcal1_save =
22273  core2_txrf_iqcal2_save =
22275  pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
22276 
22277  afectrlCore1_save = read_phy_reg(pi, 0xa6);
22278  afectrlCore2_save = read_phy_reg(pi, 0xa7);
22279  afectrlOverride_save = read_phy_reg(pi, 0xa5);
22280  gpioSel_save = read_phy_reg(pi, 0xca);
22281 
22289 
22290  wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22291  xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22292 
22293  wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22294  xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22295 
22296  wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22297  xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22298 
22299  radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
22300  radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
22301  radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
22302  radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
22303 
22304  radio_temp[0] =
22305  (radio_temp[0] + radio_temp[1] + radio_temp[2] +
22306  radio_temp[3]);
22307 
22308  radio_temp[0] =
22309  (radio_temp[0] +
22310  (8 * 32)) * (950 - 350) / 63 + (350 * 8);
22311 
22312  radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
22313 
22315  pwrdet_rxtx_core1_save);
22317  pwrdet_rxtx_core2_save);
22319  core1_txrf_iqcal1_save);
22321  core2_txrf_iqcal1_save);
22323  core1_txrf_iqcal2_save);
22325  core2_txrf_iqcal2_save);
22326  write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
22327 
22328  write_phy_reg(pi, 0xca, gpioSel_save);
22329  write_phy_reg(pi, 0xa6, afectrlCore1_save);
22330  write_phy_reg(pi, 0xa7, afectrlCore2_save);
22331  write_phy_reg(pi, 0xa5, afectrlOverride_save);
22332  }
22333 
22334  return (s16) radio_temp[0] + offset;
22335 }
22336 
22337 static void
22338 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
22339 {
22340  u8 core;
22341 
22342  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22343  if (rssi_type == NPHY_RSSI_SEL_NB) {
22344  if (core == PHY_CORE_0) {
22345  mod_radio_reg(pi,
22348  vcm_buf[2 *
22349  core] <<
22351  mod_radio_reg(pi,
22354  vcm_buf[2 * core +
22355  1] <<
22357  } else {
22358  mod_radio_reg(pi,
22361  vcm_buf[2 *
22362  core] <<
22364  mod_radio_reg(pi,
22367  vcm_buf[2 * core +
22368  1] <<
22370  }
22371  } else {
22372  if (core == PHY_CORE_0)
22373  mod_radio_reg(pi,
22376  vcm_buf[2 *
22377  core] <<
22379  else
22380  mod_radio_reg(pi,
22383  vcm_buf[2 *
22384  core] <<
22386  }
22387  }
22388 }
22389 
22390 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
22391 {
22392  u16 classif_state;
22393  u16 clip_state[2];
22394  u16 clip_off[] = { 0xffff, 0xffff };
22395  s32 target_code;
22396  u8 vcm, min_vcm;
22397  u8 vcm_final = 0;
22398  u8 result_idx;
22399  s32 poll_results[8][4] = {
22400  {0, 0, 0, 0},
22401  {0, 0, 0, 0},
22402  {0, 0, 0, 0},
22403  {0, 0, 0, 0},
22404  {0, 0, 0, 0},
22405  {0, 0, 0, 0},
22406  {0, 0, 0, 0},
22407  {0, 0, 0, 0}
22408  };
22409  s32 poll_result_core[4] = { 0, 0, 0, 0 };
22410  s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
22411  s32 fine_digital_offset[4];
22412  s32 poll_results_min[4] = { 0, 0, 0, 0 };
22413  s32 min_poll;
22414  u8 vcm_level_max;
22415  u8 core;
22416  u8 wb_cnt;
22417  u8 rssi_type;
22418  u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
22419  u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
22420  u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
22421  u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
22422  u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
22423  u16 NPHY_RfctrlCmd_save;
22424  u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
22425  u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
22426  u8 rxcore_state;
22427  u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
22428  u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
22429  u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
22430  u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
22431 
22432  NPHY_REV7_RfctrlOverride3_save =
22433  NPHY_REV7_RfctrlOverride4_save =
22434  NPHY_REV7_RfctrlOverride5_save =
22435  NPHY_REV7_RfctrlOverride6_save =
22436  NPHY_REV7_RfctrlMiscReg3_save =
22437  NPHY_REV7_RfctrlMiscReg4_save =
22438  NPHY_REV7_RfctrlMiscReg5_save =
22439  NPHY_REV7_RfctrlMiscReg6_save = 0;
22440 
22441  classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22442  wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22443  wlc_phy_clip_det_nphy(pi, 0, clip_state);
22444  wlc_phy_clip_det_nphy(pi, 1, clip_off);
22445 
22446  NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
22447  NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
22448  NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
22449  NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
22450  NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
22451  NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
22452  NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
22453  NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
22454  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22455  NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
22456  NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
22457  NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22458  NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22459  }
22460  NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22461  NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22462  NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
22463  NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22464  NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22465  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22466  NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
22467  NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
22468  NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22469  NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22470  }
22471  NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
22472  NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
22473 
22474  wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
22476  wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
22478 
22479  if (NREV_GE(pi->pubpi.phy_rev, 7))
22480  wlc_phy_rfctrl_override_1tomany_nphy(
22481  pi,
22483  0, 0, 0);
22484  else
22485  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
22486 
22487  if (NREV_GE(pi->pubpi.phy_rev, 7))
22488  wlc_phy_rfctrl_override_1tomany_nphy(
22489  pi,
22491  1, 0, 0);
22492  else
22493  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
22494 
22495  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22496  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
22497  1, 0, 0,
22499  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
22501  } else {
22502  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
22503  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
22504  }
22505 
22506  if (CHSPEC_IS5G(pi->radio_chanspec)) {
22507  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22508  wlc_phy_rfctrl_override_nphy_rev7(
22509  pi, (0x1 << 5),
22510  0, 0, 0,
22512  wlc_phy_rfctrl_override_nphy_rev7(
22513  pi, (0x1 << 4), 1, 0,
22514  0,
22516  } else {
22517  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
22518  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
22519  }
22520 
22521  } else {
22522  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22523  wlc_phy_rfctrl_override_nphy_rev7(
22524  pi, (0x1 << 4),
22525  0, 0, 0,
22527  wlc_phy_rfctrl_override_nphy_rev7(
22528  pi, (0x1 << 5), 1, 0,
22529  0,
22531  } else {
22532  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
22533  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
22534  }
22535  }
22536 
22537  rxcore_state = wlc_phy_rxcore_getstate_nphy(
22538  (struct brcms_phy_pub *) pi);
22539 
22540  vcm_level_max = 8;
22541 
22542  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22543 
22544  if ((rxcore_state & (1 << core)) == 0)
22545  continue;
22546 
22547  wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22548  core ==
22549  PHY_CORE_0 ?
22553  wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22554  core ==
22555  PHY_CORE_0 ?
22559 
22560  for (vcm = 0; vcm < vcm_level_max; vcm++) {
22561  if (NREV_GE(pi->pubpi.phy_rev, 7))
22562  mod_radio_reg(pi, (core == PHY_CORE_0) ?
22565  RADIO_2057_VCM_MASK, vcm);
22566  else
22568  ((core ==
22570  RADIO_2056_RX1),
22572  vcm << RADIO_2056_RSSI_VCM_SHIFT);
22573 
22575  &poll_results[vcm][0],
22577  }
22578 
22579  for (result_idx = 0; result_idx < 4; result_idx++) {
22580  if ((core == result_idx / 2) &&
22581  (result_idx % 2 == 0)) {
22582 
22583  min_d = NPHY_RSSICAL_MAXD;
22584  min_vcm = 0;
22585  min_poll =
22587  NPHY_RSSICAL_NPOLL + 1;
22588  for (vcm = 0; vcm < vcm_level_max; vcm++) {
22589  curr_d =
22590  poll_results[vcm][result_idx] *
22591  poll_results[vcm][result_idx] +
22592  poll_results[vcm][result_idx +
22593  1] *
22594  poll_results[vcm][result_idx +
22595  1];
22596  if (curr_d < min_d) {
22597  min_d = curr_d;
22598  min_vcm = vcm;
22599  }
22600  if (poll_results[vcm][result_idx] <
22601  min_poll)
22602  min_poll =
22603  poll_results[vcm]
22604  [result_idx];
22605  }
22606  vcm_final = min_vcm;
22607  poll_results_min[result_idx] = min_poll;
22608  }
22609  }
22610 
22611  if (NREV_GE(pi->pubpi.phy_rev, 7))
22612  mod_radio_reg(pi, (core == PHY_CORE_0) ?
22615  RADIO_2057_VCM_MASK, vcm_final);
22616  else
22618  ((core ==
22621  vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
22622 
22623  for (result_idx = 0; result_idx < 4; result_idx++) {
22624  if (core == result_idx / 2) {
22625  fine_digital_offset[result_idx] =
22628  poll_results[vcm_final][result_idx];
22629  if (fine_digital_offset[result_idx] < 0) {
22630  fine_digital_offset[result_idx] =
22631  abs(fine_digital_offset
22632  [result_idx]);
22633  fine_digital_offset[result_idx] +=
22634  (NPHY_RSSICAL_NPOLL / 2);
22635  fine_digital_offset[result_idx] /=
22637  fine_digital_offset[result_idx] =
22638  -fine_digital_offset[
22639  result_idx];
22640  } else {
22641  fine_digital_offset[result_idx] +=
22642  (NPHY_RSSICAL_NPOLL / 2);
22643  fine_digital_offset[result_idx] /=
22645  }
22646 
22647  if (poll_results_min[result_idx] ==
22648  NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
22649  fine_digital_offset[result_idx] =
22651  NPHY_RSSICAL_MAXREAD - 1);
22652 
22653  wlc_phy_scale_offset_rssi_nphy(
22654  pi, 0x0,
22655  (s8)
22656  fine_digital_offset
22657  [result_idx],
22658  (result_idx / 2 == 0) ?
22661  (result_idx % 2 == 0) ?
22664  }
22665  }
22666 
22667  }
22668 
22669  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22670 
22671  if ((rxcore_state & (1 << core)) == 0)
22672  continue;
22673 
22674  for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22675  if (wb_cnt == 0) {
22676  rssi_type = NPHY_RSSI_SEL_W1;
22677  target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22678  } else {
22679  rssi_type = NPHY_RSSI_SEL_W2;
22680  target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22681  }
22682 
22683  wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22684  core ==
22685  PHY_CORE_0 ?
22687  :
22689  NPHY_RAIL_I, rssi_type);
22690  wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22691  core ==
22692  PHY_CORE_0 ?
22694  :
22696  NPHY_RAIL_Q, rssi_type);
22697 
22698  wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22699  NPHY_RSSICAL_NPOLL);
22700 
22701  for (result_idx = 0; result_idx < 4; result_idx++) {
22702  if (core == result_idx / 2) {
22703  fine_digital_offset[result_idx] =
22704  (target_code *
22706  poll_result_core[result_idx];
22707  if (fine_digital_offset[result_idx] <
22708  0) {
22709  fine_digital_offset[result_idx]
22710  = abs(
22711  fine_digital_offset
22712  [result_idx]);
22713  fine_digital_offset[result_idx]
22714  += (NPHY_RSSICAL_NPOLL
22715  / 2);
22716  fine_digital_offset[result_idx]
22717  /= NPHY_RSSICAL_NPOLL;
22718  fine_digital_offset[result_idx]
22719  = -fine_digital_offset
22720  [result_idx];
22721  } else {
22722  fine_digital_offset[result_idx]
22723  += (NPHY_RSSICAL_NPOLL
22724  / 2);
22725  fine_digital_offset[result_idx]
22726  /= NPHY_RSSICAL_NPOLL;
22727  }
22728 
22729  wlc_phy_scale_offset_rssi_nphy(
22730  pi, 0x0,
22731  (s8)
22732  fine_digital_offset
22733  [core *
22734  2],
22735  (core == PHY_CORE_0) ?
22738  (result_idx % 2 == 0) ?
22739  NPHY_RAIL_I :
22740  NPHY_RAIL_Q,
22741  rssi_type);
22742  }
22743  }
22744 
22745  }
22746  }
22747 
22748  write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22749  write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22750 
22752 
22753  mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22754  mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22755  mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22756 
22757  mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22758  mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22759  mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22760 
22761  write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22762  write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22763  write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22764  write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22765  write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22766  write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22767  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22768  write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22769  write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22770  write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22771  write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22772  }
22773  write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22774  write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22775  write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22776  write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22777  write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22778  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22779  write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22780  write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22781  write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22782  write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22783  }
22784  write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22785  write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22786 
22787  if (CHSPEC_IS2G(pi->radio_chanspec)) {
22788  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22789  pi->rssical_cache.rssical_radio_regs_2G[0] =
22791  pi->rssical_cache.rssical_radio_regs_2G[1] =
22793  } else {
22794  pi->rssical_cache.rssical_radio_regs_2G[0] =
22795  read_radio_reg(pi,
22797  RADIO_2056_RX0);
22798  pi->rssical_cache.rssical_radio_regs_2G[1] =
22799  read_radio_reg(pi,
22801  RADIO_2056_RX1);
22802  }
22803 
22804  pi->rssical_cache.rssical_phyregs_2G[0] =
22805  read_phy_reg(pi, 0x1a6);
22806  pi->rssical_cache.rssical_phyregs_2G[1] =
22807  read_phy_reg(pi, 0x1ac);
22808  pi->rssical_cache.rssical_phyregs_2G[2] =
22809  read_phy_reg(pi, 0x1b2);
22810  pi->rssical_cache.rssical_phyregs_2G[3] =
22811  read_phy_reg(pi, 0x1b8);
22812  pi->rssical_cache.rssical_phyregs_2G[4] =
22813  read_phy_reg(pi, 0x1a4);
22814  pi->rssical_cache.rssical_phyregs_2G[5] =
22815  read_phy_reg(pi, 0x1aa);
22816  pi->rssical_cache.rssical_phyregs_2G[6] =
22817  read_phy_reg(pi, 0x1b0);
22818  pi->rssical_cache.rssical_phyregs_2G[7] =
22819  read_phy_reg(pi, 0x1b6);
22820  pi->rssical_cache.rssical_phyregs_2G[8] =
22821  read_phy_reg(pi, 0x1a5);
22822  pi->rssical_cache.rssical_phyregs_2G[9] =
22823  read_phy_reg(pi, 0x1ab);
22824  pi->rssical_cache.rssical_phyregs_2G[10] =
22825  read_phy_reg(pi, 0x1b1);
22826  pi->rssical_cache.rssical_phyregs_2G[11] =
22827  read_phy_reg(pi, 0x1b7);
22828 
22830  } else {
22831  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22832  pi->rssical_cache.rssical_radio_regs_5G[0] =
22834  pi->rssical_cache.rssical_radio_regs_5G[1] =
22836  } else {
22837  pi->rssical_cache.rssical_radio_regs_5G[0] =
22838  read_radio_reg(pi,
22840  RADIO_2056_RX0);
22841  pi->rssical_cache.rssical_radio_regs_5G[1] =
22842  read_radio_reg(pi,
22844  RADIO_2056_RX1);
22845  }
22846 
22847  pi->rssical_cache.rssical_phyregs_5G[0] =
22848  read_phy_reg(pi, 0x1a6);
22849  pi->rssical_cache.rssical_phyregs_5G[1] =
22850  read_phy_reg(pi, 0x1ac);
22851  pi->rssical_cache.rssical_phyregs_5G[2] =
22852  read_phy_reg(pi, 0x1b2);
22853  pi->rssical_cache.rssical_phyregs_5G[3] =
22854  read_phy_reg(pi, 0x1b8);
22855  pi->rssical_cache.rssical_phyregs_5G[4] =
22856  read_phy_reg(pi, 0x1a4);
22857  pi->rssical_cache.rssical_phyregs_5G[5] =
22858  read_phy_reg(pi, 0x1aa);
22859  pi->rssical_cache.rssical_phyregs_5G[6] =
22860  read_phy_reg(pi, 0x1b0);
22861  pi->rssical_cache.rssical_phyregs_5G[7] =
22862  read_phy_reg(pi, 0x1b6);
22863  pi->rssical_cache.rssical_phyregs_5G[8] =
22864  read_phy_reg(pi, 0x1a5);
22865  pi->rssical_cache.rssical_phyregs_5G[9] =
22866  read_phy_reg(pi, 0x1ab);
22867  pi->rssical_cache.rssical_phyregs_5G[10] =
22868  read_phy_reg(pi, 0x1b1);
22869  pi->rssical_cache.rssical_phyregs_5G[11] =
22870  read_phy_reg(pi, 0x1b7);
22871 
22873  }
22874 
22875  wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22876  wlc_phy_clip_det_nphy(pi, 1, clip_state);
22877 }
22878 
22879 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
22880 {
22881  s32 target_code;
22882  u16 classif_state;
22883  u16 clip_state[2];
22884  u16 rssi_ctrl_state[2], pd_state[2];
22885  u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
22886  u16 rfctrlintc_override_val;
22887  u16 clip_off[] = { 0xffff, 0xffff };
22888  u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
22889  u8 vcm, min_vcm, vcm_tmp[4];
22890  u8 vcm_final[4] = { 0, 0, 0, 0 };
22891  u8 result_idx, ctr;
22892  s32 poll_results[4][4] = {
22893  {0, 0, 0, 0},
22894  {0, 0, 0, 0},
22895  {0, 0, 0, 0},
22896  {0, 0, 0, 0}
22897  };
22898  s32 poll_miniq[4][2] = {
22899  {0, 0},
22900  {0, 0},
22901  {0, 0},
22902  {0, 0}
22903  };
22904  s32 min_d, curr_d;
22905  s32 fine_digital_offset[4];
22906  s32 poll_results_min[4] = { 0, 0, 0, 0 };
22907  s32 min_poll;
22908 
22909  switch (rssi_type) {
22910  case NPHY_RSSI_SEL_NB:
22911  target_code = NPHY_RSSICAL_NB_TARGET;
22912  break;
22913  case NPHY_RSSI_SEL_W1:
22914  target_code = NPHY_RSSICAL_W1_TARGET;
22915  break;
22916  case NPHY_RSSI_SEL_W2:
22917  target_code = NPHY_RSSICAL_W2_TARGET;
22918  break;
22919  default:
22920  return;
22921  break;
22922  }
22923 
22924  classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22925  wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22926  wlc_phy_clip_det_nphy(pi, 0, clip_state);
22927  wlc_phy_clip_det_nphy(pi, 1, clip_off);
22928 
22929  rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
22930  rfctrlintc_override_val =
22931  CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
22932 
22933  rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
22934  rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
22935  write_phy_reg(pi, 0x91, rfctrlintc_override_val);
22936  write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
22937 
22938  rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
22939  rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
22940  write_phy_reg(pi, 0x92, rfctrlintc_override_val);
22941  write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
22942 
22945  pd_state[0] =
22947  pd_state[1] =
22951  rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
22953  rssi_ctrl_state[0] =
22954  read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
22955  rssi_ctrl_state[1] =
22956  read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
22958 
22959  wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
22960  NPHY_RAIL_I, rssi_type);
22961  wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
22962  NPHY_RAIL_Q, rssi_type);
22963 
22964  for (vcm = 0; vcm < 4; vcm++) {
22965 
22966  vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
22967  if (rssi_type != NPHY_RSSI_SEL_W2)
22968  wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
22969 
22970  wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
22971  NPHY_RSSICAL_NPOLL);
22972 
22973  if ((rssi_type == NPHY_RSSI_SEL_W1)
22974  || (rssi_type == NPHY_RSSI_SEL_W2)) {
22975  for (ctr = 0; ctr < 2; ctr++)
22976  poll_miniq[vcm][ctr] =
22977  min(poll_results[vcm][ctr * 2 + 0],
22978  poll_results[vcm][ctr * 2 + 1]);
22979  }
22980  }
22981 
22982  for (result_idx = 0; result_idx < 4; result_idx++) {
22983  min_d = NPHY_RSSICAL_MAXD;
22984  min_vcm = 0;
22985  min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
22986  for (vcm = 0; vcm < 4; vcm++) {
22987  curr_d = abs(((rssi_type == NPHY_RSSI_SEL_NB) ?
22988  poll_results[vcm][result_idx] :
22989  poll_miniq[vcm][result_idx / 2]) -
22990  (target_code * NPHY_RSSICAL_NPOLL));
22991  if (curr_d < min_d) {
22992  min_d = curr_d;
22993  min_vcm = vcm;
22994  }
22995  if (poll_results[vcm][result_idx] < min_poll)
22996  min_poll = poll_results[vcm][result_idx];
22997  }
22998  vcm_final[result_idx] = min_vcm;
22999  poll_results_min[result_idx] = min_poll;
23000  }
23001 
23002  if (rssi_type != NPHY_RSSI_SEL_W2)
23003  wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
23004 
23005  for (result_idx = 0; result_idx < 4; result_idx++) {
23006  fine_digital_offset[result_idx] =
23007  (target_code * NPHY_RSSICAL_NPOLL) -
23008  poll_results[vcm_final[result_idx]][result_idx];
23009  if (fine_digital_offset[result_idx] < 0) {
23010  fine_digital_offset[result_idx] =
23011  abs(fine_digital_offset[result_idx]);
23012  fine_digital_offset[result_idx] +=
23013  (NPHY_RSSICAL_NPOLL / 2);
23014  fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23015  fine_digital_offset[result_idx] =
23016  -fine_digital_offset[result_idx];
23017  } else {
23018  fine_digital_offset[result_idx] +=
23019  (NPHY_RSSICAL_NPOLL / 2);
23020  fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23021  }
23022 
23023  if (poll_results_min[result_idx] ==
23024  NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
23025  fine_digital_offset[result_idx] =
23026  (target_code - NPHY_RSSICAL_MAXREAD - 1);
23027 
23028  wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
23029  (s8)
23030  fine_digital_offset[result_idx],
23031  (result_idx / 2 ==
23034  (result_idx % 2 ==
23035  0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
23036  rssi_type);
23037  }
23038 
23039  mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
23040  mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
23041  if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL)
23044  else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL)
23047  else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL)
23050  else
23053  if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL)
23056  else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL)
23059  else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL)
23062  else
23065 
23067 
23068  write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
23069  write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
23070  write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
23071  write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
23072 
23073  wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
23074  wlc_phy_clip_det_nphy(pi, 1, clip_state);
23075 
23076  wlc_phy_resetcca_nphy(pi);
23077 }
23078 
23080 {
23081  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23082  wlc_phy_rssi_cal_nphy_rev3(pi);
23083  } else {
23084  wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
23085  wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
23086  wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
23087  }
23088 }
23089 
23090 int
23092 {
23093  s16 rxpwr, rxpwr0, rxpwr1;
23094  s16 phyRx0_l, phyRx2_l;
23095 
23096  rxpwr = 0;
23097  rxpwr0 = rxh->PhyRxStatus_1 & PRXS1_nphy_PWR0_MASK;
23098  rxpwr1 = (rxh->PhyRxStatus_1 & PRXS1_nphy_PWR1_MASK) >> 8;
23099 
23100  if (rxpwr0 > 127)
23101  rxpwr0 -= 256;
23102  if (rxpwr1 > 127)
23103  rxpwr1 -= 256;
23104 
23105  phyRx0_l = rxh->PhyRxStatus_0 & 0x00ff;
23106  phyRx2_l = rxh->PhyRxStatus_2 & 0x00ff;
23107  if (phyRx2_l > 127)
23108  phyRx2_l -= 256;
23109 
23110  if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
23111  rxpwr0 = rxpwr1;
23112  rxpwr1 = phyRx2_l;
23113  }
23114 
23115  if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
23116  rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
23117  else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
23118  rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
23119  else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
23120  rxpwr = (rxpwr0 + rxpwr1) >> 1;
23121 
23122  return rxpwr;
23123 }
23124 
23125 static void
23126 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
23127  u16 num_samps)
23128 {
23129  u16 t;
23130  u32 *data_buf = NULL;
23131 
23132  data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
23133  if (data_buf == NULL)
23134  return;
23135 
23136  if (pi->phyhang_avoid)
23138 
23139  for (t = 0; t < num_samps; t++)
23140  data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
23141  (((unsigned int)tone_buf[t].q) & 0x3ff);
23142  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
23143  data_buf);
23144 
23145  kfree(data_buf);
23146 
23147  if (pi->phyhang_avoid)
23149 }
23150 
23151 static u16
23152 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23153  u8 dac_test_mode)
23154 {
23155  u8 phy_bw, is_phybw40;
23156  u16 num_samps, t, spur;
23157  s32 theta = 0, rot = 0;
23158  u32 tbl_len;
23159  struct cordic_iq *tone_buf = NULL;
23160 
23161  is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
23162  phy_bw = (is_phybw40 == 1) ? 40 : 20;
23163  tbl_len = (phy_bw << 3);
23164 
23165  if (dac_test_mode == 1) {
23166  spur = read_phy_reg(pi, 0x01);
23167  spur = (spur >> 15) & 1;
23168  phy_bw = (spur == 1) ? 82 : 80;
23169  phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
23170 
23171  tbl_len = (phy_bw << 1);
23172  }
23173 
23174  tone_buf = kmalloc(sizeof(struct cordic_iq) * tbl_len, GFP_ATOMIC);
23175  if (tone_buf == NULL)
23176  return 0;
23177 
23178  num_samps = (u16) tbl_len;
23179  rot = ((f_kHz * 36) / phy_bw) / 100;
23180  theta = 0;
23181 
23182  for (t = 0; t < num_samps; t++) {
23183 
23184  tone_buf[t] = cordic_calc_iq(theta);
23185 
23186  theta += rot;
23187 
23188  tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
23189  tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
23190  }
23191 
23192  wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
23193 
23194  kfree(tone_buf);
23195 
23196  return num_samps;
23197 }
23198 
23199 static void
23200 wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
23201  u16 wait, u8 iqmode, u8 dac_test_mode,
23202  bool modify_bbmult)
23203 {
23204  u16 bb_mult;
23205  u8 phy_bw, sample_cmd;
23206  u16 orig_RfseqCoreActv;
23207  u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
23208  lpf_bw_ctl_miscreg4;
23209 
23210  if (pi->phyhang_avoid)
23212 
23213  phy_bw = 20;
23214  if (CHSPEC_IS40(pi->radio_chanspec))
23215  phy_bw = 40;
23216 
23217  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23218 
23219  lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
23220  lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
23221  if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
23222  lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23223  (0x7 << 8);
23224  lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23225  (0x7 << 8);
23226  } else {
23227  wlc_phy_rfctrl_override_nphy_rev7(
23228  pi,
23229  (0x1 << 7),
23230  wlc_phy_read_lpf_bw_ctl_nphy
23231  (pi,
23232  0), 0, 0,
23234 
23236 
23237  lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23238  (0x7 << 8);
23239  lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23240  (0x7 << 8);
23241  }
23242  }
23243 
23244  if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
23245 
23247  &bb_mult);
23248  pi->nphy_bb_mult_save =
23249  BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
23250  }
23251 
23252  if (modify_bbmult) {
23253  bb_mult = (phy_bw == 20) ? 100 : 71;
23254  bb_mult = (bb_mult << 8) + bb_mult;
23256  &bb_mult);
23257  }
23258 
23259  if (pi->phyhang_avoid)
23261 
23262  write_phy_reg(pi, 0xc6, num_samps - 1);
23263 
23264  if (loops != 0xffff)
23265  write_phy_reg(pi, 0xc4, loops - 1);
23266  else
23267  write_phy_reg(pi, 0xc4, loops);
23268 
23269  write_phy_reg(pi, 0xc5, wait);
23270 
23271  orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
23273  if (iqmode) {
23274 
23275  and_phy_reg(pi, 0xc2, 0x7FFF);
23276 
23277  or_phy_reg(pi, 0xc2, 0x8000);
23278  } else {
23279 
23280  sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
23281  write_phy_reg(pi, 0xc3, sample_cmd);
23282  }
23283 
23284  SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
23285 
23286  write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
23287 }
23288 
23289 int
23290 wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23291  u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
23292 {
23293  u16 num_samps;
23294  u16 loops = 0xffff;
23295  u16 wait = 0;
23296 
23297  num_samps = wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val,
23298  dac_test_mode);
23299  if (num_samps == 0)
23300  return -EBADE;
23301 
23302  wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
23303  dac_test_mode, modify_bbmult);
23304 
23305  return 0;
23306 }
23307 
23309 {
23310  u16 playback_status;
23311  u16 bb_mult;
23312 
23313  if (pi->phyhang_avoid)
23315 
23316  playback_status = read_phy_reg(pi, 0xc7);
23317  if (playback_status & 0x1)
23318  or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
23319  else if (playback_status & 0x2)
23320  and_phy_reg(pi, 0xc2,
23322 
23323  and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
23324 
23325  if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
23326 
23327  bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
23329  &bb_mult);
23330 
23331  pi->nphy_bb_mult_save = 0;
23332  }
23333 
23334  if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
23336  wlc_phy_rfctrl_override_nphy_rev7(
23337  pi,
23338  (0x1 << 7),
23339  0, 0, 1,
23341  pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
23342  }
23343  }
23344 
23345  if (pi->phyhang_avoid)
23347 }
23348 
23349 static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
23350 {
23351  u32 *tx_pwrctrl_tbl = NULL;
23352  uint phyrev = pi->pubpi.phy_rev;
23353 
23354  if (PHY_IPA(pi)) {
23355  tx_pwrctrl_tbl =
23356  wlc_phy_get_ipa_gaintbl_nphy(pi);
23357  } else {
23358  if (CHSPEC_IS5G(pi->radio_chanspec)) {
23359  if (NREV_IS(phyrev, 3))
23360  tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev3;
23361  else if (NREV_IS(phyrev, 4))
23362  tx_pwrctrl_tbl =
23363  (pi->srom_fem5g.extpagain == 3) ?
23364  nphy_tpc_5GHz_txgain_HiPwrEPA :
23365  nphy_tpc_5GHz_txgain_rev4;
23366  else
23367  tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev5;
23368  } else {
23369  if (NREV_GE(phyrev, 7)) {
23370  if (pi->pubpi.radiorev == 3)
23371  tx_pwrctrl_tbl =
23372  nphy_tpc_txgain_epa_2057rev3;
23373  else if (pi->pubpi.radiorev == 5)
23374  tx_pwrctrl_tbl =
23375  nphy_tpc_txgain_epa_2057rev5;
23376  } else {
23377  if (NREV_GE(phyrev, 5) &&
23378  (pi->srom_fem2g.extpagain == 3))
23379  tx_pwrctrl_tbl =
23380  nphy_tpc_txgain_HiPwrEPA;
23381  else
23382  tx_pwrctrl_tbl =
23383  nphy_tpc_txgain_rev3;
23384  }
23385  }
23386  }
23387  return tx_pwrctrl_tbl;
23388 }
23389 
23391 {
23392  u16 base_idx[2], curr_gain[2];
23393  u8 core_no;
23394  struct nphy_txgains target_gain;
23395  u32 *tx_pwrctrl_tbl = NULL;
23396 
23397  if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
23398  if (pi->phyhang_avoid)
23400 
23401  wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23402  curr_gain);
23403 
23404  if (pi->phyhang_avoid)
23406 
23407  for (core_no = 0; core_no < 2; core_no++) {
23408  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23409  target_gain.ipa[core_no] =
23410  curr_gain[core_no] & 0x0007;
23411  target_gain.pad[core_no] =
23412  ((curr_gain[core_no] & 0x00F8) >> 3);
23413  target_gain.pga[core_no] =
23414  ((curr_gain[core_no] & 0x0F00) >> 8);
23415  target_gain.txgm[core_no] =
23416  ((curr_gain[core_no] & 0x7000) >> 12);
23417  target_gain.txlpf[core_no] =
23418  ((curr_gain[core_no] & 0x8000) >> 15);
23419  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23420  target_gain.ipa[core_no] =
23421  curr_gain[core_no] & 0x000F;
23422  target_gain.pad[core_no] =
23423  ((curr_gain[core_no] & 0x00F0) >> 4);
23424  target_gain.pga[core_no] =
23425  ((curr_gain[core_no] & 0x0F00) >> 8);
23426  target_gain.txgm[core_no] =
23427  ((curr_gain[core_no] & 0x7000) >> 12);
23428  } else {
23429  target_gain.ipa[core_no] =
23430  curr_gain[core_no] & 0x0003;
23431  target_gain.pad[core_no] =
23432  ((curr_gain[core_no] & 0x000C) >> 2);
23433  target_gain.pga[core_no] =
23434  ((curr_gain[core_no] & 0x0070) >> 4);
23435  target_gain.txgm[core_no] =
23436  ((curr_gain[core_no] & 0x0380) >> 7);
23437  }
23438  }
23439  } else {
23440  uint phyrev = pi->pubpi.phy_rev;
23441 
23442  base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
23443  base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
23444  for (core_no = 0; core_no < 2; core_no++) {
23445  if (NREV_GE(phyrev, 3)) {
23446  tx_pwrctrl_tbl =
23447  brcms_phy_get_tx_pwrctrl_tbl(pi);
23448  if (NREV_GE(phyrev, 7)) {
23449  target_gain.ipa[core_no] =
23450  (tx_pwrctrl_tbl
23451  [base_idx[core_no]]
23452  >> 16) & 0x7;
23453  target_gain.pad[core_no] =
23454  (tx_pwrctrl_tbl
23455  [base_idx[core_no]]
23456  >> 19) & 0x1f;
23457  target_gain.pga[core_no] =
23458  (tx_pwrctrl_tbl
23459  [base_idx[core_no]]
23460  >> 24) & 0xf;
23461  target_gain.txgm[core_no] =
23462  (tx_pwrctrl_tbl
23463  [base_idx[core_no]]
23464  >> 28) & 0x7;
23465  target_gain.txlpf[core_no] =
23466  (tx_pwrctrl_tbl
23467  [base_idx[core_no]]
23468  >> 31) & 0x1;
23469  } else {
23470  target_gain.ipa[core_no] =
23471  (tx_pwrctrl_tbl
23472  [base_idx[core_no]]
23473  >> 16) & 0xf;
23474  target_gain.pad[core_no] =
23475  (tx_pwrctrl_tbl
23476  [base_idx[core_no]]
23477  >> 20) & 0xf;
23478  target_gain.pga[core_no] =
23479  (tx_pwrctrl_tbl
23480  [base_idx[core_no]]
23481  >> 24) & 0xf;
23482  target_gain.txgm[core_no] =
23483  (tx_pwrctrl_tbl
23484  [base_idx[core_no]]
23485  >> 28) & 0x7;
23486  }
23487  } else {
23488  target_gain.ipa[core_no] =
23489  (nphy_tpc_txgain[base_idx[core_no]] >>
23490  16) & 0x3;
23491  target_gain.pad[core_no] =
23492  (nphy_tpc_txgain[base_idx[core_no]] >>
23493  18) & 0x3;
23494  target_gain.pga[core_no] =
23495  (nphy_tpc_txgain[base_idx[core_no]] >>
23496  20) & 0x7;
23497  target_gain.txgm[core_no] =
23498  (nphy_tpc_txgain[base_idx[core_no]] >>
23499  23) & 0x7;
23500  }
23501  }
23502  }
23503 
23504  return target_gain;
23505 }
23506 
23507 static void
23508 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
23509  struct nphy_txgains target_gain,
23510  struct nphy_iqcal_params *params)
23511 {
23512  u8 k;
23513  int idx;
23514  u16 gain_index;
23515  u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
23516 
23517  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23518  if (NREV_GE(pi->pubpi.phy_rev, 7))
23519  params->txlpf = target_gain.txlpf[core_no];
23520 
23521  params->txgm = target_gain.txgm[core_no];
23522  params->pga = target_gain.pga[core_no];
23523  params->pad = target_gain.pad[core_no];
23524  params->ipa = target_gain.ipa[core_no];
23525  if (NREV_GE(pi->pubpi.phy_rev, 7))
23526  params->cal_gain =
23527  ((params->txlpf << 15) | (params->txgm << 12) |
23528  (params->pga << 8) |
23529  (params->pad << 3) | (params->ipa));
23530  else
23531  params->cal_gain =
23532  ((params->txgm << 12) | (params->pga << 8) |
23533  (params->pad << 4) | (params->ipa));
23534 
23535  params->ncorr[0] = 0x79;
23536  params->ncorr[1] = 0x79;
23537  params->ncorr[2] = 0x79;
23538  params->ncorr[3] = 0x79;
23539  params->ncorr[4] = 0x79;
23540  } else {
23541 
23542  gain_index = ((target_gain.pad[core_no] << 0) |
23543  (target_gain.pga[core_no] << 4) |
23544  (target_gain.txgm[core_no] << 8));
23545 
23546  idx = -1;
23547  for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
23548  if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
23549  gain_index) {
23550  idx = k;
23551  break;
23552  }
23553  }
23554 
23555  params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
23556  params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
23557  params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
23558  params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
23559  (params->pad << 2));
23560  params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
23561  params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
23562  params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
23563  params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
23564  }
23565 }
23566 
23567 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
23568 {
23569  u16 jtag_core, core;
23570 
23571  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23572 
23573  for (core = 0; core <= 1; core++) {
23574 
23575  pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23576  READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23577  TX_SSI_MASTER);
23578 
23579  pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23580  READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23581  IQCAL_VCM_HG);
23582 
23583  pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23584  READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23585  IQCAL_IDAC);
23586 
23587  pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23588  READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23589  TSSI_VCM);
23590 
23591  pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
23592 
23593  pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23594  READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23595  TX_SSI_MUX);
23596 
23597  if (pi->pubpi.radiorev != 5)
23598  pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23599  READ_RADIO_REG3(pi, RADIO_2057, TX,
23600  core,
23601  TSSIA);
23602 
23603  pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23604  READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
23605 
23606  pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23607  READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23608  TSSI_MISC1);
23609 
23610  if (CHSPEC_IS5G(pi->radio_chanspec)) {
23611  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23612  TX_SSI_MASTER, 0x0a);
23613  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23614  IQCAL_VCM_HG, 0x43);
23615  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23616  IQCAL_IDAC, 0x55);
23617  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23618  TSSI_VCM, 0x00);
23619  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23620  TSSIG, 0x00);
23621  if (pi->use_int_tx_iqlo_cal_nphy) {
23622  WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23623  core, TX_SSI_MUX, 0x4);
23624  if (!(pi->
23625  internal_tx_iqlo_cal_tapoff_intpa_nphy))
23626  WRITE_RADIO_REG3(pi, RADIO_2057,
23627  TX, core,
23628  TSSIA, 0x31);
23629  else
23630  WRITE_RADIO_REG3(pi, RADIO_2057,
23631  TX, core,
23632  TSSIA, 0x21);
23633  }
23634  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23635  TSSI_MISC1, 0x00);
23636  } else {
23637  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23638  TX_SSI_MASTER, 0x06);
23639  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23640  IQCAL_VCM_HG, 0x43);
23641  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23642  IQCAL_IDAC, 0x55);
23643  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23644  TSSI_VCM, 0x00);
23645 
23646  if (pi->pubpi.radiorev != 5)
23647  WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23648  core, TSSIA, 0x00);
23649  if (pi->use_int_tx_iqlo_cal_nphy) {
23650  WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23651  core, TX_SSI_MUX,
23652  0x06);
23653  if (!(pi->
23654  internal_tx_iqlo_cal_tapoff_intpa_nphy))
23655  WRITE_RADIO_REG3(pi, RADIO_2057,
23656  TX, core,
23657  TSSIG, 0x31);
23658  else
23659  WRITE_RADIO_REG3(pi, RADIO_2057,
23660  TX, core,
23661  TSSIG, 0x21);
23662  }
23663  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23664  TSSI_MISC1, 0x00);
23665  }
23666  }
23667  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23668 
23669  for (core = 0; core <= 1; core++) {
23670  jtag_core =
23671  (core ==
23672  PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23673 
23674  pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23675  read_radio_reg(pi,
23677  jtag_core);
23678 
23679  pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23680  read_radio_reg(pi,
23682  jtag_core);
23683 
23684  pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23685  read_radio_reg(pi,
23687  jtag_core);
23688 
23689  pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23691  pi,
23693  jtag_core);
23694 
23695  pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
23696  read_radio_reg(pi,
23698  jtag_core);
23699 
23700  pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23701  read_radio_reg(pi,
23703  jtag_core);
23704 
23705  pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23706  read_radio_reg(pi,
23707  RADIO_2056_TX_TSSIA | jtag_core);
23708 
23709  pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23710  read_radio_reg(pi,
23711  RADIO_2056_TX_TSSIG | jtag_core);
23712 
23713  pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23714  read_radio_reg(pi,
23716  jtag_core);
23717 
23718  pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
23719  read_radio_reg(pi,
23721  jtag_core);
23722 
23723  pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
23724  read_radio_reg(pi,
23726  jtag_core);
23727 
23728  if (CHSPEC_IS5G(pi->radio_chanspec)) {
23729  write_radio_reg(pi,
23731  jtag_core, 0x0a);
23732  write_radio_reg(pi,
23734  jtag_core, 0x40);
23735  write_radio_reg(pi,
23737  jtag_core, 0x55);
23738  write_radio_reg(pi,
23740  jtag_core, 0x00);
23741  write_radio_reg(pi,
23743  jtag_core, 0x00);
23744 
23745  if (PHY_IPA(pi)) {
23747  pi,
23749  | jtag_core, 0x4);
23750  write_radio_reg(pi,
23752  jtag_core, 0x1);
23753  } else {
23755  pi,
23757  | jtag_core, 0x00);
23758  write_radio_reg(pi,
23760  jtag_core, 0x2f);
23761  }
23762  write_radio_reg(pi,
23763  RADIO_2056_TX_TSSIG | jtag_core,
23764  0x00);
23765  write_radio_reg(pi,
23767  jtag_core, 0x00);
23768 
23769  write_radio_reg(pi,
23771  jtag_core, 0x00);
23772  write_radio_reg(pi,
23774  jtag_core, 0x00);
23775  } else {
23776  write_radio_reg(pi,
23778  jtag_core, 0x06);
23779  write_radio_reg(pi,
23781  jtag_core, 0x40);
23782  write_radio_reg(pi,
23784  jtag_core, 0x55);
23785  write_radio_reg(pi,
23787  jtag_core, 0x00);
23788  write_radio_reg(pi,
23790  jtag_core, 0x00);
23791  write_radio_reg(pi,
23792  RADIO_2056_TX_TSSIA | jtag_core,
23793  0x00);
23794 
23795  if (PHY_IPA(pi)) {
23796 
23798  pi,
23800  | jtag_core, 0x06);
23801  if (NREV_LT(pi->pubpi.phy_rev, 5))
23803  pi,
23805  | jtag_core,
23806  0x11);
23807  else
23809  pi,
23811  | jtag_core,
23812  0x1);
23813  } else {
23815  pi,
23817  | jtag_core, 0x00);
23818  write_radio_reg(pi,
23820  jtag_core, 0x20);
23821  }
23822 
23823  write_radio_reg(pi,
23825  jtag_core, 0x00);
23826  write_radio_reg(pi,
23828  jtag_core, 0x00);
23829  write_radio_reg(pi,
23831  jtag_core, 0x00);
23832  }
23833  }
23834  } else {
23835 
23836  pi->tx_rx_cal_radio_saveregs[0] =
23839  pi->tx_rx_cal_radio_saveregs[1] =
23842 
23843  pi->tx_rx_cal_radio_saveregs[2] =
23846  pi->tx_rx_cal_radio_saveregs[3] =
23849 
23850  pi->tx_rx_cal_radio_saveregs[4] =
23852  pi->tx_rx_cal_radio_saveregs[5] =
23854 
23855  if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23856  0) {
23857 
23860  } else {
23861 
23864  }
23865 
23866  if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23867 
23870  } else {
23871 
23874  }
23875  }
23876 }
23877 
23878 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
23879 {
23880  u16 jtag_core, core;
23881 
23882  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23883  for (core = 0; core <= 1; core++) {
23884 
23885  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23886  TX_SSI_MASTER,
23887  pi->
23888  tx_rx_cal_radio_saveregs[(core * 11) +
23889  0]);
23890 
23891  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23892  pi->
23893  tx_rx_cal_radio_saveregs[(core * 11) +
23894  1]);
23895 
23896  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23897  pi->
23898  tx_rx_cal_radio_saveregs[(core * 11) +
23899  2]);
23900 
23901  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23902  pi->
23903  tx_rx_cal_radio_saveregs[(core * 11) +
23904  3]);
23905 
23906  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23907  pi->
23908  tx_rx_cal_radio_saveregs[(core * 11) +
23909  5]);
23910 
23911  if (pi->pubpi.radiorev != 5)
23912  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23913  TSSIA,
23915  [(core * 11) + 6]);
23916 
23917  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23918  pi->
23919  tx_rx_cal_radio_saveregs[(core * 11) +
23920  7]);
23921 
23922  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23923  pi->
23924  tx_rx_cal_radio_saveregs[(core * 11) +
23925  8]);
23926  }
23927  } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23928  for (core = 0; core <= 1; core++) {
23929  jtag_core = (core == PHY_CORE_0) ?
23930  RADIO_2056_TX0 : RADIO_2056_TX1;
23931 
23932  write_radio_reg(pi,
23933  RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
23934  pi->
23935  tx_rx_cal_radio_saveregs[(core * 11) +
23936  0]);
23937 
23938  write_radio_reg(pi,
23939  RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23940  pi->
23941  tx_rx_cal_radio_saveregs[(core * 11) +
23942  1]);
23943 
23944  write_radio_reg(pi,
23945  RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23946  pi->
23947  tx_rx_cal_radio_saveregs[(core * 11) +
23948  2]);
23949 
23950  write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23951  pi->
23952  tx_rx_cal_radio_saveregs[(core * 11) +
23953  3]);
23954 
23955  write_radio_reg(pi,
23956  RADIO_2056_TX_TX_AMP_DET | jtag_core,
23957  pi->
23958  tx_rx_cal_radio_saveregs[(core * 11) +
23959  4]);
23960 
23961  write_radio_reg(pi,
23962  RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23963  pi->
23964  tx_rx_cal_radio_saveregs[(core * 11) +
23965  5]);
23966 
23967  write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23968  pi->
23969  tx_rx_cal_radio_saveregs[(core * 11) +
23970  6]);
23971 
23972  write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23973  pi->
23974  tx_rx_cal_radio_saveregs[(core * 11) +
23975  7]);
23976 
23977  write_radio_reg(pi,
23978  RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23979  pi->
23980  tx_rx_cal_radio_saveregs[(core * 11) +
23981  8]);
23982 
23983  write_radio_reg(pi,
23984  RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23985  pi->
23986  tx_rx_cal_radio_saveregs[(core * 11) +
23987  9]);
23988 
23989  write_radio_reg(pi,
23990  RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23991  pi->
23992  tx_rx_cal_radio_saveregs[(core * 11) +
23993  10]);
23994  }
23995  } else {
23996 
23998  pi->tx_rx_cal_radio_saveregs[0]);
24000  pi->tx_rx_cal_radio_saveregs[1]);
24002  pi->tx_rx_cal_radio_saveregs[2]);
24004  pi->tx_rx_cal_radio_saveregs[3]);
24006  pi->tx_rx_cal_radio_saveregs[4]);
24008  pi->tx_rx_cal_radio_saveregs[5]);
24009  }
24010 }
24011 
24012 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
24013 {
24014  u16 val, mask;
24015 
24016  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24017  pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24018  pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24019 
24020  mask = ((0x3 << 8) | (0x3 << 10));
24021  val = (0x2 << 8);
24022  val |= (0x2 << 10);
24023  mod_phy_reg(pi, 0xa6, mask, val);
24024  mod_phy_reg(pi, 0xa7, mask, val);
24025 
24026  val = read_phy_reg(pi, 0x8f);
24027  pi->tx_rx_cal_phy_saveregs[2] = val;
24028  val |= ((0x1 << 9) | (0x1 << 10));
24029  write_phy_reg(pi, 0x8f, val);
24030 
24031  val = read_phy_reg(pi, 0xa5);
24032  pi->tx_rx_cal_phy_saveregs[3] = val;
24033  val |= ((0x1 << 9) | (0x1 << 10));
24034  write_phy_reg(pi, 0xa5, val);
24035 
24036  pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
24037  mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
24038 
24040  &val);
24041  pi->tx_rx_cal_phy_saveregs[5] = val;
24042  val = 0;
24044  &val);
24045 
24047  &val);
24048  pi->tx_rx_cal_phy_saveregs[6] = val;
24049  val = 0;
24051  &val);
24052 
24053  pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
24054  pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
24055 
24056  if (!(pi->use_int_tx_iqlo_cal_nphy))
24057  wlc_phy_rfctrlintc_override_nphy(
24058  pi,
24060  1,
24062  |
24064  else
24065  wlc_phy_rfctrlintc_override_nphy(
24066  pi,
24068  0,
24070  |
24072 
24073  wlc_phy_rfctrlintc_override_nphy(pi,
24076  wlc_phy_rfctrlintc_override_nphy(pi,
24079 
24080  pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
24081  pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
24082  mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
24083  0x29b, (0x1 << 0), (0) << 0);
24084 
24085  mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
24086  0x29b, (0x1 << 0), (0) << 0);
24087 
24088  if (NREV_IS(pi->pubpi.phy_rev, 7)
24089  || NREV_GE(pi->pubpi.phy_rev, 8))
24090  wlc_phy_rfctrl_override_nphy_rev7(
24091  pi, (0x1 << 7),
24092  wlc_phy_read_lpf_bw_ctl_nphy
24093  (pi,
24094  0), 0, 0,
24096 
24097  if (pi->use_int_tx_iqlo_cal_nphy
24099 
24100  if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24101 
24102  mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24103  1 << 4);
24104 
24105  if (CHSPEC_IS2G(pi->radio_chanspec)) {
24106  mod_radio_reg(
24107  pi,
24109  1, 0);
24110  mod_radio_reg(
24111  pi,
24113  1, 0);
24114  } else {
24115  mod_radio_reg(
24116  pi,
24118  1, 0);
24119  mod_radio_reg(
24120  pi,
24122  1, 0);
24123  }
24124  } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24125  wlc_phy_rfctrl_override_nphy_rev7(
24126  pi,
24127  (0x1 << 3), 0,
24128  0x3, 0,
24130  }
24131  }
24132  } else {
24133  pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24134  pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24135 
24136  mask = ((0x3 << 12) | (0x3 << 14));
24137  val = (0x2 << 12);
24138  val |= (0x2 << 14);
24139  mod_phy_reg(pi, 0xa6, mask, val);
24140  mod_phy_reg(pi, 0xa7, mask, val);
24141 
24142  val = read_phy_reg(pi, 0xa5);
24143  pi->tx_rx_cal_phy_saveregs[2] = val;
24144  val |= ((0x1 << 12) | (0x1 << 13));
24145  write_phy_reg(pi, 0xa5, val);
24146 
24148  &val);
24149  pi->tx_rx_cal_phy_saveregs[3] = val;
24150  val |= 0x2000;
24152  &val);
24153 
24155  &val);
24156  pi->tx_rx_cal_phy_saveregs[4] = val;
24157  val |= 0x2000;
24159  &val);
24160 
24161  pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
24162  pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
24163  val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
24164  write_phy_reg(pi, 0x91, val);
24165  write_phy_reg(pi, 0x92, val);
24166  }
24167 }
24168 
24169 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
24170 {
24171  u16 mask;
24172 
24173  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24174  write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
24175  write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
24176  write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
24177  write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
24178  write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
24179 
24181  &pi->tx_rx_cal_phy_saveregs[5]);
24183  &pi->tx_rx_cal_phy_saveregs[6]);
24184 
24185  write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
24186  write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
24187 
24188  write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
24189  write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
24190 
24191  if (NREV_IS(pi->pubpi.phy_rev, 7)
24192  || NREV_GE(pi->pubpi.phy_rev, 8))
24193  wlc_phy_rfctrl_override_nphy_rev7(
24194  pi, (0x1 << 7), 0, 0,
24195  1,
24197 
24198  wlc_phy_resetcca_nphy(pi);
24199 
24200  if (pi->use_int_tx_iqlo_cal_nphy
24202 
24203  if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24204  if (CHSPEC_IS2G(pi->radio_chanspec)) {
24205  mod_radio_reg(
24206  pi,
24208  1, 1);
24209  mod_radio_reg(
24210  pi,
24212  1, 1);
24213  } else {
24214  mod_radio_reg(
24215  pi,
24217  1, 1);
24218  mod_radio_reg(
24219  pi,
24221  1, 1);
24222  }
24223 
24224  mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24225  0);
24226  } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24227  wlc_phy_rfctrl_override_nphy_rev7(
24228  pi,
24229  (0x1 << 3), 0,
24230  0x3, 1,
24232  }
24233  }
24234  } else {
24235  mask = ((0x3 << 12) | (0x3 << 14));
24236  mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
24237  mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
24238  write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
24239 
24241  &pi->tx_rx_cal_phy_saveregs[3]);
24242 
24244  &pi->tx_rx_cal_phy_saveregs[4]);
24245 
24246  write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
24247  write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
24248  }
24249 }
24250 
24251 void
24252 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
24253 {
24254  u16 tssi_reg;
24255  s32 temp, pwrindex[2];
24256  s32 idle_tssi[2];
24257  s32 rssi_buf[4];
24258  s32 tssival[2];
24259  u8 tssi_type;
24260 
24261  tssi_reg = read_phy_reg(pi, 0x1e9);
24262 
24263  temp = (s32) (tssi_reg & 0x3f);
24264  idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
24265 
24266  temp = (s32) ((tssi_reg >> 8) & 0x3f);
24267  idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
24268 
24269  tssi_type =
24272 
24273  wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
24274 
24275  tssival[0] = rssi_buf[0] / ((s32) num_samps);
24276  tssival[1] = rssi_buf[2] / ((s32) num_samps);
24277 
24278  pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
24279  pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
24280 
24281  if (pwrindex[0] < 0)
24282  pwrindex[0] = 0;
24283  else if (pwrindex[0] > 63)
24284  pwrindex[0] = 63;
24285 
24286  if (pwrindex[1] < 0)
24287  pwrindex[1] = 0;
24288  else if (pwrindex[1] > 63)
24289  pwrindex[1] = 63;
24290 
24292  (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
24294  (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
24295 }
24296 
24297 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
24298 {
24299  int index;
24300  u32 bbmult_scale;
24301  u16 bbmult;
24302  u16 tblentry;
24303 
24304  struct nphy_txiqcal_ladder ladder_lo[] = {
24305  {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24306  {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
24307  {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
24308  };
24309 
24310  struct nphy_txiqcal_ladder ladder_iq[] = {
24311  {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24312  {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
24313  {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
24314  };
24315 
24316  bbmult = (core == PHY_CORE_0) ?
24317  ((pi->nphy_txcal_bbmult >> 8) & 0xff) :
24318  (pi->nphy_txcal_bbmult & 0xff);
24319 
24320  for (index = 0; index < 18; index++) {
24321  bbmult_scale = ladder_lo[index].percent * bbmult;
24322  bbmult_scale /= 100;
24323 
24324  tblentry =
24325  ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
24327  &tblentry);
24328 
24329  bbmult_scale = ladder_iq[index].percent * bbmult;
24330  bbmult_scale /= 100;
24331 
24332  tblentry =
24333  ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
24334  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
24335  16, &tblentry);
24336  }
24337 }
24338 
24339 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
24340 {
24341  u16 tmp;
24342  tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
24343 
24344  tmp = (tmp & (0x7f << 8)) >> 8;
24345  return (u8) tmp;
24346 }
24347 
24348 static void
24349 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
24350 {
24351  mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
24352 
24353  if (NREV_GT(pi->pubpi.phy_rev, 1))
24354  mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
24355 }
24356 
24357 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
24358 {
24359  u16 m0m1;
24360 
24361  wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
24362 
24363  return m0m1;
24364 }
24365 
24366 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
24367 {
24368  u16 m0m1 = (u16) ((m0 << 8) | m1);
24369 
24370  wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
24371  wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
24372 }
24373 
24374 static void
24375 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
24376  struct nphy_papd_restore_state *state, u8 core)
24377 {
24378  s32 tone_freq;
24379  u8 off_core;
24380  u16 mixgain = 0;
24381 
24382  off_core = core ^ 0x1;
24383  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24384 
24385  if (NREV_IS(pi->pubpi.phy_rev, 7)
24386  || NREV_GE(pi->pubpi.phy_rev, 8))
24387  wlc_phy_rfctrl_override_nphy_rev7(
24388  pi, (0x1 << 7),
24389  wlc_phy_read_lpf_bw_ctl_nphy
24390  (pi,
24391  0), 0, 0,
24393 
24394  if (CHSPEC_IS2G(pi->radio_chanspec)) {
24395  if (pi->pubpi.radiorev == 5)
24396  mixgain = (core == 0) ? 0x20 : 0x00;
24397  else if ((pi->pubpi.radiorev == 7)
24398  || (pi->pubpi.radiorev == 8))
24399  mixgain = 0x00;
24400  else if ((pi->pubpi.radiorev <= 4)
24401  || (pi->pubpi.radiorev == 6))
24402  mixgain = 0x00;
24403  } else {
24404  if ((pi->pubpi.radiorev == 4) ||
24405  (pi->pubpi.radiorev == 6))
24406  mixgain = 0x50;
24407  else if ((pi->pubpi.radiorev == 3)
24408  || (pi->pubpi.radiorev == 7)
24409  || (pi->pubpi.radiorev == 8))
24410  mixgain = 0x0;
24411  }
24412 
24413  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
24414  mixgain, (1 << core), 0,
24416 
24417  wlc_phy_rfctrl_override_1tomany_nphy(
24418  pi,
24420  1, (1 << core), 0);
24421  wlc_phy_rfctrl_override_1tomany_nphy(
24422  pi,
24424  0, (1 << off_core), 0);
24425 
24426  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24427  0, 0x3, 0,
24429  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
24430  (1 << core), 0,
24432  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
24433  (1 << core), 0,
24435  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
24436  (1 << core), 0,
24438  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
24439  (1 << core), 0,
24441  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
24442  (1 << core), 0,
24444  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
24445  (1 << core), 0,
24447  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
24448  (1 << core), 0,
24450 
24451  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
24452  0, (1 << core), 0,
24454  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
24455  (1 << core), 0,
24457 
24458  state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24459  0xa6 : 0xa7);
24460  state->afeoverride[core] =
24461  read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24462  state->afectrl[off_core] =
24463  read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
24464  state->afeoverride[off_core] =
24465  read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
24466 
24467  mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24468  (0x1 << 2), 0);
24469  mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24470  0xa5), (0x1 << 2), (0x1 << 2));
24471 
24472  mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
24473  (0x1 << 2), (0x1 << 2));
24474  mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
24475  0x8f), (0x1 << 2), (0x1 << 2));
24476 
24477  if (CHSPEC_IS2G(pi->radio_chanspec)) {
24478  state->pwrup[core] =
24479  READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24480  TXRXCOUPLE_2G_PWRUP);
24481  state->atten[core] =
24482  READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24483  TXRXCOUPLE_2G_ATTEN);
24484  state->pwrup[off_core] =
24485  READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24486  TXRXCOUPLE_2G_PWRUP);
24487  state->atten[off_core] =
24488  READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24489  TXRXCOUPLE_2G_ATTEN);
24490 
24491  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24492  TXRXCOUPLE_2G_PWRUP, 0xc);
24493 
24494  if ((pi->pubpi.radiorev == 3) ||
24495  (pi->pubpi.radiorev == 4) ||
24496  (pi->pubpi.radiorev == 6))
24497  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24498  TXRXCOUPLE_2G_ATTEN, 0xf0);
24499  else if (pi->pubpi.radiorev == 5)
24500  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24501  TXRXCOUPLE_2G_ATTEN,
24502  (core == 0) ? 0xf7 : 0xf2);
24503  else if ((pi->pubpi.radiorev == 7)
24504  || (pi->pubpi.radiorev == 8))
24505  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24506  TXRXCOUPLE_2G_ATTEN, 0xf0);
24507 
24508  WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24509  TXRXCOUPLE_2G_PWRUP, 0x0);
24510  WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24511  TXRXCOUPLE_2G_ATTEN, 0xff);
24512  } else {
24513  state->pwrup[core] =
24514  READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24515  TXRXCOUPLE_5G_PWRUP);
24516  state->atten[core] =
24517  READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24518  TXRXCOUPLE_5G_ATTEN);
24519  state->pwrup[off_core] =
24520  READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24521  TXRXCOUPLE_5G_PWRUP);
24522  state->atten[off_core] =
24523  READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24524  TXRXCOUPLE_5G_ATTEN);
24525 
24526  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24527  TXRXCOUPLE_5G_PWRUP, 0xc);
24528 
24529  if ((pi->pubpi.radiorev == 7)
24530  || (pi->pubpi.radiorev == 8))
24531  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24532  TXRXCOUPLE_5G_ATTEN, 0xf4);
24533 
24534  else
24535  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24536  TXRXCOUPLE_5G_ATTEN, 0xf0);
24537 
24538  WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24539  TXRXCOUPLE_5G_PWRUP, 0x0);
24540  WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24541  TXRXCOUPLE_5G_ATTEN, 0xff);
24542  }
24543 
24544  tone_freq = 4000;
24545 
24546  wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24547 
24548  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24549  0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
24550 
24551  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24552  0x2a4, (0x1 << 13), (1) << 13);
24553 
24554  mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24555  0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
24556 
24557  mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
24558  0x2a4, (0x1 << 13), (0) << 13);
24559 
24560  } else {
24561 
24562  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
24563 
24564  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
24565 
24566  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
24567 
24568  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
24569  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
24570 
24571  state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24572  0xa6 : 0xa7);
24573  state->afeoverride[core] =
24574  read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24575 
24576  mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24577  (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
24578  mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24579  0xa5),
24580  (0x1 << 0) |
24581  (0x1 << 1) |
24582  (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
24583 
24584  state->vga_master[core] =
24585  READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
24586  WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
24587  if (CHSPEC_IS2G(pi->radio_chanspec)) {
24588  state->fbmix[core] =
24589  READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24590  TXFBMIX_G);
24591  state->intpa_master[core] =
24592  READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24593  INTPAG_MASTER);
24594 
24595  WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
24596  0x03);
24597  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24598  INTPAG_MASTER, 0x04);
24599  } else {
24600  state->fbmix[core] =
24601  READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24602  TXFBMIX_A);
24603  state->intpa_master[core] =
24604  READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24605  INTPAA_MASTER);
24606 
24607  WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
24608  0x03);
24609  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24610  INTPAA_MASTER, 0x04);
24611 
24612  }
24613 
24614  tone_freq = 4000;
24615 
24616  wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24617 
24618  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24619  0x29b, (0x1 << 0), (1) << 0);
24620 
24621  mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24622  0x29b, (0x1 << 0), (0) << 0);
24623 
24624  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
24625  }
24626 }
24627 
24628 static void
24629 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
24630  struct nphy_papd_restore_state *state)
24631 {
24632  u8 core;
24633 
24635 
24636  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24637 
24638  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24639 
24640  if (CHSPEC_IS2G(pi->radio_chanspec)) {
24641  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24642  TXRXCOUPLE_2G_PWRUP, 0);
24643  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24644  TXRXCOUPLE_2G_ATTEN,
24645  state->atten[core]);
24646  } else {
24647  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24648  TXRXCOUPLE_5G_PWRUP, 0);
24649  WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24650  TXRXCOUPLE_5G_ATTEN,
24651  state->atten[core]);
24652  }
24653  }
24654 
24655  if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
24656  wlc_phy_rfctrl_override_nphy_rev7(
24657  pi, (0x1 << 2),
24658  1, 0x3, 0,
24660  else
24661  wlc_phy_rfctrl_override_nphy_rev7(
24662  pi, (0x1 << 2),
24663  0, 0x3, 1,
24665 
24666  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
24667  0, 0x3, 1,
24669  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24671  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
24673  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
24675  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
24677  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
24679  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
24681  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
24683  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24685  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
24687  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
24689  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
24691  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
24693  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
24695  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
24697  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
24699 
24700  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24701 
24702  write_phy_reg(pi, (core == PHY_CORE_0) ?
24703  0xa6 : 0xa7, state->afectrl[core]);
24704  write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24705  0xa5, state->afeoverride[core]);
24706  }
24707 
24708  wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24709  (state->mm & 0xff));
24710 
24711  if (NREV_IS(pi->pubpi.phy_rev, 7)
24712  || NREV_GE(pi->pubpi.phy_rev, 8))
24713  wlc_phy_rfctrl_override_nphy_rev7(
24714  pi, (0x1 << 7), 0, 0,
24715  1,
24717  } else {
24718  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
24719  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
24720  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
24721 
24722  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
24723  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
24724 
24725  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24726 
24727  WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
24728  state->vga_master[core]);
24729  if (CHSPEC_IS2G(pi->radio_chanspec)) {
24730  WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24731  TXFBMIX_G, state->fbmix[core]);
24732  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24733  INTPAG_MASTER,
24734  state->intpa_master[core]);
24735  } else {
24736  WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24737  TXFBMIX_A, state->fbmix[core]);
24738  WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24739  INTPAA_MASTER,
24740  state->intpa_master[core]);
24741  }
24742 
24743  write_phy_reg(pi, (core == PHY_CORE_0) ?
24744  0xa6 : 0xa7, state->afectrl[core]);
24745  write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24746  0xa5, state->afeoverride[core]);
24747  }
24748 
24749  wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24750  (state->mm & 0xff));
24751 
24752  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
24753  }
24754 }
24755 
24756 static void
24757 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
24758  u32 end)
24759 {
24760  u32 *buf, *src, *dst, sz;
24761 
24762  sz = end - start + 1;
24763 
24764  buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
24765  if (NULL == buf)
24766  return;
24767 
24768  src = buf;
24769  dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
24770 
24772  (core ==
24775  NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
24776 
24777  do {
24778  u32 phy_a1, phy_a2;
24779  s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
24780 
24781  phy_a1 = end - min(end, (winsz >> 1));
24782  phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1,
24783  end + (winsz >> 1));
24784  phy_a3 = phy_a2 - phy_a1 + 1;
24785  phy_a6 = 0;
24786  phy_a7 = 0;
24787 
24788  do {
24789  wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
24790  &phy_a5);
24791  phy_a6 += phy_a4;
24792  phy_a7 += phy_a5;
24793  } while (phy_a2-- != phy_a1);
24794 
24795  phy_a6 /= phy_a3;
24796  phy_a7 /= phy_a3;
24797  dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
24798  } while (end-- != start);
24799 
24801  (core ==
24803  NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
24804 
24805  kfree(buf);
24806 }
24807 
24808 static void
24809 wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
24810  enum phy_cal_mode cal_mode, u8 core)
24811 {
24812  u16 phy_a1, phy_a2, phy_a3;
24813  u16 phy_a4, phy_a5;
24814  bool phy_a6;
24815  u8 phy_a7, m[2];
24816  u32 phy_a8 = 0;
24817  struct nphy_txgains phy_a9;
24818 
24819  if (NREV_LT(pi->pubpi.phy_rev, 3))
24820  return;
24821 
24822  phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
24823 
24824  phy_a6 = ((cal_mode == CAL_GCTRL)
24825  || (cal_mode == CAL_SOFT)) ? true : false;
24826 
24827  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24828 
24829  phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
24830 
24831  if (CHSPEC_IS2G(pi->radio_chanspec))
24832  phy_a5 = ((phy_a9.txlpf[core] << 15) |
24833  (phy_a9.txgm[core] << 12) |
24834  (phy_a9.pga[core] << 8) |
24835  (txgains->gains.pad[core] << 3) |
24836  (phy_a9.ipa[core]));
24837  else
24838  phy_a5 = ((phy_a9.txlpf[core] << 15) |
24839  (phy_a9.txgm[core] << 12) |
24840  (txgains->gains.pga[core] << 8) |
24841  (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
24842 
24843  wlc_phy_rfctrl_override_1tomany_nphy(
24844  pi,
24846  phy_a5, (1 << core), 0);
24847 
24848  if (CHSPEC_IS2G(pi->radio_chanspec)) {
24849  if ((pi->pubpi.radiorev <= 4)
24850  || (pi->pubpi.radiorev == 6))
24851  m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24852  60 : 79;
24853  else
24854  m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24855  45 : 64;
24856  } else {
24857  m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
24858  }
24859 
24860  m[phy_a7] = 0;
24861  wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
24862 
24863  phy_a2 = 63;
24864 
24865  if (CHSPEC_IS2G(pi->radio_chanspec)) {
24866  if ((pi->pubpi.radiorev == 4)
24867  || (pi->pubpi.radiorev == 6)) {
24868  phy_a1 = 30;
24869  phy_a3 = 30;
24870  } else {
24871  phy_a1 = 25;
24872  phy_a3 = 25;
24873  }
24874  } else {
24875  if ((pi->pubpi.radiorev == 5)
24876  || (pi->pubpi.radiorev == 7)
24877  || (pi->pubpi.radiorev == 8)) {
24878  phy_a1 = 25;
24879  phy_a3 = 25;
24880  } else {
24881  phy_a1 = 35;
24882  phy_a3 = 35;
24883  }
24884  }
24885 
24886  if (cal_mode == CAL_GCTRL) {
24887  if ((pi->pubpi.radiorev == 5)
24888  && (CHSPEC_IS2G(pi->radio_chanspec)))
24889  phy_a1 = 55;
24890  else if (((pi->pubpi.radiorev == 7) &&
24891  (CHSPEC_IS2G(pi->radio_chanspec))) ||
24892  ((pi->pubpi.radiorev == 8) &&
24893  (CHSPEC_IS2G(pi->radio_chanspec))))
24894  phy_a1 = 60;
24895  else
24896  phy_a1 = 63;
24897 
24898  } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
24899 
24900  phy_a1 = 35;
24901  phy_a3 = 35;
24902  }
24903 
24904  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24905  0x29b, (0x1 << 0), (1) << 0);
24906 
24907  mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
24908  0x29b, (0x1 << 0), (0) << 0);
24909 
24910  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24911  0x2a4, (0x1 << 13), (1) << 13);
24912 
24913  mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
24914  0x2a4, (0x1 << 13), (0) << 13);
24915 
24916  write_phy_reg(pi, 0x2a1, 0x80);
24917  write_phy_reg(pi, 0x2a2, 0x100);
24918 
24919  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24920  0x2a4, (0x7 << 4), (11) << 4);
24921 
24922  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24923  0x2a4, (0x7 << 8), (11) << 8);
24924 
24925  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24926  0x2a4, (0x7 << 0), (0x3) << 0);
24927 
24928  write_phy_reg(pi, 0x2e5, 0x20);
24929 
24930  mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
24931 
24932  mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
24933 
24934  mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
24935 
24936  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24937  1, ((core == 0) ? 1 : 2), 0,
24939  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24940  0, ((core == 0) ? 2 : 1), 0,
24942 
24943  write_phy_reg(pi, 0x2be, 1);
24944  SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
24945 
24946  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24947  0, 0x3, 0,
24949 
24951  (core ==
24953  : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
24954  32, &phy_a8);
24955 
24956  if (cal_mode != CAL_GCTRL) {
24957  if (CHSPEC_IS5G(pi->radio_chanspec))
24958  wlc_phy_a1_nphy(pi, core, 5, 0, 35);
24959  }
24960 
24961  wlc_phy_rfctrl_override_1tomany_nphy(
24962  pi,
24964  phy_a5, (1 << core), 1);
24965 
24966  } else {
24967 
24968  if (txgains) {
24969  if (txgains->useindex) {
24970  phy_a4 = 15 - ((txgains->index) >> 3);
24971  if (CHSPEC_IS2G(pi->radio_chanspec)) {
24972  if (NREV_GE(pi->pubpi.phy_rev, 6) &&
24973  pi->sh->chip == BCMA_CHIP_ID_BCM47162) {
24974  phy_a5 = 0x10f7 | (phy_a4 << 8);
24975  } else if (NREV_GE(pi->pubpi.phy_rev, 6)) {
24976  phy_a5 = 0x00f7 | (phy_a4 << 8);
24977  } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
24978  phy_a5 = 0x10f7 | (phy_a4 << 8);
24979  } else {
24980  phy_a5 = 0x50f7 | (phy_a4 << 8);
24981  }
24982  } else {
24983  phy_a5 = 0x70f7 | (phy_a4 << 8);
24984  }
24985  wlc_phy_rfctrl_override_nphy(pi,
24986  (0x1 << 13),
24987  phy_a5,
24988  (1 << core), 0);
24989  } else {
24990  wlc_phy_rfctrl_override_nphy(pi,
24991  (0x1 << 13),
24992  0x5bf7,
24993  (1 << core), 0);
24994  }
24995  }
24996 
24997  if (CHSPEC_IS2G(pi->radio_chanspec))
24998  m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 45 : 64;
24999  else
25000  m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
25001 
25002  m[phy_a7] = 0;
25003  wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
25004 
25005  phy_a2 = 63;
25006 
25007  if (cal_mode == CAL_FULL) {
25008  phy_a1 = 25;
25009  phy_a3 = 25;
25010  } else if (cal_mode == CAL_SOFT) {
25011  phy_a1 = 25;
25012  phy_a3 = 25;
25013  } else if (cal_mode == CAL_GCTRL) {
25014  phy_a1 = 63;
25015  phy_a3 = 25;
25016  } else {
25017 
25018  phy_a1 = 25;
25019  phy_a3 = 25;
25020  }
25021 
25022  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25023  0x29b, (0x1 << 0), (1) << 0);
25024 
25025  mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25026  0x29b, (0x1 << 0), (0) << 0);
25027 
25028  if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25029  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25030  0x2a4, (0x1 << 13), (1) << 13);
25031 
25032  mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25033  0x2a4, (0x1 << 13), (0) << 13);
25034 
25035  write_phy_reg(pi, 0x2a1, 0x20);
25036  write_phy_reg(pi, 0x2a2, 0x60);
25037 
25038  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25039  0x2a4, (0xf << 4), (9) << 4);
25040 
25041  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25042  0x2a4, (0xf << 8), (9) << 8);
25043 
25044  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25045  0x2a4, (0xf << 0), (0x2) << 0);
25046 
25047  write_phy_reg(pi, 0x2e5, 0x20);
25048  } else {
25049  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25050  0x2a4, (0x1 << 11), (1) << 11);
25051 
25052  mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25053  0x2a4, (0x1 << 11), (0) << 11);
25054 
25055  write_phy_reg(pi, 0x2a1, 0x80);
25056  write_phy_reg(pi, 0x2a2, 0x600);
25057 
25058  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25059  0x2a4, (0x7 << 4), (0) << 4);
25060 
25061  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25062  0x2a4, (0x7 << 8), (0) << 8);
25063 
25064  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25065  0x2a4, (0x7 << 0), (0x3) << 0);
25066 
25067  mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
25068 
25069  }
25070 
25071  mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25072 
25073  mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25074 
25075  mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25076 
25077  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
25078 
25079  write_phy_reg(pi, 0x2be, 1);
25080  SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25081 
25082  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
25083 
25085  (core ==
25087  : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25088  32, &phy_a8);
25089 
25090  if (cal_mode != CAL_GCTRL)
25091  wlc_phy_a1_nphy(pi, core, 5, 0, 40);
25092  }
25093 }
25094 
25095 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
25096 {
25097  int phy_a1;
25098  int phy_a2;
25099  bool phy_a3;
25100  struct nphy_ipa_txcalgains phy_a4;
25101  bool phy_a5 = false;
25102  bool phy_a6 = true;
25103  s32 phy_a7, phy_a8;
25104  u32 phy_a9;
25105  int phy_a10;
25106  bool phy_a11 = false;
25107  int phy_a12;
25108  u8 phy_a13 = 0;
25109  u8 phy_a14;
25110  u8 *phy_a15 = NULL;
25111 
25112  phy_a4.useindex = true;
25113  phy_a12 = start_gain;
25114 
25115  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25116 
25117  phy_a2 = 20;
25118  phy_a1 = 1;
25119 
25120  if (CHSPEC_IS2G(pi->radio_chanspec)) {
25121  if (pi->pubpi.radiorev == 5) {
25122 
25123  phy_a15 = pad_gain_codes_used_2057rev5;
25124  phy_a13 =
25125  ARRAY_SIZE(pad_gain_codes_used_2057rev5) - 1;
25126 
25127  } else if ((pi->pubpi.radiorev == 7)
25128  || (pi->pubpi.radiorev == 8)) {
25129 
25130  phy_a15 = pad_gain_codes_used_2057rev7;
25131  phy_a13 =
25132  ARRAY_SIZE(pad_gain_codes_used_2057rev7) - 1;
25133 
25134  } else {
25135 
25136  phy_a15 = pad_all_gain_codes_2057;
25137  phy_a13 = ARRAY_SIZE(pad_all_gain_codes_2057) -
25138  1;
25139  }
25140 
25141  } else {
25142 
25143  phy_a15 = pga_all_gain_codes_2057;
25144  phy_a13 = ARRAY_SIZE(pga_all_gain_codes_2057) - 1;
25145  }
25146 
25147  phy_a14 = 0;
25148 
25149  for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25150  if (CHSPEC_IS2G(pi->radio_chanspec))
25151  phy_a4.gains.pad[core] =
25152  (u16) phy_a15[phy_a12];
25153  else
25154  phy_a4.gains.pga[core] =
25155  (u16) phy_a15[phy_a12];
25156 
25157  wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25158 
25160  (core ==
25161  PHY_CORE_0 ?
25164  63, 32, &phy_a9);
25165 
25166  wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25167 
25168  phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25169  (phy_a8 == 4095) || (phy_a8 == -4096));
25170 
25171  if (!phy_a6 && (phy_a3 != phy_a5)) {
25172  if (!phy_a3)
25173  phy_a12 -= (u8) phy_a1;
25174 
25175  phy_a11 = true;
25176  break;
25177  }
25178 
25179  if (phy_a3)
25180  phy_a12 += (u8) phy_a1;
25181  else
25182  phy_a12 -= (u8) phy_a1;
25183 
25184  if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
25185  if (phy_a12 < phy_a14)
25186  phy_a12 = phy_a14;
25187  else
25188  phy_a12 = phy_a13;
25189 
25190  phy_a11 = true;
25191  break;
25192  }
25193 
25194  phy_a6 = false;
25195  phy_a5 = phy_a3;
25196  }
25197 
25198  } else {
25199  phy_a2 = 10;
25200  phy_a1 = 8;
25201  for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25202  phy_a4.index = (u8) phy_a12;
25203  wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25204 
25206  (core ==
25207  PHY_CORE_0 ?
25210  63, 32, &phy_a9);
25211 
25212  wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25213 
25214  phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25215  (phy_a8 == 4095) || (phy_a8 == -4096));
25216 
25217  if (!phy_a6 && (phy_a3 != phy_a5)) {
25218  if (!phy_a3)
25219  phy_a12 -= (u8) phy_a1;
25220 
25221  phy_a11 = true;
25222  break;
25223  }
25224 
25225  if (phy_a3)
25226  phy_a12 += (u8) phy_a1;
25227  else
25228  phy_a12 -= (u8) phy_a1;
25229 
25230  if ((phy_a12 < 0) || (phy_a12 > 127)) {
25231  if (phy_a12 < 0)
25232  phy_a12 = 0;
25233  else
25234  phy_a12 = 127;
25235 
25236  phy_a11 = true;
25237  break;
25238  }
25239 
25240  phy_a6 = false;
25241  phy_a5 = phy_a3;
25242  }
25243 
25244  }
25245 
25246  if (NREV_GE(pi->pubpi.phy_rev, 7))
25247  return (u8) phy_a15[phy_a12];
25248  else
25249  return (u8) phy_a12;
25250 
25251 }
25252 
25253 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
25254 {
25255  struct nphy_ipa_txcalgains phy_b1[2];
25256  struct nphy_papd_restore_state phy_b2;
25257  bool phy_b3;
25258  u8 phy_b4;
25259  u8 phy_b5;
25260  s16 phy_b6, phy_b7, phy_b8;
25261  u16 phy_b9;
25262  s16 phy_b10, phy_b11, phy_b12;
25263 
25264  phy_b11 = 0;
25265  phy_b12 = 0;
25266  phy_b7 = 0;
25267  phy_b8 = 0;
25268  phy_b6 = 0;
25269 
25270  if (pi->nphy_papd_skip == 1)
25271  return;
25272 
25273  phy_b3 = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
25274  MCTL_EN_MAC));
25275  if (!phy_b3)
25276  wlapi_suspend_mac_and_wait(pi->sh->physhim);
25277 
25279 
25280  pi->nphy_force_papd_cal = false;
25281 
25282  for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
25283  pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
25284  wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
25285 
25286  pi->nphy_papd_last_cal = pi->sh->now;
25288 
25289  phy_b4 = pi->nphy_txpwrctrl;
25291 
25293  nphy_papd_scaltbl);
25295  nphy_papd_scaltbl);
25296 
25297  phy_b9 = read_phy_reg(pi, 0x01);
25298  mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25299 
25300  for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25301  s32 i, val = 0;
25302  for (i = 0; i < 64; i++)
25304  ((phy_b5 ==
25305  PHY_CORE_0) ?
25308  i, 32, &val);
25309  }
25310 
25311  wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
25312 
25313  phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
25314  for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25315  wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
25316 
25317  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25318  if (CHSPEC_IS2G(pi->radio_chanspec)) {
25319  if ((pi->pubpi.radiorev == 3)
25320  || (pi->pubpi.radiorev == 4)
25321  || (pi->pubpi.radiorev == 6)) {
25322  pi->nphy_papd_cal_gain_index[phy_b5] =
25323  23;
25324  } else if (pi->pubpi.radiorev == 5) {
25325  pi->nphy_papd_cal_gain_index[phy_b5] =
25326  0;
25327  pi->nphy_papd_cal_gain_index[phy_b5] =
25328  wlc_phy_a3_nphy(
25329  pi,
25330  pi->
25331  nphy_papd_cal_gain_index
25332  [phy_b5],
25333  phy_b5);
25334 
25335  } else if ((pi->pubpi.radiorev == 7)
25336  || (pi->pubpi.radiorev == 8)) {
25337 
25338  pi->nphy_papd_cal_gain_index[phy_b5] =
25339  0;
25340  pi->nphy_papd_cal_gain_index[phy_b5] =
25341  wlc_phy_a3_nphy(
25342  pi,
25343  pi->
25344  nphy_papd_cal_gain_index
25345  [phy_b5],
25346  phy_b5);
25347 
25348  }
25349 
25350  phy_b1[phy_b5].gains.pad[phy_b5] =
25351  pi->nphy_papd_cal_gain_index[phy_b5];
25352 
25353  } else {
25354  pi->nphy_papd_cal_gain_index[phy_b5] = 0;
25355  pi->nphy_papd_cal_gain_index[phy_b5] =
25356  wlc_phy_a3_nphy(
25357  pi,
25358  pi->
25359  nphy_papd_cal_gain_index
25360  [phy_b5], phy_b5);
25361  phy_b1[phy_b5].gains.pga[phy_b5] =
25362  pi->nphy_papd_cal_gain_index[phy_b5];
25363  }
25364  } else {
25365  phy_b1[phy_b5].useindex = true;
25366  phy_b1[phy_b5].index = 16;
25367  phy_b1[phy_b5].index =
25368  wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index,
25369  phy_b5);
25370 
25371  pi->nphy_papd_cal_gain_index[phy_b5] =
25372  15 - ((phy_b1[phy_b5].index) >> 3);
25373  }
25374 
25375  switch (pi->nphy_papd_cal_type) {
25376  case 0:
25377  wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
25378  break;
25379  case 1:
25380  wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
25381  break;
25382  }
25383 
25384  if (NREV_GE(pi->pubpi.phy_rev, 7))
25385  wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25386  }
25387 
25388  if (NREV_LT(pi->pubpi.phy_rev, 7))
25389  wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25390 
25391  for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25392  int eps_offset = 0;
25393 
25394  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25395  if (CHSPEC_IS2G(pi->radio_chanspec)) {
25396  if (pi->pubpi.radiorev == 3)
25397  eps_offset = -2;
25398  else if (pi->pubpi.radiorev == 5)
25399  eps_offset = 3;
25400  else
25401  eps_offset = -1;
25402  } else {
25403  eps_offset = 2;
25404  }
25405 
25406  if (CHSPEC_IS2G(pi->radio_chanspec)) {
25407  phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
25408  phy_b10 = 0;
25409  if ((pi->pubpi.radiorev == 3) ||
25410  (pi->pubpi.radiorev == 4) ||
25411  (pi->pubpi.radiorev == 6)) {
25412  phy_b12 = -(
25413  nphy_papd_padgain_dlt_2g_2057rev3n4
25414  [phy_b8] + 1) / 2;
25415  phy_b10 = -1;
25416  } else if (pi->pubpi.radiorev == 5) {
25417  phy_b12 = -(
25418  nphy_papd_padgain_dlt_2g_2057rev5
25419  [phy_b8] + 1) / 2;
25420  } else if ((pi->pubpi.radiorev == 7) ||
25421  (pi->pubpi.radiorev == 8)) {
25422  phy_b12 = -(
25423  nphy_papd_padgain_dlt_2g_2057rev7
25424  [phy_b8] + 1) / 2;
25425  }
25426  } else {
25427  phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
25428  if ((pi->pubpi.radiorev == 3) ||
25429  (pi->pubpi.radiorev == 4) ||
25430  (pi->pubpi.radiorev == 6))
25431  phy_b11 =
25432  -(nphy_papd_pgagain_dlt_5g_2057
25433  [phy_b7]
25434  + 1) / 2;
25435  else if ((pi->pubpi.radiorev == 7)
25436  || (pi->pubpi.radiorev == 8))
25437  phy_b11 = -(
25438  nphy_papd_pgagain_dlt_5g_2057rev7
25439  [phy_b7] + 1) / 2;
25440 
25441  phy_b10 = -9;
25442  }
25443 
25444  if (CHSPEC_IS2G(pi->radio_chanspec))
25445  phy_b6 =
25446  -60 + 27 + eps_offset + phy_b12 +
25447  phy_b10;
25448  else
25449  phy_b6 =
25450  -60 + 27 + eps_offset + phy_b11 +
25451  phy_b10;
25452 
25453  mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25454  0x29c, (0x1ff << 7), (phy_b6) << 7);
25455 
25456  pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25457  } else {
25458  if (NREV_LT(pi->pubpi.phy_rev, 5))
25459  eps_offset = 4;
25460  else
25461  eps_offset = 2;
25462 
25463  phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
25464 
25465  if (CHSPEC_IS2G(pi->radio_chanspec)) {
25466  phy_b11 =
25467  -(nphy_papd_pga_gain_delta_ipa_2g[
25468  phy_b7] +
25469  1) / 2;
25470  phy_b10 = 0;
25471  } else {
25472  phy_b11 =
25473  -(nphy_papd_pga_gain_delta_ipa_5g[
25474  phy_b7] +
25475  1) / 2;
25476  phy_b10 = -9;
25477  }
25478 
25479  phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
25480 
25481  mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25482  0x29c, (0x1ff << 7), (phy_b6) << 7);
25483 
25484  pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25485  }
25486  }
25487 
25488  mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25489  0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25490 
25491  mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25492  0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25493 
25494  if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25495  mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25496  0x2a4, (0x1 << 13), (0) << 13);
25497 
25498  mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25499  0x2a4, (0x1 << 13), (0) << 13);
25500 
25501  } else {
25502  mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25503  0x2a4, (0x1 << 11), (0) << 11);
25504 
25505  mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25506  0x2a4, (0x1 << 11), (0) << 11);
25507 
25508  }
25510 
25511  write_phy_reg(pi, 0x01, phy_b9);
25512 
25513  wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
25514 
25515  wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
25516  if (phy_b4 == PHY_TPC_HW_OFF) {
25517  wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25518  (s8) (pi->nphy_txpwrindex[0].
25519  index_internal), false);
25520  wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25521  (s8) (pi->nphy_txpwrindex[1].
25522  index_internal), false);
25523  }
25524 
25526 
25527  if (!phy_b3)
25528  wlapi_enable_mac(pi->sh->physhim);
25529 }
25530 
25531 void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
25532 {
25533  struct nphy_txgains target_gain;
25534  u8 tx_pwr_ctrl_state;
25535  bool fullcal = true;
25536  bool restore_tx_gain = false;
25537  bool mphase;
25538 
25539  if (PHY_MUTED(pi))
25540  return;
25541 
25542  if (caltype == PHY_PERICAL_AUTO)
25543  fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
25544  else if (caltype == PHY_PERICAL_PARTIAL)
25545  fullcal = false;
25546 
25548  fullcal =
25549  (pi->cal_type_override ==
25550  PHY_PERICAL_FULL) ? true : false;
25551 
25553  if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
25555  }
25556 
25558  wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
25559 
25560  wlapi_suspend_mac_and_wait(pi->sh->physhim);
25561 
25562  wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25563 
25566  pi->nphy_cal_orig_pwr_idx[0] =
25567  (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
25568  pi->nphy_cal_orig_pwr_idx[1] =
25569  (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
25570 
25571  if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
25573  0x110, 16,
25574  pi->nphy_cal_orig_tx_gain);
25575  } else {
25576  pi->nphy_cal_orig_tx_gain[0] = 0;
25577  pi->nphy_cal_orig_tx_gain[1] = 0;
25578  }
25579  }
25580  target_gain = wlc_phy_get_tx_gain_nphy(pi);
25581  tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
25583 
25584  if (pi->antsel_type == ANTSEL_2x3)
25585  wlc_phy_antsel_init((struct brcms_phy_pub *) pi, true);
25586 
25587  mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
25588  if (!mphase) {
25589 
25590  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25591  wlc_phy_precal_txgain_nphy(pi);
25593  restore_tx_gain = true;
25594 
25595  target_gain = pi->nphy_cal_target_gain;
25596  }
25597  if (0 ==
25598  wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal,
25599  mphase)) {
25600  if (PHY_IPA(pi))
25601  wlc_phy_a4(pi, true);
25602 
25603  wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25604  wlapi_enable_mac(pi->sh->physhim);
25605  wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
25606  10000);
25607  wlapi_suspend_mac_and_wait(pi->sh->physhim);
25608  wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25609 
25610  if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
25611  (pi->first_cal_after_assoc ||
25612  (pi->cal_type_override ==
25613  PHY_PERICAL_FULL)) ? 2 : 0, false)) {
25614  wlc_phy_savecal_nphy(pi);
25615 
25616  wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25617 
25618  pi->nphy_perical_last = pi->sh->now;
25619  }
25620  }
25621  if (caltype != PHY_PERICAL_AUTO)
25623 
25624  if (pi->first_cal_after_assoc
25625  || (pi->cal_type_override == PHY_PERICAL_FULL)) {
25626  pi->first_cal_after_assoc = false;
25627  wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25628  wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25629  }
25630 
25631  if (NREV_GE(pi->pubpi.phy_rev, 3))
25633  } else {
25634  switch (pi->mphase_cal_phase_id) {
25635  case MPHASE_CAL_STATE_INIT:
25636  pi->nphy_perical_last = pi->sh->now;
25638 
25639  if (NREV_GE(pi->pubpi.phy_rev, 3))
25640  wlc_phy_precal_txgain_nphy(pi);
25641 
25643  pi->mphase_cal_phase_id++;
25644  break;
25645 
25652  if ((pi->radar_percal_mask & 0x10) != 0)
25653  pi->nphy_rxcal_active = true;
25654 
25656  (pi, pi->nphy_cal_target_gain, fullcal,
25657  true) != 0) {
25658 
25660  break;
25661  }
25662 
25663  if (NREV_LE(pi->pubpi.phy_rev, 2) &&
25664  (pi->mphase_cal_phase_id ==
25666  pi->mphase_cal_phase_id += 2;
25667  else
25668  pi->mphase_cal_phase_id++;
25669  break;
25670 
25672  if ((pi->radar_percal_mask & 0x2) != 0)
25673  pi->nphy_rxcal_active = true;
25674 
25675  if (PHY_IPA(pi))
25676  wlc_phy_a4(pi, true);
25677 
25678  pi->mphase_cal_phase_id++;
25679  break;
25680 
25682  if ((pi->radar_percal_mask & 0x1) != 0)
25683  pi->nphy_rxcal_active = true;
25684  if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
25685  (pi->first_cal_after_assoc ||
25686  (pi->cal_type_override ==
25687  PHY_PERICAL_FULL)) ? 2 : 0,
25688  false) == 0)
25689  wlc_phy_savecal_nphy(pi);
25690 
25691  pi->mphase_cal_phase_id++;
25692  break;
25693 
25695  if ((pi->radar_percal_mask & 0x4) != 0)
25696  pi->nphy_rxcal_active = true;
25697  wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25699 
25700  if (NREV_GE(pi->pubpi.phy_rev, 3))
25702 
25703  restore_tx_gain = true;
25704 
25705  if (pi->first_cal_after_assoc)
25706  pi->mphase_cal_phase_id++;
25707  else
25709 
25710  break;
25711 
25713  if ((pi->radar_percal_mask & 0x8) != 0)
25714  pi->nphy_rxcal_active = true;
25715 
25716  if (pi->first_cal_after_assoc) {
25717  pi->first_cal_after_assoc = false;
25718  wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25719  wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25720  }
25721 
25723  break;
25724 
25725  default:
25727  break;
25728  }
25729  }
25730 
25731  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25732  if (restore_tx_gain) {
25733  if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
25734 
25736  pi->
25737  nphy_cal_orig_pwr_idx
25738  [0], false);
25740  pi->
25741  nphy_cal_orig_pwr_idx
25742  [1], false);
25743 
25744  pi->nphy_txpwrindex[0].index = -1;
25745  pi->nphy_txpwrindex[1].index = -1;
25746  } else {
25747  wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25748  (s8) (pi->
25750  [0].
25751  index_internal),
25752  false);
25753  wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25754  (s8) (pi->
25756  [1].
25757  index_internal),
25758  false);
25759  }
25760  }
25761  }
25762 
25763  wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
25764  wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25765  wlapi_enable_mac(pi->sh->physhim);
25766 }
25767 
25768 int
25769 wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
25770  bool fullcal, bool mphase)
25771 {
25772  u16 val;
25773  u16 tbl_buf[11];
25774  u8 cal_cnt;
25775  u16 cal_cmd;
25776  u8 num_cals, max_cal_cmds;
25777  u16 core_no, cal_type;
25778  u16 diq_start = 0;
25779  u8 phy_bw;
25780  u16 max_val;
25781  u16 tone_freq;
25782  u16 gain_save[2];
25783  u16 cal_gain[2];
25784  struct nphy_iqcal_params cal_params[2];
25785  u32 tbl_len;
25786  void *tbl_ptr;
25787  bool ladder_updated[2];
25788  u8 mphase_cal_lastphase = 0;
25789  int bcmerror = 0;
25790  bool phyhang_avoid_state = false;
25791 
25793  0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
25794  0x1902,
25795  0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
25796  0x6407
25797  };
25798 
25800  0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
25801  0x3200,
25802  0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
25803  0x6407
25804  };
25805 
25807  0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
25808  0x1202,
25809  0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
25810  0x4707
25811  };
25812 
25814  0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
25815  0x2300,
25816  0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
25817  0x4707
25818  };
25819 
25821  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25822  0x0000
25823  };
25824 
25826  0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
25827  0x9123, 0x9264, 0x9086, 0x9245, 0x9056
25828  };
25829 
25831  0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
25832  0x9101, 0x9253, 0x9053, 0x9234, 0x9034
25833  };
25834 
25836  0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25837  0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25838  0x0000
25839  };
25840 
25842  0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
25843  0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
25844  };
25845 
25847  0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
25848  0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
25849  };
25850 
25852 
25853  if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25854  phyhang_avoid_state = pi->phyhang_avoid;
25855  pi->phyhang_avoid = false;
25856  }
25857 
25858  if (CHSPEC_IS40(pi->radio_chanspec))
25859  phy_bw = 40;
25860  else
25861  phy_bw = 20;
25862 
25863  wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25864 
25865  for (core_no = 0; core_no <= 1; core_no++) {
25866  wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25867  &cal_params[core_no]);
25868  cal_gain[core_no] = cal_params[core_no].cal_gain;
25869  }
25870 
25871  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25872 
25873  wlc_phy_txcal_radio_setup_nphy(pi);
25874 
25875  wlc_phy_txcal_physetup_nphy(pi);
25876 
25877  ladder_updated[0] = ladder_updated[1] = false;
25878  if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
25879  (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
25880  && (CHSPEC_IS2G(pi->radio_chanspec))))) {
25881 
25882  if (phy_bw == 40) {
25884  tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
25885  } else {
25887  tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
25888  }
25890  16, tbl_ptr);
25891 
25892  if (phy_bw == 40) {
25894  tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
25895  } else {
25897  tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
25898  }
25900  16, tbl_ptr);
25901  }
25902 
25903  if (NREV_GE(pi->pubpi.phy_rev, 7))
25904  write_phy_reg(pi, 0xc2, 0x8ad9);
25905  else
25906  write_phy_reg(pi, 0xc2, 0x8aa9);
25907 
25908  max_val = 250;
25909  tone_freq = (phy_bw == 20) ? 2500 : 5000;
25910 
25912  wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
25913  bcmerror = 0;
25914  } else {
25915  bcmerror =
25916  wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0,
25917  false);
25918  }
25919 
25920  if (bcmerror == 0) {
25921 
25923  tbl_ptr = pi->mphase_txcal_bestcoeffs;
25924  tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
25925  if (NREV_LT(pi->pubpi.phy_rev, 3))
25926  tbl_len -= 2;
25927  } else {
25928  if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
25929 
25930  tbl_ptr = pi->nphy_txiqlocal_bestc;
25931  tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
25932  if (NREV_LT(pi->pubpi.phy_rev, 3))
25933  tbl_len -= 2;
25934  } else {
25935 
25936  fullcal = true;
25937 
25938  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25939  tbl_ptr =
25941  tbl_len = ARRAY_SIZE(
25942  tbl_tx_iqlo_cal_startcoefs_nphyrev3);
25943  } else {
25944  tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
25945  tbl_len = ARRAY_SIZE(
25946  tbl_tx_iqlo_cal_startcoefs);
25947  }
25948  }
25949  }
25951  16, tbl_ptr);
25952 
25953  if (fullcal) {
25954  max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25955  ARRAY_SIZE(
25956  tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
25957  ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
25958  } else {
25959  max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25960  ARRAY_SIZE(
25961  tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
25962  ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
25963  }
25964 
25965  if (mphase) {
25966  cal_cnt = pi->mphase_txcal_cmdidx;
25967  if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds)
25968  num_cals = cal_cnt + pi->mphase_txcal_numcmds;
25969  else
25970  num_cals = max_cal_cmds;
25971  } else {
25972  cal_cnt = 0;
25973  num_cals = max_cal_cmds;
25974  }
25975 
25976  for (; cal_cnt < num_cals; cal_cnt++) {
25977 
25978  if (fullcal) {
25979  cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25980  tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
25981  [cal_cnt] :
25982  tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
25983  } else {
25984  cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
25985  tbl_tx_iqlo_cal_cmds_recal_nphyrev3[
25986  cal_cnt]
25987  : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
25988  }
25989 
25990  core_no = ((cal_cmd & 0x3000) >> 12);
25991  cal_type = ((cal_cmd & 0x0F00) >> 8);
25992 
25993  if (NREV_GE(pi->pubpi.phy_rev, 6) ||
25994  (NREV_IS(pi->pubpi.phy_rev, 5) &&
25995  PHY_IPA(pi)
25996  && (CHSPEC_IS2G(pi->radio_chanspec)))) {
25997  if (!ladder_updated[core_no]) {
25998  wlc_phy_update_txcal_ladder_nphy(
25999  pi,
26000  core_no);
26001  ladder_updated[core_no] = true;
26002  }
26003  }
26004 
26005  val =
26006  (cal_params[core_no].
26007  ncorr[cal_type] << 8) | NPHY_N_GCTL;
26008  write_phy_reg(pi, 0xc1, val);
26009 
26010  if ((cal_type == 1) || (cal_type == 3)
26011  || (cal_type == 4)) {
26012 
26014  1, 69 + core_no, 16,
26015  tbl_buf);
26016 
26017  diq_start = tbl_buf[0];
26018 
26019  tbl_buf[0] = 0;
26022  69 + core_no, 16,
26023  tbl_buf);
26024  }
26025 
26026  write_phy_reg(pi, 0xc0, cal_cmd);
26027 
26028  SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
26029  20000);
26030  if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
26031  "HW error: txiq calib"))
26032  return -EIO;
26033 
26035  tbl_len, 96, 16, tbl_buf);
26037  tbl_len, 64, 16, tbl_buf);
26038 
26039  if ((cal_type == 1) || (cal_type == 3)
26040  || (cal_type == 4)) {
26041 
26042  tbl_buf[0] = diq_start;
26043 
26044  }
26045 
26046  }
26047 
26048  if (mphase) {
26049  pi->mphase_txcal_cmdidx = num_cals;
26050  if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
26051  pi->mphase_txcal_cmdidx = 0;
26052  }
26053 
26054  mphase_cal_lastphase =
26055  (NREV_LE(pi->pubpi.phy_rev, 2)) ?
26057 
26058  if (!mphase
26059  || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
26060 
26062  16, tbl_buf);
26064  16, tbl_buf);
26065 
26066  if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26067 
26068  tbl_buf[0] = 0;
26069  tbl_buf[1] = 0;
26070  tbl_buf[2] = 0;
26071  tbl_buf[3] = 0;
26072 
26073  }
26075  16, tbl_buf);
26076 
26078  16, tbl_buf);
26080  16, tbl_buf);
26081 
26083  16, tbl_buf);
26084 
26085  tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26086  if (NREV_LT(pi->pubpi.phy_rev, 3))
26087  tbl_len -= 2;
26088 
26090  tbl_len, 96, 16,
26091  pi->nphy_txiqlocal_bestc);
26092 
26093  pi->nphy_txiqlocal_coeffsvalid = true;
26095  } else {
26096  tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26097  if (NREV_LT(pi->pubpi.phy_rev, 3))
26098  tbl_len -= 2;
26099 
26101  tbl_len, 96, 16,
26103  }
26104 
26106 
26107  write_phy_reg(pi, 0xc2, 0x0000);
26108 
26109  }
26110 
26111  wlc_phy_txcal_phycleanup_nphy(pi);
26112 
26113  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26114  gain_save);
26115 
26116  wlc_phy_txcal_radio_cleanup_nphy(pi);
26117 
26118  if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26119  if (!mphase
26120  || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
26121  wlc_phy_tx_iq_war_nphy(pi);
26122  }
26123 
26124  if (NREV_GE(pi->pubpi.phy_rev, 4))
26125  pi->phyhang_avoid = phyhang_avoid_state;
26126 
26128 
26129  return bcmerror;
26130 }
26131 
26132 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
26133 {
26134  u16 tbl_buf[7];
26135 
26136  if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
26139  ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
26140 
26141  if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
26142  (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
26143  (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
26144  (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
26145 
26147  16, pi->nphy_txiqlocal_bestc);
26148 
26149  tbl_buf[0] = 0;
26150  tbl_buf[1] = 0;
26151  tbl_buf[2] = 0;
26152  tbl_buf[3] = 0;
26154  16, tbl_buf);
26155 
26157  16,
26158  &pi->nphy_txiqlocal_bestc[5]);
26159 
26161  16,
26162  &pi->nphy_txiqlocal_bestc[5]);
26163  }
26164  }
26165 }
26166 
26167 void
26169  struct nphy_iq_comp *pcomp)
26170 {
26171  if (write) {
26172  write_phy_reg(pi, 0x9a, pcomp->a0);
26173  write_phy_reg(pi, 0x9b, pcomp->b0);
26174  write_phy_reg(pi, 0x9c, pcomp->a1);
26175  write_phy_reg(pi, 0x9d, pcomp->b1);
26176  } else {
26177  pcomp->a0 = read_phy_reg(pi, 0x9a);
26178  pcomp->b0 = read_phy_reg(pi, 0x9b);
26179  pcomp->a1 = read_phy_reg(pi, 0x9c);
26180  pcomp->b1 = read_phy_reg(pi, 0x9d);
26181  }
26182 }
26183 
26184 void
26186  u16 num_samps, u8 wait_time, u8 wait_for_crs)
26187 {
26188  u8 core;
26189 
26190  write_phy_reg(pi, 0x12b, num_samps);
26191  mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
26192  mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
26193  (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
26194 
26196 
26197  SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
26198  10000);
26199  if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
26200  "HW error: rxiq est"))
26201  return;
26202 
26203  if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
26204  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26205  est[core].i_pwr =
26206  (read_phy_reg(pi,
26207  NPHY_IqestipwrAccHi(core)) << 16)
26208  | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
26209  est[core].q_pwr =
26210  (read_phy_reg(pi,
26211  NPHY_IqestqpwrAccHi(core)) << 16)
26212  | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
26213  est[core].iq_prod =
26214  (read_phy_reg(pi,
26215  NPHY_IqestIqAccHi(core)) << 16) |
26216  read_phy_reg(pi, NPHY_IqestIqAccLo(core));
26217  }
26218  }
26219 }
26220 
26221 #define CAL_RETRY_CNT 2
26222 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
26223 {
26224  u8 curr_core;
26225  struct phy_iq_est est[PHY_CORE_MAX];
26226  struct nphy_iq_comp old_comp, new_comp;
26227  s32 iq = 0;
26228  u32 ii = 0, qq = 0;
26229  s16 iq_nbits, qq_nbits, brsh, arsh;
26230  s32 a, b, temp;
26231  int bcmerror = 0;
26232  uint cal_retry = 0;
26233 
26234  if (core_mask == 0x0)
26235  return;
26236 
26237  wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
26238  new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
26239  wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26240 
26241 cal_try:
26242  wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
26243 
26244  new_comp = old_comp;
26245 
26246  for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
26247 
26248  if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26249  iq = est[curr_core].iq_prod;
26250  ii = est[curr_core].i_pwr;
26251  qq = est[curr_core].q_pwr;
26252  } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26253  iq = est[curr_core].iq_prod;
26254  ii = est[curr_core].i_pwr;
26255  qq = est[curr_core].q_pwr;
26256  } else {
26257  continue;
26258  }
26259 
26260  if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
26261  bcmerror = -EBADE;
26262  break;
26263  }
26264 
26265  iq_nbits = wlc_phy_nbits(iq);
26266  qq_nbits = wlc_phy_nbits(qq);
26267 
26268  arsh = 10 - (30 - iq_nbits);
26269  if (arsh >= 0) {
26270  a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
26271  temp = (s32) (ii >> arsh);
26272  if (temp == 0) {
26273  bcmerror = -EBADE;
26274  break;
26275  }
26276  } else {
26277  a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
26278  temp = (s32) (ii << -arsh);
26279  if (temp == 0) {
26280  bcmerror = -EBADE;
26281  break;
26282  }
26283  }
26284 
26285  a /= temp;
26286 
26287  brsh = qq_nbits - 31 + 20;
26288  if (brsh >= 0) {
26289  b = (qq << (31 - qq_nbits));
26290  temp = (s32) (ii >> brsh);
26291  if (temp == 0) {
26292  bcmerror = -EBADE;
26293  break;
26294  }
26295  } else {
26296  b = (qq << (31 - qq_nbits));
26297  temp = (s32) (ii << -brsh);
26298  if (temp == 0) {
26299  bcmerror = -EBADE;
26300  break;
26301  }
26302  }
26303  b /= temp;
26304  b -= a * a;
26305  b = (s32) int_sqrt((unsigned long) b);
26306  b -= (1 << 10);
26307 
26308  if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26309  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26310  new_comp.a0 = (s16) a & 0x3ff;
26311  new_comp.b0 = (s16) b & 0x3ff;
26312  } else {
26313 
26314  new_comp.a0 = (s16) b & 0x3ff;
26315  new_comp.b0 = (s16) a & 0x3ff;
26316  }
26317  }
26318  if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26319  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26320  new_comp.a1 = (s16) a & 0x3ff;
26321  new_comp.b1 = (s16) b & 0x3ff;
26322  } else {
26323 
26324  new_comp.a1 = (s16) b & 0x3ff;
26325  new_comp.b1 = (s16) a & 0x3ff;
26326  }
26327  }
26328  }
26329 
26330  if (bcmerror != 0) {
26331  pr_debug("%s: Failed, cnt = %d\n", __func__, cal_retry);
26332 
26333  if (cal_retry < CAL_RETRY_CNT) {
26334  cal_retry++;
26335  goto cal_try;
26336  }
26337 
26338  new_comp = old_comp;
26339  }
26340 
26341  wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26342 }
26343 
26344 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
26345 {
26346  u16 offtune_val;
26347  u16 bias_g = 0;
26348  u16 bias_a = 0;
26349 
26350  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26351  if (rx_core == PHY_CORE_0) {
26352  if (CHSPEC_IS5G(pi->radio_chanspec)) {
26353  pi->tx_rx_cal_radio_saveregs[0] =
26354  read_radio_reg(pi,
26356  pi->tx_rx_cal_radio_saveregs[1] =
26357  read_radio_reg(pi,
26359 
26360  write_radio_reg(pi,
26362  0x3);
26363  write_radio_reg(pi,
26365  0xaf);
26366 
26367  } else {
26368  pi->tx_rx_cal_radio_saveregs[0] =
26369  read_radio_reg(pi,
26371  pi->tx_rx_cal_radio_saveregs[1] =
26372  read_radio_reg(pi,
26374 
26376  pi,
26378  0x3);
26380  pi,
26382  0x7f);
26383  }
26384 
26385  } else {
26386  if (CHSPEC_IS5G(pi->radio_chanspec)) {
26387  pi->tx_rx_cal_radio_saveregs[0] =
26388  read_radio_reg(pi,
26390  pi->tx_rx_cal_radio_saveregs[1] =
26391  read_radio_reg(pi,
26393 
26395  pi,
26397  0x3);
26399  pi,
26401  0xaf);
26402 
26403  } else {
26404  pi->tx_rx_cal_radio_saveregs[0] =
26405  read_radio_reg(pi,
26407  pi->tx_rx_cal_radio_saveregs[1] =
26408  read_radio_reg(pi,
26410 
26411  write_radio_reg(pi,
26413  0x3);
26414  write_radio_reg(pi,
26416  0x7f);
26417  }
26418  }
26419 
26420  } else {
26421  if (rx_core == PHY_CORE_0) {
26422  pi->tx_rx_cal_radio_saveregs[0] =
26423  read_radio_reg(pi,
26425  RADIO_2056_TX1);
26426  pi->tx_rx_cal_radio_saveregs[1] =
26427  read_radio_reg(pi,
26429  RADIO_2056_RX0);
26430 
26431  if (pi->pubpi.radiorev >= 5) {
26432  pi->tx_rx_cal_radio_saveregs[2] =
26433  read_radio_reg(pi,
26435  RADIO_2056_RX0);
26436  pi->tx_rx_cal_radio_saveregs[3] =
26437  read_radio_reg(pi,
26439  RADIO_2056_TX1);
26440  }
26441 
26442  if (CHSPEC_IS5G(pi->radio_chanspec)) {
26443 
26444  if (pi->pubpi.radiorev >= 5) {
26445  pi->tx_rx_cal_radio_saveregs[4] =
26446  read_radio_reg(pi,
26448  | RADIO_2056_RX0);
26449 
26451  pi,
26453  | RADIO_2056_RX0, 0x40);
26454 
26455  write_radio_reg(pi,
26457  RADIO_2056_TX1, bias_a);
26458 
26459  write_radio_reg(pi,
26461  RADIO_2056_RX0, bias_a);
26462  } else {
26463  pi->tx_rx_cal_radio_saveregs[4] =
26464  read_radio_reg(pi,
26466  | RADIO_2056_RX0);
26467 
26468  offtune_val =
26470  [2] & 0xF0) >> 8;
26471  offtune_val =
26472  (offtune_val <= 0x7) ? 0xF : 0;
26473 
26474  mod_radio_reg(pi,
26476  RADIO_2056_RX0, 0xF0,
26477  (offtune_val << 8));
26478  }
26479 
26480  write_radio_reg(pi,
26482  RADIO_2056_TX1, 0x9);
26483  write_radio_reg(pi,
26485  RADIO_2056_RX0, 0x9);
26486  } else {
26487  if (pi->pubpi.radiorev >= 5) {
26488  pi->tx_rx_cal_radio_saveregs[4] =
26490  pi,
26492  | RADIO_2056_RX0);
26493 
26495  pi,
26497  | RADIO_2056_RX0, 0x40);
26498 
26500  pi,
26502  |
26503  RADIO_2056_TX1, bias_g);
26504 
26506  pi,
26508  |
26509  RADIO_2056_RX0, bias_g);
26510 
26511  } else {
26512  pi->tx_rx_cal_radio_saveregs[4] =
26514  pi,
26516  | RADIO_2056_RX0);
26517 
26518  offtune_val =
26519  (pi->
26520  tx_rx_cal_radio_saveregs[2] &
26521  0xF0) >> 8;
26522  offtune_val =
26523  (offtune_val <= 0x7) ? 0xF : 0;
26524 
26525  mod_radio_reg(pi,
26527  RADIO_2056_RX0, 0xF0,
26528  (offtune_val << 8));
26529  }
26530 
26531  write_radio_reg(pi,
26533  RADIO_2056_TX1, 0x6);
26534  write_radio_reg(pi,
26536  RADIO_2056_RX0, 0x6);
26537  }
26538 
26539  } else {
26540  pi->tx_rx_cal_radio_saveregs[0] =
26541  read_radio_reg(pi,
26543  RADIO_2056_TX0);
26544  pi->tx_rx_cal_radio_saveregs[1] =
26545  read_radio_reg(pi,
26547  RADIO_2056_RX1);
26548 
26549  if (pi->pubpi.radiorev >= 5) {
26550  pi->tx_rx_cal_radio_saveregs[2] =
26551  read_radio_reg(pi,
26553  RADIO_2056_RX1);
26554  pi->tx_rx_cal_radio_saveregs[3] =
26555  read_radio_reg(pi,
26557  RADIO_2056_TX0);
26558  }
26559 
26560  if (CHSPEC_IS5G(pi->radio_chanspec)) {
26561 
26562  if (pi->pubpi.radiorev >= 5) {
26563  pi->tx_rx_cal_radio_saveregs[4] =
26565  pi,
26567  | RADIO_2056_RX1);
26568 
26570  pi,
26572  RADIO_2056_RX1, 0x40);
26573 
26575  pi,
26577  |
26578  RADIO_2056_TX0, bias_a);
26579 
26581  pi,
26583  |
26584  RADIO_2056_RX1, bias_a);
26585  } else {
26586  pi->tx_rx_cal_radio_saveregs[4] =
26588  pi,
26590  | RADIO_2056_RX1);
26591 
26592  offtune_val =
26593  (pi->
26594  tx_rx_cal_radio_saveregs[2] &
26595  0xF0) >> 8;
26596  offtune_val =
26597  (offtune_val <= 0x7) ? 0xF : 0;
26598 
26599  mod_radio_reg(pi,
26601  RADIO_2056_RX1, 0xF0,
26602  (offtune_val << 8));
26603  }
26604 
26605  write_radio_reg(pi,
26607  RADIO_2056_TX0, 0x9);
26608  write_radio_reg(pi,
26610  RADIO_2056_RX1, 0x9);
26611  } else {
26612  if (pi->pubpi.radiorev >= 5) {
26613  pi->tx_rx_cal_radio_saveregs[4] =
26615  pi,
26617  | RADIO_2056_RX1);
26618 
26620  pi,
26622  | RADIO_2056_RX1, 0x40);
26623 
26625  pi,
26627  |
26628  RADIO_2056_TX0, bias_g);
26629 
26631  pi,
26633  |
26634  RADIO_2056_RX1, bias_g);
26635  } else {
26636  pi->tx_rx_cal_radio_saveregs[4] =
26638  pi,
26640  | RADIO_2056_RX1);
26641 
26642  offtune_val =
26643  (pi->
26644  tx_rx_cal_radio_saveregs[2] &
26645  0xF0) >> 8;
26646  offtune_val =
26647  (offtune_val <= 0x7) ? 0xF : 0;
26648 
26649  mod_radio_reg(pi,
26651  RADIO_2056_RX1, 0xF0,
26652  (offtune_val << 8));
26653  }
26654 
26655  write_radio_reg(pi,
26657  RADIO_2056_TX0, 0x6);
26658  write_radio_reg(pi,
26660  RADIO_2056_RX1, 0x6);
26661  }
26662  }
26663  }
26664 }
26665 
26666 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26667 {
26668  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26669  if (rx_core == PHY_CORE_0) {
26670  if (CHSPEC_IS5G(pi->radio_chanspec)) {
26672  pi,
26674  pi->
26675  tx_rx_cal_radio_saveregs[0]);
26677  pi,
26679  pi->
26680  tx_rx_cal_radio_saveregs[1]);
26681 
26682  } else {
26684  pi,
26686  pi->
26687  tx_rx_cal_radio_saveregs[0]);
26689  pi,
26691  pi->
26692  tx_rx_cal_radio_saveregs[1]);
26693  }
26694 
26695  } else {
26696  if (CHSPEC_IS5G(pi->radio_chanspec)) {
26698  pi,
26700  pi->
26701  tx_rx_cal_radio_saveregs[0]);
26703  pi,
26705  pi->
26706  tx_rx_cal_radio_saveregs[1]);
26707 
26708  } else {
26710  pi,
26712  pi->
26713  tx_rx_cal_radio_saveregs[0]);
26715  pi,
26717  pi->
26718  tx_rx_cal_radio_saveregs[1]);
26719  }
26720  }
26721 
26722  } else {
26723  if (rx_core == PHY_CORE_0) {
26724  write_radio_reg(pi,
26726  RADIO_2056_TX1,
26727  pi->tx_rx_cal_radio_saveregs[0]);
26728 
26729  write_radio_reg(pi,
26732  pi->tx_rx_cal_radio_saveregs[1]);
26733 
26734  if (pi->pubpi.radiorev >= 5) {
26735  write_radio_reg(pi,
26738  pi->
26739  tx_rx_cal_radio_saveregs[2]);
26740 
26741  write_radio_reg(pi,
26743  RADIO_2056_TX1,
26744  pi->
26745  tx_rx_cal_radio_saveregs[3]);
26746  }
26747 
26748  if (CHSPEC_IS5G(pi->radio_chanspec)) {
26749  if (pi->pubpi.radiorev >= 5)
26751  pi,
26753  | RADIO_2056_RX0,
26754  pi->
26755  tx_rx_cal_radio_saveregs
26756  [4]);
26757  else
26759  pi,
26761  | RADIO_2056_RX0,
26762  pi->
26763  tx_rx_cal_radio_saveregs
26764  [4]);
26765  } else {
26766  if (pi->pubpi.radiorev >= 5)
26768  pi,
26770  | RADIO_2056_RX0,
26771  pi->
26772  tx_rx_cal_radio_saveregs
26773  [4]);
26774  else
26776  pi,
26778  | RADIO_2056_RX0,
26779  pi->
26780  tx_rx_cal_radio_saveregs
26781  [4]);
26782  }
26783 
26784  } else {
26785  write_radio_reg(pi,
26788  pi->tx_rx_cal_radio_saveregs[0]);
26789 
26790  write_radio_reg(pi,
26793  pi->tx_rx_cal_radio_saveregs[1]);
26794 
26795  if (pi->pubpi.radiorev >= 5) {
26796  write_radio_reg(pi,
26799  pi->
26800  tx_rx_cal_radio_saveregs[2]);
26801 
26802  write_radio_reg(pi,
26805  pi->
26806  tx_rx_cal_radio_saveregs[3]);
26807  }
26808 
26809  if (CHSPEC_IS5G(pi->radio_chanspec)) {
26810  if (pi->pubpi.radiorev >= 5)
26812  pi,
26814  | RADIO_2056_RX1,
26815  pi->
26816  tx_rx_cal_radio_saveregs
26817  [4]);
26818  else
26820  pi,
26822  | RADIO_2056_RX1,
26823  pi->
26824  tx_rx_cal_radio_saveregs
26825  [4]);
26826  } else {
26827  if (pi->pubpi.radiorev >= 5)
26829  pi,
26831  | RADIO_2056_RX1,
26832  pi->
26833  tx_rx_cal_radio_saveregs
26834  [4]);
26835  else
26837  pi,
26839  | RADIO_2056_RX1,
26840  pi->
26841  tx_rx_cal_radio_saveregs
26842  [4]);
26843  }
26844  }
26845  }
26846 }
26847 
26848 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
26849 {
26850  u8 tx_core;
26851  u16 rx_antval, tx_antval;
26852 
26853  if (NREV_GE(pi->pubpi.phy_rev, 7))
26854  tx_core = rx_core;
26855  else
26856  tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
26857 
26858  pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
26859  pi->tx_rx_cal_phy_saveregs[1] =
26860  read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
26861  pi->tx_rx_cal_phy_saveregs[2] =
26862  read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
26863  pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
26864  pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
26865  pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
26866  pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
26867  pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
26868  pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
26869  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26870  pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
26871  pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
26872  pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
26873  pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
26874  }
26875 
26876  pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
26877  pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
26878  mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
26879  0x29b, (0x1 << 0), (0) << 0);
26880 
26881  mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
26882  0x29b, (0x1 << 0), (0) << 0);
26883 
26884  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26885 
26886  mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
26887 
26888  mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
26889 
26890  } else {
26891 
26892  mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
26893  mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
26894  mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
26895  mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
26896  }
26897 
26898  mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
26899  mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
26900  (0x1 << 2), (0x1 << 2));
26901  if (NREV_LT(pi->pubpi.phy_rev, 7)) {
26902  mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
26903  (0x1 << 0) | (0x1 << 1), 0);
26904  mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
26905  0x8f : 0xa5,
26906  (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
26907  }
26908 
26909  wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
26912 
26913  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26914  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26915  0, 0, 0,
26917  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
26919  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
26921  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
26923  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
26925  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
26927  if (CHSPEC_IS40(pi->radio_chanspec))
26928  wlc_phy_rfctrl_override_nphy_rev7(
26929  pi,
26930  (0x1 << 7),
26931  2, 0, 0,
26933  else
26934  wlc_phy_rfctrl_override_nphy_rev7(
26935  pi,
26936  (0x1 << 7),
26937  0, 0, 0,
26939 
26940  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
26941  0, 0, 0,
26943  wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
26945  } else {
26946  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
26947  }
26948 
26950 
26951  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26952 
26953  wlc_phy_rfctrlintc_override_nphy(pi,
26955  0x1, rx_core + 1);
26956  } else {
26957 
26958  if (rx_core == PHY_CORE_0) {
26959  rx_antval = 0x1;
26960  tx_antval = 0x8;
26961  } else {
26962  rx_antval = 0x4;
26963  tx_antval = 0x2;
26964  }
26965 
26966  wlc_phy_rfctrlintc_override_nphy(pi,
26968  rx_antval, rx_core + 1);
26969  wlc_phy_rfctrlintc_override_nphy(pi,
26971  tx_antval, tx_core + 1);
26972  }
26973 }
26974 
26975 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26976 {
26977 
26978  write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
26979  write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
26980  pi->tx_rx_cal_phy_saveregs[1]);
26981  write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
26982  pi->tx_rx_cal_phy_saveregs[2]);
26983  write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
26984  write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
26985 
26986  write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
26987  write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
26988  write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
26989  write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
26990  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26991  write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
26992  write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
26993  write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
26994  write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
26995  }
26996 
26997  write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
26998  write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
26999 }
27000 
27001 static void
27002 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
27003  u16 *rxgain, u8 cal_type)
27004 {
27005 
27006  u16 num_samps;
27007  struct phy_iq_est est[PHY_CORE_MAX];
27008  u8 tx_core;
27009  struct nphy_iq_comp save_comp, zero_comp;
27010  u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0,
27011  thresh_pwr = 10000;
27012  s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
27013  bool gainctrl_done = false;
27014  u8 mix_tia_gain = 3;
27015  s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
27016  s8 curr_gaintbl_index = 3;
27017  u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
27018  const struct nphy_ipa_txrxgain *nphy_rxcal_gaintbl;
27020  int fine_gain_idx;
27021  s8 txpwrindex;
27022  u16 nphy_rxcal_txgain[2];
27023 
27024  if (NREV_GE(pi->pubpi.phy_rev, 7))
27025  tx_core = rx_core;
27026  else
27027  tx_core = 1 - rx_core;
27028 
27029  num_samps = 1024;
27030  desired_log2_pwr = (cal_type == 0) ? 13 : 13;
27031 
27032  wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
27033  zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
27034  wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
27035 
27036  if (CHSPEC_IS5G(pi->radio_chanspec)) {
27037  if (NREV_GE(pi->pubpi.phy_rev, 7))
27038  mix_tia_gain = 3;
27039  else if (NREV_GE(pi->pubpi.phy_rev, 4))
27040  mix_tia_gain = 4;
27041  else
27042  mix_tia_gain = 6;
27043  if (NREV_GE(pi->pubpi.phy_rev, 7))
27044  nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
27045  else
27046  nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
27047  } else {
27048  if (NREV_GE(pi->pubpi.phy_rev, 7))
27049  nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
27050  else
27051  nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
27052  }
27053 
27054  do {
27055 
27056  hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
27057  0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
27058  lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
27059  lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
27060  lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
27061  lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
27062  txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
27063 
27064  if (NREV_GE(pi->pubpi.phy_rev, 7))
27065  wlc_phy_rfctrl_override_1tomany_nphy(
27066  pi,
27068  ((lpf_biq1 << 12) |
27069  (lpf_biq0 << 8) |
27070  (mix_tia_gain << 4) | (lna2 << 2)
27071  | lna1), 0x3, 0);
27072  else
27073  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27074  ((hpvga << 12) |
27075  (lpf_biq1 << 10) |
27076  (lpf_biq0 << 8) |
27077  (mix_tia_gain << 4) |
27078  (lna2 << 2) | lna1), 0x3,
27079  0);
27080 
27081  pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
27082 
27083  if (txpwrindex == -1) {
27084  nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
27085  nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
27087  2, 0x110, 16,
27088  nphy_rxcal_txgain);
27089  } else {
27090  wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
27091  false);
27092  }
27093 
27097  NPHY_RXCAL_TONEAMP, 0, cal_type, false);
27098 
27099  wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27100  i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
27101  q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
27102  curr_pwr = i_pwr + q_pwr;
27103 
27104  switch (gainctrl_dirn) {
27105  case NPHY_RXCAL_GAIN_INIT:
27106  if (curr_pwr > thresh_pwr) {
27107  gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
27108  prev_gaintbl_index = curr_gaintbl_index;
27109  curr_gaintbl_index--;
27110  } else {
27111  gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
27112  prev_gaintbl_index = curr_gaintbl_index;
27113  curr_gaintbl_index++;
27114  }
27115  break;
27116 
27117  case NPHY_RXCAL_GAIN_UP:
27118  if (curr_pwr > thresh_pwr) {
27119  gainctrl_done = true;
27120  optim_pwr = prev_pwr;
27121  optim_gaintbl_index = prev_gaintbl_index;
27122  } else {
27123  prev_gaintbl_index = curr_gaintbl_index;
27124  curr_gaintbl_index++;
27125  }
27126  break;
27127 
27128  case NPHY_RXCAL_GAIN_DOWN:
27129  if (curr_pwr > thresh_pwr) {
27130  prev_gaintbl_index = curr_gaintbl_index;
27131  curr_gaintbl_index--;
27132  } else {
27133  gainctrl_done = true;
27134  optim_pwr = curr_pwr;
27135  optim_gaintbl_index = curr_gaintbl_index;
27136  }
27137  break;
27138 
27139  default:
27140  break;
27141  }
27142 
27143  if ((curr_gaintbl_index < 0) ||
27144  (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
27145  gainctrl_done = true;
27146  optim_pwr = curr_pwr;
27147  optim_gaintbl_index = prev_gaintbl_index;
27148  } else {
27149  prev_pwr = curr_pwr;
27150  }
27151 
27153  } while (!gainctrl_done);
27154 
27155  hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
27156  lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
27157  lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
27158  lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
27159  lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
27160  txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
27161 
27162  actual_log2_pwr = wlc_phy_nbits(optim_pwr);
27163  delta_pwr = desired_log2_pwr - actual_log2_pwr;
27164 
27165  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27166  fine_gain_idx = (int)lpf_biq1 + delta_pwr;
27167 
27168  if (fine_gain_idx + (int)lpf_biq0 > 10)
27169  lpf_biq1 = 10 - lpf_biq0;
27170  else
27171  lpf_biq1 = (u16) max(fine_gain_idx, 0);
27172 
27173  wlc_phy_rfctrl_override_1tomany_nphy(
27174  pi,
27176  ((lpf_biq1 << 12) |
27177  (lpf_biq0 << 8) |
27178  (mix_tia_gain << 4) |
27179  (lna2 << 2) | lna1), 0x3,
27180  0);
27181  } else {
27182  hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
27183  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27184  ((hpvga << 12) |
27185  (lpf_biq1 << 10) |
27186  (lpf_biq0 << 8) |
27187  (mix_tia_gain << 4) |
27188  (lna2 << 2) |
27189  lna1), 0x3, 0);
27190  }
27191 
27192  if (rxgain != NULL) {
27193  *rxgain++ = lna1;
27194  *rxgain++ = lna2;
27195  *rxgain++ = mix_tia_gain;
27196  *rxgain++ = lpf_biq0;
27197  *rxgain++ = lpf_biq1;
27198  *rxgain = hpvga;
27199  }
27200 
27201  wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
27202 }
27203 
27204 static void
27205 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
27206  u8 cal_type)
27207 {
27208  wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
27209 }
27210 
27211 static u8
27212 wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
27213 {
27214  u32 target_bws[2] = { 9500, 21000 };
27215  u32 ref_tones[2] = { 3000, 6000 };
27216  u32 target_bw, ref_tone;
27217 
27218  u32 target_pwr_ratios[2] = { 28606, 18468 };
27219  u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
27220 
27221  u16 start_rccal_ovr_val = 128;
27222  u16 txlpf_rccal_lpc_ovr_val = 128;
27223  u16 rxlpf_rccal_hpc_ovr_val = 159;
27224 
27225  u16 orig_txlpf_rccal_lpc_ovr_val;
27226  u16 orig_rxlpf_rccal_hpc_ovr_val;
27227  u16 radio_addr_offset_rx;
27228  u16 radio_addr_offset_tx;
27229  u16 orig_dcBypass;
27230  u16 orig_RxStrnFilt40Num[6];
27231  u16 orig_RxStrnFilt40Den[4];
27232  u16 orig_rfctrloverride[2];
27233  u16 orig_rfctrlauxreg[2];
27234  u16 orig_rfctrlrssiothers;
27235  u16 tx_lpf_bw = 4;
27236 
27237  u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
27238  u16 lpf_hpc = 7, hpvga_hpc = 7;
27239 
27240  s8 rccal_stepsize;
27241  u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
27242  u32 ref_iq_vals = 0, target_iq_vals = 0;
27243  u16 num_samps, log_num_samps = 10;
27244  struct phy_iq_est est[PHY_CORE_MAX];
27245 
27246  if (NREV_GE(pi->pubpi.phy_rev, 7))
27247  return 0;
27248 
27249  num_samps = (1 << log_num_samps);
27250 
27251  if (CHSPEC_IS40(pi->radio_chanspec)) {
27252  target_bw = target_bws[1];
27253  target_pwr_ratio = target_pwr_ratios[1];
27254  ref_tone = ref_tones[1];
27255  rx_lpf_bw = rx_lpf_bws[1];
27256  } else {
27257  target_bw = target_bws[0];
27258  target_pwr_ratio = target_pwr_ratios[0];
27259  ref_tone = ref_tones[0];
27260  rx_lpf_bw = rx_lpf_bws[0];
27261  }
27262 
27263  if (core_idx == 0) {
27264  radio_addr_offset_rx = RADIO_2056_RX0;
27265  radio_addr_offset_tx =
27266  (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
27267  } else {
27268  radio_addr_offset_rx = RADIO_2056_RX1;
27269  radio_addr_offset_tx =
27270  (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
27271  }
27272 
27273  orig_txlpf_rccal_lpc_ovr_val =
27274  read_radio_reg(pi,
27276  radio_addr_offset_tx));
27277  orig_rxlpf_rccal_hpc_ovr_val =
27278  read_radio_reg(pi,
27280  radio_addr_offset_rx));
27281 
27282  orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
27283 
27284  orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
27285  orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
27286  orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
27287  orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
27288  orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
27289  orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
27290  orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
27291  orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
27292  orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
27293  orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
27294 
27295  orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
27296  orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
27297  orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
27298  orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
27299  orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
27300 
27301  write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27302  txlpf_rccal_lpc_ovr_val);
27303 
27304  write_radio_reg(pi,
27305  (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27306  rxlpf_rccal_hpc_ovr_val);
27307 
27308  mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
27309 
27310  write_phy_reg(pi, 0x267, 0x02d4);
27311  write_phy_reg(pi, 0x268, 0x0000);
27312  write_phy_reg(pi, 0x269, 0x0000);
27313  write_phy_reg(pi, 0x26a, 0x0000);
27314  write_phy_reg(pi, 0x26b, 0x0000);
27315  write_phy_reg(pi, 0x26c, 0x02d4);
27316  write_phy_reg(pi, 0x26d, 0x0000);
27317  write_phy_reg(pi, 0x26e, 0x0000);
27318  write_phy_reg(pi, 0x26f, 0x0000);
27319  write_phy_reg(pi, 0x270, 0x0000);
27320 
27321  or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
27322  or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
27323  or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
27324  or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
27325 
27326  mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
27327  (0x7 << 10), (tx_lpf_bw << 10));
27328  mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27329  (0x7 << 0), (hpvga_hpc << 0));
27330  mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27331  (0x7 << 4), (lpf_hpc << 4));
27332  mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
27333  (0x7 << 8), (rx_lpf_bw << 8));
27334 
27335  rccal_stepsize = 16;
27336  rccal_val = start_rccal_ovr_val + rccal_stepsize;
27337 
27338  while (rccal_stepsize >= 0) {
27339  write_radio_reg(pi,
27341  radio_addr_offset_rx), rccal_val);
27342 
27343  if (rccal_stepsize == 16) {
27344 
27346  0, 1, false);
27347  udelay(2);
27348 
27349  wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27350 
27351  if (core_idx == 0)
27352  ref_iq_vals =
27353  max_t(u32, (est[0].i_pwr +
27354  est[0].q_pwr) >>
27355  (log_num_samps + 1),
27356  1);
27357  else
27358  ref_iq_vals =
27359  max_t(u32, (est[1].i_pwr +
27360  est[1].q_pwr) >>
27361  (log_num_samps + 1),
27362  1);
27363 
27365  0, 1, false);
27366  udelay(2);
27367  }
27368 
27369  wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27370 
27371  if (core_idx == 0)
27372  target_iq_vals = (est[0].i_pwr + est[0].q_pwr) >>
27373  (log_num_samps + 1);
27374  else
27375  target_iq_vals =
27376  (est[1].i_pwr +
27377  est[1].q_pwr) >> (log_num_samps + 1);
27378 
27379  pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
27380 
27381  if (rccal_stepsize == 0)
27382  rccal_stepsize--;
27383  else if (rccal_stepsize == 1) {
27384  last_rccal_val = rccal_val;
27385  rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
27386  last_pwr_ratio = pwr_ratio;
27387  rccal_stepsize--;
27388  } else {
27389  rccal_stepsize = (rccal_stepsize >> 1);
27390  rccal_val += ((pwr_ratio > target_pwr_ratio) ?
27391  rccal_stepsize : (-rccal_stepsize));
27392  }
27393 
27394  if (rccal_stepsize == -1) {
27395  best_rccal_val =
27396  (abs((int)last_pwr_ratio -
27397  (int)target_pwr_ratio) <
27398  abs((int)pwr_ratio -
27399  (int)target_pwr_ratio)) ? last_rccal_val :
27400  rccal_val;
27401 
27402  if (CHSPEC_IS40(pi->radio_chanspec)) {
27403  if ((best_rccal_val > 140)
27404  || (best_rccal_val < 135))
27405  best_rccal_val = 138;
27406  } else {
27407  if ((best_rccal_val > 142)
27408  || (best_rccal_val < 137))
27409  best_rccal_val = 140;
27410  }
27411 
27412  write_radio_reg(pi,
27414  radio_addr_offset_rx), best_rccal_val);
27415  }
27416  }
27417 
27419 
27420  write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27421  orig_txlpf_rccal_lpc_ovr_val);
27422  write_radio_reg(pi,
27423  (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27424  orig_rxlpf_rccal_hpc_ovr_val);
27425 
27426  mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
27427 
27428  write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
27429  write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
27430  write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
27431  write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
27432  write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
27433  write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
27434  write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
27435  write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
27436  write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
27437  write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
27438 
27439  write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
27440  write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
27441  write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
27442  write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
27443  write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
27444 
27445  pi->nphy_anarxlpf_adjusted = false;
27446 
27447  return best_rccal_val - 0x80;
27448 }
27449 
27450 #define WAIT_FOR_SCOPE 4000
27451 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
27452  struct nphy_txgains target_gain,
27453  u8 cal_type, bool debug)
27454 {
27455  u16 orig_BBConfig;
27456  u8 core_no, rx_core;
27457  u8 best_rccal[2];
27458  u16 gain_save[2];
27459  u16 cal_gain[2];
27460  struct nphy_iqcal_params cal_params[2];
27461  u8 rxcore_state;
27462  s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
27463  s8 txlpf_idac;
27464  bool phyhang_avoid_state = false;
27465  bool skip_rxiqcal = false;
27466 
27467  orig_BBConfig = read_phy_reg(pi, 0x01);
27468  mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27469 
27471 
27472  if (NREV_GE(pi->pubpi.phy_rev, 4)) {
27473  phyhang_avoid_state = pi->phyhang_avoid;
27474  pi->phyhang_avoid = false;
27475  }
27476 
27477  wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27478 
27479  for (core_no = 0; core_no <= 1; core_no++) {
27480  wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27481  &cal_params[core_no]);
27482  cal_gain[core_no] = cal_params[core_no].cal_gain;
27483  }
27484 
27485  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27486 
27487  rxcore_state = wlc_phy_rxcore_getstate_nphy(
27488  (struct brcms_phy_pub *) pi);
27489 
27490  for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27491 
27492  skip_rxiqcal =
27493  ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
27494 
27495  wlc_phy_rxcal_physetup_nphy(pi, rx_core);
27496 
27497  wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
27498 
27499  if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
27500 
27501  wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
27502 
27504  (CHSPEC_IS40(
27505  pi->radio_chanspec)) ?
27508  NPHY_RXCAL_TONEAMP, 0, cal_type,
27509  false);
27510 
27511  if (debug)
27513 
27514  wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
27516  }
27517 
27518  if (((cal_type == 1) || (cal_type == 2))
27519  && NREV_LT(pi->pubpi.phy_rev, 7)) {
27520 
27521  if (rx_core == PHY_CORE_1) {
27522 
27523  if (rxcore_state == 1)
27525  (struct brcms_phy_pub *) pi, 3);
27526 
27527  wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
27528  1);
27529 
27530  best_rccal[rx_core] =
27531  wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
27532  pi->nphy_rccal_value = best_rccal[rx_core];
27533 
27534  if (rxcore_state == 1)
27536  (struct brcms_phy_pub *) pi,
27537  rxcore_state);
27538  }
27539  }
27540 
27541  wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
27542 
27543  wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
27545  }
27546 
27547  if ((cal_type == 1) || (cal_type == 2)) {
27548 
27549  best_rccal[0] = best_rccal[1];
27550  write_radio_reg(pi,
27552  RADIO_2056_RX0), (best_rccal[0] | 0x80));
27553 
27554  for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27555  rxlpf_rccal_hpc =
27556  (((int)best_rccal[rx_core] - 12) >> 1) + 10;
27557  txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
27558 
27559  if (PHY_IPA(pi)) {
27560  txlpf_rccal_lpc +=
27561  (pi->bw == WL_CHANSPEC_BW_40) ? 24 : 12;
27562  txlpf_idac = (pi->bw == WL_CHANSPEC_BW_40) ?
27563  0x0e : 0x13;
27564  WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
27565  TXLPF_IDAC_4, txlpf_idac);
27566  }
27567 
27568  rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31),
27569  0);
27570  txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31),
27571  0);
27572 
27574  ((rx_core ==
27576  RADIO_2056_RX1)),
27577  (rxlpf_rccal_hpc | 0x80));
27578 
27580  ((rx_core ==
27582  RADIO_2056_TX1)),
27583  (txlpf_rccal_lpc | 0x80));
27584  }
27585  }
27586 
27587  write_phy_reg(pi, 0x01, orig_BBConfig);
27588 
27589  wlc_phy_resetcca_nphy(pi);
27590 
27591  if (NREV_GE(pi->pubpi.phy_rev, 7))
27592  wlc_phy_rfctrl_override_1tomany_nphy(
27593  pi,
27595  0, 0x3, 1);
27596  else
27597  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
27598 
27600 
27601  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27602  gain_save);
27603 
27604  if (NREV_GE(pi->pubpi.phy_rev, 4))
27605  pi->phyhang_avoid = phyhang_avoid_state;
27606 
27608 
27609  return 0;
27610 }
27611 
27612 static int
27613 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
27614  struct nphy_txgains target_gain, bool debug)
27615 {
27616  struct phy_iq_est est[PHY_CORE_MAX];
27617  u8 core_num, rx_core, tx_core;
27618  u16 lna_vals[] = { 0x3, 0x3, 0x1 };
27619  u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
27620  u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
27621  s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
27622  s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
27623  u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
27624  u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
27625  u16 num_samps;
27626  u32 i_pwr, q_pwr, tot_pwr[3];
27627  u8 gain_pass, use_hpf_num;
27628  u16 mask, val1, val2;
27629  u16 core_no;
27630  u16 gain_save[2];
27631  u16 cal_gain[2];
27632  struct nphy_iqcal_params cal_params[2];
27633  u8 phy_bw;
27634  int bcmerror = 0;
27635  bool first_playtone = true;
27636 
27638 
27639  if (NREV_LT(pi->pubpi.phy_rev, 2))
27640  wlc_phy_reapply_txcal_coeffs_nphy(pi);
27641 
27642  wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27643 
27644  for (core_no = 0; core_no <= 1; core_no++) {
27645  wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27646  &cal_params[core_no]);
27647  cal_gain[core_no] = cal_params[core_no].cal_gain;
27648  }
27649 
27650  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27651 
27652  num_samps = 1024;
27653  desired_log2_pwr = 13;
27654 
27655  for (core_num = 0; core_num < 2; core_num++) {
27656 
27657  rx_core = core_num;
27658  tx_core = 1 - core_num;
27659 
27660  orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
27661  orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27662  0xa6 : 0xa7);
27663  orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
27664  orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27665  0x91 : 0x92);
27666  orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
27667  0x91 : 0x92);
27668 
27669  mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27670  mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27671 
27672  or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27673  ((0x1 << 1) | (0x1 << 2)));
27674  or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
27675 
27676  if (((pi->nphy_rxcalparams) & 0xff000000))
27677  write_phy_reg(pi,
27678  (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27679  (CHSPEC_IS5G(pi->radio_chanspec) ?
27680  0x140 : 0x110));
27681  else
27682  write_phy_reg(pi,
27683  (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27684  (CHSPEC_IS5G(pi->radio_chanspec) ?
27685  0x180 : 0x120));
27686 
27687  write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
27688  (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
27689  0x114));
27690 
27692  if (rx_core == PHY_CORE_0) {
27695  } else {
27698  }
27699 
27700  if ((pi->nphy_rxcalparams & 0x10000)) {
27702  val1);
27704  val2);
27705  }
27706 
27707  for (gain_pass = 0; gain_pass < 4; gain_pass++) {
27708 
27709  if (debug)
27711 
27712  if (gain_pass < 3) {
27713  curr_lna = lna_vals[gain_pass];
27714  curr_hpf1 = hpf1_vals[gain_pass];
27715  curr_hpf2 = hpf2_vals[gain_pass];
27716  } else {
27717 
27718  if (tot_pwr[1] > 10000) {
27719  curr_lna = lna_vals[2];
27720  curr_hpf1 = hpf1_vals[2];
27721  curr_hpf2 = hpf2_vals[2];
27722  use_hpf_num = 1;
27723  curr_hpf = curr_hpf1;
27724  actual_log2_pwr =
27725  wlc_phy_nbits(tot_pwr[2]);
27726  } else {
27727  if (tot_pwr[0] > 10000) {
27728  curr_lna = lna_vals[1];
27729  curr_hpf1 = hpf1_vals[1];
27730  curr_hpf2 = hpf2_vals[1];
27731  use_hpf_num = 1;
27732  curr_hpf = curr_hpf1;
27733  actual_log2_pwr =
27734  wlc_phy_nbits(
27735  tot_pwr[1]);
27736  } else {
27737  curr_lna = lna_vals[0];
27738  curr_hpf1 = hpf1_vals[0];
27739  curr_hpf2 = hpf2_vals[0];
27740  use_hpf_num = 2;
27741  curr_hpf = curr_hpf2;
27742  actual_log2_pwr =
27743  wlc_phy_nbits(
27744  tot_pwr[0]);
27745  }
27746  }
27747 
27748  hpf_change = desired_log2_pwr - actual_log2_pwr;
27749  curr_hpf += hpf_change;
27750  curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
27751  if (use_hpf_num == 1)
27752  curr_hpf1 = curr_hpf;
27753  else
27754  curr_hpf2 = curr_hpf;
27755  }
27756 
27757  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
27758  ((curr_hpf2 << 8) |
27759  (curr_hpf1 << 4) |
27760  (curr_lna << 2)), 0x3, 0);
27762 
27764 
27765  if (first_playtone) {
27766  bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
27767  (u16) (pi->nphy_rxcalparams &
27768  0xffff), 0, 0, true);
27769  first_playtone = false;
27770  } else {
27771  phy_bw = (CHSPEC_IS40(pi->radio_chanspec)) ?
27772  40 : 20;
27773  wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
27774  0, 0, 0, true);
27775  }
27776 
27777  if (bcmerror == 0) {
27778  if (gain_pass < 3) {
27779 
27780  wlc_phy_rx_iq_est_nphy(pi, est,
27781  num_samps, 32,
27782  0);
27783  i_pwr = (est[rx_core].i_pwr +
27784  num_samps / 2) / num_samps;
27785  q_pwr = (est[rx_core].q_pwr +
27786  num_samps / 2) / num_samps;
27787  tot_pwr[gain_pass] = i_pwr + q_pwr;
27788  } else {
27789 
27790  wlc_phy_calc_rx_iq_comp_nphy(pi,
27791  (1 <<
27792  rx_core));
27793  }
27794 
27796  }
27797 
27798  if (bcmerror != 0)
27799  break;
27800  }
27801 
27804 
27805  write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
27806  0x92, orig_RfctrlIntcTx);
27807  write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
27808  0x92, orig_RfctrlIntcRx);
27809  write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
27810  write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
27811  0xa7, orig_AfectrlCore);
27812  write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
27813 
27814  if (bcmerror != 0)
27815  break;
27816  }
27817 
27818  wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
27820 
27821  wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27822  gain_save);
27823 
27825 
27826  return bcmerror;
27827 }
27828 
27829 int
27830 wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
27831  u8 cal_type, bool debug)
27832 {
27833  if (NREV_GE(pi->pubpi.phy_rev, 7))
27834  cal_type = 0;
27835 
27836  if (NREV_GE(pi->pubpi.phy_rev, 3))
27837  return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
27838  debug);
27839  else
27840  return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
27841 }
27842 
27844 {
27845  uint core;
27846  u32 txgain;
27847  u16 rad_gain, dac_gain, bbmult, m1m2;
27848  u8 txpi[2], chan_freq_range;
27849  s32 rfpwr_offset;
27850 
27851  if (pi->phyhang_avoid)
27853 
27854  if (pi->sh->sromrev < 4) {
27855  txpi[0] = txpi[1] = 72;
27856  } else {
27857 
27858  chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27859  switch (chan_freq_range) {
27860  case WL_CHAN_FREQ_RANGE_2G:
27864  txpi[0] = 0;
27865  txpi[1] = 0;
27866  break;
27867  default:
27868  txpi[0] = txpi[1] = 91;
27869  break;
27870  }
27871  }
27872 
27873  if (NREV_GE(pi->pubpi.phy_rev, 7))
27874  txpi[0] = txpi[1] = 30;
27875  else if (NREV_GE(pi->pubpi.phy_rev, 3))
27876  txpi[0] = txpi[1] = 40;
27877 
27878  if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27879 
27880  if ((txpi[0] < 40) || (txpi[0] > 100) ||
27881  (txpi[1] < 40) || (txpi[1] > 100))
27882  txpi[0] = txpi[1] = 91;
27883  }
27884 
27885  pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27886  pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27887  pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27888  pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27889 
27890  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27891  uint phyrev = pi->pubpi.phy_rev;
27892 
27893  if (NREV_GE(phyrev, 3)) {
27894  if (PHY_IPA(pi)) {
27895  u32 *tx_gaintbl =
27896  wlc_phy_get_ipa_gaintbl_nphy(pi);
27897  txgain = tx_gaintbl[txpi[core]];
27898  } else {
27899  if (CHSPEC_IS5G(pi->radio_chanspec)) {
27900  if (NREV_IS(phyrev, 3)) {
27901  txgain =
27902  nphy_tpc_5GHz_txgain_rev3
27903  [txpi[core]];
27904  } else if (NREV_IS(phyrev, 4)) {
27905  txgain = (
27906  pi->srom_fem5g.extpagain ==
27907  3) ?
27908  nphy_tpc_5GHz_txgain_HiPwrEPA
27909  [txpi[core]] :
27910  nphy_tpc_5GHz_txgain_rev4
27911  [txpi[core]];
27912  } else {
27913  txgain =
27914  nphy_tpc_5GHz_txgain_rev5
27915  [txpi[core]];
27916  }
27917  } else {
27918  if (NREV_GE(phyrev, 5) &&
27919  (pi->srom_fem2g.extpagain == 3)) {
27920  txgain =
27921  nphy_tpc_txgain_HiPwrEPA
27922  [txpi[core]];
27923  } else {
27924  txgain = nphy_tpc_txgain_rev3
27925  [txpi[core]];
27926  }
27927  }
27928  }
27929  } else {
27930  txgain = nphy_tpc_txgain[txpi[core]];
27931  }
27932 
27933  if (NREV_GE(phyrev, 3))
27934  rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27935  else
27936  rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27937 
27938  if (NREV_GE(phyrev, 7))
27939  dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27940  else
27941  dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27942 
27943  bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27944 
27945  if (NREV_GE(phyrev, 3))
27946  mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27947  0xa5), (0x1 << 8), (0x1 << 8));
27948  else
27949  mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27950 
27951  write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27952 
27953  wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27954  &rad_gain);
27955 
27956  wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27957  m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27958  m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27959  wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27960 
27961  if (PHY_IPA(pi)) {
27963  (core ==
27964  PHY_CORE_0 ?
27967  576 + txpi[core], 32,
27968  &rfpwr_offset);
27969 
27970  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27971  0x29b, (0x1ff << 4),
27972  ((s16) rfpwr_offset) << 4);
27973 
27974  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27975  0x29b, (0x1 << 2), (1) << 2);
27976 
27977  }
27978  }
27979 
27980  and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
27981 
27982  if (pi->phyhang_avoid)
27984 }
27985 
27986 static void
27987 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
27988  u8 tmp_max_pwr, u8 rate_start,
27989  u8 rate_end)
27990 {
27991  u8 rate;
27992  u8 word_num, nibble_num;
27993  u8 tmp_nibble;
27994 
27995  for (rate = rate_start; rate <= rate_end; rate++) {
27996  word_num = (rate - rate_start) >> 2;
27997  nibble_num = (rate - rate_start) & 0x3;
27998  tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27999 
28000  srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
28001  }
28002 }
28003 
28004 static void
28005 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
28006  u8 rate_start, u8 rate_end)
28007 {
28008  u8 rate;
28009 
28010  for (rate = rate_start; rate <= rate_end; rate++)
28011  srom_max[rate] -= 2 * pwr_offset;
28012 }
28013 
28014 void
28015 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
28016  u8 rate_mcs_end, u8 rate_ofdm_start)
28017 {
28018  u8 rate1, rate2;
28019 
28020  rate2 = rate_ofdm_start;
28021  for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
28022  power[rate1] = power[rate2];
28023  rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
28024  }
28025  power[rate_mcs_end] = power[rate_mcs_end - 1];
28026 }
28027 
28028 void
28029 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
28030  u8 rate_ofdm_end, u8 rate_mcs_start)
28031 {
28032  u8 rate1, rate2;
28033 
28034  for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
28035  rate1 <= rate_ofdm_end; rate1++, rate2++) {
28036  power[rate1] = power[rate2];
28037  if (rate1 == rate_ofdm_start)
28038  power[++rate1] = power[rate2];
28039  }
28040 }
28041 
28043 {
28044  uint rate1, rate2, band_num;
28045  u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
28046  u8 tmp_max_pwr = 0;
28047  u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
28048  u8 *tx_srom_max_rate = NULL;
28049 
28050  for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
28051  band_num++) {
28052  switch (band_num) {
28053  case 0:
28054 
28055  tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
28056  pi->nphy_pwrctrl_info[1].max_pwr_2g);
28057 
28058  pwr_offsets1[0] = pi->cck2gpo;
28059  wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
28060  pwr_offsets1,
28061  tmp_max_pwr,
28062  TXP_FIRST_CCK,
28063  TXP_LAST_CCK);
28064 
28065  pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
28066  pwr_offsets1[1] =
28067  (u16) (pi->ofdm2gpo >> 16) & 0xffff;
28068 
28069  pwr_offsets2 = pi->mcs2gpo;
28070 
28071  tmp_cddpo = pi->cdd2gpo;
28072  tmp_stbcpo = pi->stbc2gpo;
28073  tmp_bw40po = pi->bw402gpo;
28074 
28075  tx_srom_max_rate = pi->tx_srom_max_rate_2g;
28076  break;
28077  case 1:
28078 
28079  tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
28080  pi->nphy_pwrctrl_info[1].max_pwr_5gm);
28081 
28082  pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
28083  pwr_offsets1[1] =
28084  (u16) (pi->ofdm5gpo >> 16) & 0xffff;
28085 
28086  pwr_offsets2 = pi->mcs5gpo;
28087 
28088  tmp_cddpo = pi->cdd5gpo;
28089  tmp_stbcpo = pi->stbc5gpo;
28090  tmp_bw40po = pi->bw405gpo;
28091 
28092  tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
28093  break;
28094  case 2:
28095 
28096  tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
28097  pi->nphy_pwrctrl_info[1].max_pwr_5gl);
28098 
28099  pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
28100  pwr_offsets1[1] =
28101  (u16) (pi->ofdm5glpo >> 16) & 0xffff;
28102 
28103  pwr_offsets2 = pi->mcs5glpo;
28104 
28105  tmp_cddpo = pi->cdd5glpo;
28106  tmp_stbcpo = pi->stbc5glpo;
28107  tmp_bw40po = pi->bw405glpo;
28108 
28109  tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
28110  break;
28111  case 3:
28112 
28113  tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
28114  pi->nphy_pwrctrl_info[1].max_pwr_5gh);
28115 
28116  pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
28117  pwr_offsets1[1] =
28118  (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
28119 
28120  pwr_offsets2 = pi->mcs5ghpo;
28121 
28122  tmp_cddpo = pi->cdd5ghpo;
28123  tmp_stbcpo = pi->stbc5ghpo;
28124  tmp_bw40po = pi->bw405ghpo;
28125 
28126  tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
28127  break;
28128  }
28129 
28130  wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
28131  tmp_max_pwr, TXP_FIRST_OFDM,
28132  TXP_LAST_OFDM);
28133 
28134  wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
28137  TXP_FIRST_OFDM);
28138 
28139  wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28140  tmp_max_pwr,
28143 
28144  if (NREV_GE(pi->pubpi.phy_rev, 3))
28145  wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28148 
28149  wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28153 
28154  wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28155  tmp_max_pwr,
28158 
28159  if (NREV_GE(pi->pubpi.phy_rev, 3))
28160  wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28161  tmp_stbcpo,
28164 
28165  wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28166  &pwr_offsets2[2], tmp_max_pwr,
28169 
28171 
28172  wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28173  &pwr_offsets2[4],
28174  tmp_max_pwr,
28177 
28178  wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28182 
28183  wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28184  &pwr_offsets2[4],
28185  tmp_max_pwr,
28188 
28189  wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28192 
28193  wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28197 
28198  wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28199  &pwr_offsets2[4],
28200  tmp_max_pwr,
28203 
28204  wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28205  tmp_stbcpo,
28208 
28209  wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28210  &pwr_offsets2[6],
28211  tmp_max_pwr,
28214  } else {
28215 
28216  for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
28218  rate1 <= TXP_LAST_MCS_40_SDM;
28219  rate1++, rate2++)
28220  tx_srom_max_rate[rate1] =
28221  tx_srom_max_rate[rate2];
28222  }
28223 
28224  if (NREV_GE(pi->pubpi.phy_rev, 3))
28225  wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28226  tmp_bw40po,
28229 
28230  tx_srom_max_rate[TXP_MCS_32] =
28231  tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
28232  }
28233 
28234  return;
28235 }
28236 
28238 {
28239  u8 tx_pwr_ctrl_state;
28240  wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28241  wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28242 
28243  tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28244 
28245  if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28246  wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28247  (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
28248  udelay(1);
28249  }
28250 
28251  wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28252 
28253  if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28254  wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28255 }
28256 
28257 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
28258 {
28259  return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28260  (0x1 << 14) | (0x1 << 13));
28261 }
28262 
28264 {
28265  u16 tmp;
28266  u16 pwr_idx[2];
28267 
28268  if (wlc_phy_txpwr_ison_nphy(pi)) {
28269  pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28270  pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28271 
28272  tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28273  } else {
28274  tmp = ((pi->nphy_txpwrindex[PHY_CORE_0].index_internal & 0xff)
28275  << 8) |
28276  (pi->nphy_txpwrindex[PHY_CORE_1].index_internal & 0xff);
28277  }
28278 
28279  return tmp;
28280 }
28281 
28283 {
28284  if (PHY_IPA(pi)
28285  && (pi->nphy_force_papd_cal
28286  || (wlc_phy_txpwr_ison_nphy(pi)
28287  &&
28288  (((u32)
28289  abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28290  pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28291  || ((u32)
28292  abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28293  pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4)))))
28294  wlc_phy_a4(pi, true);
28295 }
28296 
28297 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
28298 {
28299  u16 mask = 0, val = 0, ishw = 0;
28300  u8 ctr;
28301  uint core;
28302  u32 tbl_offset;
28303  u32 tbl_len;
28304  u16 regval[84];
28305 
28306  if (pi->phyhang_avoid)
28308 
28309  switch (ctrl_type) {
28310  case PHY_TPC_HW_OFF:
28311  case PHY_TPC_HW_ON:
28312  pi->nphy_txpwrctrl = ctrl_type;
28313  break;
28314  default:
28315  break;
28316  }
28317 
28318  if (ctrl_type == PHY_TPC_HW_OFF) {
28319  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28320 
28321  if (wlc_phy_txpwr_ison_nphy(pi)) {
28322  for (core = 0; core < pi->pubpi.phy_corenum;
28323  core++)
28324  pi->nphy_txpwr_idx[core] =
28325  wlc_phy_txpwr_idx_cur_get_nphy(
28326  pi,
28327  (u8) core);
28328  }
28329 
28330  }
28331 
28332  tbl_len = 84;
28333  tbl_offset = 64;
28334  for (ctr = 0; ctr < tbl_len; ctr++)
28335  regval[ctr] = 0;
28336  wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28337  regval);
28338  wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28339  regval);
28340 
28341  if (NREV_GE(pi->pubpi.phy_rev, 3))
28342  and_phy_reg(pi, 0x1e7,
28343  (u16) (~((0x1 << 15) |
28344  (0x1 << 14) | (0x1 << 13))));
28345  else
28346  and_phy_reg(pi, 0x1e7,
28347  (u16) (~((0x1 << 14) | (0x1 << 13))));
28348 
28349  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28350  or_phy_reg(pi, 0x8f, (0x1 << 8));
28351  or_phy_reg(pi, 0xa5, (0x1 << 8));
28352  } else {
28353  or_phy_reg(pi, 0xa5, (0x1 << 14));
28354  }
28355 
28356  if (NREV_IS(pi->pubpi.phy_rev, 2))
28357  mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28358  else if (NREV_LT(pi->pubpi.phy_rev, 2))
28359  mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28360 
28361  if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28362  pi->bw == WL_CHANSPEC_BW_40)
28363  wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28365 
28366  } else {
28367 
28369  8, pi->adj_pwr_tbl_nphy);
28371  8, pi->adj_pwr_tbl_nphy);
28372 
28373  ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28374  mask = (0x1 << 14) | (0x1 << 13);
28375  val = (ishw << 14) | (ishw << 13);
28376 
28377  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28378  mask |= (0x1 << 15);
28379  val |= (ishw << 15);
28380  }
28381 
28382  mod_phy_reg(pi, 0x1e7, mask, val);
28383 
28384  if (CHSPEC_IS5G(pi->radio_chanspec)) {
28385  if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28386  mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28387  mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28388  } else {
28389  mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28390  if (NREV_GT(pi->pubpi.phy_rev, 1))
28391  mod_phy_reg(pi, 0x222,
28392  (0xff << 0), 0x64);
28393  }
28394  }
28395 
28396  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28397  if ((pi->nphy_txpwr_idx[0] != 128)
28398  && (pi->nphy_txpwr_idx[1] != 128))
28399  wlc_phy_txpwr_idx_cur_set_nphy(pi,
28400  pi->
28401  nphy_txpwr_idx
28402  [0],
28403  pi->
28404  nphy_txpwr_idx
28405  [1]);
28406  }
28407 
28408  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28409  and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28410  and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28411  } else {
28412  and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28413  }
28414 
28415  if (NREV_IS(pi->pubpi.phy_rev, 2))
28416  mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28417  else if (NREV_LT(pi->pubpi.phy_rev, 2))
28418  mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28419 
28420  if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28421  pi->bw == WL_CHANSPEC_BW_40)
28422  wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28423  0x0, BRCM_BAND_ALL);
28424 
28425  if (PHY_IPA(pi)) {
28426  mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28427  0x29b, (0x1 << 2), (0) << 2);
28428 
28429  mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28430  0x29b, (0x1 << 2), (0) << 2);
28431 
28432  }
28433 
28434  }
28435 
28436  if (pi->phyhang_avoid)
28438 }
28439 
28440 void
28441 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28442  bool restore_cals)
28443 {
28444  u8 core, txpwrctl_tbl;
28445  u16 tx_ind0, iq_ind0, lo_ind0;
28446  u16 m1m2;
28447  u32 txgain;
28448  u16 rad_gain, dac_gain;
28449  u8 bbmult;
28450  u32 iqcomp;
28451  u16 iqcomp_a, iqcomp_b;
28452  u32 locomp;
28453  u16 tmpval;
28454  u8 tx_pwr_ctrl_state;
28455  s32 rfpwr_offset;
28456  u16 regval[2];
28457 
28458  if (pi->phyhang_avoid)
28460 
28461  tx_ind0 = 192;
28462  iq_ind0 = 320;
28463  lo_ind0 = 448;
28464 
28465  for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28466 
28467  if ((core_mask & (1 << core)) == 0)
28468  continue;
28469 
28470  txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28471 
28472  if (txpwrindex < 0) {
28473  if (pi->nphy_txpwrindex[core].index < 0)
28474  continue;
28475 
28476  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28477  mod_phy_reg(pi, 0x8f,
28478  (0x1 << 8),
28479  pi->nphy_txpwrindex[core].
28480  AfectrlOverride);
28481  mod_phy_reg(pi, 0xa5, (0x1 << 8),
28482  pi->nphy_txpwrindex[core].
28483  AfectrlOverride);
28484  } else {
28485  mod_phy_reg(pi, 0xa5,
28486  (0x1 << 14),
28487  pi->nphy_txpwrindex[core].
28488  AfectrlOverride);
28489  }
28490 
28491  write_phy_reg(pi, (core == PHY_CORE_0) ?
28492  0xaa : 0xab,
28493  pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28494 
28495  wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28496  &pi->nphy_txpwrindex[core].
28497  rad_gain);
28498 
28499  wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28500  m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28501  m1m2 |= ((core == PHY_CORE_0) ?
28502  (pi->nphy_txpwrindex[core].bbmult << 8) :
28503  (pi->nphy_txpwrindex[core].bbmult << 0));
28504  wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28505 
28506  if (restore_cals) {
28508  pi, 15, 2, (80 + 2 * core), 16,
28509  &pi->nphy_txpwrindex[core].iqcomp_a);
28511  pi, 15, 1, (85 + core), 16,
28512  &pi->nphy_txpwrindex[core].locomp);
28514  pi, 15, 1, (93 + core), 16,
28515  &pi->nphy_txpwrindex[core].locomp);
28516  }
28517 
28519 
28520  pi->nphy_txpwrindex[core].index_internal =
28521  pi->nphy_txpwrindex[core].index_internal_save;
28522  } else {
28523 
28524  if (pi->nphy_txpwrindex[core].index < 0) {
28525 
28526  if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28527  mod_phy_reg(pi, 0x8f,
28528  (0x1 << 8),
28529  pi->nphy_txpwrindex[core].
28530  AfectrlOverride);
28531  mod_phy_reg(pi, 0xa5, (0x1 << 8),
28532  pi->nphy_txpwrindex[core].
28533  AfectrlOverride);
28534  } else {
28535  pi->nphy_txpwrindex[core].
28536  AfectrlOverride =
28537  read_phy_reg(pi, 0xa5);
28538  }
28539 
28540  pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28541  read_phy_reg(pi, (core == PHY_CORE_0) ?
28542  0xaa : 0xab);
28543 
28544  wlc_phy_table_read_nphy(pi, 7, 1,
28545  (0x110 + core), 16,
28546  &pi->
28547  nphy_txpwrindex[core].
28548  rad_gain);
28549 
28550  wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28551  &tmpval);
28552  tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28553  tmpval &= 0xff;
28554  pi->nphy_txpwrindex[core].bbmult = (u8) tmpval;
28555 
28556  wlc_phy_table_read_nphy(pi, 15, 2,
28557  (80 + 2 * core), 16,
28558  &pi->
28559  nphy_txpwrindex[core].
28560  iqcomp_a);
28561 
28562  wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28563  16,
28564  &pi->
28565  nphy_txpwrindex[core].
28566  locomp);
28567 
28568  pi->nphy_txpwrindex[core].index_internal_save =
28569  pi->nphy_txpwrindex[core].
28570  index_internal;
28571  }
28572 
28573  tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28575 
28576  if (NREV_IS(pi->pubpi.phy_rev, 1))
28577  wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
28578 
28579  wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28580  (tx_ind0 + txpwrindex), 32,
28581  &txgain);
28582 
28583  if (NREV_GE(pi->pubpi.phy_rev, 3))
28584  rad_gain = (txgain >> 16) &
28585  ((1 << (32 - 16 + 1)) - 1);
28586  else
28587  rad_gain = (txgain >> 16) &
28588  ((1 << (28 - 16 + 1)) - 1);
28589 
28590  dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28591  bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28592 
28593  if (NREV_GE(pi->pubpi.phy_rev, 3))
28594  mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28595  0xa5), (0x1 << 8), (0x1 << 8));
28596  else
28597  mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28598 
28599  write_phy_reg(pi, (core == PHY_CORE_0) ?
28600  0xaa : 0xab, dac_gain);
28601 
28602  wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28603  &rad_gain);
28604 
28605  wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28606  m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28607  m1m2 |= ((core == PHY_CORE_0) ?
28608  (bbmult << 8) : (bbmult << 0));
28609 
28610  wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28611 
28612  wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28613  (iq_ind0 + txpwrindex), 32,
28614  &iqcomp);
28615  iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
28616  iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
28617 
28618  if (restore_cals) {
28619  regval[0] = (u16) iqcomp_a;
28620  regval[1] = (u16) iqcomp_b;
28621  wlc_phy_table_write_nphy(pi, 15, 2,
28622  (80 + 2 * core), 16,
28623  regval);
28624  }
28625 
28626  wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28627  (lo_ind0 + txpwrindex), 32,
28628  &locomp);
28629  if (restore_cals)
28630  wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28631  16, &locomp);
28632 
28633  if (NREV_IS(pi->pubpi.phy_rev, 1))
28634  wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28635 
28636  if (PHY_IPA(pi)) {
28638  (core == PHY_CORE_0 ?
28641  1, 576 + txpwrindex, 32,
28642  &rfpwr_offset);
28643 
28644  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28645  0x29b, (0x1ff << 4),
28646  ((s16) rfpwr_offset) << 4);
28647 
28648  mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28649  0x29b, (0x1 << 2), (1) << 2);
28650 
28651  }
28652 
28653  wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28654  }
28655 
28656  pi->nphy_txpwrindex[core].index = txpwrindex;
28657  }
28658 
28659  if (pi->phyhang_avoid)
28661 }
28662 
28663 void
28665  u8 txp_rate_idx)
28666 {
28667  u8 chan_freq_range;
28668 
28669  chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
28670  switch (chan_freq_range) {
28671  case WL_CHAN_FREQ_RANGE_2G:
28672  *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28673  break;
28675  *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
28676  break;
28678  *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
28679  break;
28681  *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
28682  break;
28683  default:
28684  *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28685  break;
28686  }
28687 
28688  return;
28689 }
28690 
28692 {
28693  u16 clip_off[] = { 0xffff, 0xffff };
28694 
28695  if (enable) {
28696  if (pi->nphy_deaf_count == 0) {
28697  pi->classifier_state =
28698  wlc_phy_classifier_nphy(pi, 0, 0);
28699  wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
28700  wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
28701  wlc_phy_clip_det_nphy(pi, 1, clip_off);
28702  }
28703 
28704  pi->nphy_deaf_count++;
28705 
28706  wlc_phy_resetcca_nphy(pi);
28707 
28708  } else {
28709  pi->nphy_deaf_count--;
28710 
28711  if (pi->nphy_deaf_count == 0) {
28712  wlc_phy_classifier_nphy(pi, (0x7 << 0),
28713  pi->classifier_state);
28714  wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
28715  }
28716  }
28717 }
28718 
28719 void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
28720 {
28721  wlapi_suspend_mac_and_wait(pi->sh->physhim);
28722 
28723  if (mode) {
28724  if (pi->nphy_deaf_count == 0)
28726  } else if (pi->nphy_deaf_count > 0) {
28728  }
28729 
28730  wlapi_enable_mac(pi->sh->physhim);
28731 }