]> Pileus Git - ~andy/linux/blob - drivers/net/wireless/b43/tables_nphy.c
Merge branch 'for-3.3/mtip32xx' into for-3.3/drivers
[~andy/linux] / drivers / net / wireless / b43 / tables_nphy.c
1 /*
2
3   Broadcom B43 wireless driver
4   IEEE 802.11n PHY data tables
5
6   Copyright (c) 2008 Michael Buesch <m@bues.ch>
7   Copyright (c) 2010 Rafał Miłecki <zajec5@gmail.com>
8
9   This program is free software; you can redistribute it and/or modify
10   it under the terms of the GNU General Public License as published by
11   the Free Software Foundation; either version 2 of the License, or
12   (at your option) any later version.
13
14   This program is distributed in the hope that it will be useful,
15   but WITHOUT ANY WARRANTY; without even the implied warranty of
16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   GNU General Public License for more details.
18
19   You should have received a copy of the GNU General Public License
20   along with this program; see the file COPYING.  If not, write to
21   the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
22   Boston, MA 02110-1301, USA.
23
24 */
25
26 #include "b43.h"
27 #include "tables_nphy.h"
28 #include "phy_common.h"
29 #include "phy_n.h"
30
31 static const u8 b43_ntab_adjustpower0[] = {
32         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
33         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
35         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
36         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
38         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
39         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
40         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
41         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
42         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
43         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
44         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
45         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
46         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
47         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
48 };
49
50 static const u8 b43_ntab_adjustpower1[] = {
51         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
52         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
53         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
54         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
55         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
58         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
59         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
60         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
61         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
62         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
64         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
66         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
67 };
68
69 static const u16 b43_ntab_bdi[] = {
70         0x0070, 0x0126, 0x012C, 0x0246, 0x048D, 0x04D2,
71 };
72
73 static const u32 b43_ntab_channelest[] = {
74         0x44444444, 0x44444444, 0x44444444, 0x44444444,
75         0x44444444, 0x44444444, 0x44444444, 0x44444444,
76         0x10101010, 0x10101010, 0x10101010, 0x10101010,
77         0x10101010, 0x10101010, 0x10101010, 0x10101010,
78         0x44444444, 0x44444444, 0x44444444, 0x44444444,
79         0x44444444, 0x44444444, 0x44444444, 0x44444444,
80         0x10101010, 0x10101010, 0x10101010, 0x10101010,
81         0x10101010, 0x10101010, 0x10101010, 0x10101010,
82         0x44444444, 0x44444444, 0x44444444, 0x44444444,
83         0x44444444, 0x44444444, 0x44444444, 0x44444444,
84         0x44444444, 0x44444444, 0x44444444, 0x44444444,
85         0x44444444, 0x44444444, 0x44444444, 0x44444444,
86         0x10101010, 0x10101010, 0x10101010, 0x10101010,
87         0x10101010, 0x10101010, 0x10101010, 0x10101010,
88         0x10101010, 0x10101010, 0x10101010, 0x10101010,
89         0x10101010, 0x10101010, 0x10101010, 0x10101010,
90         0x44444444, 0x44444444, 0x44444444, 0x44444444,
91         0x44444444, 0x44444444, 0x44444444, 0x44444444,
92         0x44444444, 0x44444444, 0x44444444, 0x44444444,
93         0x44444444, 0x44444444, 0x44444444, 0x44444444,
94         0x10101010, 0x10101010, 0x10101010, 0x10101010,
95         0x10101010, 0x10101010, 0x10101010, 0x10101010,
96         0x10101010, 0x10101010, 0x10101010, 0x10101010,
97         0x10101010, 0x10101010, 0x10101010, 0x10101010,
98 };
99
100 static const u8 b43_ntab_estimatepowerlt0[] = {
101         0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
102         0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
103         0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
104         0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
105         0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
106         0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
107         0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
108         0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
109 };
110
111 static const u8 b43_ntab_estimatepowerlt1[] = {
112         0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
113         0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
114         0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
115         0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
116         0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
117         0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
118         0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
119         0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
120 };
121
122 static const u8 b43_ntab_framelookup[] = {
123         0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
124         0x0A, 0x0C, 0x1C, 0x1C, 0x0B, 0x0D, 0x1E, 0x1E,
125         0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1A, 0x1A,
126         0x0E, 0x10, 0x20, 0x28, 0x0F, 0x11, 0x22, 0x2A,
127 };
128
129 static const u32 b43_ntab_framestruct[] = {
130         0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
131         0x09804506, 0x00100030, 0x09804507, 0x00100030,
132         0x00000000, 0x00000000, 0x00000000, 0x00000000,
133         0x00000000, 0x00000000, 0x00000000, 0x00000000,
134         0x08004A0C, 0x00100004, 0x01000A0D, 0x00100024,
135         0x0980450E, 0x00100034, 0x0980450F, 0x00100034,
136         0x00000000, 0x00000000, 0x00000000, 0x00000000,
137         0x00000000, 0x00000000, 0x00000000, 0x00000000,
138         0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
139         0x1980C506, 0x00100030, 0x21810506, 0x00100030,
140         0x21810506, 0x00100030, 0x01800504, 0x00100030,
141         0x11808505, 0x00100030, 0x29814507, 0x01100030,
142         0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
143         0x21810506, 0x00100030, 0x21810506, 0x00100030,
144         0x29814507, 0x01100030, 0x00000000, 0x00000000,
145         0x00000000, 0x00000000, 0x00000000, 0x00000000,
146         0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
147         0x1980C50E, 0x00100038, 0x2181050E, 0x00100038,
148         0x2181050E, 0x00100038, 0x0180050C, 0x00100038,
149         0x1180850D, 0x00100038, 0x2981450F, 0x01100038,
150         0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
151         0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
152         0x2981450F, 0x01100038, 0x00000000, 0x00000000,
153         0x00000000, 0x00000000, 0x00000000, 0x00000000,
154         0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
155         0x1980C506, 0x00100030, 0x1980C506, 0x00100030,
156         0x11808504, 0x00100030, 0x3981CA05, 0x00100030,
157         0x29814507, 0x01100030, 0x00000000, 0x00000000,
158         0x10008A04, 0x00100000, 0x3981CA05, 0x00100030,
159         0x1980C506, 0x00100030, 0x29814507, 0x01100030,
160         0x00000000, 0x00000000, 0x00000000, 0x00000000,
161         0x00000000, 0x00000000, 0x00000000, 0x00000000,
162         0x08004A0C, 0x00100008, 0x01000A0D, 0x00100028,
163         0x1980C50E, 0x00100038, 0x1980C50E, 0x00100038,
164         0x1180850C, 0x00100038, 0x3981CA0D, 0x00100038,
165         0x2981450F, 0x01100038, 0x00000000, 0x00000000,
166         0x10008A0C, 0x00100008, 0x3981CA0D, 0x00100038,
167         0x1980C50E, 0x00100038, 0x2981450F, 0x01100038,
168         0x00000000, 0x00000000, 0x00000000, 0x00000000,
169         0x00000000, 0x00000000, 0x00000000, 0x00000000,
170         0x40021404, 0x00100000, 0x02001405, 0x00100040,
171         0x0B004A06, 0x01900060, 0x13008A06, 0x01900060,
172         0x13008A06, 0x01900060, 0x43020A04, 0x00100060,
173         0x1B00CA05, 0x00100060, 0x23010A07, 0x01500060,
174         0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
175         0x13008A06, 0x01900060, 0x13008A06, 0x01900060,
176         0x23010A07, 0x01500060, 0x00000000, 0x00000000,
177         0x00000000, 0x00000000, 0x00000000, 0x00000000,
178         0x4002140C, 0x00100010, 0x0200140D, 0x00100050,
179         0x0B004A0E, 0x01900070, 0x13008A0E, 0x01900070,
180         0x13008A0E, 0x01900070, 0x43020A0C, 0x00100070,
181         0x1B00CA0D, 0x00100070, 0x23010A0F, 0x01500070,
182         0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
183         0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
184         0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
185         0x00000000, 0x00000000, 0x00000000, 0x00000000,
186         0x50029404, 0x00100000, 0x32019405, 0x00100040,
187         0x0B004A06, 0x01900060, 0x0B004A06, 0x01900060,
188         0x5B02CA04, 0x00100060, 0x3B01D405, 0x00100060,
189         0x23010A07, 0x01500060, 0x00000000, 0x00000000,
190         0x5802D404, 0x00100000, 0x3B01D405, 0x00100060,
191         0x0B004A06, 0x01900060, 0x23010A07, 0x01500060,
192         0x00000000, 0x00000000, 0x00000000, 0x00000000,
193         0x00000000, 0x00000000, 0x00000000, 0x00000000,
194         0x5002940C, 0x00100010, 0x3201940D, 0x00100050,
195         0x0B004A0E, 0x01900070, 0x0B004A0E, 0x01900070,
196         0x5B02CA0C, 0x00100070, 0x3B01D40D, 0x00100070,
197         0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
198         0x5802D40C, 0x00100010, 0x3B01D40D, 0x00100070,
199         0x0B004A0E, 0x01900070, 0x23010A0F, 0x01500070,
200         0x00000000, 0x00000000, 0x00000000, 0x00000000,
201         0x00000000, 0x00000000, 0x00000000, 0x00000000,
202         0x40021404, 0x000F4800, 0x62031405, 0x00100040,
203         0x53028A06, 0x01900060, 0x53028A07, 0x01900060,
204         0x00000000, 0x00000000, 0x00000000, 0x00000000,
205         0x00000000, 0x00000000, 0x00000000, 0x00000000,
206         0x4002140C, 0x000F4808, 0x6203140D, 0x00100048,
207         0x53028A0E, 0x01900068, 0x53028A0F, 0x01900068,
208         0x00000000, 0x00000000, 0x00000000, 0x00000000,
209         0x00000000, 0x00000000, 0x00000000, 0x00000000,
210         0x00000A0C, 0x00100004, 0x11008A0D, 0x00100024,
211         0x1980C50E, 0x00100034, 0x2181050E, 0x00100034,
212         0x2181050E, 0x00100034, 0x0180050C, 0x00100038,
213         0x1180850D, 0x00100038, 0x1181850D, 0x00100038,
214         0x2981450F, 0x01100038, 0x00000000, 0x00000000,
215         0x00000000, 0x00000000, 0x00000000, 0x00000000,
216         0x00000000, 0x00000000, 0x00000000, 0x00000000,
217         0x00000000, 0x00000000, 0x00000000, 0x00000000,
218         0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
219         0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
220         0x1181850D, 0x00100038, 0x2981450F, 0x01100038,
221         0x00000000, 0x00000000, 0x00000000, 0x00000000,
222         0x00000000, 0x00000000, 0x00000000, 0x00000000,
223         0x00000000, 0x00000000, 0x00000000, 0x00000000,
224         0x00000000, 0x00000000, 0x00000000, 0x00000000,
225         0x00000000, 0x00000000, 0x00000000, 0x00000000,
226         0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
227         0x0180C506, 0x00100030, 0x0180C506, 0x00100030,
228         0x2180C50C, 0x00100030, 0x49820A0D, 0x0016A130,
229         0x41824A0D, 0x0016A130, 0x2981450F, 0x01100030,
230         0x00000000, 0x00000000, 0x00000000, 0x00000000,
231         0x00000000, 0x00000000, 0x00000000, 0x00000000,
232         0x00000000, 0x00000000, 0x00000000, 0x00000000,
233         0x00000000, 0x00000000, 0x00000000, 0x00000000,
234         0x2000CA0C, 0x00100000, 0x49820A0D, 0x0016A130,
235         0x1980C50E, 0x00100030, 0x41824A0D, 0x0016A130,
236         0x2981450F, 0x01100030, 0x00000000, 0x00000000,
237         0x00000000, 0x00000000, 0x00000000, 0x00000000,
238         0x00000000, 0x00000000, 0x00000000, 0x00000000,
239         0x00000000, 0x00000000, 0x00000000, 0x00000000,
240         0x00000000, 0x00000000, 0x00000000, 0x00000000,
241         0x00000000, 0x00000000, 0x00000000, 0x00000000,
242         0x4002140C, 0x00100008, 0x0200140D, 0x00100048,
243         0x0B004A0E, 0x01900068, 0x13008A0E, 0x01900068,
244         0x13008A0E, 0x01900068, 0x43020A0C, 0x00100070,
245         0x1B00CA0D, 0x00100070, 0x1B014A0D, 0x00100070,
246         0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
247         0x00000000, 0x00000000, 0x00000000, 0x00000000,
248         0x00000000, 0x00000000, 0x00000000, 0x00000000,
249         0x00000000, 0x00000000, 0x00000000, 0x00000000,
250         0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
251         0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
252         0x1B014A0D, 0x00100070, 0x23010A0F, 0x01500070,
253         0x00000000, 0x00000000, 0x00000000, 0x00000000,
254         0x00000000, 0x00000000, 0x00000000, 0x00000000,
255         0x00000000, 0x00000000, 0x00000000, 0x00000000,
256         0x00000000, 0x00000000, 0x00000000, 0x00000000,
257         0x00000000, 0x00000000, 0x00000000, 0x00000000,
258         0x50029404, 0x00100000, 0x32019405, 0x00100040,
259         0x03004A06, 0x01900060, 0x03004A06, 0x01900060,
260         0x6B030A0C, 0x00100060, 0x4B02140D, 0x0016A160,
261         0x4302540D, 0x0016A160, 0x23010A0F, 0x01500060,
262         0x00000000, 0x00000000, 0x00000000, 0x00000000,
263         0x00000000, 0x00000000, 0x00000000, 0x00000000,
264         0x00000000, 0x00000000, 0x00000000, 0x00000000,
265         0x00000000, 0x00000000, 0x00000000, 0x00000000,
266         0x6B03140C, 0x00100060, 0x4B02140D, 0x0016A160,
267         0x0B004A0E, 0x01900060, 0x4302540D, 0x0016A160,
268         0x23010A0F, 0x01500060, 0x00000000, 0x00000000,
269         0x00000000, 0x00000000, 0x00000000, 0x00000000,
270         0x00000000, 0x00000000, 0x00000000, 0x00000000,
271         0x00000000, 0x00000000, 0x00000000, 0x00000000,
272         0x00000000, 0x00000000, 0x00000000, 0x00000000,
273         0x00000000, 0x00000000, 0x00000000, 0x00000000,
274         0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
275         0x53028A06, 0x01900060, 0x5B02CA06, 0x01900060,
276         0x5B02CA06, 0x01900060, 0x43020A04, 0x00100060,
277         0x1B00CA05, 0x00100060, 0x53028A07, 0x0190C060,
278         0x00000000, 0x00000000, 0x00000000, 0x00000000,
279         0x00000000, 0x00000000, 0x00000000, 0x00000000,
280         0x00000000, 0x00000000, 0x00000000, 0x00000000,
281         0x00000000, 0x00000000, 0x00000000, 0x00000000,
282         0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
283         0x53028A0E, 0x01900070, 0x5B02CA0E, 0x01900070,
284         0x5B02CA0E, 0x01900070, 0x43020A0C, 0x00100070,
285         0x1B00CA0D, 0x00100070, 0x53028A0F, 0x0190C070,
286         0x00000000, 0x00000000, 0x00000000, 0x00000000,
287         0x00000000, 0x00000000, 0x00000000, 0x00000000,
288         0x00000000, 0x00000000, 0x00000000, 0x00000000,
289         0x00000000, 0x00000000, 0x00000000, 0x00000000,
290         0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
291         0x5B02CA06, 0x01900060, 0x5B02CA06, 0x01900060,
292         0x53028A07, 0x0190C060, 0x00000000, 0x00000000,
293         0x00000000, 0x00000000, 0x00000000, 0x00000000,
294         0x00000000, 0x00000000, 0x00000000, 0x00000000,
295         0x00000000, 0x00000000, 0x00000000, 0x00000000,
296         0x00000000, 0x00000000, 0x00000000, 0x00000000,
297         0x00000000, 0x00000000, 0x00000000, 0x00000000,
298         0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
299         0x5B02CA0E, 0x01900070, 0x5B02CA0E, 0x01900070,
300         0x53028A0F, 0x0190C070, 0x00000000, 0x00000000,
301         0x00000000, 0x00000000, 0x00000000, 0x00000000,
302         0x00000000, 0x00000000, 0x00000000, 0x00000000,
303         0x00000000, 0x00000000, 0x00000000, 0x00000000,
304         0x00000000, 0x00000000, 0x00000000, 0x00000000,
305         0x00000000, 0x00000000, 0x00000000, 0x00000000,
306         0x00000000, 0x00000000, 0x00000000, 0x00000000,
307         0x00000000, 0x00000000, 0x00000000, 0x00000000,
308         0x00000000, 0x00000000, 0x00000000, 0x00000000,
309         0x00000000, 0x00000000, 0x00000000, 0x00000000,
310         0x00000000, 0x00000000, 0x00000000, 0x00000000,
311         0x00000000, 0x00000000, 0x00000000, 0x00000000,
312         0x00000000, 0x00000000, 0x00000000, 0x00000000,
313         0x00000000, 0x00000000, 0x00000000, 0x00000000,
314         0x00000000, 0x00000000, 0x00000000, 0x00000000,
315         0x00000000, 0x00000000, 0x00000000, 0x00000000,
316         0x00000000, 0x00000000, 0x00000000, 0x00000000,
317         0x00000000, 0x00000000, 0x00000000, 0x00000000,
318         0x00000000, 0x00000000, 0x00000000, 0x00000000,
319         0x00000000, 0x00000000, 0x00000000, 0x00000000,
320         0x00000000, 0x00000000, 0x00000000, 0x00000000,
321         0x00000000, 0x00000000, 0x00000000, 0x00000000,
322         0x00000000, 0x00000000, 0x00000000, 0x00000000,
323         0x00000000, 0x00000000, 0x00000000, 0x00000000,
324         0x00000000, 0x00000000, 0x00000000, 0x00000000,
325         0x00000000, 0x00000000, 0x00000000, 0x00000000,
326         0x00000000, 0x00000000, 0x00000000, 0x00000000,
327         0x00000000, 0x00000000, 0x00000000, 0x00000000,
328         0x00000000, 0x00000000, 0x00000000, 0x00000000,
329         0x00000000, 0x00000000, 0x00000000, 0x00000000,
330         0x00000000, 0x00000000, 0x00000000, 0x00000000,
331         0x00000000, 0x00000000, 0x00000000, 0x00000000,
332         0x00000000, 0x00000000, 0x00000000, 0x00000000,
333         0x00000000, 0x00000000, 0x00000000, 0x00000000,
334         0x00000000, 0x00000000, 0x00000000, 0x00000000,
335         0x00000000, 0x00000000, 0x00000000, 0x00000000,
336         0x00000000, 0x00000000, 0x00000000, 0x00000000,
337         0x00000000, 0x00000000, 0x00000000, 0x00000000,
338 };
339
340 static const u32 b43_ntab_gainctl0[] = {
341         0x03CC2B44, 0x03CC2B42, 0x03CC2B40, 0x03CC2B3E,
342         0x03CC2B3D, 0x03CC2B3B, 0x03C82B44, 0x03C82B42,
343         0x03C82B40, 0x03C82B3E, 0x03C82B3D, 0x03C82B3B,
344         0x03C82B39, 0x03C82B38, 0x03C82B36, 0x03C82B34,
345         0x03C42B44, 0x03C42B42, 0x03C42B40, 0x03C42B3E,
346         0x03C42B3D, 0x03C42B3B, 0x03C42B39, 0x03C42B38,
347         0x03C42B36, 0x03C42B34, 0x03C42B33, 0x03C42B32,
348         0x03C42B30, 0x03C42B2F, 0x03C42B2D, 0x03C02B44,
349         0x03C02B42, 0x03C02B40, 0x03C02B3E, 0x03C02B3D,
350         0x03C02B3B, 0x03C02B39, 0x03C02B38, 0x03C02B36,
351         0x03C02B34, 0x03B02B44, 0x03B02B42, 0x03B02B40,
352         0x03B02B3E, 0x03B02B3D, 0x03B02B3B, 0x03B02B39,
353         0x03B02B38, 0x03B02B36, 0x03B02B34, 0x03B02B33,
354         0x03B02B32, 0x03B02B30, 0x03B02B2F, 0x03B02B2D,
355         0x03A02B44, 0x03A02B42, 0x03A02B40, 0x03A02B3E,
356         0x03A02B3D, 0x03A02B3B, 0x03A02B39, 0x03A02B38,
357         0x03A02B36, 0x03A02B34, 0x03902B44, 0x03902B42,
358         0x03902B40, 0x03902B3E, 0x03902B3D, 0x03902B3B,
359         0x03902B39, 0x03902B38, 0x03902B36, 0x03902B34,
360         0x03902B33, 0x03902B32, 0x03902B30, 0x03802B44,
361         0x03802B42, 0x03802B40, 0x03802B3E, 0x03802B3D,
362         0x03802B3B, 0x03802B39, 0x03802B38, 0x03802B36,
363         0x03802B34, 0x03802B33, 0x03802B32, 0x03802B30,
364         0x03802B2F, 0x03802B2D, 0x03802B2C, 0x03802B2B,
365         0x03802B2A, 0x03802B29, 0x03802B27, 0x03802B26,
366         0x03802B25, 0x03802B24, 0x03802B23, 0x03802B22,
367         0x03802B21, 0x03802B20, 0x03802B1F, 0x03802B1E,
368         0x03802B1E, 0x03802B1D, 0x03802B1C, 0x03802B1B,
369         0x03802B1A, 0x03802B1A, 0x03802B19, 0x03802B18,
370         0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
371         0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
372         0x03802B18, 0x03802B18, 0x03802B18, 0x00002B00,
373 };
374
375 static const u32 b43_ntab_gainctl1[] = {
376         0x03CC2B44, 0x03CC2B42, 0x03CC2B40, 0x03CC2B3E,
377         0x03CC2B3D, 0x03CC2B3B, 0x03C82B44, 0x03C82B42,
378         0x03C82B40, 0x03C82B3E, 0x03C82B3D, 0x03C82B3B,
379         0x03C82B39, 0x03C82B38, 0x03C82B36, 0x03C82B34,
380         0x03C42B44, 0x03C42B42, 0x03C42B40, 0x03C42B3E,
381         0x03C42B3D, 0x03C42B3B, 0x03C42B39, 0x03C42B38,
382         0x03C42B36, 0x03C42B34, 0x03C42B33, 0x03C42B32,
383         0x03C42B30, 0x03C42B2F, 0x03C42B2D, 0x03C02B44,
384         0x03C02B42, 0x03C02B40, 0x03C02B3E, 0x03C02B3D,
385         0x03C02B3B, 0x03C02B39, 0x03C02B38, 0x03C02B36,
386         0x03C02B34, 0x03B02B44, 0x03B02B42, 0x03B02B40,
387         0x03B02B3E, 0x03B02B3D, 0x03B02B3B, 0x03B02B39,
388         0x03B02B38, 0x03B02B36, 0x03B02B34, 0x03B02B33,
389         0x03B02B32, 0x03B02B30, 0x03B02B2F, 0x03B02B2D,
390         0x03A02B44, 0x03A02B42, 0x03A02B40, 0x03A02B3E,
391         0x03A02B3D, 0x03A02B3B, 0x03A02B39, 0x03A02B38,
392         0x03A02B36, 0x03A02B34, 0x03902B44, 0x03902B42,
393         0x03902B40, 0x03902B3E, 0x03902B3D, 0x03902B3B,
394         0x03902B39, 0x03902B38, 0x03902B36, 0x03902B34,
395         0x03902B33, 0x03902B32, 0x03902B30, 0x03802B44,
396         0x03802B42, 0x03802B40, 0x03802B3E, 0x03802B3D,
397         0x03802B3B, 0x03802B39, 0x03802B38, 0x03802B36,
398         0x03802B34, 0x03802B33, 0x03802B32, 0x03802B30,
399         0x03802B2F, 0x03802B2D, 0x03802B2C, 0x03802B2B,
400         0x03802B2A, 0x03802B29, 0x03802B27, 0x03802B26,
401         0x03802B25, 0x03802B24, 0x03802B23, 0x03802B22,
402         0x03802B21, 0x03802B20, 0x03802B1F, 0x03802B1E,
403         0x03802B1E, 0x03802B1D, 0x03802B1C, 0x03802B1B,
404         0x03802B1A, 0x03802B1A, 0x03802B19, 0x03802B18,
405         0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
406         0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
407         0x03802B18, 0x03802B18, 0x03802B18, 0x00002B00,
408 };
409
410 static const u32 b43_ntab_intlevel[] = {
411         0x00802070, 0x0671188D, 0x0A60192C, 0x0A300E46,
412         0x00C1188D, 0x080024D2, 0x00000070,
413 };
414
415 static const u32 b43_ntab_iqlt0[] = {
416         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
417         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
418         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
419         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
420         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
421         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
422         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
423         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
424         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
425         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
426         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
427         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
428         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
429         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
430         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
431         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
432         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
433         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
434         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
435         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
436         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
437         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
438         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
439         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
440         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
441         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
442         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
443         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
444         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
445         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
446         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
447         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
448 };
449
450 static const u32 b43_ntab_iqlt1[] = {
451         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
452         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
453         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
454         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
455         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
456         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
457         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
458         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
459         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
460         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
461         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
462         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
463         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
464         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
465         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
466         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
467         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
468         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
469         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
470         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
471         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
472         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
473         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
474         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
475         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
476         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
477         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
478         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
479         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
480         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
481         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
482         0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
483 };
484
485 static const u16 b43_ntab_loftlt0[] = {
486         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
487         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
488         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
489         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
490         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
491         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
492         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
493         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
494         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
495         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
496         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
497         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
498         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
499         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
500         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
501         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
502         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
503         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
504         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
505         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
506         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
507         0x0002, 0x0103,
508 };
509
510 static const u16 b43_ntab_loftlt1[] = {
511         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
512         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
513         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
514         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
515         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
516         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
517         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
518         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
519         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
520         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
521         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
522         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
523         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
524         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
525         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
526         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
527         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
528         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
529         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
530         0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
531         0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
532         0x0002, 0x0103,
533 };
534
535 static const u8 b43_ntab_mcs[] = {
536         0x00, 0x08, 0x0A, 0x10, 0x12, 0x19, 0x1A, 0x1C,
537         0x40, 0x48, 0x4A, 0x50, 0x52, 0x59, 0x5A, 0x5C,
538         0x80, 0x88, 0x8A, 0x90, 0x92, 0x99, 0x9A, 0x9C,
539         0xC0, 0xC8, 0xCA, 0xD0, 0xD2, 0xD9, 0xDA, 0xDC,
540         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
541         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
542         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
543         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
544         0x00, 0x01, 0x02, 0x04, 0x08, 0x09, 0x0A, 0x0C,
545         0x10, 0x11, 0x12, 0x14, 0x18, 0x19, 0x1A, 0x1C,
546         0x20, 0x21, 0x22, 0x24, 0x40, 0x41, 0x42, 0x44,
547         0x48, 0x49, 0x4A, 0x4C, 0x50, 0x51, 0x52, 0x54,
548         0x58, 0x59, 0x5A, 0x5C, 0x60, 0x61, 0x62, 0x64,
549         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
550         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
551         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
552 };
553
554 static const u32 b43_ntab_noisevar10[] = {
555         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
556         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
557         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
558         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
559         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
560         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
561         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
562         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
563         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
564         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
565         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
566         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
567         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
568         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
569         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
570         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
571         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
572         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
573         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
574         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
575         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
576         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
577         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
578         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
579         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
580         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
581         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
582         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
583         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
584         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
585         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
586         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
587         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
588         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
589         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
590         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
591         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
592         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
593         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
594         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
595         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
596         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
597         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
598         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
599         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
600         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
601         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
602         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
603         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
604         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
605         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
606         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
607         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
608         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
609         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
610         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
611         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
612         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
613         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
614         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
615         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
616         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
617         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
618         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
619 };
620
621 static const u32 b43_ntab_noisevar11[] = {
622         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
623         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
624         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
625         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
626         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
627         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
628         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
629         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
630         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
631         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
632         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
633         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
634         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
635         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
636         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
637         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
638         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
639         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
640         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
641         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
642         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
643         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
644         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
645         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
646         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
647         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
648         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
649         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
650         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
651         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
652         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
653         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
654         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
655         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
656         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
657         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
658         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
659         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
660         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
661         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
662         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
663         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
664         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
665         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
666         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
667         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
668         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
669         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
670         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
671         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
672         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
673         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
674         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
675         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
676         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
677         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
678         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
679         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
680         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
681         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
682         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
683         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
684         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
685         0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
686 };
687
688 static const u16 b43_ntab_pilot[] = {
689         0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08,
690         0xFF08, 0xFF08, 0x80D5, 0x80D5, 0x80D5, 0x80D5,
691         0x80D5, 0x80D5, 0x80D5, 0x80D5, 0xFF0A, 0xFF82,
692         0xFFA0, 0xFF28, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
693         0xFF82, 0xFFA0, 0xFF28, 0xFF0A, 0xFFFF, 0xFFFF,
694         0xFFFF, 0xFFFF, 0xF83F, 0xFA1F, 0xFA97, 0xFAB5,
695         0xF2BD, 0xF0BF, 0xFFFF, 0xFFFF, 0xF017, 0xF815,
696         0xF215, 0xF095, 0xF035, 0xF01D, 0xFFFF, 0xFFFF,
697         0xFF08, 0xFF02, 0xFF80, 0xFF20, 0xFF08, 0xFF02,
698         0xFF80, 0xFF20, 0xF01F, 0xF817, 0xFA15, 0xF295,
699         0xF0B5, 0xF03D, 0xFFFF, 0xFFFF, 0xF82A, 0xFA0A,
700         0xFA82, 0xFAA0, 0xF2A8, 0xF0AA, 0xFFFF, 0xFFFF,
701         0xF002, 0xF800, 0xF200, 0xF080, 0xF020, 0xF008,
702         0xFFFF, 0xFFFF, 0xF00A, 0xF802, 0xFA00, 0xF280,
703         0xF0A0, 0xF028, 0xFFFF, 0xFFFF,
704 };
705
706 static const u32 b43_ntab_pilotlt[] = {
707         0x76540123, 0x62407351, 0x76543201, 0x76540213,
708         0x76540123, 0x76430521,
709 };
710
711 static const u32 b43_ntab_tdi20a0[] = {
712         0x00091226, 0x000A1429, 0x000B56AD, 0x000C58B0,
713         0x000D5AB3, 0x000E9CB6, 0x000F9EBA, 0x0000C13D,
714         0x00020301, 0x00030504, 0x00040708, 0x0005090B,
715         0x00064B8E, 0x00095291, 0x000A5494, 0x000B9718,
716         0x000C9927, 0x000D9B2A, 0x000EDD2E, 0x000FDF31,
717         0x000101B4, 0x000243B7, 0x000345BB, 0x000447BE,
718         0x00058982, 0x00068C05, 0x00099309, 0x000A950C,
719         0x000BD78F, 0x000CD992, 0x000DDB96, 0x000F1D99,
720         0x00005FA8, 0x0001422C, 0x0002842F, 0x00038632,
721         0x00048835, 0x0005CA38, 0x0006CCBC, 0x0009D3BF,
722         0x000B1603, 0x000C1806, 0x000D1A0A, 0x000E1C0D,
723         0x000F5E10, 0x00008093, 0x00018297, 0x0002C49A,
724         0x0003C680, 0x0004C880, 0x00060B00, 0x00070D00,
725         0x00000000, 0x00000000, 0x00000000,
726 };
727
728 static const u32 b43_ntab_tdi20a1[] = {
729         0x00014B26, 0x00028D29, 0x000393AD, 0x00049630,
730         0x0005D833, 0x0006DA36, 0x00099C3A, 0x000A9E3D,
731         0x000BC081, 0x000CC284, 0x000DC488, 0x000F068B,
732         0x0000488E, 0x00018B91, 0x0002D214, 0x0003D418,
733         0x0004D6A7, 0x000618AA, 0x00071AAE, 0x0009DCB1,
734         0x000B1EB4, 0x000C0137, 0x000D033B, 0x000E053E,
735         0x000F4702, 0x00008905, 0x00020C09, 0x0003128C,
736         0x0004148F, 0x00051712, 0x00065916, 0x00091B19,
737         0x000A1D28, 0x000B5F2C, 0x000C41AF, 0x000D43B2,
738         0x000E85B5, 0x000F87B8, 0x0000C9BC, 0x00024CBF,
739         0x00035303, 0x00045506, 0x0005978A, 0x0006998D,
740         0x00095B90, 0x000A5D93, 0x000B9F97, 0x000C821A,
741         0x000D8400, 0x000EC600, 0x000FC800, 0x00010A00,
742         0x00000000, 0x00000000, 0x00000000,
743 };
744
745 static const u32 b43_ntab_tdi40a0[] = {
746         0x0011A346, 0x00136CCF, 0x0014F5D9, 0x001641E2,
747         0x0017CB6B, 0x00195475, 0x001B2383, 0x001CAD0C,
748         0x001E7616, 0x0000821F, 0x00020BA8, 0x0003D4B2,
749         0x00056447, 0x00072DD0, 0x0008B6DA, 0x000A02E3,
750         0x000B8C6C, 0x000D15F6, 0x0011E484, 0x0013AE0D,
751         0x00153717, 0x00168320, 0x00180CA9, 0x00199633,
752         0x001B6548, 0x001CEED1, 0x001EB7DB, 0x0000C3E4,
753         0x00024D6D, 0x000416F7, 0x0005A585, 0x00076F0F,
754         0x0008F818, 0x000A4421, 0x000BCDAB, 0x000D9734,
755         0x00122649, 0x0013EFD2, 0x001578DC, 0x0016C4E5,
756         0x00184E6E, 0x001A17F8, 0x001BA686, 0x001D3010,
757         0x001EF999, 0x00010522, 0x00028EAC, 0x00045835,
758         0x0005E74A, 0x0007B0D3, 0x00093A5D, 0x000A85E6,
759         0x000C0F6F, 0x000DD8F9, 0x00126787, 0x00143111,
760         0x0015BA9A, 0x00170623, 0x00188FAD, 0x001A5936,
761         0x001BE84B, 0x001DB1D4, 0x001F3B5E, 0x000146E7,
762         0x00031070, 0x000499FA, 0x00062888, 0x0007F212,
763         0x00097B9B, 0x000AC7A4, 0x000C50AE, 0x000E1A37,
764         0x0012A94C, 0x001472D5, 0x0015FC5F, 0x00174868,
765         0x0018D171, 0x001A9AFB, 0x001C2989, 0x001DF313,
766         0x001F7C9C, 0x000188A5, 0x000351AF, 0x0004DB38,
767         0x0006AA4D, 0x000833D7, 0x0009BD60, 0x000B0969,
768         0x000C9273, 0x000E5BFC, 0x00132A8A, 0x0014B414,
769         0x00163D9D, 0x001789A6, 0x001912B0, 0x001ADC39,
770         0x001C6BCE, 0x001E34D8, 0x001FBE61, 0x0001CA6A,
771         0x00039374, 0x00051CFD, 0x0006EC0B, 0x00087515,
772         0x0009FE9E, 0x000B4AA7, 0x000CD3B1, 0x000E9D3A,
773         0x00000000, 0x00000000,
774 };
775
776 static const u32 b43_ntab_tdi40a1[] = {
777         0x001EDB36, 0x000129CA, 0x0002B353, 0x00047CDD,
778         0x0005C8E6, 0x000791EF, 0x00091BF9, 0x000AAA07,
779         0x000C3391, 0x000DFD1A, 0x00120923, 0x0013D22D,
780         0x00155C37, 0x0016EACB, 0x00187454, 0x001A3DDE,
781         0x001B89E7, 0x001D12F0, 0x001F1CFA, 0x00016B88,
782         0x00033492, 0x0004BE1B, 0x00060A24, 0x0007D32E,
783         0x00095D38, 0x000AEC4C, 0x000C7555, 0x000E3EDF,
784         0x00124AE8, 0x001413F1, 0x0015A37B, 0x00172C89,
785         0x0018B593, 0x001A419C, 0x001BCB25, 0x001D942F,
786         0x001F63B9, 0x0001AD4D, 0x00037657, 0x0004C260,
787         0x00068BE9, 0x000814F3, 0x0009A47C, 0x000B2D8A,
788         0x000CB694, 0x000E429D, 0x00128C26, 0x001455B0,
789         0x0015E4BA, 0x00176E4E, 0x0018F758, 0x001A8361,
790         0x001C0CEA, 0x001DD674, 0x001FA57D, 0x0001EE8B,
791         0x0003B795, 0x0005039E, 0x0006CD27, 0x000856B1,
792         0x0009E5C6, 0x000B6F4F, 0x000CF859, 0x000E8462,
793         0x00130DEB, 0x00149775, 0x00162603, 0x0017AF8C,
794         0x00193896, 0x001AC49F, 0x001C4E28, 0x001E17B2,
795         0x0000A6C7, 0x00023050, 0x0003F9DA, 0x00054563,
796         0x00070EEC, 0x00089876, 0x000A2704, 0x000BB08D,
797         0x000D3A17, 0x001185A0, 0x00134F29, 0x0014D8B3,
798         0x001667C8, 0x0017F151, 0x00197ADB, 0x001B0664,
799         0x001C8FED, 0x001E5977, 0x0000E805, 0x0002718F,
800         0x00043B18, 0x000586A1, 0x0007502B, 0x0008D9B4,
801         0x000A68C9, 0x000BF252, 0x000DBBDC, 0x0011C7E5,
802         0x001390EE, 0x00151A78, 0x0016A906, 0x00183290,
803         0x0019BC19, 0x001B4822, 0x001CD12C, 0x001E9AB5,
804         0x00000000, 0x00000000,
805 };
806
807 static const u32 b43_ntab_tdtrn[] = {
808         0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
809         0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
810         0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
811         0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
812         0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
813         0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
814         0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
815         0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
816         0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
817         0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
818         0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
819         0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
820         0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
821         0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
822         0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
823         0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
824         0xFA58FA58, 0xF895043B, 0xFF4C09C0, 0xFBC6FFA8,
825         0xFB84F384, 0x0798F6F9, 0x05760122, 0x058409F6,
826         0x0B500000, 0x05B7F542, 0x08860432, 0x06DDFEE7,
827         0xFB84F384, 0xF9D90664, 0xF7E8025C, 0x00FFF7BD,
828         0x05A805A8, 0xF7BD00FF, 0x025CF7E8, 0x0664F9D9,
829         0xF384FB84, 0xFEE706DD, 0x04320886, 0xF54205B7,
830         0x00000B50, 0x09F60584, 0x01220576, 0xF6F90798,
831         0xF384FB84, 0xFFA8FBC6, 0x09C0FF4C, 0x043BF895,
832         0x02D402D4, 0x07DE0270, 0xFC96079C, 0xF90AFE94,
833         0xFE00FF2C, 0x02D4065D, 0x092A0096, 0x0014FBB8,
834         0xFD2CFD2C, 0x076AFB3C, 0x0096F752, 0xF991FD87,
835         0xFB2C0200, 0xFEB8F960, 0x08E0FC96, 0x049802A8,
836         0xFD2CFD2C, 0x02A80498, 0xFC9608E0, 0xF960FEB8,
837         0x0200FB2C, 0xFD87F991, 0xF7520096, 0xFB3C076A,
838         0xFD2CFD2C, 0xFBB80014, 0x0096092A, 0x065D02D4,
839         0xFF2CFE00, 0xFE94F90A, 0x079CFC96, 0x027007DE,
840         0x02D402D4, 0x027007DE, 0x079CFC96, 0xFE94F90A,
841         0xFF2CFE00, 0x065D02D4, 0x0096092A, 0xFBB80014,
842         0xFD2CFD2C, 0xFB3C076A, 0xF7520096, 0xFD87F991,
843         0x0200FB2C, 0xF960FEB8, 0xFC9608E0, 0x02A80498,
844         0xFD2CFD2C, 0x049802A8, 0x08E0FC96, 0xFEB8F960,
845         0xFB2C0200, 0xF991FD87, 0x0096F752, 0x076AFB3C,
846         0xFD2CFD2C, 0x0014FBB8, 0x092A0096, 0x02D4065D,
847         0xFE00FF2C, 0xF90AFE94, 0xFC96079C, 0x07DE0270,
848         0x00000000, 0x00000000, 0x00000000, 0x00000000,
849         0x00000000, 0x00000000, 0x00000000, 0x00000000,
850         0x00000000, 0x00000000, 0x00000000, 0x00000000,
851         0x00000000, 0x00000000, 0x00000000, 0x00000000,
852         0x00000000, 0x00000000, 0x00000000, 0x00000000,
853         0x00000000, 0x00000000, 0x00000000, 0x00000000,
854         0x00000000, 0x00000000, 0x00000000, 0x00000000,
855         0x00000000, 0x00000000, 0x00000000, 0x00000000,
856         0x00000000, 0x00000000, 0x00000000, 0x00000000,
857         0x00000000, 0x00000000, 0x00000000, 0x00000000,
858         0x00000000, 0x00000000, 0x00000000, 0x00000000,
859         0x00000000, 0x00000000, 0x00000000, 0x00000000,
860         0x00000000, 0x00000000, 0x00000000, 0x00000000,
861         0x00000000, 0x00000000, 0x00000000, 0x00000000,
862         0x00000000, 0x00000000, 0x00000000, 0x00000000,
863         0x00000000, 0x00000000, 0x00000000, 0x00000000,
864         0x00000000, 0x00000000, 0x00000000, 0x00000000,
865         0x00000000, 0x00000000, 0x00000000, 0x00000000,
866         0x00000000, 0x00000000, 0x00000000, 0x00000000,
867         0x00000000, 0x00000000, 0x00000000, 0x00000000,
868         0x00000000, 0x00000000, 0x00000000, 0x00000000,
869         0x00000000, 0x00000000, 0x00000000, 0x00000000,
870         0x00000000, 0x00000000, 0x00000000, 0x00000000,
871         0x00000000, 0x00000000, 0x00000000, 0x00000000,
872         0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
873         0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
874         0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
875         0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
876         0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
877         0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
878         0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
879         0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
880         0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
881         0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
882         0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
883         0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
884         0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
885         0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
886         0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
887         0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
888         0x061C061C, 0xFF30009D, 0xFFB21141, 0xFD87FB54,
889         0xF65DFE59, 0x02EEF99E, 0x0166F03C, 0xFFF809B6,
890         0x000008A4, 0x000AF42B, 0x00EFF577, 0xFA840BF2,
891         0xFC02FF51, 0x08260F67, 0xFFF0036F, 0x0842F9C3,
892         0x00000000, 0x063DF7BE, 0xFC910010, 0xF099F7DA,
893         0x00AF03FE, 0xF40E057C, 0x0A89FF11, 0x0BD5FFF6,
894         0xF75C0000, 0xF64A0008, 0x0FC4FE9A, 0x0662FD12,
895         0x01A709A3, 0x04AC0279, 0xEEBF004E, 0xFF6300D0,
896         0xF9E4F9E4, 0x00D0FF63, 0x004EEEBF, 0x027904AC,
897         0x09A301A7, 0xFD120662, 0xFE9A0FC4, 0x0008F64A,
898         0x0000F75C, 0xFFF60BD5, 0xFF110A89, 0x057CF40E,
899         0x03FE00AF, 0xF7DAF099, 0x0010FC91, 0xF7BE063D,
900         0x00000000, 0xF9C30842, 0x036FFFF0, 0x0F670826,
901         0xFF51FC02, 0x0BF2FA84, 0xF57700EF, 0xF42B000A,
902         0x08A40000, 0x09B6FFF8, 0xF03C0166, 0xF99E02EE,
903         0xFE59F65D, 0xFB54FD87, 0x1141FFB2, 0x009DFF30,
904         0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
905         0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
906         0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
907         0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
908         0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
909         0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
910         0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
911         0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
912         0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
913         0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
914         0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
915         0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
916         0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
917         0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
918         0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
919         0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
920         0xFA58FA58, 0xF8F0FE00, 0x0448073D, 0xFDC9FE46,
921         0xF9910258, 0x089D0407, 0xFD5CF71A, 0x02AFFDE0,
922         0x083E0496, 0xFF5A0740, 0xFF7AFD97, 0x00FE01F1,
923         0x0009082E, 0xFA94FF75, 0xFECDF8EA, 0xFFB0F693,
924         0xFD2CFA58, 0x0433FF16, 0xFBA405DD, 0xFA610341,
925         0x06A606CB, 0x0039FD2D, 0x0677FA97, 0x01FA05E0,
926         0xF896003E, 0x075A068B, 0x012CFC3E, 0xFA23F98D,
927         0xFC7CFD43, 0xFF90FC0D, 0x01C10982, 0x00C601D6,
928         0xFD2CFD2C, 0x01D600C6, 0x098201C1, 0xFC0DFF90,
929         0xFD43FC7C, 0xF98DFA23, 0xFC3E012C, 0x068B075A,
930         0x003EF896, 0x05E001FA, 0xFA970677, 0xFD2D0039,
931         0x06CB06A6, 0x0341FA61, 0x05DDFBA4, 0xFF160433,
932         0xFA58FD2C, 0xF693FFB0, 0xF8EAFECD, 0xFF75FA94,
933         0x082E0009, 0x01F100FE, 0xFD97FF7A, 0x0740FF5A,
934         0x0496083E, 0xFDE002AF, 0xF71AFD5C, 0x0407089D,
935         0x0258F991, 0xFE46FDC9, 0x073D0448, 0xFE00F8F0,
936         0xFD2CFD2C, 0xFCE00500, 0xFC09FDDC, 0xFE680157,
937         0x04C70571, 0xFC3AFF21, 0xFCD70228, 0x056D0277,
938         0x0200FE00, 0x0022F927, 0xFE3C032B, 0xFC44FF3C,
939         0x03E9FBDB, 0x04570313, 0x04C9FF5C, 0x000D03B8,
940         0xFA580000, 0xFBE900D2, 0xF9D0FE0B, 0x0125FDF9,
941         0x042501BF, 0x0328FA2B, 0xFFA902F0, 0xFA250157,
942         0x0200FE00, 0x03740438, 0xFF0405FD, 0x030CFE52,
943         0x0037FB39, 0xFF6904C5, 0x04F8FD23, 0xFD31FC1B,
944         0xFD2CFD2C, 0xFC1BFD31, 0xFD2304F8, 0x04C5FF69,
945         0xFB390037, 0xFE52030C, 0x05FDFF04, 0x04380374,
946         0xFE000200, 0x0157FA25, 0x02F0FFA9, 0xFA2B0328,
947         0x01BF0425, 0xFDF90125, 0xFE0BF9D0, 0x00D2FBE9,
948         0x0000FA58, 0x03B8000D, 0xFF5C04C9, 0x03130457,
949         0xFBDB03E9, 0xFF3CFC44, 0x032BFE3C, 0xF9270022,
950         0xFE000200, 0x0277056D, 0x0228FCD7, 0xFF21FC3A,
951         0x057104C7, 0x0157FE68, 0xFDDCFC09, 0x0500FCE0,
952         0xFD2CFD2C, 0x0500FCE0, 0xFDDCFC09, 0x0157FE68,
953         0x057104C7, 0xFF21FC3A, 0x0228FCD7, 0x0277056D,
954         0xFE000200, 0xF9270022, 0x032BFE3C, 0xFF3CFC44,
955         0xFBDB03E9, 0x03130457, 0xFF5C04C9, 0x03B8000D,
956         0x0000FA58, 0x00D2FBE9, 0xFE0BF9D0, 0xFDF90125,
957         0x01BF0425, 0xFA2B0328, 0x02F0FFA9, 0x0157FA25,
958         0xFE000200, 0x04380374, 0x05FDFF04, 0xFE52030C,
959         0xFB390037, 0x04C5FF69, 0xFD2304F8, 0xFC1BFD31,
960         0xFD2CFD2C, 0xFD31FC1B, 0x04F8FD23, 0xFF6904C5,
961         0x0037FB39, 0x030CFE52, 0xFF0405FD, 0x03740438,
962         0x0200FE00, 0xFA250157, 0xFFA902F0, 0x0328FA2B,
963         0x042501BF, 0x0125FDF9, 0xF9D0FE0B, 0xFBE900D2,
964         0xFA580000, 0x000D03B8, 0x04C9FF5C, 0x04570313,
965         0x03E9FBDB, 0xFC44FF3C, 0xFE3C032B, 0x0022F927,
966         0x0200FE00, 0x056D0277, 0xFCD70228, 0xFC3AFF21,
967         0x04C70571, 0xFE680157, 0xFC09FDDC, 0xFCE00500,
968         0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
969         0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
970         0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
971         0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
972         0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
973         0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
974         0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
975         0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
976         0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
977         0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
978         0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
979         0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
980         0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
981         0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
982         0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
983         0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
984 };
985
986 static const u32 b43_ntab_tmap[] = {
987         0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
988         0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
989         0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
990         0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
991         0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x000AA888,
992         0x88880000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
993         0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
994         0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
995         0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
996         0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
997         0xF1111110, 0x11111111, 0x11F11111, 0x00011111,
998         0x11110000, 0x1111F111, 0x11111111, 0x111111F1,
999         0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00088AAA,
1000         0xAAAA0000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1001         0xAAA8AAA0, 0x8AAA8AAA, 0xAA8A8A8A, 0x000AAA88,
1002         0x8AAA0000, 0xAAA8A888, 0x8AA88A8A, 0x8A88A888,
1003         0x08080A00, 0x0A08080A, 0x080A0A08, 0x00080808,
1004         0x080A0000, 0x080A0808, 0x080A0808, 0x0A0A0A08,
1005         0xA0A0A0A0, 0x80A0A080, 0x8080A0A0, 0x00008080,
1006         0x80A00000, 0x80A080A0, 0xA080A0A0, 0x8080A0A0,
1007         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1008         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1009         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1010         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1011         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1012         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1013         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1014         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1015         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1016         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1017         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1018         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1019         0x99999000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1020         0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1021         0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1022         0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
1023         0x22000000, 0x2222B222, 0x22222222, 0x222222B2,
1024         0xB2222220, 0x22222222, 0x22D22222, 0x00000222,
1025         0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1026         0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1027         0x33000000, 0x3333B333, 0x33333333, 0x333333B3,
1028         0xB3333330, 0x33333333, 0x33D33333, 0x00000333,
1029         0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
1030         0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
1031         0x99B99B00, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1032         0x9B99BB99, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1033         0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1034         0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
1035         0x22222200, 0x2222F222, 0x22222222, 0x222222F2,
1036         0x22222222, 0x22222222, 0x22F22222, 0x00000222,
1037         0x11000000, 0x1111F111, 0x11111111, 0x11111111,
1038         0xF1111111, 0x11111111, 0x11F11111, 0x01111111,
1039         0xBB9BB900, 0xB9B9BB99, 0xB99BBBBB, 0xBBBB9B9B,
1040         0xB9BB99BB, 0xB99999B9, 0xB9B9B99B, 0x00000BBB,
1041         0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1042         0xA8AA88AA, 0xA88888A8, 0xA8A8A88A, 0x0A888AAA,
1043         0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1044         0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00000AAA,
1045         0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1046         0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1047         0xBBBBBB00, 0x999BBBBB, 0x9BB99B9B, 0xB9B9B9BB,
1048         0xB9B99BBB, 0xB9B9B9BB, 0xB9BB9B99, 0x00000999,
1049         0x8A000000, 0xAA88A888, 0xA88888AA, 0xA88A8A88,
1050         0xA88AA88A, 0x88A8AAAA, 0xA8AA8AAA, 0x0888A88A,
1051         0x0B0B0B00, 0x090B0B0B, 0x0B090B0B, 0x0909090B,
1052         0x09090B0B, 0x09090B0B, 0x09090B09, 0x00000909,
1053         0x0A000000, 0x0A080808, 0x080A080A, 0x080A0A08,
1054         0x080A080A, 0x0808080A, 0x0A0A0A08, 0x0808080A,
1055         0xB0B0B000, 0x9090B0B0, 0x90B09090, 0xB0B0B090,
1056         0xB0B090B0, 0x90B0B0B0, 0xB0B09090, 0x00000090,
1057         0x80000000, 0xA080A080, 0xA08080A0, 0xA0808080,
1058         0xA080A080, 0x80A0A0A0, 0xA0A080A0, 0x00A0A0A0,
1059         0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
1060         0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
1061         0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
1062         0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
1063         0x33000000, 0x3333F333, 0x33333333, 0x333333F3,
1064         0xF3333330, 0x33333333, 0x33F33333, 0x00000333,
1065         0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
1066         0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
1067         0x99000000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1068         0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1069         0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1070         0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1071         0x88888000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1072         0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1073         0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1074         0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
1075         0x88A88A00, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1076         0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1077         0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1078         0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
1079         0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1080         0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1081         0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1082         0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1083         0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1084         0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1085         0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1086         0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1087         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1088         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1089         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1090         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1091         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1092         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1093         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1094         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1095         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1096         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1097         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1098         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1099 };
1100
1101 /* static tables, PHY revision >= 3 */
1102 static const u32 b43_ntab_framestruct_r3[] = {
1103         0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
1104         0x09804506, 0x00100030, 0x09804507, 0x00100030,
1105         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1106         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1107         0x08004a0c, 0x00100004, 0x01000a0d, 0x00100024,
1108         0x0980450e, 0x00100034, 0x0980450f, 0x00100034,
1109         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1110         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1111         0x00000a04, 0x00100000, 0x11008a05, 0x00100020,
1112         0x1980c506, 0x00100030, 0x21810506, 0x00100030,
1113         0x21810506, 0x00100030, 0x01800504, 0x00100030,
1114         0x11808505, 0x00100030, 0x29814507, 0x01100030,
1115         0x00000a04, 0x00100000, 0x11008a05, 0x00100020,
1116         0x21810506, 0x00100030, 0x21810506, 0x00100030,
1117         0x29814507, 0x01100030, 0x00000000, 0x00000000,
1118         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1119         0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
1120         0x1980c50e, 0x00100038, 0x2181050e, 0x00100038,
1121         0x2181050e, 0x00100038, 0x0180050c, 0x00100038,
1122         0x1180850d, 0x00100038, 0x2981450f, 0x01100038,
1123         0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
1124         0x2181050e, 0x00100038, 0x2181050e, 0x00100038,
1125         0x2981450f, 0x01100038, 0x00000000, 0x00000000,
1126         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1127         0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
1128         0x1980c506, 0x00100030, 0x1980c506, 0x00100030,
1129         0x11808504, 0x00100030, 0x3981ca05, 0x00100030,
1130         0x29814507, 0x01100030, 0x00000000, 0x00000000,
1131         0x10008a04, 0x00100000, 0x3981ca05, 0x00100030,
1132         0x1980c506, 0x00100030, 0x29814507, 0x01100030,
1133         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1134         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1135         0x08004a0c, 0x00100008, 0x01000a0d, 0x00100028,
1136         0x1980c50e, 0x00100038, 0x1980c50e, 0x00100038,
1137         0x1180850c, 0x00100038, 0x3981ca0d, 0x00100038,
1138         0x2981450f, 0x01100038, 0x00000000, 0x00000000,
1139         0x10008a0c, 0x00100008, 0x3981ca0d, 0x00100038,
1140         0x1980c50e, 0x00100038, 0x2981450f, 0x01100038,
1141         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1142         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1143         0x40021404, 0x00100000, 0x02001405, 0x00100040,
1144         0x0b004a06, 0x01900060, 0x13008a06, 0x01900060,
1145         0x13008a06, 0x01900060, 0x43020a04, 0x00100060,
1146         0x1b00ca05, 0x00100060, 0x23010a07, 0x01500060,
1147         0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
1148         0x13008a06, 0x01900060, 0x13008a06, 0x01900060,
1149         0x23010a07, 0x01500060, 0x00000000, 0x00000000,
1150         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1151         0x4002140c, 0x00100010, 0x0200140d, 0x00100050,
1152         0x0b004a0e, 0x01900070, 0x13008a0e, 0x01900070,
1153         0x13008a0e, 0x01900070, 0x43020a0c, 0x00100070,
1154         0x1b00ca0d, 0x00100070, 0x23010a0f, 0x01500070,
1155         0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1156         0x13008a0e, 0x01900070, 0x13008a0e, 0x01900070,
1157         0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
1158         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1159         0x50029404, 0x00100000, 0x32019405, 0x00100040,
1160         0x0b004a06, 0x01900060, 0x0b004a06, 0x01900060,
1161         0x5b02ca04, 0x00100060, 0x3b01d405, 0x00100060,
1162         0x23010a07, 0x01500060, 0x00000000, 0x00000000,
1163         0x5802d404, 0x00100000, 0x3b01d405, 0x00100060,
1164         0x0b004a06, 0x01900060, 0x23010a07, 0x01500060,
1165         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1166         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1167         0x5002940c, 0x00100010, 0x3201940d, 0x00100050,
1168         0x0b004a0e, 0x01900070, 0x0b004a0e, 0x01900070,
1169         0x5b02ca0c, 0x00100070, 0x3b01d40d, 0x00100070,
1170         0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
1171         0x5802d40c, 0x00100010, 0x3b01d40d, 0x00100070,
1172         0x0b004a0e, 0x01900070, 0x23010a0f, 0x01500070,
1173         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1174         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1175         0x40021404, 0x000f4800, 0x62031405, 0x00100040,
1176         0x53028a06, 0x01900060, 0x53028a07, 0x01900060,
1177         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1178         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1179         0x4002140c, 0x000f4808, 0x6203140d, 0x00100048,
1180         0x53028a0e, 0x01900068, 0x53028a0f, 0x01900068,
1181         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1182         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1183         0x00000a0c, 0x00100004, 0x11008a0d, 0x00100024,
1184         0x1980c50e, 0x00100034, 0x2181050e, 0x00100034,
1185         0x2181050e, 0x00100034, 0x0180050c, 0x00100038,
1186         0x1180850d, 0x00100038, 0x1181850d, 0x00100038,
1187         0x2981450f, 0x01100038, 0x00000000, 0x00000000,
1188         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1189         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1190         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1191         0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
1192         0x2181050e, 0x00100038, 0x2181050e, 0x00100038,
1193         0x1181850d, 0x00100038, 0x2981450f, 0x01100038,
1194         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1195         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1196         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1197         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1198         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1199         0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
1200         0x0180c506, 0x00100030, 0x0180c506, 0x00100030,
1201         0x2180c50c, 0x00100030, 0x49820a0d, 0x0016a130,
1202         0x41824a0d, 0x0016a130, 0x2981450f, 0x01100030,
1203         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1204         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1205         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1206         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1207         0x2000ca0c, 0x00100000, 0x49820a0d, 0x0016a130,
1208         0x1980c50e, 0x00100030, 0x41824a0d, 0x0016a130,
1209         0x2981450f, 0x01100030, 0x00000000, 0x00000000,
1210         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1211         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1212         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1213         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1214         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1215         0x4002140c, 0x00100008, 0x0200140d, 0x00100048,
1216         0x0b004a0e, 0x01900068, 0x13008a0e, 0x01900068,
1217         0x13008a0e, 0x01900068, 0x43020a0c, 0x00100070,
1218         0x1b00ca0d, 0x00100070, 0x1b014a0d, 0x00100070,
1219         0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
1220         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1221         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1222         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1223         0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1224         0x13008a0e, 0x01900070, 0x13008a0e, 0x01900070,
1225         0x1b014a0d, 0x00100070, 0x23010a0f, 0x01500070,
1226         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1227         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1228         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1229         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1230         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1231         0x50029404, 0x00100000, 0x32019405, 0x00100040,
1232         0x03004a06, 0x01900060, 0x03004a06, 0x01900060,
1233         0x6b030a0c, 0x00100060, 0x4b02140d, 0x0016a160,
1234         0x4302540d, 0x0016a160, 0x23010a0f, 0x01500060,
1235         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1236         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1237         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1238         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1239         0x6b03140c, 0x00100060, 0x4b02140d, 0x0016a160,
1240         0x0b004a0e, 0x01900060, 0x4302540d, 0x0016a160,
1241         0x23010a0f, 0x01500060, 0x00000000, 0x00000000,
1242         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1243         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1244         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1245         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1246         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1247         0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
1248         0x53028a06, 0x01900060, 0x5b02ca06, 0x01900060,
1249         0x5b02ca06, 0x01900060, 0x43020a04, 0x00100060,
1250         0x1b00ca05, 0x00100060, 0x53028a07, 0x0190c060,
1251         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1252         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1253         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1254         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1255         0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1256         0x53028a0e, 0x01900070, 0x5b02ca0e, 0x01900070,
1257         0x5b02ca0e, 0x01900070, 0x43020a0c, 0x00100070,
1258         0x1b00ca0d, 0x00100070, 0x53028a0f, 0x0190c070,
1259         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1260         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1261         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1262         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1263         0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
1264         0x5b02ca06, 0x01900060, 0x5b02ca06, 0x01900060,
1265         0x53028a07, 0x0190c060, 0x00000000, 0x00000000,
1266         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1267         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1268         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1269         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1270         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1271         0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
1272         0x5b02ca0e, 0x01900070, 0x5b02ca0e, 0x01900070,
1273         0x53028a0f, 0x0190c070, 0x00000000, 0x00000000,
1274         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1275         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1276         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1277         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1278         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1279         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1280         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1281         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1282         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1283         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1284         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1285         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1286         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1287         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1288         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1289         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1290         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1291         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1292         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1293         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1294         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1295         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1296         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1297         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1298         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1299         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1300         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1301         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1302         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1303         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1304         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1305         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1306         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1307         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1308         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1309         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1310         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1311 };
1312
1313 static const u16 b43_ntab_pilot_r3[] = {
1314         0xff08, 0xff08, 0xff08, 0xff08, 0xff08, 0xff08,
1315         0xff08, 0xff08, 0x80d5, 0x80d5, 0x80d5, 0x80d5,
1316         0x80d5, 0x80d5, 0x80d5, 0x80d5, 0xff0a, 0xff82,
1317         0xffa0, 0xff28, 0xffff, 0xffff, 0xffff, 0xffff,
1318         0xff82, 0xffa0, 0xff28, 0xff0a, 0xffff, 0xffff,
1319         0xffff, 0xffff, 0xf83f, 0xfa1f, 0xfa97, 0xfab5,
1320         0xf2bd, 0xf0bf, 0xffff, 0xffff, 0xf017, 0xf815,
1321         0xf215, 0xf095, 0xf035, 0xf01d, 0xffff, 0xffff,
1322         0xff08, 0xff02, 0xff80, 0xff20, 0xff08, 0xff02,
1323         0xff80, 0xff20, 0xf01f, 0xf817, 0xfa15, 0xf295,
1324         0xf0b5, 0xf03d, 0xffff, 0xffff, 0xf82a, 0xfa0a,
1325         0xfa82, 0xfaa0, 0xf2a8, 0xf0aa, 0xffff, 0xffff,
1326         0xf002, 0xf800, 0xf200, 0xf080, 0xf020, 0xf008,
1327         0xffff, 0xffff, 0xf00a, 0xf802, 0xfa00, 0xf280,
1328         0xf0a0, 0xf028, 0xffff, 0xffff,
1329 };
1330
1331 static const u32 b43_ntab_tmap_r3[] = {
1332         0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1333         0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1334         0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
1335         0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
1336         0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x000aa888,
1337         0x88880000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1338         0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1339         0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1340         0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
1341         0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
1342         0xf1111110, 0x11111111, 0x11f11111, 0x00011111,
1343         0x11110000, 0x1111f111, 0x11111111, 0x111111f1,
1344         0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00088aaa,
1345         0xaaaa0000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
1346         0xaaa8aaa0, 0x8aaa8aaa, 0xaa8a8a8a, 0x000aaa88,
1347         0x8aaa0000, 0xaaa8a888, 0x8aa88a8a, 0x8a88a888,
1348         0x08080a00, 0x0a08080a, 0x080a0a08, 0x00080808,
1349         0x080a0000, 0x080a0808, 0x080a0808, 0x0a0a0a08,
1350         0xa0a0a0a0, 0x80a0a080, 0x8080a0a0, 0x00008080,
1351         0x80a00000, 0x80a080a0, 0xa080a0a0, 0x8080a0a0,
1352         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1353         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1354         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1355         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1356         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1357         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1358         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1359         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1360         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1361         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1362         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1363         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1364         0x99999000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
1365         0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
1366         0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1367         0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
1368         0x22000000, 0x2222b222, 0x22222222, 0x222222b2,
1369         0xb2222220, 0x22222222, 0x22d22222, 0x00000222,
1370         0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1371         0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1372         0x33000000, 0x3333b333, 0x33333333, 0x333333b3,
1373         0xb3333330, 0x33333333, 0x33d33333, 0x00000333,
1374         0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
1375         0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
1376         0x99b99b00, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
1377         0x9b99bb99, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
1378         0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1379         0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
1380         0x22222200, 0x2222f222, 0x22222222, 0x222222f2,
1381         0x22222222, 0x22222222, 0x22f22222, 0x00000222,
1382         0x11000000, 0x1111f111, 0x11111111, 0x11111111,
1383         0xf1111111, 0x11111111, 0x11f11111, 0x01111111,
1384         0xbb9bb900, 0xb9b9bb99, 0xb99bbbbb, 0xbbbb9b9b,
1385         0xb9bb99bb, 0xb99999b9, 0xb9b9b99b, 0x00000bbb,
1386         0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
1387         0xa8aa88aa, 0xa88888a8, 0xa8a8a88a, 0x0a888aaa,
1388         0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
1389         0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00000aaa,
1390         0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1391         0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1392         0xbbbbbb00, 0x999bbbbb, 0x9bb99b9b, 0xb9b9b9bb,
1393         0xb9b99bbb, 0xb9b9b9bb, 0xb9bb9b99, 0x00000999,
1394         0x8a000000, 0xaa88a888, 0xa88888aa, 0xa88a8a88,
1395         0xa88aa88a, 0x88a8aaaa, 0xa8aa8aaa, 0x0888a88a,
1396         0x0b0b0b00, 0x090b0b0b, 0x0b090b0b, 0x0909090b,
1397         0x09090b0b, 0x09090b0b, 0x09090b09, 0x00000909,
1398         0x0a000000, 0x0a080808, 0x080a080a, 0x080a0a08,
1399         0x080a080a, 0x0808080a, 0x0a0a0a08, 0x0808080a,
1400         0xb0b0b000, 0x9090b0b0, 0x90b09090, 0xb0b0b090,
1401         0xb0b090b0, 0x90b0b0b0, 0xb0b09090, 0x00000090,
1402         0x80000000, 0xa080a080, 0xa08080a0, 0xa0808080,
1403         0xa080a080, 0x80a0a0a0, 0xa0a080a0, 0x00a0a0a0,
1404         0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
1405         0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
1406         0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
1407         0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
1408         0x33000000, 0x3333f333, 0x33333333, 0x333333f3,
1409         0xf3333330, 0x33333333, 0x33f33333, 0x00000333,
1410         0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
1411         0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
1412         0x99000000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
1413         0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
1414         0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1415         0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1416         0x88888000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1417         0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1418         0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1419         0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
1420         0x88a88a00, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1421         0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1422         0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1423         0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
1424         0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1425         0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1426         0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
1427         0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
1428         0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1429         0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1430         0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
1431         0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
1432         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1433         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1434         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1435         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1436         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1437         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1438         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1439         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1440         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1441         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1442         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1443         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1444 };
1445
1446 static const u32 b43_ntab_intlevel_r3[] = {
1447         0x00802070, 0x0671188d, 0x0a60192c, 0x0a300e46,
1448         0x00c1188d, 0x080024d2, 0x00000070,
1449 };
1450
1451 static const u32 b43_ntab_tdtrn_r3[] = {
1452         0x061c061c, 0x0050ee68, 0xf592fe36, 0xfe5212f6,
1453         0x00000c38, 0xfe5212f6, 0xf592fe36, 0x0050ee68,
1454         0x061c061c, 0xee680050, 0xfe36f592, 0x12f6fe52,
1455         0x0c380000, 0x12f6fe52, 0xfe36f592, 0xee680050,
1456         0x061c061c, 0x0050ee68, 0xf592fe36, 0xfe5212f6,
1457         0x00000c38, 0xfe5212f6, 0xf592fe36, 0x0050ee68,
1458         0x061c061c, 0xee680050, 0xfe36f592, 0x12f6fe52,
1459         0x0c380000, 0x12f6fe52, 0xfe36f592, 0xee680050,
1460         0x05e305e3, 0x004def0c, 0xf5f3fe47, 0xfe611246,
1461         0x00000bc7, 0xfe611246, 0xf5f3fe47, 0x004def0c,
1462         0x05e305e3, 0xef0c004d, 0xfe47f5f3, 0x1246fe61,
1463         0x0bc70000, 0x1246fe61, 0xfe47f5f3, 0xef0c004d,
1464         0x05e305e3, 0x004def0c, 0xf5f3fe47, 0xfe611246,
1465         0x00000bc7, 0xfe611246, 0xf5f3fe47, 0x004def0c,
1466         0x05e305e3, 0xef0c004d, 0xfe47f5f3, 0x1246fe61,
1467         0x0bc70000, 0x1246fe61, 0xfe47f5f3, 0xef0c004d,
1468         0xfa58fa58, 0xf895043b, 0xff4c09c0, 0xfbc6ffa8,
1469         0xfb84f384, 0x0798f6f9, 0x05760122, 0x058409f6,
1470         0x0b500000, 0x05b7f542, 0x08860432, 0x06ddfee7,
1471         0xfb84f384, 0xf9d90664, 0xf7e8025c, 0x00fff7bd,
1472         0x05a805a8, 0xf7bd00ff, 0x025cf7e8, 0x0664f9d9,
1473         0xf384fb84, 0xfee706dd, 0x04320886, 0xf54205b7,
1474         0x00000b50, 0x09f60584, 0x01220576, 0xf6f90798,
1475         0xf384fb84, 0xffa8fbc6, 0x09c0ff4c, 0x043bf895,
1476         0x02d402d4, 0x07de0270, 0xfc96079c, 0xf90afe94,
1477         0xfe00ff2c, 0x02d4065d, 0x092a0096, 0x0014fbb8,
1478         0xfd2cfd2c, 0x076afb3c, 0x0096f752, 0xf991fd87,
1479         0xfb2c0200, 0xfeb8f960, 0x08e0fc96, 0x049802a8,
1480         0xfd2cfd2c, 0x02a80498, 0xfc9608e0, 0xf960feb8,
1481         0x0200fb2c, 0xfd87f991, 0xf7520096, 0xfb3c076a,
1482         0xfd2cfd2c, 0xfbb80014, 0x0096092a, 0x065d02d4,
1483         0xff2cfe00, 0xfe94f90a, 0x079cfc96, 0x027007de,
1484         0x02d402d4, 0x027007de, 0x079cfc96, 0xfe94f90a,
1485         0xff2cfe00, 0x065d02d4, 0x0096092a, 0xfbb80014,
1486         0xfd2cfd2c, 0xfb3c076a, 0xf7520096, 0xfd87f991,
1487         0x0200fb2c, 0xf960feb8, 0xfc9608e0, 0x02a80498,
1488         0xfd2cfd2c, 0x049802a8, 0x08e0fc96, 0xfeb8f960,
1489         0xfb2c0200, 0xf991fd87, 0x0096f752, 0x076afb3c,
1490         0xfd2cfd2c, 0x0014fbb8, 0x092a0096, 0x02d4065d,
1491         0xfe00ff2c, 0xf90afe94, 0xfc96079c, 0x07de0270,
1492         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1493         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1494         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1495         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1496         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1497         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1498         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1499         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1500         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1501         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1502         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1503         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1504         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1505         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1506         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1507         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1508         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1509         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1510         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1511         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1512         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1513         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1514         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1515         0x00000000, 0x00000000, 0x00000000, 0x00000000,
1516         0x062a0000, 0xfefa0759, 0x08b80908, 0xf396fc2d,
1517         0xf9d6045c, 0xfc4ef608, 0xf748f596, 0x07b207bf,
1518         0x062a062a, 0xf84ef841, 0xf748f596, 0x03b209f8,
1519         0xf9d6045c, 0x0c6a03d3, 0x08b80908, 0x0106f8a7,
1520         0x062a0000, 0xfefaf8a7, 0x08b8f6f8, 0xf39603d3,
1521         0xf9d6fba4, 0xfc4e09f8, 0xf7480a6a, 0x07b2f841,
1522         0x062af9d6, 0xf84e07bf, 0xf7480a6a, 0x03b2f608,
1523         0xf9d6fba4, 0x0c6afc2d, 0x08b8f6f8, 0x01060759,
1524         0x062a0000, 0xfefa0759, 0x08b80908, 0xf396fc2d,
1525         0xf9d6045c, 0xfc4ef608, 0xf748f596, 0x07b207bf,
1526         0x062a062a, 0xf84ef841, 0xf748f596, 0x03b209f8,
1527         0xf9d6045c, 0x0c6a03d3, 0x08b80908, 0x0106f8a7,
1528         0x062a0000, 0xfefaf8a7, 0x08b8f6f8, 0xf39603d3,
1529         0xf9d6fba4, 0xfc4e09f8, 0xf7480a6a, 0x07b2f841,
1530         0x062af9d6, 0xf84e07bf, 0xf7480a6a, 0x03b2f608,
1531         0xf9d6fba4, 0x0c6afc2d, 0x08b8f6f8, 0x01060759,
1532         0x061c061c, 0xff30009d, 0xffb21141, 0xfd87fb54,
1533         0xf65dfe59, 0x02eef99e, 0x0166f03c, 0xfff809b6,
1534         0x000008a4, 0x000af42b, 0x00eff577, 0xfa840bf2,
1535         0xfc02ff51, 0x08260f67, 0xfff0036f, 0x0842f9c3,
1536         0x00000000, 0x063df7be, 0xfc910010, 0xf099f7da,
1537         0x00af03fe, 0xf40e057c, 0x0a89ff11, 0x0bd5fff6,
1538         0xf75c0000, 0xf64a0008, 0x0fc4fe9a, 0x0662fd12,
1539         0x01a709a3, 0x04ac0279, 0xeebf004e, 0xff6300d0,
1540         0xf9e4f9e4, 0x00d0ff63, 0x004eeebf, 0x027904ac,
1541         0x09a301a7, 0xfd120662, 0xfe9a0fc4, 0x0008f64a,
1542         0x0000f75c, 0xfff60bd5, 0xff110a89, 0x057cf40e,
1543         0x03fe00af, 0xf7daf099, 0x0010fc91, 0xf7be063d,
1544         0x00000000, 0xf9c30842, 0x036ffff0, 0x0f670826,
1545         0xff51fc02, 0x0bf2fa84, 0xf57700ef, 0xf42b000a,
1546         0x08a40000, 0x09b6fff8, 0xf03c0166, 0xf99e02ee,
1547         0xfe59f65d, 0xfb54fd87, 0x1141ffb2, 0x009dff30,
1548         0x05e30000, 0xff060705, 0x085408a0, 0xf425fc59,
1549         0xfa1d042a, 0xfc78f67a, 0xf7acf60e, 0x075a0766,
1550         0x05e305e3, 0xf8a6f89a, 0xf7acf60e, 0x03880986,
1551         0xfa1d042a, 0x0bdb03a7, 0x085408a0, 0x00faf8fb,
1552         0x05e30000, 0xff06f8fb, 0x0854f760, 0xf42503a7,
1553         0xfa1dfbd6, 0xfc780986, 0xf7ac09f2, 0x075af89a,
1554         0x05e3fa1d, 0xf8a60766, 0xf7ac09f2, 0x0388f67a,
1555         0xfa1dfbd6, 0x0bdbfc59, 0x0854f760, 0x00fa0705,
1556         0x05e30000, 0xff060705, 0x085408a0, 0xf425fc59,
1557         0xfa1d042a, 0xfc78f67a, 0xf7acf60e, 0x075a0766,
1558         0x05e305e3, 0xf8a6f89a, 0xf7acf60e, 0x03880986,
1559         0xfa1d042a, 0x0bdb03a7, 0x085408a0, 0x00faf8fb,
1560         0x05e30000, 0xff06f8fb, 0x0854f760, 0xf42503a7,
1561         0xfa1dfbd6, 0xfc780986, 0xf7ac09f2, 0x075af89a,
1562         0x05e3fa1d, 0xf8a60766, 0xf7ac09f2, 0x0388f67a,
1563         0xfa1dfbd6, 0x0bdbfc59, 0x0854f760, 0x00fa0705,
1564         0xfa58fa58, 0xf8f0fe00, 0x0448073d, 0xfdc9fe46,
1565         0xf9910258, 0x089d0407, 0xfd5cf71a, 0x02affde0,
1566         0x083e0496, 0xff5a0740, 0xff7afd97, 0x00fe01f1,
1567         0x0009082e, 0xfa94ff75, 0xfecdf8ea, 0xffb0f693,
1568         0xfd2cfa58, 0x0433ff16, 0xfba405dd, 0xfa610341,
1569         0x06a606cb, 0x0039fd2d, 0x0677fa97, 0x01fa05e0,
1570         0xf896003e, 0x075a068b, 0x012cfc3e, 0xfa23f98d,
1571         0xfc7cfd43, 0xff90fc0d, 0x01c10982, 0x00c601d6,
1572         0xfd2cfd2c, 0x01d600c6, 0x098201c1, 0xfc0dff90,
1573         0xfd43fc7c, 0xf98dfa23, 0xfc3e012c, 0x068b075a,
1574         0x003ef896, 0x05e001fa, 0xfa970677, 0xfd2d0039,
1575         0x06cb06a6, 0x0341fa61, 0x05ddfba4, 0xff160433,
1576         0xfa58fd2c, 0xf693ffb0, 0xf8eafecd, 0xff75fa94,
1577         0x082e0009, 0x01f100fe, 0xfd97ff7a, 0x0740ff5a,
1578         0x0496083e, 0xfde002af, 0xf71afd5c, 0x0407089d,
1579         0x0258f991, 0xfe46fdc9, 0x073d0448, 0xfe00f8f0,
1580         0xfd2cfd2c, 0xfce00500, 0xfc09fddc, 0xfe680157,
1581         0x04c70571, 0xfc3aff21, 0xfcd70228, 0x056d0277,
1582         0x0200fe00, 0x0022f927, 0xfe3c032b, 0xfc44ff3c,
1583         0x03e9fbdb, 0x04570313, 0x04c9ff5c, 0x000d03b8,
1584         0xfa580000, 0xfbe900d2, 0xf9d0fe0b, 0x0125fdf9,
1585         0x042501bf, 0x0328fa2b, 0xffa902f0, 0xfa250157,
1586         0x0200fe00, 0x03740438, 0xff0405fd, 0x030cfe52,
1587         0x0037fb39, 0xff6904c5, 0x04f8fd23, 0xfd31fc1b,
1588         0xfd2cfd2c, 0xfc1bfd31, 0xfd2304f8, 0x04c5ff69,
1589         0xfb390037, 0xfe52030c, 0x05fdff04, 0x04380374,
1590         0xfe000200, 0x0157fa25, 0x02f0ffa9, 0xfa2b0328,
1591         0x01bf0425, 0xfdf90125, 0xfe0bf9d0, 0x00d2fbe9,
1592         0x0000fa58, 0x03b8000d, 0xff5c04c9, 0x03130457,
1593         0xfbdb03e9, 0xff3cfc44, 0x032bfe3c, 0xf9270022,
1594         0xfe000200, 0x0277056d, 0x0228fcd7, 0xff21fc3a,
1595         0x057104c7, 0x0157fe68, 0xfddcfc09, 0x0500fce0,
1596         0xfd2cfd2c, 0x0500fce0, 0xfddcfc09, 0x0157fe68,
1597         0x057104c7, 0xff21fc3a, 0x0228fcd7, 0x0277056d,
1598         0xfe000200, 0xf9270022, 0x032bfe3c, 0xff3cfc44,
1599         0xfbdb03e9, 0x03130457, 0xff5c04c9, 0x03b8000d,
1600         0x0000fa58, 0x00d2fbe9, 0xfe0bf9d0, 0xfdf90125,
1601         0x01bf0425, 0xfa2b0328, 0x02f0ffa9, 0x0157fa25,
1602         0xfe000200, 0x04380374, 0x05fdff04, 0xfe52030c,
1603         0xfb390037, 0x04c5ff69, 0xfd2304f8, 0xfc1bfd31,
1604         0xfd2cfd2c, 0xfd31fc1b, 0x04f8fd23, 0xff6904c5,
1605         0x0037fb39, 0x030cfe52, 0xff0405fd, 0x03740438,
1606         0x0200fe00, 0xfa250157, 0xffa902f0, 0x0328fa2b,
1607         0x042501bf, 0x0125fdf9, 0xf9d0fe0b, 0xfbe900d2,
1608         0xfa580000, 0x000d03b8, 0x04c9ff5c, 0x04570313,
1609         0x03e9fbdb, 0xfc44ff3c, 0xfe3c032b, 0x0022f927,
1610         0x0200fe00, 0x056d0277, 0xfcd70228, 0xfc3aff21,
1611         0x04c70571, 0xfe680157, 0xfc09fddc, 0xfce00500,
1612         0x05a80000, 0xff1006be, 0x0800084a, 0xf49cfc7e,
1613         0xfa580400, 0xfc9cf6da, 0xf800f672, 0x0710071c,
1614         0x05a805a8, 0xf8f0f8e4, 0xf800f672, 0x03640926,
1615         0xfa580400, 0x0b640382, 0x0800084a, 0x00f0f942,
1616         0x05a80000, 0xff10f942, 0x0800f7b6, 0xf49c0382,
1617         0xfa58fc00, 0xfc9c0926, 0xf800098e, 0x0710f8e4,
1618         0x05a8fa58, 0xf8f0071c, 0xf800098e, 0x0364f6da,
1619         0xfa58fc00, 0x0b64fc7e, 0x0800f7b6, 0x00f006be,
1620         0x05a80000, 0xff1006be, 0x0800084a, 0xf49cfc7e,
1621         0xfa580400, 0xfc9cf6da, 0xf800f672, 0x0710071c,
1622         0x05a805a8, 0xf8f0f8e4, 0xf800f672, 0x03640926,
1623         0xfa580400, 0x0b640382, 0x0800084a, 0x00f0f942,
1624         0x05a80000, 0xff10f942, 0x0800f7b6, 0xf49c0382,
1625         0xfa58fc00, 0xfc9c0926, 0xf800098e, 0x0710f8e4,
1626         0x05a8fa58, 0xf8f0071c, 0xf800098e, 0x0364f6da,
1627         0xfa58fc00, 0x0b64fc7e, 0x0800f7b6, 0x00f006be,
1628 };
1629
1630 static const u32 b43_ntab_noisevar0_r3[] = {
1631         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1632         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1633         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1634         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1635         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1636         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1637         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1638         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1639         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1640         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1641         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1642         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1643         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1644         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1645         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1646         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1647         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1648         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1649         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1650         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1651         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1652         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1653         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1654         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1655         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1656         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1657         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1658         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1659         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1660         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1661         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1662         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1663         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1664         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1665         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1666         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1667         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1668         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1669         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1670         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1671         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1672         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1673         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1674         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1675         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1676         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1677         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1678         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1679         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1680         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1681         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1682         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1683         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1684         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1685         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1686         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1687         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1688         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1689         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1690         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1691         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1692         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1693         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1694         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1695 };
1696
1697 static const u32 b43_ntab_noisevar1_r3[] = {
1698         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1699         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1700         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1701         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1702         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1703         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1704         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1705         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1706         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1707         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1708         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1709         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1710         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1711         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1712         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1713         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1714         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1715         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1716         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1717         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1718         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1719         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1720         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1721         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1722         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1723         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1724         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1725         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1726         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1727         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1728         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1729         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1730         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1731         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1732         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1733         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1734         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1735         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1736         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1737         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1738         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1739         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1740         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1741         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1742         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1743         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1744         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1745         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1746         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1747         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1748         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1749         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1750         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1751         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1752         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1753         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1754         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1755         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1756         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1757         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1758         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1759         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1760         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1761         0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1762 };
1763
1764 static const u16 b43_ntab_mcs_r3[] = {
1765         0x0000, 0x0008, 0x000a, 0x0010, 0x0012, 0x0019,
1766         0x001a, 0x001c, 0x0080, 0x0088, 0x008a, 0x0090,
1767         0x0092, 0x0099, 0x009a, 0x009c, 0x0100, 0x0108,
1768         0x010a, 0x0110, 0x0112, 0x0119, 0x011a, 0x011c,
1769         0x0180, 0x0188, 0x018a, 0x0190, 0x0192, 0x0199,
1770         0x019a, 0x019c, 0x0000, 0x0098, 0x00a0, 0x00a8,
1771         0x009a, 0x00a2, 0x00aa, 0x0120, 0x0128, 0x0128,
1772         0x0130, 0x0138, 0x0138, 0x0140, 0x0122, 0x012a,
1773         0x012a, 0x0132, 0x013a, 0x013a, 0x0142, 0x01a8,
1774         0x01b0, 0x01b8, 0x01b0, 0x01b8, 0x01c0, 0x01c8,
1775         0x01c0, 0x01c8, 0x01d0, 0x01d0, 0x01d8, 0x01aa,
1776         0x01b2, 0x01ba, 0x01b2, 0x01ba, 0x01c2, 0x01ca,
1777         0x01c2, 0x01ca, 0x01d2, 0x01d2, 0x01da, 0x0001,
1778         0x0002, 0x0004, 0x0009, 0x000c, 0x0011, 0x0014,
1779         0x0018, 0x0020, 0x0021, 0x0022, 0x0024, 0x0081,
1780         0x0082, 0x0084, 0x0089, 0x008c, 0x0091, 0x0094,
1781         0x0098, 0x00a0, 0x00a1, 0x00a2, 0x00a4, 0x0007,
1782         0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1783         0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1784         0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1785         0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1786         0x0007, 0x0007,
1787 };
1788
1789 static const u32 b43_ntab_tdi20a0_r3[] = {
1790         0x00091226, 0x000a1429, 0x000b56ad, 0x000c58b0,
1791         0x000d5ab3, 0x000e9cb6, 0x000f9eba, 0x0000c13d,
1792         0x00020301, 0x00030504, 0x00040708, 0x0005090b,
1793         0x00064b8e, 0x00095291, 0x000a5494, 0x000b9718,
1794         0x000c9927, 0x000d9b2a, 0x000edd2e, 0x000fdf31,
1795         0x000101b4, 0x000243b7, 0x000345bb, 0x000447be,
1796         0x00058982, 0x00068c05, 0x00099309, 0x000a950c,
1797         0x000bd78f, 0x000cd992, 0x000ddb96, 0x000f1d99,
1798         0x00005fa8, 0x0001422c, 0x0002842f, 0x00038632,
1799         0x00048835, 0x0005ca38, 0x0006ccbc, 0x0009d3bf,
1800         0x000b1603, 0x000c1806, 0x000d1a0a, 0x000e1c0d,
1801         0x000f5e10, 0x00008093, 0x00018297, 0x0002c49a,
1802         0x0003c680, 0x0004c880, 0x00060b00, 0x00070d00,
1803         0x00000000, 0x00000000, 0x00000000,
1804 };
1805
1806 static const u32 b43_ntab_tdi20a1_r3[] = {
1807         0x00014b26, 0x00028d29, 0x000393ad, 0x00049630,
1808         0x0005d833, 0x0006da36, 0x00099c3a, 0x000a9e3d,
1809         0x000bc081, 0x000cc284, 0x000dc488, 0x000f068b,
1810         0x0000488e, 0x00018b91, 0x0002d214, 0x0003d418,
1811         0x0004d6a7, 0x000618aa, 0x00071aae, 0x0009dcb1,
1812         0x000b1eb4, 0x000c0137, 0x000d033b, 0x000e053e,
1813         0x000f4702, 0x00008905, 0x00020c09, 0x0003128c,
1814         0x0004148f, 0x00051712, 0x00065916, 0x00091b19,
1815         0x000a1d28, 0x000b5f2c, 0x000c41af, 0x000d43b2,
1816         0x000e85b5, 0x000f87b8, 0x0000c9bc, 0x00024cbf,
1817         0x00035303, 0x00045506, 0x0005978a, 0x0006998d,
1818         0x00095b90, 0x000a5d93, 0x000b9f97, 0x000c821a,
1819         0x000d8400, 0x000ec600, 0x000fc800, 0x00010a00,
1820         0x00000000, 0x00000000, 0x00000000,
1821 };
1822
1823 static const u32 b43_ntab_tdi40a0_r3[] = {
1824         0x0011a346, 0x00136ccf, 0x0014f5d9, 0x001641e2,
1825         0x0017cb6b, 0x00195475, 0x001b2383, 0x001cad0c,
1826         0x001e7616, 0x0000821f, 0x00020ba8, 0x0003d4b2,
1827         0x00056447, 0x00072dd0, 0x0008b6da, 0x000a02e3,
1828         0x000b8c6c, 0x000d15f6, 0x0011e484, 0x0013ae0d,
1829         0x00153717, 0x00168320, 0x00180ca9, 0x00199633,
1830         0x001b6548, 0x001ceed1, 0x001eb7db, 0x0000c3e4,
1831         0x00024d6d, 0x000416f7, 0x0005a585, 0x00076f0f,
1832         0x0008f818, 0x000a4421, 0x000bcdab, 0x000d9734,
1833         0x00122649, 0x0013efd2, 0x001578dc, 0x0016c4e5,
1834         0x00184e6e, 0x001a17f8, 0x001ba686, 0x001d3010,
1835         0x001ef999, 0x00010522, 0x00028eac, 0x00045835,
1836         0x0005e74a, 0x0007b0d3, 0x00093a5d, 0x000a85e6,
1837         0x000c0f6f, 0x000dd8f9, 0x00126787, 0x00143111,
1838         0x0015ba9a, 0x00170623, 0x00188fad, 0x001a5936,
1839         0x001be84b, 0x001db1d4, 0x001f3b5e, 0x000146e7,
1840         0x00031070, 0x000499fa, 0x00062888, 0x0007f212,
1841         0x00097b9b, 0x000ac7a4, 0x000c50ae, 0x000e1a37,
1842         0x0012a94c, 0x001472d5, 0x0015fc5f, 0x00174868,
1843         0x0018d171, 0x001a9afb, 0x001c2989, 0x001df313,
1844         0x001f7c9c, 0x000188a5, 0x000351af, 0x0004db38,
1845         0x0006aa4d, 0x000833d7, 0x0009bd60, 0x000b0969,
1846         0x000c9273, 0x000e5bfc, 0x00132a8a, 0x0014b414,
1847         0x00163d9d, 0x001789a6, 0x001912b0, 0x001adc39,
1848         0x001c6bce, 0x001e34d8, 0x001fbe61, 0x0001ca6a,
1849         0x00039374, 0x00051cfd, 0x0006ec0b, 0x00087515,
1850         0x0009fe9e, 0x000b4aa7, 0x000cd3b1, 0x000e9d3a,
1851         0x00000000, 0x00000000,
1852 };
1853
1854 static const u32 b43_ntab_tdi40a1_r3[] = {
1855         0x001edb36, 0x000129ca, 0x0002b353, 0x00047cdd,
1856         0x0005c8e6, 0x000791ef, 0x00091bf9, 0x000aaa07,
1857         0x000c3391, 0x000dfd1a, 0x00120923, 0x0013d22d,
1858         0x00155c37, 0x0016eacb, 0x00187454, 0x001a3dde,
1859         0x001b89e7, 0x001d12f0, 0x001f1cfa, 0x00016b88,
1860         0x00033492, 0x0004be1b, 0x00060a24, 0x0007d32e,
1861         0x00095d38, 0x000aec4c, 0x000c7555, 0x000e3edf,
1862         0x00124ae8, 0x001413f1, 0x0015a37b, 0x00172c89,
1863         0x0018b593, 0x001a419c, 0x001bcb25, 0x001d942f,
1864         0x001f63b9, 0x0001ad4d, 0x00037657, 0x0004c260,
1865         0x00068be9, 0x000814f3, 0x0009a47c, 0x000b2d8a,
1866         0x000cb694, 0x000e429d, 0x00128c26, 0x001455b0,
1867         0x0015e4ba, 0x00176e4e, 0x0018f758, 0x001a8361,
1868         0x001c0cea, 0x001dd674, 0x001fa57d, 0x0001ee8b,
1869         0x0003b795, 0x0005039e, 0x0006cd27, 0x000856b1,
1870         0x0009e5c6, 0x000b6f4f, 0x000cf859, 0x000e8462,
1871         0x00130deb, 0x00149775, 0x00162603, 0x0017af8c,
1872         0x00193896, 0x001ac49f, 0x001c4e28, 0x001e17b2,
1873         0x0000a6c7, 0x00023050, 0x0003f9da, 0x00054563,
1874         0x00070eec, 0x00089876, 0x000a2704, 0x000bb08d,
1875         0x000d3a17, 0x001185a0, 0x00134f29, 0x0014d8b3,
1876         0x001667c8, 0x0017f151, 0x00197adb, 0x001b0664,
1877         0x001c8fed, 0x001e5977, 0x0000e805, 0x0002718f,
1878         0x00043b18, 0x000586a1, 0x0007502b, 0x0008d9b4,
1879         0x000a68c9, 0x000bf252, 0x000dbbdc, 0x0011c7e5,
1880         0x001390ee, 0x00151a78, 0x0016a906, 0x00183290,
1881         0x0019bc19, 0x001b4822, 0x001cd12c, 0x001e9ab5,
1882         0x00000000, 0x00000000,
1883 };
1884
1885 static const u32 b43_ntab_pilotlt_r3[] = {
1886         0x76540213, 0x62407351, 0x76543210, 0x76540213,
1887         0x76540213, 0x76430521,
1888 };
1889
1890 static const u32 b43_ntab_channelest_r3[] = {
1891         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1892         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1893         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1894         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1895         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1896         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1897         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1898         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1899         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1900         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1901         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1902         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1903         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1904         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1905         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1906         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1907         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1908         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1909         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1910         0x44444444, 0x44444444, 0x44444444, 0x44444444,
1911         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1912         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1913         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1914         0x10101010, 0x10101010, 0x10101010, 0x10101010,
1915 };
1916
1917 static const u8 b43_ntab_framelookup_r3[] = {
1918         0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
1919         0x0a, 0x0c, 0x1c, 0x1c, 0x0b, 0x0d, 0x1e, 0x1e,
1920         0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1a, 0x1a,
1921         0x0e, 0x10, 0x20, 0x28, 0x0f, 0x11, 0x22, 0x2a,
1922 };
1923
1924 static const u8 b43_ntab_estimatepowerlt0_r3[] = {
1925         0x55, 0x54, 0x54, 0x53, 0x52, 0x52, 0x51, 0x51,
1926         0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c,
1927         0x4b, 0x4a, 0x49, 0x49, 0x48, 0x47, 0x46, 0x46,
1928         0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3f,
1929         0x3e, 0x3d, 0x3c, 0x3a, 0x39, 0x38, 0x37, 0x36,
1930         0x35, 0x33, 0x32, 0x31, 0x2f, 0x2e, 0x2c, 0x2b,
1931         0x29, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1a,
1932         0x18, 0x15, 0x12, 0x0e, 0x0b, 0x07, 0x02, 0xfd,
1933 };
1934
1935 static const u8 b43_ntab_estimatepowerlt1_r3[] = {
1936         0x55, 0x54, 0x54, 0x53, 0x52, 0x52, 0x51, 0x51,
1937         0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c,
1938         0x4b, 0x4a, 0x49, 0x49, 0x48, 0x47, 0x46, 0x46,
1939         0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3f,
1940         0x3e, 0x3d, 0x3c, 0x3a, 0x39, 0x38, 0x37, 0x36,
1941         0x35, 0x33, 0x32, 0x31, 0x2f, 0x2e, 0x2c, 0x2b,
1942         0x29, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1a,
1943         0x18, 0x15, 0x12, 0x0e, 0x0b, 0x07, 0x02, 0xfd,
1944 };
1945
1946 static const u8 b43_ntab_adjustpower0_r3[] = {
1947         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1948         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1949         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1950         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1951         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1952         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1953         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1954         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1955         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1956         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1957         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1958         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1959         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1960         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1961         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1962         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1963 };
1964
1965 static const u8 b43_ntab_adjustpower1_r3[] = {
1966         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1967         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1968         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1969         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1970         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1971         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1972         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1973         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1974         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1975         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1976         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1977         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1978         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1979         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1980         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1981         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1982 };
1983
1984 static const u32 b43_ntab_gainctl0_r3[] = {
1985         0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
1986         0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
1987         0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
1988         0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
1989         0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
1990         0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
1991         0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
1992         0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
1993         0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
1994         0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
1995         0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
1996         0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
1997         0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
1998         0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
1999         0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
2000         0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
2001         0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
2002         0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
2003         0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
2004         0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
2005         0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
2006         0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
2007         0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
2008         0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
2009         0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
2010         0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
2011         0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
2012         0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
2013         0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
2014         0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
2015         0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
2016         0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
2017 };
2018
2019 static const u32 b43_ntab_gainctl1_r3[] = {
2020         0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
2021         0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
2022         0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
2023         0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
2024         0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
2025         0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
2026         0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
2027         0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
2028         0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
2029         0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
2030         0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
2031         0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
2032         0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
2033         0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
2034         0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
2035         0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
2036         0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
2037         0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
2038         0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
2039         0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
2040         0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
2041         0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
2042         0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
2043         0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
2044         0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
2045         0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
2046         0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
2047         0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
2048         0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
2049         0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
2050         0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
2051         0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
2052 };
2053
2054 static const u32 b43_ntab_iqlt0_r3[] = {
2055         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2056         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2057         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2058         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2059         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2060         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2061         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2062         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2063         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2064         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2065         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2066         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2067         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2068         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2069         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2070         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2071         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2072         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2073         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2074         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2075         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2076         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2077         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2078         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2079         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2080         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2081         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2082         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2083         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2084         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2085         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2086         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2087 };
2088
2089 static const u32 b43_ntab_iqlt1_r3[] = {
2090         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2091         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2092         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2093         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2094         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2095         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2096         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2097         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2098         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2099         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2100         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2101         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2102         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2103         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2104         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2105         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2106         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2107         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2108         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2109         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2110         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2111         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2112         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2113         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2114         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2115         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2116         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2117         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2118         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2119         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2120         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2121         0x00000000, 0x00000000, 0x00000000, 0x00000000,
2122 };
2123
2124 static const u16 b43_ntab_loftlt0_r3[] = {
2125         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2126         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2127         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2128         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2129         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2130         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2131         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2132         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2133         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2134         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2135         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2136         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2137         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2138         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2139         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2140         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2141         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2142         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2143         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2144         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2145         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2146         0x0000, 0x0000,
2147 };
2148
2149 static const u16 b43_ntab_loftlt1_r3[] = {
2150         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2151         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2152         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2153         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2154         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2155         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2156         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2157         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2158         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2159         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2160         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2161         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2162         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2163         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2164         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2165         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2166         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2167         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2168         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2169         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2170         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2171         0x0000, 0x0000,
2172 };
2173
2174 /* TX gain tables */
2175 const u32 b43_ntab_tx_gain_rev0_1_2[] = {
2176         0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
2177         0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
2178         0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
2179         0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
2180         0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
2181         0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
2182         0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
2183         0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
2184         0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
2185         0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
2186         0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
2187         0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
2188         0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
2189         0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
2190         0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
2191         0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
2192         0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
2193         0x03902942, 0x03902844, 0x03902842, 0x03902744,
2194         0x03902742, 0x03902644, 0x03902642, 0x03902544,
2195         0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
2196         0x03802a42, 0x03802944, 0x03802942, 0x03802844,
2197         0x03802842, 0x03802744, 0x03802742, 0x03802644,
2198         0x03802642, 0x03802544, 0x03802542, 0x03802444,
2199         0x03802442, 0x03802344, 0x03802342, 0x03802244,
2200         0x03802242, 0x03802144, 0x03802142, 0x03802044,
2201         0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
2202         0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
2203         0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
2204         0x03801a42, 0x03801944, 0x03801942, 0x03801844,
2205         0x03801842, 0x03801744, 0x03801742, 0x03801644,
2206         0x03801642, 0x03801544, 0x03801542, 0x03801444,
2207         0x03801442, 0x03801344, 0x03801342, 0x00002b00,
2208 };
2209
2210 const u32 b43_ntab_tx_gain_rev3plus_2ghz[] = {
2211         0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
2212         0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
2213         0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
2214         0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
2215         0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
2216         0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
2217         0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
2218         0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
2219         0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
2220         0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
2221         0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
2222         0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
2223         0x19410044, 0x19410042, 0x19410040, 0x1941003e,
2224         0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
2225         0x18410044, 0x18410042, 0x18410040, 0x1841003e,
2226         0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
2227         0x17410044, 0x17410042, 0x17410040, 0x1741003e,
2228         0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
2229         0x16410044, 0x16410042, 0x16410040, 0x1641003e,
2230         0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
2231         0x15410044, 0x15410042, 0x15410040, 0x1541003e,
2232         0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
2233         0x14410044, 0x14410042, 0x14410040, 0x1441003e,
2234         0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
2235         0x13410044, 0x13410042, 0x13410040, 0x1341003e,
2236         0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
2237         0x12410044, 0x12410042, 0x12410040, 0x1241003e,
2238         0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
2239         0x11410044, 0x11410042, 0x11410040, 0x1141003e,
2240         0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
2241         0x10410044, 0x10410042, 0x10410040, 0x1041003e,
2242         0x1041003c, 0x1041003b, 0x10410039, 0x10410037,
2243 };
2244
2245 const u32 b43_ntab_tx_gain_rev3_5ghz[] = {
2246         0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
2247         0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
2248         0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
2249         0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
2250         0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
2251         0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
2252         0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
2253         0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
2254         0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
2255         0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
2256         0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
2257         0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
2258         0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
2259         0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
2260         0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
2261         0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
2262         0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
2263         0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
2264         0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
2265         0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
2266         0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
2267         0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
2268         0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
2269         0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
2270         0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
2271         0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
2272         0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
2273         0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
2274         0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
2275         0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
2276         0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
2277         0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037,
2278 };
2279
2280 const u32 b43_ntab_tx_gain_rev4_5ghz[] = {
2281         0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
2282         0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
2283         0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
2284         0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
2285         0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
2286         0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
2287         0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
2288         0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
2289         0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
2290         0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
2291         0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
2292         0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
2293         0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
2294         0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
2295         0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
2296         0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
2297         0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
2298         0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
2299         0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
2300         0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
2301         0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
2302         0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
2303         0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
2304         0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
2305         0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
2306         0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
2307         0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
2308         0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
2309         0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
2310         0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
2311         0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
2312         0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034,
2313 };
2314
2315 const u32 b43_ntab_tx_gain_rev5plus_5ghz[] = {
2316         0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
2317         0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
2318         0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
2319         0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
2320         0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
2321         0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
2322         0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
2323         0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
2324         0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
2325         0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
2326         0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
2327         0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
2328         0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
2329         0x09620039, 0x09620037, 0x09620035, 0x09620033,
2330         0x08620044, 0x08620042, 0x08620040, 0x0862003e,
2331         0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
2332         0x07620043, 0x07620042, 0x07620040, 0x0762003f,
2333         0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
2334         0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
2335         0x06620039, 0x06620037, 0x06620035, 0x06620033,
2336         0x05620046, 0x05620044, 0x05620042, 0x05620040,
2337         0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
2338         0x04620044, 0x04620042, 0x04620040, 0x0462003e,
2339         0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
2340         0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
2341         0x03620038, 0x03620037, 0x03620035, 0x03620033,
2342         0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
2343         0x02620046, 0x02620044, 0x02620043, 0x02620042,
2344         0x0162004a, 0x01620048, 0x01620046, 0x01620044,
2345         0x01620043, 0x01620042, 0x01620041, 0x01620040,
2346         0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
2347         0x0062003b, 0x00620039, 0x00620037, 0x00620035,
2348 };
2349
2350 const u32 txpwrctrl_tx_gain_ipa[] = {
2351         0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
2352         0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
2353         0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
2354         0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
2355         0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
2356         0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
2357         0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
2358         0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
2359         0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
2360         0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
2361         0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
2362         0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
2363         0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
2364         0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
2365         0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
2366         0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
2367         0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
2368         0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
2369         0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
2370         0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
2371         0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
2372         0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
2373         0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
2374         0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
2375         0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
2376         0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
2377         0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
2378         0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
2379         0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
2380         0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
2381         0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
2382         0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025,
2383 };
2384
2385 const u32 txpwrctrl_tx_gain_ipa_rev5[] = {
2386         0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
2387         0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
2388         0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
2389         0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
2390         0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
2391         0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
2392         0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
2393         0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
2394         0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
2395         0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
2396         0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
2397         0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
2398         0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
2399         0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
2400         0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
2401         0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
2402         0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
2403         0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
2404         0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
2405         0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
2406         0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
2407         0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
2408         0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
2409         0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
2410         0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
2411         0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
2412         0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
2413         0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
2414         0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
2415         0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
2416         0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
2417         0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025,
2418 };
2419
2420 const u32 txpwrctrl_tx_gain_ipa_rev6[] = {
2421         0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
2422         0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
2423         0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
2424         0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
2425         0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
2426         0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
2427         0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
2428         0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
2429         0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
2430         0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
2431         0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
2432         0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
2433         0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
2434         0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
2435         0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
2436         0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
2437         0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
2438         0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
2439         0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
2440         0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
2441         0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
2442         0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
2443         0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
2444         0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
2445         0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
2446         0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
2447         0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
2448         0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
2449         0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
2450         0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
2451         0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
2452         0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025,
2453 };
2454
2455 const u32 txpwrctrl_tx_gain_ipa_5g[] = {
2456         0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
2457         0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
2458         0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
2459         0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
2460         0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
2461         0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
2462         0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
2463         0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
2464         0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
2465         0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
2466         0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
2467         0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
2468         0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
2469         0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
2470         0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
2471         0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
2472         0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
2473         0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
2474         0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
2475         0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
2476         0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
2477         0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
2478         0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
2479         0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
2480         0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
2481         0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
2482         0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
2483         0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
2484         0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
2485         0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
2486         0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
2487         0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f,
2488 };
2489
2490 const u16 tbl_iqcal_gainparams[2][9][8] = {
2491         {
2492                 { 0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69 },
2493                 { 0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69 },
2494                 { 0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68 },
2495                 { 0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67 },
2496                 { 0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66 },
2497                 { 0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65 },
2498                 { 0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65 },
2499                 { 0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65 },
2500                 { 0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65 }
2501         },
2502         {
2503                 { 0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
2504                 { 0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
2505                 { 0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79 },
2506                 { 0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78 },
2507                 { 0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78 },
2508                 { 0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78 },
2509                 { 0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78 },
2510                 { 0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78 },
2511                 { 0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78 }
2512         }
2513 };
2514
2515 const struct nphy_txiqcal_ladder ladder_lo[] = {
2516         { 3, 0 },
2517         { 4, 0 },
2518         { 6, 0 },
2519         { 9, 0 },
2520         { 13, 0 },
2521         { 18, 0 },
2522         { 25, 0 },
2523         { 25, 1 },
2524         { 25, 2 },
2525         { 25, 3 },
2526         { 25, 4 },
2527         { 25, 5 },
2528         { 25, 6 },
2529         { 25, 7 },
2530         { 35, 7 },
2531         { 50, 7 },
2532         { 71, 7 },
2533         { 100, 7 }
2534 };
2535
2536 const struct nphy_txiqcal_ladder ladder_iq[] = {
2537         { 3, 0 },
2538         { 4, 0 },
2539         { 6, 0 },
2540         { 9, 0 },
2541         { 13, 0 },
2542         { 18, 0 },
2543         { 25, 0 },
2544         { 35, 0 },
2545         { 50, 0 },
2546         { 71, 0 },
2547         { 100, 0 },
2548         { 100, 1 },
2549         { 100, 2 },
2550         { 100, 3 },
2551         { 100, 4 },
2552         { 100, 5 },
2553         { 100, 6 },
2554         { 100, 7 }
2555 };
2556
2557 const u16 loscale[] = {
2558         256, 256, 271, 271,
2559         287, 256, 256, 271,
2560         271, 287, 287, 304,
2561         304, 256, 256, 271,
2562         271, 287, 287, 304,
2563         304, 322, 322, 341,
2564         341, 362, 362, 383,
2565         383, 256, 256, 271,
2566         271, 287, 287, 304,
2567         304, 322, 322, 256,
2568         256, 271, 271, 287,
2569         287, 304, 304, 322,
2570         322, 341, 341, 362,
2571         362, 256, 256, 271,
2572         271, 287, 287, 304,
2573         304, 322, 322, 256,
2574         256, 271, 271, 287,
2575         287, 304, 304, 322,
2576         322, 341, 341, 362,
2577         362, 256, 256, 271,
2578         271, 287, 287, 304,
2579         304, 322, 322, 341,
2580         341, 362, 362, 383,
2581         383, 406, 406, 430,
2582         430, 455, 455, 482,
2583         482, 511, 511, 541,
2584         541, 573, 573, 607,
2585         607, 643, 643, 681,
2586         681, 722, 722, 764,
2587         764, 810, 810, 858,
2588         858, 908, 908, 962,
2589         962, 1019, 1019, 256
2590 };
2591
2592 const u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
2593         0x0200, 0x0300, 0x0400, 0x0700,
2594         0x0900, 0x0c00, 0x1200, 0x1201,
2595         0x1202, 0x1203, 0x1204, 0x1205,
2596         0x1206, 0x1207, 0x1907, 0x2307,
2597         0x3207, 0x4707
2598 };
2599
2600 const u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
2601         0x0300, 0x0500, 0x0700, 0x0900,
2602         0x0d00, 0x1100, 0x1900, 0x1901,
2603         0x1902, 0x1903, 0x1904, 0x1905,
2604         0x1906, 0x1907, 0x2407, 0x3207,
2605         0x4607, 0x6407
2606 };
2607
2608 const u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
2609         0x0100, 0x0200, 0x0400, 0x0700,
2610         0x0900, 0x0c00, 0x1200, 0x1900,
2611         0x2300, 0x3200, 0x4700, 0x4701,
2612         0x4702, 0x4703, 0x4704, 0x4705,
2613         0x4706, 0x4707
2614 };
2615
2616 const u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
2617         0x0200, 0x0300, 0x0600, 0x0900,
2618         0x0d00, 0x1100, 0x1900, 0x2400,
2619         0x3200, 0x4600, 0x6400, 0x6401,
2620         0x6402, 0x6403, 0x6404, 0x6405,
2621         0x6406, 0x6407
2622 };
2623
2624 const u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[B43_NTAB_TX_IQLO_CAL_STARTCOEFS_REV3] = { };
2625
2626 const u16 tbl_tx_iqlo_cal_startcoefs[B43_NTAB_TX_IQLO_CAL_STARTCOEFS] = { };
2627
2628 const u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
2629         0x8423, 0x8323, 0x8073, 0x8256,
2630         0x8045, 0x8223, 0x9423, 0x9323,
2631         0x9073, 0x9256, 0x9045, 0x9223
2632 };
2633
2634 const u16 tbl_tx_iqlo_cal_cmds_recal[] = {
2635         0x8101, 0x8253, 0x8053, 0x8234,
2636         0x8034, 0x9101, 0x9253, 0x9053,
2637         0x9234, 0x9034
2638 };
2639
2640 const u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
2641         0x8123, 0x8264, 0x8086, 0x8245,
2642         0x8056, 0x9123, 0x9264, 0x9086,
2643         0x9245, 0x9056
2644 };
2645
2646 const u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
2647         0x8434, 0x8334, 0x8084, 0x8267,
2648         0x8056, 0x8234, 0x9434, 0x9334,
2649         0x9084, 0x9267, 0x9056, 0x9234
2650 };
2651
2652 const s16 tbl_tx_filter_coef_rev4[7][15] = {
2653         {  -377,   137,  -407,   208, -1527,
2654             956,    93,   186,    93,   230,
2655             -44,   230,    20,  -191,   201 },
2656         {   -77,    20,   -98,    49,   -93,
2657              60,    56,   111,    56,    26,
2658              -5,    26,    34,   -32,    34 },
2659         {  -360,   164,  -376,   164, -1533,
2660             576,   308,  -314,   308,   121,
2661             -73,   121,    91,   124,    91 },
2662         {  -295,   200,  -363,   142, -1391,
2663             826,   151,   301,   151,   151,
2664             301,   151,   602,  -752,   602 },
2665         {   -92,    58,   -96,    49,  -104,
2666              44,    17,    35,    17,    12,
2667              25,    12,    13,    27,    13 },
2668         {  -375,   136,  -399,   209, -1479,
2669             949,   130,   260,   130,   230,
2670             -44,   230,   201,  -191,   201 },
2671         { 0xed9,  0xc8, 0xe95,  0x8e, 0xa91,
2672           0x33a,  0x97, 0x12d,  0x97,  0x97,
2673           0x12d,  0x97, 0x25a, 0xd10, 0x25a }
2674 };
2675
2676 /* addr0,  addr1,  bmask,  shift */
2677 const struct nphy_rf_control_override_rev2 tbl_rf_control_override_rev2[] = {
2678         { 0x78, 0x78, 0x0038,  3 }, /* for field == 0x0002 (fls == 2) */
2679         { 0x7A, 0x7D, 0x0001,  0 }, /* for field == 0x0004 (fls == 3) */
2680         { 0x7A, 0x7D, 0x0002,  1 }, /* for field == 0x0008 (fls == 4) */
2681         { 0x7A, 0x7D, 0x0004,  2 }, /* for field == 0x0010 (fls == 5) */
2682         { 0x7A, 0x7D, 0x0030,  4 }, /* for field == 0x0020 (fls == 6) */
2683         { 0x7A, 0x7D, 0x00C0,  6 }, /* for field == 0x0040 (fls == 7) */
2684         { 0x7A, 0x7D, 0x0100,  8 }, /* for field == 0x0080 (fls == 8) */
2685         { 0x7A, 0x7D, 0x0200,  9 }, /* for field == 0x0100 (fls == 9) */
2686         { 0x78, 0x78, 0x0004,  2 }, /* for field == 0x0200 (fls == 10) */
2687         { 0x7B, 0x7E, 0x01FF,  0 }, /* for field == 0x0400 (fls == 11) */
2688         { 0x7C, 0x7F, 0x01FF,  0 }, /* for field == 0x0800 (fls == 12) */
2689         { 0x78, 0x78, 0x0100,  8 }, /* for field == 0x1000 (fls == 13) */
2690         { 0x78, 0x78, 0x0200,  9 }, /* for field == 0x2000 (fls == 14) */
2691         { 0x78, 0x78, 0xF000, 12 }  /* for field == 0x4000 (fls == 15) */
2692 };
2693
2694 /* val_mask, val_shift, en_addr0, val_addr0, en_addr1, val_addr1 */
2695 const struct nphy_rf_control_override_rev3 tbl_rf_control_override_rev3[] = {
2696         { 0x8000, 15, 0xE5, 0xF9, 0xE6, 0xFB }, /* field == 0x0001 (fls 1) */
2697         { 0x0001,  0, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0002 (fls 2) */
2698         { 0x0002,  1, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0004 (fls 3) */
2699         { 0x0004,  2, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0008 (fls 4) */
2700         { 0x0016,  4, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0010 (fls 5) */
2701         { 0x0020,  5, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0020 (fls 6) */
2702         { 0x0040,  6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0040 (fls 7) */
2703         { 0x0080,  6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0080 (fls 8) */
2704         { 0x0100,  7, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0100 (fls 9) */
2705         { 0x0007,  0, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0200 (fls 10) */
2706         { 0x0070,  4, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0400 (fls 11) */
2707         { 0xE000, 13, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0800 (fls 12) */
2708         { 0xFFFF,  0, 0xE7, 0x7B, 0xEC, 0x7E }, /* field == 0x1000 (fls 13) */
2709         { 0xFFFF,  0, 0xE7, 0x7C, 0xEC, 0x7F }, /* field == 0x2000 (fls 14) */
2710         { 0x00C0,  6, 0xE7, 0xF9, 0xEC, 0xFB }  /* field == 0x4000 (fls 15) */
2711 };
2712
2713 struct nphy_gain_ctl_workaround_entry nphy_gain_ctl_workaround[2][3] = {
2714         { /* 2GHz */
2715                 { /* PHY rev 3 */
2716                         { 7, 11, 16, 23 },
2717                         { -5, 6, 10, 14 },
2718                         { 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
2719                         { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
2720                         0x627E,
2721                         { 0x613F, 0x613F, 0x613F, 0x613F },
2722                         0x107E, 0x0066, 0x0074,
2723                         0x18, 0x18, 0x18,
2724                         0x020D, 0x5,
2725                 },
2726                 { /* PHY rev 4 */
2727                         { 8, 12, 17, 25 },
2728                         { -5, 6, 10, 14 },
2729                         { 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
2730                         { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
2731                         0x527E,
2732                         { 0x513F, 0x513F, 0x513F, 0x513F },
2733                         0x007E, 0x0066, 0x0074,
2734                         0x18, 0x18, 0x18,
2735                         0x01A1, 0x5,
2736                 },
2737                 { /* PHY rev 5+ */
2738                         { 9, 13, 18, 26 },
2739                         { -3, 7, 11, 16 },
2740                         { 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
2741                         { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
2742                         0x427E, /* invalid for external LNA! */
2743                         { 0x413F, 0x413F, 0x413F, 0x413F }, /* invalid for external LNA! */
2744                         0x1076, 0x0066, 0x106A,
2745                         0xC, 0xC, 0xC,
2746                         0x01D0, 0x5,
2747                 },
2748         },
2749         { /* 5GHz */
2750                 { /* PHY rev 3 */
2751                         { 7, 11, 17, 23 },
2752                         { -6, 2, 6, 10 },
2753                         { 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 },
2754                         { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
2755                         0x52DE,
2756                         { 0x516F, 0x516F, 0x516F, 0x516F },
2757                         0x00DE, 0x00CA, 0x00CC,
2758                         0x1E, 0x1E, 0x1E,
2759                         0x01A1, 25,
2760                 },
2761                 { /* PHY rev 4 */
2762                         { 8, 12, 18, 23 },
2763                         { -5, 2, 6, 10 },
2764                         { 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
2765                         { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
2766                         0x629E,
2767                         { 0x614F, 0x614F, 0x614F, 0x614F },
2768                         0x029E, 0x1084, 0x0086,
2769                         0x24, 0x24, 0x24,
2770                         0x0107, 25,
2771                 },
2772                 { /* PHY rev 5+ */
2773                         { 6, 10, 16, 21 },
2774                         { -7, 0, 4, 8 },
2775                         { 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
2776                         { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
2777                         0x729E,
2778                         { 0x714F, 0x714F, 0x714F, 0x714F },
2779                         0x029E, 0x2084, 0x2086,
2780                         0x24, 0x24, 0x24,
2781                         0x00A9, 25,
2782                 },
2783         },
2784 };
2785
2786 static inline void assert_ntab_array_sizes(void)
2787 {
2788 #undef check
2789 #define check(table, size)      \
2790         BUILD_BUG_ON(ARRAY_SIZE(b43_ntab_##table) != B43_NTAB_##size##_SIZE)
2791
2792         check(adjustpower0, C0_ADJPLT);
2793         check(adjustpower1, C1_ADJPLT);
2794         check(bdi, BDI);
2795         check(channelest, CHANEST);
2796         check(estimatepowerlt0, C0_ESTPLT);
2797         check(estimatepowerlt1, C1_ESTPLT);
2798         check(framelookup, FRAMELT);
2799         check(framestruct, FRAMESTRUCT);
2800         check(gainctl0, C0_GAINCTL);
2801         check(gainctl1, C1_GAINCTL);
2802         check(intlevel, INTLEVEL);
2803         check(iqlt0, C0_IQLT);
2804         check(iqlt1, C1_IQLT);
2805         check(loftlt0, C0_LOFEEDTH);
2806         check(loftlt1, C1_LOFEEDTH);
2807         check(mcs, MCS);
2808         check(noisevar10, NOISEVAR10);
2809         check(noisevar11, NOISEVAR11);
2810         check(pilot, PILOT);
2811         check(pilotlt, PILOTLT);
2812         check(tdi20a0, TDI20A0);
2813         check(tdi20a1, TDI20A1);
2814         check(tdi40a0, TDI40A0);
2815         check(tdi40a1, TDI40A1);
2816         check(tdtrn, TDTRN);
2817         check(tmap, TMAP);
2818
2819 #undef check
2820 }
2821
2822 u32 b43_ntab_read(struct b43_wldev *dev, u32 offset)
2823 {
2824         u32 type, value;
2825
2826         type = offset & B43_NTAB_TYPEMASK;
2827         offset &= ~B43_NTAB_TYPEMASK;
2828         B43_WARN_ON(offset > 0xFFFF);
2829
2830         switch (type) {
2831         case B43_NTAB_8BIT:
2832                 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2833                 value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF;
2834                 break;
2835         case B43_NTAB_16BIT:
2836                 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2837                 value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
2838                 break;
2839         case B43_NTAB_32BIT:
2840                 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2841                 value = b43_phy_read(dev, B43_NPHY_TABLE_DATAHI);
2842                 value <<= 16;
2843                 value |= b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
2844                 break;
2845         default:
2846                 B43_WARN_ON(1);
2847                 value = 0;
2848         }
2849
2850         return value;
2851 }
2852
2853 void b43_ntab_read_bulk(struct b43_wldev *dev, u32 offset,
2854                          unsigned int nr_elements, void *_data)
2855 {
2856         u32 type;
2857         u8 *data = _data;
2858         unsigned int i;
2859
2860         type = offset & B43_NTAB_TYPEMASK;
2861         offset &= ~B43_NTAB_TYPEMASK;
2862         B43_WARN_ON(offset > 0xFFFF);
2863
2864         b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2865
2866         for (i = 0; i < nr_elements; i++) {
2867                 switch (type) {
2868                 case B43_NTAB_8BIT:
2869                         *data = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF;
2870                         data++;
2871                         break;
2872                 case B43_NTAB_16BIT:
2873                         *((u16 *)data) = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
2874                         data += 2;
2875                         break;
2876                 case B43_NTAB_32BIT:
2877                         *((u32 *)data) = b43_phy_read(dev, B43_NPHY_TABLE_DATAHI);
2878                         *((u32 *)data) <<= 16;
2879                         *((u32 *)data) |= b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
2880                         data += 4;
2881                         break;
2882                 default:
2883                         B43_WARN_ON(1);
2884                 }
2885         }
2886 }
2887
2888 void b43_ntab_write(struct b43_wldev *dev, u32 offset, u32 value)
2889 {
2890         u32 type;
2891
2892         type = offset & B43_NTAB_TYPEMASK;
2893         offset &= 0xFFFF;
2894
2895         switch (type) {
2896         case B43_NTAB_8BIT:
2897                 B43_WARN_ON(value & ~0xFF);
2898                 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2899                 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
2900                 break;
2901         case B43_NTAB_16BIT:
2902                 B43_WARN_ON(value & ~0xFFFF);
2903                 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2904                 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
2905                 break;
2906         case B43_NTAB_32BIT:
2907                 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2908                 b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
2909                 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value & 0xFFFF);
2910                 break;
2911         default:
2912                 B43_WARN_ON(1);
2913         }
2914
2915         return;
2916
2917         /* Some compiletime assertions... */
2918         assert_ntab_array_sizes();
2919 }
2920
2921 void b43_ntab_write_bulk(struct b43_wldev *dev, u32 offset,
2922                           unsigned int nr_elements, const void *_data)
2923 {
2924         u32 type, value;
2925         const u8 *data = _data;
2926         unsigned int i;
2927
2928         type = offset & B43_NTAB_TYPEMASK;
2929         offset &= ~B43_NTAB_TYPEMASK;
2930         B43_WARN_ON(offset > 0xFFFF);
2931
2932         b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2933
2934         for (i = 0; i < nr_elements; i++) {
2935                 switch (type) {
2936                 case B43_NTAB_8BIT:
2937                         value = *data;
2938                         data++;
2939                         B43_WARN_ON(value & ~0xFF);
2940                         b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
2941                         break;
2942                 case B43_NTAB_16BIT:
2943                         value = *((u16 *)data);
2944                         data += 2;
2945                         B43_WARN_ON(value & ~0xFFFF);
2946                         b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
2947                         break;
2948                 case B43_NTAB_32BIT:
2949                         value = *((u32 *)data);
2950                         data += 4;
2951                         b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
2952                         b43_phy_write(dev, B43_NPHY_TABLE_DATALO,
2953                                         value & 0xFFFF);
2954                         break;
2955                 default:
2956                         B43_WARN_ON(1);
2957                 }
2958         }
2959 }
2960
2961 #define ntab_upload(dev, offset, data) do { \
2962                 b43_ntab_write_bulk(dev, offset, offset##_SIZE, data);  \
2963         } while (0)
2964 void b43_nphy_rev0_1_2_tables_init(struct b43_wldev *dev)
2965 {
2966         /* Static tables */
2967         ntab_upload(dev, B43_NTAB_FRAMESTRUCT, b43_ntab_framestruct);
2968         ntab_upload(dev, B43_NTAB_FRAMELT, b43_ntab_framelookup);
2969         ntab_upload(dev, B43_NTAB_TMAP, b43_ntab_tmap);
2970         ntab_upload(dev, B43_NTAB_TDTRN, b43_ntab_tdtrn);
2971         ntab_upload(dev, B43_NTAB_INTLEVEL, b43_ntab_intlevel);
2972         ntab_upload(dev, B43_NTAB_PILOT, b43_ntab_pilot);
2973         ntab_upload(dev, B43_NTAB_TDI20A0, b43_ntab_tdi20a0);
2974         ntab_upload(dev, B43_NTAB_TDI20A1, b43_ntab_tdi20a1);
2975         ntab_upload(dev, B43_NTAB_TDI40A0, b43_ntab_tdi40a0);
2976         ntab_upload(dev, B43_NTAB_TDI40A1, b43_ntab_tdi40a1);
2977         ntab_upload(dev, B43_NTAB_CHANEST, b43_ntab_channelest);
2978         ntab_upload(dev, B43_NTAB_MCS, b43_ntab_mcs);
2979         ntab_upload(dev, B43_NTAB_NOISEVAR10, b43_ntab_noisevar10);
2980         ntab_upload(dev, B43_NTAB_NOISEVAR11, b43_ntab_noisevar11);
2981
2982         /* Volatile tables */
2983         ntab_upload(dev, B43_NTAB_BDI, b43_ntab_bdi);
2984         ntab_upload(dev, B43_NTAB_PILOTLT, b43_ntab_pilotlt);
2985         ntab_upload(dev, B43_NTAB_C0_GAINCTL, b43_ntab_gainctl0);
2986         ntab_upload(dev, B43_NTAB_C1_GAINCTL, b43_ntab_gainctl1);
2987         ntab_upload(dev, B43_NTAB_C0_ESTPLT, b43_ntab_estimatepowerlt0);
2988         ntab_upload(dev, B43_NTAB_C1_ESTPLT, b43_ntab_estimatepowerlt1);
2989         ntab_upload(dev, B43_NTAB_C0_ADJPLT, b43_ntab_adjustpower0);
2990         ntab_upload(dev, B43_NTAB_C1_ADJPLT, b43_ntab_adjustpower1);
2991         ntab_upload(dev, B43_NTAB_C0_IQLT, b43_ntab_iqlt0);
2992         ntab_upload(dev, B43_NTAB_C1_IQLT, b43_ntab_iqlt1);
2993         ntab_upload(dev, B43_NTAB_C0_LOFEEDTH, b43_ntab_loftlt0);
2994         ntab_upload(dev, B43_NTAB_C1_LOFEEDTH, b43_ntab_loftlt1);
2995 }
2996
2997 #define ntab_upload_r3(dev, offset, data) do { \
2998                 b43_ntab_write_bulk(dev, offset, ARRAY_SIZE(data), data); \
2999         } while (0)
3000 void b43_nphy_rev3plus_tables_init(struct b43_wldev *dev)
3001 {
3002         /* Static tables */
3003         ntab_upload_r3(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3);
3004         ntab_upload_r3(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3);
3005         ntab_upload_r3(dev, B43_NTAB_TMAP_R3, b43_ntab_tmap_r3);
3006         ntab_upload_r3(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3);
3007         ntab_upload_r3(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3);
3008         ntab_upload_r3(dev, B43_NTAB_NOISEVAR0_R3, b43_ntab_noisevar0_r3);
3009         ntab_upload_r3(dev, B43_NTAB_NOISEVAR1_R3, b43_ntab_noisevar1_r3);
3010         ntab_upload_r3(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3);
3011         ntab_upload_r3(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3);
3012         ntab_upload_r3(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3);
3013         ntab_upload_r3(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3);
3014         ntab_upload_r3(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3);
3015         ntab_upload_r3(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3);
3016         ntab_upload_r3(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3);
3017         ntab_upload_r3(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3);
3018         ntab_upload_r3(dev, B43_NTAB_C0_ESTPLT_R3,
3019                        b43_ntab_estimatepowerlt0_r3);
3020         ntab_upload_r3(dev, B43_NTAB_C1_ESTPLT_R3,
3021                        b43_ntab_estimatepowerlt1_r3);
3022         ntab_upload_r3(dev, B43_NTAB_C0_ADJPLT_R3, b43_ntab_adjustpower0_r3);
3023         ntab_upload_r3(dev, B43_NTAB_C1_ADJPLT_R3, b43_ntab_adjustpower1_r3);
3024         ntab_upload_r3(dev, B43_NTAB_C0_GAINCTL_R3, b43_ntab_gainctl0_r3);
3025         ntab_upload_r3(dev, B43_NTAB_C1_GAINCTL_R3, b43_ntab_gainctl1_r3);
3026         ntab_upload_r3(dev, B43_NTAB_C0_IQLT_R3, b43_ntab_iqlt0_r3);
3027         ntab_upload_r3(dev, B43_NTAB_C1_IQLT_R3, b43_ntab_iqlt1_r3);
3028         ntab_upload_r3(dev, B43_NTAB_C0_LOFEEDTH_R3, b43_ntab_loftlt0_r3);
3029         ntab_upload_r3(dev, B43_NTAB_C1_LOFEEDTH_R3, b43_ntab_loftlt1_r3);
3030
3031         /* Volatile tables */
3032         /* TODO */
3033 }
3034
3035 struct nphy_gain_ctl_workaround_entry *b43_nphy_get_gain_ctl_workaround_ent(
3036         struct b43_wldev *dev, bool ghz5, bool ext_lna)
3037 {
3038         struct nphy_gain_ctl_workaround_entry *e;
3039         u8 phy_idx;
3040
3041         B43_WARN_ON(dev->phy.rev < 3);
3042         if (dev->phy.rev >= 5)
3043                 phy_idx = 2;
3044         else if (dev->phy.rev == 4)
3045                 phy_idx = 1;
3046         else
3047                 phy_idx = 0;
3048
3049         e = &nphy_gain_ctl_workaround[ghz5][phy_idx];
3050
3051         /* Only one entry differs for external LNA, so instead making whole
3052          * table 2 times bigger, hack is here
3053          */
3054         if (!ghz5 && dev->phy.rev >= 5 && ext_lna) {
3055                 e->rfseq_init[0] &= 0x0FFF;
3056                 e->rfseq_init[1] &= 0x0FFF;
3057                 e->rfseq_init[2] &= 0x0FFF;
3058                 e->rfseq_init[3] &= 0x0FFF;
3059                 e->init_gain &= 0x0FFF;
3060         }
3061
3062         return e;
3063 }