3 Broadcom B43 wireless driver
4 IEEE 802.11n PHY data tables
6 Copyright (c) 2008 Michael Buesch <m@bues.ch>
7 Copyright (c) 2010 Rafał Miłecki <zajec5@gmail.com>
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program; see the file COPYING. If not, write to
21 the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
22 Boston, MA 02110-1301, USA.
26 #include <sys/cdefs.h>
27 __FBSDID("$FreeBSD$");
30 * The Broadcom Wireless LAN controller driver.
36 #include <sys/param.h>
37 #include <sys/systm.h>
38 #include <sys/kernel.h>
39 #include <sys/malloc.h>
40 #include <sys/module.h>
41 #include <sys/endian.h>
42 #include <sys/errno.h>
43 #include <sys/firmware.h>
45 #include <sys/mutex.h>
46 #include <machine/bus.h>
47 #include <machine/resource.h>
50 #include <sys/socket.h>
51 #include <sys/sockio.h>
53 #include <net/ethernet.h>
55 #include <net/if_var.h>
56 #include <net/if_arp.h>
57 #include <net/if_dl.h>
58 #include <net/if_llc.h>
59 #include <net/if_media.h>
60 #include <net/if_types.h>
62 #include <dev/pci/pcivar.h>
63 #include <dev/pci/pcireg.h>
65 #include <net80211/ieee80211_var.h>
66 #include <net80211/ieee80211_radiotap.h>
67 #include <net80211/ieee80211_regdomain.h>
68 #include <net80211/ieee80211_phy.h>
69 #include <net80211/ieee80211_ratectl.h>
71 #include <dev/bwn/if_bwnreg.h>
72 #include <dev/bwn/if_bwnvar.h>
73 #include <dev/bwn/if_bwn_debug.h>
75 #include <gnu/dev/bwn/phy_n/if_bwn_phy_n_regs.h>
76 #include <gnu/dev/bwn/phy_n/if_bwn_phy_n_ppr.h>
77 #include <gnu/dev/bwn/phy_n/if_bwn_phy_n_tables.h>
78 #include <gnu/dev/bwn/phy_n/if_bwn_phy_n_core.h>
80 static const uint8_t bwn_ntab_adjustpower0[] = {
81 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
82 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
83 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
84 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
85 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
86 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
87 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
88 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
89 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
90 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
91 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
92 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
93 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
94 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
95 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
96 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
99 static const uint8_t bwn_ntab_adjustpower1[] = {
100 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
101 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
102 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
104 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
105 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
106 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
107 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
108 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
109 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
110 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
111 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
112 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
113 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
114 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
115 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
118 static const uint16_t bwn_ntab_bdi[] = {
119 0x0070, 0x0126, 0x012C, 0x0246, 0x048D, 0x04D2,
122 static const uint32_t bwn_ntab_channelest[] = {
123 0x44444444, 0x44444444, 0x44444444, 0x44444444,
124 0x44444444, 0x44444444, 0x44444444, 0x44444444,
125 0x10101010, 0x10101010, 0x10101010, 0x10101010,
126 0x10101010, 0x10101010, 0x10101010, 0x10101010,
127 0x44444444, 0x44444444, 0x44444444, 0x44444444,
128 0x44444444, 0x44444444, 0x44444444, 0x44444444,
129 0x10101010, 0x10101010, 0x10101010, 0x10101010,
130 0x10101010, 0x10101010, 0x10101010, 0x10101010,
131 0x44444444, 0x44444444, 0x44444444, 0x44444444,
132 0x44444444, 0x44444444, 0x44444444, 0x44444444,
133 0x44444444, 0x44444444, 0x44444444, 0x44444444,
134 0x44444444, 0x44444444, 0x44444444, 0x44444444,
135 0x10101010, 0x10101010, 0x10101010, 0x10101010,
136 0x10101010, 0x10101010, 0x10101010, 0x10101010,
137 0x10101010, 0x10101010, 0x10101010, 0x10101010,
138 0x10101010, 0x10101010, 0x10101010, 0x10101010,
139 0x44444444, 0x44444444, 0x44444444, 0x44444444,
140 0x44444444, 0x44444444, 0x44444444, 0x44444444,
141 0x44444444, 0x44444444, 0x44444444, 0x44444444,
142 0x44444444, 0x44444444, 0x44444444, 0x44444444,
143 0x10101010, 0x10101010, 0x10101010, 0x10101010,
144 0x10101010, 0x10101010, 0x10101010, 0x10101010,
145 0x10101010, 0x10101010, 0x10101010, 0x10101010,
146 0x10101010, 0x10101010, 0x10101010, 0x10101010,
149 static const uint8_t bwn_ntab_estimatepowerlt0[] = {
150 0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
151 0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
152 0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
153 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
154 0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
155 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
156 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
157 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
160 static const uint8_t bwn_ntab_estimatepowerlt1[] = {
161 0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
162 0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
163 0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
164 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
165 0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
166 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
167 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
168 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
171 static const uint8_t bwn_ntab_framelookup[] = {
172 0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
173 0x0A, 0x0C, 0x1C, 0x1C, 0x0B, 0x0D, 0x1E, 0x1E,
174 0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1A, 0x1A,
175 0x0E, 0x10, 0x20, 0x28, 0x0F, 0x11, 0x22, 0x2A,
178 static const uint32_t bwn_ntab_framestruct[] = {
179 0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
180 0x09804506, 0x00100030, 0x09804507, 0x00100030,
181 0x00000000, 0x00000000, 0x00000000, 0x00000000,
182 0x00000000, 0x00000000, 0x00000000, 0x00000000,
183 0x08004A0C, 0x00100004, 0x01000A0D, 0x00100024,
184 0x0980450E, 0x00100034, 0x0980450F, 0x00100034,
185 0x00000000, 0x00000000, 0x00000000, 0x00000000,
186 0x00000000, 0x00000000, 0x00000000, 0x00000000,
187 0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
188 0x1980C506, 0x00100030, 0x21810506, 0x00100030,
189 0x21810506, 0x00100030, 0x01800504, 0x00100030,
190 0x11808505, 0x00100030, 0x29814507, 0x01100030,
191 0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
192 0x21810506, 0x00100030, 0x21810506, 0x00100030,
193 0x29814507, 0x01100030, 0x00000000, 0x00000000,
194 0x00000000, 0x00000000, 0x00000000, 0x00000000,
195 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
196 0x1980C50E, 0x00100038, 0x2181050E, 0x00100038,
197 0x2181050E, 0x00100038, 0x0180050C, 0x00100038,
198 0x1180850D, 0x00100038, 0x2981450F, 0x01100038,
199 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
200 0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
201 0x2981450F, 0x01100038, 0x00000000, 0x00000000,
202 0x00000000, 0x00000000, 0x00000000, 0x00000000,
203 0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
204 0x1980C506, 0x00100030, 0x1980C506, 0x00100030,
205 0x11808504, 0x00100030, 0x3981CA05, 0x00100030,
206 0x29814507, 0x01100030, 0x00000000, 0x00000000,
207 0x10008A04, 0x00100000, 0x3981CA05, 0x00100030,
208 0x1980C506, 0x00100030, 0x29814507, 0x01100030,
209 0x00000000, 0x00000000, 0x00000000, 0x00000000,
210 0x00000000, 0x00000000, 0x00000000, 0x00000000,
211 0x08004A0C, 0x00100008, 0x01000A0D, 0x00100028,
212 0x1980C50E, 0x00100038, 0x1980C50E, 0x00100038,
213 0x1180850C, 0x00100038, 0x3981CA0D, 0x00100038,
214 0x2981450F, 0x01100038, 0x00000000, 0x00000000,
215 0x10008A0C, 0x00100008, 0x3981CA0D, 0x00100038,
216 0x1980C50E, 0x00100038, 0x2981450F, 0x01100038,
217 0x00000000, 0x00000000, 0x00000000, 0x00000000,
218 0x00000000, 0x00000000, 0x00000000, 0x00000000,
219 0x40021404, 0x00100000, 0x02001405, 0x00100040,
220 0x0B004A06, 0x01900060, 0x13008A06, 0x01900060,
221 0x13008A06, 0x01900060, 0x43020A04, 0x00100060,
222 0x1B00CA05, 0x00100060, 0x23010A07, 0x01500060,
223 0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
224 0x13008A06, 0x01900060, 0x13008A06, 0x01900060,
225 0x23010A07, 0x01500060, 0x00000000, 0x00000000,
226 0x00000000, 0x00000000, 0x00000000, 0x00000000,
227 0x4002140C, 0x00100010, 0x0200140D, 0x00100050,
228 0x0B004A0E, 0x01900070, 0x13008A0E, 0x01900070,
229 0x13008A0E, 0x01900070, 0x43020A0C, 0x00100070,
230 0x1B00CA0D, 0x00100070, 0x23010A0F, 0x01500070,
231 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
232 0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
233 0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
234 0x00000000, 0x00000000, 0x00000000, 0x00000000,
235 0x50029404, 0x00100000, 0x32019405, 0x00100040,
236 0x0B004A06, 0x01900060, 0x0B004A06, 0x01900060,
237 0x5B02CA04, 0x00100060, 0x3B01D405, 0x00100060,
238 0x23010A07, 0x01500060, 0x00000000, 0x00000000,
239 0x5802D404, 0x00100000, 0x3B01D405, 0x00100060,
240 0x0B004A06, 0x01900060, 0x23010A07, 0x01500060,
241 0x00000000, 0x00000000, 0x00000000, 0x00000000,
242 0x00000000, 0x00000000, 0x00000000, 0x00000000,
243 0x5002940C, 0x00100010, 0x3201940D, 0x00100050,
244 0x0B004A0E, 0x01900070, 0x0B004A0E, 0x01900070,
245 0x5B02CA0C, 0x00100070, 0x3B01D40D, 0x00100070,
246 0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
247 0x5802D40C, 0x00100010, 0x3B01D40D, 0x00100070,
248 0x0B004A0E, 0x01900070, 0x23010A0F, 0x01500070,
249 0x00000000, 0x00000000, 0x00000000, 0x00000000,
250 0x00000000, 0x00000000, 0x00000000, 0x00000000,
251 0x40021404, 0x000F4800, 0x62031405, 0x00100040,
252 0x53028A06, 0x01900060, 0x53028A07, 0x01900060,
253 0x00000000, 0x00000000, 0x00000000, 0x00000000,
254 0x00000000, 0x00000000, 0x00000000, 0x00000000,
255 0x4002140C, 0x000F4808, 0x6203140D, 0x00100048,
256 0x53028A0E, 0x01900068, 0x53028A0F, 0x01900068,
257 0x00000000, 0x00000000, 0x00000000, 0x00000000,
258 0x00000000, 0x00000000, 0x00000000, 0x00000000,
259 0x00000A0C, 0x00100004, 0x11008A0D, 0x00100024,
260 0x1980C50E, 0x00100034, 0x2181050E, 0x00100034,
261 0x2181050E, 0x00100034, 0x0180050C, 0x00100038,
262 0x1180850D, 0x00100038, 0x1181850D, 0x00100038,
263 0x2981450F, 0x01100038, 0x00000000, 0x00000000,
264 0x00000000, 0x00000000, 0x00000000, 0x00000000,
265 0x00000000, 0x00000000, 0x00000000, 0x00000000,
266 0x00000000, 0x00000000, 0x00000000, 0x00000000,
267 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
268 0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
269 0x1181850D, 0x00100038, 0x2981450F, 0x01100038,
270 0x00000000, 0x00000000, 0x00000000, 0x00000000,
271 0x00000000, 0x00000000, 0x00000000, 0x00000000,
272 0x00000000, 0x00000000, 0x00000000, 0x00000000,
273 0x00000000, 0x00000000, 0x00000000, 0x00000000,
274 0x00000000, 0x00000000, 0x00000000, 0x00000000,
275 0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
276 0x0180C506, 0x00100030, 0x0180C506, 0x00100030,
277 0x2180C50C, 0x00100030, 0x49820A0D, 0x0016A130,
278 0x41824A0D, 0x0016A130, 0x2981450F, 0x01100030,
279 0x00000000, 0x00000000, 0x00000000, 0x00000000,
280 0x00000000, 0x00000000, 0x00000000, 0x00000000,
281 0x00000000, 0x00000000, 0x00000000, 0x00000000,
282 0x00000000, 0x00000000, 0x00000000, 0x00000000,
283 0x2000CA0C, 0x00100000, 0x49820A0D, 0x0016A130,
284 0x1980C50E, 0x00100030, 0x41824A0D, 0x0016A130,
285 0x2981450F, 0x01100030, 0x00000000, 0x00000000,
286 0x00000000, 0x00000000, 0x00000000, 0x00000000,
287 0x00000000, 0x00000000, 0x00000000, 0x00000000,
288 0x00000000, 0x00000000, 0x00000000, 0x00000000,
289 0x00000000, 0x00000000, 0x00000000, 0x00000000,
290 0x00000000, 0x00000000, 0x00000000, 0x00000000,
291 0x4002140C, 0x00100008, 0x0200140D, 0x00100048,
292 0x0B004A0E, 0x01900068, 0x13008A0E, 0x01900068,
293 0x13008A0E, 0x01900068, 0x43020A0C, 0x00100070,
294 0x1B00CA0D, 0x00100070, 0x1B014A0D, 0x00100070,
295 0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
296 0x00000000, 0x00000000, 0x00000000, 0x00000000,
297 0x00000000, 0x00000000, 0x00000000, 0x00000000,
298 0x00000000, 0x00000000, 0x00000000, 0x00000000,
299 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
300 0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
301 0x1B014A0D, 0x00100070, 0x23010A0F, 0x01500070,
302 0x00000000, 0x00000000, 0x00000000, 0x00000000,
303 0x00000000, 0x00000000, 0x00000000, 0x00000000,
304 0x00000000, 0x00000000, 0x00000000, 0x00000000,
305 0x00000000, 0x00000000, 0x00000000, 0x00000000,
306 0x00000000, 0x00000000, 0x00000000, 0x00000000,
307 0x50029404, 0x00100000, 0x32019405, 0x00100040,
308 0x03004A06, 0x01900060, 0x03004A06, 0x01900060,
309 0x6B030A0C, 0x00100060, 0x4B02140D, 0x0016A160,
310 0x4302540D, 0x0016A160, 0x23010A0F, 0x01500060,
311 0x00000000, 0x00000000, 0x00000000, 0x00000000,
312 0x00000000, 0x00000000, 0x00000000, 0x00000000,
313 0x00000000, 0x00000000, 0x00000000, 0x00000000,
314 0x00000000, 0x00000000, 0x00000000, 0x00000000,
315 0x6B03140C, 0x00100060, 0x4B02140D, 0x0016A160,
316 0x0B004A0E, 0x01900060, 0x4302540D, 0x0016A160,
317 0x23010A0F, 0x01500060, 0x00000000, 0x00000000,
318 0x00000000, 0x00000000, 0x00000000, 0x00000000,
319 0x00000000, 0x00000000, 0x00000000, 0x00000000,
320 0x00000000, 0x00000000, 0x00000000, 0x00000000,
321 0x00000000, 0x00000000, 0x00000000, 0x00000000,
322 0x00000000, 0x00000000, 0x00000000, 0x00000000,
323 0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
324 0x53028A06, 0x01900060, 0x5B02CA06, 0x01900060,
325 0x5B02CA06, 0x01900060, 0x43020A04, 0x00100060,
326 0x1B00CA05, 0x00100060, 0x53028A07, 0x0190C060,
327 0x00000000, 0x00000000, 0x00000000, 0x00000000,
328 0x00000000, 0x00000000, 0x00000000, 0x00000000,
329 0x00000000, 0x00000000, 0x00000000, 0x00000000,
330 0x00000000, 0x00000000, 0x00000000, 0x00000000,
331 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
332 0x53028A0E, 0x01900070, 0x5B02CA0E, 0x01900070,
333 0x5B02CA0E, 0x01900070, 0x43020A0C, 0x00100070,
334 0x1B00CA0D, 0x00100070, 0x53028A0F, 0x0190C070,
335 0x00000000, 0x00000000, 0x00000000, 0x00000000,
336 0x00000000, 0x00000000, 0x00000000, 0x00000000,
337 0x00000000, 0x00000000, 0x00000000, 0x00000000,
338 0x00000000, 0x00000000, 0x00000000, 0x00000000,
339 0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
340 0x5B02CA06, 0x01900060, 0x5B02CA06, 0x01900060,
341 0x53028A07, 0x0190C060, 0x00000000, 0x00000000,
342 0x00000000, 0x00000000, 0x00000000, 0x00000000,
343 0x00000000, 0x00000000, 0x00000000, 0x00000000,
344 0x00000000, 0x00000000, 0x00000000, 0x00000000,
345 0x00000000, 0x00000000, 0x00000000, 0x00000000,
346 0x00000000, 0x00000000, 0x00000000, 0x00000000,
347 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
348 0x5B02CA0E, 0x01900070, 0x5B02CA0E, 0x01900070,
349 0x53028A0F, 0x0190C070, 0x00000000, 0x00000000,
350 0x00000000, 0x00000000, 0x00000000, 0x00000000,
351 0x00000000, 0x00000000, 0x00000000, 0x00000000,
352 0x00000000, 0x00000000, 0x00000000, 0x00000000,
353 0x00000000, 0x00000000, 0x00000000, 0x00000000,
354 0x00000000, 0x00000000, 0x00000000, 0x00000000,
355 0x00000000, 0x00000000, 0x00000000, 0x00000000,
356 0x00000000, 0x00000000, 0x00000000, 0x00000000,
357 0x00000000, 0x00000000, 0x00000000, 0x00000000,
358 0x00000000, 0x00000000, 0x00000000, 0x00000000,
359 0x00000000, 0x00000000, 0x00000000, 0x00000000,
360 0x00000000, 0x00000000, 0x00000000, 0x00000000,
361 0x00000000, 0x00000000, 0x00000000, 0x00000000,
362 0x00000000, 0x00000000, 0x00000000, 0x00000000,
363 0x00000000, 0x00000000, 0x00000000, 0x00000000,
364 0x00000000, 0x00000000, 0x00000000, 0x00000000,
365 0x00000000, 0x00000000, 0x00000000, 0x00000000,
366 0x00000000, 0x00000000, 0x00000000, 0x00000000,
367 0x00000000, 0x00000000, 0x00000000, 0x00000000,
368 0x00000000, 0x00000000, 0x00000000, 0x00000000,
369 0x00000000, 0x00000000, 0x00000000, 0x00000000,
370 0x00000000, 0x00000000, 0x00000000, 0x00000000,
371 0x00000000, 0x00000000, 0x00000000, 0x00000000,
372 0x00000000, 0x00000000, 0x00000000, 0x00000000,
373 0x00000000, 0x00000000, 0x00000000, 0x00000000,
374 0x00000000, 0x00000000, 0x00000000, 0x00000000,
375 0x00000000, 0x00000000, 0x00000000, 0x00000000,
376 0x00000000, 0x00000000, 0x00000000, 0x00000000,
377 0x00000000, 0x00000000, 0x00000000, 0x00000000,
378 0x00000000, 0x00000000, 0x00000000, 0x00000000,
379 0x00000000, 0x00000000, 0x00000000, 0x00000000,
380 0x00000000, 0x00000000, 0x00000000, 0x00000000,
381 0x00000000, 0x00000000, 0x00000000, 0x00000000,
382 0x00000000, 0x00000000, 0x00000000, 0x00000000,
383 0x00000000, 0x00000000, 0x00000000, 0x00000000,
384 0x00000000, 0x00000000, 0x00000000, 0x00000000,
385 0x00000000, 0x00000000, 0x00000000, 0x00000000,
386 0x00000000, 0x00000000, 0x00000000, 0x00000000,
389 static const uint32_t bwn_ntab_gainctl0[] = {
390 0x03CC2B44, 0x03CC2B42, 0x03CC2B40, 0x03CC2B3E,
391 0x03CC2B3D, 0x03CC2B3B, 0x03C82B44, 0x03C82B42,
392 0x03C82B40, 0x03C82B3E, 0x03C82B3D, 0x03C82B3B,
393 0x03C82B39, 0x03C82B38, 0x03C82B36, 0x03C82B34,
394 0x03C42B44, 0x03C42B42, 0x03C42B40, 0x03C42B3E,
395 0x03C42B3D, 0x03C42B3B, 0x03C42B39, 0x03C42B38,
396 0x03C42B36, 0x03C42B34, 0x03C42B33, 0x03C42B32,
397 0x03C42B30, 0x03C42B2F, 0x03C42B2D, 0x03C02B44,
398 0x03C02B42, 0x03C02B40, 0x03C02B3E, 0x03C02B3D,
399 0x03C02B3B, 0x03C02B39, 0x03C02B38, 0x03C02B36,
400 0x03C02B34, 0x03B02B44, 0x03B02B42, 0x03B02B40,
401 0x03B02B3E, 0x03B02B3D, 0x03B02B3B, 0x03B02B39,
402 0x03B02B38, 0x03B02B36, 0x03B02B34, 0x03B02B33,
403 0x03B02B32, 0x03B02B30, 0x03B02B2F, 0x03B02B2D,
404 0x03A02B44, 0x03A02B42, 0x03A02B40, 0x03A02B3E,
405 0x03A02B3D, 0x03A02B3B, 0x03A02B39, 0x03A02B38,
406 0x03A02B36, 0x03A02B34, 0x03902B44, 0x03902B42,
407 0x03902B40, 0x03902B3E, 0x03902B3D, 0x03902B3B,
408 0x03902B39, 0x03902B38, 0x03902B36, 0x03902B34,
409 0x03902B33, 0x03902B32, 0x03902B30, 0x03802B44,
410 0x03802B42, 0x03802B40, 0x03802B3E, 0x03802B3D,
411 0x03802B3B, 0x03802B39, 0x03802B38, 0x03802B36,
412 0x03802B34, 0x03802B33, 0x03802B32, 0x03802B30,
413 0x03802B2F, 0x03802B2D, 0x03802B2C, 0x03802B2B,
414 0x03802B2A, 0x03802B29, 0x03802B27, 0x03802B26,
415 0x03802B25, 0x03802B24, 0x03802B23, 0x03802B22,
416 0x03802B21, 0x03802B20, 0x03802B1F, 0x03802B1E,
417 0x03802B1E, 0x03802B1D, 0x03802B1C, 0x03802B1B,
418 0x03802B1A, 0x03802B1A, 0x03802B19, 0x03802B18,
419 0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
420 0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
421 0x03802B18, 0x03802B18, 0x03802B18, 0x00002B00,
424 static const uint32_t bwn_ntab_gainctl1[] = {
425 0x03CC2B44, 0x03CC2B42, 0x03CC2B40, 0x03CC2B3E,
426 0x03CC2B3D, 0x03CC2B3B, 0x03C82B44, 0x03C82B42,
427 0x03C82B40, 0x03C82B3E, 0x03C82B3D, 0x03C82B3B,
428 0x03C82B39, 0x03C82B38, 0x03C82B36, 0x03C82B34,
429 0x03C42B44, 0x03C42B42, 0x03C42B40, 0x03C42B3E,
430 0x03C42B3D, 0x03C42B3B, 0x03C42B39, 0x03C42B38,
431 0x03C42B36, 0x03C42B34, 0x03C42B33, 0x03C42B32,
432 0x03C42B30, 0x03C42B2F, 0x03C42B2D, 0x03C02B44,
433 0x03C02B42, 0x03C02B40, 0x03C02B3E, 0x03C02B3D,
434 0x03C02B3B, 0x03C02B39, 0x03C02B38, 0x03C02B36,
435 0x03C02B34, 0x03B02B44, 0x03B02B42, 0x03B02B40,
436 0x03B02B3E, 0x03B02B3D, 0x03B02B3B, 0x03B02B39,
437 0x03B02B38, 0x03B02B36, 0x03B02B34, 0x03B02B33,
438 0x03B02B32, 0x03B02B30, 0x03B02B2F, 0x03B02B2D,
439 0x03A02B44, 0x03A02B42, 0x03A02B40, 0x03A02B3E,
440 0x03A02B3D, 0x03A02B3B, 0x03A02B39, 0x03A02B38,
441 0x03A02B36, 0x03A02B34, 0x03902B44, 0x03902B42,
442 0x03902B40, 0x03902B3E, 0x03902B3D, 0x03902B3B,
443 0x03902B39, 0x03902B38, 0x03902B36, 0x03902B34,
444 0x03902B33, 0x03902B32, 0x03902B30, 0x03802B44,
445 0x03802B42, 0x03802B40, 0x03802B3E, 0x03802B3D,
446 0x03802B3B, 0x03802B39, 0x03802B38, 0x03802B36,
447 0x03802B34, 0x03802B33, 0x03802B32, 0x03802B30,
448 0x03802B2F, 0x03802B2D, 0x03802B2C, 0x03802B2B,
449 0x03802B2A, 0x03802B29, 0x03802B27, 0x03802B26,
450 0x03802B25, 0x03802B24, 0x03802B23, 0x03802B22,
451 0x03802B21, 0x03802B20, 0x03802B1F, 0x03802B1E,
452 0x03802B1E, 0x03802B1D, 0x03802B1C, 0x03802B1B,
453 0x03802B1A, 0x03802B1A, 0x03802B19, 0x03802B18,
454 0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
455 0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
456 0x03802B18, 0x03802B18, 0x03802B18, 0x00002B00,
459 static const uint32_t bwn_ntab_intlevel[] = {
460 0x00802070, 0x0671188D, 0x0A60192C, 0x0A300E46,
461 0x00C1188D, 0x080024D2, 0x00000070,
464 static const uint32_t bwn_ntab_iqlt0[] = {
465 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
466 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
467 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
468 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
469 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
470 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
471 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
472 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
473 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
474 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
475 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
476 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
477 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
478 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
479 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
480 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
481 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
482 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
483 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
484 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
485 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
486 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
487 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
488 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
489 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
490 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
491 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
492 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
493 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
494 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
495 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
496 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
499 static const uint32_t bwn_ntab_iqlt1[] = {
500 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
501 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
502 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
503 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
504 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
505 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
506 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
507 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
508 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
509 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
510 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
511 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
512 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
513 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
514 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
515 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
516 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
517 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
518 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
519 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
520 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
521 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
522 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
523 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
524 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
525 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
526 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
527 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
528 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
529 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
530 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
531 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
534 static const uint16_t bwn_ntab_loftlt0[] = {
535 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
536 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
537 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
538 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
539 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
540 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
541 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
542 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
543 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
544 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
545 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
546 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
547 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
548 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
549 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
550 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
551 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
552 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
553 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
554 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
555 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
559 static const uint16_t bwn_ntab_loftlt1[] = {
560 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
561 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
562 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
563 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
564 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
565 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
566 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
567 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
568 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
569 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
570 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
571 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
572 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
573 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
574 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
575 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
576 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
577 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
578 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
579 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
580 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
584 static const uint8_t bwn_ntab_mcs[] = {
585 0x00, 0x08, 0x0A, 0x10, 0x12, 0x19, 0x1A, 0x1C,
586 0x40, 0x48, 0x4A, 0x50, 0x52, 0x59, 0x5A, 0x5C,
587 0x80, 0x88, 0x8A, 0x90, 0x92, 0x99, 0x9A, 0x9C,
588 0xC0, 0xC8, 0xCA, 0xD0, 0xD2, 0xD9, 0xDA, 0xDC,
589 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
590 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
591 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
592 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
593 0x00, 0x01, 0x02, 0x04, 0x08, 0x09, 0x0A, 0x0C,
594 0x10, 0x11, 0x12, 0x14, 0x18, 0x19, 0x1A, 0x1C,
595 0x20, 0x21, 0x22, 0x24, 0x40, 0x41, 0x42, 0x44,
596 0x48, 0x49, 0x4A, 0x4C, 0x50, 0x51, 0x52, 0x54,
597 0x58, 0x59, 0x5A, 0x5C, 0x60, 0x61, 0x62, 0x64,
598 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
599 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
600 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
603 static const uint32_t bwn_ntab_noisevar10[] = {
604 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
605 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
606 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
607 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
608 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
609 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
610 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
611 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
612 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
613 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
614 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
615 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
616 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
617 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
618 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
619 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
620 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
621 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
622 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
623 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
624 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
625 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
626 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
627 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
628 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
629 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
630 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
631 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
632 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
633 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
634 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
635 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
636 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
637 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
638 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
639 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
640 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
641 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
642 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
643 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
644 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
645 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
646 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
647 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
648 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
649 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
650 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
651 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
652 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
653 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
654 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
655 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
656 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
657 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
658 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
659 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
660 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
661 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
662 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
663 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
664 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
665 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
666 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
667 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
670 static const uint32_t bwn_ntab_noisevar11[] = {
671 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
672 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
673 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
674 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
675 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
676 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
677 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
678 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
679 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
680 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
681 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
682 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
683 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
684 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
685 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
686 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
687 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
688 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
689 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
690 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
691 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
692 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
693 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
694 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
695 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
696 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
697 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
698 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
699 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
700 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
701 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
702 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
703 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
704 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
705 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
706 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
707 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
708 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
709 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
710 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
711 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
712 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
713 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
714 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
715 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
716 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
717 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
718 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
719 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
720 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
721 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
722 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
723 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
724 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
725 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
726 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
727 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
728 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
729 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
730 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
731 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
732 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
733 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
734 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
737 static const uint16_t bwn_ntab_pilot[] = {
738 0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08,
739 0xFF08, 0xFF08, 0x80D5, 0x80D5, 0x80D5, 0x80D5,
740 0x80D5, 0x80D5, 0x80D5, 0x80D5, 0xFF0A, 0xFF82,
741 0xFFA0, 0xFF28, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
742 0xFF82, 0xFFA0, 0xFF28, 0xFF0A, 0xFFFF, 0xFFFF,
743 0xFFFF, 0xFFFF, 0xF83F, 0xFA1F, 0xFA97, 0xFAB5,
744 0xF2BD, 0xF0BF, 0xFFFF, 0xFFFF, 0xF017, 0xF815,
745 0xF215, 0xF095, 0xF035, 0xF01D, 0xFFFF, 0xFFFF,
746 0xFF08, 0xFF02, 0xFF80, 0xFF20, 0xFF08, 0xFF02,
747 0xFF80, 0xFF20, 0xF01F, 0xF817, 0xFA15, 0xF295,
748 0xF0B5, 0xF03D, 0xFFFF, 0xFFFF, 0xF82A, 0xFA0A,
749 0xFA82, 0xFAA0, 0xF2A8, 0xF0AA, 0xFFFF, 0xFFFF,
750 0xF002, 0xF800, 0xF200, 0xF080, 0xF020, 0xF008,
751 0xFFFF, 0xFFFF, 0xF00A, 0xF802, 0xFA00, 0xF280,
752 0xF0A0, 0xF028, 0xFFFF, 0xFFFF,
755 static const uint32_t bwn_ntab_pilotlt[] = {
756 0x76540123, 0x62407351, 0x76543201, 0x76540213,
757 0x76540123, 0x76430521,
760 static const uint32_t bwn_ntab_tdi20a0[] = {
761 0x00091226, 0x000A1429, 0x000B56AD, 0x000C58B0,
762 0x000D5AB3, 0x000E9CB6, 0x000F9EBA, 0x0000C13D,
763 0x00020301, 0x00030504, 0x00040708, 0x0005090B,
764 0x00064B8E, 0x00095291, 0x000A5494, 0x000B9718,
765 0x000C9927, 0x000D9B2A, 0x000EDD2E, 0x000FDF31,
766 0x000101B4, 0x000243B7, 0x000345BB, 0x000447BE,
767 0x00058982, 0x00068C05, 0x00099309, 0x000A950C,
768 0x000BD78F, 0x000CD992, 0x000DDB96, 0x000F1D99,
769 0x00005FA8, 0x0001422C, 0x0002842F, 0x00038632,
770 0x00048835, 0x0005CA38, 0x0006CCBC, 0x0009D3BF,
771 0x000B1603, 0x000C1806, 0x000D1A0A, 0x000E1C0D,
772 0x000F5E10, 0x00008093, 0x00018297, 0x0002C49A,
773 0x0003C680, 0x0004C880, 0x00060B00, 0x00070D00,
774 0x00000000, 0x00000000, 0x00000000,
777 static const uint32_t bwn_ntab_tdi20a1[] = {
778 0x00014B26, 0x00028D29, 0x000393AD, 0x00049630,
779 0x0005D833, 0x0006DA36, 0x00099C3A, 0x000A9E3D,
780 0x000BC081, 0x000CC284, 0x000DC488, 0x000F068B,
781 0x0000488E, 0x00018B91, 0x0002D214, 0x0003D418,
782 0x0004D6A7, 0x000618AA, 0x00071AAE, 0x0009DCB1,
783 0x000B1EB4, 0x000C0137, 0x000D033B, 0x000E053E,
784 0x000F4702, 0x00008905, 0x00020C09, 0x0003128C,
785 0x0004148F, 0x00051712, 0x00065916, 0x00091B19,
786 0x000A1D28, 0x000B5F2C, 0x000C41AF, 0x000D43B2,
787 0x000E85B5, 0x000F87B8, 0x0000C9BC, 0x00024CBF,
788 0x00035303, 0x00045506, 0x0005978A, 0x0006998D,
789 0x00095B90, 0x000A5D93, 0x000B9F97, 0x000C821A,
790 0x000D8400, 0x000EC600, 0x000FC800, 0x00010A00,
791 0x00000000, 0x00000000, 0x00000000,
794 static const uint32_t bwn_ntab_tdi40a0[] = {
795 0x0011A346, 0x00136CCF, 0x0014F5D9, 0x001641E2,
796 0x0017CB6B, 0x00195475, 0x001B2383, 0x001CAD0C,
797 0x001E7616, 0x0000821F, 0x00020BA8, 0x0003D4B2,
798 0x00056447, 0x00072DD0, 0x0008B6DA, 0x000A02E3,
799 0x000B8C6C, 0x000D15F6, 0x0011E484, 0x0013AE0D,
800 0x00153717, 0x00168320, 0x00180CA9, 0x00199633,
801 0x001B6548, 0x001CEED1, 0x001EB7DB, 0x0000C3E4,
802 0x00024D6D, 0x000416F7, 0x0005A585, 0x00076F0F,
803 0x0008F818, 0x000A4421, 0x000BCDAB, 0x000D9734,
804 0x00122649, 0x0013EFD2, 0x001578DC, 0x0016C4E5,
805 0x00184E6E, 0x001A17F8, 0x001BA686, 0x001D3010,
806 0x001EF999, 0x00010522, 0x00028EAC, 0x00045835,
807 0x0005E74A, 0x0007B0D3, 0x00093A5D, 0x000A85E6,
808 0x000C0F6F, 0x000DD8F9, 0x00126787, 0x00143111,
809 0x0015BA9A, 0x00170623, 0x00188FAD, 0x001A5936,
810 0x001BE84B, 0x001DB1D4, 0x001F3B5E, 0x000146E7,
811 0x00031070, 0x000499FA, 0x00062888, 0x0007F212,
812 0x00097B9B, 0x000AC7A4, 0x000C50AE, 0x000E1A37,
813 0x0012A94C, 0x001472D5, 0x0015FC5F, 0x00174868,
814 0x0018D171, 0x001A9AFB, 0x001C2989, 0x001DF313,
815 0x001F7C9C, 0x000188A5, 0x000351AF, 0x0004DB38,
816 0x0006AA4D, 0x000833D7, 0x0009BD60, 0x000B0969,
817 0x000C9273, 0x000E5BFC, 0x00132A8A, 0x0014B414,
818 0x00163D9D, 0x001789A6, 0x001912B0, 0x001ADC39,
819 0x001C6BCE, 0x001E34D8, 0x001FBE61, 0x0001CA6A,
820 0x00039374, 0x00051CFD, 0x0006EC0B, 0x00087515,
821 0x0009FE9E, 0x000B4AA7, 0x000CD3B1, 0x000E9D3A,
822 0x00000000, 0x00000000,
825 static const uint32_t bwn_ntab_tdi40a1[] = {
826 0x001EDB36, 0x000129CA, 0x0002B353, 0x00047CDD,
827 0x0005C8E6, 0x000791EF, 0x00091BF9, 0x000AAA07,
828 0x000C3391, 0x000DFD1A, 0x00120923, 0x0013D22D,
829 0x00155C37, 0x0016EACB, 0x00187454, 0x001A3DDE,
830 0x001B89E7, 0x001D12F0, 0x001F1CFA, 0x00016B88,
831 0x00033492, 0x0004BE1B, 0x00060A24, 0x0007D32E,
832 0x00095D38, 0x000AEC4C, 0x000C7555, 0x000E3EDF,
833 0x00124AE8, 0x001413F1, 0x0015A37B, 0x00172C89,
834 0x0018B593, 0x001A419C, 0x001BCB25, 0x001D942F,
835 0x001F63B9, 0x0001AD4D, 0x00037657, 0x0004C260,
836 0x00068BE9, 0x000814F3, 0x0009A47C, 0x000B2D8A,
837 0x000CB694, 0x000E429D, 0x00128C26, 0x001455B0,
838 0x0015E4BA, 0x00176E4E, 0x0018F758, 0x001A8361,
839 0x001C0CEA, 0x001DD674, 0x001FA57D, 0x0001EE8B,
840 0x0003B795, 0x0005039E, 0x0006CD27, 0x000856B1,
841 0x0009E5C6, 0x000B6F4F, 0x000CF859, 0x000E8462,
842 0x00130DEB, 0x00149775, 0x00162603, 0x0017AF8C,
843 0x00193896, 0x001AC49F, 0x001C4E28, 0x001E17B2,
844 0x0000A6C7, 0x00023050, 0x0003F9DA, 0x00054563,
845 0x00070EEC, 0x00089876, 0x000A2704, 0x000BB08D,
846 0x000D3A17, 0x001185A0, 0x00134F29, 0x0014D8B3,
847 0x001667C8, 0x0017F151, 0x00197ADB, 0x001B0664,
848 0x001C8FED, 0x001E5977, 0x0000E805, 0x0002718F,
849 0x00043B18, 0x000586A1, 0x0007502B, 0x0008D9B4,
850 0x000A68C9, 0x000BF252, 0x000DBBDC, 0x0011C7E5,
851 0x001390EE, 0x00151A78, 0x0016A906, 0x00183290,
852 0x0019BC19, 0x001B4822, 0x001CD12C, 0x001E9AB5,
853 0x00000000, 0x00000000,
856 static const uint32_t bwn_ntab_tdtrn[] = {
857 0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
858 0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
859 0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
860 0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
861 0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
862 0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
863 0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
864 0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
865 0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
866 0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
867 0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
868 0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
869 0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
870 0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
871 0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
872 0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
873 0xFA58FA58, 0xF895043B, 0xFF4C09C0, 0xFBC6FFA8,
874 0xFB84F384, 0x0798F6F9, 0x05760122, 0x058409F6,
875 0x0B500000, 0x05B7F542, 0x08860432, 0x06DDFEE7,
876 0xFB84F384, 0xF9D90664, 0xF7E8025C, 0x00FFF7BD,
877 0x05A805A8, 0xF7BD00FF, 0x025CF7E8, 0x0664F9D9,
878 0xF384FB84, 0xFEE706DD, 0x04320886, 0xF54205B7,
879 0x00000B50, 0x09F60584, 0x01220576, 0xF6F90798,
880 0xF384FB84, 0xFFA8FBC6, 0x09C0FF4C, 0x043BF895,
881 0x02D402D4, 0x07DE0270, 0xFC96079C, 0xF90AFE94,
882 0xFE00FF2C, 0x02D4065D, 0x092A0096, 0x0014FBB8,
883 0xFD2CFD2C, 0x076AFB3C, 0x0096F752, 0xF991FD87,
884 0xFB2C0200, 0xFEB8F960, 0x08E0FC96, 0x049802A8,
885 0xFD2CFD2C, 0x02A80498, 0xFC9608E0, 0xF960FEB8,
886 0x0200FB2C, 0xFD87F991, 0xF7520096, 0xFB3C076A,
887 0xFD2CFD2C, 0xFBB80014, 0x0096092A, 0x065D02D4,
888 0xFF2CFE00, 0xFE94F90A, 0x079CFC96, 0x027007DE,
889 0x02D402D4, 0x027007DE, 0x079CFC96, 0xFE94F90A,
890 0xFF2CFE00, 0x065D02D4, 0x0096092A, 0xFBB80014,
891 0xFD2CFD2C, 0xFB3C076A, 0xF7520096, 0xFD87F991,
892 0x0200FB2C, 0xF960FEB8, 0xFC9608E0, 0x02A80498,
893 0xFD2CFD2C, 0x049802A8, 0x08E0FC96, 0xFEB8F960,
894 0xFB2C0200, 0xF991FD87, 0x0096F752, 0x076AFB3C,
895 0xFD2CFD2C, 0x0014FBB8, 0x092A0096, 0x02D4065D,
896 0xFE00FF2C, 0xF90AFE94, 0xFC96079C, 0x07DE0270,
897 0x00000000, 0x00000000, 0x00000000, 0x00000000,
898 0x00000000, 0x00000000, 0x00000000, 0x00000000,
899 0x00000000, 0x00000000, 0x00000000, 0x00000000,
900 0x00000000, 0x00000000, 0x00000000, 0x00000000,
901 0x00000000, 0x00000000, 0x00000000, 0x00000000,
902 0x00000000, 0x00000000, 0x00000000, 0x00000000,
903 0x00000000, 0x00000000, 0x00000000, 0x00000000,
904 0x00000000, 0x00000000, 0x00000000, 0x00000000,
905 0x00000000, 0x00000000, 0x00000000, 0x00000000,
906 0x00000000, 0x00000000, 0x00000000, 0x00000000,
907 0x00000000, 0x00000000, 0x00000000, 0x00000000,
908 0x00000000, 0x00000000, 0x00000000, 0x00000000,
909 0x00000000, 0x00000000, 0x00000000, 0x00000000,
910 0x00000000, 0x00000000, 0x00000000, 0x00000000,
911 0x00000000, 0x00000000, 0x00000000, 0x00000000,
912 0x00000000, 0x00000000, 0x00000000, 0x00000000,
913 0x00000000, 0x00000000, 0x00000000, 0x00000000,
914 0x00000000, 0x00000000, 0x00000000, 0x00000000,
915 0x00000000, 0x00000000, 0x00000000, 0x00000000,
916 0x00000000, 0x00000000, 0x00000000, 0x00000000,
917 0x00000000, 0x00000000, 0x00000000, 0x00000000,
918 0x00000000, 0x00000000, 0x00000000, 0x00000000,
919 0x00000000, 0x00000000, 0x00000000, 0x00000000,
920 0x00000000, 0x00000000, 0x00000000, 0x00000000,
921 0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
922 0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
923 0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
924 0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
925 0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
926 0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
927 0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
928 0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
929 0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
930 0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
931 0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
932 0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
933 0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
934 0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
935 0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
936 0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
937 0x061C061C, 0xFF30009D, 0xFFB21141, 0xFD87FB54,
938 0xF65DFE59, 0x02EEF99E, 0x0166F03C, 0xFFF809B6,
939 0x000008A4, 0x000AF42B, 0x00EFF577, 0xFA840BF2,
940 0xFC02FF51, 0x08260F67, 0xFFF0036F, 0x0842F9C3,
941 0x00000000, 0x063DF7BE, 0xFC910010, 0xF099F7DA,
942 0x00AF03FE, 0xF40E057C, 0x0A89FF11, 0x0BD5FFF6,
943 0xF75C0000, 0xF64A0008, 0x0FC4FE9A, 0x0662FD12,
944 0x01A709A3, 0x04AC0279, 0xEEBF004E, 0xFF6300D0,
945 0xF9E4F9E4, 0x00D0FF63, 0x004EEEBF, 0x027904AC,
946 0x09A301A7, 0xFD120662, 0xFE9A0FC4, 0x0008F64A,
947 0x0000F75C, 0xFFF60BD5, 0xFF110A89, 0x057CF40E,
948 0x03FE00AF, 0xF7DAF099, 0x0010FC91, 0xF7BE063D,
949 0x00000000, 0xF9C30842, 0x036FFFF0, 0x0F670826,
950 0xFF51FC02, 0x0BF2FA84, 0xF57700EF, 0xF42B000A,
951 0x08A40000, 0x09B6FFF8, 0xF03C0166, 0xF99E02EE,
952 0xFE59F65D, 0xFB54FD87, 0x1141FFB2, 0x009DFF30,
953 0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
954 0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
955 0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
956 0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
957 0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
958 0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
959 0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
960 0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
961 0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
962 0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
963 0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
964 0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
965 0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
966 0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
967 0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
968 0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
969 0xFA58FA58, 0xF8F0FE00, 0x0448073D, 0xFDC9FE46,
970 0xF9910258, 0x089D0407, 0xFD5CF71A, 0x02AFFDE0,
971 0x083E0496, 0xFF5A0740, 0xFF7AFD97, 0x00FE01F1,
972 0x0009082E, 0xFA94FF75, 0xFECDF8EA, 0xFFB0F693,
973 0xFD2CFA58, 0x0433FF16, 0xFBA405DD, 0xFA610341,
974 0x06A606CB, 0x0039FD2D, 0x0677FA97, 0x01FA05E0,
975 0xF896003E, 0x075A068B, 0x012CFC3E, 0xFA23F98D,
976 0xFC7CFD43, 0xFF90FC0D, 0x01C10982, 0x00C601D6,
977 0xFD2CFD2C, 0x01D600C6, 0x098201C1, 0xFC0DFF90,
978 0xFD43FC7C, 0xF98DFA23, 0xFC3E012C, 0x068B075A,
979 0x003EF896, 0x05E001FA, 0xFA970677, 0xFD2D0039,
980 0x06CB06A6, 0x0341FA61, 0x05DDFBA4, 0xFF160433,
981 0xFA58FD2C, 0xF693FFB0, 0xF8EAFECD, 0xFF75FA94,
982 0x082E0009, 0x01F100FE, 0xFD97FF7A, 0x0740FF5A,
983 0x0496083E, 0xFDE002AF, 0xF71AFD5C, 0x0407089D,
984 0x0258F991, 0xFE46FDC9, 0x073D0448, 0xFE00F8F0,
985 0xFD2CFD2C, 0xFCE00500, 0xFC09FDDC, 0xFE680157,
986 0x04C70571, 0xFC3AFF21, 0xFCD70228, 0x056D0277,
987 0x0200FE00, 0x0022F927, 0xFE3C032B, 0xFC44FF3C,
988 0x03E9FBDB, 0x04570313, 0x04C9FF5C, 0x000D03B8,
989 0xFA580000, 0xFBE900D2, 0xF9D0FE0B, 0x0125FDF9,
990 0x042501BF, 0x0328FA2B, 0xFFA902F0, 0xFA250157,
991 0x0200FE00, 0x03740438, 0xFF0405FD, 0x030CFE52,
992 0x0037FB39, 0xFF6904C5, 0x04F8FD23, 0xFD31FC1B,
993 0xFD2CFD2C, 0xFC1BFD31, 0xFD2304F8, 0x04C5FF69,
994 0xFB390037, 0xFE52030C, 0x05FDFF04, 0x04380374,
995 0xFE000200, 0x0157FA25, 0x02F0FFA9, 0xFA2B0328,
996 0x01BF0425, 0xFDF90125, 0xFE0BF9D0, 0x00D2FBE9,
997 0x0000FA58, 0x03B8000D, 0xFF5C04C9, 0x03130457,
998 0xFBDB03E9, 0xFF3CFC44, 0x032BFE3C, 0xF9270022,
999 0xFE000200, 0x0277056D, 0x0228FCD7, 0xFF21FC3A,
1000 0x057104C7, 0x0157FE68, 0xFDDCFC09, 0x0500FCE0,
1001 0xFD2CFD2C, 0x0500FCE0, 0xFDDCFC09, 0x0157FE68,
1002 0x057104C7, 0xFF21FC3A, 0x0228FCD7, 0x0277056D,
1003 0xFE000200, 0xF9270022, 0x032BFE3C, 0xFF3CFC44,
1004 0xFBDB03E9, 0x03130457, 0xFF5C04C9, 0x03B8000D,
1005 0x0000FA58, 0x00D2FBE9, 0xFE0BF9D0, 0xFDF90125,
1006 0x01BF0425, 0xFA2B0328, 0x02F0FFA9, 0x0157FA25,
1007 0xFE000200, 0x04380374, 0x05FDFF04, 0xFE52030C,
1008 0xFB390037, 0x04C5FF69, 0xFD2304F8, 0xFC1BFD31,
1009 0xFD2CFD2C, 0xFD31FC1B, 0x04F8FD23, 0xFF6904C5,
1010 0x0037FB39, 0x030CFE52, 0xFF0405FD, 0x03740438,
1011 0x0200FE00, 0xFA250157, 0xFFA902F0, 0x0328FA2B,
1012 0x042501BF, 0x0125FDF9, 0xF9D0FE0B, 0xFBE900D2,
1013 0xFA580000, 0x000D03B8, 0x04C9FF5C, 0x04570313,
1014 0x03E9FBDB, 0xFC44FF3C, 0xFE3C032B, 0x0022F927,
1015 0x0200FE00, 0x056D0277, 0xFCD70228, 0xFC3AFF21,
1016 0x04C70571, 0xFE680157, 0xFC09FDDC, 0xFCE00500,
1017 0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
1018 0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
1019 0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
1020 0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
1021 0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
1022 0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
1023 0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
1024 0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
1025 0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
1026 0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
1027 0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
1028 0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
1029 0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
1030 0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
1031 0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
1032 0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
1035 static const uint32_t bwn_ntab_tmap[] = {
1036 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1037 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1038 0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
1039 0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
1040 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x000AA888,
1041 0x88880000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1042 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1043 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1044 0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
1045 0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
1046 0xF1111110, 0x11111111, 0x11F11111, 0x00011111,
1047 0x11110000, 0x1111F111, 0x11111111, 0x111111F1,
1048 0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00088AAA,
1049 0xAAAA0000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1050 0xAAA8AAA0, 0x8AAA8AAA, 0xAA8A8A8A, 0x000AAA88,
1051 0x8AAA0000, 0xAAA8A888, 0x8AA88A8A, 0x8A88A888,
1052 0x08080A00, 0x0A08080A, 0x080A0A08, 0x00080808,
1053 0x080A0000, 0x080A0808, 0x080A0808, 0x0A0A0A08,
1054 0xA0A0A0A0, 0x80A0A080, 0x8080A0A0, 0x00008080,
1055 0x80A00000, 0x80A080A0, 0xA080A0A0, 0x8080A0A0,
1056 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1057 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1058 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1059 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1060 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1061 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1062 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1063 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1064 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1065 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1066 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1067 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1068 0x99999000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1069 0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1070 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1071 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
1072 0x22000000, 0x2222B222, 0x22222222, 0x222222B2,
1073 0xB2222220, 0x22222222, 0x22D22222, 0x00000222,
1074 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1075 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1076 0x33000000, 0x3333B333, 0x33333333, 0x333333B3,
1077 0xB3333330, 0x33333333, 0x33D33333, 0x00000333,
1078 0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
1079 0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
1080 0x99B99B00, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1081 0x9B99BB99, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1082 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1083 0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
1084 0x22222200, 0x2222F222, 0x22222222, 0x222222F2,
1085 0x22222222, 0x22222222, 0x22F22222, 0x00000222,
1086 0x11000000, 0x1111F111, 0x11111111, 0x11111111,
1087 0xF1111111, 0x11111111, 0x11F11111, 0x01111111,
1088 0xBB9BB900, 0xB9B9BB99, 0xB99BBBBB, 0xBBBB9B9B,
1089 0xB9BB99BB, 0xB99999B9, 0xB9B9B99B, 0x00000BBB,
1090 0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1091 0xA8AA88AA, 0xA88888A8, 0xA8A8A88A, 0x0A888AAA,
1092 0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1093 0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00000AAA,
1094 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1095 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1096 0xBBBBBB00, 0x999BBBBB, 0x9BB99B9B, 0xB9B9B9BB,
1097 0xB9B99BBB, 0xB9B9B9BB, 0xB9BB9B99, 0x00000999,
1098 0x8A000000, 0xAA88A888, 0xA88888AA, 0xA88A8A88,
1099 0xA88AA88A, 0x88A8AAAA, 0xA8AA8AAA, 0x0888A88A,
1100 0x0B0B0B00, 0x090B0B0B, 0x0B090B0B, 0x0909090B,
1101 0x09090B0B, 0x09090B0B, 0x09090B09, 0x00000909,
1102 0x0A000000, 0x0A080808, 0x080A080A, 0x080A0A08,
1103 0x080A080A, 0x0808080A, 0x0A0A0A08, 0x0808080A,
1104 0xB0B0B000, 0x9090B0B0, 0x90B09090, 0xB0B0B090,
1105 0xB0B090B0, 0x90B0B0B0, 0xB0B09090, 0x00000090,
1106 0x80000000, 0xA080A080, 0xA08080A0, 0xA0808080,
1107 0xA080A080, 0x80A0A0A0, 0xA0A080A0, 0x00A0A0A0,
1108 0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
1109 0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
1110 0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
1111 0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
1112 0x33000000, 0x3333F333, 0x33333333, 0x333333F3,
1113 0xF3333330, 0x33333333, 0x33F33333, 0x00000333,
1114 0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
1115 0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
1116 0x99000000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1117 0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1118 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1119 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1120 0x88888000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1121 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1122 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1123 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
1124 0x88A88A00, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1125 0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1126 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1127 0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
1128 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1129 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1130 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1131 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1132 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1133 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1134 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1135 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1136 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1137 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1138 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1139 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1140 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1141 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1142 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1143 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1144 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1145 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1146 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1147 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1150 /* static tables, PHY revision >= 3 */
1151 static const uint32_t bwn_ntab_framestruct_r3[] = {
1152 0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
1153 0x09804506, 0x00100030, 0x09804507, 0x00100030,
1154 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1155 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1156 0x08004a0c, 0x00100004, 0x01000a0d, 0x00100024,
1157 0x0980450e, 0x00100034, 0x0980450f, 0x00100034,
1158 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1159 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1160 0x00000a04, 0x00100000, 0x11008a05, 0x00100020,
1161 0x1980c506, 0x00100030, 0x21810506, 0x00100030,
1162 0x21810506, 0x00100030, 0x01800504, 0x00100030,
1163 0x11808505, 0x00100030, 0x29814507, 0x01100030,
1164 0x00000a04, 0x00100000, 0x11008a05, 0x00100020,
1165 0x21810506, 0x00100030, 0x21810506, 0x00100030,
1166 0x29814507, 0x01100030, 0x00000000, 0x00000000,
1167 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1168 0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
1169 0x1980c50e, 0x00100038, 0x2181050e, 0x00100038,
1170 0x2181050e, 0x00100038, 0x0180050c, 0x00100038,
1171 0x1180850d, 0x00100038, 0x2981450f, 0x01100038,
1172 0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
1173 0x2181050e, 0x00100038, 0x2181050e, 0x00100038,
1174 0x2981450f, 0x01100038, 0x00000000, 0x00000000,
1175 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1176 0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
1177 0x1980c506, 0x00100030, 0x1980c506, 0x00100030,
1178 0x11808504, 0x00100030, 0x3981ca05, 0x00100030,
1179 0x29814507, 0x01100030, 0x00000000, 0x00000000,
1180 0x10008a04, 0x00100000, 0x3981ca05, 0x00100030,
1181 0x1980c506, 0x00100030, 0x29814507, 0x01100030,
1182 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1183 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1184 0x08004a0c, 0x00100008, 0x01000a0d, 0x00100028,
1185 0x1980c50e, 0x00100038, 0x1980c50e, 0x00100038,
1186 0x1180850c, 0x00100038, 0x3981ca0d, 0x00100038,
1187 0x2981450f, 0x01100038, 0x00000000, 0x00000000,
1188 0x10008a0c, 0x00100008, 0x3981ca0d, 0x00100038,
1189 0x1980c50e, 0x00100038, 0x2981450f, 0x01100038,
1190 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1191 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1192 0x40021404, 0x00100000, 0x02001405, 0x00100040,
1193 0x0b004a06, 0x01900060, 0x13008a06, 0x01900060,
1194 0x13008a06, 0x01900060, 0x43020a04, 0x00100060,
1195 0x1b00ca05, 0x00100060, 0x23010a07, 0x01500060,
1196 0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
1197 0x13008a06, 0x01900060, 0x13008a06, 0x01900060,
1198 0x23010a07, 0x01500060, 0x00000000, 0x00000000,
1199 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1200 0x4002140c, 0x00100010, 0x0200140d, 0x00100050,
1201 0x0b004a0e, 0x01900070, 0x13008a0e, 0x01900070,
1202 0x13008a0e, 0x01900070, 0x43020a0c, 0x00100070,
1203 0x1b00ca0d, 0x00100070, 0x23010a0f, 0x01500070,
1204 0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1205 0x13008a0e, 0x01900070, 0x13008a0e, 0x01900070,
1206 0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
1207 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1208 0x50029404, 0x00100000, 0x32019405, 0x00100040,
1209 0x0b004a06, 0x01900060, 0x0b004a06, 0x01900060,
1210 0x5b02ca04, 0x00100060, 0x3b01d405, 0x00100060,
1211 0x23010a07, 0x01500060, 0x00000000, 0x00000000,
1212 0x5802d404, 0x00100000, 0x3b01d405, 0x00100060,
1213 0x0b004a06, 0x01900060, 0x23010a07, 0x01500060,
1214 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1215 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1216 0x5002940c, 0x00100010, 0x3201940d, 0x00100050,
1217 0x0b004a0e, 0x01900070, 0x0b004a0e, 0x01900070,
1218 0x5b02ca0c, 0x00100070, 0x3b01d40d, 0x00100070,
1219 0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
1220 0x5802d40c, 0x00100010, 0x3b01d40d, 0x00100070,
1221 0x0b004a0e, 0x01900070, 0x23010a0f, 0x01500070,
1222 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1223 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1224 0x40021404, 0x000f4800, 0x62031405, 0x00100040,
1225 0x53028a06, 0x01900060, 0x53028a07, 0x01900060,
1226 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1227 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1228 0x4002140c, 0x000f4808, 0x6203140d, 0x00100048,
1229 0x53028a0e, 0x01900068, 0x53028a0f, 0x01900068,
1230 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1231 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1232 0x00000a0c, 0x00100004, 0x11008a0d, 0x00100024,
1233 0x1980c50e, 0x00100034, 0x2181050e, 0x00100034,
1234 0x2181050e, 0x00100034, 0x0180050c, 0x00100038,
1235 0x1180850d, 0x00100038, 0x1181850d, 0x00100038,
1236 0x2981450f, 0x01100038, 0x00000000, 0x00000000,
1237 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1238 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1239 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1240 0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
1241 0x2181050e, 0x00100038, 0x2181050e, 0x00100038,
1242 0x1181850d, 0x00100038, 0x2981450f, 0x01100038,
1243 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1244 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1245 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1246 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1247 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1248 0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
1249 0x0180c506, 0x00100030, 0x0180c506, 0x00100030,
1250 0x2180c50c, 0x00100030, 0x49820a0d, 0x0016a130,
1251 0x41824a0d, 0x0016a130, 0x2981450f, 0x01100030,
1252 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1253 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1254 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1255 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1256 0x2000ca0c, 0x00100000, 0x49820a0d, 0x0016a130,
1257 0x1980c50e, 0x00100030, 0x41824a0d, 0x0016a130,
1258 0x2981450f, 0x01100030, 0x00000000, 0x00000000,
1259 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1260 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1261 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1262 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1263 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1264 0x4002140c, 0x00100008, 0x0200140d, 0x00100048,
1265 0x0b004a0e, 0x01900068, 0x13008a0e, 0x01900068,
1266 0x13008a0e, 0x01900068, 0x43020a0c, 0x00100070,
1267 0x1b00ca0d, 0x00100070, 0x1b014a0d, 0x00100070,
1268 0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
1269 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1270 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1271 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1272 0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1273 0x13008a0e, 0x01900070, 0x13008a0e, 0x01900070,
1274 0x1b014a0d, 0x00100070, 0x23010a0f, 0x01500070,
1275 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1276 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1277 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1278 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1279 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1280 0x50029404, 0x00100000, 0x32019405, 0x00100040,
1281 0x03004a06, 0x01900060, 0x03004a06, 0x01900060,
1282 0x6b030a0c, 0x00100060, 0x4b02140d, 0x0016a160,
1283 0x4302540d, 0x0016a160, 0x23010a0f, 0x01500060,
1284 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1285 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1286 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1287 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1288 0x6b03140c, 0x00100060, 0x4b02140d, 0x0016a160,
1289 0x0b004a0e, 0x01900060, 0x4302540d, 0x0016a160,
1290 0x23010a0f, 0x01500060, 0x00000000, 0x00000000,
1291 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1292 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1293 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1294 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1295 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1296 0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
1297 0x53028a06, 0x01900060, 0x5b02ca06, 0x01900060,
1298 0x5b02ca06, 0x01900060, 0x43020a04, 0x00100060,
1299 0x1b00ca05, 0x00100060, 0x53028a07, 0x0190c060,
1300 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1301 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1302 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1303 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1304 0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1305 0x53028a0e, 0x01900070, 0x5b02ca0e, 0x01900070,
1306 0x5b02ca0e, 0x01900070, 0x43020a0c, 0x00100070,
1307 0x1b00ca0d, 0x00100070, 0x53028a0f, 0x0190c070,
1308 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1309 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1310 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1311 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1312 0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
1313 0x5b02ca06, 0x01900060, 0x5b02ca06, 0x01900060,
1314 0x53028a07, 0x0190c060, 0x00000000, 0x00000000,
1315 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1316 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1317 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1318 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1319 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1320 0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1321 0x5b02ca0e, 0x01900070, 0x5b02ca0e, 0x01900070,
1322 0x53028a0f, 0x0190c070, 0x00000000, 0x00000000,
1323 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1324 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1325 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1326 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1327 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1328 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1329 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1330 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1331 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1332 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1333 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1334 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1335 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1336 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1337 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1338 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1339 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1340 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1341 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1342 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1343 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1344 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1345 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1346 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1347 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1348 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1349 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1350 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1351 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1352 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1353 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1354 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1355 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1356 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1357 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1358 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1359 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1362 static const uint16_t bwn_ntab_pilot_r3[] = {
1363 0xff08, 0xff08, 0xff08, 0xff08, 0xff08, 0xff08,
1364 0xff08, 0xff08, 0x80d5, 0x80d5, 0x80d5, 0x80d5,
1365 0x80d5, 0x80d5, 0x80d5, 0x80d5, 0xff0a, 0xff82,
1366 0xffa0, 0xff28, 0xffff, 0xffff, 0xffff, 0xffff,
1367 0xff82, 0xffa0, 0xff28, 0xff0a, 0xffff, 0xffff,
1368 0xffff, 0xffff, 0xf83f, 0xfa1f, 0xfa97, 0xfab5,
1369 0xf2bd, 0xf0bf, 0xffff, 0xffff, 0xf017, 0xf815,
1370 0xf215, 0xf095, 0xf035, 0xf01d, 0xffff, 0xffff,
1371 0xff08, 0xff02, 0xff80, 0xff20, 0xff08, 0xff02,
1372 0xff80, 0xff20, 0xf01f, 0xf817, 0xfa15, 0xf295,
1373 0xf0b5, 0xf03d, 0xffff, 0xffff, 0xf82a, 0xfa0a,
1374 0xfa82, 0xfaa0, 0xf2a8, 0xf0aa, 0xffff, 0xffff,
1375 0xf002, 0xf800, 0xf200, 0xf080, 0xf020, 0xf008,
1376 0xffff, 0xffff, 0xf00a, 0xf802, 0xfa00, 0xf280,
1377 0xf0a0, 0xf028, 0xffff, 0xffff,
1380 static const uint32_t bwn_ntab_tmap_r3[] = {
1381 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1382 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1383 0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
1384 0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
1385 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x000aa888,
1386 0x88880000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1387 0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1388 0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1389 0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
1390 0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
1391 0xf1111110, 0x11111111, 0x11f11111, 0x00011111,
1392 0x11110000, 0x1111f111, 0x11111111, 0x111111f1,
1393 0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00088aaa,
1394 0xaaaa0000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
1395 0xaaa8aaa0, 0x8aaa8aaa, 0xaa8a8a8a, 0x000aaa88,
1396 0x8aaa0000, 0xaaa8a888, 0x8aa88a8a, 0x8a88a888,
1397 0x08080a00, 0x0a08080a, 0x080a0a08, 0x00080808,
1398 0x080a0000, 0x080a0808, 0x080a0808, 0x0a0a0a08,
1399 0xa0a0a0a0, 0x80a0a080, 0x8080a0a0, 0x00008080,
1400 0x80a00000, 0x80a080a0, 0xa080a0a0, 0x8080a0a0,
1401 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1402 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1403 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1404 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1405 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1406 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1407 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1408 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1409 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1410 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1411 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1412 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1413 0x99999000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
1414 0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
1415 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1416 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
1417 0x22000000, 0x2222b222, 0x22222222, 0x222222b2,
1418 0xb2222220, 0x22222222, 0x22d22222, 0x00000222,
1419 0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1420 0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1421 0x33000000, 0x3333b333, 0x33333333, 0x333333b3,
1422 0xb3333330, 0x33333333, 0x33d33333, 0x00000333,
1423 0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
1424 0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
1425 0x99b99b00, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
1426 0x9b99bb99, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
1427 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1428 0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
1429 0x22222200, 0x2222f222, 0x22222222, 0x222222f2,
1430 0x22222222, 0x22222222, 0x22f22222, 0x00000222,
1431 0x11000000, 0x1111f111, 0x11111111, 0x11111111,
1432 0xf1111111, 0x11111111, 0x11f11111, 0x01111111,
1433 0xbb9bb900, 0xb9b9bb99, 0xb99bbbbb, 0xbbbb9b9b,
1434 0xb9bb99bb, 0xb99999b9, 0xb9b9b99b, 0x00000bbb,
1435 0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
1436 0xa8aa88aa, 0xa88888a8, 0xa8a8a88a, 0x0a888aaa,
1437 0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
1438 0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00000aaa,
1439 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1440 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1441 0xbbbbbb00, 0x999bbbbb, 0x9bb99b9b, 0xb9b9b9bb,
1442 0xb9b99bbb, 0xb9b9b9bb, 0xb9bb9b99, 0x00000999,
1443 0x8a000000, 0xaa88a888, 0xa88888aa, 0xa88a8a88,
1444 0xa88aa88a, 0x88a8aaaa, 0xa8aa8aaa, 0x0888a88a,
1445 0x0b0b0b00, 0x090b0b0b, 0x0b090b0b, 0x0909090b,
1446 0x09090b0b, 0x09090b0b, 0x09090b09, 0x00000909,
1447 0x0a000000, 0x0a080808, 0x080a080a, 0x080a0a08,
1448 0x080a080a, 0x0808080a, 0x0a0a0a08, 0x0808080a,
1449 0xb0b0b000, 0x9090b0b0, 0x90b09090, 0xb0b0b090,
1450 0xb0b090b0, 0x90b0b0b0, 0xb0b09090, 0x00000090,
1451 0x80000000, 0xa080a080, 0xa08080a0, 0xa0808080,
1452 0xa080a080, 0x80a0a0a0, 0xa0a080a0, 0x00a0a0a0,
1453 0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
1454 0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
1455 0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
1456 0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
1457 0x33000000, 0x3333f333, 0x33333333, 0x333333f3,
1458 0xf3333330, 0x33333333, 0x33f33333, 0x00000333,
1459 0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
1460 0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
1461 0x99000000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
1462 0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
1463 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1464 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1465 0x88888000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1466 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1467 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1468 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
1469 0x88a88a00, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1470 0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1471 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1472 0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
1473 0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1474 0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1475 0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1476 0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1477 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1478 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1479 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1480 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1481 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1482 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1483 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1484 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1485 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1486 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1487 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1488 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1489 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1490 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1491 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1492 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1495 static const uint32_t bwn_ntab_intlevel_r3[] = {
1496 0x00802070, 0x0671188d, 0x0a60192c, 0x0a300e46,
1497 0x00c1188d, 0x080024d2, 0x00000070,
1500 static const uint32_t bwn_ntab_tdtrn_r3[] = {
1501 0x061c061c, 0x0050ee68, 0xf592fe36, 0xfe5212f6,
1502 0x00000c38, 0xfe5212f6, 0xf592fe36, 0x0050ee68,
1503 0x061c061c, 0xee680050, 0xfe36f592, 0x12f6fe52,
1504 0x0c380000, 0x12f6fe52, 0xfe36f592, 0xee680050,
1505 0x061c061c, 0x0050ee68, 0xf592fe36, 0xfe5212f6,
1506 0x00000c38, 0xfe5212f6, 0xf592fe36, 0x0050ee68,
1507 0x061c061c, 0xee680050, 0xfe36f592, 0x12f6fe52,
1508 0x0c380000, 0x12f6fe52, 0xfe36f592, 0xee680050,
1509 0x05e305e3, 0x004def0c, 0xf5f3fe47, 0xfe611246,
1510 0x00000bc7, 0xfe611246, 0xf5f3fe47, 0x004def0c,
1511 0x05e305e3, 0xef0c004d, 0xfe47f5f3, 0x1246fe61,
1512 0x0bc70000, 0x1246fe61, 0xfe47f5f3, 0xef0c004d,
1513 0x05e305e3, 0x004def0c, 0xf5f3fe47, 0xfe611246,
1514 0x00000bc7, 0xfe611246, 0xf5f3fe47, 0x004def0c,
1515 0x05e305e3, 0xef0c004d, 0xfe47f5f3, 0x1246fe61,
1516 0x0bc70000, 0x1246fe61, 0xfe47f5f3, 0xef0c004d,
1517 0xfa58fa58, 0xf895043b, 0xff4c09c0, 0xfbc6ffa8,
1518 0xfb84f384, 0x0798f6f9, 0x05760122, 0x058409f6,
1519 0x0b500000, 0x05b7f542, 0x08860432, 0x06ddfee7,
1520 0xfb84f384, 0xf9d90664, 0xf7e8025c, 0x00fff7bd,
1521 0x05a805a8, 0xf7bd00ff, 0x025cf7e8, 0x0664f9d9,
1522 0xf384fb84, 0xfee706dd, 0x04320886, 0xf54205b7,
1523 0x00000b50, 0x09f60584, 0x01220576, 0xf6f90798,
1524 0xf384fb84, 0xffa8fbc6, 0x09c0ff4c, 0x043bf895,
1525 0x02d402d4, 0x07de0270, 0xfc96079c, 0xf90afe94,
1526 0xfe00ff2c, 0x02d4065d, 0x092a0096, 0x0014fbb8,
1527 0xfd2cfd2c, 0x076afb3c, 0x0096f752, 0xf991fd87,
1528 0xfb2c0200, 0xfeb8f960, 0x08e0fc96, 0x049802a8,
1529 0xfd2cfd2c, 0x02a80498, 0xfc9608e0, 0xf960feb8,
1530 0x0200fb2c, 0xfd87f991, 0xf7520096, 0xfb3c076a,
1531 0xfd2cfd2c, 0xfbb80014, 0x0096092a, 0x065d02d4,
1532 0xff2cfe00, 0xfe94f90a, 0x079cfc96, 0x027007de,
1533 0x02d402d4, 0x027007de, 0x079cfc96, 0xfe94f90a,
1534 0xff2cfe00, 0x065d02d4, 0x0096092a, 0xfbb80014,
1535 0xfd2cfd2c, 0xfb3c076a, 0xf7520096, 0xfd87f991,
1536 0x0200fb2c, 0xf960feb8, 0xfc9608e0, 0x02a80498,
1537 0xfd2cfd2c, 0x049802a8, 0x08e0fc96, 0xfeb8f960,
1538 0xfb2c0200, 0xf991fd87, 0x0096f752, 0x076afb3c,
1539 0xfd2cfd2c, 0x0014fbb8, 0x092a0096, 0x02d4065d,
1540 0xfe00ff2c, 0xf90afe94, 0xfc96079c, 0x07de0270,
1541 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1542 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1543 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1544 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1545 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1546 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1547 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1548 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1549 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1550 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1551 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1552 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1553 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1554 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1555 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1556 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1557 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1558 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1559 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1560 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1561 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1562 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1563 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1564 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1565 0x062a0000, 0xfefa0759, 0x08b80908, 0xf396fc2d,
1566 0xf9d6045c, 0xfc4ef608, 0xf748f596, 0x07b207bf,
1567 0x062a062a, 0xf84ef841, 0xf748f596, 0x03b209f8,
1568 0xf9d6045c, 0x0c6a03d3, 0x08b80908, 0x0106f8a7,
1569 0x062a0000, 0xfefaf8a7, 0x08b8f6f8, 0xf39603d3,
1570 0xf9d6fba4, 0xfc4e09f8, 0xf7480a6a, 0x07b2f841,
1571 0x062af9d6, 0xf84e07bf, 0xf7480a6a, 0x03b2f608,
1572 0xf9d6fba4, 0x0c6afc2d, 0x08b8f6f8, 0x01060759,
1573 0x062a0000, 0xfefa0759, 0x08b80908, 0xf396fc2d,
1574 0xf9d6045c, 0xfc4ef608, 0xf748f596, 0x07b207bf,
1575 0x062a062a, 0xf84ef841, 0xf748f596, 0x03b209f8,
1576 0xf9d6045c, 0x0c6a03d3, 0x08b80908, 0x0106f8a7,
1577 0x062a0000, 0xfefaf8a7, 0x08b8f6f8, 0xf39603d3,
1578 0xf9d6fba4, 0xfc4e09f8, 0xf7480a6a, 0x07b2f841,
1579 0x062af9d6, 0xf84e07bf, 0xf7480a6a, 0x03b2f608,
1580 0xf9d6fba4, 0x0c6afc2d, 0x08b8f6f8, 0x01060759,
1581 0x061c061c, 0xff30009d, 0xffb21141, 0xfd87fb54,
1582 0xf65dfe59, 0x02eef99e, 0x0166f03c, 0xfff809b6,
1583 0x000008a4, 0x000af42b, 0x00eff577, 0xfa840bf2,
1584 0xfc02ff51, 0x08260f67, 0xfff0036f, 0x0842f9c3,
1585 0x00000000, 0x063df7be, 0xfc910010, 0xf099f7da,
1586 0x00af03fe, 0xf40e057c, 0x0a89ff11, 0x0bd5fff6,
1587 0xf75c0000, 0xf64a0008, 0x0fc4fe9a, 0x0662fd12,
1588 0x01a709a3, 0x04ac0279, 0xeebf004e, 0xff6300d0,
1589 0xf9e4f9e4, 0x00d0ff63, 0x004eeebf, 0x027904ac,
1590 0x09a301a7, 0xfd120662, 0xfe9a0fc4, 0x0008f64a,
1591 0x0000f75c, 0xfff60bd5, 0xff110a89, 0x057cf40e,
1592 0x03fe00af, 0xf7daf099, 0x0010fc91, 0xf7be063d,
1593 0x00000000, 0xf9c30842, 0x036ffff0, 0x0f670826,
1594 0xff51fc02, 0x0bf2fa84, 0xf57700ef, 0xf42b000a,
1595 0x08a40000, 0x09b6fff8, 0xf03c0166, 0xf99e02ee,
1596 0xfe59f65d, 0xfb54fd87, 0x1141ffb2, 0x009dff30,
1597 0x05e30000, 0xff060705, 0x085408a0, 0xf425fc59,
1598 0xfa1d042a, 0xfc78f67a, 0xf7acf60e, 0x075a0766,
1599 0x05e305e3, 0xf8a6f89a, 0xf7acf60e, 0x03880986,
1600 0xfa1d042a, 0x0bdb03a7, 0x085408a0, 0x00faf8fb,
1601 0x05e30000, 0xff06f8fb, 0x0854f760, 0xf42503a7,
1602 0xfa1dfbd6, 0xfc780986, 0xf7ac09f2, 0x075af89a,
1603 0x05e3fa1d, 0xf8a60766, 0xf7ac09f2, 0x0388f67a,
1604 0xfa1dfbd6, 0x0bdbfc59, 0x0854f760, 0x00fa0705,
1605 0x05e30000, 0xff060705, 0x085408a0, 0xf425fc59,
1606 0xfa1d042a, 0xfc78f67a, 0xf7acf60e, 0x075a0766,
1607 0x05e305e3, 0xf8a6f89a, 0xf7acf60e, 0x03880986,
1608 0xfa1d042a, 0x0bdb03a7, 0x085408a0, 0x00faf8fb,
1609 0x05e30000, 0xff06f8fb, 0x0854f760, 0xf42503a7,
1610 0xfa1dfbd6, 0xfc780986, 0xf7ac09f2, 0x075af89a,
1611 0x05e3fa1d, 0xf8a60766, 0xf7ac09f2, 0x0388f67a,
1612 0xfa1dfbd6, 0x0bdbfc59, 0x0854f760, 0x00fa0705,
1613 0xfa58fa58, 0xf8f0fe00, 0x0448073d, 0xfdc9fe46,
1614 0xf9910258, 0x089d0407, 0xfd5cf71a, 0x02affde0,
1615 0x083e0496, 0xff5a0740, 0xff7afd97, 0x00fe01f1,
1616 0x0009082e, 0xfa94ff75, 0xfecdf8ea, 0xffb0f693,
1617 0xfd2cfa58, 0x0433ff16, 0xfba405dd, 0xfa610341,
1618 0x06a606cb, 0x0039fd2d, 0x0677fa97, 0x01fa05e0,
1619 0xf896003e, 0x075a068b, 0x012cfc3e, 0xfa23f98d,
1620 0xfc7cfd43, 0xff90fc0d, 0x01c10982, 0x00c601d6,
1621 0xfd2cfd2c, 0x01d600c6, 0x098201c1, 0xfc0dff90,
1622 0xfd43fc7c, 0xf98dfa23, 0xfc3e012c, 0x068b075a,
1623 0x003ef896, 0x05e001fa, 0xfa970677, 0xfd2d0039,
1624 0x06cb06a6, 0x0341fa61, 0x05ddfba4, 0xff160433,
1625 0xfa58fd2c, 0xf693ffb0, 0xf8eafecd, 0xff75fa94,
1626 0x082e0009, 0x01f100fe, 0xfd97ff7a, 0x0740ff5a,
1627 0x0496083e, 0xfde002af, 0xf71afd5c, 0x0407089d,
1628 0x0258f991, 0xfe46fdc9, 0x073d0448, 0xfe00f8f0,
1629 0xfd2cfd2c, 0xfce00500, 0xfc09fddc, 0xfe680157,
1630 0x04c70571, 0xfc3aff21, 0xfcd70228, 0x056d0277,
1631 0x0200fe00, 0x0022f927, 0xfe3c032b, 0xfc44ff3c,
1632 0x03e9fbdb, 0x04570313, 0x04c9ff5c, 0x000d03b8,
1633 0xfa580000, 0xfbe900d2, 0xf9d0fe0b, 0x0125fdf9,
1634 0x042501bf, 0x0328fa2b, 0xffa902f0, 0xfa250157,
1635 0x0200fe00, 0x03740438, 0xff0405fd, 0x030cfe52,
1636 0x0037fb39, 0xff6904c5, 0x04f8fd23, 0xfd31fc1b,
1637 0xfd2cfd2c, 0xfc1bfd31, 0xfd2304f8, 0x04c5ff69,
1638 0xfb390037, 0xfe52030c, 0x05fdff04, 0x04380374,
1639 0xfe000200, 0x0157fa25, 0x02f0ffa9, 0xfa2b0328,
1640 0x01bf0425, 0xfdf90125, 0xfe0bf9d0, 0x00d2fbe9,
1641 0x0000fa58, 0x03b8000d, 0xff5c04c9, 0x03130457,
1642 0xfbdb03e9, 0xff3cfc44, 0x032bfe3c, 0xf9270022,
1643 0xfe000200, 0x0277056d, 0x0228fcd7, 0xff21fc3a,
1644 0x057104c7, 0x0157fe68, 0xfddcfc09, 0x0500fce0,
1645 0xfd2cfd2c, 0x0500fce0, 0xfddcfc09, 0x0157fe68,
1646 0x057104c7, 0xff21fc3a, 0x0228fcd7, 0x0277056d,
1647 0xfe000200, 0xf9270022, 0x032bfe3c, 0xff3cfc44,
1648 0xfbdb03e9, 0x03130457, 0xff5c04c9, 0x03b8000d,
1649 0x0000fa58, 0x00d2fbe9, 0xfe0bf9d0, 0xfdf90125,
1650 0x01bf0425, 0xfa2b0328, 0x02f0ffa9, 0x0157fa25,
1651 0xfe000200, 0x04380374, 0x05fdff04, 0xfe52030c,
1652 0xfb390037, 0x04c5ff69, 0xfd2304f8, 0xfc1bfd31,
1653 0xfd2cfd2c, 0xfd31fc1b, 0x04f8fd23, 0xff6904c5,
1654 0x0037fb39, 0x030cfe52, 0xff0405fd, 0x03740438,
1655 0x0200fe00, 0xfa250157, 0xffa902f0, 0x0328fa2b,
1656 0x042501bf, 0x0125fdf9, 0xf9d0fe0b, 0xfbe900d2,
1657 0xfa580000, 0x000d03b8, 0x04c9ff5c, 0x04570313,
1658 0x03e9fbdb, 0xfc44ff3c, 0xfe3c032b, 0x0022f927,
1659 0x0200fe00, 0x056d0277, 0xfcd70228, 0xfc3aff21,
1660 0x04c70571, 0xfe680157, 0xfc09fddc, 0xfce00500,
1661 0x05a80000, 0xff1006be, 0x0800084a, 0xf49cfc7e,
1662 0xfa580400, 0xfc9cf6da, 0xf800f672, 0x0710071c,
1663 0x05a805a8, 0xf8f0f8e4, 0xf800f672, 0x03640926,
1664 0xfa580400, 0x0b640382, 0x0800084a, 0x00f0f942,
1665 0x05a80000, 0xff10f942, 0x0800f7b6, 0xf49c0382,
1666 0xfa58fc00, 0xfc9c0926, 0xf800098e, 0x0710f8e4,
1667 0x05a8fa58, 0xf8f0071c, 0xf800098e, 0x0364f6da,
1668 0xfa58fc00, 0x0b64fc7e, 0x0800f7b6, 0x00f006be,
1669 0x05a80000, 0xff1006be, 0x0800084a, 0xf49cfc7e,
1670 0xfa580400, 0xfc9cf6da, 0xf800f672, 0x0710071c,
1671 0x05a805a8, 0xf8f0f8e4, 0xf800f672, 0x03640926,
1672 0xfa580400, 0x0b640382, 0x0800084a, 0x00f0f942,
1673 0x05a80000, 0xff10f942, 0x0800f7b6, 0xf49c0382,
1674 0xfa58fc00, 0xfc9c0926, 0xf800098e, 0x0710f8e4,
1675 0x05a8fa58, 0xf8f0071c, 0xf800098e, 0x0364f6da,
1676 0xfa58fc00, 0x0b64fc7e, 0x0800f7b6, 0x00f006be,
1679 static const uint32_t bwn_ntab_noisevar_r3[] = {
1680 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1681 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1682 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1683 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1684 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1685 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1686 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1687 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1688 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1689 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1690 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1691 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1692 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1693 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1694 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1695 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1696 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1697 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1698 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1699 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1700 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1701 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1702 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1703 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1704 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1705 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1706 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1707 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1708 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1709 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1710 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1711 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1712 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1713 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1714 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1715 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1716 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1717 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1718 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1719 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1720 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1721 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1722 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1723 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1724 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1725 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1726 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1727 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1728 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1729 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1730 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1731 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1732 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1733 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1734 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1735 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1736 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1737 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1738 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1739 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1740 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1741 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1742 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1743 0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1746 static const uint16_t bwn_ntab_mcs_r3[] = {
1747 0x0000, 0x0008, 0x000a, 0x0010, 0x0012, 0x0019,
1748 0x001a, 0x001c, 0x0080, 0x0088, 0x008a, 0x0090,
1749 0x0092, 0x0099, 0x009a, 0x009c, 0x0100, 0x0108,
1750 0x010a, 0x0110, 0x0112, 0x0119, 0x011a, 0x011c,
1751 0x0180, 0x0188, 0x018a, 0x0190, 0x0192, 0x0199,
1752 0x019a, 0x019c, 0x0000, 0x0098, 0x00a0, 0x00a8,
1753 0x009a, 0x00a2, 0x00aa, 0x0120, 0x0128, 0x0128,
1754 0x0130, 0x0138, 0x0138, 0x0140, 0x0122, 0x012a,
1755 0x012a, 0x0132, 0x013a, 0x013a, 0x0142, 0x01a8,
1756 0x01b0, 0x01b8, 0x01b0, 0x01b8, 0x01c0, 0x01c8,
1757 0x01c0, 0x01c8, 0x01d0, 0x01d0, 0x01d8, 0x01aa,
1758 0x01b2, 0x01ba, 0x01b2, 0x01ba, 0x01c2, 0x01ca,
1759 0x01c2, 0x01ca, 0x01d2, 0x01d2, 0x01da, 0x0001,
1760 0x0002, 0x0004, 0x0009, 0x000c, 0x0011, 0x0014,
1761 0x0018, 0x0020, 0x0021, 0x0022, 0x0024, 0x0081,
1762 0x0082, 0x0084, 0x0089, 0x008c, 0x0091, 0x0094,
1763 0x0098, 0x00a0, 0x00a1, 0x00a2, 0x00a4, 0x0007,
1764 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1765 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1766 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1767 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1771 static const uint32_t bwn_ntab_tdi20a0_r3[] = {
1772 0x00091226, 0x000a1429, 0x000b56ad, 0x000c58b0,
1773 0x000d5ab3, 0x000e9cb6, 0x000f9eba, 0x0000c13d,
1774 0x00020301, 0x00030504, 0x00040708, 0x0005090b,
1775 0x00064b8e, 0x00095291, 0x000a5494, 0x000b9718,
1776 0x000c9927, 0x000d9b2a, 0x000edd2e, 0x000fdf31,
1777 0x000101b4, 0x000243b7, 0x000345bb, 0x000447be,
1778 0x00058982, 0x00068c05, 0x00099309, 0x000a950c,
1779 0x000bd78f, 0x000cd992, 0x000ddb96, 0x000f1d99,
1780 0x00005fa8, 0x0001422c, 0x0002842f, 0x00038632,
1781 0x00048835, 0x0005ca38, 0x0006ccbc, 0x0009d3bf,
1782 0x000b1603, 0x000c1806, 0x000d1a0a, 0x000e1c0d,
1783 0x000f5e10, 0x00008093, 0x00018297, 0x0002c49a,
1784 0x0003c680, 0x0004c880, 0x00060b00, 0x00070d00,
1785 0x00000000, 0x00000000, 0x00000000,
1788 static const uint32_t bwn_ntab_tdi20a1_r3[] = {
1789 0x00014b26, 0x00028d29, 0x000393ad, 0x00049630,
1790 0x0005d833, 0x0006da36, 0x00099c3a, 0x000a9e3d,
1791 0x000bc081, 0x000cc284, 0x000dc488, 0x000f068b,
1792 0x0000488e, 0x00018b91, 0x0002d214, 0x0003d418,
1793 0x0004d6a7, 0x000618aa, 0x00071aae, 0x0009dcb1,
1794 0x000b1eb4, 0x000c0137, 0x000d033b, 0x000e053e,
1795 0x000f4702, 0x00008905, 0x00020c09, 0x0003128c,
1796 0x0004148f, 0x00051712, 0x00065916, 0x00091b19,
1797 0x000a1d28, 0x000b5f2c, 0x000c41af, 0x000d43b2,
1798 0x000e85b5, 0x000f87b8, 0x0000c9bc, 0x00024cbf,
1799 0x00035303, 0x00045506, 0x0005978a, 0x0006998d,
1800 0x00095b90, 0x000a5d93, 0x000b9f97, 0x000c821a,
1801 0x000d8400, 0x000ec600, 0x000fc800, 0x00010a00,
1802 0x00000000, 0x00000000, 0x00000000,
1805 static const uint32_t bwn_ntab_tdi40a0_r3[] = {
1806 0x0011a346, 0x00136ccf, 0x0014f5d9, 0x001641e2,
1807 0x0017cb6b, 0x00195475, 0x001b2383, 0x001cad0c,
1808 0x001e7616, 0x0000821f, 0x00020ba8, 0x0003d4b2,
1809 0x00056447, 0x00072dd0, 0x0008b6da, 0x000a02e3,
1810 0x000b8c6c, 0x000d15f6, 0x0011e484, 0x0013ae0d,
1811 0x00153717, 0x00168320, 0x00180ca9, 0x00199633,
1812 0x001b6548, 0x001ceed1, 0x001eb7db, 0x0000c3e4,
1813 0x00024d6d, 0x000416f7, 0x0005a585, 0x00076f0f,
1814 0x0008f818, 0x000a4421, 0x000bcdab, 0x000d9734,
1815 0x00122649, 0x0013efd2, 0x001578dc, 0x0016c4e5,
1816 0x00184e6e, 0x001a17f8, 0x001ba686, 0x001d3010,
1817 0x001ef999, 0x00010522, 0x00028eac, 0x00045835,
1818 0x0005e74a, 0x0007b0d3, 0x00093a5d, 0x000a85e6,
1819 0x000c0f6f, 0x000dd8f9, 0x00126787, 0x00143111,
1820 0x0015ba9a, 0x00170623, 0x00188fad, 0x001a5936,
1821 0x001be84b, 0x001db1d4, 0x001f3b5e, 0x000146e7,
1822 0x00031070, 0x000499fa, 0x00062888, 0x0007f212,
1823 0x00097b9b, 0x000ac7a4, 0x000c50ae, 0x000e1a37,
1824 0x0012a94c, 0x001472d5, 0x0015fc5f, 0x00174868,
1825 0x0018d171, 0x001a9afb, 0x001c2989, 0x001df313,
1826 0x001f7c9c, 0x000188a5, 0x000351af, 0x0004db38,
1827 0x0006aa4d, 0x000833d7, 0x0009bd60, 0x000b0969,
1828 0x000c9273, 0x000e5bfc, 0x00132a8a, 0x0014b414,
1829 0x00163d9d, 0x001789a6, 0x001912b0, 0x001adc39,
1830 0x001c6bce, 0x001e34d8, 0x001fbe61, 0x0001ca6a,
1831 0x00039374, 0x00051cfd, 0x0006ec0b, 0x00087515,
1832 0x0009fe9e, 0x000b4aa7, 0x000cd3b1, 0x000e9d3a,
1833 0x00000000, 0x00000000,
1836 static const uint32_t bwn_ntab_tdi40a1_r3[] = {
1837 0x001edb36, 0x000129ca, 0x0002b353, 0x00047cdd,
1838 0x0005c8e6, 0x000791ef, 0x00091bf9, 0x000aaa07,
1839 0x000c3391, 0x000dfd1a, 0x00120923, 0x0013d22d,
1840 0x00155c37, 0x0016eacb, 0x00187454, 0x001a3dde,
1841 0x001b89e7, 0x001d12f0, 0x001f1cfa, 0x00016b88,
1842 0x00033492, 0x0004be1b, 0x00060a24, 0x0007d32e,
1843 0x00095d38, 0x000aec4c, 0x000c7555, 0x000e3edf,
1844 0x00124ae8, 0x001413f1, 0x0015a37b, 0x00172c89,
1845 0x0018b593, 0x001a419c, 0x001bcb25, 0x001d942f,
1846 0x001f63b9, 0x0001ad4d, 0x00037657, 0x0004c260,
1847 0x00068be9, 0x000814f3, 0x0009a47c, 0x000b2d8a,
1848 0x000cb694, 0x000e429d, 0x00128c26, 0x001455b0,
1849 0x0015e4ba, 0x00176e4e, 0x0018f758, 0x001a8361,
1850 0x001c0cea, 0x001dd674, 0x001fa57d, 0x0001ee8b,
1851 0x0003b795, 0x0005039e, 0x0006cd27, 0x000856b1,
1852 0x0009e5c6, 0x000b6f4f, 0x000cf859, 0x000e8462,
1853 0x00130deb, 0x00149775, 0x00162603, 0x0017af8c,
1854 0x00193896, 0x001ac49f, 0x001c4e28, 0x001e17b2,
1855 0x0000a6c7, 0x00023050, 0x0003f9da, 0x00054563,
1856 0x00070eec, 0x00089876, 0x000a2704, 0x000bb08d,
1857 0x000d3a17, 0x001185a0, 0x00134f29, 0x0014d8b3,
1858 0x001667c8, 0x0017f151, 0x00197adb, 0x001b0664,
1859 0x001c8fed, 0x001e5977, 0x0000e805, 0x0002718f,
1860 0x00043b18, 0x000586a1, 0x0007502b, 0x0008d9b4,
1861 0x000a68c9, 0x000bf252, 0x000dbbdc, 0x0011c7e5,
1862 0x001390ee, 0x00151a78, 0x0016a906, 0x00183290,
1863 0x0019bc19, 0x001b4822, 0x001cd12c, 0x001e9ab5,
1864 0x00000000, 0x00000000,
1867 static const uint32_t bwn_ntab_pilotlt_r3[] = {
1868 0x76540213, 0x62407351, 0x76543210, 0x76540213,
1869 0x76540213, 0x76430521,
1872 static const uint32_t bwn_ntab_channelest_r3[] = {
1873 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1874 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1875 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1876 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1877 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1878 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1879 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1880 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1881 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1882 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1883 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1884 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1885 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1886 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1887 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1888 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1889 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1890 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1891 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1892 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1893 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1894 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1895 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1896 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1899 static const uint8_t bwn_ntab_framelookup_r3[] = {
1900 0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
1901 0x0a, 0x0c, 0x1c, 0x1c, 0x0b, 0x0d, 0x1e, 0x1e,
1902 0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1a, 0x1a,
1903 0x0e, 0x10, 0x20, 0x28, 0x0f, 0x11, 0x22, 0x2a,
1906 static const uint8_t bwn_ntab_estimatepowerlt0_r3[] = {
1907 0x55, 0x54, 0x54, 0x53, 0x52, 0x52, 0x51, 0x51,
1908 0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c,
1909 0x4b, 0x4a, 0x49, 0x49, 0x48, 0x47, 0x46, 0x46,
1910 0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3f,
1911 0x3e, 0x3d, 0x3c, 0x3a, 0x39, 0x38, 0x37, 0x36,
1912 0x35, 0x33, 0x32, 0x31, 0x2f, 0x2e, 0x2c, 0x2b,
1913 0x29, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1a,
1914 0x18, 0x15, 0x12, 0x0e, 0x0b, 0x07, 0x02, 0xfd,
1917 static const uint8_t bwn_ntab_estimatepowerlt1_r3[] = {
1918 0x55, 0x54, 0x54, 0x53, 0x52, 0x52, 0x51, 0x51,
1919 0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c,
1920 0x4b, 0x4a, 0x49, 0x49, 0x48, 0x47, 0x46, 0x46,
1921 0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3f,
1922 0x3e, 0x3d, 0x3c, 0x3a, 0x39, 0x38, 0x37, 0x36,
1923 0x35, 0x33, 0x32, 0x31, 0x2f, 0x2e, 0x2c, 0x2b,
1924 0x29, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1a,
1925 0x18, 0x15, 0x12, 0x0e, 0x0b, 0x07, 0x02, 0xfd,
1928 static const uint8_t bwn_ntab_adjustpower0_r3[] = {
1929 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1930 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1931 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1932 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1933 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1934 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1935 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1936 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1937 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1938 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1939 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1940 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1941 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1942 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1943 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1944 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1947 static const uint8_t bwn_ntab_adjustpower1_r3[] = {
1948 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1949 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1950 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1951 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1952 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1953 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1954 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1955 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1956 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1957 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1958 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1959 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1960 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1961 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1962 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1963 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1966 static const uint32_t bwn_ntab_gainctl0_r3[] = {
1967 0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
1968 0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
1969 0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
1970 0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
1971 0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
1972 0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
1973 0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
1974 0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
1975 0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
1976 0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
1977 0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
1978 0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
1979 0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
1980 0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
1981 0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
1982 0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
1983 0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
1984 0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
1985 0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
1986 0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
1987 0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
1988 0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
1989 0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
1990 0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
1991 0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
1992 0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
1993 0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
1994 0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
1995 0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
1996 0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
1997 0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
1998 0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
2001 static const uint32_t bwn_ntab_gainctl1_r3[] = {
2002 0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
2003 0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
2004 0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
2005 0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
2006 0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
2007 0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
2008 0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
2009 0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
2010 0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
2011 0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
2012 0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
2013 0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
2014 0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
2015 0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
2016 0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
2017 0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
2018 0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
2019 0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
2020 0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
2021 0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
2022 0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
2023 0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
2024 0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
2025 0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
2026 0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
2027 0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
2028 0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
2029 0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
2030 0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
2031 0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
2032 0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
2033 0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
2036 static const uint32_t bwn_ntab_iqlt0_r3[] = {
2037 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2038 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2039 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2040 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2041 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2042 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2043 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2044 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2045 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2046 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2047 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2048 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2049 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2050 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2051 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2052 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2053 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2054 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2055 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2056 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2057 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2058 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2059 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2060 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2061 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2062 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2063 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2064 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2065 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2066 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2067 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2068 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2071 static const uint32_t bwn_ntab_iqlt1_r3[] = {
2072 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2073 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2074 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2075 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2076 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2077 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2078 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2079 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2080 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2081 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2082 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2083 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2084 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2085 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2086 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2087 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2088 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2089 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2090 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2091 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2092 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2093 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2094 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2095 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2096 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2097 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2098 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2099 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2100 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2101 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2102 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2103 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2106 static const uint16_t bwn_ntab_loftlt0_r3[] = {
2107 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2108 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2109 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2110 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2111 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2112 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2113 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2114 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2115 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2116 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2117 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2118 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2119 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2120 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2121 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2122 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2123 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2124 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2125 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2126 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2127 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2131 static const uint16_t bwn_ntab_loftlt1_r3[] = {
2132 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2133 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2134 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2135 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2136 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2137 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2138 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2139 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2140 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2141 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2142 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2143 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2144 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2145 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2146 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2147 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2148 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2149 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2150 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2151 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2152 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2156 /* volatile tables, PHY revision >= 3 */
2158 /* indexed by antswctl2g */
2159 static const uint16_t bwn_ntab_antswctl_r3[4][32] = {
2161 0x0082, 0x0082, 0x0211, 0x0222, 0x0328,
2162 0x0000, 0x0000, 0x0000, 0x0144, 0x0000,
2163 0x0000, 0x0000, 0x0188, 0x0000, 0x0000,
2164 0x0000, 0x0082, 0x0082, 0x0211, 0x0222,
2165 0x0328, 0x0000, 0x0000, 0x0000, 0x0144,
2166 0x0000, 0x0000, 0x0000, 0x0188, 0x0000,
2170 0x0022, 0x0022, 0x0011, 0x0022, 0x0022,
2171 0x0000, 0x0000, 0x0000, 0x0011, 0x0000,
2172 0x0000, 0x0000, 0x0022, 0x0000, 0x0000,
2173 0x0000, 0x0022, 0x0022, 0x0011, 0x0022,
2174 0x0022, 0x0000, 0x0000, 0x0000, 0x0011,
2175 0x0000, 0x0000, 0x0000, 0x0022, 0x0000,
2179 0x0088, 0x0088, 0x0044, 0x0088, 0x0088,
2180 0x0000, 0x0000, 0x0000, 0x0044, 0x0000,
2181 0x0000, 0x0000, 0x0088, 0x0000, 0x0000,
2182 0x0000, 0x0088, 0x0088, 0x0044, 0x0088,
2183 0x0088, 0x0000, 0x0000, 0x0000, 0x0044,
2184 0x0000, 0x0000, 0x0000, 0x0088, 0x0000,
2188 0x0022, 0x0022, 0x0011, 0x0022, 0x0000,
2189 0x0000, 0x0000, 0x0000, 0x0011, 0x0000,
2190 0x0000, 0x0000, 0x0022, 0x0000, 0x0000,
2191 0x03cc, 0x0022, 0x0022, 0x0011, 0x0022,
2192 0x0000, 0x0000, 0x0000, 0x0000, 0x0011,
2193 0x0000, 0x0000, 0x0000, 0x0022, 0x0000,
2198 /* static tables, PHY revision >= 7 */
2200 /* Copied from brcmsmac (5.75.11) */
2201 static const uint32_t bwn_ntab_tmap_r7[] = {
2202 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2203 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2204 0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
2205 0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
2206 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x000aa888,
2207 0x88880000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2208 0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
2209 0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
2210 0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
2211 0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
2212 0xf1111110, 0x11111111, 0x11f11111, 0x00011111,
2213 0x11110000, 0x1111f111, 0x11111111, 0x111111f1,
2214 0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00088aaa,
2215 0xaaaa0000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
2216 0xaaa8aaa0, 0x8aaa8aaa, 0xaa8a8a8a, 0x000aaa88,
2217 0x8aaa0000, 0xaaa8a888, 0x8aa88a8a, 0x8a88a888,
2218 0x08080a00, 0x0a08080a, 0x080a0a08, 0x00080808,
2219 0x080a0000, 0x080a0808, 0x080a0808, 0x0a0a0a08,
2220 0xa0a0a0a0, 0x80a0a080, 0x8080a0a0, 0x00008080,
2221 0x80a00000, 0x80a080a0, 0xa080a0a0, 0x8080a0a0,
2222 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2223 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2224 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2225 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2226 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2227 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2228 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2229 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2230 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2231 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2232 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2233 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2234 0x99999000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
2235 0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
2236 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2237 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
2238 0x22000000, 0x2222b222, 0x22222222, 0x222222b2,
2239 0xb2222220, 0x22222222, 0x22d22222, 0x00000222,
2240 0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
2241 0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
2242 0x33000000, 0x3333b333, 0x33333333, 0x333333b3,
2243 0xb3333330, 0x33333333, 0x33d33333, 0x00000333,
2244 0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
2245 0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
2246 0x99b99b00, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
2247 0x9b99bb99, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
2248 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2249 0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
2250 0x22222200, 0x2222f222, 0x22222222, 0x222222f2,
2251 0x22222222, 0x22222222, 0x22f22222, 0x00000222,
2252 0x11000000, 0x1111f111, 0x11111111, 0x11111111,
2253 0xf1111111, 0x11111111, 0x11f11111, 0x01111111,
2254 0xbb9bb900, 0xb9b9bb99, 0xb99bbbbb, 0xbbbb9b9b,
2255 0xb9bb99bb, 0xb99999b9, 0xb9b9b99b, 0x00000bbb,
2256 0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
2257 0xa8aa88aa, 0xa88888a8, 0xa8a8a88a, 0x0a888aaa,
2258 0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
2259 0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00000aaa,
2260 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2261 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2262 0xbbbbbb00, 0x999bbbbb, 0x9bb99b9b, 0xb9b9b9bb,
2263 0xb9b99bbb, 0xb9b9b9bb, 0xb9bb9b99, 0x00000999,
2264 0x8a000000, 0xaa88a888, 0xa88888aa, 0xa88a8a88,
2265 0xa88aa88a, 0x88a8aaaa, 0xa8aa8aaa, 0x0888a88a,
2266 0x0b0b0b00, 0x090b0b0b, 0x0b090b0b, 0x0909090b,
2267 0x09090b0b, 0x09090b0b, 0x09090b09, 0x00000909,
2268 0x0a000000, 0x0a080808, 0x080a080a, 0x080a0a08,
2269 0x080a080a, 0x0808080a, 0x0a0a0a08, 0x0808080a,
2270 0xb0b0b000, 0x9090b0b0, 0x90b09090, 0xb0b0b090,
2271 0xb0b090b0, 0x90b0b0b0, 0xb0b09090, 0x00000090,
2272 0x80000000, 0xa080a080, 0xa08080a0, 0xa0808080,
2273 0xa080a080, 0x80a0a0a0, 0xa0a080a0, 0x00a0a0a0,
2274 0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
2275 0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
2276 0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
2277 0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
2278 0x33000000, 0x3333f333, 0x33333333, 0x333333f3,
2279 0xf3333330, 0x33333333, 0x33f33333, 0x00000333,
2280 0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
2281 0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
2282 0x99000000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
2283 0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
2284 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2285 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2286 0x88888000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2287 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2288 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2289 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
2290 0x88a88a00, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2291 0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x000aa888,
2292 0x88880000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2293 0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
2294 0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
2295 0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
2296 0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
2297 0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
2298 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2299 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2300 0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2301 0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2302 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2303 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2304 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2305 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2306 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2307 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2308 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2309 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2310 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2311 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2312 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2313 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2316 /* Extracted from MMIO dump of 6.30.223.141 */
2317 static const uint32_t bwn_ntab_noisevar_r7[] = {
2318 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2319 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2320 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2321 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2322 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2323 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2324 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2325 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2326 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2327 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2328 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2329 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2330 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2331 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2332 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2333 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2334 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2335 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2336 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2337 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2338 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2339 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2340 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2341 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2342 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2343 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2344 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2345 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2346 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2347 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2348 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2349 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2350 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2351 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2352 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2353 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2354 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2355 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2356 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2357 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2358 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2359 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2360 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2361 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2362 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2363 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2364 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2365 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2366 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2367 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2368 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2369 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2370 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2371 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2372 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2373 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2374 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2375 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2376 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2377 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2378 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2379 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2380 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2381 0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2384 /**************************************************
2386 **************************************************/
2388 static const uint32_t bwn_ntab_tx_gain_rev0_1_2[] = {
2389 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
2390 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
2391 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
2392 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
2393 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
2394 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
2395 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
2396 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
2397 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
2398 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
2399 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
2400 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
2401 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
2402 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
2403 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
2404 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
2405 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
2406 0x03902942, 0x03902844, 0x03902842, 0x03902744,
2407 0x03902742, 0x03902644, 0x03902642, 0x03902544,
2408 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
2409 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
2410 0x03802842, 0x03802744, 0x03802742, 0x03802644,
2411 0x03802642, 0x03802544, 0x03802542, 0x03802444,
2412 0x03802442, 0x03802344, 0x03802342, 0x03802244,
2413 0x03802242, 0x03802144, 0x03802142, 0x03802044,
2414 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
2415 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
2416 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
2417 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
2418 0x03801842, 0x03801744, 0x03801742, 0x03801644,
2419 0x03801642, 0x03801544, 0x03801542, 0x03801444,
2420 0x03801442, 0x03801344, 0x03801342, 0x00002b00,
2425 static const uint32_t bwn_ntab_tx_gain_epa_rev3_2g[] = {
2426 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
2427 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
2428 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
2429 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
2430 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
2431 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
2432 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
2433 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
2434 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
2435 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
2436 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
2437 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
2438 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
2439 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
2440 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
2441 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
2442 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
2443 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
2444 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
2445 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
2446 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
2447 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
2448 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
2449 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
2450 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
2451 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
2452 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
2453 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
2454 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
2455 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
2456 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
2457 0x1041003c, 0x1041003b, 0x10410039, 0x10410037,
2460 static const uint32_t bwn_ntab_tx_gain_epa_rev3_hi_pwr_2g[] = {
2461 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
2462 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
2463 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
2464 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
2465 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
2466 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
2467 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
2468 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
2469 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
2470 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
2471 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
2472 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
2473 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
2474 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
2475 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
2476 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
2477 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
2478 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
2479 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
2480 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
2481 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
2482 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
2483 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
2484 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
2485 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
2486 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
2487 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
2488 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
2489 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
2490 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
2491 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
2492 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
2497 static const uint32_t bwn_ntab_tx_gain_epa_rev3_5g[] = {
2498 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
2499 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
2500 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
2501 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
2502 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
2503 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
2504 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
2505 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
2506 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
2507 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
2508 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
2509 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
2510 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
2511 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
2512 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
2513 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
2514 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
2515 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
2516 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
2517 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
2518 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
2519 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
2520 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
2521 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
2522 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
2523 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
2524 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
2525 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
2526 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
2527 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
2528 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
2529 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037,
2532 static const uint32_t bwn_ntab_tx_gain_epa_rev4_5g[] = {
2533 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
2534 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
2535 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
2536 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
2537 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
2538 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
2539 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
2540 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
2541 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
2542 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
2543 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
2544 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
2545 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
2546 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
2547 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
2548 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
2549 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
2550 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
2551 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
2552 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
2553 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
2554 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
2555 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
2556 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
2557 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
2558 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
2559 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
2560 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
2561 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
2562 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
2563 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
2564 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034,
2567 static const uint32_t bwn_ntab_tx_gain_epa_rev4_hi_pwr_5g[] = {
2568 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
2569 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
2570 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
2571 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
2572 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
2573 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
2574 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
2575 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
2576 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
2577 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
2578 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
2579 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
2580 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
2581 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
2582 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
2583 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
2584 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
2585 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
2586 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
2587 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
2588 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
2589 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
2590 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
2591 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
2592 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
2593 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
2594 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
2595 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
2596 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
2597 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
2598 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
2599 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
2602 static const uint32_t bwn_ntab_tx_gain_epa_rev5_5g[] = {
2603 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
2604 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
2605 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
2606 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
2607 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
2608 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
2609 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
2610 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
2611 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
2612 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
2613 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
2614 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
2615 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
2616 0x09620039, 0x09620037, 0x09620035, 0x09620033,
2617 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
2618 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
2619 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
2620 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
2621 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
2622 0x06620039, 0x06620037, 0x06620035, 0x06620033,
2623 0x05620046, 0x05620044, 0x05620042, 0x05620040,
2624 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
2625 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
2626 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
2627 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
2628 0x03620038, 0x03620037, 0x03620035, 0x03620033,
2629 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
2630 0x02620046, 0x02620044, 0x02620043, 0x02620042,
2631 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
2632 0x01620043, 0x01620042, 0x01620041, 0x01620040,
2633 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
2634 0x0062003b, 0x00620039, 0x00620037, 0x00620035,
2639 static const uint32_t bwn_ntab_tx_gain_ipa_rev3_2g[] = {
2640 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
2641 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
2642 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
2643 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
2644 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
2645 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
2646 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
2647 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
2648 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
2649 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
2650 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
2651 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
2652 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
2653 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
2654 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
2655 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
2656 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
2657 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
2658 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
2659 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
2660 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
2661 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
2662 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
2663 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
2664 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
2665 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
2666 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
2667 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
2668 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
2669 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
2670 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
2671 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025,
2674 static const uint32_t bwn_ntab_tx_gain_ipa_rev5_2g[] = {
2675 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
2676 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
2677 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
2678 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
2679 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
2680 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
2681 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
2682 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
2683 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
2684 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
2685 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
2686 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
2687 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
2688 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
2689 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
2690 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
2691 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
2692 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
2693 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
2694 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
2695 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
2696 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
2697 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
2698 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
2699 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
2700 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
2701 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
2702 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
2703 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
2704 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
2705 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
2706 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025,
2709 static const uint32_t bwn_ntab_tx_gain_ipa_rev6_2g[] = {
2710 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
2711 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
2712 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
2713 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
2714 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
2715 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
2716 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
2717 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
2718 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
2719 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
2720 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
2721 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
2722 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
2723 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
2724 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
2725 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
2726 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
2727 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
2728 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
2729 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
2730 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
2731 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
2732 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
2733 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
2734 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
2735 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
2736 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
2737 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
2738 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
2739 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
2740 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
2741 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025,
2744 /* Copied from brcmsmac (5.75.11): nphy_tpc_txgain_ipa_2g_2057rev5 */
2745 static const uint32_t bwn_ntab_tx_gain_ipa_2057_rev5_2g[] = {
2746 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
2747 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
2748 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
2749 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
2750 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
2751 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
2752 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
2753 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
2754 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
2755 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
2756 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
2757 0x30170028, 0x30170026, 0x30170024, 0x30170022,
2758 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
2759 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
2760 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
2761 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
2762 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
2763 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
2764 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
2765 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2766 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2767 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2768 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2769 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2770 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2771 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2772 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2773 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2774 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2775 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2776 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2777 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2780 /* Extracted from MMIO dump of 6.30.223.141 */
2781 static const uint32_t bwn_ntab_tx_gain_ipa_2057_rev9_2g[] = {
2782 0x60ff0031, 0x60e7002c, 0x60cf002a, 0x60c70029,
2783 0x60b70029, 0x60a70029, 0x609f002a, 0x6097002b,
2784 0x6087002e, 0x60770031, 0x606f0032, 0x60670034,
2785 0x60670031, 0x605f0033, 0x605f0031, 0x60570033,
2786 0x60570030, 0x6057002d, 0x6057002b, 0x604f002d,
2787 0x604f002b, 0x604f0029, 0x604f0026, 0x60470029,
2788 0x60470027, 0x603f0029, 0x603f0027, 0x603f0025,
2789 0x60370029, 0x60370027, 0x60370024, 0x602f002a,
2790 0x602f0028, 0x602f0026, 0x602f0024, 0x6027002a,
2791 0x60270028, 0x60270026, 0x60270024, 0x60270022,
2792 0x601f002b, 0x601f0029, 0x601f0027, 0x601f0024,
2793 0x601f0022, 0x601f0020, 0x601f001f, 0x601f001d,
2794 0x60170029, 0x60170027, 0x60170025, 0x60170023,
2795 0x60170021, 0x6017001f, 0x6017001d, 0x6017001c,
2796 0x6017001a, 0x60170018, 0x60170018, 0x60170016,
2797 0x60170015, 0x600f0029, 0x600f0027, 0x600f0025,
2798 0x600f0023, 0x600f0021, 0x600f001f, 0x600f001d,
2799 0x600f001c, 0x600f001a, 0x600f0019, 0x600f0018,
2800 0x600f0016, 0x600f0015, 0x600f0115, 0x600f0215,
2801 0x600f0315, 0x600f0415, 0x600f0515, 0x600f0615,
2802 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2803 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2804 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2805 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2806 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2807 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2808 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2809 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2810 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2811 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2812 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2813 0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2816 /* Extracted from MMIO dump of 6.30.223.248 */
2817 static const uint32_t bwn_ntab_tx_gain_ipa_2057_rev14_2g[] = {
2818 0x50df002e, 0x50cf002d, 0x50bf002c, 0x50b7002b,
2819 0x50af002a, 0x50a70029, 0x509f0029, 0x50970028,
2820 0x508f0027, 0x50870027, 0x507f0027, 0x50770027,
2821 0x506f0027, 0x50670027, 0x505f0028, 0x50570029,
2822 0x504f002b, 0x5047002e, 0x5047002b, 0x50470029,
2823 0x503f002c, 0x503f0029, 0x5037002c, 0x5037002a,
2824 0x50370028, 0x502f002d, 0x502f002b, 0x502f0028,
2825 0x502f0026, 0x5027002d, 0x5027002a, 0x50270028,
2826 0x50270026, 0x50270024, 0x501f002e, 0x501f002b,
2827 0x501f0029, 0x501f0027, 0x501f0024, 0x501f0022,
2828 0x501f0020, 0x501f001f, 0x5017002c, 0x50170029,
2829 0x50170027, 0x50170024, 0x50170022, 0x50170021,
2830 0x5017001f, 0x5017001d, 0x5017001b, 0x5017001a,
2831 0x50170018, 0x50170017, 0x50170015, 0x500f002c,
2832 0x500f002a, 0x500f0027, 0x500f0025, 0x500f0023,
2833 0x500f0022, 0x500f001f, 0x500f001e, 0x500f001c,
2834 0x500f001a, 0x500f0019, 0x500f0018, 0x500f0016,
2835 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2836 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2837 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2838 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2839 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2840 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2841 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2842 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2843 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2844 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2845 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2846 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2847 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2848 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2849 0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2854 static const uint32_t bwn_ntab_tx_gain_ipa_rev3_5g[] = {
2855 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
2856 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
2857 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
2858 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
2859 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
2860 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
2861 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
2862 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
2863 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
2864 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
2865 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
2866 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
2867 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
2868 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
2869 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
2870 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
2871 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
2872 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
2873 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
2874 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
2875 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
2876 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
2877 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
2878 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
2879 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
2880 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
2881 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
2882 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
2883 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
2884 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
2885 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
2886 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f,
2889 /* Extracted from MMIO dump of 6.30.223.141 */
2890 static const uint32_t bwn_ntab_tx_gain_ipa_2057_rev9_5g[] = {
2891 0x7f7f0053, 0x7f7f004b, 0x7f7f0044, 0x7f7f003f,
2892 0x7f7f0039, 0x7f7f0035, 0x7f7f0032, 0x7f7f0030,
2893 0x7f7f002d, 0x7e7f0030, 0x7e7f002d, 0x7d7f0032,
2894 0x7d7f002f, 0x7d7f002c, 0x7c7f0032, 0x7c7f0030,
2895 0x7c7f002d, 0x7b7f0030, 0x7b7f002e, 0x7b7f002b,
2896 0x7a7f0032, 0x7a7f0030, 0x7a7f002d, 0x7a7f002b,
2897 0x797f0030, 0x797f002e, 0x797f002b, 0x797f0029,
2898 0x787f0030, 0x787f002d, 0x787f002b, 0x777f0032,
2899 0x777f0030, 0x777f002d, 0x777f002b, 0x767f0031,
2900 0x767f002f, 0x767f002c, 0x767f002a, 0x757f0031,
2901 0x757f002f, 0x757f002c, 0x757f002a, 0x747f0030,
2902 0x747f002d, 0x747f002b, 0x737f0032, 0x737f002f,
2903 0x737f002c, 0x737f002a, 0x727f0030, 0x727f002d,
2904 0x727f002b, 0x727f0029, 0x717f0030, 0x717f002d,
2905 0x717f002b, 0x707f0031, 0x707f002f, 0x707f002c,
2906 0x707f002a, 0x707f0027, 0x707f0025, 0x707f0023,
2907 0x707f0021, 0x707f001f, 0x707f001d, 0x707f001c,
2908 0x707f001a, 0x707f0019, 0x707f0017, 0x707f0016,
2909 0x707f0015, 0x707f0014, 0x707f0012, 0x707f0012,
2910 0x707f0011, 0x707f0010, 0x707f000f, 0x707f000e,
2911 0x707f000d, 0x707f000d, 0x707f000c, 0x707f000b,
2912 0x707f000a, 0x707f000a, 0x707f0009, 0x707f0008,
2913 0x707f0008, 0x707f0008, 0x707f0008, 0x707f0007,
2914 0x707f0007, 0x707f0006, 0x707f0006, 0x707f0006,
2915 0x707f0005, 0x707f0005, 0x707f0005, 0x707f0004,
2916 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
2917 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
2918 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
2919 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
2920 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
2921 0x707f0002, 0x707f0001, 0x707f0001, 0x707f0001,
2922 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
2925 const int8_t bwn_ntab_papd_pga_gain_delta_ipa_2g[] = {
2926 -114, -108, -98, -91, -84, -78, -70, -62,
2927 -54, -46, -39, -31, -23, -15, -8, 0
2930 /* Extracted from MMIO dump of 6.30.223.248
2931 * Entries: 0, 15, 17, 21, 24, 26, 27, 29, 30 were guessed
2933 static const int16_t bwn_ntab_rf_pwr_offset_2057_rev9_2g[] = {
2934 -133, -133, -107, -92, -81,
2935 -73, -66, -61, -56, -52,
2936 -48, -44, -41, -37, -34,
2937 -31, -28, -25, -22, -19,
2938 -17, -14, -12, -10, -9,
2943 /* Extracted from MMIO dump of 6.30.223.248 */
2944 static const int16_t bwn_ntab_rf_pwr_offset_2057_rev9_5g[] = {
2945 -101, -94, -86, -79, -72,
2946 -65, -57, -50, -42, -35,
2947 -28, -21, -16, -9, -4,
2951 /* Extracted from MMIO dump of 6.30.223.248
2952 * Entries: 0, 26, 28, 29, 30, 31 were guessed
2954 static const int16_t bwn_ntab_rf_pwr_offset_2057_rev14_2g[] = {
2955 -111, -111, -111, -84, -70,
2956 -59, -52, -45, -40, -36,
2957 -32, -29, -26, -23, -21,
2958 -18, -16, -15, -13, -11,
2959 -10, -8, -7, -6, -5,
2964 const uint16_t tbl_iqcal_gainparams[2][9][8] = {
2966 { 0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69 },
2967 { 0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69 },
2968 { 0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68 },
2969 { 0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67 },
2970 { 0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66 },
2971 { 0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65 },
2972 { 0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65 },
2973 { 0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65 },
2974 { 0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65 }
2977 { 0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
2978 { 0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
2979 { 0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79 },
2980 { 0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78 },
2981 { 0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78 },
2982 { 0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78 },
2983 { 0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78 },
2984 { 0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78 },
2985 { 0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78 }
2989 const struct bwn_nphy_txiqcal_ladder ladder_lo[] = {
3010 const struct bwn_nphy_txiqcal_ladder ladder_iq[] = {
3031 const uint16_t loscale[] = {
3063 962, 1019, 1019, 256
3066 const uint16_t tbl_tx_iqlo_cal_loft_ladder_40[] = {
3067 0x0200, 0x0300, 0x0400, 0x0700,
3068 0x0900, 0x0c00, 0x1200, 0x1201,
3069 0x1202, 0x1203, 0x1204, 0x1205,
3070 0x1206, 0x1207, 0x1907, 0x2307,
3074 const uint16_t tbl_tx_iqlo_cal_loft_ladder_20[] = {
3075 0x0300, 0x0500, 0x0700, 0x0900,
3076 0x0d00, 0x1100, 0x1900, 0x1901,
3077 0x1902, 0x1903, 0x1904, 0x1905,
3078 0x1906, 0x1907, 0x2407, 0x3207,
3082 const uint16_t tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
3083 0x0100, 0x0200, 0x0400, 0x0700,
3084 0x0900, 0x0c00, 0x1200, 0x1900,
3085 0x2300, 0x3200, 0x4700, 0x4701,
3086 0x4702, 0x4703, 0x4704, 0x4705,
3090 const uint16_t tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
3091 0x0200, 0x0300, 0x0600, 0x0900,
3092 0x0d00, 0x1100, 0x1900, 0x2400,
3093 0x3200, 0x4600, 0x6400, 0x6401,
3094 0x6402, 0x6403, 0x6404, 0x6405,
3098 const uint16_t tbl_tx_iqlo_cal_startcoefs_nphyrev3[BWN_NTAB_TX_IQLO_CAL_STARTCOEFS_REV3] = { };
3100 const uint16_t tbl_tx_iqlo_cal_startcoefs[BWN_NTAB_TX_IQLO_CAL_STARTCOEFS] = { };
3102 const uint16_t tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
3103 0x8423, 0x8323, 0x8073, 0x8256,
3104 0x8045, 0x8223, 0x9423, 0x9323,
3105 0x9073, 0x9256, 0x9045, 0x9223
3108 const uint16_t tbl_tx_iqlo_cal_cmds_recal[] = {
3109 0x8101, 0x8253, 0x8053, 0x8234,
3110 0x8034, 0x9101, 0x9253, 0x9053,
3114 const uint16_t tbl_tx_iqlo_cal_cmds_fullcal[] = {
3115 0x8123, 0x8264, 0x8086, 0x8245,
3116 0x8056, 0x9123, 0x9264, 0x9086,
3120 const uint16_t tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
3121 0x8434, 0x8334, 0x8084, 0x8267,
3122 0x8056, 0x8234, 0x9434, 0x9334,
3123 0x9084, 0x9267, 0x9056, 0x9234
3126 const int16_t tbl_tx_filter_coef_rev4[7][15] = {
3127 { -377, 137, -407, 208, -1527,
3128 956, 93, 186, 93, 230,
3129 -44, 230, 201, -191, 201 },
3130 { -77, 20, -98, 49, -93,
3131 60, 56, 111, 56, 26,
3132 -5, 26, 34, -32, 34 },
3133 { -360, 164, -376, 164, -1533,
3134 576, 308, -314, 308, 121,
3135 -73, 121, 91, 124, 91 },
3136 { -295, 200, -363, 142, -1391,
3137 826, 151, 301, 151, 151,
3138 301, 151, 602, -752, 602 },
3139 { -92, 58, -96, 49, -104,
3141 25, 12, 13, 27, 13 },
3142 { -375, 136, -399, 209, -1479,
3143 949, 130, 260, 130, 230,
3144 -44, 230, 201, -191, 201 },
3145 { 0xed9, 0xc8, 0xe95, 0x8e, 0xa91,
3146 0x33a, 0x97, 0x12d, 0x97, 0x97,
3147 0x12d, 0x97, 0x25a, 0xd10, 0x25a }
3150 /* addr0, addr1, bmask, shift */
3151 const struct bwn_nphy_rf_control_override_rev2 tbl_rf_control_override_rev2[] = {
3152 { 0x78, 0x78, 0x0038, 3 }, /* for field == 0x0002 (fls == 2) */
3153 { 0x7A, 0x7D, 0x0001, 0 }, /* for field == 0x0004 (fls == 3) */
3154 { 0x7A, 0x7D, 0x0002, 1 }, /* for field == 0x0008 (fls == 4) */
3155 { 0x7A, 0x7D, 0x0004, 2 }, /* for field == 0x0010 (fls == 5) */
3156 { 0x7A, 0x7D, 0x0030, 4 }, /* for field == 0x0020 (fls == 6) */
3157 { 0x7A, 0x7D, 0x00C0, 6 }, /* for field == 0x0040 (fls == 7) */
3158 { 0x7A, 0x7D, 0x0100, 8 }, /* for field == 0x0080 (fls == 8) */
3159 { 0x7A, 0x7D, 0x0200, 9 }, /* for field == 0x0100 (fls == 9) */
3160 { 0x78, 0x78, 0x0004, 2 }, /* for field == 0x0200 (fls == 10) */
3161 { 0x7B, 0x7E, 0x01FF, 0 }, /* for field == 0x0400 (fls == 11) */
3162 { 0x7C, 0x7F, 0x01FF, 0 }, /* for field == 0x0800 (fls == 12) */
3163 { 0x78, 0x78, 0x0100, 8 }, /* for field == 0x1000 (fls == 13) */
3164 { 0x78, 0x78, 0x0200, 9 }, /* for field == 0x2000 (fls == 14) */
3165 { 0x78, 0x78, 0xF000, 12 } /* for field == 0x4000 (fls == 15) */
3168 /* val_mask, val_shift, en_addr0, val_addr0, en_addr1, val_addr1 */
3169 const struct bwn_nphy_rf_control_override_rev3 tbl_rf_control_override_rev3[] = {
3170 { 0x8000, 15, 0xE5, 0xF9, 0xE6, 0xFB }, /* field == 0x0001 (fls 1) */
3171 { 0x0001, 0, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0002 (fls 2) */
3172 { 0x0002, 1, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0004 (fls 3) */
3173 { 0x0004, 2, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0008 (fls 4) */
3174 { 0x0010, 4, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0010 (fls 5) */
3175 { 0x0020, 5, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0020 (fls 6) */
3176 { 0x0040, 6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0040 (fls 7) */
3177 { 0x0080, 7, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0080 (fls 8) */
3178 { 0x0100, 8, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0100 (fls 9) */
3179 { 0x0007, 0, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0200 (fls 10) */
3180 { 0x0070, 4, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0400 (fls 11) */
3181 { 0xE000, 13, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0800 (fls 12) */
3182 { 0xFFFF, 0, 0xE7, 0x7B, 0xEC, 0x7E }, /* field == 0x1000 (fls 13) */
3183 { 0xFFFF, 0, 0xE7, 0x7C, 0xEC, 0x7F }, /* field == 0x2000 (fls 14) */
3184 { 0x00C0, 6, 0xE7, 0xF9, 0xEC, 0xFB } /* field == 0x4000 (fls 15) */
3187 /* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
3188 static const struct bwn_nphy_rf_control_override_rev7
3189 tbl_rf_control_override_rev7_over0[] = {
3190 { 0x0004, 0x07A, 0x07D, 0x0002, 1 },
3191 { 0x0008, 0x07A, 0x07D, 0x0004, 2 },
3192 { 0x0010, 0x07A, 0x07D, 0x0010, 4 },
3193 { 0x0020, 0x07A, 0x07D, 0x0020, 5 },
3194 { 0x0040, 0x07A, 0x07D, 0x0040, 6 },
3195 { 0x0080, 0x07A, 0x07D, 0x0080, 7 },
3196 { 0x0400, 0x0F8, 0x0FA, 0x0070, 4 },
3197 { 0x0800, 0x07B, 0x07E, 0xFFFF, 0 },
3198 { 0x1000, 0x07C, 0x07F, 0xFFFF, 0 },
3199 { 0x6000, 0x348, 0x349, 0x00FF, 0 },
3200 { 0x2000, 0x348, 0x349, 0x000F, 0 },
3203 /* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
3204 static const struct bwn_nphy_rf_control_override_rev7
3205 tbl_rf_control_override_rev7_over1[] = {
3206 { 0x0002, 0x340, 0x341, 0x0002, 1 },
3207 { 0x0008, 0x340, 0x341, 0x0008, 3 },
3208 { 0x0020, 0x340, 0x341, 0x0020, 5 },
3209 { 0x0010, 0x340, 0x341, 0x0010, 4 },
3210 { 0x0004, 0x340, 0x341, 0x0004, 2 },
3211 { 0x0080, 0x340, 0x341, 0x0700, 8 },
3212 { 0x0800, 0x340, 0x341, 0x4000, 14 },
3213 { 0x0400, 0x340, 0x341, 0x2000, 13 },
3214 { 0x0200, 0x340, 0x341, 0x0800, 12 },
3215 { 0x0100, 0x340, 0x341, 0x0100, 11 },
3216 { 0x0040, 0x340, 0x341, 0x0040, 6 },
3217 { 0x0001, 0x340, 0x341, 0x0001, 0 },
3220 /* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
3221 static const struct bwn_nphy_rf_control_override_rev7
3222 tbl_rf_control_override_rev7_over2[] = {
3223 { 0x0008, 0x344, 0x345, 0x0008, 3 },
3224 { 0x0002, 0x344, 0x345, 0x0002, 1 },
3225 { 0x0001, 0x344, 0x345, 0x0001, 0 },
3226 { 0x0004, 0x344, 0x345, 0x0004, 2 },
3227 { 0x0010, 0x344, 0x345, 0x0010, 4 },
3230 static struct bwn_nphy_gain_ctl_workaround_entry nphy_gain_ctl_wa_phy6_radio11_ghz2 = {
3233 { 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
3234 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
3236 { 0x413F, 0x413F, 0x413F, 0x413F },
3237 0x007E, 0x0066, 0x1074,
3241 static struct bwn_nphy_gain_ctl_workaround_entry nphy_gain_ctl_workaround[2][4] = {
3246 { 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
3247 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
3249 { 0x613F, 0x613F, 0x613F, 0x613F },
3250 0x107E, 0x0066, 0x0074,
3257 { 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
3258 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
3260 { 0x513F, 0x513F, 0x513F, 0x513F },
3261 0x007E, 0x0066, 0x0074,
3268 { 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
3269 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
3270 0x427E, /* invalid for external LNA! */
3271 { 0x413F, 0x413F, 0x413F, 0x413F }, /* invalid for external LNA! */
3272 0x1076, 0x0066, 0x0000, /* low is invalid (the last one) */
3279 { 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
3280 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
3281 0x527E, /* invalid for external LNA! */
3282 { 0x513F, 0x513F, 0x513F, 0x513F }, /* invalid for external LNA! */
3283 0x007E, 0x0066, 0x0000, /* low is invalid (the last one) */
3292 { 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 },
3293 { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
3295 { 0x516F, 0x516F, 0x516F, 0x516F },
3296 0x00DE, 0x00CA, 0x00CC,
3303 { 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
3304 { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
3306 { 0x614F, 0x614F, 0x614F, 0x614F },
3307 0x029E, 0x1084, 0x0086,
3314 { 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
3315 { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
3317 { 0x714F, 0x714F, 0x714F, 0x714F },
3318 0x029E, 0x2084, 0x2086,
3325 { 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
3326 { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
3328 { 0x714F, 0x714F, 0x714F, 0x714F },
3329 0x029E, 0x2084, 0x2086,
3330 0x24, 0x24, 0x24, /* low is invalid for radio rev 11! */
3336 static inline void assert_ntab_array_sizes(void)
3339 #define check(table, size) \
3340 CTASSERT(nitems(bwn_ntab_##table) == BWN_NTAB_##size##_SIZE)
3342 check(adjustpower0, C0_ADJPLT);
3343 check(adjustpower1, C1_ADJPLT);
3345 check(channelest, CHANEST);
3346 check(estimatepowerlt0, C0_ESTPLT);
3347 check(estimatepowerlt1, C1_ESTPLT);
3348 check(framelookup, FRAMELT);
3349 check(framestruct, FRAMESTRUCT);
3350 check(gainctl0, C0_GAINCTL);
3351 check(gainctl1, C1_GAINCTL);
3352 check(intlevel, INTLEVEL);
3353 check(iqlt0, C0_IQLT);
3354 check(iqlt1, C1_IQLT);
3355 check(loftlt0, C0_LOFEEDTH);
3356 check(loftlt1, C1_LOFEEDTH);
3358 check(noisevar10, NOISEVAR10);
3359 check(noisevar11, NOISEVAR11);
3360 check(pilot, PILOT);
3361 check(pilotlt, PILOTLT);
3362 check(tdi20a0, TDI20A0);
3363 check(tdi20a1, TDI20A1);
3364 check(tdi40a0, TDI40A0);
3365 check(tdi40a1, TDI40A1);
3366 check(tdtrn, TDTRN);
3372 uint32_t bwn_ntab_read(struct bwn_mac *mac, uint32_t offset)
3374 uint32_t type, value;
3376 type = offset & BWN_NTAB_TYPEMASK;
3377 offset &= ~BWN_NTAB_TYPEMASK;
3379 KASSERT(offset <= 0xFFFF, ("%s: invalid offset (%d)\n",
3384 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3385 value = BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO) & 0xFF;
3387 case BWN_NTAB_16BIT:
3388 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3389 value = BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3391 case BWN_NTAB_32BIT:
3392 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3393 value = BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3394 value |= BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATAHI) << 16;
3397 KASSERT(0, ("%s: invalid type", __func__));
3404 void bwn_ntab_read_bulk(struct bwn_mac *mac, uint32_t offset,
3405 unsigned int nr_elements, void *_data)
3407 struct bwn_softc *sc = mac->mac_sc;
3409 uint8_t *data = _data;
3412 type = offset & BWN_NTAB_TYPEMASK;
3413 offset &= ~BWN_NTAB_TYPEMASK;
3414 KASSERT(offset <= 0xFFFF, ("%s: invalid offset (%d)\n",
3417 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3419 for (i = 0; i < nr_elements; i++) {
3420 /* Auto increment broken + caching issue on BCM43224? */
3421 if (siba_get_chipid(sc->sc_dev) == 43224 &&
3422 siba_get_revid(sc->sc_dev) == 1) {
3423 BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3424 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset + i);
3429 *data = BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO) & 0xFF;
3432 case BWN_NTAB_16BIT:
3433 *((uint16_t *)data) = BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3436 case BWN_NTAB_32BIT:
3437 *((uint32_t *)data) =
3438 BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3439 *((uint32_t *)data) |=
3440 BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATAHI) << 16;
3444 KASSERT(0, ("%s: called; invalid type (%d)\n",
3450 void bwn_ntab_write(struct bwn_mac *mac, uint32_t offset, uint32_t value)
3452 uint32_t type, orig;
3454 type = offset & BWN_NTAB_TYPEMASK;
3460 KASSERT(value <= 0xFF, ("%s: 8bit: invalid value (%d) (0x%08x)\n",
3461 __func__, value, orig));
3462 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3463 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO, value);
3465 case BWN_NTAB_16BIT:
3466 KASSERT(value <= 0xFFFF, ("%s: 8bit: invalid value (%d) (0x%08x)\n",
3467 __func__, value, orig));
3468 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3469 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO, value);
3471 case BWN_NTAB_32BIT:
3472 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3473 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATAHI, value >> 16);
3474 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO, value & 0xFFFF);
3477 KASSERT(0, ("%s: called; invalid type (%d)\n",
3483 /* Some compiletime assertions... */
3484 assert_ntab_array_sizes();
3487 void bwn_ntab_write_bulk(struct bwn_mac *mac, uint32_t offset,
3488 unsigned int nr_elements, const void *_data)
3490 struct bwn_softc *sc = mac->mac_sc;
3491 uint32_t type, value;
3493 const uint8_t *data = _data;
3496 type = offset & BWN_NTAB_TYPEMASK;
3498 offset &= ~BWN_NTAB_TYPEMASK;
3499 KASSERT(offset <= 0xFFFF, ("%s: invalid offset (%d)\n",
3502 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3504 for (i = 0; i < nr_elements; i++) {
3505 /* Auto increment broken + caching issue on BCM43224? */
3506 if ((offset >> 10) == 9 &&
3507 siba_get_chipid(sc->sc_dev) == 43224 &&
3508 siba_get_revid(sc->sc_dev) == 1) {
3509 BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3510 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset + i);
3517 KASSERT(value <= 0xFF, ("%s: 8bit: invalid value (%d) (0x%08x)\n",
3518 __func__, value, orig));
3519 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO, value);
3521 case BWN_NTAB_16BIT:
3522 value = *((const uint16_t *)data);
3524 KASSERT(value <= 0xFFFF, ("%s: 16bit: invalid value (%d) (0x%08x)\n",
3525 __func__, value, orig));
3526 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO, value);
3528 case BWN_NTAB_32BIT:
3529 value = *((const uint32_t *)data);
3531 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATAHI, value >> 16);
3532 BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO,
3536 KASSERT(0, ("%s: invalid type (%d)\n", __func__,
3542 #define ntab_upload(mac, offset, data) do { \
3543 bwn_ntab_write_bulk(mac, offset, nitems(data), data); \
3546 static void bwn_nphy_tables_init_shared_lut(struct bwn_mac *mac)
3548 ntab_upload(mac, BWN_NTAB_C0_ESTPLT_R3, bwn_ntab_estimatepowerlt0_r3);
3549 ntab_upload(mac, BWN_NTAB_C1_ESTPLT_R3, bwn_ntab_estimatepowerlt1_r3);
3550 ntab_upload(mac, BWN_NTAB_C0_ADJPLT_R3, bwn_ntab_adjustpower0_r3);
3551 ntab_upload(mac, BWN_NTAB_C1_ADJPLT_R3, bwn_ntab_adjustpower1_r3);
3552 ntab_upload(mac, BWN_NTAB_C0_GAINCTL_R3, bwn_ntab_gainctl0_r3);
3553 ntab_upload(mac, BWN_NTAB_C1_GAINCTL_R3, bwn_ntab_gainctl1_r3);
3554 ntab_upload(mac, BWN_NTAB_C0_IQLT_R3, bwn_ntab_iqlt0_r3);
3555 ntab_upload(mac, BWN_NTAB_C1_IQLT_R3, bwn_ntab_iqlt1_r3);
3556 ntab_upload(mac, BWN_NTAB_C0_LOFEEDTH_R3, bwn_ntab_loftlt0_r3);
3557 ntab_upload(mac, BWN_NTAB_C1_LOFEEDTH_R3, bwn_ntab_loftlt1_r3);
3560 static void bwn_nphy_tables_init_rev7_volatile(struct bwn_mac *mac)
3562 struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3563 struct bwn_softc *sc = mac->mac_sc;
3565 int core, offset, i;
3567 const int antswlut0_offsets[] = { 0, 4, 8, }; /* Offsets for values */
3568 const uint8_t antswlut0_values[][3] = {
3569 { 0x2, 0x12, 0x8 }, /* Core 0 */
3570 { 0x2, 0x18, 0x2 }, /* Core 1 */
3573 if (IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan))
3574 antswlut = siba_sprom_get_fem_5ghz_antswlut(sc->sc_dev);
3576 antswlut = siba_sprom_get_fem_2ghz_antswlut(sc->sc_dev);
3580 for (core = 0; core < 2; core++) {
3581 for (i = 0; i < nitems(antswlut0_values[0]); i++) {
3582 offset = core ? 0x20 : 0x00;
3583 offset += antswlut0_offsets[i];
3584 bwn_ntab_write(mac, BWN_NTAB8(9, offset),
3585 antswlut0_values[core][i]);
3590 BWN_ERRPRINTF(mac->mac_sc, "Unsupported antswlut: %d\n", antswlut);
3595 static void bwn_nphy_tables_init_rev16(struct bwn_mac *mac)
3598 if (mac->mac_phy.phy_do_full_init) {
3599 ntab_upload(mac, BWN_NTAB_NOISEVAR_R7, bwn_ntab_noisevar_r7);
3600 bwn_nphy_tables_init_shared_lut(mac);
3603 /* Volatile tables */
3604 bwn_nphy_tables_init_rev7_volatile(mac);
3607 static void bwn_nphy_tables_init_rev7(struct bwn_mac *mac)
3610 if (mac->mac_phy.phy_do_full_init) {
3611 ntab_upload(mac, BWN_NTAB_FRAMESTRUCT_R3, bwn_ntab_framestruct_r3);
3612 ntab_upload(mac, BWN_NTAB_PILOT_R3, bwn_ntab_pilot_r3);
3613 ntab_upload(mac, BWN_NTAB_TMAP_R7, bwn_ntab_tmap_r7);
3614 ntab_upload(mac, BWN_NTAB_INTLEVEL_R3, bwn_ntab_intlevel_r3);
3615 ntab_upload(mac, BWN_NTAB_TDTRN_R3, bwn_ntab_tdtrn_r3);
3616 ntab_upload(mac, BWN_NTAB_NOISEVAR_R7, bwn_ntab_noisevar_r7);
3617 ntab_upload(mac, BWN_NTAB_MCS_R3, bwn_ntab_mcs_r3);
3618 ntab_upload(mac, BWN_NTAB_TDI20A0_R3, bwn_ntab_tdi20a0_r3);
3619 ntab_upload(mac, BWN_NTAB_TDI20A1_R3, bwn_ntab_tdi20a1_r3);
3620 ntab_upload(mac, BWN_NTAB_TDI40A0_R3, bwn_ntab_tdi40a0_r3);
3621 ntab_upload(mac, BWN_NTAB_TDI40A1_R3, bwn_ntab_tdi40a1_r3);
3622 ntab_upload(mac, BWN_NTAB_PILOTLT_R3, bwn_ntab_pilotlt_r3);
3623 ntab_upload(mac, BWN_NTAB_CHANEST_R3, bwn_ntab_channelest_r3);
3624 ntab_upload(mac, BWN_NTAB_FRAMELT_R3, bwn_ntab_framelookup_r3);
3625 bwn_nphy_tables_init_shared_lut(mac);
3628 /* Volatile tables */
3629 bwn_nphy_tables_init_rev7_volatile(mac);
3632 static void bwn_nphy_tables_init_rev3(struct bwn_mac *mac)
3634 struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3635 struct bwn_softc *sc = mac->mac_sc;
3638 if (IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan))
3639 antswlut = siba_sprom_get_fem_5ghz_antswlut(sc->sc_dev);
3641 antswlut = siba_sprom_get_fem_2ghz_antswlut(sc->sc_dev);
3644 if (mac->mac_phy.phy_do_full_init) {
3645 ntab_upload(mac, BWN_NTAB_FRAMESTRUCT_R3, bwn_ntab_framestruct_r3);
3646 ntab_upload(mac, BWN_NTAB_PILOT_R3, bwn_ntab_pilot_r3);
3647 ntab_upload(mac, BWN_NTAB_TMAP_R3, bwn_ntab_tmap_r3);
3648 ntab_upload(mac, BWN_NTAB_INTLEVEL_R3, bwn_ntab_intlevel_r3);
3649 ntab_upload(mac, BWN_NTAB_TDTRN_R3, bwn_ntab_tdtrn_r3);
3650 ntab_upload(mac, BWN_NTAB_NOISEVAR_R3, bwn_ntab_noisevar_r3);
3651 ntab_upload(mac, BWN_NTAB_MCS_R3, bwn_ntab_mcs_r3);
3652 ntab_upload(mac, BWN_NTAB_TDI20A0_R3, bwn_ntab_tdi20a0_r3);
3653 ntab_upload(mac, BWN_NTAB_TDI20A1_R3, bwn_ntab_tdi20a1_r3);
3654 ntab_upload(mac, BWN_NTAB_TDI40A0_R3, bwn_ntab_tdi40a0_r3);
3655 ntab_upload(mac, BWN_NTAB_TDI40A1_R3, bwn_ntab_tdi40a1_r3);
3656 ntab_upload(mac, BWN_NTAB_PILOTLT_R3, bwn_ntab_pilotlt_r3);
3657 ntab_upload(mac, BWN_NTAB_CHANEST_R3, bwn_ntab_channelest_r3);
3658 ntab_upload(mac, BWN_NTAB_FRAMELT_R3, bwn_ntab_framelookup_r3);
3659 bwn_nphy_tables_init_shared_lut(mac);
3662 /* Volatile tables */
3663 if (antswlut < nitems(bwn_ntab_antswctl_r3))
3664 ntab_upload(mac, BWN_NTAB_ANT_SW_CTL_R3,
3665 bwn_ntab_antswctl_r3[antswlut]);
3667 KASSERT(0, ("%s: antswlut out of bounds (%d)\n",
3668 __func__, antswlut));
3671 static void bwn_nphy_tables_init_rev0(struct bwn_mac *mac)
3674 if (mac->mac_phy.phy_do_full_init) {
3675 ntab_upload(mac, BWN_NTAB_FRAMESTRUCT, bwn_ntab_framestruct);
3676 ntab_upload(mac, BWN_NTAB_FRAMELT, bwn_ntab_framelookup);
3677 ntab_upload(mac, BWN_NTAB_TMAP, bwn_ntab_tmap);
3678 ntab_upload(mac, BWN_NTAB_TDTRN, bwn_ntab_tdtrn);
3679 ntab_upload(mac, BWN_NTAB_INTLEVEL, bwn_ntab_intlevel);
3680 ntab_upload(mac, BWN_NTAB_PILOT, bwn_ntab_pilot);
3681 ntab_upload(mac, BWN_NTAB_TDI20A0, bwn_ntab_tdi20a0);
3682 ntab_upload(mac, BWN_NTAB_TDI20A1, bwn_ntab_tdi20a1);
3683 ntab_upload(mac, BWN_NTAB_TDI40A0, bwn_ntab_tdi40a0);
3684 ntab_upload(mac, BWN_NTAB_TDI40A1, bwn_ntab_tdi40a1);
3685 ntab_upload(mac, BWN_NTAB_CHANEST, bwn_ntab_channelest);
3686 ntab_upload(mac, BWN_NTAB_MCS, bwn_ntab_mcs);
3687 ntab_upload(mac, BWN_NTAB_NOISEVAR10, bwn_ntab_noisevar10);
3688 ntab_upload(mac, BWN_NTAB_NOISEVAR11, bwn_ntab_noisevar11);
3691 /* Volatile tables */
3692 ntab_upload(mac, BWN_NTAB_BDI, bwn_ntab_bdi);
3693 ntab_upload(mac, BWN_NTAB_PILOTLT, bwn_ntab_pilotlt);
3694 ntab_upload(mac, BWN_NTAB_C0_GAINCTL, bwn_ntab_gainctl0);
3695 ntab_upload(mac, BWN_NTAB_C1_GAINCTL, bwn_ntab_gainctl1);
3696 ntab_upload(mac, BWN_NTAB_C0_ESTPLT, bwn_ntab_estimatepowerlt0);
3697 ntab_upload(mac, BWN_NTAB_C1_ESTPLT, bwn_ntab_estimatepowerlt1);
3698 ntab_upload(mac, BWN_NTAB_C0_ADJPLT, bwn_ntab_adjustpower0);
3699 ntab_upload(mac, BWN_NTAB_C1_ADJPLT, bwn_ntab_adjustpower1);
3700 ntab_upload(mac, BWN_NTAB_C0_IQLT, bwn_ntab_iqlt0);
3701 ntab_upload(mac, BWN_NTAB_C1_IQLT, bwn_ntab_iqlt1);
3702 ntab_upload(mac, BWN_NTAB_C0_LOFEEDTH, bwn_ntab_loftlt0);
3703 ntab_upload(mac, BWN_NTAB_C1_LOFEEDTH, bwn_ntab_loftlt1);
3706 /* http://bcm-v4.sipsolutions.net/802.11/PHY/N/InitTables */
3707 void bwn_nphy_tables_init(struct bwn_mac *mac)
3709 if (mac->mac_phy.rev >= 16)
3710 bwn_nphy_tables_init_rev16(mac);
3711 else if (mac->mac_phy.rev >= 7)
3712 bwn_nphy_tables_init_rev7(mac);
3713 else if (mac->mac_phy.rev >= 3)
3714 bwn_nphy_tables_init_rev3(mac);
3716 bwn_nphy_tables_init_rev0(mac);
3719 /* http://bcm-v4.sipsolutions.net/802.11/PHY/N/GetIpaGainTbl */
3720 static const uint32_t *bwn_nphy_get_ipa_gain_table(struct bwn_mac *mac)
3722 struct bwn_softc *sc = mac->mac_sc;
3723 struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3724 struct bwn_phy *phy = &mac->mac_phy;
3726 if (IEEE80211_IS_CHAN_2GHZ(ic->ic_curchan)) {
3729 if (phy->rf_rev == 14)
3730 return bwn_ntab_tx_gain_ipa_2057_rev14_2g;
3733 if (phy->rf_rev == 9)
3734 return bwn_ntab_tx_gain_ipa_2057_rev9_2g;
3737 if (phy->rf_rev == 5)
3738 return bwn_ntab_tx_gain_ipa_2057_rev5_2g;
3741 if (siba_get_chipid(sc->sc_dev) == 47162) /* BCM47612 */
3742 return bwn_ntab_tx_gain_ipa_rev5_2g;
3743 return bwn_ntab_tx_gain_ipa_rev6_2g;
3745 return bwn_ntab_tx_gain_ipa_rev5_2g;
3748 return bwn_ntab_tx_gain_ipa_rev3_2g;
3751 BWN_ERRPRINTF(mac->mac_sc,
3752 "No 2GHz IPA gain table available for this device\n");
3757 if (phy->rf_rev == 9)
3758 return bwn_ntab_tx_gain_ipa_2057_rev9_5g;
3761 return bwn_ntab_tx_gain_ipa_rev3_5g;
3764 BWN_ERRPRINTF(mac->mac_sc,
3765 "No 5GHz IPA gain table available for this device\n");
3770 const uint32_t *bwn_nphy_get_tx_gain_table(struct bwn_mac *mac)
3772 struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3773 struct bwn_softc *sc = mac->mac_sc;
3774 struct bwn_phy *phy = &mac->mac_phy;
3777 /* XXX ideally we'd have is2, is5, etc */
3778 is_5ghz = !! IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan);
3780 if (mac->mac_phy.rev < 3)
3781 return bwn_ntab_tx_gain_rev0_1_2;
3784 if ((mac->mac_phy.phy_n->ipa2g_on && is_5ghz == 0) ||
3785 (mac->mac_phy.phy_n->ipa5g_on && is_5ghz == 1)) {
3786 return bwn_nphy_get_ipa_gain_table(mac);
3787 } else if (is_5ghz == 1) {
3791 return bwn_ntab_tx_gain_epa_rev5_5g;
3793 return siba_sprom_get_fem_5ghz_extpa_gain(sc->sc_dev) == 3 ?
3794 bwn_ntab_tx_gain_epa_rev4_5g :
3795 bwn_ntab_tx_gain_epa_rev4_hi_pwr_5g;
3797 return bwn_ntab_tx_gain_epa_rev3_5g;
3799 BWN_ERRPRINTF(mac->mac_sc,
3800 "No 5GHz EPA gain table available for this device\n");
3807 if (siba_sprom_get_fem_5ghz_extpa_gain(sc->sc_dev) == 3)
3808 return bwn_ntab_tx_gain_epa_rev3_hi_pwr_2g;
3812 return bwn_ntab_tx_gain_epa_rev3_2g;
3814 BWN_ERRPRINTF(mac->mac_sc,
3815 "No 2GHz EPA gain table available for this device\n");
3821 const int16_t *bwn_ntab_get_rf_pwr_offset_table(struct bwn_mac *mac)
3823 struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3824 struct bwn_phy *phy = &mac->mac_phy;
3826 if (IEEE80211_IS_CHAN_2GHZ(ic->ic_curchan)) {
3829 if (phy->rf_rev == 14)
3830 return bwn_ntab_rf_pwr_offset_2057_rev14_2g;
3833 if (phy->rf_rev == 9)
3834 return bwn_ntab_rf_pwr_offset_2057_rev9_2g;
3838 BWN_ERRPRINTF(mac->mac_sc,
3839 "No 2GHz RF power table available for this device\n");
3844 if (phy->rf_rev == 9)
3845 return bwn_ntab_rf_pwr_offset_2057_rev9_5g;
3849 BWN_ERRPRINTF(mac->mac_sc,
3850 "No 5GHz RF power table available for this device\n");
3855 struct bwn_nphy_gain_ctl_workaround_entry *bwn_nphy_get_gain_ctl_workaround_ent(
3856 struct bwn_mac *mac, bool ghz5, bool ext_lna)
3858 struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3859 struct bwn_softc *sc = mac->mac_sc;
3860 struct bwn_phy *phy = &mac->mac_phy;
3861 struct bwn_nphy_gain_ctl_workaround_entry *e;
3864 if (!ghz5 && mac->mac_phy.rev >= 6 && mac->mac_phy.rf_rev == 11)
3865 return &nphy_gain_ctl_wa_phy6_radio11_ghz2;
3867 KASSERT(mac->mac_phy.rev >= 3,
3868 ("%s: called; too early phy rev (%d)\n",
3869 __func__, mac->mac_phy.rev));
3870 if (mac->mac_phy.rev >= 6)
3872 else if (mac->mac_phy.rev == 5)
3874 else if (mac->mac_phy.rev == 4)
3878 e = &nphy_gain_ctl_workaround[ghz5][phy_idx];
3880 /* Some workarounds to the workarounds... */
3882 uint8_t tr_iso = siba_sprom_get_fem_2ghz_tr_iso(sc->sc_dev);
3887 if (phy->rev >= 6) {
3888 static const int gain_data[] = { 0x106a, 0x106c, 0x1074,
3889 0x107c, 0x007e, 0x107e,
3892 e->cliplo_gain = gain_data[tr_iso];
3893 } else if (phy->rev == 5) {
3894 static const int gain_data[] = { 0x0062, 0x0064, 0x006a,
3895 0x106a, 0x106c, 0x1074,
3898 e->cliplo_gain = gain_data[tr_iso];
3901 if (phy->rev >= 5 && ext_lna) {
3902 e->rfseq_init[0] &= ~0x4000;
3903 e->rfseq_init[1] &= ~0x4000;
3904 e->rfseq_init[2] &= ~0x4000;
3905 e->rfseq_init[3] &= ~0x4000;
3906 e->init_gain &= ~0x4000;
3909 if (phy->rev >= 6) {
3910 /* XXX 40MHz HT only? No static-40MHz? */
3911 if (phy->rf_rev == 11 &&
3912 IEEE80211_IS_CHAN_HT40(ic->ic_curchan))
3914 } else if (phy->rev == 4 && ext_lna) {
3915 e->rfseq_init[0] &= ~0x4000;
3916 e->rfseq_init[1] &= ~0x4000;
3917 e->rfseq_init[2] &= ~0x4000;
3918 e->rfseq_init[3] &= ~0x4000;
3919 e->init_gain &= ~0x4000;
3920 e->rfseq_init[0] |= 0x1000;
3921 e->rfseq_init[1] |= 0x1000;
3922 e->rfseq_init[2] |= 0x1000;
3923 e->rfseq_init[3] |= 0x1000;
3924 e->init_gain |= 0x1000;
3931 const struct bwn_nphy_rf_control_override_rev7 *
3932 bwn_nphy_get_rf_ctl_over_rev7(struct bwn_mac *mac, uint16_t field,
3935 const struct bwn_nphy_rf_control_override_rev7 *e;
3940 e = tbl_rf_control_override_rev7_over0;
3941 size = nitems(tbl_rf_control_override_rev7_over0);
3944 e = tbl_rf_control_override_rev7_over1;
3945 size = nitems(tbl_rf_control_override_rev7_over1);
3948 e = tbl_rf_control_override_rev7_over2;
3949 size = nitems(tbl_rf_control_override_rev7_over2);
3952 BWN_ERRPRINTF(mac->mac_sc, "Invalid override value %d\n", override);
3956 for (i = 0; i < size; i++) {
3957 if (e[i].field == field)