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