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