1300016Sadrian/*
2300016Sadrian
3300016Sadrian  Broadcom B43 wireless driver
4300016Sadrian  IEEE 802.11n PHY data tables
5300016Sadrian
6300016Sadrian  Copyright (c) 2008 Michael Buesch <m@bues.ch>
7300016Sadrian  Copyright (c) 2010 Rafa�� Mi��ecki <zajec5@gmail.com>
8300016Sadrian
9300016Sadrian  This program is free software; you can redistribute it and/or modify
10300016Sadrian  it under the terms of the GNU General Public License as published by
11300016Sadrian  the Free Software Foundation; either version 2 of the License, or
12300016Sadrian  (at your option) any later version.
13300016Sadrian
14300016Sadrian  This program is distributed in the hope that it will be useful,
15300016Sadrian  but WITHOUT ANY WARRANTY; without even the implied warranty of
16300016Sadrian  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17300016Sadrian  GNU General Public License for more details.
18300016Sadrian
19300016Sadrian  You should have received a copy of the GNU General Public License
20300016Sadrian  along with this program; see the file COPYING.  If not, write to
21300016Sadrian  the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
22300016Sadrian  Boston, MA 02110-1301, USA.
23300016Sadrian
24300016Sadrian*/
25300016Sadrian
26300016Sadrian#include <sys/cdefs.h>
27300016Sadrian__FBSDID("$FreeBSD: releng/11.0/sys/gnu/dev/bwn/phy_n/if_bwn_phy_n_tables.c 300190 2016-05-19 04:45:50Z adrian $");
28300016Sadrian
29300016Sadrian/*
30300016Sadrian * The Broadcom Wireless LAN controller driver.
31300016Sadrian */
32300016Sadrian
33300190Sadrian#include "opt_wlan.h"
34300190Sadrian#include "opt_bwn.h"
35300190Sadrian
36300016Sadrian#include <sys/param.h>
37300016Sadrian#include <sys/systm.h>
38300016Sadrian#include <sys/kernel.h>
39300016Sadrian#include <sys/malloc.h>
40300016Sadrian#include <sys/module.h>
41300016Sadrian#include <sys/endian.h>
42300016Sadrian#include <sys/errno.h>
43300016Sadrian#include <sys/firmware.h>
44300016Sadrian#include <sys/lock.h>
45300016Sadrian#include <sys/mutex.h>
46300016Sadrian#include <machine/bus.h>
47300016Sadrian#include <machine/resource.h>
48300016Sadrian#include <sys/bus.h>
49300016Sadrian#include <sys/rman.h>
50300016Sadrian#include <sys/socket.h>
51300016Sadrian#include <sys/sockio.h>
52300016Sadrian
53300016Sadrian#include <net/ethernet.h>
54300016Sadrian#include <net/if.h>
55300016Sadrian#include <net/if_var.h>
56300016Sadrian#include <net/if_arp.h>
57300016Sadrian#include <net/if_dl.h>
58300016Sadrian#include <net/if_llc.h>
59300016Sadrian#include <net/if_media.h>
60300016Sadrian#include <net/if_types.h>
61300016Sadrian
62300016Sadrian#include <dev/pci/pcivar.h>
63300016Sadrian#include <dev/pci/pcireg.h>
64300016Sadrian#include <dev/siba/siba_ids.h>
65300016Sadrian#include <dev/siba/sibareg.h>
66300016Sadrian#include <dev/siba/sibavar.h>
67300016Sadrian
68300016Sadrian#include <net80211/ieee80211_var.h>
69300016Sadrian#include <net80211/ieee80211_radiotap.h>
70300016Sadrian#include <net80211/ieee80211_regdomain.h>
71300016Sadrian#include <net80211/ieee80211_phy.h>
72300016Sadrian#include <net80211/ieee80211_ratectl.h>
73300016Sadrian
74300016Sadrian#include <dev/bwn/if_bwnreg.h>
75300016Sadrian#include <dev/bwn/if_bwnvar.h>
76300016Sadrian#include <dev/bwn/if_bwn_debug.h>
77300016Sadrian
78300016Sadrian#include <gnu/dev/bwn/phy_n/if_bwn_phy_n_regs.h>
79300016Sadrian#include <gnu/dev/bwn/phy_n/if_bwn_phy_n_ppr.h>
80300016Sadrian#include <gnu/dev/bwn/phy_n/if_bwn_phy_n_tables.h>
81300016Sadrian#include <gnu/dev/bwn/phy_n/if_bwn_phy_n_core.h>
82300016Sadrian
83300016Sadrianstatic const uint8_t bwn_ntab_adjustpower0[] = {
84300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
85300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
86300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
87300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
88300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
89300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
90300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
91300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
92300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
93300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
94300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
95300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
96300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
97300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
98300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
99300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
100300016Sadrian};
101300016Sadrian
102300016Sadrianstatic const uint8_t bwn_ntab_adjustpower1[] = {
103300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
104300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
105300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
106300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
107300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
108300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
109300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
110300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
111300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
112300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
113300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
114300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
115300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
116300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
117300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
118300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
119300016Sadrian};
120300016Sadrian
121300016Sadrianstatic const uint16_t bwn_ntab_bdi[] = {
122300016Sadrian	0x0070, 0x0126, 0x012C, 0x0246, 0x048D, 0x04D2,
123300016Sadrian};
124300016Sadrian
125300016Sadrianstatic const uint32_t bwn_ntab_channelest[] = {
126300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
127300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
128300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
129300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
130300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
131300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
132300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
133300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
134300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
135300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
136300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
137300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
138300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
139300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
140300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
141300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
142300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
143300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
144300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
145300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
146300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
147300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
148300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
149300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
150300016Sadrian};
151300016Sadrian
152300016Sadrianstatic const uint8_t bwn_ntab_estimatepowerlt0[] = {
153300016Sadrian	0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
154300016Sadrian	0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
155300016Sadrian	0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
156300016Sadrian	0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
157300016Sadrian	0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
158300016Sadrian	0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
159300016Sadrian	0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
160300016Sadrian	0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
161300016Sadrian};
162300016Sadrian
163300016Sadrianstatic const uint8_t bwn_ntab_estimatepowerlt1[] = {
164300016Sadrian	0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
165300016Sadrian	0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
166300016Sadrian	0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
167300016Sadrian	0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
168300016Sadrian	0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
169300016Sadrian	0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
170300016Sadrian	0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
171300016Sadrian	0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
172300016Sadrian};
173300016Sadrian
174300016Sadrianstatic const uint8_t bwn_ntab_framelookup[] = {
175300016Sadrian	0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
176300016Sadrian	0x0A, 0x0C, 0x1C, 0x1C, 0x0B, 0x0D, 0x1E, 0x1E,
177300016Sadrian	0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1A, 0x1A,
178300016Sadrian	0x0E, 0x10, 0x20, 0x28, 0x0F, 0x11, 0x22, 0x2A,
179300016Sadrian};
180300016Sadrian
181300016Sadrianstatic const uint32_t bwn_ntab_framestruct[] = {
182300016Sadrian	0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
183300016Sadrian	0x09804506, 0x00100030, 0x09804507, 0x00100030,
184300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
185300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
186300016Sadrian	0x08004A0C, 0x00100004, 0x01000A0D, 0x00100024,
187300016Sadrian	0x0980450E, 0x00100034, 0x0980450F, 0x00100034,
188300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
189300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
190300016Sadrian	0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
191300016Sadrian	0x1980C506, 0x00100030, 0x21810506, 0x00100030,
192300016Sadrian	0x21810506, 0x00100030, 0x01800504, 0x00100030,
193300016Sadrian	0x11808505, 0x00100030, 0x29814507, 0x01100030,
194300016Sadrian	0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
195300016Sadrian	0x21810506, 0x00100030, 0x21810506, 0x00100030,
196300016Sadrian	0x29814507, 0x01100030, 0x00000000, 0x00000000,
197300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
198300016Sadrian	0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
199300016Sadrian	0x1980C50E, 0x00100038, 0x2181050E, 0x00100038,
200300016Sadrian	0x2181050E, 0x00100038, 0x0180050C, 0x00100038,
201300016Sadrian	0x1180850D, 0x00100038, 0x2981450F, 0x01100038,
202300016Sadrian	0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
203300016Sadrian	0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
204300016Sadrian	0x2981450F, 0x01100038, 0x00000000, 0x00000000,
205300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
206300016Sadrian	0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
207300016Sadrian	0x1980C506, 0x00100030, 0x1980C506, 0x00100030,
208300016Sadrian	0x11808504, 0x00100030, 0x3981CA05, 0x00100030,
209300016Sadrian	0x29814507, 0x01100030, 0x00000000, 0x00000000,
210300016Sadrian	0x10008A04, 0x00100000, 0x3981CA05, 0x00100030,
211300016Sadrian	0x1980C506, 0x00100030, 0x29814507, 0x01100030,
212300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
213300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
214300016Sadrian	0x08004A0C, 0x00100008, 0x01000A0D, 0x00100028,
215300016Sadrian	0x1980C50E, 0x00100038, 0x1980C50E, 0x00100038,
216300016Sadrian	0x1180850C, 0x00100038, 0x3981CA0D, 0x00100038,
217300016Sadrian	0x2981450F, 0x01100038, 0x00000000, 0x00000000,
218300016Sadrian	0x10008A0C, 0x00100008, 0x3981CA0D, 0x00100038,
219300016Sadrian	0x1980C50E, 0x00100038, 0x2981450F, 0x01100038,
220300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
221300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
222300016Sadrian	0x40021404, 0x00100000, 0x02001405, 0x00100040,
223300016Sadrian	0x0B004A06, 0x01900060, 0x13008A06, 0x01900060,
224300016Sadrian	0x13008A06, 0x01900060, 0x43020A04, 0x00100060,
225300016Sadrian	0x1B00CA05, 0x00100060, 0x23010A07, 0x01500060,
226300016Sadrian	0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
227300016Sadrian	0x13008A06, 0x01900060, 0x13008A06, 0x01900060,
228300016Sadrian	0x23010A07, 0x01500060, 0x00000000, 0x00000000,
229300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
230300016Sadrian	0x4002140C, 0x00100010, 0x0200140D, 0x00100050,
231300016Sadrian	0x0B004A0E, 0x01900070, 0x13008A0E, 0x01900070,
232300016Sadrian	0x13008A0E, 0x01900070, 0x43020A0C, 0x00100070,
233300016Sadrian	0x1B00CA0D, 0x00100070, 0x23010A0F, 0x01500070,
234300016Sadrian	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
235300016Sadrian	0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
236300016Sadrian	0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
237300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
238300016Sadrian	0x50029404, 0x00100000, 0x32019405, 0x00100040,
239300016Sadrian	0x0B004A06, 0x01900060, 0x0B004A06, 0x01900060,
240300016Sadrian	0x5B02CA04, 0x00100060, 0x3B01D405, 0x00100060,
241300016Sadrian	0x23010A07, 0x01500060, 0x00000000, 0x00000000,
242300016Sadrian	0x5802D404, 0x00100000, 0x3B01D405, 0x00100060,
243300016Sadrian	0x0B004A06, 0x01900060, 0x23010A07, 0x01500060,
244300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
245300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
246300016Sadrian	0x5002940C, 0x00100010, 0x3201940D, 0x00100050,
247300016Sadrian	0x0B004A0E, 0x01900070, 0x0B004A0E, 0x01900070,
248300016Sadrian	0x5B02CA0C, 0x00100070, 0x3B01D40D, 0x00100070,
249300016Sadrian	0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
250300016Sadrian	0x5802D40C, 0x00100010, 0x3B01D40D, 0x00100070,
251300016Sadrian	0x0B004A0E, 0x01900070, 0x23010A0F, 0x01500070,
252300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
253300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
254300016Sadrian	0x40021404, 0x000F4800, 0x62031405, 0x00100040,
255300016Sadrian	0x53028A06, 0x01900060, 0x53028A07, 0x01900060,
256300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
257300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
258300016Sadrian	0x4002140C, 0x000F4808, 0x6203140D, 0x00100048,
259300016Sadrian	0x53028A0E, 0x01900068, 0x53028A0F, 0x01900068,
260300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
261300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
262300016Sadrian	0x00000A0C, 0x00100004, 0x11008A0D, 0x00100024,
263300016Sadrian	0x1980C50E, 0x00100034, 0x2181050E, 0x00100034,
264300016Sadrian	0x2181050E, 0x00100034, 0x0180050C, 0x00100038,
265300016Sadrian	0x1180850D, 0x00100038, 0x1181850D, 0x00100038,
266300016Sadrian	0x2981450F, 0x01100038, 0x00000000, 0x00000000,
267300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
268300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
269300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
270300016Sadrian	0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
271300016Sadrian	0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
272300016Sadrian	0x1181850D, 0x00100038, 0x2981450F, 0x01100038,
273300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
274300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
275300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
276300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
277300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
278300016Sadrian	0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
279300016Sadrian	0x0180C506, 0x00100030, 0x0180C506, 0x00100030,
280300016Sadrian	0x2180C50C, 0x00100030, 0x49820A0D, 0x0016A130,
281300016Sadrian	0x41824A0D, 0x0016A130, 0x2981450F, 0x01100030,
282300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
283300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
284300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
285300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
286300016Sadrian	0x2000CA0C, 0x00100000, 0x49820A0D, 0x0016A130,
287300016Sadrian	0x1980C50E, 0x00100030, 0x41824A0D, 0x0016A130,
288300016Sadrian	0x2981450F, 0x01100030, 0x00000000, 0x00000000,
289300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
290300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
291300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
292300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
293300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
294300016Sadrian	0x4002140C, 0x00100008, 0x0200140D, 0x00100048,
295300016Sadrian	0x0B004A0E, 0x01900068, 0x13008A0E, 0x01900068,
296300016Sadrian	0x13008A0E, 0x01900068, 0x43020A0C, 0x00100070,
297300016Sadrian	0x1B00CA0D, 0x00100070, 0x1B014A0D, 0x00100070,
298300016Sadrian	0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
299300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
300300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
301300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
302300016Sadrian	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
303300016Sadrian	0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
304300016Sadrian	0x1B014A0D, 0x00100070, 0x23010A0F, 0x01500070,
305300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
306300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
307300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
308300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
309300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
310300016Sadrian	0x50029404, 0x00100000, 0x32019405, 0x00100040,
311300016Sadrian	0x03004A06, 0x01900060, 0x03004A06, 0x01900060,
312300016Sadrian	0x6B030A0C, 0x00100060, 0x4B02140D, 0x0016A160,
313300016Sadrian	0x4302540D, 0x0016A160, 0x23010A0F, 0x01500060,
314300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
315300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
316300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
317300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
318300016Sadrian	0x6B03140C, 0x00100060, 0x4B02140D, 0x0016A160,
319300016Sadrian	0x0B004A0E, 0x01900060, 0x4302540D, 0x0016A160,
320300016Sadrian	0x23010A0F, 0x01500060, 0x00000000, 0x00000000,
321300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
322300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
323300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
324300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
325300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
326300016Sadrian	0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
327300016Sadrian	0x53028A06, 0x01900060, 0x5B02CA06, 0x01900060,
328300016Sadrian	0x5B02CA06, 0x01900060, 0x43020A04, 0x00100060,
329300016Sadrian	0x1B00CA05, 0x00100060, 0x53028A07, 0x0190C060,
330300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
331300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
332300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
333300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
334300016Sadrian	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
335300016Sadrian	0x53028A0E, 0x01900070, 0x5B02CA0E, 0x01900070,
336300016Sadrian	0x5B02CA0E, 0x01900070, 0x43020A0C, 0x00100070,
337300016Sadrian	0x1B00CA0D, 0x00100070, 0x53028A0F, 0x0190C070,
338300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
339300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
340300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
341300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
342300016Sadrian	0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
343300016Sadrian	0x5B02CA06, 0x01900060, 0x5B02CA06, 0x01900060,
344300016Sadrian	0x53028A07, 0x0190C060, 0x00000000, 0x00000000,
345300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
346300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
347300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
348300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
349300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
350300016Sadrian	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
351300016Sadrian	0x5B02CA0E, 0x01900070, 0x5B02CA0E, 0x01900070,
352300016Sadrian	0x53028A0F, 0x0190C070, 0x00000000, 0x00000000,
353300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
354300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
355300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
356300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
357300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
358300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
359300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
360300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
361300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
362300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
363300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
364300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
365300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
366300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
367300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
368300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
369300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
370300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
371300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
372300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
373300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
374300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
375300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
376300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
377300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
378300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
379300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
380300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
381300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
382300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
383300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
384300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
385300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
386300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
387300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
388300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
389300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
390300016Sadrian};
391300016Sadrian
392300016Sadrianstatic const uint32_t bwn_ntab_gainctl0[] = {
393300016Sadrian	0x03CC2B44, 0x03CC2B42, 0x03CC2B40, 0x03CC2B3E,
394300016Sadrian	0x03CC2B3D, 0x03CC2B3B, 0x03C82B44, 0x03C82B42,
395300016Sadrian	0x03C82B40, 0x03C82B3E, 0x03C82B3D, 0x03C82B3B,
396300016Sadrian	0x03C82B39, 0x03C82B38, 0x03C82B36, 0x03C82B34,
397300016Sadrian	0x03C42B44, 0x03C42B42, 0x03C42B40, 0x03C42B3E,
398300016Sadrian	0x03C42B3D, 0x03C42B3B, 0x03C42B39, 0x03C42B38,
399300016Sadrian	0x03C42B36, 0x03C42B34, 0x03C42B33, 0x03C42B32,
400300016Sadrian	0x03C42B30, 0x03C42B2F, 0x03C42B2D, 0x03C02B44,
401300016Sadrian	0x03C02B42, 0x03C02B40, 0x03C02B3E, 0x03C02B3D,
402300016Sadrian	0x03C02B3B, 0x03C02B39, 0x03C02B38, 0x03C02B36,
403300016Sadrian	0x03C02B34, 0x03B02B44, 0x03B02B42, 0x03B02B40,
404300016Sadrian	0x03B02B3E, 0x03B02B3D, 0x03B02B3B, 0x03B02B39,
405300016Sadrian	0x03B02B38, 0x03B02B36, 0x03B02B34, 0x03B02B33,
406300016Sadrian	0x03B02B32, 0x03B02B30, 0x03B02B2F, 0x03B02B2D,
407300016Sadrian	0x03A02B44, 0x03A02B42, 0x03A02B40, 0x03A02B3E,
408300016Sadrian	0x03A02B3D, 0x03A02B3B, 0x03A02B39, 0x03A02B38,
409300016Sadrian	0x03A02B36, 0x03A02B34, 0x03902B44, 0x03902B42,
410300016Sadrian	0x03902B40, 0x03902B3E, 0x03902B3D, 0x03902B3B,
411300016Sadrian	0x03902B39, 0x03902B38, 0x03902B36, 0x03902B34,
412300016Sadrian	0x03902B33, 0x03902B32, 0x03902B30, 0x03802B44,
413300016Sadrian	0x03802B42, 0x03802B40, 0x03802B3E, 0x03802B3D,
414300016Sadrian	0x03802B3B, 0x03802B39, 0x03802B38, 0x03802B36,
415300016Sadrian	0x03802B34, 0x03802B33, 0x03802B32, 0x03802B30,
416300016Sadrian	0x03802B2F, 0x03802B2D, 0x03802B2C, 0x03802B2B,
417300016Sadrian	0x03802B2A, 0x03802B29, 0x03802B27, 0x03802B26,
418300016Sadrian	0x03802B25, 0x03802B24, 0x03802B23, 0x03802B22,
419300016Sadrian	0x03802B21, 0x03802B20, 0x03802B1F, 0x03802B1E,
420300016Sadrian	0x03802B1E, 0x03802B1D, 0x03802B1C, 0x03802B1B,
421300016Sadrian	0x03802B1A, 0x03802B1A, 0x03802B19, 0x03802B18,
422300016Sadrian	0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
423300016Sadrian	0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
424300016Sadrian	0x03802B18, 0x03802B18, 0x03802B18, 0x00002B00,
425300016Sadrian};
426300016Sadrian
427300016Sadrianstatic const uint32_t bwn_ntab_gainctl1[] = {
428300016Sadrian	0x03CC2B44, 0x03CC2B42, 0x03CC2B40, 0x03CC2B3E,
429300016Sadrian	0x03CC2B3D, 0x03CC2B3B, 0x03C82B44, 0x03C82B42,
430300016Sadrian	0x03C82B40, 0x03C82B3E, 0x03C82B3D, 0x03C82B3B,
431300016Sadrian	0x03C82B39, 0x03C82B38, 0x03C82B36, 0x03C82B34,
432300016Sadrian	0x03C42B44, 0x03C42B42, 0x03C42B40, 0x03C42B3E,
433300016Sadrian	0x03C42B3D, 0x03C42B3B, 0x03C42B39, 0x03C42B38,
434300016Sadrian	0x03C42B36, 0x03C42B34, 0x03C42B33, 0x03C42B32,
435300016Sadrian	0x03C42B30, 0x03C42B2F, 0x03C42B2D, 0x03C02B44,
436300016Sadrian	0x03C02B42, 0x03C02B40, 0x03C02B3E, 0x03C02B3D,
437300016Sadrian	0x03C02B3B, 0x03C02B39, 0x03C02B38, 0x03C02B36,
438300016Sadrian	0x03C02B34, 0x03B02B44, 0x03B02B42, 0x03B02B40,
439300016Sadrian	0x03B02B3E, 0x03B02B3D, 0x03B02B3B, 0x03B02B39,
440300016Sadrian	0x03B02B38, 0x03B02B36, 0x03B02B34, 0x03B02B33,
441300016Sadrian	0x03B02B32, 0x03B02B30, 0x03B02B2F, 0x03B02B2D,
442300016Sadrian	0x03A02B44, 0x03A02B42, 0x03A02B40, 0x03A02B3E,
443300016Sadrian	0x03A02B3D, 0x03A02B3B, 0x03A02B39, 0x03A02B38,
444300016Sadrian	0x03A02B36, 0x03A02B34, 0x03902B44, 0x03902B42,
445300016Sadrian	0x03902B40, 0x03902B3E, 0x03902B3D, 0x03902B3B,
446300016Sadrian	0x03902B39, 0x03902B38, 0x03902B36, 0x03902B34,
447300016Sadrian	0x03902B33, 0x03902B32, 0x03902B30, 0x03802B44,
448300016Sadrian	0x03802B42, 0x03802B40, 0x03802B3E, 0x03802B3D,
449300016Sadrian	0x03802B3B, 0x03802B39, 0x03802B38, 0x03802B36,
450300016Sadrian	0x03802B34, 0x03802B33, 0x03802B32, 0x03802B30,
451300016Sadrian	0x03802B2F, 0x03802B2D, 0x03802B2C, 0x03802B2B,
452300016Sadrian	0x03802B2A, 0x03802B29, 0x03802B27, 0x03802B26,
453300016Sadrian	0x03802B25, 0x03802B24, 0x03802B23, 0x03802B22,
454300016Sadrian	0x03802B21, 0x03802B20, 0x03802B1F, 0x03802B1E,
455300016Sadrian	0x03802B1E, 0x03802B1D, 0x03802B1C, 0x03802B1B,
456300016Sadrian	0x03802B1A, 0x03802B1A, 0x03802B19, 0x03802B18,
457300016Sadrian	0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
458300016Sadrian	0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
459300016Sadrian	0x03802B18, 0x03802B18, 0x03802B18, 0x00002B00,
460300016Sadrian};
461300016Sadrian
462300016Sadrianstatic const uint32_t bwn_ntab_intlevel[] = {
463300016Sadrian	0x00802070, 0x0671188D, 0x0A60192C, 0x0A300E46,
464300016Sadrian	0x00C1188D, 0x080024D2, 0x00000070,
465300016Sadrian};
466300016Sadrian
467300016Sadrianstatic const uint32_t bwn_ntab_iqlt0[] = {
468300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
469300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
470300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
471300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
472300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
473300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
474300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
475300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
476300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
477300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
478300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
479300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
480300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
481300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
482300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
483300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
484300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
485300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
486300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
487300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
488300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
489300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
490300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
491300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
492300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
493300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
494300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
495300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
496300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
497300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
498300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
499300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
500300016Sadrian};
501300016Sadrian
502300016Sadrianstatic const uint32_t bwn_ntab_iqlt1[] = {
503300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
504300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
505300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
506300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
507300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
508300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
509300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
510300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
511300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
512300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
513300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
514300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
515300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
516300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
517300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
518300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
519300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
520300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
521300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
522300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
523300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
524300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
525300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
526300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
527300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
528300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
529300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
530300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
531300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
532300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
533300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
534300016Sadrian	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
535300016Sadrian};
536300016Sadrian
537300016Sadrianstatic const uint16_t bwn_ntab_loftlt0[] = {
538300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
539300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
540300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
541300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
542300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
543300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
544300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
545300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
546300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
547300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
548300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
549300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
550300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
551300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
552300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
553300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
554300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
555300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
556300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
557300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
558300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
559300016Sadrian	0x0002, 0x0103,
560300016Sadrian};
561300016Sadrian
562300016Sadrianstatic const uint16_t bwn_ntab_loftlt1[] = {
563300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
564300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
565300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
566300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
567300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
568300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
569300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
570300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
571300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
572300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
573300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
574300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
575300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
576300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
577300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
578300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
579300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
580300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
581300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
582300016Sadrian	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
583300016Sadrian	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
584300016Sadrian	0x0002, 0x0103,
585300016Sadrian};
586300016Sadrian
587300016Sadrianstatic const uint8_t bwn_ntab_mcs[] = {
588300016Sadrian	0x00, 0x08, 0x0A, 0x10, 0x12, 0x19, 0x1A, 0x1C,
589300016Sadrian	0x40, 0x48, 0x4A, 0x50, 0x52, 0x59, 0x5A, 0x5C,
590300016Sadrian	0x80, 0x88, 0x8A, 0x90, 0x92, 0x99, 0x9A, 0x9C,
591300016Sadrian	0xC0, 0xC8, 0xCA, 0xD0, 0xD2, 0xD9, 0xDA, 0xDC,
592300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
593300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
594300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
595300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
596300016Sadrian	0x00, 0x01, 0x02, 0x04, 0x08, 0x09, 0x0A, 0x0C,
597300016Sadrian	0x10, 0x11, 0x12, 0x14, 0x18, 0x19, 0x1A, 0x1C,
598300016Sadrian	0x20, 0x21, 0x22, 0x24, 0x40, 0x41, 0x42, 0x44,
599300016Sadrian	0x48, 0x49, 0x4A, 0x4C, 0x50, 0x51, 0x52, 0x54,
600300016Sadrian	0x58, 0x59, 0x5A, 0x5C, 0x60, 0x61, 0x62, 0x64,
601300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
602300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
603300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
604300016Sadrian};
605300016Sadrian
606300016Sadrianstatic const uint32_t bwn_ntab_noisevar10[] = {
607300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
608300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
609300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
610300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
611300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
612300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
613300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
614300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
615300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
616300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
617300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
618300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
619300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
620300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
621300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
622300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
623300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
624300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
625300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
626300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
627300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
628300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
629300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
630300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
631300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
632300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
633300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
634300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
635300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
636300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
637300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
638300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
639300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
640300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
641300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
642300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
643300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
644300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
645300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
646300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
647300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
648300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
649300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
650300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
651300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
652300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
653300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
654300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
655300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
656300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
657300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
658300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
659300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
660300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
661300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
662300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
663300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
664300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
665300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
666300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
667300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
668300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
669300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
670300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
671300016Sadrian};
672300016Sadrian
673300016Sadrianstatic const uint32_t bwn_ntab_noisevar11[] = {
674300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
675300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
676300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
677300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
678300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
679300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
680300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
681300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
682300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
683300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
684300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
685300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
686300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
687300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
688300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
689300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
690300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
691300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
692300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
693300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
694300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
695300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
696300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
697300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
698300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
699300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
700300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
701300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
702300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
703300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
704300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
705300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
706300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
707300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
708300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
709300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
710300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
711300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
712300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
713300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
714300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
715300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
716300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
717300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
718300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
719300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
720300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
721300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
722300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
723300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
724300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
725300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
726300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
727300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
728300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
729300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
730300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
731300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
732300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
733300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
734300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
735300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
736300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
737300016Sadrian	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
738300016Sadrian};
739300016Sadrian
740300016Sadrianstatic const uint16_t bwn_ntab_pilot[] = {
741300016Sadrian	0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08,
742300016Sadrian	0xFF08, 0xFF08, 0x80D5, 0x80D5, 0x80D5, 0x80D5,
743300016Sadrian	0x80D5, 0x80D5, 0x80D5, 0x80D5, 0xFF0A, 0xFF82,
744300016Sadrian	0xFFA0, 0xFF28, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
745300016Sadrian	0xFF82, 0xFFA0, 0xFF28, 0xFF0A, 0xFFFF, 0xFFFF,
746300016Sadrian	0xFFFF, 0xFFFF, 0xF83F, 0xFA1F, 0xFA97, 0xFAB5,
747300016Sadrian	0xF2BD, 0xF0BF, 0xFFFF, 0xFFFF, 0xF017, 0xF815,
748300016Sadrian	0xF215, 0xF095, 0xF035, 0xF01D, 0xFFFF, 0xFFFF,
749300016Sadrian	0xFF08, 0xFF02, 0xFF80, 0xFF20, 0xFF08, 0xFF02,
750300016Sadrian	0xFF80, 0xFF20, 0xF01F, 0xF817, 0xFA15, 0xF295,
751300016Sadrian	0xF0B5, 0xF03D, 0xFFFF, 0xFFFF, 0xF82A, 0xFA0A,
752300016Sadrian	0xFA82, 0xFAA0, 0xF2A8, 0xF0AA, 0xFFFF, 0xFFFF,
753300016Sadrian	0xF002, 0xF800, 0xF200, 0xF080, 0xF020, 0xF008,
754300016Sadrian	0xFFFF, 0xFFFF, 0xF00A, 0xF802, 0xFA00, 0xF280,
755300016Sadrian	0xF0A0, 0xF028, 0xFFFF, 0xFFFF,
756300016Sadrian};
757300016Sadrian
758300016Sadrianstatic const uint32_t bwn_ntab_pilotlt[] = {
759300016Sadrian	0x76540123, 0x62407351, 0x76543201, 0x76540213,
760300016Sadrian	0x76540123, 0x76430521,
761300016Sadrian};
762300016Sadrian
763300016Sadrianstatic const uint32_t bwn_ntab_tdi20a0[] = {
764300016Sadrian	0x00091226, 0x000A1429, 0x000B56AD, 0x000C58B0,
765300016Sadrian	0x000D5AB3, 0x000E9CB6, 0x000F9EBA, 0x0000C13D,
766300016Sadrian	0x00020301, 0x00030504, 0x00040708, 0x0005090B,
767300016Sadrian	0x00064B8E, 0x00095291, 0x000A5494, 0x000B9718,
768300016Sadrian	0x000C9927, 0x000D9B2A, 0x000EDD2E, 0x000FDF31,
769300016Sadrian	0x000101B4, 0x000243B7, 0x000345BB, 0x000447BE,
770300016Sadrian	0x00058982, 0x00068C05, 0x00099309, 0x000A950C,
771300016Sadrian	0x000BD78F, 0x000CD992, 0x000DDB96, 0x000F1D99,
772300016Sadrian	0x00005FA8, 0x0001422C, 0x0002842F, 0x00038632,
773300016Sadrian	0x00048835, 0x0005CA38, 0x0006CCBC, 0x0009D3BF,
774300016Sadrian	0x000B1603, 0x000C1806, 0x000D1A0A, 0x000E1C0D,
775300016Sadrian	0x000F5E10, 0x00008093, 0x00018297, 0x0002C49A,
776300016Sadrian	0x0003C680, 0x0004C880, 0x00060B00, 0x00070D00,
777300016Sadrian	0x00000000, 0x00000000, 0x00000000,
778300016Sadrian};
779300016Sadrian
780300016Sadrianstatic const uint32_t bwn_ntab_tdi20a1[] = {
781300016Sadrian	0x00014B26, 0x00028D29, 0x000393AD, 0x00049630,
782300016Sadrian	0x0005D833, 0x0006DA36, 0x00099C3A, 0x000A9E3D,
783300016Sadrian	0x000BC081, 0x000CC284, 0x000DC488, 0x000F068B,
784300016Sadrian	0x0000488E, 0x00018B91, 0x0002D214, 0x0003D418,
785300016Sadrian	0x0004D6A7, 0x000618AA, 0x00071AAE, 0x0009DCB1,
786300016Sadrian	0x000B1EB4, 0x000C0137, 0x000D033B, 0x000E053E,
787300016Sadrian	0x000F4702, 0x00008905, 0x00020C09, 0x0003128C,
788300016Sadrian	0x0004148F, 0x00051712, 0x00065916, 0x00091B19,
789300016Sadrian	0x000A1D28, 0x000B5F2C, 0x000C41AF, 0x000D43B2,
790300016Sadrian	0x000E85B5, 0x000F87B8, 0x0000C9BC, 0x00024CBF,
791300016Sadrian	0x00035303, 0x00045506, 0x0005978A, 0x0006998D,
792300016Sadrian	0x00095B90, 0x000A5D93, 0x000B9F97, 0x000C821A,
793300016Sadrian	0x000D8400, 0x000EC600, 0x000FC800, 0x00010A00,
794300016Sadrian	0x00000000, 0x00000000, 0x00000000,
795300016Sadrian};
796300016Sadrian
797300016Sadrianstatic const uint32_t bwn_ntab_tdi40a0[] = {
798300016Sadrian	0x0011A346, 0x00136CCF, 0x0014F5D9, 0x001641E2,
799300016Sadrian	0x0017CB6B, 0x00195475, 0x001B2383, 0x001CAD0C,
800300016Sadrian	0x001E7616, 0x0000821F, 0x00020BA8, 0x0003D4B2,
801300016Sadrian	0x00056447, 0x00072DD0, 0x0008B6DA, 0x000A02E3,
802300016Sadrian	0x000B8C6C, 0x000D15F6, 0x0011E484, 0x0013AE0D,
803300016Sadrian	0x00153717, 0x00168320, 0x00180CA9, 0x00199633,
804300016Sadrian	0x001B6548, 0x001CEED1, 0x001EB7DB, 0x0000C3E4,
805300016Sadrian	0x00024D6D, 0x000416F7, 0x0005A585, 0x00076F0F,
806300016Sadrian	0x0008F818, 0x000A4421, 0x000BCDAB, 0x000D9734,
807300016Sadrian	0x00122649, 0x0013EFD2, 0x001578DC, 0x0016C4E5,
808300016Sadrian	0x00184E6E, 0x001A17F8, 0x001BA686, 0x001D3010,
809300016Sadrian	0x001EF999, 0x00010522, 0x00028EAC, 0x00045835,
810300016Sadrian	0x0005E74A, 0x0007B0D3, 0x00093A5D, 0x000A85E6,
811300016Sadrian	0x000C0F6F, 0x000DD8F9, 0x00126787, 0x00143111,
812300016Sadrian	0x0015BA9A, 0x00170623, 0x00188FAD, 0x001A5936,
813300016Sadrian	0x001BE84B, 0x001DB1D4, 0x001F3B5E, 0x000146E7,
814300016Sadrian	0x00031070, 0x000499FA, 0x00062888, 0x0007F212,
815300016Sadrian	0x00097B9B, 0x000AC7A4, 0x000C50AE, 0x000E1A37,
816300016Sadrian	0x0012A94C, 0x001472D5, 0x0015FC5F, 0x00174868,
817300016Sadrian	0x0018D171, 0x001A9AFB, 0x001C2989, 0x001DF313,
818300016Sadrian	0x001F7C9C, 0x000188A5, 0x000351AF, 0x0004DB38,
819300016Sadrian	0x0006AA4D, 0x000833D7, 0x0009BD60, 0x000B0969,
820300016Sadrian	0x000C9273, 0x000E5BFC, 0x00132A8A, 0x0014B414,
821300016Sadrian	0x00163D9D, 0x001789A6, 0x001912B0, 0x001ADC39,
822300016Sadrian	0x001C6BCE, 0x001E34D8, 0x001FBE61, 0x0001CA6A,
823300016Sadrian	0x00039374, 0x00051CFD, 0x0006EC0B, 0x00087515,
824300016Sadrian	0x0009FE9E, 0x000B4AA7, 0x000CD3B1, 0x000E9D3A,
825300016Sadrian	0x00000000, 0x00000000,
826300016Sadrian};
827300016Sadrian
828300016Sadrianstatic const uint32_t bwn_ntab_tdi40a1[] = {
829300016Sadrian	0x001EDB36, 0x000129CA, 0x0002B353, 0x00047CDD,
830300016Sadrian	0x0005C8E6, 0x000791EF, 0x00091BF9, 0x000AAA07,
831300016Sadrian	0x000C3391, 0x000DFD1A, 0x00120923, 0x0013D22D,
832300016Sadrian	0x00155C37, 0x0016EACB, 0x00187454, 0x001A3DDE,
833300016Sadrian	0x001B89E7, 0x001D12F0, 0x001F1CFA, 0x00016B88,
834300016Sadrian	0x00033492, 0x0004BE1B, 0x00060A24, 0x0007D32E,
835300016Sadrian	0x00095D38, 0x000AEC4C, 0x000C7555, 0x000E3EDF,
836300016Sadrian	0x00124AE8, 0x001413F1, 0x0015A37B, 0x00172C89,
837300016Sadrian	0x0018B593, 0x001A419C, 0x001BCB25, 0x001D942F,
838300016Sadrian	0x001F63B9, 0x0001AD4D, 0x00037657, 0x0004C260,
839300016Sadrian	0x00068BE9, 0x000814F3, 0x0009A47C, 0x000B2D8A,
840300016Sadrian	0x000CB694, 0x000E429D, 0x00128C26, 0x001455B0,
841300016Sadrian	0x0015E4BA, 0x00176E4E, 0x0018F758, 0x001A8361,
842300016Sadrian	0x001C0CEA, 0x001DD674, 0x001FA57D, 0x0001EE8B,
843300016Sadrian	0x0003B795, 0x0005039E, 0x0006CD27, 0x000856B1,
844300016Sadrian	0x0009E5C6, 0x000B6F4F, 0x000CF859, 0x000E8462,
845300016Sadrian	0x00130DEB, 0x00149775, 0x00162603, 0x0017AF8C,
846300016Sadrian	0x00193896, 0x001AC49F, 0x001C4E28, 0x001E17B2,
847300016Sadrian	0x0000A6C7, 0x00023050, 0x0003F9DA, 0x00054563,
848300016Sadrian	0x00070EEC, 0x00089876, 0x000A2704, 0x000BB08D,
849300016Sadrian	0x000D3A17, 0x001185A0, 0x00134F29, 0x0014D8B3,
850300016Sadrian	0x001667C8, 0x0017F151, 0x00197ADB, 0x001B0664,
851300016Sadrian	0x001C8FED, 0x001E5977, 0x0000E805, 0x0002718F,
852300016Sadrian	0x00043B18, 0x000586A1, 0x0007502B, 0x0008D9B4,
853300016Sadrian	0x000A68C9, 0x000BF252, 0x000DBBDC, 0x0011C7E5,
854300016Sadrian	0x001390EE, 0x00151A78, 0x0016A906, 0x00183290,
855300016Sadrian	0x0019BC19, 0x001B4822, 0x001CD12C, 0x001E9AB5,
856300016Sadrian	0x00000000, 0x00000000,
857300016Sadrian};
858300016Sadrian
859300016Sadrianstatic const uint32_t bwn_ntab_tdtrn[] = {
860300016Sadrian	0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
861300016Sadrian	0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
862300016Sadrian	0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
863300016Sadrian	0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
864300016Sadrian	0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
865300016Sadrian	0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
866300016Sadrian	0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
867300016Sadrian	0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
868300016Sadrian	0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
869300016Sadrian	0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
870300016Sadrian	0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
871300016Sadrian	0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
872300016Sadrian	0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
873300016Sadrian	0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
874300016Sadrian	0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
875300016Sadrian	0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
876300016Sadrian	0xFA58FA58, 0xF895043B, 0xFF4C09C0, 0xFBC6FFA8,
877300016Sadrian	0xFB84F384, 0x0798F6F9, 0x05760122, 0x058409F6,
878300016Sadrian	0x0B500000, 0x05B7F542, 0x08860432, 0x06DDFEE7,
879300016Sadrian	0xFB84F384, 0xF9D90664, 0xF7E8025C, 0x00FFF7BD,
880300016Sadrian	0x05A805A8, 0xF7BD00FF, 0x025CF7E8, 0x0664F9D9,
881300016Sadrian	0xF384FB84, 0xFEE706DD, 0x04320886, 0xF54205B7,
882300016Sadrian	0x00000B50, 0x09F60584, 0x01220576, 0xF6F90798,
883300016Sadrian	0xF384FB84, 0xFFA8FBC6, 0x09C0FF4C, 0x043BF895,
884300016Sadrian	0x02D402D4, 0x07DE0270, 0xFC96079C, 0xF90AFE94,
885300016Sadrian	0xFE00FF2C, 0x02D4065D, 0x092A0096, 0x0014FBB8,
886300016Sadrian	0xFD2CFD2C, 0x076AFB3C, 0x0096F752, 0xF991FD87,
887300016Sadrian	0xFB2C0200, 0xFEB8F960, 0x08E0FC96, 0x049802A8,
888300016Sadrian	0xFD2CFD2C, 0x02A80498, 0xFC9608E0, 0xF960FEB8,
889300016Sadrian	0x0200FB2C, 0xFD87F991, 0xF7520096, 0xFB3C076A,
890300016Sadrian	0xFD2CFD2C, 0xFBB80014, 0x0096092A, 0x065D02D4,
891300016Sadrian	0xFF2CFE00, 0xFE94F90A, 0x079CFC96, 0x027007DE,
892300016Sadrian	0x02D402D4, 0x027007DE, 0x079CFC96, 0xFE94F90A,
893300016Sadrian	0xFF2CFE00, 0x065D02D4, 0x0096092A, 0xFBB80014,
894300016Sadrian	0xFD2CFD2C, 0xFB3C076A, 0xF7520096, 0xFD87F991,
895300016Sadrian	0x0200FB2C, 0xF960FEB8, 0xFC9608E0, 0x02A80498,
896300016Sadrian	0xFD2CFD2C, 0x049802A8, 0x08E0FC96, 0xFEB8F960,
897300016Sadrian	0xFB2C0200, 0xF991FD87, 0x0096F752, 0x076AFB3C,
898300016Sadrian	0xFD2CFD2C, 0x0014FBB8, 0x092A0096, 0x02D4065D,
899300016Sadrian	0xFE00FF2C, 0xF90AFE94, 0xFC96079C, 0x07DE0270,
900300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
901300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
902300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
903300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
904300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
905300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
906300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
907300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
908300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
909300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
910300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
911300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
912300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
913300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
914300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
915300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
916300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
917300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
918300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
919300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
920300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
921300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
922300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
923300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
924300016Sadrian	0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
925300016Sadrian	0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
926300016Sadrian	0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
927300016Sadrian	0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
928300016Sadrian	0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
929300016Sadrian	0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
930300016Sadrian	0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
931300016Sadrian	0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
932300016Sadrian	0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
933300016Sadrian	0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
934300016Sadrian	0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
935300016Sadrian	0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
936300016Sadrian	0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
937300016Sadrian	0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
938300016Sadrian	0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
939300016Sadrian	0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
940300016Sadrian	0x061C061C, 0xFF30009D, 0xFFB21141, 0xFD87FB54,
941300016Sadrian	0xF65DFE59, 0x02EEF99E, 0x0166F03C, 0xFFF809B6,
942300016Sadrian	0x000008A4, 0x000AF42B, 0x00EFF577, 0xFA840BF2,
943300016Sadrian	0xFC02FF51, 0x08260F67, 0xFFF0036F, 0x0842F9C3,
944300016Sadrian	0x00000000, 0x063DF7BE, 0xFC910010, 0xF099F7DA,
945300016Sadrian	0x00AF03FE, 0xF40E057C, 0x0A89FF11, 0x0BD5FFF6,
946300016Sadrian	0xF75C0000, 0xF64A0008, 0x0FC4FE9A, 0x0662FD12,
947300016Sadrian	0x01A709A3, 0x04AC0279, 0xEEBF004E, 0xFF6300D0,
948300016Sadrian	0xF9E4F9E4, 0x00D0FF63, 0x004EEEBF, 0x027904AC,
949300016Sadrian	0x09A301A7, 0xFD120662, 0xFE9A0FC4, 0x0008F64A,
950300016Sadrian	0x0000F75C, 0xFFF60BD5, 0xFF110A89, 0x057CF40E,
951300016Sadrian	0x03FE00AF, 0xF7DAF099, 0x0010FC91, 0xF7BE063D,
952300016Sadrian	0x00000000, 0xF9C30842, 0x036FFFF0, 0x0F670826,
953300016Sadrian	0xFF51FC02, 0x0BF2FA84, 0xF57700EF, 0xF42B000A,
954300016Sadrian	0x08A40000, 0x09B6FFF8, 0xF03C0166, 0xF99E02EE,
955300016Sadrian	0xFE59F65D, 0xFB54FD87, 0x1141FFB2, 0x009DFF30,
956300016Sadrian	0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
957300016Sadrian	0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
958300016Sadrian	0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
959300016Sadrian	0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
960300016Sadrian	0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
961300016Sadrian	0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
962300016Sadrian	0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
963300016Sadrian	0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
964300016Sadrian	0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
965300016Sadrian	0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
966300016Sadrian	0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
967300016Sadrian	0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
968300016Sadrian	0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
969300016Sadrian	0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
970300016Sadrian	0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
971300016Sadrian	0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
972300016Sadrian	0xFA58FA58, 0xF8F0FE00, 0x0448073D, 0xFDC9FE46,
973300016Sadrian	0xF9910258, 0x089D0407, 0xFD5CF71A, 0x02AFFDE0,
974300016Sadrian	0x083E0496, 0xFF5A0740, 0xFF7AFD97, 0x00FE01F1,
975300016Sadrian	0x0009082E, 0xFA94FF75, 0xFECDF8EA, 0xFFB0F693,
976300016Sadrian	0xFD2CFA58, 0x0433FF16, 0xFBA405DD, 0xFA610341,
977300016Sadrian	0x06A606CB, 0x0039FD2D, 0x0677FA97, 0x01FA05E0,
978300016Sadrian	0xF896003E, 0x075A068B, 0x012CFC3E, 0xFA23F98D,
979300016Sadrian	0xFC7CFD43, 0xFF90FC0D, 0x01C10982, 0x00C601D6,
980300016Sadrian	0xFD2CFD2C, 0x01D600C6, 0x098201C1, 0xFC0DFF90,
981300016Sadrian	0xFD43FC7C, 0xF98DFA23, 0xFC3E012C, 0x068B075A,
982300016Sadrian	0x003EF896, 0x05E001FA, 0xFA970677, 0xFD2D0039,
983300016Sadrian	0x06CB06A6, 0x0341FA61, 0x05DDFBA4, 0xFF160433,
984300016Sadrian	0xFA58FD2C, 0xF693FFB0, 0xF8EAFECD, 0xFF75FA94,
985300016Sadrian	0x082E0009, 0x01F100FE, 0xFD97FF7A, 0x0740FF5A,
986300016Sadrian	0x0496083E, 0xFDE002AF, 0xF71AFD5C, 0x0407089D,
987300016Sadrian	0x0258F991, 0xFE46FDC9, 0x073D0448, 0xFE00F8F0,
988300016Sadrian	0xFD2CFD2C, 0xFCE00500, 0xFC09FDDC, 0xFE680157,
989300016Sadrian	0x04C70571, 0xFC3AFF21, 0xFCD70228, 0x056D0277,
990300016Sadrian	0x0200FE00, 0x0022F927, 0xFE3C032B, 0xFC44FF3C,
991300016Sadrian	0x03E9FBDB, 0x04570313, 0x04C9FF5C, 0x000D03B8,
992300016Sadrian	0xFA580000, 0xFBE900D2, 0xF9D0FE0B, 0x0125FDF9,
993300016Sadrian	0x042501BF, 0x0328FA2B, 0xFFA902F0, 0xFA250157,
994300016Sadrian	0x0200FE00, 0x03740438, 0xFF0405FD, 0x030CFE52,
995300016Sadrian	0x0037FB39, 0xFF6904C5, 0x04F8FD23, 0xFD31FC1B,
996300016Sadrian	0xFD2CFD2C, 0xFC1BFD31, 0xFD2304F8, 0x04C5FF69,
997300016Sadrian	0xFB390037, 0xFE52030C, 0x05FDFF04, 0x04380374,
998300016Sadrian	0xFE000200, 0x0157FA25, 0x02F0FFA9, 0xFA2B0328,
999300016Sadrian	0x01BF0425, 0xFDF90125, 0xFE0BF9D0, 0x00D2FBE9,
1000300016Sadrian	0x0000FA58, 0x03B8000D, 0xFF5C04C9, 0x03130457,
1001300016Sadrian	0xFBDB03E9, 0xFF3CFC44, 0x032BFE3C, 0xF9270022,
1002300016Sadrian	0xFE000200, 0x0277056D, 0x0228FCD7, 0xFF21FC3A,
1003300016Sadrian	0x057104C7, 0x0157FE68, 0xFDDCFC09, 0x0500FCE0,
1004300016Sadrian	0xFD2CFD2C, 0x0500FCE0, 0xFDDCFC09, 0x0157FE68,
1005300016Sadrian	0x057104C7, 0xFF21FC3A, 0x0228FCD7, 0x0277056D,
1006300016Sadrian	0xFE000200, 0xF9270022, 0x032BFE3C, 0xFF3CFC44,
1007300016Sadrian	0xFBDB03E9, 0x03130457, 0xFF5C04C9, 0x03B8000D,
1008300016Sadrian	0x0000FA58, 0x00D2FBE9, 0xFE0BF9D0, 0xFDF90125,
1009300016Sadrian	0x01BF0425, 0xFA2B0328, 0x02F0FFA9, 0x0157FA25,
1010300016Sadrian	0xFE000200, 0x04380374, 0x05FDFF04, 0xFE52030C,
1011300016Sadrian	0xFB390037, 0x04C5FF69, 0xFD2304F8, 0xFC1BFD31,
1012300016Sadrian	0xFD2CFD2C, 0xFD31FC1B, 0x04F8FD23, 0xFF6904C5,
1013300016Sadrian	0x0037FB39, 0x030CFE52, 0xFF0405FD, 0x03740438,
1014300016Sadrian	0x0200FE00, 0xFA250157, 0xFFA902F0, 0x0328FA2B,
1015300016Sadrian	0x042501BF, 0x0125FDF9, 0xF9D0FE0B, 0xFBE900D2,
1016300016Sadrian	0xFA580000, 0x000D03B8, 0x04C9FF5C, 0x04570313,
1017300016Sadrian	0x03E9FBDB, 0xFC44FF3C, 0xFE3C032B, 0x0022F927,
1018300016Sadrian	0x0200FE00, 0x056D0277, 0xFCD70228, 0xFC3AFF21,
1019300016Sadrian	0x04C70571, 0xFE680157, 0xFC09FDDC, 0xFCE00500,
1020300016Sadrian	0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
1021300016Sadrian	0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
1022300016Sadrian	0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
1023300016Sadrian	0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
1024300016Sadrian	0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
1025300016Sadrian	0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
1026300016Sadrian	0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
1027300016Sadrian	0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
1028300016Sadrian	0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
1029300016Sadrian	0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
1030300016Sadrian	0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
1031300016Sadrian	0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
1032300016Sadrian	0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
1033300016Sadrian	0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
1034300016Sadrian	0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
1035300016Sadrian	0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
1036300016Sadrian};
1037300016Sadrian
1038300016Sadrianstatic const uint32_t bwn_ntab_tmap[] = {
1039300016Sadrian	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1040300016Sadrian	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1041300016Sadrian	0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
1042300016Sadrian	0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
1043300016Sadrian	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x000AA888,
1044300016Sadrian	0x88880000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1045300016Sadrian	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1046300016Sadrian	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1047300016Sadrian	0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
1048300016Sadrian	0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
1049300016Sadrian	0xF1111110, 0x11111111, 0x11F11111, 0x00011111,
1050300016Sadrian	0x11110000, 0x1111F111, 0x11111111, 0x111111F1,
1051300016Sadrian	0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00088AAA,
1052300016Sadrian	0xAAAA0000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1053300016Sadrian	0xAAA8AAA0, 0x8AAA8AAA, 0xAA8A8A8A, 0x000AAA88,
1054300016Sadrian	0x8AAA0000, 0xAAA8A888, 0x8AA88A8A, 0x8A88A888,
1055300016Sadrian	0x08080A00, 0x0A08080A, 0x080A0A08, 0x00080808,
1056300016Sadrian	0x080A0000, 0x080A0808, 0x080A0808, 0x0A0A0A08,
1057300016Sadrian	0xA0A0A0A0, 0x80A0A080, 0x8080A0A0, 0x00008080,
1058300016Sadrian	0x80A00000, 0x80A080A0, 0xA080A0A0, 0x8080A0A0,
1059300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1060300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1061300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1062300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1063300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1064300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1065300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1066300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1067300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1068300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1069300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1070300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1071300016Sadrian	0x99999000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1072300016Sadrian	0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1073300016Sadrian	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1074300016Sadrian	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
1075300016Sadrian	0x22000000, 0x2222B222, 0x22222222, 0x222222B2,
1076300016Sadrian	0xB2222220, 0x22222222, 0x22D22222, 0x00000222,
1077300016Sadrian	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1078300016Sadrian	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1079300016Sadrian	0x33000000, 0x3333B333, 0x33333333, 0x333333B3,
1080300016Sadrian	0xB3333330, 0x33333333, 0x33D33333, 0x00000333,
1081300016Sadrian	0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
1082300016Sadrian	0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
1083300016Sadrian	0x99B99B00, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1084300016Sadrian	0x9B99BB99, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1085300016Sadrian	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1086300016Sadrian	0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
1087300016Sadrian	0x22222200, 0x2222F222, 0x22222222, 0x222222F2,
1088300016Sadrian	0x22222222, 0x22222222, 0x22F22222, 0x00000222,
1089300016Sadrian	0x11000000, 0x1111F111, 0x11111111, 0x11111111,
1090300016Sadrian	0xF1111111, 0x11111111, 0x11F11111, 0x01111111,
1091300016Sadrian	0xBB9BB900, 0xB9B9BB99, 0xB99BBBBB, 0xBBBB9B9B,
1092300016Sadrian	0xB9BB99BB, 0xB99999B9, 0xB9B9B99B, 0x00000BBB,
1093300016Sadrian	0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1094300016Sadrian	0xA8AA88AA, 0xA88888A8, 0xA8A8A88A, 0x0A888AAA,
1095300016Sadrian	0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1096300016Sadrian	0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00000AAA,
1097300016Sadrian	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1098300016Sadrian	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1099300016Sadrian	0xBBBBBB00, 0x999BBBBB, 0x9BB99B9B, 0xB9B9B9BB,
1100300016Sadrian	0xB9B99BBB, 0xB9B9B9BB, 0xB9BB9B99, 0x00000999,
1101300016Sadrian	0x8A000000, 0xAA88A888, 0xA88888AA, 0xA88A8A88,
1102300016Sadrian	0xA88AA88A, 0x88A8AAAA, 0xA8AA8AAA, 0x0888A88A,
1103300016Sadrian	0x0B0B0B00, 0x090B0B0B, 0x0B090B0B, 0x0909090B,
1104300016Sadrian	0x09090B0B, 0x09090B0B, 0x09090B09, 0x00000909,
1105300016Sadrian	0x0A000000, 0x0A080808, 0x080A080A, 0x080A0A08,
1106300016Sadrian	0x080A080A, 0x0808080A, 0x0A0A0A08, 0x0808080A,
1107300016Sadrian	0xB0B0B000, 0x9090B0B0, 0x90B09090, 0xB0B0B090,
1108300016Sadrian	0xB0B090B0, 0x90B0B0B0, 0xB0B09090, 0x00000090,
1109300016Sadrian	0x80000000, 0xA080A080, 0xA08080A0, 0xA0808080,
1110300016Sadrian	0xA080A080, 0x80A0A0A0, 0xA0A080A0, 0x00A0A0A0,
1111300016Sadrian	0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
1112300016Sadrian	0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
1113300016Sadrian	0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
1114300016Sadrian	0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
1115300016Sadrian	0x33000000, 0x3333F333, 0x33333333, 0x333333F3,
1116300016Sadrian	0xF3333330, 0x33333333, 0x33F33333, 0x00000333,
1117300016Sadrian	0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
1118300016Sadrian	0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
1119300016Sadrian	0x99000000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1120300016Sadrian	0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1121300016Sadrian	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1122300016Sadrian	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1123300016Sadrian	0x88888000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1124300016Sadrian	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1125300016Sadrian	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1126300016Sadrian	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
1127300016Sadrian	0x88A88A00, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1128300016Sadrian	0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1129300016Sadrian	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1130300016Sadrian	0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
1131300016Sadrian	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1132300016Sadrian	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1133300016Sadrian	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1134300016Sadrian	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1135300016Sadrian	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1136300016Sadrian	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1137300016Sadrian	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1138300016Sadrian	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1139300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1140300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1141300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1142300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1143300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1144300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1145300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1146300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1147300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1148300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1149300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1150300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1151300016Sadrian};
1152300016Sadrian
1153300016Sadrian/* static tables, PHY revision >= 3 */
1154300016Sadrianstatic const uint32_t bwn_ntab_framestruct_r3[] = {
1155300016Sadrian	0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
1156300016Sadrian	0x09804506, 0x00100030, 0x09804507, 0x00100030,
1157300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1158300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1159300016Sadrian	0x08004a0c, 0x00100004, 0x01000a0d, 0x00100024,
1160300016Sadrian	0x0980450e, 0x00100034, 0x0980450f, 0x00100034,
1161300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1162300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1163300016Sadrian	0x00000a04, 0x00100000, 0x11008a05, 0x00100020,
1164300016Sadrian	0x1980c506, 0x00100030, 0x21810506, 0x00100030,
1165300016Sadrian	0x21810506, 0x00100030, 0x01800504, 0x00100030,
1166300016Sadrian	0x11808505, 0x00100030, 0x29814507, 0x01100030,
1167300016Sadrian	0x00000a04, 0x00100000, 0x11008a05, 0x00100020,
1168300016Sadrian	0x21810506, 0x00100030, 0x21810506, 0x00100030,
1169300016Sadrian	0x29814507, 0x01100030, 0x00000000, 0x00000000,
1170300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1171300016Sadrian	0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
1172300016Sadrian	0x1980c50e, 0x00100038, 0x2181050e, 0x00100038,
1173300016Sadrian	0x2181050e, 0x00100038, 0x0180050c, 0x00100038,
1174300016Sadrian	0x1180850d, 0x00100038, 0x2981450f, 0x01100038,
1175300016Sadrian	0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
1176300016Sadrian	0x2181050e, 0x00100038, 0x2181050e, 0x00100038,
1177300016Sadrian	0x2981450f, 0x01100038, 0x00000000, 0x00000000,
1178300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1179300016Sadrian	0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
1180300016Sadrian	0x1980c506, 0x00100030, 0x1980c506, 0x00100030,
1181300016Sadrian	0x11808504, 0x00100030, 0x3981ca05, 0x00100030,
1182300016Sadrian	0x29814507, 0x01100030, 0x00000000, 0x00000000,
1183300016Sadrian	0x10008a04, 0x00100000, 0x3981ca05, 0x00100030,
1184300016Sadrian	0x1980c506, 0x00100030, 0x29814507, 0x01100030,
1185300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1186300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1187300016Sadrian	0x08004a0c, 0x00100008, 0x01000a0d, 0x00100028,
1188300016Sadrian	0x1980c50e, 0x00100038, 0x1980c50e, 0x00100038,
1189300016Sadrian	0x1180850c, 0x00100038, 0x3981ca0d, 0x00100038,
1190300016Sadrian	0x2981450f, 0x01100038, 0x00000000, 0x00000000,
1191300016Sadrian	0x10008a0c, 0x00100008, 0x3981ca0d, 0x00100038,
1192300016Sadrian	0x1980c50e, 0x00100038, 0x2981450f, 0x01100038,
1193300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1194300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1195300016Sadrian	0x40021404, 0x00100000, 0x02001405, 0x00100040,
1196300016Sadrian	0x0b004a06, 0x01900060, 0x13008a06, 0x01900060,
1197300016Sadrian	0x13008a06, 0x01900060, 0x43020a04, 0x00100060,
1198300016Sadrian	0x1b00ca05, 0x00100060, 0x23010a07, 0x01500060,
1199300016Sadrian	0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
1200300016Sadrian	0x13008a06, 0x01900060, 0x13008a06, 0x01900060,
1201300016Sadrian	0x23010a07, 0x01500060, 0x00000000, 0x00000000,
1202300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1203300016Sadrian	0x4002140c, 0x00100010, 0x0200140d, 0x00100050,
1204300016Sadrian	0x0b004a0e, 0x01900070, 0x13008a0e, 0x01900070,
1205300016Sadrian	0x13008a0e, 0x01900070, 0x43020a0c, 0x00100070,
1206300016Sadrian	0x1b00ca0d, 0x00100070, 0x23010a0f, 0x01500070,
1207300016Sadrian	0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1208300016Sadrian	0x13008a0e, 0x01900070, 0x13008a0e, 0x01900070,
1209300016Sadrian	0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
1210300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1211300016Sadrian	0x50029404, 0x00100000, 0x32019405, 0x00100040,
1212300016Sadrian	0x0b004a06, 0x01900060, 0x0b004a06, 0x01900060,
1213300016Sadrian	0x5b02ca04, 0x00100060, 0x3b01d405, 0x00100060,
1214300016Sadrian	0x23010a07, 0x01500060, 0x00000000, 0x00000000,
1215300016Sadrian	0x5802d404, 0x00100000, 0x3b01d405, 0x00100060,
1216300016Sadrian	0x0b004a06, 0x01900060, 0x23010a07, 0x01500060,
1217300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1218300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1219300016Sadrian	0x5002940c, 0x00100010, 0x3201940d, 0x00100050,
1220300016Sadrian	0x0b004a0e, 0x01900070, 0x0b004a0e, 0x01900070,
1221300016Sadrian	0x5b02ca0c, 0x00100070, 0x3b01d40d, 0x00100070,
1222300016Sadrian	0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
1223300016Sadrian	0x5802d40c, 0x00100010, 0x3b01d40d, 0x00100070,
1224300016Sadrian	0x0b004a0e, 0x01900070, 0x23010a0f, 0x01500070,
1225300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1226300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1227300016Sadrian	0x40021404, 0x000f4800, 0x62031405, 0x00100040,
1228300016Sadrian	0x53028a06, 0x01900060, 0x53028a07, 0x01900060,
1229300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1230300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1231300016Sadrian	0x4002140c, 0x000f4808, 0x6203140d, 0x00100048,
1232300016Sadrian	0x53028a0e, 0x01900068, 0x53028a0f, 0x01900068,
1233300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1234300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1235300016Sadrian	0x00000a0c, 0x00100004, 0x11008a0d, 0x00100024,
1236300016Sadrian	0x1980c50e, 0x00100034, 0x2181050e, 0x00100034,
1237300016Sadrian	0x2181050e, 0x00100034, 0x0180050c, 0x00100038,
1238300016Sadrian	0x1180850d, 0x00100038, 0x1181850d, 0x00100038,
1239300016Sadrian	0x2981450f, 0x01100038, 0x00000000, 0x00000000,
1240300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1241300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1242300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1243300016Sadrian	0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
1244300016Sadrian	0x2181050e, 0x00100038, 0x2181050e, 0x00100038,
1245300016Sadrian	0x1181850d, 0x00100038, 0x2981450f, 0x01100038,
1246300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1247300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1248300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1249300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1250300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1251300016Sadrian	0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
1252300016Sadrian	0x0180c506, 0x00100030, 0x0180c506, 0x00100030,
1253300016Sadrian	0x2180c50c, 0x00100030, 0x49820a0d, 0x0016a130,
1254300016Sadrian	0x41824a0d, 0x0016a130, 0x2981450f, 0x01100030,
1255300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1256300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1257300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1258300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1259300016Sadrian	0x2000ca0c, 0x00100000, 0x49820a0d, 0x0016a130,
1260300016Sadrian	0x1980c50e, 0x00100030, 0x41824a0d, 0x0016a130,
1261300016Sadrian	0x2981450f, 0x01100030, 0x00000000, 0x00000000,
1262300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1263300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1264300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1265300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1266300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1267300016Sadrian	0x4002140c, 0x00100008, 0x0200140d, 0x00100048,
1268300016Sadrian	0x0b004a0e, 0x01900068, 0x13008a0e, 0x01900068,
1269300016Sadrian	0x13008a0e, 0x01900068, 0x43020a0c, 0x00100070,
1270300016Sadrian	0x1b00ca0d, 0x00100070, 0x1b014a0d, 0x00100070,
1271300016Sadrian	0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
1272300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1273300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1274300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1275300016Sadrian	0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1276300016Sadrian	0x13008a0e, 0x01900070, 0x13008a0e, 0x01900070,
1277300016Sadrian	0x1b014a0d, 0x00100070, 0x23010a0f, 0x01500070,
1278300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1279300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1280300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1281300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1282300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1283300016Sadrian	0x50029404, 0x00100000, 0x32019405, 0x00100040,
1284300016Sadrian	0x03004a06, 0x01900060, 0x03004a06, 0x01900060,
1285300016Sadrian	0x6b030a0c, 0x00100060, 0x4b02140d, 0x0016a160,
1286300016Sadrian	0x4302540d, 0x0016a160, 0x23010a0f, 0x01500060,
1287300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1288300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1289300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1290300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1291300016Sadrian	0x6b03140c, 0x00100060, 0x4b02140d, 0x0016a160,
1292300016Sadrian	0x0b004a0e, 0x01900060, 0x4302540d, 0x0016a160,
1293300016Sadrian	0x23010a0f, 0x01500060, 0x00000000, 0x00000000,
1294300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1295300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1296300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1297300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1298300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1299300016Sadrian	0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
1300300016Sadrian	0x53028a06, 0x01900060, 0x5b02ca06, 0x01900060,
1301300016Sadrian	0x5b02ca06, 0x01900060, 0x43020a04, 0x00100060,
1302300016Sadrian	0x1b00ca05, 0x00100060, 0x53028a07, 0x0190c060,
1303300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1304300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1305300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1306300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1307300016Sadrian	0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1308300016Sadrian	0x53028a0e, 0x01900070, 0x5b02ca0e, 0x01900070,
1309300016Sadrian	0x5b02ca0e, 0x01900070, 0x43020a0c, 0x00100070,
1310300016Sadrian	0x1b00ca0d, 0x00100070, 0x53028a0f, 0x0190c070,
1311300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1312300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1313300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1314300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1315300016Sadrian	0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
1316300016Sadrian	0x5b02ca06, 0x01900060, 0x5b02ca06, 0x01900060,
1317300016Sadrian	0x53028a07, 0x0190c060, 0x00000000, 0x00000000,
1318300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1319300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1320300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1321300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1322300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1323300016Sadrian	0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1324300016Sadrian	0x5b02ca0e, 0x01900070, 0x5b02ca0e, 0x01900070,
1325300016Sadrian	0x53028a0f, 0x0190c070, 0x00000000, 0x00000000,
1326300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1327300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1328300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1329300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1330300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1331300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1332300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1333300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1334300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1335300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1336300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1337300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1338300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1339300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1340300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1341300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1342300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1343300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1344300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1345300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1346300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1347300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1348300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1349300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1350300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1351300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1352300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1353300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1354300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1355300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1356300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1357300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1358300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1359300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1360300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1361300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1362300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1363300016Sadrian};
1364300016Sadrian
1365300016Sadrianstatic const uint16_t bwn_ntab_pilot_r3[] = {
1366300016Sadrian	0xff08, 0xff08, 0xff08, 0xff08, 0xff08, 0xff08,
1367300016Sadrian	0xff08, 0xff08, 0x80d5, 0x80d5, 0x80d5, 0x80d5,
1368300016Sadrian	0x80d5, 0x80d5, 0x80d5, 0x80d5, 0xff0a, 0xff82,
1369300016Sadrian	0xffa0, 0xff28, 0xffff, 0xffff, 0xffff, 0xffff,
1370300016Sadrian	0xff82, 0xffa0, 0xff28, 0xff0a, 0xffff, 0xffff,
1371300016Sadrian	0xffff, 0xffff, 0xf83f, 0xfa1f, 0xfa97, 0xfab5,
1372300016Sadrian	0xf2bd, 0xf0bf, 0xffff, 0xffff, 0xf017, 0xf815,
1373300016Sadrian	0xf215, 0xf095, 0xf035, 0xf01d, 0xffff, 0xffff,
1374300016Sadrian	0xff08, 0xff02, 0xff80, 0xff20, 0xff08, 0xff02,
1375300016Sadrian	0xff80, 0xff20, 0xf01f, 0xf817, 0xfa15, 0xf295,
1376300016Sadrian	0xf0b5, 0xf03d, 0xffff, 0xffff, 0xf82a, 0xfa0a,
1377300016Sadrian	0xfa82, 0xfaa0, 0xf2a8, 0xf0aa, 0xffff, 0xffff,
1378300016Sadrian	0xf002, 0xf800, 0xf200, 0xf080, 0xf020, 0xf008,
1379300016Sadrian	0xffff, 0xffff, 0xf00a, 0xf802, 0xfa00, 0xf280,
1380300016Sadrian	0xf0a0, 0xf028, 0xffff, 0xffff,
1381300016Sadrian};
1382300016Sadrian
1383300016Sadrianstatic const uint32_t bwn_ntab_tmap_r3[] = {
1384300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1385300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1386300016Sadrian	0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
1387300016Sadrian	0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
1388300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x000aa888,
1389300016Sadrian	0x88880000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1390300016Sadrian	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1391300016Sadrian	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1392300016Sadrian	0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
1393300016Sadrian	0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
1394300016Sadrian	0xf1111110, 0x11111111, 0x11f11111, 0x00011111,
1395300016Sadrian	0x11110000, 0x1111f111, 0x11111111, 0x111111f1,
1396300016Sadrian	0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00088aaa,
1397300016Sadrian	0xaaaa0000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
1398300016Sadrian	0xaaa8aaa0, 0x8aaa8aaa, 0xaa8a8a8a, 0x000aaa88,
1399300016Sadrian	0x8aaa0000, 0xaaa8a888, 0x8aa88a8a, 0x8a88a888,
1400300016Sadrian	0x08080a00, 0x0a08080a, 0x080a0a08, 0x00080808,
1401300016Sadrian	0x080a0000, 0x080a0808, 0x080a0808, 0x0a0a0a08,
1402300016Sadrian	0xa0a0a0a0, 0x80a0a080, 0x8080a0a0, 0x00008080,
1403300016Sadrian	0x80a00000, 0x80a080a0, 0xa080a0a0, 0x8080a0a0,
1404300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1405300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1406300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1407300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1408300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1409300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1410300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1411300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1412300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1413300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1414300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1415300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1416300016Sadrian	0x99999000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
1417300016Sadrian	0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
1418300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1419300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
1420300016Sadrian	0x22000000, 0x2222b222, 0x22222222, 0x222222b2,
1421300016Sadrian	0xb2222220, 0x22222222, 0x22d22222, 0x00000222,
1422300016Sadrian	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1423300016Sadrian	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1424300016Sadrian	0x33000000, 0x3333b333, 0x33333333, 0x333333b3,
1425300016Sadrian	0xb3333330, 0x33333333, 0x33d33333, 0x00000333,
1426300016Sadrian	0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
1427300016Sadrian	0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
1428300016Sadrian	0x99b99b00, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
1429300016Sadrian	0x9b99bb99, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
1430300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1431300016Sadrian	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
1432300016Sadrian	0x22222200, 0x2222f222, 0x22222222, 0x222222f2,
1433300016Sadrian	0x22222222, 0x22222222, 0x22f22222, 0x00000222,
1434300016Sadrian	0x11000000, 0x1111f111, 0x11111111, 0x11111111,
1435300016Sadrian	0xf1111111, 0x11111111, 0x11f11111, 0x01111111,
1436300016Sadrian	0xbb9bb900, 0xb9b9bb99, 0xb99bbbbb, 0xbbbb9b9b,
1437300016Sadrian	0xb9bb99bb, 0xb99999b9, 0xb9b9b99b, 0x00000bbb,
1438300016Sadrian	0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
1439300016Sadrian	0xa8aa88aa, 0xa88888a8, 0xa8a8a88a, 0x0a888aaa,
1440300016Sadrian	0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
1441300016Sadrian	0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00000aaa,
1442300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1443300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1444300016Sadrian	0xbbbbbb00, 0x999bbbbb, 0x9bb99b9b, 0xb9b9b9bb,
1445300016Sadrian	0xb9b99bbb, 0xb9b9b9bb, 0xb9bb9b99, 0x00000999,
1446300016Sadrian	0x8a000000, 0xaa88a888, 0xa88888aa, 0xa88a8a88,
1447300016Sadrian	0xa88aa88a, 0x88a8aaaa, 0xa8aa8aaa, 0x0888a88a,
1448300016Sadrian	0x0b0b0b00, 0x090b0b0b, 0x0b090b0b, 0x0909090b,
1449300016Sadrian	0x09090b0b, 0x09090b0b, 0x09090b09, 0x00000909,
1450300016Sadrian	0x0a000000, 0x0a080808, 0x080a080a, 0x080a0a08,
1451300016Sadrian	0x080a080a, 0x0808080a, 0x0a0a0a08, 0x0808080a,
1452300016Sadrian	0xb0b0b000, 0x9090b0b0, 0x90b09090, 0xb0b0b090,
1453300016Sadrian	0xb0b090b0, 0x90b0b0b0, 0xb0b09090, 0x00000090,
1454300016Sadrian	0x80000000, 0xa080a080, 0xa08080a0, 0xa0808080,
1455300016Sadrian	0xa080a080, 0x80a0a0a0, 0xa0a080a0, 0x00a0a0a0,
1456300016Sadrian	0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
1457300016Sadrian	0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
1458300016Sadrian	0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
1459300016Sadrian	0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
1460300016Sadrian	0x33000000, 0x3333f333, 0x33333333, 0x333333f3,
1461300016Sadrian	0xf3333330, 0x33333333, 0x33f33333, 0x00000333,
1462300016Sadrian	0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
1463300016Sadrian	0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
1464300016Sadrian	0x99000000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
1465300016Sadrian	0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
1466300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1467300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1468300016Sadrian	0x88888000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1469300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1470300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1471300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
1472300016Sadrian	0x88a88a00, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1473300016Sadrian	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1474300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1475300016Sadrian	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
1476300016Sadrian	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1477300016Sadrian	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1478300016Sadrian	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1479300016Sadrian	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1480300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1481300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1482300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1483300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1484300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1485300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1486300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1487300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1488300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1489300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1490300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1491300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1492300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1493300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1494300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1495300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1496300016Sadrian};
1497300016Sadrian
1498300016Sadrianstatic const uint32_t bwn_ntab_intlevel_r3[] = {
1499300016Sadrian	0x00802070, 0x0671188d, 0x0a60192c, 0x0a300e46,
1500300016Sadrian	0x00c1188d, 0x080024d2, 0x00000070,
1501300016Sadrian};
1502300016Sadrian
1503300016Sadrianstatic const uint32_t bwn_ntab_tdtrn_r3[] = {
1504300016Sadrian	0x061c061c, 0x0050ee68, 0xf592fe36, 0xfe5212f6,
1505300016Sadrian	0x00000c38, 0xfe5212f6, 0xf592fe36, 0x0050ee68,
1506300016Sadrian	0x061c061c, 0xee680050, 0xfe36f592, 0x12f6fe52,
1507300016Sadrian	0x0c380000, 0x12f6fe52, 0xfe36f592, 0xee680050,
1508300016Sadrian	0x061c061c, 0x0050ee68, 0xf592fe36, 0xfe5212f6,
1509300016Sadrian	0x00000c38, 0xfe5212f6, 0xf592fe36, 0x0050ee68,
1510300016Sadrian	0x061c061c, 0xee680050, 0xfe36f592, 0x12f6fe52,
1511300016Sadrian	0x0c380000, 0x12f6fe52, 0xfe36f592, 0xee680050,
1512300016Sadrian	0x05e305e3, 0x004def0c, 0xf5f3fe47, 0xfe611246,
1513300016Sadrian	0x00000bc7, 0xfe611246, 0xf5f3fe47, 0x004def0c,
1514300016Sadrian	0x05e305e3, 0xef0c004d, 0xfe47f5f3, 0x1246fe61,
1515300016Sadrian	0x0bc70000, 0x1246fe61, 0xfe47f5f3, 0xef0c004d,
1516300016Sadrian	0x05e305e3, 0x004def0c, 0xf5f3fe47, 0xfe611246,
1517300016Sadrian	0x00000bc7, 0xfe611246, 0xf5f3fe47, 0x004def0c,
1518300016Sadrian	0x05e305e3, 0xef0c004d, 0xfe47f5f3, 0x1246fe61,
1519300016Sadrian	0x0bc70000, 0x1246fe61, 0xfe47f5f3, 0xef0c004d,
1520300016Sadrian	0xfa58fa58, 0xf895043b, 0xff4c09c0, 0xfbc6ffa8,
1521300016Sadrian	0xfb84f384, 0x0798f6f9, 0x05760122, 0x058409f6,
1522300016Sadrian	0x0b500000, 0x05b7f542, 0x08860432, 0x06ddfee7,
1523300016Sadrian	0xfb84f384, 0xf9d90664, 0xf7e8025c, 0x00fff7bd,
1524300016Sadrian	0x05a805a8, 0xf7bd00ff, 0x025cf7e8, 0x0664f9d9,
1525300016Sadrian	0xf384fb84, 0xfee706dd, 0x04320886, 0xf54205b7,
1526300016Sadrian	0x00000b50, 0x09f60584, 0x01220576, 0xf6f90798,
1527300016Sadrian	0xf384fb84, 0xffa8fbc6, 0x09c0ff4c, 0x043bf895,
1528300016Sadrian	0x02d402d4, 0x07de0270, 0xfc96079c, 0xf90afe94,
1529300016Sadrian	0xfe00ff2c, 0x02d4065d, 0x092a0096, 0x0014fbb8,
1530300016Sadrian	0xfd2cfd2c, 0x076afb3c, 0x0096f752, 0xf991fd87,
1531300016Sadrian	0xfb2c0200, 0xfeb8f960, 0x08e0fc96, 0x049802a8,
1532300016Sadrian	0xfd2cfd2c, 0x02a80498, 0xfc9608e0, 0xf960feb8,
1533300016Sadrian	0x0200fb2c, 0xfd87f991, 0xf7520096, 0xfb3c076a,
1534300016Sadrian	0xfd2cfd2c, 0xfbb80014, 0x0096092a, 0x065d02d4,
1535300016Sadrian	0xff2cfe00, 0xfe94f90a, 0x079cfc96, 0x027007de,
1536300016Sadrian	0x02d402d4, 0x027007de, 0x079cfc96, 0xfe94f90a,
1537300016Sadrian	0xff2cfe00, 0x065d02d4, 0x0096092a, 0xfbb80014,
1538300016Sadrian	0xfd2cfd2c, 0xfb3c076a, 0xf7520096, 0xfd87f991,
1539300016Sadrian	0x0200fb2c, 0xf960feb8, 0xfc9608e0, 0x02a80498,
1540300016Sadrian	0xfd2cfd2c, 0x049802a8, 0x08e0fc96, 0xfeb8f960,
1541300016Sadrian	0xfb2c0200, 0xf991fd87, 0x0096f752, 0x076afb3c,
1542300016Sadrian	0xfd2cfd2c, 0x0014fbb8, 0x092a0096, 0x02d4065d,
1543300016Sadrian	0xfe00ff2c, 0xf90afe94, 0xfc96079c, 0x07de0270,
1544300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1545300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1546300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1547300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1548300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1549300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1550300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1551300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1552300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1553300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1554300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1555300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1556300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1557300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1558300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1559300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1560300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1561300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1562300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1563300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1564300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1565300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1566300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1567300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1568300016Sadrian	0x062a0000, 0xfefa0759, 0x08b80908, 0xf396fc2d,
1569300016Sadrian	0xf9d6045c, 0xfc4ef608, 0xf748f596, 0x07b207bf,
1570300016Sadrian	0x062a062a, 0xf84ef841, 0xf748f596, 0x03b209f8,
1571300016Sadrian	0xf9d6045c, 0x0c6a03d3, 0x08b80908, 0x0106f8a7,
1572300016Sadrian	0x062a0000, 0xfefaf8a7, 0x08b8f6f8, 0xf39603d3,
1573300016Sadrian	0xf9d6fba4, 0xfc4e09f8, 0xf7480a6a, 0x07b2f841,
1574300016Sadrian	0x062af9d6, 0xf84e07bf, 0xf7480a6a, 0x03b2f608,
1575300016Sadrian	0xf9d6fba4, 0x0c6afc2d, 0x08b8f6f8, 0x01060759,
1576300016Sadrian	0x062a0000, 0xfefa0759, 0x08b80908, 0xf396fc2d,
1577300016Sadrian	0xf9d6045c, 0xfc4ef608, 0xf748f596, 0x07b207bf,
1578300016Sadrian	0x062a062a, 0xf84ef841, 0xf748f596, 0x03b209f8,
1579300016Sadrian	0xf9d6045c, 0x0c6a03d3, 0x08b80908, 0x0106f8a7,
1580300016Sadrian	0x062a0000, 0xfefaf8a7, 0x08b8f6f8, 0xf39603d3,
1581300016Sadrian	0xf9d6fba4, 0xfc4e09f8, 0xf7480a6a, 0x07b2f841,
1582300016Sadrian	0x062af9d6, 0xf84e07bf, 0xf7480a6a, 0x03b2f608,
1583300016Sadrian	0xf9d6fba4, 0x0c6afc2d, 0x08b8f6f8, 0x01060759,
1584300016Sadrian	0x061c061c, 0xff30009d, 0xffb21141, 0xfd87fb54,
1585300016Sadrian	0xf65dfe59, 0x02eef99e, 0x0166f03c, 0xfff809b6,
1586300016Sadrian	0x000008a4, 0x000af42b, 0x00eff577, 0xfa840bf2,
1587300016Sadrian	0xfc02ff51, 0x08260f67, 0xfff0036f, 0x0842f9c3,
1588300016Sadrian	0x00000000, 0x063df7be, 0xfc910010, 0xf099f7da,
1589300016Sadrian	0x00af03fe, 0xf40e057c, 0x0a89ff11, 0x0bd5fff6,
1590300016Sadrian	0xf75c0000, 0xf64a0008, 0x0fc4fe9a, 0x0662fd12,
1591300016Sadrian	0x01a709a3, 0x04ac0279, 0xeebf004e, 0xff6300d0,
1592300016Sadrian	0xf9e4f9e4, 0x00d0ff63, 0x004eeebf, 0x027904ac,
1593300016Sadrian	0x09a301a7, 0xfd120662, 0xfe9a0fc4, 0x0008f64a,
1594300016Sadrian	0x0000f75c, 0xfff60bd5, 0xff110a89, 0x057cf40e,
1595300016Sadrian	0x03fe00af, 0xf7daf099, 0x0010fc91, 0xf7be063d,
1596300016Sadrian	0x00000000, 0xf9c30842, 0x036ffff0, 0x0f670826,
1597300016Sadrian	0xff51fc02, 0x0bf2fa84, 0xf57700ef, 0xf42b000a,
1598300016Sadrian	0x08a40000, 0x09b6fff8, 0xf03c0166, 0xf99e02ee,
1599300016Sadrian	0xfe59f65d, 0xfb54fd87, 0x1141ffb2, 0x009dff30,
1600300016Sadrian	0x05e30000, 0xff060705, 0x085408a0, 0xf425fc59,
1601300016Sadrian	0xfa1d042a, 0xfc78f67a, 0xf7acf60e, 0x075a0766,
1602300016Sadrian	0x05e305e3, 0xf8a6f89a, 0xf7acf60e, 0x03880986,
1603300016Sadrian	0xfa1d042a, 0x0bdb03a7, 0x085408a0, 0x00faf8fb,
1604300016Sadrian	0x05e30000, 0xff06f8fb, 0x0854f760, 0xf42503a7,
1605300016Sadrian	0xfa1dfbd6, 0xfc780986, 0xf7ac09f2, 0x075af89a,
1606300016Sadrian	0x05e3fa1d, 0xf8a60766, 0xf7ac09f2, 0x0388f67a,
1607300016Sadrian	0xfa1dfbd6, 0x0bdbfc59, 0x0854f760, 0x00fa0705,
1608300016Sadrian	0x05e30000, 0xff060705, 0x085408a0, 0xf425fc59,
1609300016Sadrian	0xfa1d042a, 0xfc78f67a, 0xf7acf60e, 0x075a0766,
1610300016Sadrian	0x05e305e3, 0xf8a6f89a, 0xf7acf60e, 0x03880986,
1611300016Sadrian	0xfa1d042a, 0x0bdb03a7, 0x085408a0, 0x00faf8fb,
1612300016Sadrian	0x05e30000, 0xff06f8fb, 0x0854f760, 0xf42503a7,
1613300016Sadrian	0xfa1dfbd6, 0xfc780986, 0xf7ac09f2, 0x075af89a,
1614300016Sadrian	0x05e3fa1d, 0xf8a60766, 0xf7ac09f2, 0x0388f67a,
1615300016Sadrian	0xfa1dfbd6, 0x0bdbfc59, 0x0854f760, 0x00fa0705,
1616300016Sadrian	0xfa58fa58, 0xf8f0fe00, 0x0448073d, 0xfdc9fe46,
1617300016Sadrian	0xf9910258, 0x089d0407, 0xfd5cf71a, 0x02affde0,
1618300016Sadrian	0x083e0496, 0xff5a0740, 0xff7afd97, 0x00fe01f1,
1619300016Sadrian	0x0009082e, 0xfa94ff75, 0xfecdf8ea, 0xffb0f693,
1620300016Sadrian	0xfd2cfa58, 0x0433ff16, 0xfba405dd, 0xfa610341,
1621300016Sadrian	0x06a606cb, 0x0039fd2d, 0x0677fa97, 0x01fa05e0,
1622300016Sadrian	0xf896003e, 0x075a068b, 0x012cfc3e, 0xfa23f98d,
1623300016Sadrian	0xfc7cfd43, 0xff90fc0d, 0x01c10982, 0x00c601d6,
1624300016Sadrian	0xfd2cfd2c, 0x01d600c6, 0x098201c1, 0xfc0dff90,
1625300016Sadrian	0xfd43fc7c, 0xf98dfa23, 0xfc3e012c, 0x068b075a,
1626300016Sadrian	0x003ef896, 0x05e001fa, 0xfa970677, 0xfd2d0039,
1627300016Sadrian	0x06cb06a6, 0x0341fa61, 0x05ddfba4, 0xff160433,
1628300016Sadrian	0xfa58fd2c, 0xf693ffb0, 0xf8eafecd, 0xff75fa94,
1629300016Sadrian	0x082e0009, 0x01f100fe, 0xfd97ff7a, 0x0740ff5a,
1630300016Sadrian	0x0496083e, 0xfde002af, 0xf71afd5c, 0x0407089d,
1631300016Sadrian	0x0258f991, 0xfe46fdc9, 0x073d0448, 0xfe00f8f0,
1632300016Sadrian	0xfd2cfd2c, 0xfce00500, 0xfc09fddc, 0xfe680157,
1633300016Sadrian	0x04c70571, 0xfc3aff21, 0xfcd70228, 0x056d0277,
1634300016Sadrian	0x0200fe00, 0x0022f927, 0xfe3c032b, 0xfc44ff3c,
1635300016Sadrian	0x03e9fbdb, 0x04570313, 0x04c9ff5c, 0x000d03b8,
1636300016Sadrian	0xfa580000, 0xfbe900d2, 0xf9d0fe0b, 0x0125fdf9,
1637300016Sadrian	0x042501bf, 0x0328fa2b, 0xffa902f0, 0xfa250157,
1638300016Sadrian	0x0200fe00, 0x03740438, 0xff0405fd, 0x030cfe52,
1639300016Sadrian	0x0037fb39, 0xff6904c5, 0x04f8fd23, 0xfd31fc1b,
1640300016Sadrian	0xfd2cfd2c, 0xfc1bfd31, 0xfd2304f8, 0x04c5ff69,
1641300016Sadrian	0xfb390037, 0xfe52030c, 0x05fdff04, 0x04380374,
1642300016Sadrian	0xfe000200, 0x0157fa25, 0x02f0ffa9, 0xfa2b0328,
1643300016Sadrian	0x01bf0425, 0xfdf90125, 0xfe0bf9d0, 0x00d2fbe9,
1644300016Sadrian	0x0000fa58, 0x03b8000d, 0xff5c04c9, 0x03130457,
1645300016Sadrian	0xfbdb03e9, 0xff3cfc44, 0x032bfe3c, 0xf9270022,
1646300016Sadrian	0xfe000200, 0x0277056d, 0x0228fcd7, 0xff21fc3a,
1647300016Sadrian	0x057104c7, 0x0157fe68, 0xfddcfc09, 0x0500fce0,
1648300016Sadrian	0xfd2cfd2c, 0x0500fce0, 0xfddcfc09, 0x0157fe68,
1649300016Sadrian	0x057104c7, 0xff21fc3a, 0x0228fcd7, 0x0277056d,
1650300016Sadrian	0xfe000200, 0xf9270022, 0x032bfe3c, 0xff3cfc44,
1651300016Sadrian	0xfbdb03e9, 0x03130457, 0xff5c04c9, 0x03b8000d,
1652300016Sadrian	0x0000fa58, 0x00d2fbe9, 0xfe0bf9d0, 0xfdf90125,
1653300016Sadrian	0x01bf0425, 0xfa2b0328, 0x02f0ffa9, 0x0157fa25,
1654300016Sadrian	0xfe000200, 0x04380374, 0x05fdff04, 0xfe52030c,
1655300016Sadrian	0xfb390037, 0x04c5ff69, 0xfd2304f8, 0xfc1bfd31,
1656300016Sadrian	0xfd2cfd2c, 0xfd31fc1b, 0x04f8fd23, 0xff6904c5,
1657300016Sadrian	0x0037fb39, 0x030cfe52, 0xff0405fd, 0x03740438,
1658300016Sadrian	0x0200fe00, 0xfa250157, 0xffa902f0, 0x0328fa2b,
1659300016Sadrian	0x042501bf, 0x0125fdf9, 0xf9d0fe0b, 0xfbe900d2,
1660300016Sadrian	0xfa580000, 0x000d03b8, 0x04c9ff5c, 0x04570313,
1661300016Sadrian	0x03e9fbdb, 0xfc44ff3c, 0xfe3c032b, 0x0022f927,
1662300016Sadrian	0x0200fe00, 0x056d0277, 0xfcd70228, 0xfc3aff21,
1663300016Sadrian	0x04c70571, 0xfe680157, 0xfc09fddc, 0xfce00500,
1664300016Sadrian	0x05a80000, 0xff1006be, 0x0800084a, 0xf49cfc7e,
1665300016Sadrian	0xfa580400, 0xfc9cf6da, 0xf800f672, 0x0710071c,
1666300016Sadrian	0x05a805a8, 0xf8f0f8e4, 0xf800f672, 0x03640926,
1667300016Sadrian	0xfa580400, 0x0b640382, 0x0800084a, 0x00f0f942,
1668300016Sadrian	0x05a80000, 0xff10f942, 0x0800f7b6, 0xf49c0382,
1669300016Sadrian	0xfa58fc00, 0xfc9c0926, 0xf800098e, 0x0710f8e4,
1670300016Sadrian	0x05a8fa58, 0xf8f0071c, 0xf800098e, 0x0364f6da,
1671300016Sadrian	0xfa58fc00, 0x0b64fc7e, 0x0800f7b6, 0x00f006be,
1672300016Sadrian	0x05a80000, 0xff1006be, 0x0800084a, 0xf49cfc7e,
1673300016Sadrian	0xfa580400, 0xfc9cf6da, 0xf800f672, 0x0710071c,
1674300016Sadrian	0x05a805a8, 0xf8f0f8e4, 0xf800f672, 0x03640926,
1675300016Sadrian	0xfa580400, 0x0b640382, 0x0800084a, 0x00f0f942,
1676300016Sadrian	0x05a80000, 0xff10f942, 0x0800f7b6, 0xf49c0382,
1677300016Sadrian	0xfa58fc00, 0xfc9c0926, 0xf800098e, 0x0710f8e4,
1678300016Sadrian	0x05a8fa58, 0xf8f0071c, 0xf800098e, 0x0364f6da,
1679300016Sadrian	0xfa58fc00, 0x0b64fc7e, 0x0800f7b6, 0x00f006be,
1680300016Sadrian};
1681300016Sadrian
1682300016Sadrianstatic const uint32_t bwn_ntab_noisevar_r3[] = {
1683300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1684300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1685300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1686300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1687300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1688300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1689300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1690300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1691300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1692300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1693300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1694300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1695300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1696300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1697300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1698300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1699300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1700300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1701300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1702300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1703300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1704300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1705300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1706300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1707300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1708300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1709300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1710300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1711300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1712300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1713300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1714300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1715300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1716300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1717300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1718300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1719300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1720300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1721300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1722300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1723300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1724300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1725300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1726300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1727300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1728300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1729300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1730300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1731300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1732300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1733300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1734300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1735300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1736300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1737300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1738300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1739300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1740300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1741300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1742300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1743300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1744300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1745300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1746300016Sadrian	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1747300016Sadrian};
1748300016Sadrian
1749300016Sadrianstatic const uint16_t bwn_ntab_mcs_r3[] = {
1750300016Sadrian	0x0000, 0x0008, 0x000a, 0x0010, 0x0012, 0x0019,
1751300016Sadrian	0x001a, 0x001c, 0x0080, 0x0088, 0x008a, 0x0090,
1752300016Sadrian	0x0092, 0x0099, 0x009a, 0x009c, 0x0100, 0x0108,
1753300016Sadrian	0x010a, 0x0110, 0x0112, 0x0119, 0x011a, 0x011c,
1754300016Sadrian	0x0180, 0x0188, 0x018a, 0x0190, 0x0192, 0x0199,
1755300016Sadrian	0x019a, 0x019c, 0x0000, 0x0098, 0x00a0, 0x00a8,
1756300016Sadrian	0x009a, 0x00a2, 0x00aa, 0x0120, 0x0128, 0x0128,
1757300016Sadrian	0x0130, 0x0138, 0x0138, 0x0140, 0x0122, 0x012a,
1758300016Sadrian	0x012a, 0x0132, 0x013a, 0x013a, 0x0142, 0x01a8,
1759300016Sadrian	0x01b0, 0x01b8, 0x01b0, 0x01b8, 0x01c0, 0x01c8,
1760300016Sadrian	0x01c0, 0x01c8, 0x01d0, 0x01d0, 0x01d8, 0x01aa,
1761300016Sadrian	0x01b2, 0x01ba, 0x01b2, 0x01ba, 0x01c2, 0x01ca,
1762300016Sadrian	0x01c2, 0x01ca, 0x01d2, 0x01d2, 0x01da, 0x0001,
1763300016Sadrian	0x0002, 0x0004, 0x0009, 0x000c, 0x0011, 0x0014,
1764300016Sadrian	0x0018, 0x0020, 0x0021, 0x0022, 0x0024, 0x0081,
1765300016Sadrian	0x0082, 0x0084, 0x0089, 0x008c, 0x0091, 0x0094,
1766300016Sadrian	0x0098, 0x00a0, 0x00a1, 0x00a2, 0x00a4, 0x0007,
1767300016Sadrian	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1768300016Sadrian	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1769300016Sadrian	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1770300016Sadrian	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1771300016Sadrian	0x0007, 0x0007,
1772300016Sadrian};
1773300016Sadrian
1774300016Sadrianstatic const uint32_t bwn_ntab_tdi20a0_r3[] = {
1775300016Sadrian	0x00091226, 0x000a1429, 0x000b56ad, 0x000c58b0,
1776300016Sadrian	0x000d5ab3, 0x000e9cb6, 0x000f9eba, 0x0000c13d,
1777300016Sadrian	0x00020301, 0x00030504, 0x00040708, 0x0005090b,
1778300016Sadrian	0x00064b8e, 0x00095291, 0x000a5494, 0x000b9718,
1779300016Sadrian	0x000c9927, 0x000d9b2a, 0x000edd2e, 0x000fdf31,
1780300016Sadrian	0x000101b4, 0x000243b7, 0x000345bb, 0x000447be,
1781300016Sadrian	0x00058982, 0x00068c05, 0x00099309, 0x000a950c,
1782300016Sadrian	0x000bd78f, 0x000cd992, 0x000ddb96, 0x000f1d99,
1783300016Sadrian	0x00005fa8, 0x0001422c, 0x0002842f, 0x00038632,
1784300016Sadrian	0x00048835, 0x0005ca38, 0x0006ccbc, 0x0009d3bf,
1785300016Sadrian	0x000b1603, 0x000c1806, 0x000d1a0a, 0x000e1c0d,
1786300016Sadrian	0x000f5e10, 0x00008093, 0x00018297, 0x0002c49a,
1787300016Sadrian	0x0003c680, 0x0004c880, 0x00060b00, 0x00070d00,
1788300016Sadrian	0x00000000, 0x00000000, 0x00000000,
1789300016Sadrian};
1790300016Sadrian
1791300016Sadrianstatic const uint32_t bwn_ntab_tdi20a1_r3[] = {
1792300016Sadrian	0x00014b26, 0x00028d29, 0x000393ad, 0x00049630,
1793300016Sadrian	0x0005d833, 0x0006da36, 0x00099c3a, 0x000a9e3d,
1794300016Sadrian	0x000bc081, 0x000cc284, 0x000dc488, 0x000f068b,
1795300016Sadrian	0x0000488e, 0x00018b91, 0x0002d214, 0x0003d418,
1796300016Sadrian	0x0004d6a7, 0x000618aa, 0x00071aae, 0x0009dcb1,
1797300016Sadrian	0x000b1eb4, 0x000c0137, 0x000d033b, 0x000e053e,
1798300016Sadrian	0x000f4702, 0x00008905, 0x00020c09, 0x0003128c,
1799300016Sadrian	0x0004148f, 0x00051712, 0x00065916, 0x00091b19,
1800300016Sadrian	0x000a1d28, 0x000b5f2c, 0x000c41af, 0x000d43b2,
1801300016Sadrian	0x000e85b5, 0x000f87b8, 0x0000c9bc, 0x00024cbf,
1802300016Sadrian	0x00035303, 0x00045506, 0x0005978a, 0x0006998d,
1803300016Sadrian	0x00095b90, 0x000a5d93, 0x000b9f97, 0x000c821a,
1804300016Sadrian	0x000d8400, 0x000ec600, 0x000fc800, 0x00010a00,
1805300016Sadrian	0x00000000, 0x00000000, 0x00000000,
1806300016Sadrian};
1807300016Sadrian
1808300016Sadrianstatic const uint32_t bwn_ntab_tdi40a0_r3[] = {
1809300016Sadrian	0x0011a346, 0x00136ccf, 0x0014f5d9, 0x001641e2,
1810300016Sadrian	0x0017cb6b, 0x00195475, 0x001b2383, 0x001cad0c,
1811300016Sadrian	0x001e7616, 0x0000821f, 0x00020ba8, 0x0003d4b2,
1812300016Sadrian	0x00056447, 0x00072dd0, 0x0008b6da, 0x000a02e3,
1813300016Sadrian	0x000b8c6c, 0x000d15f6, 0x0011e484, 0x0013ae0d,
1814300016Sadrian	0x00153717, 0x00168320, 0x00180ca9, 0x00199633,
1815300016Sadrian	0x001b6548, 0x001ceed1, 0x001eb7db, 0x0000c3e4,
1816300016Sadrian	0x00024d6d, 0x000416f7, 0x0005a585, 0x00076f0f,
1817300016Sadrian	0x0008f818, 0x000a4421, 0x000bcdab, 0x000d9734,
1818300016Sadrian	0x00122649, 0x0013efd2, 0x001578dc, 0x0016c4e5,
1819300016Sadrian	0x00184e6e, 0x001a17f8, 0x001ba686, 0x001d3010,
1820300016Sadrian	0x001ef999, 0x00010522, 0x00028eac, 0x00045835,
1821300016Sadrian	0x0005e74a, 0x0007b0d3, 0x00093a5d, 0x000a85e6,
1822300016Sadrian	0x000c0f6f, 0x000dd8f9, 0x00126787, 0x00143111,
1823300016Sadrian	0x0015ba9a, 0x00170623, 0x00188fad, 0x001a5936,
1824300016Sadrian	0x001be84b, 0x001db1d4, 0x001f3b5e, 0x000146e7,
1825300016Sadrian	0x00031070, 0x000499fa, 0x00062888, 0x0007f212,
1826300016Sadrian	0x00097b9b, 0x000ac7a4, 0x000c50ae, 0x000e1a37,
1827300016Sadrian	0x0012a94c, 0x001472d5, 0x0015fc5f, 0x00174868,
1828300016Sadrian	0x0018d171, 0x001a9afb, 0x001c2989, 0x001df313,
1829300016Sadrian	0x001f7c9c, 0x000188a5, 0x000351af, 0x0004db38,
1830300016Sadrian	0x0006aa4d, 0x000833d7, 0x0009bd60, 0x000b0969,
1831300016Sadrian	0x000c9273, 0x000e5bfc, 0x00132a8a, 0x0014b414,
1832300016Sadrian	0x00163d9d, 0x001789a6, 0x001912b0, 0x001adc39,
1833300016Sadrian	0x001c6bce, 0x001e34d8, 0x001fbe61, 0x0001ca6a,
1834300016Sadrian	0x00039374, 0x00051cfd, 0x0006ec0b, 0x00087515,
1835300016Sadrian	0x0009fe9e, 0x000b4aa7, 0x000cd3b1, 0x000e9d3a,
1836300016Sadrian	0x00000000, 0x00000000,
1837300016Sadrian};
1838300016Sadrian
1839300016Sadrianstatic const uint32_t bwn_ntab_tdi40a1_r3[] = {
1840300016Sadrian	0x001edb36, 0x000129ca, 0x0002b353, 0x00047cdd,
1841300016Sadrian	0x0005c8e6, 0x000791ef, 0x00091bf9, 0x000aaa07,
1842300016Sadrian	0x000c3391, 0x000dfd1a, 0x00120923, 0x0013d22d,
1843300016Sadrian	0x00155c37, 0x0016eacb, 0x00187454, 0x001a3dde,
1844300016Sadrian	0x001b89e7, 0x001d12f0, 0x001f1cfa, 0x00016b88,
1845300016Sadrian	0x00033492, 0x0004be1b, 0x00060a24, 0x0007d32e,
1846300016Sadrian	0x00095d38, 0x000aec4c, 0x000c7555, 0x000e3edf,
1847300016Sadrian	0x00124ae8, 0x001413f1, 0x0015a37b, 0x00172c89,
1848300016Sadrian	0x0018b593, 0x001a419c, 0x001bcb25, 0x001d942f,
1849300016Sadrian	0x001f63b9, 0x0001ad4d, 0x00037657, 0x0004c260,
1850300016Sadrian	0x00068be9, 0x000814f3, 0x0009a47c, 0x000b2d8a,
1851300016Sadrian	0x000cb694, 0x000e429d, 0x00128c26, 0x001455b0,
1852300016Sadrian	0x0015e4ba, 0x00176e4e, 0x0018f758, 0x001a8361,
1853300016Sadrian	0x001c0cea, 0x001dd674, 0x001fa57d, 0x0001ee8b,
1854300016Sadrian	0x0003b795, 0x0005039e, 0x0006cd27, 0x000856b1,
1855300016Sadrian	0x0009e5c6, 0x000b6f4f, 0x000cf859, 0x000e8462,
1856300016Sadrian	0x00130deb, 0x00149775, 0x00162603, 0x0017af8c,
1857300016Sadrian	0x00193896, 0x001ac49f, 0x001c4e28, 0x001e17b2,
1858300016Sadrian	0x0000a6c7, 0x00023050, 0x0003f9da, 0x00054563,
1859300016Sadrian	0x00070eec, 0x00089876, 0x000a2704, 0x000bb08d,
1860300016Sadrian	0x000d3a17, 0x001185a0, 0x00134f29, 0x0014d8b3,
1861300016Sadrian	0x001667c8, 0x0017f151, 0x00197adb, 0x001b0664,
1862300016Sadrian	0x001c8fed, 0x001e5977, 0x0000e805, 0x0002718f,
1863300016Sadrian	0x00043b18, 0x000586a1, 0x0007502b, 0x0008d9b4,
1864300016Sadrian	0x000a68c9, 0x000bf252, 0x000dbbdc, 0x0011c7e5,
1865300016Sadrian	0x001390ee, 0x00151a78, 0x0016a906, 0x00183290,
1866300016Sadrian	0x0019bc19, 0x001b4822, 0x001cd12c, 0x001e9ab5,
1867300016Sadrian	0x00000000, 0x00000000,
1868300016Sadrian};
1869300016Sadrian
1870300016Sadrianstatic const uint32_t bwn_ntab_pilotlt_r3[] = {
1871300016Sadrian	0x76540213, 0x62407351, 0x76543210, 0x76540213,
1872300016Sadrian	0x76540213, 0x76430521,
1873300016Sadrian};
1874300016Sadrian
1875300016Sadrianstatic const uint32_t bwn_ntab_channelest_r3[] = {
1876300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1877300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1878300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1879300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1880300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1881300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1882300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1883300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1884300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1885300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1886300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1887300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1888300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1889300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1890300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1891300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1892300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1893300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1894300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1895300016Sadrian	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1896300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1897300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1898300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1899300016Sadrian	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1900300016Sadrian};
1901300016Sadrian
1902300016Sadrianstatic const uint8_t bwn_ntab_framelookup_r3[] = {
1903300016Sadrian	0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
1904300016Sadrian	0x0a, 0x0c, 0x1c, 0x1c, 0x0b, 0x0d, 0x1e, 0x1e,
1905300016Sadrian	0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1a, 0x1a,
1906300016Sadrian	0x0e, 0x10, 0x20, 0x28, 0x0f, 0x11, 0x22, 0x2a,
1907300016Sadrian};
1908300016Sadrian
1909300016Sadrianstatic const uint8_t bwn_ntab_estimatepowerlt0_r3[] = {
1910300016Sadrian	0x55, 0x54, 0x54, 0x53, 0x52, 0x52, 0x51, 0x51,
1911300016Sadrian	0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c,
1912300016Sadrian	0x4b, 0x4a, 0x49, 0x49, 0x48, 0x47, 0x46, 0x46,
1913300016Sadrian	0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3f,
1914300016Sadrian	0x3e, 0x3d, 0x3c, 0x3a, 0x39, 0x38, 0x37, 0x36,
1915300016Sadrian	0x35, 0x33, 0x32, 0x31, 0x2f, 0x2e, 0x2c, 0x2b,
1916300016Sadrian	0x29, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1a,
1917300016Sadrian	0x18, 0x15, 0x12, 0x0e, 0x0b, 0x07, 0x02, 0xfd,
1918300016Sadrian};
1919300016Sadrian
1920300016Sadrianstatic const uint8_t bwn_ntab_estimatepowerlt1_r3[] = {
1921300016Sadrian	0x55, 0x54, 0x54, 0x53, 0x52, 0x52, 0x51, 0x51,
1922300016Sadrian	0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c,
1923300016Sadrian	0x4b, 0x4a, 0x49, 0x49, 0x48, 0x47, 0x46, 0x46,
1924300016Sadrian	0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3f,
1925300016Sadrian	0x3e, 0x3d, 0x3c, 0x3a, 0x39, 0x38, 0x37, 0x36,
1926300016Sadrian	0x35, 0x33, 0x32, 0x31, 0x2f, 0x2e, 0x2c, 0x2b,
1927300016Sadrian	0x29, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1a,
1928300016Sadrian	0x18, 0x15, 0x12, 0x0e, 0x0b, 0x07, 0x02, 0xfd,
1929300016Sadrian};
1930300016Sadrian
1931300016Sadrianstatic const uint8_t bwn_ntab_adjustpower0_r3[] = {
1932300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1933300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1934300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1935300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1936300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1937300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1938300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1939300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1940300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1941300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1942300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1943300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1944300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1945300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1946300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1947300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1948300016Sadrian};
1949300016Sadrian
1950300016Sadrianstatic const uint8_t bwn_ntab_adjustpower1_r3[] = {
1951300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1952300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1953300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1954300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1955300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1956300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1957300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1958300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1959300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1960300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1961300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1962300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1963300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1964300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1965300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1966300016Sadrian	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1967300016Sadrian};
1968300016Sadrian
1969300016Sadrianstatic const uint32_t bwn_ntab_gainctl0_r3[] = {
1970300016Sadrian	0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
1971300016Sadrian	0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
1972300016Sadrian	0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
1973300016Sadrian	0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
1974300016Sadrian	0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
1975300016Sadrian	0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
1976300016Sadrian	0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
1977300016Sadrian	0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
1978300016Sadrian	0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
1979300016Sadrian	0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
1980300016Sadrian	0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
1981300016Sadrian	0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
1982300016Sadrian	0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
1983300016Sadrian	0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
1984300016Sadrian	0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
1985300016Sadrian	0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
1986300016Sadrian	0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
1987300016Sadrian	0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
1988300016Sadrian	0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
1989300016Sadrian	0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
1990300016Sadrian	0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
1991300016Sadrian	0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
1992300016Sadrian	0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
1993300016Sadrian	0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
1994300016Sadrian	0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
1995300016Sadrian	0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
1996300016Sadrian	0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
1997300016Sadrian	0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
1998300016Sadrian	0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
1999300016Sadrian	0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
2000300016Sadrian	0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
2001300016Sadrian	0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
2002300016Sadrian};
2003300016Sadrian
2004300016Sadrianstatic const uint32_t bwn_ntab_gainctl1_r3[] = {
2005300016Sadrian	0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
2006300016Sadrian	0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
2007300016Sadrian	0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
2008300016Sadrian	0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
2009300016Sadrian	0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
2010300016Sadrian	0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
2011300016Sadrian	0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
2012300016Sadrian	0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
2013300016Sadrian	0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
2014300016Sadrian	0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
2015300016Sadrian	0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
2016300016Sadrian	0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
2017300016Sadrian	0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
2018300016Sadrian	0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
2019300016Sadrian	0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
2020300016Sadrian	0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
2021300016Sadrian	0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
2022300016Sadrian	0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
2023300016Sadrian	0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
2024300016Sadrian	0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
2025300016Sadrian	0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
2026300016Sadrian	0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
2027300016Sadrian	0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
2028300016Sadrian	0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
2029300016Sadrian	0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
2030300016Sadrian	0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
2031300016Sadrian	0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
2032300016Sadrian	0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
2033300016Sadrian	0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
2034300016Sadrian	0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
2035300016Sadrian	0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
2036300016Sadrian	0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
2037300016Sadrian};
2038300016Sadrian
2039300016Sadrianstatic const uint32_t bwn_ntab_iqlt0_r3[] = {
2040300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2041300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2042300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2043300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2044300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2045300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2046300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2047300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2048300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2049300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2050300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2051300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2052300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2053300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2054300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2055300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2056300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2057300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2058300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2059300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2060300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2061300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2062300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2063300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2064300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2065300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2066300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2067300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2068300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2069300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2070300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2071300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2072300016Sadrian};
2073300016Sadrian
2074300016Sadrianstatic const uint32_t bwn_ntab_iqlt1_r3[] = {
2075300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2076300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2077300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2078300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2079300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2080300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2081300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2082300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2083300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2084300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2085300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2086300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2087300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2088300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2089300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2090300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2091300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2092300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2093300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2094300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2095300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2096300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2097300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2098300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2099300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2100300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2101300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2102300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2103300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2104300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2105300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2106300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2107300016Sadrian};
2108300016Sadrian
2109300016Sadrianstatic const uint16_t bwn_ntab_loftlt0_r3[] = {
2110300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2111300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2112300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2113300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2114300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2115300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2116300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2117300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2118300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2119300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2120300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2121300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2122300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2123300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2124300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2125300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2126300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2127300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2128300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2129300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2130300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2131300016Sadrian	0x0000, 0x0000,
2132300016Sadrian};
2133300016Sadrian
2134300016Sadrianstatic const uint16_t bwn_ntab_loftlt1_r3[] = {
2135300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2136300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2137300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2138300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2139300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2140300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2141300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2142300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2143300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2144300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2145300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2146300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2147300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2148300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2149300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2150300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2151300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2152300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2153300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2154300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2155300016Sadrian	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2156300016Sadrian	0x0000, 0x0000,
2157300016Sadrian};
2158300016Sadrian
2159300016Sadrian/* volatile  tables, PHY revision >= 3 */
2160300016Sadrian
2161300016Sadrian/* indexed by antswctl2g */
2162300016Sadrianstatic const uint16_t bwn_ntab_antswctl_r3[4][32] = {
2163300016Sadrian	{
2164300016Sadrian		0x0082, 0x0082, 0x0211, 0x0222, 0x0328,
2165300016Sadrian		0x0000, 0x0000, 0x0000, 0x0144, 0x0000,
2166300016Sadrian		0x0000, 0x0000, 0x0188, 0x0000, 0x0000,
2167300016Sadrian		0x0000, 0x0082, 0x0082, 0x0211, 0x0222,
2168300016Sadrian		0x0328, 0x0000, 0x0000, 0x0000, 0x0144,
2169300016Sadrian		0x0000, 0x0000, 0x0000, 0x0188, 0x0000,
2170300016Sadrian		0x0000, 0x0000,
2171300016Sadrian	},
2172300016Sadrian	{
2173300016Sadrian		0x0022, 0x0022, 0x0011, 0x0022, 0x0022,
2174300016Sadrian		0x0000, 0x0000, 0x0000, 0x0011, 0x0000,
2175300016Sadrian		0x0000, 0x0000, 0x0022, 0x0000, 0x0000,
2176300016Sadrian		0x0000, 0x0022, 0x0022, 0x0011, 0x0022,
2177300016Sadrian		0x0022, 0x0000, 0x0000, 0x0000, 0x0011,
2178300016Sadrian		0x0000, 0x0000, 0x0000, 0x0022, 0x0000,
2179300016Sadrian		0x0000, 0x0000,
2180300016Sadrian	},
2181300016Sadrian	{
2182300016Sadrian		0x0088, 0x0088, 0x0044, 0x0088, 0x0088,
2183300016Sadrian		0x0000, 0x0000, 0x0000, 0x0044, 0x0000,
2184300016Sadrian		0x0000, 0x0000, 0x0088, 0x0000, 0x0000,
2185300016Sadrian		0x0000, 0x0088, 0x0088, 0x0044, 0x0088,
2186300016Sadrian		0x0088, 0x0000, 0x0000, 0x0000, 0x0044,
2187300016Sadrian		0x0000, 0x0000, 0x0000, 0x0088, 0x0000,
2188300016Sadrian		0x0000, 0x0000,
2189300016Sadrian	},
2190300016Sadrian	{
2191300016Sadrian		0x0022, 0x0022, 0x0011, 0x0022, 0x0000,
2192300016Sadrian		0x0000, 0x0000, 0x0000, 0x0011, 0x0000,
2193300016Sadrian		0x0000, 0x0000, 0x0022, 0x0000, 0x0000,
2194300016Sadrian		0x03cc, 0x0022, 0x0022, 0x0011, 0x0022,
2195300016Sadrian		0x0000, 0x0000, 0x0000, 0x0000, 0x0011,
2196300016Sadrian		0x0000, 0x0000, 0x0000, 0x0022, 0x0000,
2197300016Sadrian		0x0000, 0x03cc,
2198300016Sadrian	}
2199300016Sadrian};
2200300016Sadrian
2201300016Sadrian/* static tables, PHY revision >= 7 */
2202300016Sadrian
2203300016Sadrian/* Copied from brcmsmac (5.75.11) */
2204300016Sadrianstatic const uint32_t bwn_ntab_tmap_r7[] = {
2205300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2206300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2207300016Sadrian	0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
2208300016Sadrian	0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
2209300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x000aa888,
2210300016Sadrian	0x88880000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2211300016Sadrian	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
2212300016Sadrian	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
2213300016Sadrian	0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
2214300016Sadrian	0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
2215300016Sadrian	0xf1111110, 0x11111111, 0x11f11111, 0x00011111,
2216300016Sadrian	0x11110000, 0x1111f111, 0x11111111, 0x111111f1,
2217300016Sadrian	0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00088aaa,
2218300016Sadrian	0xaaaa0000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
2219300016Sadrian	0xaaa8aaa0, 0x8aaa8aaa, 0xaa8a8a8a, 0x000aaa88,
2220300016Sadrian	0x8aaa0000, 0xaaa8a888, 0x8aa88a8a, 0x8a88a888,
2221300016Sadrian	0x08080a00, 0x0a08080a, 0x080a0a08, 0x00080808,
2222300016Sadrian	0x080a0000, 0x080a0808, 0x080a0808, 0x0a0a0a08,
2223300016Sadrian	0xa0a0a0a0, 0x80a0a080, 0x8080a0a0, 0x00008080,
2224300016Sadrian	0x80a00000, 0x80a080a0, 0xa080a0a0, 0x8080a0a0,
2225300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2226300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2227300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2228300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2229300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2230300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2231300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2232300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2233300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2234300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2235300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2236300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2237300016Sadrian	0x99999000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
2238300016Sadrian	0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
2239300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2240300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
2241300016Sadrian	0x22000000, 0x2222b222, 0x22222222, 0x222222b2,
2242300016Sadrian	0xb2222220, 0x22222222, 0x22d22222, 0x00000222,
2243300016Sadrian	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
2244300016Sadrian	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
2245300016Sadrian	0x33000000, 0x3333b333, 0x33333333, 0x333333b3,
2246300016Sadrian	0xb3333330, 0x33333333, 0x33d33333, 0x00000333,
2247300016Sadrian	0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
2248300016Sadrian	0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
2249300016Sadrian	0x99b99b00, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
2250300016Sadrian	0x9b99bb99, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
2251300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2252300016Sadrian	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
2253300016Sadrian	0x22222200, 0x2222f222, 0x22222222, 0x222222f2,
2254300016Sadrian	0x22222222, 0x22222222, 0x22f22222, 0x00000222,
2255300016Sadrian	0x11000000, 0x1111f111, 0x11111111, 0x11111111,
2256300016Sadrian	0xf1111111, 0x11111111, 0x11f11111, 0x01111111,
2257300016Sadrian	0xbb9bb900, 0xb9b9bb99, 0xb99bbbbb, 0xbbbb9b9b,
2258300016Sadrian	0xb9bb99bb, 0xb99999b9, 0xb9b9b99b, 0x00000bbb,
2259300016Sadrian	0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
2260300016Sadrian	0xa8aa88aa, 0xa88888a8, 0xa8a8a88a, 0x0a888aaa,
2261300016Sadrian	0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
2262300016Sadrian	0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00000aaa,
2263300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2264300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2265300016Sadrian	0xbbbbbb00, 0x999bbbbb, 0x9bb99b9b, 0xb9b9b9bb,
2266300016Sadrian	0xb9b99bbb, 0xb9b9b9bb, 0xb9bb9b99, 0x00000999,
2267300016Sadrian	0x8a000000, 0xaa88a888, 0xa88888aa, 0xa88a8a88,
2268300016Sadrian	0xa88aa88a, 0x88a8aaaa, 0xa8aa8aaa, 0x0888a88a,
2269300016Sadrian	0x0b0b0b00, 0x090b0b0b, 0x0b090b0b, 0x0909090b,
2270300016Sadrian	0x09090b0b, 0x09090b0b, 0x09090b09, 0x00000909,
2271300016Sadrian	0x0a000000, 0x0a080808, 0x080a080a, 0x080a0a08,
2272300016Sadrian	0x080a080a, 0x0808080a, 0x0a0a0a08, 0x0808080a,
2273300016Sadrian	0xb0b0b000, 0x9090b0b0, 0x90b09090, 0xb0b0b090,
2274300016Sadrian	0xb0b090b0, 0x90b0b0b0, 0xb0b09090, 0x00000090,
2275300016Sadrian	0x80000000, 0xa080a080, 0xa08080a0, 0xa0808080,
2276300016Sadrian	0xa080a080, 0x80a0a0a0, 0xa0a080a0, 0x00a0a0a0,
2277300016Sadrian	0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
2278300016Sadrian	0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
2279300016Sadrian	0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
2280300016Sadrian	0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
2281300016Sadrian	0x33000000, 0x3333f333, 0x33333333, 0x333333f3,
2282300016Sadrian	0xf3333330, 0x33333333, 0x33f33333, 0x00000333,
2283300016Sadrian	0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
2284300016Sadrian	0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
2285300016Sadrian	0x99000000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
2286300016Sadrian	0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
2287300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2288300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2289300016Sadrian	0x88888000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2290300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2291300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2292300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
2293300016Sadrian	0x88a88a00, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2294300016Sadrian	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x000aa888,
2295300016Sadrian	0x88880000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2296300016Sadrian	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
2297300016Sadrian	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
2298300016Sadrian	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
2299300016Sadrian	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
2300300016Sadrian	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
2301300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2302300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2303300016Sadrian	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
2304300016Sadrian	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
2305300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2306300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2307300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2308300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2309300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2310300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2311300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2312300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2313300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2314300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2315300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2316300016Sadrian	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2317300016Sadrian};
2318300016Sadrian
2319300016Sadrian/* Extracted from MMIO dump of 6.30.223.141 */
2320300016Sadrianstatic const uint32_t bwn_ntab_noisevar_r7[] = {
2321300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2322300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2323300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2324300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2325300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2326300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2327300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2328300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2329300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2330300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2331300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2332300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2333300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2334300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2335300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2336300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2337300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2338300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2339300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2340300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2341300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2342300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2343300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2344300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2345300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2346300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2347300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2348300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2349300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2350300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2351300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2352300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2353300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2354300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2355300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2356300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2357300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2358300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2359300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2360300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2361300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2362300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2363300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2364300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2365300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2366300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2367300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2368300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2369300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2370300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2371300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2372300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2373300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2374300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2375300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2376300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2377300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2378300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2379300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2380300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2381300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2382300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2383300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2384300016Sadrian	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
2385300016Sadrian};
2386300016Sadrian
2387300016Sadrian/**************************************************
2388300016Sadrian * TX gain tables
2389300016Sadrian **************************************************/
2390300016Sadrian
2391300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_rev0_1_2[] = {
2392300016Sadrian	0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
2393300016Sadrian	0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
2394300016Sadrian	0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
2395300016Sadrian	0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
2396300016Sadrian	0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
2397300016Sadrian	0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
2398300016Sadrian	0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
2399300016Sadrian	0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
2400300016Sadrian	0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
2401300016Sadrian	0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
2402300016Sadrian	0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
2403300016Sadrian	0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
2404300016Sadrian	0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
2405300016Sadrian	0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
2406300016Sadrian	0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
2407300016Sadrian	0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
2408300016Sadrian	0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
2409300016Sadrian	0x03902942, 0x03902844, 0x03902842, 0x03902744,
2410300016Sadrian	0x03902742, 0x03902644, 0x03902642, 0x03902544,
2411300016Sadrian	0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
2412300016Sadrian	0x03802a42, 0x03802944, 0x03802942, 0x03802844,
2413300016Sadrian	0x03802842, 0x03802744, 0x03802742, 0x03802644,
2414300016Sadrian	0x03802642, 0x03802544, 0x03802542, 0x03802444,
2415300016Sadrian	0x03802442, 0x03802344, 0x03802342, 0x03802244,
2416300016Sadrian	0x03802242, 0x03802144, 0x03802142, 0x03802044,
2417300016Sadrian	0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
2418300016Sadrian	0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
2419300016Sadrian	0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
2420300016Sadrian	0x03801a42, 0x03801944, 0x03801942, 0x03801844,
2421300016Sadrian	0x03801842, 0x03801744, 0x03801742, 0x03801644,
2422300016Sadrian	0x03801642, 0x03801544, 0x03801542, 0x03801444,
2423300016Sadrian	0x03801442, 0x03801344, 0x03801342, 0x00002b00,
2424300016Sadrian};
2425300016Sadrian
2426300016Sadrian/* EPA 2 GHz */
2427300016Sadrian
2428300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_epa_rev3_2g[] = {
2429300016Sadrian	0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
2430300016Sadrian	0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
2431300016Sadrian	0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
2432300016Sadrian	0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
2433300016Sadrian	0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
2434300016Sadrian	0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
2435300016Sadrian	0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
2436300016Sadrian	0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
2437300016Sadrian	0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
2438300016Sadrian	0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
2439300016Sadrian	0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
2440300016Sadrian	0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
2441300016Sadrian	0x19410044, 0x19410042, 0x19410040, 0x1941003e,
2442300016Sadrian	0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
2443300016Sadrian	0x18410044, 0x18410042, 0x18410040, 0x1841003e,
2444300016Sadrian	0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
2445300016Sadrian	0x17410044, 0x17410042, 0x17410040, 0x1741003e,
2446300016Sadrian	0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
2447300016Sadrian	0x16410044, 0x16410042, 0x16410040, 0x1641003e,
2448300016Sadrian	0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
2449300016Sadrian	0x15410044, 0x15410042, 0x15410040, 0x1541003e,
2450300016Sadrian	0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
2451300016Sadrian	0x14410044, 0x14410042, 0x14410040, 0x1441003e,
2452300016Sadrian	0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
2453300016Sadrian	0x13410044, 0x13410042, 0x13410040, 0x1341003e,
2454300016Sadrian	0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
2455300016Sadrian	0x12410044, 0x12410042, 0x12410040, 0x1241003e,
2456300016Sadrian	0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
2457300016Sadrian	0x11410044, 0x11410042, 0x11410040, 0x1141003e,
2458300016Sadrian	0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
2459300016Sadrian	0x10410044, 0x10410042, 0x10410040, 0x1041003e,
2460300016Sadrian	0x1041003c, 0x1041003b, 0x10410039, 0x10410037,
2461300016Sadrian};
2462300016Sadrian
2463300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_epa_rev3_hi_pwr_2g[] = {
2464300016Sadrian	0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
2465300016Sadrian	0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
2466300016Sadrian	0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
2467300016Sadrian	0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
2468300016Sadrian	0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
2469300016Sadrian	0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
2470300016Sadrian	0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
2471300016Sadrian	0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
2472300016Sadrian	0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
2473300016Sadrian	0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
2474300016Sadrian	0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
2475300016Sadrian	0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
2476300016Sadrian	0x09410044, 0x09410042, 0x09410040, 0x0941003e,
2477300016Sadrian	0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
2478300016Sadrian	0x08410044, 0x08410042, 0x08410040, 0x0841003e,
2479300016Sadrian	0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
2480300016Sadrian	0x07410044, 0x07410042, 0x07410040, 0x0741003e,
2481300016Sadrian	0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
2482300016Sadrian	0x06410044, 0x06410042, 0x06410040, 0x0641003e,
2483300016Sadrian	0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
2484300016Sadrian	0x05410044, 0x05410042, 0x05410040, 0x0541003e,
2485300016Sadrian	0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
2486300016Sadrian	0x04410044, 0x04410042, 0x04410040, 0x0441003e,
2487300016Sadrian	0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
2488300016Sadrian	0x03410044, 0x03410042, 0x03410040, 0x0341003e,
2489300016Sadrian	0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
2490300016Sadrian	0x02410044, 0x02410042, 0x02410040, 0x0241003e,
2491300016Sadrian	0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
2492300016Sadrian	0x01410044, 0x01410042, 0x01410040, 0x0141003e,
2493300016Sadrian	0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
2494300016Sadrian	0x00410044, 0x00410042, 0x00410040, 0x0041003e,
2495300016Sadrian	0x0041003c, 0x0041003b, 0x00410039, 0x00410037
2496300016Sadrian};
2497300016Sadrian
2498300016Sadrian/* EPA 5 GHz */
2499300016Sadrian
2500300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_epa_rev3_5g[] = {
2501300016Sadrian	0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
2502300016Sadrian	0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
2503300016Sadrian	0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
2504300016Sadrian	0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
2505300016Sadrian	0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
2506300016Sadrian	0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
2507300016Sadrian	0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
2508300016Sadrian	0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
2509300016Sadrian	0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
2510300016Sadrian	0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
2511300016Sadrian	0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
2512300016Sadrian	0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
2513300016Sadrian	0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
2514300016Sadrian	0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
2515300016Sadrian	0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
2516300016Sadrian	0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
2517300016Sadrian	0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
2518300016Sadrian	0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
2519300016Sadrian	0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
2520300016Sadrian	0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
2521300016Sadrian	0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
2522300016Sadrian	0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
2523300016Sadrian	0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
2524300016Sadrian	0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
2525300016Sadrian	0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
2526300016Sadrian	0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
2527300016Sadrian	0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
2528300016Sadrian	0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
2529300016Sadrian	0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
2530300016Sadrian	0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
2531300016Sadrian	0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
2532300016Sadrian	0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037,
2533300016Sadrian};
2534300016Sadrian
2535300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_epa_rev4_5g[] = {
2536300016Sadrian	0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
2537300016Sadrian	0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
2538300016Sadrian	0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
2539300016Sadrian	0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
2540300016Sadrian	0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
2541300016Sadrian	0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
2542300016Sadrian	0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
2543300016Sadrian	0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
2544300016Sadrian	0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
2545300016Sadrian	0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
2546300016Sadrian	0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
2547300016Sadrian	0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
2548300016Sadrian	0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
2549300016Sadrian	0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
2550300016Sadrian	0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
2551300016Sadrian	0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
2552300016Sadrian	0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
2553300016Sadrian	0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
2554300016Sadrian	0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
2555300016Sadrian	0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
2556300016Sadrian	0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
2557300016Sadrian	0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
2558300016Sadrian	0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
2559300016Sadrian	0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
2560300016Sadrian	0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
2561300016Sadrian	0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
2562300016Sadrian	0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
2563300016Sadrian	0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
2564300016Sadrian	0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
2565300016Sadrian	0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
2566300016Sadrian	0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
2567300016Sadrian	0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034,
2568300016Sadrian};
2569300016Sadrian
2570300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_epa_rev4_hi_pwr_5g[] = {
2571300016Sadrian	0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
2572300016Sadrian	0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
2573300016Sadrian	0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
2574300016Sadrian	0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
2575300016Sadrian	0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
2576300016Sadrian	0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
2577300016Sadrian	0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
2578300016Sadrian	0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
2579300016Sadrian	0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
2580300016Sadrian	0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
2581300016Sadrian	0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
2582300016Sadrian	0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
2583300016Sadrian	0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
2584300016Sadrian	0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
2585300016Sadrian	0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
2586300016Sadrian	0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
2587300016Sadrian	0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
2588300016Sadrian	0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
2589300016Sadrian	0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
2590300016Sadrian	0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
2591300016Sadrian	0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
2592300016Sadrian	0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
2593300016Sadrian	0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
2594300016Sadrian	0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
2595300016Sadrian	0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
2596300016Sadrian	0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
2597300016Sadrian	0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
2598300016Sadrian	0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
2599300016Sadrian	0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
2600300016Sadrian	0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
2601300016Sadrian	0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
2602300016Sadrian	0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
2603300016Sadrian};
2604300016Sadrian
2605300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_epa_rev5_5g[] = {
2606300016Sadrian	0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
2607300016Sadrian	0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
2608300016Sadrian	0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
2609300016Sadrian	0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
2610300016Sadrian	0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
2611300016Sadrian	0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
2612300016Sadrian	0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
2613300016Sadrian	0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
2614300016Sadrian	0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
2615300016Sadrian	0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
2616300016Sadrian	0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
2617300016Sadrian	0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
2618300016Sadrian	0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
2619300016Sadrian	0x09620039, 0x09620037, 0x09620035, 0x09620033,
2620300016Sadrian	0x08620044, 0x08620042, 0x08620040, 0x0862003e,
2621300016Sadrian	0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
2622300016Sadrian	0x07620043, 0x07620042, 0x07620040, 0x0762003f,
2623300016Sadrian	0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
2624300016Sadrian	0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
2625300016Sadrian	0x06620039, 0x06620037, 0x06620035, 0x06620033,
2626300016Sadrian	0x05620046, 0x05620044, 0x05620042, 0x05620040,
2627300016Sadrian	0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
2628300016Sadrian	0x04620044, 0x04620042, 0x04620040, 0x0462003e,
2629300016Sadrian	0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
2630300016Sadrian	0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
2631300016Sadrian	0x03620038, 0x03620037, 0x03620035, 0x03620033,
2632300016Sadrian	0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
2633300016Sadrian	0x02620046, 0x02620044, 0x02620043, 0x02620042,
2634300016Sadrian	0x0162004a, 0x01620048, 0x01620046, 0x01620044,
2635300016Sadrian	0x01620043, 0x01620042, 0x01620041, 0x01620040,
2636300016Sadrian	0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
2637300016Sadrian	0x0062003b, 0x00620039, 0x00620037, 0x00620035,
2638300016Sadrian};
2639300016Sadrian
2640300016Sadrian/* IPA 2 GHz */
2641300016Sadrian
2642300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_ipa_rev3_2g[] = {
2643300016Sadrian	0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
2644300016Sadrian	0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
2645300016Sadrian	0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
2646300016Sadrian	0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
2647300016Sadrian	0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
2648300016Sadrian	0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
2649300016Sadrian	0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
2650300016Sadrian	0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
2651300016Sadrian	0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
2652300016Sadrian	0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
2653300016Sadrian	0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
2654300016Sadrian	0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
2655300016Sadrian	0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
2656300016Sadrian	0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
2657300016Sadrian	0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
2658300016Sadrian	0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
2659300016Sadrian	0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
2660300016Sadrian	0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
2661300016Sadrian	0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
2662300016Sadrian	0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
2663300016Sadrian	0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
2664300016Sadrian	0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
2665300016Sadrian	0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
2666300016Sadrian	0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
2667300016Sadrian	0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
2668300016Sadrian	0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
2669300016Sadrian	0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
2670300016Sadrian	0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
2671300016Sadrian	0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
2672300016Sadrian	0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
2673300016Sadrian	0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
2674300016Sadrian	0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025,
2675300016Sadrian};
2676300016Sadrian
2677300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_ipa_rev5_2g[] = {
2678300016Sadrian	0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
2679300016Sadrian	0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
2680300016Sadrian	0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
2681300016Sadrian	0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
2682300016Sadrian	0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
2683300016Sadrian	0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
2684300016Sadrian	0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
2685300016Sadrian	0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
2686300016Sadrian	0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
2687300016Sadrian	0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
2688300016Sadrian	0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
2689300016Sadrian	0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
2690300016Sadrian	0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
2691300016Sadrian	0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
2692300016Sadrian	0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
2693300016Sadrian	0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
2694300016Sadrian	0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
2695300016Sadrian	0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
2696300016Sadrian	0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
2697300016Sadrian	0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
2698300016Sadrian	0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
2699300016Sadrian	0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
2700300016Sadrian	0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
2701300016Sadrian	0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
2702300016Sadrian	0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
2703300016Sadrian	0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
2704300016Sadrian	0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
2705300016Sadrian	0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
2706300016Sadrian	0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
2707300016Sadrian	0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
2708300016Sadrian	0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
2709300016Sadrian	0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025,
2710300016Sadrian};
2711300016Sadrian
2712300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_ipa_rev6_2g[] = {
2713300016Sadrian	0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
2714300016Sadrian	0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
2715300016Sadrian	0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
2716300016Sadrian	0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
2717300016Sadrian	0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
2718300016Sadrian	0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
2719300016Sadrian	0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
2720300016Sadrian	0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
2721300016Sadrian	0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
2722300016Sadrian	0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
2723300016Sadrian	0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
2724300016Sadrian	0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
2725300016Sadrian	0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
2726300016Sadrian	0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
2727300016Sadrian	0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
2728300016Sadrian	0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
2729300016Sadrian	0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
2730300016Sadrian	0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
2731300016Sadrian	0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
2732300016Sadrian	0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
2733300016Sadrian	0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
2734300016Sadrian	0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
2735300016Sadrian	0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
2736300016Sadrian	0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
2737300016Sadrian	0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
2738300016Sadrian	0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
2739300016Sadrian	0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
2740300016Sadrian	0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
2741300016Sadrian	0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
2742300016Sadrian	0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
2743300016Sadrian	0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
2744300016Sadrian	0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025,
2745300016Sadrian};
2746300016Sadrian
2747300016Sadrian/* Copied from brcmsmac (5.75.11): nphy_tpc_txgain_ipa_2g_2057rev5 */
2748300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_ipa_2057_rev5_2g[] = {
2749300016Sadrian	0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
2750300016Sadrian	0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
2751300016Sadrian	0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
2752300016Sadrian	0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
2753300016Sadrian	0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
2754300016Sadrian	0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
2755300016Sadrian	0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
2756300016Sadrian	0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
2757300016Sadrian	0x30270027, 0x30270025, 0x30270023, 0x301f002c,
2758300016Sadrian	0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
2759300016Sadrian	0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
2760300016Sadrian	0x30170028, 0x30170026, 0x30170024, 0x30170022,
2761300016Sadrian	0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
2762300016Sadrian	0x3017001a, 0x30170018, 0x30170017, 0x30170015,
2763300016Sadrian	0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
2764300016Sadrian	0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
2765300016Sadrian	0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
2766300016Sadrian	0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
2767300016Sadrian	0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
2768300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2769300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2770300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2771300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2772300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2773300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2774300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2775300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2776300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2777300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2778300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2779300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2780300016Sadrian	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
2781300016Sadrian};
2782300016Sadrian
2783300016Sadrian/* Extracted from MMIO dump of 6.30.223.141 */
2784300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_ipa_2057_rev9_2g[] = {
2785300016Sadrian	0x60ff0031, 0x60e7002c, 0x60cf002a, 0x60c70029,
2786300016Sadrian	0x60b70029, 0x60a70029, 0x609f002a, 0x6097002b,
2787300016Sadrian	0x6087002e, 0x60770031, 0x606f0032, 0x60670034,
2788300016Sadrian	0x60670031, 0x605f0033, 0x605f0031, 0x60570033,
2789300016Sadrian	0x60570030, 0x6057002d, 0x6057002b, 0x604f002d,
2790300016Sadrian	0x604f002b, 0x604f0029, 0x604f0026, 0x60470029,
2791300016Sadrian	0x60470027, 0x603f0029, 0x603f0027, 0x603f0025,
2792300016Sadrian	0x60370029, 0x60370027, 0x60370024, 0x602f002a,
2793300016Sadrian	0x602f0028, 0x602f0026, 0x602f0024, 0x6027002a,
2794300016Sadrian	0x60270028, 0x60270026, 0x60270024, 0x60270022,
2795300016Sadrian	0x601f002b, 0x601f0029, 0x601f0027, 0x601f0024,
2796300016Sadrian	0x601f0022, 0x601f0020, 0x601f001f, 0x601f001d,
2797300016Sadrian	0x60170029, 0x60170027, 0x60170025, 0x60170023,
2798300016Sadrian	0x60170021, 0x6017001f, 0x6017001d, 0x6017001c,
2799300016Sadrian	0x6017001a, 0x60170018, 0x60170018, 0x60170016,
2800300016Sadrian	0x60170015, 0x600f0029, 0x600f0027, 0x600f0025,
2801300016Sadrian	0x600f0023, 0x600f0021, 0x600f001f, 0x600f001d,
2802300016Sadrian	0x600f001c, 0x600f001a, 0x600f0019, 0x600f0018,
2803300016Sadrian	0x600f0016, 0x600f0015, 0x600f0115, 0x600f0215,
2804300016Sadrian	0x600f0315, 0x600f0415, 0x600f0515, 0x600f0615,
2805300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2806300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2807300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2808300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2809300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2810300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2811300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2812300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2813300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2814300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2815300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2816300016Sadrian	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
2817300016Sadrian};
2818300016Sadrian
2819300016Sadrian/* Extracted from MMIO dump of 6.30.223.248 */
2820300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_ipa_2057_rev14_2g[] = {
2821300016Sadrian	0x50df002e, 0x50cf002d, 0x50bf002c, 0x50b7002b,
2822300016Sadrian	0x50af002a, 0x50a70029, 0x509f0029, 0x50970028,
2823300016Sadrian	0x508f0027, 0x50870027, 0x507f0027, 0x50770027,
2824300016Sadrian	0x506f0027, 0x50670027, 0x505f0028, 0x50570029,
2825300016Sadrian	0x504f002b, 0x5047002e, 0x5047002b, 0x50470029,
2826300016Sadrian	0x503f002c, 0x503f0029, 0x5037002c, 0x5037002a,
2827300016Sadrian	0x50370028, 0x502f002d, 0x502f002b, 0x502f0028,
2828300016Sadrian	0x502f0026, 0x5027002d, 0x5027002a, 0x50270028,
2829300016Sadrian	0x50270026, 0x50270024, 0x501f002e, 0x501f002b,
2830300016Sadrian	0x501f0029, 0x501f0027, 0x501f0024, 0x501f0022,
2831300016Sadrian	0x501f0020, 0x501f001f, 0x5017002c, 0x50170029,
2832300016Sadrian	0x50170027, 0x50170024, 0x50170022, 0x50170021,
2833300016Sadrian	0x5017001f, 0x5017001d, 0x5017001b, 0x5017001a,
2834300016Sadrian	0x50170018, 0x50170017, 0x50170015, 0x500f002c,
2835300016Sadrian	0x500f002a, 0x500f0027, 0x500f0025, 0x500f0023,
2836300016Sadrian	0x500f0022, 0x500f001f, 0x500f001e, 0x500f001c,
2837300016Sadrian	0x500f001a, 0x500f0019, 0x500f0018, 0x500f0016,
2838300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2839300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2840300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2841300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2842300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2843300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2844300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2845300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2846300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2847300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2848300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2849300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2850300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2851300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2852300016Sadrian	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
2853300016Sadrian};
2854300016Sadrian
2855300016Sadrian/* IPA 2 5Hz */
2856300016Sadrian
2857300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_ipa_rev3_5g[] = {
2858300016Sadrian	0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
2859300016Sadrian	0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
2860300016Sadrian	0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
2861300016Sadrian	0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
2862300016Sadrian	0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
2863300016Sadrian	0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
2864300016Sadrian	0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
2865300016Sadrian	0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
2866300016Sadrian	0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
2867300016Sadrian	0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
2868300016Sadrian	0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
2869300016Sadrian	0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
2870300016Sadrian	0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
2871300016Sadrian	0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
2872300016Sadrian	0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
2873300016Sadrian	0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
2874300016Sadrian	0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
2875300016Sadrian	0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
2876300016Sadrian	0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
2877300016Sadrian	0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
2878300016Sadrian	0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
2879300016Sadrian	0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
2880300016Sadrian	0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
2881300016Sadrian	0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
2882300016Sadrian	0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
2883300016Sadrian	0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
2884300016Sadrian	0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
2885300016Sadrian	0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
2886300016Sadrian	0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
2887300016Sadrian	0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
2888300016Sadrian	0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
2889300016Sadrian	0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f,
2890300016Sadrian};
2891300016Sadrian
2892300016Sadrian/* Extracted from MMIO dump of 6.30.223.141 */
2893300016Sadrianstatic const uint32_t bwn_ntab_tx_gain_ipa_2057_rev9_5g[] = {
2894300016Sadrian	0x7f7f0053, 0x7f7f004b, 0x7f7f0044, 0x7f7f003f,
2895300016Sadrian	0x7f7f0039, 0x7f7f0035, 0x7f7f0032, 0x7f7f0030,
2896300016Sadrian	0x7f7f002d, 0x7e7f0030, 0x7e7f002d, 0x7d7f0032,
2897300016Sadrian	0x7d7f002f, 0x7d7f002c, 0x7c7f0032, 0x7c7f0030,
2898300016Sadrian	0x7c7f002d, 0x7b7f0030, 0x7b7f002e, 0x7b7f002b,
2899300016Sadrian	0x7a7f0032, 0x7a7f0030, 0x7a7f002d, 0x7a7f002b,
2900300016Sadrian	0x797f0030, 0x797f002e, 0x797f002b, 0x797f0029,
2901300016Sadrian	0x787f0030, 0x787f002d, 0x787f002b, 0x777f0032,
2902300016Sadrian	0x777f0030, 0x777f002d, 0x777f002b, 0x767f0031,
2903300016Sadrian	0x767f002f, 0x767f002c, 0x767f002a, 0x757f0031,
2904300016Sadrian	0x757f002f, 0x757f002c, 0x757f002a, 0x747f0030,
2905300016Sadrian	0x747f002d, 0x747f002b, 0x737f0032, 0x737f002f,
2906300016Sadrian	0x737f002c, 0x737f002a, 0x727f0030, 0x727f002d,
2907300016Sadrian	0x727f002b, 0x727f0029, 0x717f0030, 0x717f002d,
2908300016Sadrian	0x717f002b, 0x707f0031, 0x707f002f, 0x707f002c,
2909300016Sadrian	0x707f002a, 0x707f0027, 0x707f0025, 0x707f0023,
2910300016Sadrian	0x707f0021, 0x707f001f, 0x707f001d, 0x707f001c,
2911300016Sadrian	0x707f001a, 0x707f0019, 0x707f0017, 0x707f0016,
2912300016Sadrian	0x707f0015, 0x707f0014, 0x707f0012, 0x707f0012,
2913300016Sadrian	0x707f0011, 0x707f0010, 0x707f000f, 0x707f000e,
2914300016Sadrian	0x707f000d, 0x707f000d, 0x707f000c, 0x707f000b,
2915300016Sadrian	0x707f000a, 0x707f000a, 0x707f0009, 0x707f0008,
2916300016Sadrian	0x707f0008, 0x707f0008, 0x707f0008, 0x707f0007,
2917300016Sadrian	0x707f0007, 0x707f0006, 0x707f0006, 0x707f0006,
2918300016Sadrian	0x707f0005, 0x707f0005, 0x707f0005, 0x707f0004,
2919300016Sadrian	0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
2920300016Sadrian	0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
2921300016Sadrian	0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
2922300016Sadrian	0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
2923300016Sadrian	0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
2924300016Sadrian	0x707f0002, 0x707f0001, 0x707f0001, 0x707f0001,
2925300016Sadrian	0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
2926300016Sadrian};
2927300016Sadrian
2928300016Sadrianconst int8_t bwn_ntab_papd_pga_gain_delta_ipa_2g[] = {
2929300016Sadrian	-114, -108, -98, -91, -84, -78, -70, -62,
2930300016Sadrian	-54, -46, -39, -31, -23, -15, -8, 0
2931300016Sadrian};
2932300016Sadrian
2933300016Sadrian/* Extracted from MMIO dump of 6.30.223.248
2934300016Sadrian * Entries: 0, 15, 17, 21, 24, 26, 27, 29, 30 were guessed
2935300016Sadrian */
2936300016Sadrianstatic const int16_t bwn_ntab_rf_pwr_offset_2057_rev9_2g[] = {
2937300016Sadrian	-133, -133, -107, -92, -81,
2938300016Sadrian	-73, -66, -61, -56, -52,
2939300016Sadrian	-48, -44, -41, -37, -34,
2940300016Sadrian	-31, -28, -25, -22, -19,
2941300016Sadrian	-17, -14, -12, -10, -9,
2942300016Sadrian	-7, -5, -4, -3, -2,
2943300016Sadrian	-1, 0,
2944300016Sadrian};
2945300016Sadrian
2946300016Sadrian/* Extracted from MMIO dump of 6.30.223.248 */
2947300016Sadrianstatic const int16_t bwn_ntab_rf_pwr_offset_2057_rev9_5g[] = {
2948300016Sadrian	-101, -94, -86, -79, -72,
2949300016Sadrian	-65, -57, -50, -42, -35,
2950300016Sadrian	-28, -21, -16, -9, -4,
2951300016Sadrian	0,
2952300016Sadrian};
2953300016Sadrian
2954300016Sadrian/* Extracted from MMIO dump of 6.30.223.248
2955300016Sadrian * Entries: 0, 26, 28, 29, 30, 31 were guessed
2956300016Sadrian */
2957300016Sadrianstatic const int16_t bwn_ntab_rf_pwr_offset_2057_rev14_2g[] = {
2958300016Sadrian	-111, -111, -111, -84, -70,
2959300016Sadrian	-59, -52, -45, -40, -36,
2960300016Sadrian	-32, -29, -26, -23, -21,
2961300016Sadrian	-18, -16, -15, -13, -11,
2962300016Sadrian	-10, -8, -7, -6, -5,
2963300016Sadrian	-4, -4, -3, -3, -2,
2964300016Sadrian	-2, -1,
2965300016Sadrian};
2966300016Sadrian
2967300016Sadrianconst uint16_t tbl_iqcal_gainparams[2][9][8] = {
2968300016Sadrian	{
2969300016Sadrian		{ 0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69 },
2970300016Sadrian		{ 0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69 },
2971300016Sadrian		{ 0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68 },
2972300016Sadrian		{ 0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67 },
2973300016Sadrian		{ 0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66 },
2974300016Sadrian		{ 0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65 },
2975300016Sadrian		{ 0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65 },
2976300016Sadrian		{ 0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65 },
2977300016Sadrian		{ 0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65 }
2978300016Sadrian	},
2979300016Sadrian	{
2980300016Sadrian		{ 0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
2981300016Sadrian		{ 0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
2982300016Sadrian		{ 0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79 },
2983300016Sadrian		{ 0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78 },
2984300016Sadrian		{ 0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78 },
2985300016Sadrian		{ 0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78 },
2986300016Sadrian		{ 0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78 },
2987300016Sadrian		{ 0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78 },
2988300016Sadrian		{ 0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78 }
2989300016Sadrian	}
2990300016Sadrian};
2991300016Sadrian
2992300016Sadrianconst struct bwn_nphy_txiqcal_ladder ladder_lo[] = {
2993300016Sadrian	{ 3, 0 },
2994300016Sadrian	{ 4, 0 },
2995300016Sadrian	{ 6, 0 },
2996300016Sadrian	{ 9, 0 },
2997300016Sadrian	{ 13, 0 },
2998300016Sadrian	{ 18, 0 },
2999300016Sadrian	{ 25, 0 },
3000300016Sadrian	{ 25, 1 },
3001300016Sadrian	{ 25, 2 },
3002300016Sadrian	{ 25, 3 },
3003300016Sadrian	{ 25, 4 },
3004300016Sadrian	{ 25, 5 },
3005300016Sadrian	{ 25, 6 },
3006300016Sadrian	{ 25, 7 },
3007300016Sadrian	{ 35, 7 },
3008300016Sadrian	{ 50, 7 },
3009300016Sadrian	{ 71, 7 },
3010300016Sadrian	{ 100, 7 }
3011300016Sadrian};
3012300016Sadrian
3013300016Sadrianconst struct bwn_nphy_txiqcal_ladder ladder_iq[] = {
3014300016Sadrian	{ 3, 0 },
3015300016Sadrian	{ 4, 0 },
3016300016Sadrian	{ 6, 0 },
3017300016Sadrian	{ 9, 0 },
3018300016Sadrian	{ 13, 0 },
3019300016Sadrian	{ 18, 0 },
3020300016Sadrian	{ 25, 0 },
3021300016Sadrian	{ 35, 0 },
3022300016Sadrian	{ 50, 0 },
3023300016Sadrian	{ 71, 0 },
3024300016Sadrian	{ 100, 0 },
3025300016Sadrian	{ 100, 1 },
3026300016Sadrian	{ 100, 2 },
3027300016Sadrian	{ 100, 3 },
3028300016Sadrian	{ 100, 4 },
3029300016Sadrian	{ 100, 5 },
3030300016Sadrian	{ 100, 6 },
3031300016Sadrian	{ 100, 7 }
3032300016Sadrian};
3033300016Sadrian
3034300016Sadrianconst uint16_t loscale[] = {
3035300016Sadrian	256, 256, 271, 271,
3036300016Sadrian	287, 256, 256, 271,
3037300016Sadrian	271, 287, 287, 304,
3038300016Sadrian	304, 256, 256, 271,
3039300016Sadrian	271, 287, 287, 304,
3040300016Sadrian	304, 322, 322, 341,
3041300016Sadrian	341, 362, 362, 383,
3042300016Sadrian	383, 256, 256, 271,
3043300016Sadrian	271, 287, 287, 304,
3044300016Sadrian	304, 322, 322, 256,
3045300016Sadrian	256, 271, 271, 287,
3046300016Sadrian	287, 304, 304, 322,
3047300016Sadrian	322, 341, 341, 362,
3048300016Sadrian	362, 256, 256, 271,
3049300016Sadrian	271, 287, 287, 304,
3050300016Sadrian	304, 322, 322, 256,
3051300016Sadrian	256, 271, 271, 287,
3052300016Sadrian	287, 304, 304, 322,
3053300016Sadrian	322, 341, 341, 362,
3054300016Sadrian	362, 256, 256, 271,
3055300016Sadrian	271, 287, 287, 304,
3056300016Sadrian	304, 322, 322, 341,
3057300016Sadrian	341, 362, 362, 383,
3058300016Sadrian	383, 406, 406, 430,
3059300016Sadrian	430, 455, 455, 482,
3060300016Sadrian	482, 511, 511, 541,
3061300016Sadrian	541, 573, 573, 607,
3062300016Sadrian	607, 643, 643, 681,
3063300016Sadrian	681, 722, 722, 764,
3064300016Sadrian	764, 810, 810, 858,
3065300016Sadrian	858, 908, 908, 962,
3066300016Sadrian	962, 1019, 1019, 256
3067300016Sadrian};
3068300016Sadrian
3069300016Sadrianconst uint16_t tbl_tx_iqlo_cal_loft_ladder_40[] = {
3070300016Sadrian	0x0200, 0x0300, 0x0400, 0x0700,
3071300016Sadrian	0x0900, 0x0c00, 0x1200, 0x1201,
3072300016Sadrian	0x1202, 0x1203, 0x1204, 0x1205,
3073300016Sadrian	0x1206, 0x1207, 0x1907, 0x2307,
3074300016Sadrian	0x3207, 0x4707
3075300016Sadrian};
3076300016Sadrian
3077300016Sadrianconst uint16_t tbl_tx_iqlo_cal_loft_ladder_20[] = {
3078300016Sadrian	0x0300, 0x0500, 0x0700, 0x0900,
3079300016Sadrian	0x0d00, 0x1100, 0x1900, 0x1901,
3080300016Sadrian	0x1902, 0x1903, 0x1904, 0x1905,
3081300016Sadrian	0x1906, 0x1907, 0x2407, 0x3207,
3082300016Sadrian	0x4607, 0x6407
3083300016Sadrian};
3084300016Sadrian
3085300016Sadrianconst uint16_t tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
3086300016Sadrian	0x0100, 0x0200, 0x0400, 0x0700,
3087300016Sadrian	0x0900, 0x0c00, 0x1200, 0x1900,
3088300016Sadrian	0x2300, 0x3200, 0x4700, 0x4701,
3089300016Sadrian	0x4702, 0x4703, 0x4704, 0x4705,
3090300016Sadrian	0x4706, 0x4707
3091300016Sadrian};
3092300016Sadrian
3093300016Sadrianconst uint16_t tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
3094300016Sadrian	0x0200, 0x0300, 0x0600, 0x0900,
3095300016Sadrian	0x0d00, 0x1100, 0x1900, 0x2400,
3096300016Sadrian	0x3200, 0x4600, 0x6400, 0x6401,
3097300016Sadrian	0x6402, 0x6403, 0x6404, 0x6405,
3098300016Sadrian	0x6406, 0x6407
3099300016Sadrian};
3100300016Sadrian
3101300016Sadrianconst uint16_t tbl_tx_iqlo_cal_startcoefs_nphyrev3[BWN_NTAB_TX_IQLO_CAL_STARTCOEFS_REV3] = { };
3102300016Sadrian
3103300016Sadrianconst uint16_t tbl_tx_iqlo_cal_startcoefs[BWN_NTAB_TX_IQLO_CAL_STARTCOEFS] = { };
3104300016Sadrian
3105300016Sadrianconst uint16_t tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
3106300016Sadrian	0x8423, 0x8323, 0x8073, 0x8256,
3107300016Sadrian	0x8045, 0x8223, 0x9423, 0x9323,
3108300016Sadrian	0x9073, 0x9256, 0x9045, 0x9223
3109300016Sadrian};
3110300016Sadrian
3111300016Sadrianconst uint16_t tbl_tx_iqlo_cal_cmds_recal[] = {
3112300016Sadrian	0x8101, 0x8253, 0x8053, 0x8234,
3113300016Sadrian	0x8034, 0x9101, 0x9253, 0x9053,
3114300016Sadrian	0x9234, 0x9034
3115300016Sadrian};
3116300016Sadrian
3117300016Sadrianconst uint16_t tbl_tx_iqlo_cal_cmds_fullcal[] = {
3118300016Sadrian	0x8123, 0x8264, 0x8086, 0x8245,
3119300016Sadrian	0x8056, 0x9123, 0x9264, 0x9086,
3120300016Sadrian	0x9245, 0x9056
3121300016Sadrian};
3122300016Sadrian
3123300016Sadrianconst uint16_t tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
3124300016Sadrian	0x8434, 0x8334, 0x8084, 0x8267,
3125300016Sadrian	0x8056, 0x8234, 0x9434, 0x9334,
3126300016Sadrian	0x9084, 0x9267, 0x9056, 0x9234
3127300016Sadrian};
3128300016Sadrian
3129300016Sadrianconst int16_t tbl_tx_filter_coef_rev4[7][15] = {
3130300016Sadrian	{  -377,   137,  -407,   208, -1527,
3131300016Sadrian	    956,    93,   186,    93,   230,
3132300016Sadrian	    -44,   230,   201,  -191,   201 },
3133300016Sadrian	{   -77,    20,   -98,    49,   -93,
3134300016Sadrian	     60,    56,   111,    56,    26,
3135300016Sadrian	     -5,    26,    34,   -32,    34 },
3136300016Sadrian	{  -360,   164,  -376,   164, -1533,
3137300016Sadrian	    576,   308,  -314,   308,   121,
3138300016Sadrian	    -73,   121,    91,   124,    91 },
3139300016Sadrian	{  -295,   200,  -363,   142, -1391,
3140300016Sadrian	    826,   151,   301,   151,   151,
3141300016Sadrian	    301,   151,   602,  -752,   602 },
3142300016Sadrian	{   -92,    58,   -96,    49,  -104,
3143300016Sadrian	     44,    17,    35,    17,    12,
3144300016Sadrian	     25,    12,    13,    27,    13 },
3145300016Sadrian	{  -375,   136,  -399,   209, -1479,
3146300016Sadrian	    949,   130,   260,   130,   230,
3147300016Sadrian	    -44,   230,   201,  -191,   201 },
3148300016Sadrian	{ 0xed9,  0xc8, 0xe95,  0x8e, 0xa91,
3149300016Sadrian	  0x33a,  0x97, 0x12d,  0x97,  0x97,
3150300016Sadrian	  0x12d,  0x97, 0x25a, 0xd10, 0x25a }
3151300016Sadrian};
3152300016Sadrian
3153300016Sadrian/* addr0,  addr1,  bmask,  shift */
3154300016Sadrianconst struct bwn_nphy_rf_control_override_rev2 tbl_rf_control_override_rev2[] = {
3155300016Sadrian	{ 0x78, 0x78, 0x0038,  3 }, /* for field == 0x0002 (fls == 2) */
3156300016Sadrian	{ 0x7A, 0x7D, 0x0001,  0 }, /* for field == 0x0004 (fls == 3) */
3157300016Sadrian	{ 0x7A, 0x7D, 0x0002,  1 }, /* for field == 0x0008 (fls == 4) */
3158300016Sadrian	{ 0x7A, 0x7D, 0x0004,  2 }, /* for field == 0x0010 (fls == 5) */
3159300016Sadrian	{ 0x7A, 0x7D, 0x0030,  4 }, /* for field == 0x0020 (fls == 6) */
3160300016Sadrian	{ 0x7A, 0x7D, 0x00C0,  6 }, /* for field == 0x0040 (fls == 7) */
3161300016Sadrian	{ 0x7A, 0x7D, 0x0100,  8 }, /* for field == 0x0080 (fls == 8) */
3162300016Sadrian	{ 0x7A, 0x7D, 0x0200,  9 }, /* for field == 0x0100 (fls == 9) */
3163300016Sadrian	{ 0x78, 0x78, 0x0004,  2 }, /* for field == 0x0200 (fls == 10) */
3164300016Sadrian	{ 0x7B, 0x7E, 0x01FF,  0 }, /* for field == 0x0400 (fls == 11) */
3165300016Sadrian	{ 0x7C, 0x7F, 0x01FF,  0 }, /* for field == 0x0800 (fls == 12) */
3166300016Sadrian	{ 0x78, 0x78, 0x0100,  8 }, /* for field == 0x1000 (fls == 13) */
3167300016Sadrian	{ 0x78, 0x78, 0x0200,  9 }, /* for field == 0x2000 (fls == 14) */
3168300016Sadrian	{ 0x78, 0x78, 0xF000, 12 }  /* for field == 0x4000 (fls == 15) */
3169300016Sadrian};
3170300016Sadrian
3171300016Sadrian/* val_mask, val_shift, en_addr0, val_addr0, en_addr1, val_addr1 */
3172300016Sadrianconst struct bwn_nphy_rf_control_override_rev3 tbl_rf_control_override_rev3[] = {
3173300016Sadrian	{ 0x8000, 15, 0xE5, 0xF9, 0xE6, 0xFB }, /* field == 0x0001 (fls 1) */
3174300016Sadrian	{ 0x0001,  0, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0002 (fls 2) */
3175300016Sadrian	{ 0x0002,  1, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0004 (fls 3) */
3176300016Sadrian	{ 0x0004,  2, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0008 (fls 4) */
3177300016Sadrian	{ 0x0010,  4, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0010 (fls 5) */
3178300016Sadrian	{ 0x0020,  5, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0020 (fls 6) */
3179300016Sadrian	{ 0x0040,  6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0040 (fls 7) */
3180300016Sadrian	{ 0x0080,  7, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0080 (fls 8) */
3181300016Sadrian	{ 0x0100,  8, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0100 (fls 9) */
3182300016Sadrian	{ 0x0007,  0, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0200 (fls 10) */
3183300016Sadrian	{ 0x0070,  4, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0400 (fls 11) */
3184300016Sadrian	{ 0xE000, 13, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0800 (fls 12) */
3185300016Sadrian	{ 0xFFFF,  0, 0xE7, 0x7B, 0xEC, 0x7E }, /* field == 0x1000 (fls 13) */
3186300016Sadrian	{ 0xFFFF,  0, 0xE7, 0x7C, 0xEC, 0x7F }, /* field == 0x2000 (fls 14) */
3187300016Sadrian	{ 0x00C0,  6, 0xE7, 0xF9, 0xEC, 0xFB }  /* field == 0x4000 (fls 15) */
3188300016Sadrian};
3189300016Sadrian
3190300016Sadrian/* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
3191300016Sadrianstatic const struct bwn_nphy_rf_control_override_rev7
3192300016Sadrian			tbl_rf_control_override_rev7_over0[] = {
3193300016Sadrian	{ 0x0004, 0x07A, 0x07D, 0x0002, 1 },
3194300016Sadrian	{ 0x0008, 0x07A, 0x07D, 0x0004, 2 },
3195300016Sadrian	{ 0x0010, 0x07A, 0x07D, 0x0010, 4 },
3196300016Sadrian	{ 0x0020, 0x07A, 0x07D, 0x0020, 5 },
3197300016Sadrian	{ 0x0040, 0x07A, 0x07D, 0x0040, 6 },
3198300016Sadrian	{ 0x0080, 0x07A, 0x07D, 0x0080, 7 },
3199300016Sadrian	{ 0x0400, 0x0F8, 0x0FA, 0x0070, 4 },
3200300016Sadrian	{ 0x0800, 0x07B, 0x07E, 0xFFFF, 0 },
3201300016Sadrian	{ 0x1000, 0x07C, 0x07F, 0xFFFF, 0 },
3202300016Sadrian	{ 0x6000, 0x348, 0x349, 0x00FF, 0 },
3203300016Sadrian	{ 0x2000, 0x348, 0x349, 0x000F, 0 },
3204300016Sadrian};
3205300016Sadrian
3206300016Sadrian/* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
3207300016Sadrianstatic const struct bwn_nphy_rf_control_override_rev7
3208300016Sadrian			tbl_rf_control_override_rev7_over1[] = {
3209300016Sadrian	{ 0x0002, 0x340, 0x341, 0x0002, 1 },
3210300016Sadrian	{ 0x0008, 0x340, 0x341, 0x0008, 3 },
3211300016Sadrian	{ 0x0020, 0x340, 0x341, 0x0020, 5 },
3212300016Sadrian	{ 0x0010, 0x340, 0x341, 0x0010, 4 },
3213300016Sadrian	{ 0x0004, 0x340, 0x341, 0x0004, 2 },
3214300016Sadrian	{ 0x0080, 0x340, 0x341, 0x0700, 8 },
3215300016Sadrian	{ 0x0800, 0x340, 0x341, 0x4000, 14 },
3216300016Sadrian	{ 0x0400, 0x340, 0x341, 0x2000, 13 },
3217300016Sadrian	{ 0x0200, 0x340, 0x341, 0x0800, 12 },
3218300016Sadrian	{ 0x0100, 0x340, 0x341, 0x0100, 11 },
3219300016Sadrian	{ 0x0040, 0x340, 0x341, 0x0040, 6 },
3220300016Sadrian	{ 0x0001, 0x340, 0x341, 0x0001, 0 },
3221300016Sadrian};
3222300016Sadrian
3223300016Sadrian/* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
3224300016Sadrianstatic const struct bwn_nphy_rf_control_override_rev7
3225300016Sadrian			tbl_rf_control_override_rev7_over2[] = {
3226300016Sadrian	{ 0x0008, 0x344, 0x345, 0x0008, 3 },
3227300016Sadrian	{ 0x0002, 0x344, 0x345, 0x0002, 1 },
3228300016Sadrian	{ 0x0001, 0x344, 0x345, 0x0001, 0 },
3229300016Sadrian	{ 0x0004, 0x344, 0x345, 0x0004, 2 },
3230300016Sadrian	{ 0x0010, 0x344, 0x345, 0x0010, 4 },
3231300016Sadrian};
3232300016Sadrian
3233300016Sadrianstatic struct bwn_nphy_gain_ctl_workaround_entry nphy_gain_ctl_wa_phy6_radio11_ghz2 = {
3234300016Sadrian	{ 10, 14, 19, 27 },
3235300016Sadrian	{ -5, 6, 10, 15 },
3236300016Sadrian	{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
3237300016Sadrian	{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
3238300016Sadrian	0x427E,
3239300016Sadrian	{ 0x413F, 0x413F, 0x413F, 0x413F },
3240300016Sadrian	0x007E, 0x0066, 0x1074,
3241300016Sadrian	0x18, 0x18, 0x18,
3242300016Sadrian	0x01D0, 0x5,
3243300016Sadrian};
3244300016Sadrianstatic struct bwn_nphy_gain_ctl_workaround_entry nphy_gain_ctl_workaround[2][4] = {
3245300016Sadrian	{ /* 2GHz */
3246300016Sadrian		{ /* PHY rev 3 */
3247300016Sadrian			{ 7, 11, 16, 23 },
3248300016Sadrian			{ -5, 6, 10, 14 },
3249300016Sadrian			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
3250300016Sadrian			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
3251300016Sadrian			0x627E,
3252300016Sadrian			{ 0x613F, 0x613F, 0x613F, 0x613F },
3253300016Sadrian			0x107E, 0x0066, 0x0074,
3254300016Sadrian			0x18, 0x18, 0x18,
3255300016Sadrian			0x020D, 0x5,
3256300016Sadrian		},
3257300016Sadrian		{ /* PHY rev 4 */
3258300016Sadrian			{ 8, 12, 17, 25 },
3259300016Sadrian			{ -5, 6, 10, 14 },
3260300016Sadrian			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
3261300016Sadrian			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
3262300016Sadrian			0x527E,
3263300016Sadrian			{ 0x513F, 0x513F, 0x513F, 0x513F },
3264300016Sadrian			0x007E, 0x0066, 0x0074,
3265300016Sadrian			0x18, 0x18, 0x18,
3266300016Sadrian			0x01A1, 0x5,
3267300016Sadrian		},
3268300016Sadrian		{ /* PHY rev 5 */
3269300016Sadrian			{ 9, 13, 18, 26 },
3270300016Sadrian			{ -3, 7, 11, 16 },
3271300016Sadrian			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
3272300016Sadrian			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
3273300016Sadrian			0x427E, /* invalid for external LNA! */
3274300016Sadrian			{ 0x413F, 0x413F, 0x413F, 0x413F }, /* invalid for external LNA! */
3275300016Sadrian			0x1076, 0x0066, 0x0000, /* low is invalid (the last one) */
3276300016Sadrian			0x18, 0x18, 0x18,
3277300016Sadrian			0x01D0, 0x9,
3278300016Sadrian		},
3279300016Sadrian		{ /* PHY rev 6+ */
3280300016Sadrian			{ 8, 13, 18, 25 },
3281300016Sadrian			{ -5, 6, 10, 14 },
3282300016Sadrian			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
3283300016Sadrian			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
3284300016Sadrian			0x527E, /* invalid for external LNA! */
3285300016Sadrian			{ 0x513F, 0x513F, 0x513F, 0x513F }, /* invalid for external LNA! */
3286300016Sadrian			0x007E, 0x0066, 0x0000, /* low is invalid (the last one) */
3287300016Sadrian			0x18, 0x18, 0x18,
3288300016Sadrian			0x01D0, 0x5,
3289300016Sadrian		},
3290300016Sadrian	},
3291300016Sadrian	{ /* 5GHz */
3292300016Sadrian		{ /* PHY rev 3 */
3293300016Sadrian			{ 7, 11, 17, 23 },
3294300016Sadrian			{ -6, 2, 6, 10 },
3295300016Sadrian			{ 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 },
3296300016Sadrian			{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
3297300016Sadrian			0x52DE,
3298300016Sadrian			{ 0x516F, 0x516F, 0x516F, 0x516F },
3299300016Sadrian			0x00DE, 0x00CA, 0x00CC,
3300300016Sadrian			0x1E, 0x1E, 0x1E,
3301300016Sadrian			0x01A1, 25,
3302300016Sadrian		},
3303300016Sadrian		{ /* PHY rev 4 */
3304300016Sadrian			{ 8, 12, 18, 23 },
3305300016Sadrian			{ -5, 2, 6, 10 },
3306300016Sadrian			{ 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
3307300016Sadrian			{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
3308300016Sadrian			0x629E,
3309300016Sadrian			{ 0x614F, 0x614F, 0x614F, 0x614F },
3310300016Sadrian			0x029E, 0x1084, 0x0086,
3311300016Sadrian			0x24, 0x24, 0x24,
3312300016Sadrian			0x0107, 25,
3313300016Sadrian		},
3314300016Sadrian		{ /* PHY rev 5 */
3315300016Sadrian			{ 6, 10, 16, 21 },
3316300016Sadrian			{ -7, 0, 4, 8 },
3317300016Sadrian			{ 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
3318300016Sadrian			{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
3319300016Sadrian			0x729E,
3320300016Sadrian			{ 0x714F, 0x714F, 0x714F, 0x714F },
3321300016Sadrian			0x029E, 0x2084, 0x2086,
3322300016Sadrian			0x24, 0x24, 0x24,
3323300016Sadrian			0x00A9, 25,
3324300016Sadrian		},
3325300016Sadrian		{ /* PHY rev 6+ */
3326300016Sadrian			{ 6, 10, 16, 21 },
3327300016Sadrian			{ -7, 0, 4, 8 },
3328300016Sadrian			{ 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
3329300016Sadrian			{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
3330300016Sadrian			0x729E,
3331300016Sadrian			{ 0x714F, 0x714F, 0x714F, 0x714F },
3332300016Sadrian			0x029E, 0x2084, 0x2086,
3333300016Sadrian			0x24, 0x24, 0x24, /* low is invalid for radio rev 11! */
3334300016Sadrian			0x00F0, 25,
3335300016Sadrian		},
3336300016Sadrian	},
3337300016Sadrian};
3338300016Sadrian
3339300016Sadrianstatic inline void assert_ntab_array_sizes(void)
3340300016Sadrian{
3341300016Sadrian#undef check
3342300016Sadrian#define check(table, size)	\
3343300016Sadrian	CTASSERT(nitems(bwn_ntab_##table) == BWN_NTAB_##size##_SIZE)
3344300016Sadrian
3345300016Sadrian	check(adjustpower0, C0_ADJPLT);
3346300016Sadrian	check(adjustpower1, C1_ADJPLT);
3347300016Sadrian	check(bdi, BDI);
3348300016Sadrian	check(channelest, CHANEST);
3349300016Sadrian	check(estimatepowerlt0, C0_ESTPLT);
3350300016Sadrian	check(estimatepowerlt1, C1_ESTPLT);
3351300016Sadrian	check(framelookup, FRAMELT);
3352300016Sadrian	check(framestruct, FRAMESTRUCT);
3353300016Sadrian	check(gainctl0, C0_GAINCTL);
3354300016Sadrian	check(gainctl1, C1_GAINCTL);
3355300016Sadrian	check(intlevel, INTLEVEL);
3356300016Sadrian	check(iqlt0, C0_IQLT);
3357300016Sadrian	check(iqlt1, C1_IQLT);
3358300016Sadrian	check(loftlt0, C0_LOFEEDTH);
3359300016Sadrian	check(loftlt1, C1_LOFEEDTH);
3360300016Sadrian	check(mcs, MCS);
3361300016Sadrian	check(noisevar10, NOISEVAR10);
3362300016Sadrian	check(noisevar11, NOISEVAR11);
3363300016Sadrian	check(pilot, PILOT);
3364300016Sadrian	check(pilotlt, PILOTLT);
3365300016Sadrian	check(tdi20a0, TDI20A0);
3366300016Sadrian	check(tdi20a1, TDI20A1);
3367300016Sadrian	check(tdi40a0, TDI40A0);
3368300016Sadrian	check(tdi40a1, TDI40A1);
3369300016Sadrian	check(tdtrn, TDTRN);
3370300016Sadrian	check(tmap, TMAP);
3371300016Sadrian
3372300016Sadrian#undef check
3373300016Sadrian}
3374300016Sadrian
3375300016Sadrianuint32_t bwn_ntab_read(struct bwn_mac *mac, uint32_t offset)
3376300016Sadrian{
3377300016Sadrian	uint32_t type, value;
3378300016Sadrian
3379300016Sadrian	type = offset & BWN_NTAB_TYPEMASK;
3380300016Sadrian	offset &= ~BWN_NTAB_TYPEMASK;
3381300016Sadrian
3382300016Sadrian	KASSERT(offset <= 0xFFFF, ("%s: invalid offset (%d)\n",
3383300016Sadrian	    __func__, offset));
3384300016Sadrian
3385300016Sadrian	switch (type) {
3386300016Sadrian	case BWN_NTAB_8BIT:
3387300016Sadrian		BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3388300016Sadrian		value = BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO) & 0xFF;
3389300016Sadrian		break;
3390300016Sadrian	case BWN_NTAB_16BIT:
3391300016Sadrian		BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3392300016Sadrian		value = BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3393300016Sadrian		break;
3394300016Sadrian	case BWN_NTAB_32BIT:
3395300016Sadrian		BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3396300016Sadrian		value = BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3397300016Sadrian		value |= BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATAHI) << 16;
3398300016Sadrian		break;
3399300016Sadrian	default:
3400300016Sadrian		KASSERT(0, ("%s: invalid type", __func__));
3401300016Sadrian		value = 0;
3402300016Sadrian	}
3403300016Sadrian
3404300016Sadrian	return value;
3405300016Sadrian}
3406300016Sadrian
3407300016Sadrianvoid bwn_ntab_read_bulk(struct bwn_mac *mac, uint32_t offset,
3408300016Sadrian			 unsigned int nr_elements, void *_data)
3409300016Sadrian{
3410300016Sadrian	struct bwn_softc *sc = mac->mac_sc;
3411300016Sadrian	uint32_t type;
3412300016Sadrian	uint8_t *data = _data;
3413300016Sadrian	unsigned int i;
3414300016Sadrian
3415300016Sadrian	type = offset & BWN_NTAB_TYPEMASK;
3416300016Sadrian	offset &= ~BWN_NTAB_TYPEMASK;
3417300016Sadrian	KASSERT(offset <= 0xFFFF, ("%s: invalid offset (%d)\n",
3418300016Sadrian	    __func__, offset));
3419300016Sadrian
3420300016Sadrian	BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3421300016Sadrian
3422300016Sadrian	for (i = 0; i < nr_elements; i++) {
3423300016Sadrian		/* Auto increment broken + caching issue on BCM43224? */
3424300016Sadrian		if (siba_get_chipid(sc->sc_dev) == 43224 &&
3425300016Sadrian		    siba_get_revid(sc->sc_dev) == 1) {
3426300016Sadrian			BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3427300016Sadrian			BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset + i);
3428300016Sadrian		}
3429300016Sadrian
3430300016Sadrian		switch (type) {
3431300016Sadrian		case BWN_NTAB_8BIT:
3432300016Sadrian			*data = BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO) & 0xFF;
3433300016Sadrian			data++;
3434300016Sadrian			break;
3435300016Sadrian		case BWN_NTAB_16BIT:
3436300016Sadrian			*((uint16_t *)data) = BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3437300016Sadrian			data += 2;
3438300016Sadrian			break;
3439300016Sadrian		case BWN_NTAB_32BIT:
3440300016Sadrian			*((uint32_t *)data) =
3441300016Sadrian				BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3442300016Sadrian			*((uint32_t *)data) |=
3443300016Sadrian				BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATAHI) << 16;
3444300016Sadrian			data += 4;
3445300016Sadrian			break;
3446300016Sadrian		default:
3447300016Sadrian			KASSERT(0, ("%s: called; invalid type (%d)\n",
3448300016Sadrian			    __func__, type));
3449300016Sadrian		}
3450300016Sadrian	}
3451300016Sadrian}
3452300016Sadrian
3453300016Sadrianvoid bwn_ntab_write(struct bwn_mac *mac, uint32_t offset, uint32_t value)
3454300016Sadrian{
3455300016Sadrian	uint32_t type, orig;
3456300016Sadrian
3457300016Sadrian	type = offset & BWN_NTAB_TYPEMASK;
3458300016Sadrian	orig = offset;
3459300016Sadrian	offset &= 0xFFFF;
3460300016Sadrian
3461300016Sadrian	switch (type) {
3462300016Sadrian	case BWN_NTAB_8BIT:
3463300016Sadrian		KASSERT(value <= 0xFF, ("%s: 8bit: invalid value (%d) (0x%08x)\n",
3464300016Sadrian		    __func__, value, orig));
3465300016Sadrian		BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3466300016Sadrian		BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO, value);
3467300016Sadrian		break;
3468300016Sadrian	case BWN_NTAB_16BIT:
3469300016Sadrian		KASSERT(value <= 0xFFFF, ("%s: 8bit: invalid value (%d) (0x%08x)\n",
3470300016Sadrian		    __func__, value, orig));
3471300016Sadrian		BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3472300016Sadrian		BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO, value);
3473300016Sadrian		break;
3474300016Sadrian	case BWN_NTAB_32BIT:
3475300016Sadrian		BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3476300016Sadrian		BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATAHI, value >> 16);
3477300016Sadrian		BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO, value & 0xFFFF);
3478300016Sadrian		break;
3479300016Sadrian	default:
3480300016Sadrian		KASSERT(0, ("%s: called; invalid type (%d)\n",
3481300016Sadrian		    __func__, type));
3482300016Sadrian	}
3483300016Sadrian
3484300016Sadrian	return;
3485300016Sadrian
3486300016Sadrian	/* Some compiletime assertions... */
3487300016Sadrian	assert_ntab_array_sizes();
3488300016Sadrian}
3489300016Sadrian
3490300016Sadrianvoid bwn_ntab_write_bulk(struct bwn_mac *mac, uint32_t offset,
3491300016Sadrian			  unsigned int nr_elements, const void *_data)
3492300016Sadrian{
3493300016Sadrian	struct bwn_softc *sc = mac->mac_sc;
3494300016Sadrian	uint32_t type, value;
3495300016Sadrian	uint32_t orig;
3496300016Sadrian	const uint8_t *data = _data;
3497300016Sadrian	unsigned int i;
3498300016Sadrian
3499300016Sadrian	type = offset & BWN_NTAB_TYPEMASK;
3500300016Sadrian	orig = offset;
3501300016Sadrian	offset &= ~BWN_NTAB_TYPEMASK;
3502300016Sadrian	KASSERT(offset <= 0xFFFF, ("%s: invalid offset (%d)\n",
3503300016Sadrian	    __func__, offset));
3504300016Sadrian
3505300016Sadrian	BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset);
3506300016Sadrian
3507300016Sadrian	for (i = 0; i < nr_elements; i++) {
3508300016Sadrian		/* Auto increment broken + caching issue on BCM43224? */
3509300016Sadrian		if ((offset >> 10) == 9 &&
3510300016Sadrian		    siba_get_chipid(sc->sc_dev) == 43224 &&
3511300016Sadrian		    siba_get_revid(sc->sc_dev) == 1) {
3512300016Sadrian			BWN_PHY_READ(mac, BWN_NPHY_TABLE_DATALO);
3513300016Sadrian			BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_ADDR, offset + i);
3514300016Sadrian		}
3515300016Sadrian
3516300016Sadrian		switch (type) {
3517300016Sadrian		case BWN_NTAB_8BIT:
3518300016Sadrian			value = *data;
3519300016Sadrian			data++;
3520300016Sadrian			KASSERT(value <= 0xFF, ("%s: 8bit: invalid value (%d) (0x%08x)\n",
3521300016Sadrian			    __func__, value, orig));
3522300016Sadrian			BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO, value);
3523300016Sadrian			break;
3524300016Sadrian		case BWN_NTAB_16BIT:
3525300016Sadrian			value = *((const uint16_t *)data);
3526300016Sadrian			data += 2;
3527300016Sadrian			KASSERT(value <= 0xFFFF, ("%s: 16bit: invalid value (%d) (0x%08x)\n",
3528300016Sadrian			    __func__, value, orig));
3529300016Sadrian			BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO, value);
3530300016Sadrian			break;
3531300016Sadrian		case BWN_NTAB_32BIT:
3532300016Sadrian			value = *((const uint32_t *)data);
3533300016Sadrian			data += 4;
3534300016Sadrian			BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATAHI, value >> 16);
3535300016Sadrian			BWN_PHY_WRITE(mac, BWN_NPHY_TABLE_DATALO,
3536300016Sadrian					value & 0xFFFF);
3537300016Sadrian			break;
3538300016Sadrian		default:
3539300016Sadrian			KASSERT(0, ("%s: invalid type (%d)\n", __func__,
3540300016Sadrian			    type));
3541300016Sadrian		}
3542300016Sadrian	}
3543300016Sadrian}
3544300016Sadrian
3545300016Sadrian#define ntab_upload(mac, offset, data) do { \
3546300016Sadrian		bwn_ntab_write_bulk(mac, offset, nitems(data), data); \
3547300016Sadrian	} while (0)
3548300016Sadrian
3549300016Sadrianstatic void bwn_nphy_tables_init_shared_lut(struct bwn_mac *mac)
3550300016Sadrian{
3551300016Sadrian	ntab_upload(mac, BWN_NTAB_C0_ESTPLT_R3, bwn_ntab_estimatepowerlt0_r3);
3552300016Sadrian	ntab_upload(mac, BWN_NTAB_C1_ESTPLT_R3, bwn_ntab_estimatepowerlt1_r3);
3553300016Sadrian	ntab_upload(mac, BWN_NTAB_C0_ADJPLT_R3, bwn_ntab_adjustpower0_r3);
3554300016Sadrian	ntab_upload(mac, BWN_NTAB_C1_ADJPLT_R3, bwn_ntab_adjustpower1_r3);
3555300016Sadrian	ntab_upload(mac, BWN_NTAB_C0_GAINCTL_R3, bwn_ntab_gainctl0_r3);
3556300016Sadrian	ntab_upload(mac, BWN_NTAB_C1_GAINCTL_R3, bwn_ntab_gainctl1_r3);
3557300016Sadrian	ntab_upload(mac, BWN_NTAB_C0_IQLT_R3, bwn_ntab_iqlt0_r3);
3558300016Sadrian	ntab_upload(mac, BWN_NTAB_C1_IQLT_R3, bwn_ntab_iqlt1_r3);
3559300016Sadrian	ntab_upload(mac, BWN_NTAB_C0_LOFEEDTH_R3, bwn_ntab_loftlt0_r3);
3560300016Sadrian	ntab_upload(mac, BWN_NTAB_C1_LOFEEDTH_R3, bwn_ntab_loftlt1_r3);
3561300016Sadrian}
3562300016Sadrian
3563300016Sadrianstatic void bwn_nphy_tables_init_rev7_volatile(struct bwn_mac *mac)
3564300016Sadrian{
3565300016Sadrian	struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3566300016Sadrian	struct bwn_softc *sc = mac->mac_sc;
3567300016Sadrian	uint8_t antswlut;
3568300016Sadrian	int core, offset, i;
3569300016Sadrian
3570300016Sadrian	const int antswlut0_offsets[] = { 0, 4, 8, }; /* Offsets for values */
3571300016Sadrian	const uint8_t antswlut0_values[][3] = {
3572300016Sadrian		{ 0x2, 0x12, 0x8 }, /* Core 0 */
3573300016Sadrian		{ 0x2, 0x18, 0x2 }, /* Core 1 */
3574300016Sadrian	};
3575300016Sadrian
3576300016Sadrian	if (IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan))
3577300016Sadrian		antswlut = siba_sprom_get_fem_5ghz_antswlut(sc->sc_dev);
3578300016Sadrian	else
3579300016Sadrian		antswlut = siba_sprom_get_fem_2ghz_antswlut(sc->sc_dev);
3580300016Sadrian
3581300016Sadrian	switch (antswlut) {
3582300016Sadrian	case 0:
3583300016Sadrian		for (core = 0; core < 2; core++) {
3584300016Sadrian			for (i = 0; i < nitems(antswlut0_values[0]); i++) {
3585300016Sadrian				offset = core ? 0x20 : 0x00;
3586300016Sadrian				offset += antswlut0_offsets[i];
3587300016Sadrian				bwn_ntab_write(mac, BWN_NTAB8(9, offset),
3588300016Sadrian					       antswlut0_values[core][i]);
3589300016Sadrian			}
3590300016Sadrian		}
3591300016Sadrian		break;
3592300016Sadrian	default:
3593300016Sadrian		BWN_ERRPRINTF(mac->mac_sc, "Unsupported antswlut: %d\n", antswlut);
3594300016Sadrian		break;
3595300016Sadrian	}
3596300016Sadrian}
3597300016Sadrian
3598300016Sadrianstatic void bwn_nphy_tables_init_rev16(struct bwn_mac *mac)
3599300016Sadrian{
3600300016Sadrian	/* Static tables */
3601300016Sadrian	if (mac->mac_phy.phy_do_full_init) {
3602300016Sadrian		ntab_upload(mac, BWN_NTAB_NOISEVAR_R7, bwn_ntab_noisevar_r7);
3603300016Sadrian		bwn_nphy_tables_init_shared_lut(mac);
3604300016Sadrian	}
3605300016Sadrian
3606300016Sadrian	/* Volatile tables */
3607300016Sadrian	bwn_nphy_tables_init_rev7_volatile(mac);
3608300016Sadrian}
3609300016Sadrian
3610300016Sadrianstatic void bwn_nphy_tables_init_rev7(struct bwn_mac *mac)
3611300016Sadrian{
3612300016Sadrian	/* Static tables */
3613300016Sadrian	if (mac->mac_phy.phy_do_full_init) {
3614300016Sadrian		ntab_upload(mac, BWN_NTAB_FRAMESTRUCT_R3, bwn_ntab_framestruct_r3);
3615300016Sadrian		ntab_upload(mac, BWN_NTAB_PILOT_R3, bwn_ntab_pilot_r3);
3616300016Sadrian		ntab_upload(mac, BWN_NTAB_TMAP_R7, bwn_ntab_tmap_r7);
3617300016Sadrian		ntab_upload(mac, BWN_NTAB_INTLEVEL_R3, bwn_ntab_intlevel_r3);
3618300016Sadrian		ntab_upload(mac, BWN_NTAB_TDTRN_R3, bwn_ntab_tdtrn_r3);
3619300016Sadrian		ntab_upload(mac, BWN_NTAB_NOISEVAR_R7, bwn_ntab_noisevar_r7);
3620300016Sadrian		ntab_upload(mac, BWN_NTAB_MCS_R3, bwn_ntab_mcs_r3);
3621300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI20A0_R3, bwn_ntab_tdi20a0_r3);
3622300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI20A1_R3, bwn_ntab_tdi20a1_r3);
3623300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI40A0_R3, bwn_ntab_tdi40a0_r3);
3624300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI40A1_R3, bwn_ntab_tdi40a1_r3);
3625300016Sadrian		ntab_upload(mac, BWN_NTAB_PILOTLT_R3, bwn_ntab_pilotlt_r3);
3626300016Sadrian		ntab_upload(mac, BWN_NTAB_CHANEST_R3, bwn_ntab_channelest_r3);
3627300016Sadrian		ntab_upload(mac, BWN_NTAB_FRAMELT_R3, bwn_ntab_framelookup_r3);
3628300016Sadrian		bwn_nphy_tables_init_shared_lut(mac);
3629300016Sadrian	}
3630300016Sadrian
3631300016Sadrian	/* Volatile tables */
3632300016Sadrian	bwn_nphy_tables_init_rev7_volatile(mac);
3633300016Sadrian}
3634300016Sadrian
3635300016Sadrianstatic void bwn_nphy_tables_init_rev3(struct bwn_mac *mac)
3636300016Sadrian{
3637300016Sadrian	struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3638300016Sadrian	struct bwn_softc *sc = mac->mac_sc;
3639300016Sadrian	uint8_t antswlut;
3640300016Sadrian
3641300016Sadrian	if (IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan))
3642300016Sadrian		antswlut = siba_sprom_get_fem_5ghz_antswlut(sc->sc_dev);
3643300016Sadrian	else
3644300016Sadrian		antswlut = siba_sprom_get_fem_2ghz_antswlut(sc->sc_dev);
3645300016Sadrian
3646300016Sadrian	/* Static tables */
3647300016Sadrian	if (mac->mac_phy.phy_do_full_init) {
3648300016Sadrian		ntab_upload(mac, BWN_NTAB_FRAMESTRUCT_R3, bwn_ntab_framestruct_r3);
3649300016Sadrian		ntab_upload(mac, BWN_NTAB_PILOT_R3, bwn_ntab_pilot_r3);
3650300016Sadrian		ntab_upload(mac, BWN_NTAB_TMAP_R3, bwn_ntab_tmap_r3);
3651300016Sadrian		ntab_upload(mac, BWN_NTAB_INTLEVEL_R3, bwn_ntab_intlevel_r3);
3652300016Sadrian		ntab_upload(mac, BWN_NTAB_TDTRN_R3, bwn_ntab_tdtrn_r3);
3653300016Sadrian		ntab_upload(mac, BWN_NTAB_NOISEVAR_R3, bwn_ntab_noisevar_r3);
3654300016Sadrian		ntab_upload(mac, BWN_NTAB_MCS_R3, bwn_ntab_mcs_r3);
3655300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI20A0_R3, bwn_ntab_tdi20a0_r3);
3656300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI20A1_R3, bwn_ntab_tdi20a1_r3);
3657300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI40A0_R3, bwn_ntab_tdi40a0_r3);
3658300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI40A1_R3, bwn_ntab_tdi40a1_r3);
3659300016Sadrian		ntab_upload(mac, BWN_NTAB_PILOTLT_R3, bwn_ntab_pilotlt_r3);
3660300016Sadrian		ntab_upload(mac, BWN_NTAB_CHANEST_R3, bwn_ntab_channelest_r3);
3661300016Sadrian		ntab_upload(mac, BWN_NTAB_FRAMELT_R3, bwn_ntab_framelookup_r3);
3662300016Sadrian		bwn_nphy_tables_init_shared_lut(mac);
3663300016Sadrian	}
3664300016Sadrian
3665300016Sadrian	/* Volatile tables */
3666300016Sadrian	if (antswlut < nitems(bwn_ntab_antswctl_r3))
3667300016Sadrian		ntab_upload(mac, BWN_NTAB_ANT_SW_CTL_R3,
3668300016Sadrian			    bwn_ntab_antswctl_r3[antswlut]);
3669300016Sadrian	else
3670300016Sadrian		KASSERT(0, ("%s: antswlut out of bounds (%d)\n",
3671300016Sadrian		    __func__, antswlut));
3672300016Sadrian}
3673300016Sadrian
3674300016Sadrianstatic void bwn_nphy_tables_init_rev0(struct bwn_mac *mac)
3675300016Sadrian{
3676300016Sadrian	/* Static tables */
3677300016Sadrian	if (mac->mac_phy.phy_do_full_init) {
3678300016Sadrian		ntab_upload(mac, BWN_NTAB_FRAMESTRUCT, bwn_ntab_framestruct);
3679300016Sadrian		ntab_upload(mac, BWN_NTAB_FRAMELT, bwn_ntab_framelookup);
3680300016Sadrian		ntab_upload(mac, BWN_NTAB_TMAP, bwn_ntab_tmap);
3681300016Sadrian		ntab_upload(mac, BWN_NTAB_TDTRN, bwn_ntab_tdtrn);
3682300016Sadrian		ntab_upload(mac, BWN_NTAB_INTLEVEL, bwn_ntab_intlevel);
3683300016Sadrian		ntab_upload(mac, BWN_NTAB_PILOT, bwn_ntab_pilot);
3684300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI20A0, bwn_ntab_tdi20a0);
3685300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI20A1, bwn_ntab_tdi20a1);
3686300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI40A0, bwn_ntab_tdi40a0);
3687300016Sadrian		ntab_upload(mac, BWN_NTAB_TDI40A1, bwn_ntab_tdi40a1);
3688300016Sadrian		ntab_upload(mac, BWN_NTAB_CHANEST, bwn_ntab_channelest);
3689300016Sadrian		ntab_upload(mac, BWN_NTAB_MCS, bwn_ntab_mcs);
3690300016Sadrian		ntab_upload(mac, BWN_NTAB_NOISEVAR10, bwn_ntab_noisevar10);
3691300016Sadrian		ntab_upload(mac, BWN_NTAB_NOISEVAR11, bwn_ntab_noisevar11);
3692300016Sadrian	}
3693300016Sadrian
3694300016Sadrian	/* Volatile tables */
3695300016Sadrian	ntab_upload(mac, BWN_NTAB_BDI, bwn_ntab_bdi);
3696300016Sadrian	ntab_upload(mac, BWN_NTAB_PILOTLT, bwn_ntab_pilotlt);
3697300016Sadrian	ntab_upload(mac, BWN_NTAB_C0_GAINCTL, bwn_ntab_gainctl0);
3698300016Sadrian	ntab_upload(mac, BWN_NTAB_C1_GAINCTL, bwn_ntab_gainctl1);
3699300016Sadrian	ntab_upload(mac, BWN_NTAB_C0_ESTPLT, bwn_ntab_estimatepowerlt0);
3700300016Sadrian	ntab_upload(mac, BWN_NTAB_C1_ESTPLT, bwn_ntab_estimatepowerlt1);
3701300016Sadrian	ntab_upload(mac, BWN_NTAB_C0_ADJPLT, bwn_ntab_adjustpower0);
3702300016Sadrian	ntab_upload(mac, BWN_NTAB_C1_ADJPLT, bwn_ntab_adjustpower1);
3703300016Sadrian	ntab_upload(mac, BWN_NTAB_C0_IQLT, bwn_ntab_iqlt0);
3704300016Sadrian	ntab_upload(mac, BWN_NTAB_C1_IQLT, bwn_ntab_iqlt1);
3705300016Sadrian	ntab_upload(mac, BWN_NTAB_C0_LOFEEDTH, bwn_ntab_loftlt0);
3706300016Sadrian	ntab_upload(mac, BWN_NTAB_C1_LOFEEDTH, bwn_ntab_loftlt1);
3707300016Sadrian}
3708300016Sadrian
3709300016Sadrian/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/InitTables */
3710300016Sadrianvoid bwn_nphy_tables_init(struct bwn_mac *mac)
3711300016Sadrian{
3712300016Sadrian	if (mac->mac_phy.rev >= 16)
3713300016Sadrian		bwn_nphy_tables_init_rev16(mac);
3714300016Sadrian	else if (mac->mac_phy.rev >= 7)
3715300016Sadrian		bwn_nphy_tables_init_rev7(mac);
3716300016Sadrian	else if (mac->mac_phy.rev >= 3)
3717300016Sadrian		bwn_nphy_tables_init_rev3(mac);
3718300016Sadrian	else
3719300016Sadrian		bwn_nphy_tables_init_rev0(mac);
3720300016Sadrian}
3721300016Sadrian
3722300016Sadrian/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/GetIpaGainTbl */
3723300016Sadrianstatic const uint32_t *bwn_nphy_get_ipa_gain_table(struct bwn_mac *mac)
3724300016Sadrian{
3725300016Sadrian	struct bwn_softc *sc = mac->mac_sc;
3726300016Sadrian	struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3727300016Sadrian	struct bwn_phy *phy = &mac->mac_phy;
3728300016Sadrian
3729300016Sadrian	if (IEEE80211_IS_CHAN_2GHZ(ic->ic_curchan)) {
3730300016Sadrian		switch (phy->rev) {
3731300016Sadrian		case 17:
3732300016Sadrian			if (phy->rf_rev == 14)
3733300016Sadrian				return bwn_ntab_tx_gain_ipa_2057_rev14_2g;
3734300016Sadrian			break;
3735300016Sadrian		case 16:
3736300016Sadrian			if (phy->rf_rev == 9)
3737300016Sadrian				return bwn_ntab_tx_gain_ipa_2057_rev9_2g;
3738300016Sadrian			break;
3739300016Sadrian		case 8:
3740300016Sadrian			if (phy->rf_rev == 5)
3741300016Sadrian				return bwn_ntab_tx_gain_ipa_2057_rev5_2g;
3742300016Sadrian			break;
3743300016Sadrian		case 6:
3744300016Sadrian			if (siba_get_chipid(sc->sc_dev) == 47162) /* BCM47612 */
3745300016Sadrian				return bwn_ntab_tx_gain_ipa_rev5_2g;
3746300016Sadrian			return bwn_ntab_tx_gain_ipa_rev6_2g;
3747300016Sadrian		case 5:
3748300016Sadrian			return bwn_ntab_tx_gain_ipa_rev5_2g;
3749300016Sadrian		case 4:
3750300016Sadrian		case 3:
3751300016Sadrian			return bwn_ntab_tx_gain_ipa_rev3_2g;
3752300016Sadrian		}
3753300016Sadrian
3754300016Sadrian		BWN_ERRPRINTF(mac->mac_sc,
3755300016Sadrian		       "No 2GHz IPA gain table available for this device\n");
3756300016Sadrian		return NULL;
3757300016Sadrian	} else {
3758300016Sadrian		switch (phy->rev) {
3759300016Sadrian		case 16:
3760300016Sadrian			if (phy->rf_rev == 9)
3761300016Sadrian				return bwn_ntab_tx_gain_ipa_2057_rev9_5g;
3762300016Sadrian			break;
3763300016Sadrian		case 3 ... 6:
3764300016Sadrian			return bwn_ntab_tx_gain_ipa_rev3_5g;
3765300016Sadrian		}
3766300016Sadrian
3767300016Sadrian		BWN_ERRPRINTF(mac->mac_sc,
3768300016Sadrian		       "No 5GHz IPA gain table available for this device\n");
3769300016Sadrian		return NULL;
3770300016Sadrian	}
3771300016Sadrian}
3772300016Sadrian
3773300016Sadrianconst uint32_t *bwn_nphy_get_tx_gain_table(struct bwn_mac *mac)
3774300016Sadrian{
3775300016Sadrian	struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3776300016Sadrian	struct bwn_softc *sc = mac->mac_sc;
3777300016Sadrian	struct bwn_phy *phy = &mac->mac_phy;
3778300016Sadrian	int is_5ghz;
3779300016Sadrian
3780300016Sadrian	/* XXX ideally we'd have is2, is5, etc */
3781300016Sadrian	is_5ghz = !! IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan);
3782300016Sadrian
3783300016Sadrian	if (mac->mac_phy.rev < 3)
3784300016Sadrian		return bwn_ntab_tx_gain_rev0_1_2;
3785300016Sadrian
3786300016Sadrian	/* rev 3+ */
3787300016Sadrian	if ((mac->mac_phy.phy_n->ipa2g_on && is_5ghz == 0) ||
3788300016Sadrian	    (mac->mac_phy.phy_n->ipa5g_on && is_5ghz == 1)) {
3789300016Sadrian		return bwn_nphy_get_ipa_gain_table(mac);
3790300016Sadrian	} else if (is_5ghz == 1) {
3791300016Sadrian		switch (phy->rev) {
3792300016Sadrian		case 6:
3793300016Sadrian		case 5:
3794300016Sadrian			return bwn_ntab_tx_gain_epa_rev5_5g;
3795300016Sadrian		case 4:
3796300016Sadrian			return siba_sprom_get_fem_5ghz_extpa_gain(sc->sc_dev) == 3 ?
3797300016Sadrian				bwn_ntab_tx_gain_epa_rev4_5g :
3798300016Sadrian				bwn_ntab_tx_gain_epa_rev4_hi_pwr_5g;
3799300016Sadrian		case 3:
3800300016Sadrian			return bwn_ntab_tx_gain_epa_rev3_5g;
3801300016Sadrian		default:
3802300016Sadrian			BWN_ERRPRINTF(mac->mac_sc,
3803300016Sadrian			       "No 5GHz EPA gain table available for this device\n");
3804300016Sadrian			return NULL;
3805300016Sadrian		}
3806300016Sadrian	} else {
3807300016Sadrian		switch (phy->rev) {
3808300016Sadrian		case 6:
3809300016Sadrian		case 5:
3810300016Sadrian			if (siba_sprom_get_fem_5ghz_extpa_gain(sc->sc_dev) == 3)
3811300016Sadrian				return bwn_ntab_tx_gain_epa_rev3_hi_pwr_2g;
3812300016Sadrian			/* fall through */
3813300016Sadrian		case 4:
3814300016Sadrian		case 3:
3815300016Sadrian			return bwn_ntab_tx_gain_epa_rev3_2g;
3816300016Sadrian		default:
3817300016Sadrian			BWN_ERRPRINTF(mac->mac_sc,
3818300016Sadrian			       "No 2GHz EPA gain table available for this device\n");
3819300016Sadrian			return NULL;
3820300016Sadrian		}
3821300016Sadrian	}
3822300016Sadrian}
3823300016Sadrian
3824300016Sadrianconst int16_t *bwn_ntab_get_rf_pwr_offset_table(struct bwn_mac *mac)
3825300016Sadrian{
3826300016Sadrian	struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3827300016Sadrian	struct bwn_phy *phy = &mac->mac_phy;
3828300016Sadrian
3829300016Sadrian	if (IEEE80211_IS_CHAN_2GHZ(ic->ic_curchan)) {
3830300016Sadrian		switch (phy->rev) {
3831300016Sadrian		case 17:
3832300016Sadrian			if (phy->rf_rev == 14)
3833300016Sadrian				return bwn_ntab_rf_pwr_offset_2057_rev14_2g;
3834300016Sadrian			break;
3835300016Sadrian		case 16:
3836300016Sadrian			if (phy->rf_rev == 9)
3837300016Sadrian				return bwn_ntab_rf_pwr_offset_2057_rev9_2g;
3838300016Sadrian			break;
3839300016Sadrian		}
3840300016Sadrian
3841300016Sadrian		BWN_ERRPRINTF(mac->mac_sc,
3842300016Sadrian		       "No 2GHz RF power table available for this device\n");
3843300016Sadrian		return NULL;
3844300016Sadrian	} else {
3845300016Sadrian		switch (phy->rev) {
3846300016Sadrian		case 16:
3847300016Sadrian			if (phy->rf_rev == 9)
3848300016Sadrian				return bwn_ntab_rf_pwr_offset_2057_rev9_5g;
3849300016Sadrian			break;
3850300016Sadrian		}
3851300016Sadrian
3852300016Sadrian		BWN_ERRPRINTF(mac->mac_sc,
3853300016Sadrian		       "No 5GHz RF power table available for this device\n");
3854300016Sadrian		return NULL;
3855300016Sadrian	}
3856300016Sadrian}
3857300016Sadrian
3858300016Sadrianstruct bwn_nphy_gain_ctl_workaround_entry *bwn_nphy_get_gain_ctl_workaround_ent(
3859300016Sadrian	struct bwn_mac *mac, bool ghz5, bool ext_lna)
3860300016Sadrian{
3861300016Sadrian	struct ieee80211com *ic = &mac->mac_sc->sc_ic;
3862300016Sadrian	struct bwn_softc *sc = mac->mac_sc;
3863300016Sadrian	struct bwn_phy *phy = &mac->mac_phy;
3864300016Sadrian	struct bwn_nphy_gain_ctl_workaround_entry *e;
3865300016Sadrian	uint8_t phy_idx;
3866300016Sadrian
3867300016Sadrian	if (!ghz5 && mac->mac_phy.rev >= 6 && mac->mac_phy.rf_rev == 11)
3868300016Sadrian		return &nphy_gain_ctl_wa_phy6_radio11_ghz2;
3869300016Sadrian
3870300016Sadrian	KASSERT(mac->mac_phy.rev >= 3,
3871300016Sadrian	    ("%s: called; too early phy rev (%d)\n",
3872300016Sadrian	    __func__, mac->mac_phy.rev));
3873300016Sadrian	if (mac->mac_phy.rev >= 6)
3874300016Sadrian		phy_idx = 3;
3875300016Sadrian	else if (mac->mac_phy.rev == 5)
3876300016Sadrian		phy_idx = 2;
3877300016Sadrian	else if (mac->mac_phy.rev == 4)
3878300016Sadrian		phy_idx = 1;
3879300016Sadrian	else
3880300016Sadrian		phy_idx = 0;
3881300016Sadrian	e = &nphy_gain_ctl_workaround[ghz5][phy_idx];
3882300016Sadrian
3883300016Sadrian	/* Some workarounds to the workarounds... */
3884300016Sadrian	if (!ghz5) {
3885300016Sadrian		uint8_t tr_iso = siba_sprom_get_fem_2ghz_tr_iso(sc->sc_dev);
3886300016Sadrian
3887300016Sadrian		if (tr_iso > 7)
3888300016Sadrian			tr_iso = 3;
3889300016Sadrian
3890300016Sadrian		if (phy->rev >= 6) {
3891300016Sadrian			static const int gain_data[] = { 0x106a, 0x106c, 0x1074,
3892300016Sadrian							 0x107c, 0x007e, 0x107e,
3893300016Sadrian							 0x207e, 0x307e, };
3894300016Sadrian
3895300016Sadrian			e->cliplo_gain = gain_data[tr_iso];
3896300016Sadrian		} else if (phy->rev == 5) {
3897300016Sadrian			static const int gain_data[] = { 0x0062, 0x0064, 0x006a,
3898300016Sadrian							 0x106a, 0x106c, 0x1074,
3899300016Sadrian							 0x107c, 0x207c, };
3900300016Sadrian
3901300016Sadrian			e->cliplo_gain = gain_data[tr_iso];
3902300016Sadrian		}
3903300016Sadrian
3904300016Sadrian		if (phy->rev >= 5 && ext_lna) {
3905300016Sadrian			e->rfseq_init[0] &= ~0x4000;
3906300016Sadrian			e->rfseq_init[1] &= ~0x4000;
3907300016Sadrian			e->rfseq_init[2] &= ~0x4000;
3908300016Sadrian			e->rfseq_init[3] &= ~0x4000;
3909300016Sadrian			e->init_gain &= ~0x4000;
3910300016Sadrian		}
3911300016Sadrian	} else {
3912300016Sadrian		if (phy->rev >= 6) {
3913300016Sadrian			/* XXX 40MHz HT only? No static-40MHz? */
3914300016Sadrian			if (phy->rf_rev == 11 &&
3915300016Sadrian			    IEEE80211_IS_CHAN_HT40(ic->ic_curchan))
3916300016Sadrian				e->crsminu = 0x2d;
3917300016Sadrian		} else if (phy->rev == 4 && ext_lna) {
3918300016Sadrian			e->rfseq_init[0] &= ~0x4000;
3919300016Sadrian			e->rfseq_init[1] &= ~0x4000;
3920300016Sadrian			e->rfseq_init[2] &= ~0x4000;
3921300016Sadrian			e->rfseq_init[3] &= ~0x4000;
3922300016Sadrian			e->init_gain &= ~0x4000;
3923300016Sadrian			e->rfseq_init[0] |= 0x1000;
3924300016Sadrian			e->rfseq_init[1] |= 0x1000;
3925300016Sadrian			e->rfseq_init[2] |= 0x1000;
3926300016Sadrian			e->rfseq_init[3] |= 0x1000;
3927300016Sadrian			e->init_gain |= 0x1000;
3928300016Sadrian		}
3929300016Sadrian	}
3930300016Sadrian
3931300016Sadrian	return e;
3932300016Sadrian}
3933300016Sadrian
3934300016Sadrianconst struct bwn_nphy_rf_control_override_rev7 *
3935300016Sadrianbwn_nphy_get_rf_ctl_over_rev7(struct bwn_mac *mac, uint16_t field,
3936300016Sadrian    uint8_t override)
3937300016Sadrian{
3938300016Sadrian	const struct bwn_nphy_rf_control_override_rev7 *e;
3939300016Sadrian	uint8_t size, i;
3940300016Sadrian
3941300016Sadrian	switch (override) {
3942300016Sadrian	case 0:
3943300016Sadrian		e = tbl_rf_control_override_rev7_over0;
3944300016Sadrian		size = nitems(tbl_rf_control_override_rev7_over0);
3945300016Sadrian		break;
3946300016Sadrian	case 1:
3947300016Sadrian		e = tbl_rf_control_override_rev7_over1;
3948300016Sadrian		size = nitems(tbl_rf_control_override_rev7_over1);
3949300016Sadrian		break;
3950300016Sadrian	case 2:
3951300016Sadrian		e = tbl_rf_control_override_rev7_over2;
3952300016Sadrian		size = nitems(tbl_rf_control_override_rev7_over2);
3953300016Sadrian		break;
3954300016Sadrian	default:
3955300016Sadrian		BWN_ERRPRINTF(mac->mac_sc, "Invalid override value %d\n", override);
3956300016Sadrian		return NULL;
3957300016Sadrian	}
3958300016Sadrian
3959300016Sadrian	for (i = 0; i < size; i++) {
3960300016Sadrian		if (e[i].field == field)
3961300016Sadrian			return &e[i];
3962300016Sadrian	}
3963300016Sadrian
3964300016Sadrian	return NULL;
3965300016Sadrian}
3966