Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.8.
  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
 28static 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
 53static 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
 62static 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
 87static 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
122static 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
131static 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
145static 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
159static 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
173static 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
208static 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
243static 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
278static 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
313static 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
338static 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
363static 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
388static 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
413static 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
438static 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
463static 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
482static 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
501static 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
520static 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
539static 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
558static 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
581u32 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
612void 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
647void 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
677void 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)
724void 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}