Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
tables_nphy.c
Go to the documentation of this file.
1 /*
2 
3  Broadcom B43 wireless driver
4  IEEE 802.11n PHY data tables
5 
6  Copyright (c) 2008 Michael Buesch <[email protected]>
7  Copyright (c) 2010 Rafał Miłecki <[email protected]>
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_antswctl2g_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 
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 
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 
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 
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 
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 
2672 
2674 
2676  0x8423, 0x8323, 0x8073, 0x8256,
2677  0x8045, 0x8223, 0x9423, 0x9323,
2678  0x9073, 0x9256, 0x9045, 0x9223
2679 };
2680 
2682  0x8101, 0x8253, 0x8053, 0x8234,
2683  0x8034, 0x9101, 0x9253, 0x9053,
2684  0x9234, 0x9034
2685 };
2686 
2688  0x8123, 0x8264, 0x8086, 0x8245,
2689  0x8056, 0x9123, 0x9264, 0x9086,
2690  0x9245, 0x9056
2691 };
2692 
2694  0x8434, 0x8334, 0x8084, 0x8267,
2695  0x8056, 0x8234, 0x9434, 0x9334,
2696  0x9084, 0x9267, 0x9056, 0x9234
2697 };
2698 
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 */
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 */
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 
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 };
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 
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 
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) {
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) =
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 
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 
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) {
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);
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, offset##_SIZE, data); \
3099  } while (0)
3101 {
3102  /* Static tables */
3103  ntab_upload(dev, B43_NTAB_FRAMESTRUCT, b43_ntab_framestruct);
3104  ntab_upload(dev, B43_NTAB_FRAMELT, b43_ntab_framelookup);
3105  ntab_upload(dev, B43_NTAB_TMAP, b43_ntab_tmap);
3106  ntab_upload(dev, B43_NTAB_TDTRN, b43_ntab_tdtrn);
3107  ntab_upload(dev, B43_NTAB_INTLEVEL, b43_ntab_intlevel);
3108  ntab_upload(dev, B43_NTAB_PILOT, b43_ntab_pilot);
3109  ntab_upload(dev, B43_NTAB_TDI20A0, b43_ntab_tdi20a0);
3110  ntab_upload(dev, B43_NTAB_TDI20A1, b43_ntab_tdi20a1);
3111  ntab_upload(dev, B43_NTAB_TDI40A0, b43_ntab_tdi40a0);
3112  ntab_upload(dev, B43_NTAB_TDI40A1, b43_ntab_tdi40a1);
3113  ntab_upload(dev, B43_NTAB_CHANEST, b43_ntab_channelest);
3114  ntab_upload(dev, B43_NTAB_MCS, b43_ntab_mcs);
3115  ntab_upload(dev, B43_NTAB_NOISEVAR10, b43_ntab_noisevar10);
3116  ntab_upload(dev, B43_NTAB_NOISEVAR11, b43_ntab_noisevar11);
3117 
3118  /* Volatile tables */
3119  ntab_upload(dev, B43_NTAB_BDI, b43_ntab_bdi);
3120  ntab_upload(dev, B43_NTAB_PILOTLT, b43_ntab_pilotlt);
3121  ntab_upload(dev, B43_NTAB_C0_GAINCTL, b43_ntab_gainctl0);
3122  ntab_upload(dev, B43_NTAB_C1_GAINCTL, b43_ntab_gainctl1);
3123  ntab_upload(dev, B43_NTAB_C0_ESTPLT, b43_ntab_estimatepowerlt0);
3124  ntab_upload(dev, B43_NTAB_C1_ESTPLT, b43_ntab_estimatepowerlt1);
3125  ntab_upload(dev, B43_NTAB_C0_ADJPLT, b43_ntab_adjustpower0);
3126  ntab_upload(dev, B43_NTAB_C1_ADJPLT, b43_ntab_adjustpower1);
3127  ntab_upload(dev, B43_NTAB_C0_IQLT, b43_ntab_iqlt0);
3128  ntab_upload(dev, B43_NTAB_C1_IQLT, b43_ntab_iqlt1);
3129  ntab_upload(dev, B43_NTAB_C0_LOFEEDTH, b43_ntab_loftlt0);
3130  ntab_upload(dev, B43_NTAB_C1_LOFEEDTH, b43_ntab_loftlt1);
3131 }
3132 
3133 #define ntab_upload_r3(dev, offset, data) do { \
3134  b43_ntab_write_bulk(dev, offset, ARRAY_SIZE(data), data); \
3135  } while (0)
3137 {
3138  struct ssb_sprom *sprom = dev->dev->bus_sprom;
3139 
3140  /* Static tables */
3141  ntab_upload_r3(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3);
3142  ntab_upload_r3(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3);
3143  ntab_upload_r3(dev, B43_NTAB_TMAP_R3, b43_ntab_tmap_r3);
3144  ntab_upload_r3(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3);
3145  ntab_upload_r3(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3);
3146  ntab_upload_r3(dev, B43_NTAB_NOISEVAR0_R3, b43_ntab_noisevar0_r3);
3147  ntab_upload_r3(dev, B43_NTAB_NOISEVAR1_R3, b43_ntab_noisevar1_r3);
3148  ntab_upload_r3(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3);
3149  ntab_upload_r3(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3);
3150  ntab_upload_r3(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3);
3151  ntab_upload_r3(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3);
3152  ntab_upload_r3(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3);
3153  ntab_upload_r3(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3);
3154  ntab_upload_r3(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3);
3155  ntab_upload_r3(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3);
3157  b43_ntab_estimatepowerlt0_r3);
3159  b43_ntab_estimatepowerlt1_r3);
3160  ntab_upload_r3(dev, B43_NTAB_C0_ADJPLT_R3, b43_ntab_adjustpower0_r3);
3161  ntab_upload_r3(dev, B43_NTAB_C1_ADJPLT_R3, b43_ntab_adjustpower1_r3);
3162  ntab_upload_r3(dev, B43_NTAB_C0_GAINCTL_R3, b43_ntab_gainctl0_r3);
3163  ntab_upload_r3(dev, B43_NTAB_C1_GAINCTL_R3, b43_ntab_gainctl1_r3);
3164  ntab_upload_r3(dev, B43_NTAB_C0_IQLT_R3, b43_ntab_iqlt0_r3);
3165  ntab_upload_r3(dev, B43_NTAB_C1_IQLT_R3, b43_ntab_iqlt1_r3);
3166  ntab_upload_r3(dev, B43_NTAB_C0_LOFEEDTH_R3, b43_ntab_loftlt0_r3);
3167  ntab_upload_r3(dev, B43_NTAB_C1_LOFEEDTH_R3, b43_ntab_loftlt1_r3);
3168 
3169  /* Volatile tables */
3170  if (sprom->fem.ghz2.antswlut < ARRAY_SIZE(b43_ntab_antswctl2g_r3))
3172  b43_ntab_antswctl2g_r3[sprom->fem.ghz2.antswlut]);
3173  else
3174  B43_WARN_ON(1);
3175 }
3176 
3177 /* http://bcm-v4.sipsolutions.net/802.11/PHY/N/GetIpaGainTbl */
3178 static const u32 *b43_nphy_get_ipa_gain_table(struct b43_wldev *dev)
3179 {
3180  if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) {
3181  if (dev->phy.rev >= 6) {
3182  if (dev->dev->chip_id == 47162)
3183  return txpwrctrl_tx_gain_ipa_rev5;
3184  return txpwrctrl_tx_gain_ipa_rev6;
3185  } else if (dev->phy.rev >= 5) {
3186  return txpwrctrl_tx_gain_ipa_rev5;
3187  } else {
3188  return txpwrctrl_tx_gain_ipa;
3189  }
3190  } else {
3191  return txpwrctrl_tx_gain_ipa_5g;
3192  }
3193 }
3194 
3196 {
3197  enum ieee80211_band band = b43_current_band(dev->wl);
3198  struct ssb_sprom *sprom = dev->dev->bus_sprom;
3199 
3200  if (dev->phy.rev < 3)
3201  return b43_ntab_tx_gain_rev0_1_2;
3202 
3203  /* rev 3+ */
3204  if ((dev->phy.n->ipa2g_on && band == IEEE80211_BAND_2GHZ) ||
3205  (dev->phy.n->ipa5g_on && band == IEEE80211_BAND_5GHZ)) {
3206  return b43_nphy_get_ipa_gain_table(dev);
3207  } else if (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ) {
3208  if (dev->phy.rev == 3)
3209  return b43_ntab_tx_gain_rev3_5ghz;
3210  if (dev->phy.rev == 4)
3211  return sprom->fem.ghz5.extpa_gain == 3 ?
3212  b43_ntab_tx_gain_rev4_5ghz :
3213  b43_ntab_tx_gain_rev4_5ghz; /* FIXME */
3214  else
3215  return b43_ntab_tx_gain_rev5plus_5ghz;
3216  } else {
3217  if (dev->phy.rev >= 5 && sprom->fem.ghz5.extpa_gain == 3)
3218  return b43_ntab_tx_gain_rev3plus_2ghz; /* FIXME */
3219  else
3220  return b43_ntab_tx_gain_rev3plus_2ghz;
3221  }
3222 }
3223 
3225  struct b43_wldev *dev, bool ghz5, bool ext_lna)
3226 {
3228  u8 phy_idx;
3229  u8 tr_iso = ghz5 ? dev->dev->bus_sprom->fem.ghz5.tr_iso :
3230  dev->dev->bus_sprom->fem.ghz2.tr_iso;
3231 
3232  if (!ghz5 && dev->phy.rev >= 6 && dev->phy.radio_rev == 11)
3234 
3235  B43_WARN_ON(dev->phy.rev < 3);
3236  if (dev->phy.rev >= 6)
3237  phy_idx = 3;
3238  else if (dev->phy.rev == 5)
3239  phy_idx = 2;
3240  else if (dev->phy.rev == 4)
3241  phy_idx = 1;
3242  else
3243  phy_idx = 0;
3244  e = &nphy_gain_ctl_workaround[ghz5][phy_idx];
3245 
3246  /* Some workarounds to the workarounds... */
3247  if (ghz5 && dev->phy.rev >= 6) {
3248  if (dev->phy.radio_rev == 11 &&
3249  !b43_channel_type_is_40mhz(dev->phy.channel_type))
3250  e->cliplo_gain = 0x2d;
3251  } else if (!ghz5 && dev->phy.rev >= 5) {
3252  if (ext_lna) {
3253  e->rfseq_init[0] &= ~0x4000;
3254  e->rfseq_init[1] &= ~0x4000;
3255  e->rfseq_init[2] &= ~0x4000;
3256  e->rfseq_init[3] &= ~0x4000;
3257  e->init_gain &= ~0x4000;
3258  }
3259  switch (tr_iso) {
3260  case 0:
3261  e->cliplo_gain = 0x0062;
3262  case 1:
3263  e->cliplo_gain = 0x0064;
3264  case 2:
3265  e->cliplo_gain = 0x006a;
3266  case 3:
3267  e->cliplo_gain = 0x106a;
3268  case 4:
3269  e->cliplo_gain = 0x106c;
3270  case 5:
3271  e->cliplo_gain = 0x1074;
3272  case 6:
3273  e->cliplo_gain = 0x107c;
3274  case 7:
3275  e->cliplo_gain = 0x207c;
3276  default:
3277  e->cliplo_gain = 0x106a;
3278  }
3279  } else if (ghz5 && dev->phy.rev == 4 && ext_lna) {
3280  e->rfseq_init[0] &= ~0x4000;
3281  e->rfseq_init[1] &= ~0x4000;
3282  e->rfseq_init[2] &= ~0x4000;
3283  e->rfseq_init[3] &= ~0x4000;
3284  e->init_gain &= ~0x4000;
3285  e->rfseq_init[0] |= 0x1000;
3286  e->rfseq_init[1] |= 0x1000;
3287  e->rfseq_init[2] |= 0x1000;
3288  e->rfseq_init[3] |= 0x1000;
3289  e->init_gain |= 0x1000;
3290  }
3291 
3292  return e;
3293 }
3294 
3296  struct b43_wldev *dev, u16 field, u8 override)
3297 {
3298  const struct nphy_rf_control_override_rev7 *e;
3299  u8 size, i;
3300 
3301  switch (override) {
3302  case 0:
3303  e = tbl_rf_control_override_rev7_over0;
3304  size = ARRAY_SIZE(tbl_rf_control_override_rev7_over0);
3305  break;
3306  case 1:
3307  e = tbl_rf_control_override_rev7_over1;
3308  size = ARRAY_SIZE(tbl_rf_control_override_rev7_over1);
3309  break;
3310  case 2:
3311  e = tbl_rf_control_override_rev7_over2;
3312  size = ARRAY_SIZE(tbl_rf_control_override_rev7_over2);
3313  break;
3314  default:
3315  b43err(dev->wl, "Invalid override value %d\n", override);
3316  return NULL;
3317  }
3318 
3319  for (i = 0; i < size; i++) {
3320  if (e[i].field == field)
3321  return &e[i];
3322  }
3323 
3324  return NULL;
3325 }