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