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