Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[pandora-kernel.git] / drivers / net / wireless / b43 / tables_phy_ht.c
1 /*
2
3   Broadcom B43 wireless driver
4   IEEE 802.11n HT-PHY data tables
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2 of the License, or
9   (at your option) any later version.
10
11   This program is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with this program; see the file COPYING.  If not, write to
18   the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
19   Boston, MA 02110-1301, USA.
20
21 */
22
23 #include "b43.h"
24 #include "tables_phy_ht.h"
25 #include "phy_common.h"
26 #include "phy_ht.h"
27
28 static const u16 b43_httab_0x12[] = {
29         0x0000, 0x0008, 0x000a, 0x0010, 0x0012, 0x0019,
30         0x001a, 0x001c, 0x0080, 0x0088, 0x008a, 0x0090,
31         0x0092, 0x0099, 0x009a, 0x009c, 0x0100, 0x0108,
32         0x010a, 0x0110, 0x0112, 0x0119, 0x011a, 0x011c,
33         0x0180, 0x0188, 0x018a, 0x0190, 0x0192, 0x0199,
34         0x019a, 0x019c, 0x0000, 0x0098, 0x00a0, 0x00a8,
35         0x009a, 0x00a2, 0x00aa, 0x0120, 0x0128, 0x0128,
36         0x0130, 0x0138, 0x0138, 0x0140, 0x0122, 0x012a,
37         0x012a, 0x0132, 0x013a, 0x013a, 0x0142, 0x01a8,
38         0x01b0, 0x01b8, 0x01b0, 0x01b8, 0x01c0, 0x01c8,
39         0x01c0, 0x01c8, 0x01d0, 0x01d0, 0x01d8, 0x01aa,
40         0x01b2, 0x01ba, 0x01b2, 0x01ba, 0x01c2, 0x01ca,
41         0x01c2, 0x01ca, 0x01d2, 0x01d2, 0x01da, 0x0001,
42         0x0002, 0x0004, 0x0009, 0x000c, 0x0011, 0x0014,
43         0x0018, 0x0020, 0x0021, 0x0022, 0x0024, 0x0081,
44         0x0082, 0x0084, 0x0089, 0x008c, 0x0091, 0x0094,
45         0x0098, 0x00a0, 0x00a1, 0x00a2, 0x00a4, 0x0007,
46         0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
47         0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
48         0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
49         0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
50         0x0007, 0x0007,
51 };
52
53 static const u16 b43_httab_0x27[] = {
54         0x0009, 0x000e, 0x0011, 0x0014, 0x0017, 0x001a,
55         0x001d, 0x0020, 0x0009, 0x000e, 0x0011, 0x0014,
56         0x0017, 0x001a, 0x001d, 0x0020, 0x0009, 0x000e,
57         0x0011, 0x0014, 0x0017, 0x001a, 0x001d, 0x0020,
58         0x0009, 0x000e, 0x0011, 0x0014, 0x0017, 0x001a,
59         0x001d, 0x0020,
60 };
61
62 static const u16 b43_httab_0x26[] = {
63         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
64         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
65         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
66         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
67         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
68         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
69         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
70         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
71         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
72         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
73         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
74         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
75         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
76         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
77         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
78         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
79         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
80         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
81         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
82         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
83         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
84         0x0000, 0x0000,
85 };
86
87 static const u32 b43_httab_0x25[] = {
88         0x00000000, 0x00000000, 0x00000000, 0x00000000,
89         0x00000000, 0x00000000, 0x00000000, 0x00000000,
90         0x00000000, 0x00000000, 0x00000000, 0x00000000,
91         0x00000000, 0x00000000, 0x00000000, 0x00000000,
92         0x00000000, 0x00000000, 0x00000000, 0x00000000,
93         0x00000000, 0x00000000, 0x00000000, 0x00000000,
94         0x00000000, 0x00000000, 0x00000000, 0x00000000,
95         0x00000000, 0x00000000, 0x00000000, 0x00000000,
96         0x00000000, 0x00000000, 0x00000000, 0x00000000,
97         0x00000000, 0x00000000, 0x00000000, 0x00000000,
98         0x00000000, 0x00000000, 0x00000000, 0x00000000,
99         0x00000000, 0x00000000, 0x00000000, 0x00000000,
100         0x00000000, 0x00000000, 0x00000000, 0x00000000,
101         0x00000000, 0x00000000, 0x00000000, 0x00000000,
102         0x00000000, 0x00000000, 0x00000000, 0x00000000,
103         0x00000000, 0x00000000, 0x00000000, 0x00000000,
104         0x00000000, 0x00000000, 0x00000000, 0x00000000,
105         0x00000000, 0x00000000, 0x00000000, 0x00000000,
106         0x00000000, 0x00000000, 0x00000000, 0x00000000,
107         0x00000000, 0x00000000, 0x00000000, 0x00000000,
108         0x00000000, 0x00000000, 0x00000000, 0x00000000,
109         0x00000000, 0x00000000, 0x00000000, 0x00000000,
110         0x00000000, 0x00000000, 0x00000000, 0x00000000,
111         0x00000000, 0x00000000, 0x00000000, 0x00000000,
112         0x00000000, 0x00000000, 0x00000000, 0x00000000,
113         0x00000000, 0x00000000, 0x00000000, 0x00000000,
114         0x00000000, 0x00000000, 0x00000000, 0x00000000,
115         0x00000000, 0x00000000, 0x00000000, 0x00000000,
116         0x00000000, 0x00000000, 0x00000000, 0x00000000,
117         0x00000000, 0x00000000, 0x00000000, 0x00000000,
118         0x00000000, 0x00000000, 0x00000000, 0x00000000,
119         0x00000000, 0x00000000, 0x00000000, 0x00000000,
120 };
121
122 static const u32 b43_httab_0x2f[] = {
123         0x00035700, 0x0002cc9a, 0x00026666, 0x0001581f,
124         0x0001581f, 0x0001581f, 0x0001581f, 0x0001581f,
125         0x0001581f, 0x0001581f, 0x0001581f, 0x00035700,
126         0x0002cc9a, 0x00026666, 0x0001581f, 0x0001581f,
127         0x0001581f, 0x0001581f, 0x0001581f, 0x0001581f,
128         0x0001581f, 0x0001581f,
129 };
130
131 static const u16 b43_httab_0x1a[] = {
132         0x0055, 0x0054, 0x0054, 0x0053, 0x0052, 0x0052,
133         0x0051, 0x0051, 0x0050, 0x004f, 0x004f, 0x004e,
134         0x004e, 0x004d, 0x004c, 0x004c, 0x004b, 0x004a,
135         0x0049, 0x0049, 0x0048, 0x0047, 0x0046, 0x0046,
136         0x0045, 0x0044, 0x0043, 0x0042, 0x0041, 0x0040,
137         0x0040, 0x003f, 0x003e, 0x003d, 0x003c, 0x003a,
138         0x0039, 0x0038, 0x0037, 0x0036, 0x0035, 0x0033,
139         0x0032, 0x0031, 0x002f, 0x002e, 0x002c, 0x002b,
140         0x0029, 0x0027, 0x0025, 0x0023, 0x0021, 0x001f,
141         0x001d, 0x001a, 0x0018, 0x0015, 0x0012, 0x000e,
142         0x000b, 0x0007, 0x0002, 0x00fd,
143 };
144
145 static const u16 b43_httab_0x1b[] = {
146         0x0055, 0x0054, 0x0054, 0x0053, 0x0052, 0x0052,
147         0x0051, 0x0051, 0x0050, 0x004f, 0x004f, 0x004e,
148         0x004e, 0x004d, 0x004c, 0x004c, 0x004b, 0x004a,
149         0x0049, 0x0049, 0x0048, 0x0047, 0x0046, 0x0046,
150         0x0045, 0x0044, 0x0043, 0x0042, 0x0041, 0x0040,
151         0x0040, 0x003f, 0x003e, 0x003d, 0x003c, 0x003a,
152         0x0039, 0x0038, 0x0037, 0x0036, 0x0035, 0x0033,
153         0x0032, 0x0031, 0x002f, 0x002e, 0x002c, 0x002b,
154         0x0029, 0x0027, 0x0025, 0x0023, 0x0021, 0x001f,
155         0x001d, 0x001a, 0x0018, 0x0015, 0x0012, 0x000e,
156         0x000b, 0x0007, 0x0002, 0x00fd,
157 };
158
159 static const u16 b43_httab_0x1c[] = {
160         0x0055, 0x0054, 0x0054, 0x0053, 0x0052, 0x0052,
161         0x0051, 0x0051, 0x0050, 0x004f, 0x004f, 0x004e,
162         0x004e, 0x004d, 0x004c, 0x004c, 0x004b, 0x004a,
163         0x0049, 0x0049, 0x0048, 0x0047, 0x0046, 0x0046,
164         0x0045, 0x0044, 0x0043, 0x0042, 0x0041, 0x0040,
165         0x0040, 0x003f, 0x003e, 0x003d, 0x003c, 0x003a,
166         0x0039, 0x0038, 0x0037, 0x0036, 0x0035, 0x0033,
167         0x0032, 0x0031, 0x002f, 0x002e, 0x002c, 0x002b,
168         0x0029, 0x0027, 0x0025, 0x0023, 0x0021, 0x001f,
169         0x001d, 0x001a, 0x0018, 0x0015, 0x0012, 0x000e,
170         0x000b, 0x0007, 0x0002, 0x00fd,
171 };
172
173 static const u32 b43_httab_0x1a_0xc0[] = {
174         0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
175         0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
176         0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
177         0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
178         0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
179         0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
180         0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
181         0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
182         0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
183         0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
184         0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
185         0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
186         0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
187         0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
188         0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
189         0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
190         0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
191         0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
192         0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
193         0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
194         0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
195         0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
196         0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
197         0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
198         0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
199         0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
200         0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
201         0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
202         0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
203         0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
204         0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
205         0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
206 };
207
208 static const u32 b43_httab_0x1a_0x140[] = {
209         0x00000000, 0x00000000, 0x00000000, 0x00000000,
210         0x00000000, 0x00000000, 0x00000000, 0x00000000,
211         0x00000000, 0x00000000, 0x00000000, 0x00000000,
212         0x00000000, 0x00000000, 0x00000000, 0x00000000,
213         0x00000000, 0x00000000, 0x00000000, 0x00000000,
214         0x00000000, 0x00000000, 0x00000000, 0x00000000,
215         0x00000000, 0x00000000, 0x00000000, 0x00000000,
216         0x00000000, 0x00000000, 0x00000000, 0x00000000,
217         0x00000000, 0x00000000, 0x00000000, 0x00000000,
218         0x00000000, 0x00000000, 0x00000000, 0x00000000,
219         0x00000000, 0x00000000, 0x00000000, 0x00000000,
220         0x00000000, 0x00000000, 0x00000000, 0x00000000,
221         0x00000000, 0x00000000, 0x00000000, 0x00000000,
222         0x00000000, 0x00000000, 0x00000000, 0x00000000,
223         0x00000000, 0x00000000, 0x00000000, 0x00000000,
224         0x00000000, 0x00000000, 0x00000000, 0x00000000,
225         0x00000000, 0x00000000, 0x00000000, 0x00000000,
226         0x00000000, 0x00000000, 0x00000000, 0x00000000,
227         0x00000000, 0x00000000, 0x00000000, 0x00000000,
228         0x00000000, 0x00000000, 0x00000000, 0x00000000,
229         0x00000000, 0x00000000, 0x00000000, 0x00000000,
230         0x00000000, 0x00000000, 0x00000000, 0x00000000,
231         0x00000000, 0x00000000, 0x00000000, 0x00000000,
232         0x00000000, 0x00000000, 0x00000000, 0x00000000,
233         0x00000000, 0x00000000, 0x00000000, 0x00000000,
234         0x00000000, 0x00000000, 0x00000000, 0x00000000,
235         0x00000000, 0x00000000, 0x00000000, 0x00000000,
236         0x00000000, 0x00000000, 0x00000000, 0x00000000,
237         0x00000000, 0x00000000, 0x00000000, 0x00000000,
238         0x00000000, 0x00000000, 0x00000000, 0x00000000,
239         0x00000000, 0x00000000, 0x00000000, 0x00000000,
240         0x00000000, 0x00000000, 0x00000000, 0x00000000,
241 };
242
243 static const u32 b43_httab_0x1b_0x140[] = {
244         0x00000000, 0x00000000, 0x00000000, 0x00000000,
245         0x00000000, 0x00000000, 0x00000000, 0x00000000,
246         0x00000000, 0x00000000, 0x00000000, 0x00000000,
247         0x00000000, 0x00000000, 0x00000000, 0x00000000,
248         0x00000000, 0x00000000, 0x00000000, 0x00000000,
249         0x00000000, 0x00000000, 0x00000000, 0x00000000,
250         0x00000000, 0x00000000, 0x00000000, 0x00000000,
251         0x00000000, 0x00000000, 0x00000000, 0x00000000,
252         0x00000000, 0x00000000, 0x00000000, 0x00000000,
253         0x00000000, 0x00000000, 0x00000000, 0x00000000,
254         0x00000000, 0x00000000, 0x00000000, 0x00000000,
255         0x00000000, 0x00000000, 0x00000000, 0x00000000,
256         0x00000000, 0x00000000, 0x00000000, 0x00000000,
257         0x00000000, 0x00000000, 0x00000000, 0x00000000,
258         0x00000000, 0x00000000, 0x00000000, 0x00000000,
259         0x00000000, 0x00000000, 0x00000000, 0x00000000,
260         0x00000000, 0x00000000, 0x00000000, 0x00000000,
261         0x00000000, 0x00000000, 0x00000000, 0x00000000,
262         0x00000000, 0x00000000, 0x00000000, 0x00000000,
263         0x00000000, 0x00000000, 0x00000000, 0x00000000,
264         0x00000000, 0x00000000, 0x00000000, 0x00000000,
265         0x00000000, 0x00000000, 0x00000000, 0x00000000,
266         0x00000000, 0x00000000, 0x00000000, 0x00000000,
267         0x00000000, 0x00000000, 0x00000000, 0x00000000,
268         0x00000000, 0x00000000, 0x00000000, 0x00000000,
269         0x00000000, 0x00000000, 0x00000000, 0x00000000,
270         0x00000000, 0x00000000, 0x00000000, 0x00000000,
271         0x00000000, 0x00000000, 0x00000000, 0x00000000,
272         0x00000000, 0x00000000, 0x00000000, 0x00000000,
273         0x00000000, 0x00000000, 0x00000000, 0x00000000,
274         0x00000000, 0x00000000, 0x00000000, 0x00000000,
275         0x00000000, 0x00000000, 0x00000000, 0x00000000,
276 };
277
278 static const u32 b43_httab_0x1c_0x140[] = {
279         0x00000000, 0x00000000, 0x00000000, 0x00000000,
280         0x00000000, 0x00000000, 0x00000000, 0x00000000,
281         0x00000000, 0x00000000, 0x00000000, 0x00000000,
282         0x00000000, 0x00000000, 0x00000000, 0x00000000,
283         0x00000000, 0x00000000, 0x00000000, 0x00000000,
284         0x00000000, 0x00000000, 0x00000000, 0x00000000,
285         0x00000000, 0x00000000, 0x00000000, 0x00000000,
286         0x00000000, 0x00000000, 0x00000000, 0x00000000,
287         0x00000000, 0x00000000, 0x00000000, 0x00000000,
288         0x00000000, 0x00000000, 0x00000000, 0x00000000,
289         0x00000000, 0x00000000, 0x00000000, 0x00000000,
290         0x00000000, 0x00000000, 0x00000000, 0x00000000,
291         0x00000000, 0x00000000, 0x00000000, 0x00000000,
292         0x00000000, 0x00000000, 0x00000000, 0x00000000,
293         0x00000000, 0x00000000, 0x00000000, 0x00000000,
294         0x00000000, 0x00000000, 0x00000000, 0x00000000,
295         0x00000000, 0x00000000, 0x00000000, 0x00000000,
296         0x00000000, 0x00000000, 0x00000000, 0x00000000,
297         0x00000000, 0x00000000, 0x00000000, 0x00000000,
298         0x00000000, 0x00000000, 0x00000000, 0x00000000,
299         0x00000000, 0x00000000, 0x00000000, 0x00000000,
300         0x00000000, 0x00000000, 0x00000000, 0x00000000,
301         0x00000000, 0x00000000, 0x00000000, 0x00000000,
302         0x00000000, 0x00000000, 0x00000000, 0x00000000,
303         0x00000000, 0x00000000, 0x00000000, 0x00000000,
304         0x00000000, 0x00000000, 0x00000000, 0x00000000,
305         0x00000000, 0x00000000, 0x00000000, 0x00000000,
306         0x00000000, 0x00000000, 0x00000000, 0x00000000,
307         0x00000000, 0x00000000, 0x00000000, 0x00000000,
308         0x00000000, 0x00000000, 0x00000000, 0x00000000,
309         0x00000000, 0x00000000, 0x00000000, 0x00000000,
310         0x00000000, 0x00000000, 0x00000000, 0x00000000,
311 };
312
313 static const u16 b43_httab_0x1a_0x1c0[] = {
314         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
315         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
316         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
317         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
318         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
319         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
320         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
321         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
322         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
323         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
324         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
325         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
326         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
327         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
328         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
329         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
330         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
331         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
332         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
333         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
334         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
335         0x0000, 0x0000,
336 };
337
338 static const u16 b43_httab_0x1b_0x1c0[] = {
339         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
340         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
341         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
342         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
343         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
344         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
345         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
346         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
347         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
348         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
349         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
350         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
351         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
352         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
353         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
354         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
355         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
356         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
357         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
358         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
359         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
360         0x0000, 0x0000,
361 };
362
363 static const u16 b43_httab_0x1c_0x1c0[] = {
364         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
365         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
366         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
367         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
368         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
369         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
370         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
371         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
372         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
373         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
374         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
375         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
376         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
377         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
378         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
379         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
380         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
381         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
382         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
383         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
384         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
385         0x0000, 0x0000,
386 };
387
388 static const u16 b43_httab_0x1a_0x240[] = {
389         0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
390         0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
391         0x0036, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
392         0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
393         0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
394         0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
395         0x001e, 0x001e, 0x001e, 0x001e, 0x000e, 0x000e,
396         0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
397         0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
398         0x000e, 0x000e, 0x000e, 0x000e, 0x01fc, 0x01fc,
399         0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
400         0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
401         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
402         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
403         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
404         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
405         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
406         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
407         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
408         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
409         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
410         0x01d6, 0x01d6,
411 };
412
413 static const u16 b43_httab_0x1b_0x240[] = {
414         0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
415         0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
416         0x0036, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
417         0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
418         0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
419         0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
420         0x001e, 0x001e, 0x001e, 0x001e, 0x000e, 0x000e,
421         0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
422         0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
423         0x000e, 0x000e, 0x000e, 0x000e, 0x01fc, 0x01fc,
424         0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
425         0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
426         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
427         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
428         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
429         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
430         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
431         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
432         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
433         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
434         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
435         0x01d6, 0x01d6,
436 };
437
438 static const u16 b43_httab_0x1c_0x240[] = {
439         0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
440         0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
441         0x0036, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
442         0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
443         0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
444         0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
445         0x001e, 0x001e, 0x001e, 0x001e, 0x000e, 0x000e,
446         0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
447         0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
448         0x000e, 0x000e, 0x000e, 0x000e, 0x01fc, 0x01fc,
449         0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
450         0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
451         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
452         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
453         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
454         0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
455         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
456         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
457         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
458         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
459         0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
460         0x01d6, 0x01d6,
461 };
462
463 static const u32 b43_httab_0x1f[] = {
464         0x00000000, 0x00000000, 0x00016023, 0x00006028,
465         0x00034036, 0x0003402e, 0x0007203c, 0x0006e037,
466         0x00070030, 0x0009401f, 0x0009a00f, 0x000b600d,
467         0x000c8007, 0x000ce007, 0x00101fff, 0x00121ff9,
468         0x0012e004, 0x0014dffc, 0x0016dff6, 0x0018dfe9,
469         0x001b3fe5, 0x001c5fd0, 0x001ddfc2, 0x001f1fb6,
470         0x00207fa4, 0x00219f8f, 0x0022ff7d, 0x00247f6c,
471         0x0024df5b, 0x00267f4b, 0x0027df3b, 0x0029bf3b,
472         0x002b5f2f, 0x002d3f2e, 0x002f5f2a, 0x002fff15,
473         0x00315f0b, 0x0032defa, 0x0033beeb, 0x0034fed9,
474         0x00353ec5, 0x00361eb0, 0x00363e9b, 0x0036be87,
475         0x0036be70, 0x0038fe67, 0x0044beb2, 0x00513ef3,
476         0x00595f11, 0x00669f3d, 0x0078dfdf, 0x00a143aa,
477         0x01642fff, 0x0162afff, 0x01620fff, 0x0160cfff,
478         0x015f0fff, 0x015dafff, 0x015bcfff, 0x015bcfff,
479         0x015b4fff, 0x015acfff, 0x01590fff, 0x0156cfff,
480 };
481
482 static const u32 b43_httab_0x21[] = {
483         0x00000000, 0x00000000, 0x00016023, 0x00006028,
484         0x00034036, 0x0003402e, 0x0007203c, 0x0006e037,
485         0x00070030, 0x0009401f, 0x0009a00f, 0x000b600d,
486         0x000c8007, 0x000ce007, 0x00101fff, 0x00121ff9,
487         0x0012e004, 0x0014dffc, 0x0016dff6, 0x0018dfe9,
488         0x001b3fe5, 0x001c5fd0, 0x001ddfc2, 0x001f1fb6,
489         0x00207fa4, 0x00219f8f, 0x0022ff7d, 0x00247f6c,
490         0x0024df5b, 0x00267f4b, 0x0027df3b, 0x0029bf3b,
491         0x002b5f2f, 0x002d3f2e, 0x002f5f2a, 0x002fff15,
492         0x00315f0b, 0x0032defa, 0x0033beeb, 0x0034fed9,
493         0x00353ec5, 0x00361eb0, 0x00363e9b, 0x0036be87,
494         0x0036be70, 0x0038fe67, 0x0044beb2, 0x00513ef3,
495         0x00595f11, 0x00669f3d, 0x0078dfdf, 0x00a143aa,
496         0x01642fff, 0x0162afff, 0x01620fff, 0x0160cfff,
497         0x015f0fff, 0x015dafff, 0x015bcfff, 0x015bcfff,
498         0x015b4fff, 0x015acfff, 0x01590fff, 0x0156cfff,
499 };
500
501 static const u32 b43_httab_0x23[] = {
502         0x00000000, 0x00000000, 0x00016023, 0x00006028,
503         0x00034036, 0x0003402e, 0x0007203c, 0x0006e037,
504         0x00070030, 0x0009401f, 0x0009a00f, 0x000b600d,
505         0x000c8007, 0x000ce007, 0x00101fff, 0x00121ff9,
506         0x0012e004, 0x0014dffc, 0x0016dff6, 0x0018dfe9,
507         0x001b3fe5, 0x001c5fd0, 0x001ddfc2, 0x001f1fb6,
508         0x00207fa4, 0x00219f8f, 0x0022ff7d, 0x00247f6c,
509         0x0024df5b, 0x00267f4b, 0x0027df3b, 0x0029bf3b,
510         0x002b5f2f, 0x002d3f2e, 0x002f5f2a, 0x002fff15,
511         0x00315f0b, 0x0032defa, 0x0033beeb, 0x0034fed9,
512         0x00353ec5, 0x00361eb0, 0x00363e9b, 0x0036be87,
513         0x0036be70, 0x0038fe67, 0x0044beb2, 0x00513ef3,
514         0x00595f11, 0x00669f3d, 0x0078dfdf, 0x00a143aa,
515         0x01642fff, 0x0162afff, 0x01620fff, 0x0160cfff,
516         0x015f0fff, 0x015dafff, 0x015bcfff, 0x015bcfff,
517         0x015b4fff, 0x015acfff, 0x01590fff, 0x0156cfff,
518 };
519
520 static const u32 b43_httab_0x20[] = {
521         0x0b5e002d, 0x0ae2002f, 0x0a3b0032, 0x09a70035,
522         0x09220038, 0x08ab003b, 0x081f003f, 0x07a20043,
523         0x07340047, 0x06d2004b, 0x067a004f, 0x06170054,
524         0x05bf0059, 0x0571005e, 0x051e0064, 0x04d3006a,
525         0x04910070, 0x044c0077, 0x040f007e, 0x03d90085,
526         0x03a1008d, 0x036f0095, 0x033d009e, 0x030b00a8,
527         0x02e000b2, 0x02b900bc, 0x029200c7, 0x026d00d3,
528         0x024900e0, 0x022900ed, 0x020a00fb, 0x01ec010a,
529         0x01d20119, 0x01b7012a, 0x019e013c, 0x0188014e,
530         0x01720162, 0x015d0177, 0x0149018e, 0x013701a5,
531         0x012601be, 0x011501d8, 0x010601f4, 0x00f70212,
532         0x00e90231, 0x00dc0253, 0x00d00276, 0x00c4029b,
533         0x00b902c3, 0x00af02ed, 0x00a50319, 0x009c0348,
534         0x0093037a, 0x008b03af, 0x008303e6, 0x007c0422,
535         0x00750460, 0x006e04a3, 0x006804e9, 0x00620533,
536         0x005d0582, 0x005805d6, 0x0053062e, 0x004e068c,
537 };
538
539 static const u32 b43_httab_0x22[] = {
540         0x0b5e002d, 0x0ae2002f, 0x0a3b0032, 0x09a70035,
541         0x09220038, 0x08ab003b, 0x081f003f, 0x07a20043,
542         0x07340047, 0x06d2004b, 0x067a004f, 0x06170054,
543         0x05bf0059, 0x0571005e, 0x051e0064, 0x04d3006a,
544         0x04910070, 0x044c0077, 0x040f007e, 0x03d90085,
545         0x03a1008d, 0x036f0095, 0x033d009e, 0x030b00a8,
546         0x02e000b2, 0x02b900bc, 0x029200c7, 0x026d00d3,
547         0x024900e0, 0x022900ed, 0x020a00fb, 0x01ec010a,
548         0x01d20119, 0x01b7012a, 0x019e013c, 0x0188014e,
549         0x01720162, 0x015d0177, 0x0149018e, 0x013701a5,
550         0x012601be, 0x011501d8, 0x010601f4, 0x00f70212,
551         0x00e90231, 0x00dc0253, 0x00d00276, 0x00c4029b,
552         0x00b902c3, 0x00af02ed, 0x00a50319, 0x009c0348,
553         0x0093037a, 0x008b03af, 0x008303e6, 0x007c0422,
554         0x00750460, 0x006e04a3, 0x006804e9, 0x00620533,
555         0x005d0582, 0x005805d6, 0x0053062e, 0x004e068c,
556 };
557
558 static const u32 b43_httab_0x24[] = {
559         0x0b5e002d, 0x0ae2002f, 0x0a3b0032, 0x09a70035,
560         0x09220038, 0x08ab003b, 0x081f003f, 0x07a20043,
561         0x07340047, 0x06d2004b, 0x067a004f, 0x06170054,
562         0x05bf0059, 0x0571005e, 0x051e0064, 0x04d3006a,
563         0x04910070, 0x044c0077, 0x040f007e, 0x03d90085,
564         0x03a1008d, 0x036f0095, 0x033d009e, 0x030b00a8,
565         0x02e000b2, 0x02b900bc, 0x029200c7, 0x026d00d3,
566         0x024900e0, 0x022900ed, 0x020a00fb, 0x01ec010a,
567         0x01d20119, 0x01b7012a, 0x019e013c, 0x0188014e,
568         0x01720162, 0x015d0177, 0x0149018e, 0x013701a5,
569         0x012601be, 0x011501d8, 0x010601f4, 0x00f70212,
570         0x00e90231, 0x00dc0253, 0x00d00276, 0x00c4029b,
571         0x00b902c3, 0x00af02ed, 0x00a50319, 0x009c0348,
572         0x0093037a, 0x008b03af, 0x008303e6, 0x007c0422,
573         0x00750460, 0x006e04a3, 0x006804e9, 0x00620533,
574         0x005d0582, 0x005805d6, 0x0053062e, 0x004e068c,
575 };
576
577 /**************************************************
578  * R/W ops.
579  **************************************************/
580
581 u32 b43_httab_read(struct b43_wldev *dev, u32 offset)
582 {
583         u32 type, value;
584
585         type = offset & B43_HTTAB_TYPEMASK;
586         offset &= ~B43_HTTAB_TYPEMASK;
587         B43_WARN_ON(offset > 0xFFFF);
588
589         switch (type) {
590         case B43_HTTAB_8BIT:
591                 b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
592                 value = b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO) & 0xFF;
593                 break;
594         case B43_HTTAB_16BIT:
595                 b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
596                 value = b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO);
597                 break;
598         case B43_HTTAB_32BIT:
599                 b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
600                 value = b43_phy_read(dev, B43_PHY_HT_TABLE_DATAHI);
601                 value <<= 16;
602                 value |= b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO);
603                 break;
604         default:
605                 B43_WARN_ON(1);
606                 value = 0;
607         }
608
609         return value;
610 }
611
612 void b43_httab_read_bulk(struct b43_wldev *dev, u32 offset,
613                          unsigned int nr_elements, void *_data)
614 {
615         u32 type;
616         u8 *data = _data;
617         unsigned int i;
618
619         type = offset & B43_HTTAB_TYPEMASK;
620         offset &= ~B43_HTTAB_TYPEMASK;
621         B43_WARN_ON(offset > 0xFFFF);
622
623         b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
624
625         for (i = 0; i < nr_elements; i++) {
626                 switch (type) {
627                 case B43_HTTAB_8BIT:
628                         *data = b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO) & 0xFF;
629                         data++;
630                         break;
631                 case B43_HTTAB_16BIT:
632                         *((u16 *)data) = b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO);
633                         data += 2;
634                         break;
635                 case B43_HTTAB_32BIT:
636                         *((u32 *)data) = b43_phy_read(dev, B43_PHY_HT_TABLE_DATAHI);
637                         *((u32 *)data) <<= 16;
638                         *((u32 *)data) |= b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO);
639                         data += 4;
640                         break;
641                 default:
642                         B43_WARN_ON(1);
643                 }
644         }
645 }
646
647 void b43_httab_write(struct b43_wldev *dev, u32 offset, u32 value)
648 {
649         u32 type;
650
651         type = offset & B43_HTTAB_TYPEMASK;
652         offset &= 0xFFFF;
653
654         switch (type) {
655         case B43_HTTAB_8BIT:
656                 B43_WARN_ON(value & ~0xFF);
657                 b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
658                 b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value);
659                 break;
660         case B43_HTTAB_16BIT:
661                 B43_WARN_ON(value & ~0xFFFF);
662                 b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
663                 b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value);
664                 break;
665         case B43_HTTAB_32BIT:
666                 b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
667                 b43_phy_write(dev, B43_PHY_HT_TABLE_DATAHI, value >> 16);
668                 b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value & 0xFFFF);
669                 break;
670         default:
671                 B43_WARN_ON(1);
672         }
673
674         return;
675 }
676
677 void b43_httab_write_bulk(struct b43_wldev *dev, u32 offset,
678                           unsigned int nr_elements, const void *_data)
679 {
680         u32 type, value;
681         const u8 *data = _data;
682         unsigned int i;
683
684         type = offset & B43_HTTAB_TYPEMASK;
685         offset &= ~B43_HTTAB_TYPEMASK;
686         B43_WARN_ON(offset > 0xFFFF);
687
688         b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
689
690         for (i = 0; i < nr_elements; i++) {
691                 switch (type) {
692                 case B43_HTTAB_8BIT:
693                         value = *data;
694                         data++;
695                         B43_WARN_ON(value & ~0xFF);
696                         b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value);
697                         break;
698                 case B43_HTTAB_16BIT:
699                         value = *((u16 *)data);
700                         data += 2;
701                         B43_WARN_ON(value & ~0xFFFF);
702                         b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value);
703                         break;
704                 case B43_HTTAB_32BIT:
705                         value = *((u32 *)data);
706                         data += 4;
707                         b43_phy_write(dev, B43_PHY_HT_TABLE_DATAHI, value >> 16);
708                         b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO,
709                                         value & 0xFFFF);
710                         break;
711                 default:
712                         B43_WARN_ON(1);
713                 }
714         }
715 }
716
717 /**************************************************
718  * Tables ops.
719  **************************************************/
720
721 #define httab_upload(dev, offset, data) do { \
722                 b43_httab_write_bulk(dev, offset, ARRAY_SIZE(data), data); \
723         } while (0)
724 void b43_phy_ht_tables_init(struct b43_wldev *dev)
725 {
726         httab_upload(dev, B43_HTTAB16(0x12, 0), b43_httab_0x12);
727         httab_upload(dev, B43_HTTAB16(0x27, 0), b43_httab_0x27);
728         httab_upload(dev, B43_HTTAB16(0x26, 0), b43_httab_0x26);
729         httab_upload(dev, B43_HTTAB32(0x25, 0), b43_httab_0x25);
730         httab_upload(dev, B43_HTTAB32(0x2f, 0), b43_httab_0x2f);
731         httab_upload(dev, B43_HTTAB16(0x1a, 0), b43_httab_0x1a);
732         httab_upload(dev, B43_HTTAB16(0x1b, 0), b43_httab_0x1b);
733         httab_upload(dev, B43_HTTAB16(0x1c, 0), b43_httab_0x1c);
734         httab_upload(dev, B43_HTTAB32(0x1a, 0x0c0), b43_httab_0x1a_0xc0);
735         httab_upload(dev, B43_HTTAB32(0x1a, 0x140), b43_httab_0x1a_0x140);
736         httab_upload(dev, B43_HTTAB32(0x1b, 0x140), b43_httab_0x1b_0x140);
737         httab_upload(dev, B43_HTTAB32(0x1c, 0x140), b43_httab_0x1c_0x140);
738         httab_upload(dev, B43_HTTAB16(0x1a, 0x1c0), b43_httab_0x1a_0x1c0);
739         httab_upload(dev, B43_HTTAB16(0x1b, 0x1c0), b43_httab_0x1b_0x1c0);
740         httab_upload(dev, B43_HTTAB16(0x1c, 0x1c0), b43_httab_0x1c_0x1c0);
741         httab_upload(dev, B43_HTTAB16(0x1a, 0x240), b43_httab_0x1a_0x240);
742         httab_upload(dev, B43_HTTAB16(0x1b, 0x240), b43_httab_0x1b_0x240);
743         httab_upload(dev, B43_HTTAB16(0x1c, 0x240), b43_httab_0x1c_0x240);
744         httab_upload(dev, B43_HTTAB32(0x1f, 0), b43_httab_0x1f);
745         httab_upload(dev, B43_HTTAB32(0x21, 0), b43_httab_0x21);
746         httab_upload(dev, B43_HTTAB32(0x23, 0), b43_httab_0x23);
747         httab_upload(dev, B43_HTTAB32(0x20, 0), b43_httab_0x20);
748         httab_upload(dev, B43_HTTAB32(0x22, 0), b43_httab_0x22);
749         httab_upload(dev, B43_HTTAB32(0x24, 0), b43_httab_0x24);
750 }