blob: cff7bd379ad87f35c14521d24fd8071d506d7349 [file] [log] [blame]
Michael Buesch53a6e232008-01-13 21:23:44 +01001/*
2
3 Broadcom B43 wireless driver
4 IEEE 802.11n PHY and radio device data tables
5
6 Copyright (c) 2008 Michael Buesch <mb@bu3sch.de>
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; see the file COPYING. If not, write to
20 the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
21 Boston, MA 02110-1301, USA.
22
23*/
24
25#include "b43.h"
26#include "tables_nphy.h"
Michael Bueschef1a6282008-08-27 18:53:02 +020027#include "phy_common.h"
Michael Buesch3d0da752008-08-30 02:27:19 +020028#include "phy_n.h"
Michael Buesch53a6e232008-01-13 21:23:44 +010029
Rafał Miłeckif2a6d6a2010-10-11 03:19:22 +020030static const struct b43_nphy_channeltab_entry_rev3 b43_nphy_channeltab_rev3[] = {
31};
32
33const struct b43_nphy_channeltab_entry_rev3 *
34b43_nphy_get_chantabent_rev3(struct b43_wldev *dev, u16 freq)
35{
36 const struct b43_nphy_channeltab_entry_rev3 *e;
37 unsigned int i;
38
39 for (i = 0; i < ARRAY_SIZE(b43_nphy_channeltab_rev3); i++) {
40 e = &(b43_nphy_channeltab_rev3[i]);
41 if (e->freq == freq)
42 return e;
43 }
44
45 return NULL;
46}
47
Rafał Miłecki4772ae12010-01-15 12:18:21 +010048static const u8 b43_ntab_adjustpower0[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +010049 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
50 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03,
51 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05,
52 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07,
53 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09,
54 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B,
55 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D,
56 0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F,
57 0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11,
58 0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13,
59 0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15,
60 0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17,
61 0x18, 0x18, 0x18, 0x18, 0x19, 0x19, 0x19, 0x19,
62 0x1A, 0x1A, 0x1A, 0x1A, 0x1B, 0x1B, 0x1B, 0x1B,
63 0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1D, 0x1D,
64 0x1E, 0x1E, 0x1E, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F,
65};
66
Rafał Miłecki4772ae12010-01-15 12:18:21 +010067static const u8 b43_ntab_adjustpower1[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +010068 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
69 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03,
70 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05,
71 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07,
72 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09,
73 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B,
74 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D,
75 0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F,
76 0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11,
77 0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13,
78 0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15,
79 0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17,
80 0x18, 0x18, 0x18, 0x18, 0x19, 0x19, 0x19, 0x19,
81 0x1A, 0x1A, 0x1A, 0x1A, 0x1B, 0x1B, 0x1B, 0x1B,
82 0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1D, 0x1D,
83 0x1E, 0x1E, 0x1E, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F,
84};
85
Rafał Miłecki4772ae12010-01-15 12:18:21 +010086static const u16 b43_ntab_bdi[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +010087 0x0070, 0x0126, 0x012C, 0x0246, 0x048D, 0x04D2,
88};
89
Rafał Miłecki4772ae12010-01-15 12:18:21 +010090static const u32 b43_ntab_channelest[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +010091 0x44444444, 0x44444444, 0x44444444, 0x44444444,
92 0x44444444, 0x44444444, 0x44444444, 0x44444444,
93 0x10101010, 0x10101010, 0x10101010, 0x10101010,
94 0x10101010, 0x10101010, 0x10101010, 0x10101010,
95 0x44444444, 0x44444444, 0x44444444, 0x44444444,
96 0x44444444, 0x44444444, 0x44444444, 0x44444444,
97 0x10101010, 0x10101010, 0x10101010, 0x10101010,
98 0x10101010, 0x10101010, 0x10101010, 0x10101010,
99 0x44444444, 0x44444444, 0x44444444, 0x44444444,
100 0x44444444, 0x44444444, 0x44444444, 0x44444444,
101 0x44444444, 0x44444444, 0x44444444, 0x44444444,
102 0x44444444, 0x44444444, 0x44444444, 0x44444444,
103 0x10101010, 0x10101010, 0x10101010, 0x10101010,
104 0x10101010, 0x10101010, 0x10101010, 0x10101010,
105 0x10101010, 0x10101010, 0x10101010, 0x10101010,
106 0x10101010, 0x10101010, 0x10101010, 0x10101010,
107 0x44444444, 0x44444444, 0x44444444, 0x44444444,
108 0x44444444, 0x44444444, 0x44444444, 0x44444444,
109 0x44444444, 0x44444444, 0x44444444, 0x44444444,
110 0x44444444, 0x44444444, 0x44444444, 0x44444444,
111 0x10101010, 0x10101010, 0x10101010, 0x10101010,
112 0x10101010, 0x10101010, 0x10101010, 0x10101010,
113 0x10101010, 0x10101010, 0x10101010, 0x10101010,
114 0x10101010, 0x10101010, 0x10101010, 0x10101010,
115};
116
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100117static const u8 b43_ntab_estimatepowerlt0[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100118 0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
119 0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
120 0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
121 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
122 0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
123 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
124 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
125 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
126};
127
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100128static const u8 b43_ntab_estimatepowerlt1[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100129 0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
130 0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
131 0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
132 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
133 0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
134 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
135 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
136 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
137};
138
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100139static const u8 b43_ntab_framelookup[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100140 0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
141 0x0A, 0x0C, 0x1C, 0x1C, 0x0B, 0x0D, 0x1E, 0x1E,
142 0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1A, 0x1A,
143 0x0E, 0x10, 0x20, 0x28, 0x0F, 0x11, 0x22, 0x2A,
144};
145
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100146static const u32 b43_ntab_framestruct[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100147 0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
148 0x09804506, 0x00100030, 0x09804507, 0x00100030,
149 0x00000000, 0x00000000, 0x00000000, 0x00000000,
150 0x00000000, 0x00000000, 0x00000000, 0x00000000,
151 0x08004A0C, 0x00100008, 0x01000A0D, 0x00100028,
152 0x0980450E, 0x00100038, 0x0980450F, 0x00100038,
153 0x00000000, 0x00000000, 0x00000000, 0x00000000,
154 0x00000000, 0x00000000, 0x00000000, 0x00000000,
155 0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
156 0x1980C506, 0x00100030, 0x21810506, 0x00100030,
157 0x21810506, 0x00100030, 0x01800504, 0x00100030,
158 0x11808505, 0x00100030, 0x29814507, 0x01100030,
159 0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
160 0x21810506, 0x00100030, 0x21810506, 0x00100030,
161 0x29814507, 0x01100030, 0x00000000, 0x00000000,
162 0x00000000, 0x00000000, 0x00000000, 0x00000000,
163 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
164 0x1980C50E, 0x00100038, 0x2181050E, 0x00100038,
165 0x2181050E, 0x00100038, 0x0180050C, 0x00100038,
166 0x1180850D, 0x00100038, 0x2981450F, 0x01100038,
167 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
168 0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
169 0x2981450F, 0x01100038, 0x00000000, 0x00000000,
170 0x00000000, 0x00000000, 0x00000000, 0x00000000,
171 0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
172 0x1980C506, 0x00100030, 0x1980C506, 0x00100030,
173 0x11808504, 0x00100030, 0x3981CA05, 0x00100030,
174 0x29814507, 0x01100030, 0x00000000, 0x00000000,
175 0x10008A04, 0x00100000, 0x3981CA05, 0x00100030,
176 0x1980C506, 0x00100030, 0x29814507, 0x01100030,
177 0x00000000, 0x00000000, 0x00000000, 0x00000000,
178 0x00000000, 0x00000000, 0x00000000, 0x00000000,
179 0x08004A0C, 0x00100008, 0x01000A0D, 0x00100028,
180 0x1980C50E, 0x00100038, 0x1980C50E, 0x00100038,
181 0x1180850C, 0x00100038, 0x3981CA0D, 0x00100038,
182 0x2981450F, 0x01100038, 0x00000000, 0x00000000,
183 0x10008A0C, 0x00100008, 0x3981CA0D, 0x00100038,
184 0x1980C50E, 0x00100038, 0x2981450F, 0x01100038,
185 0x00000000, 0x00000000, 0x00000000, 0x00000000,
186 0x00000000, 0x00000000, 0x00000000, 0x00000000,
187 0x40021404, 0x00100000, 0x02001405, 0x00100040,
188 0x0B004A06, 0x01900060, 0x13008A06, 0x01900060,
189 0x13008A06, 0x01900060, 0x43020A04, 0x00100060,
190 0x1B00CA05, 0x00100060, 0x23010A07, 0x01500060,
191 0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
192 0x13008A06, 0x01900060, 0x13008A06, 0x01900060,
193 0x23010A07, 0x01500060, 0x00000000, 0x00000000,
194 0x00000000, 0x00000000, 0x00000000, 0x00000000,
195 0x4002140C, 0x00100010, 0x0200140D, 0x00100050,
196 0x0B004A0E, 0x01900070, 0x13008A0E, 0x01900070,
197 0x13008A0E, 0x01900070, 0x43020A0C, 0x00100070,
198 0x1B00CA0D, 0x00100070, 0x23010A0F, 0x01500070,
199 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
200 0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
201 0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
202 0x00000000, 0x00000000, 0x00000000, 0x00000000,
203 0x50029404, 0x00100000, 0x32019405, 0x00100040,
204 0x0B004A06, 0x01900060, 0x0B004A06, 0x01900060,
205 0x5B02CA04, 0x00100060, 0x3B01D405, 0x00100060,
206 0x23010A07, 0x01500060, 0x00000000, 0x00000000,
207 0x5802D404, 0x00100000, 0x3B01D405, 0x00100060,
208 0x0B004A06, 0x01900060, 0x23010A07, 0x01500060,
209 0x00000000, 0x00000000, 0x00000000, 0x00000000,
210 0x00000000, 0x00000000, 0x00000000, 0x00000000,
211 0x5002940C, 0x00100010, 0x3201940D, 0x00100050,
212 0x0B004A0E, 0x01900070, 0x0B004A0E, 0x01900070,
213 0x5B02CA0C, 0x00100070, 0x3B01D40D, 0x00100070,
214 0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
215 0x5802D40C, 0x00100010, 0x3B01D40D, 0x00100070,
216 0x0B004A0E, 0x01900070, 0x23010A0F, 0x01500070,
217 0x00000000, 0x00000000, 0x00000000, 0x00000000,
218 0x00000000, 0x00000000, 0x00000000, 0x00000000,
219 0x40021404, 0x000F4800, 0x62031405, 0x00100040,
220 0x53028A06, 0x01900060, 0x53028A07, 0x01900060,
221 0x00000000, 0x00000000, 0x00000000, 0x00000000,
222 0x00000000, 0x00000000, 0x00000000, 0x00000000,
223 0x4002140C, 0x000F4810, 0x6203140D, 0x00100050,
224 0x53028A0E, 0x01900070, 0x53028A0F, 0x01900070,
225 0x00000000, 0x00000000, 0x00000000, 0x00000000,
226 0x00000000, 0x00000000, 0x00000000, 0x00000000,
227 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
228 0x1980C50E, 0x00100038, 0x2181050E, 0x00100038,
229 0x2181050E, 0x00100038, 0x0180050C, 0x00100038,
230 0x1180850D, 0x00100038, 0x1181850D, 0x00100038,
231 0x2981450F, 0x01100038, 0x00000000, 0x00000000,
232 0x00000000, 0x00000000, 0x00000000, 0x00000000,
233 0x00000000, 0x00000000, 0x00000000, 0x00000000,
234 0x00000000, 0x00000000, 0x00000000, 0x00000000,
235 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
236 0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
237 0x1181850D, 0x00100038, 0x2981450F, 0x01100038,
238 0x00000000, 0x00000000, 0x00000000, 0x00000000,
239 0x00000000, 0x00000000, 0x00000000, 0x00000000,
240 0x00000000, 0x00000000, 0x00000000, 0x00000000,
241 0x00000000, 0x00000000, 0x00000000, 0x00000000,
242 0x00000000, 0x00000000, 0x00000000, 0x00000000,
243 0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
244 0x0180C506, 0x00100030, 0x0180C506, 0x00100030,
245 0x2180C50C, 0x00100030, 0x49820A0D, 0x0016A130,
246 0x41824A0D, 0x0016A130, 0x2981450F, 0x01100030,
247 0x00000000, 0x00000000, 0x00000000, 0x00000000,
248 0x00000000, 0x00000000, 0x00000000, 0x00000000,
249 0x00000000, 0x00000000, 0x00000000, 0x00000000,
250 0x00000000, 0x00000000, 0x00000000, 0x00000000,
251 0x2000CA0C, 0x00100000, 0x49820A0D, 0x0016A130,
252 0x1980C50E, 0x00100030, 0x41824A0D, 0x0016A130,
253 0x2981450F, 0x01100030, 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 0x4002140C, 0x00100010, 0x0200140D, 0x00100050,
260 0x0B004A0E, 0x01900070, 0x13008A0E, 0x01900070,
261 0x13008A0E, 0x01900070, 0x43020A0C, 0x00100070,
262 0x1B00CA0D, 0x00100070, 0x1B014A0D, 0x00100070,
263 0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
264 0x00000000, 0x00000000, 0x00000000, 0x00000000,
265 0x00000000, 0x00000000, 0x00000000, 0x00000000,
266 0x00000000, 0x00000000, 0x00000000, 0x00000000,
267 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
268 0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
269 0x1B014A0D, 0x00100070, 0x23010A0F, 0x01500070,
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 0x50029404, 0x00100000, 0x32019405, 0x00100040,
276 0x03004A06, 0x01900060, 0x03004A06, 0x01900060,
277 0x6B030A0C, 0x00100060, 0x4B02140D, 0x0016A160,
278 0x4302540D, 0x0016A160, 0x23010A0F, 0x01500060,
279 0x00000000, 0x00000000, 0x00000000, 0x00000000,
280 0x00000000, 0x00000000, 0x00000000, 0x00000000,
281 0x00000000, 0x00000000, 0x00000000, 0x00000000,
282 0x00000000, 0x00000000, 0x00000000, 0x00000000,
283 0x6B03140C, 0x00100060, 0x4B02140D, 0x0016A160,
284 0x0B004A0E, 0x01900060, 0x4302540D, 0x0016A160,
285 0x23010A0F, 0x01500060, 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 0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
292 0x53028A06, 0x01900060, 0x5B02CA06, 0x01900060,
293 0x5B02CA06, 0x01900060, 0x43020A04, 0x00100060,
294 0x1B00CA05, 0x00100060, 0x53028A07, 0x0190C060,
295 0x00000000, 0x00000000, 0x00000000, 0x00000000,
296 0x00000000, 0x00000000, 0x00000000, 0x00000000,
297 0x00000000, 0x00000000, 0x00000000, 0x00000000,
298 0x00000000, 0x00000000, 0x00000000, 0x00000000,
299 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
300 0x53028A0E, 0x01900070, 0x5B02CA0E, 0x01900070,
301 0x5B02CA0E, 0x01900070, 0x43020A0C, 0x00100070,
302 0x1B00CA0D, 0x00100070, 0x53028A0F, 0x0190C070,
303 0x00000000, 0x00000000, 0x00000000, 0x00000000,
304 0x00000000, 0x00000000, 0x00000000, 0x00000000,
305 0x00000000, 0x00000000, 0x00000000, 0x00000000,
306 0x00000000, 0x00000000, 0x00000000, 0x00000000,
307 0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
308 0x5B02CA06, 0x01900060, 0x5B02CA06, 0x01900060,
309 0x53028A07, 0x0190C060, 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 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
316 0x5B02CA0E, 0x01900070, 0x5B02CA0E, 0x01900070,
317 0x53028A0F, 0x0190C070, 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 0x00000000, 0x00000000, 0x00000000, 0x00000000,
339 0x00000000, 0x00000000, 0x00000000, 0x00000000,
340 0x00000000, 0x00000000, 0x00000000, 0x00000000,
341 0x00000000, 0x00000000, 0x00000000, 0x00000000,
342 0x00000000, 0x00000000, 0x00000000, 0x00000000,
343 0x00000000, 0x00000000, 0x00000000, 0x00000000,
344 0x00000000, 0x00000000, 0x00000000, 0x00000000,
345 0x00000000, 0x00000000, 0x00000000, 0x00000000,
346 0x00000000, 0x00000000, 0x00000000, 0x00000000,
347 0x00000000, 0x00000000, 0x00000000, 0x00000000,
348 0x00000000, 0x00000000, 0x00000000, 0x00000000,
349 0x00000000, 0x00000000, 0x00000000, 0x00000000,
350 0x00000000, 0x00000000, 0x00000000, 0x00000000,
351 0x00000000, 0x00000000, 0x00000000, 0x00000000,
352 0x00000000, 0x00000000, 0x00000000, 0x00000000,
353 0x00000000, 0x00000000, 0x00000000, 0x00000000,
354 0x00000000, 0x00000000, 0x00000000, 0x00000000,
355};
356
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100357static const u32 b43_ntab_gainctl0[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100358 0x007F003F, 0x007E013F, 0x007D023E, 0x007C033E,
359 0x007B043D, 0x007A053D, 0x0079063C, 0x0078073C,
360 0x0077083B, 0x0076093B, 0x00750A3A, 0x00740B3A,
361 0x00730C39, 0x00720D39, 0x00710E38, 0x00700F38,
362 0x006F0037, 0x006E0137, 0x006D0236, 0x006C0336,
363 0x006B0435, 0x006A0535, 0x00690634, 0x00680734,
364 0x00670833, 0x00660933, 0x00650A32, 0x00640B32,
365 0x00630C31, 0x00620D31, 0x00610E30, 0x00600F30,
366 0x005F002F, 0x005E012F, 0x005D022E, 0x005C032E,
367 0x005B042D, 0x005A052D, 0x0059062C, 0x0058072C,
368 0x0057082B, 0x0056092B, 0x00550A2A, 0x00540B2A,
369 0x00530C29, 0x00520D29, 0x00510E28, 0x00500F28,
370 0x004F0027, 0x004E0127, 0x004D0226, 0x004C0326,
371 0x004B0425, 0x004A0525, 0x00490624, 0x00480724,
372 0x00470823, 0x00460923, 0x00450A22, 0x00440B22,
373 0x00430C21, 0x00420D21, 0x00410E20, 0x00400F20,
374 0x003F001F, 0x003E011F, 0x003D021E, 0x003C031E,
375 0x003B041D, 0x003A051D, 0x0039061C, 0x0038071C,
376 0x0037081B, 0x0036091B, 0x00350A1A, 0x00340B1A,
377 0x00330C19, 0x00320D19, 0x00310E18, 0x00300F18,
378 0x002F0017, 0x002E0117, 0x002D0216, 0x002C0316,
379 0x002B0415, 0x002A0515, 0x00290614, 0x00280714,
380 0x00270813, 0x00260913, 0x00250A12, 0x00240B12,
381 0x00230C11, 0x00220D11, 0x00210E10, 0x00200F10,
382 0x001F000F, 0x001E010F, 0x001D020E, 0x001C030E,
383 0x001B040D, 0x001A050D, 0x0019060C, 0x0018070C,
384 0x0017080B, 0x0016090B, 0x00150A0A, 0x00140B0A,
385 0x00130C09, 0x00120D09, 0x00110E08, 0x00100F08,
386 0x000F0007, 0x000E0107, 0x000D0206, 0x000C0306,
387 0x000B0405, 0x000A0505, 0x00090604, 0x00080704,
388 0x00070803, 0x00060903, 0x00050A02, 0x00040B02,
389 0x00030C01, 0x00020D01, 0x00010E00, 0x00000F00,
390};
391
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100392static const u32 b43_ntab_gainctl1[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100393 0x007F003F, 0x007E013F, 0x007D023E, 0x007C033E,
394 0x007B043D, 0x007A053D, 0x0079063C, 0x0078073C,
395 0x0077083B, 0x0076093B, 0x00750A3A, 0x00740B3A,
396 0x00730C39, 0x00720D39, 0x00710E38, 0x00700F38,
397 0x006F0037, 0x006E0137, 0x006D0236, 0x006C0336,
398 0x006B0435, 0x006A0535, 0x00690634, 0x00680734,
399 0x00670833, 0x00660933, 0x00650A32, 0x00640B32,
400 0x00630C31, 0x00620D31, 0x00610E30, 0x00600F30,
401 0x005F002F, 0x005E012F, 0x005D022E, 0x005C032E,
402 0x005B042D, 0x005A052D, 0x0059062C, 0x0058072C,
403 0x0057082B, 0x0056092B, 0x00550A2A, 0x00540B2A,
404 0x00530C29, 0x00520D29, 0x00510E28, 0x00500F28,
405 0x004F0027, 0x004E0127, 0x004D0226, 0x004C0326,
406 0x004B0425, 0x004A0525, 0x00490624, 0x00480724,
407 0x00470823, 0x00460923, 0x00450A22, 0x00440B22,
408 0x00430C21, 0x00420D21, 0x00410E20, 0x00400F20,
409 0x003F001F, 0x003E011F, 0x003D021E, 0x003C031E,
410 0x003B041D, 0x003A051D, 0x0039061C, 0x0038071C,
411 0x0037081B, 0x0036091B, 0x00350A1A, 0x00340B1A,
412 0x00330C19, 0x00320D19, 0x00310E18, 0x00300F18,
413 0x002F0017, 0x002E0117, 0x002D0216, 0x002C0316,
414 0x002B0415, 0x002A0515, 0x00290614, 0x00280714,
415 0x00270813, 0x00260913, 0x00250A12, 0x00240B12,
416 0x00230C11, 0x00220D11, 0x00210E10, 0x00200F10,
417 0x001F000F, 0x001E010F, 0x001D020E, 0x001C030E,
418 0x001B040D, 0x001A050D, 0x0019060C, 0x0018070C,
419 0x0017080B, 0x0016090B, 0x00150A0A, 0x00140B0A,
420 0x00130C09, 0x00120D09, 0x00110E08, 0x00100F08,
421 0x000F0007, 0x000E0107, 0x000D0206, 0x000C0306,
422 0x000B0405, 0x000A0505, 0x00090604, 0x00080704,
423 0x00070803, 0x00060903, 0x00050A02, 0x00040B02,
424 0x00030C01, 0x00020D01, 0x00010E00, 0x00000F00,
425};
426
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100427static const u32 b43_ntab_intlevel[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100428 0x00802070, 0x0671188D, 0x0A60192C, 0x0A300E46,
429 0x00C1188D, 0x080024D2, 0x00000070,
430};
431
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100432static const u32 b43_ntab_iqlt0[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100433 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 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
449 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
450 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
451 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
452 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
453 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
454 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
455 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
456 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
457 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
458 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
459 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
460 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
461 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
462 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
463 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
464 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
465};
466
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100467static const u32 b43_ntab_iqlt1[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100468 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 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
484 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
485 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
486 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
487 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
488 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
489 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
490 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
491 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
492 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
493 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
494 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
495 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
496 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
497 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
498 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
499 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
500};
501
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100502static const u16 b43_ntab_loftlt0[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100503 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
504 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
505 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
506 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
507 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
508 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
509 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
510 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
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,
525};
526
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100527static const u16 b43_ntab_loftlt1[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100528 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
529 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
530 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
531 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
532 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
533 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
534 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
535 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
536 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
537 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
538 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
539 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
540 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
541 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
542 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
543 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
544 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
545 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
546 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
547 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
548 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
549 0x0002, 0x0103,
550};
551
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100552static const u8 b43_ntab_mcs[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100553 0x00, 0x08, 0x0A, 0x10, 0x12, 0x19, 0x1A, 0x1C,
554 0x40, 0x48, 0x4A, 0x50, 0x52, 0x59, 0x5A, 0x5C,
555 0x80, 0x88, 0x8A, 0x90, 0x92, 0x99, 0x9A, 0x9C,
556 0xC0, 0xC8, 0xCA, 0xD0, 0xD2, 0xD9, 0xDA, 0xDC,
557 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
558 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
559 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
560 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
561 0x00, 0x01, 0x02, 0x04, 0x08, 0x09, 0x0A, 0x0C,
562 0x10, 0x11, 0x12, 0x14, 0x18, 0x19, 0x1A, 0x1C,
563 0x20, 0x21, 0x22, 0x24, 0x40, 0x41, 0x42, 0x44,
564 0x48, 0x49, 0x4A, 0x4C, 0x50, 0x51, 0x52, 0x54,
565 0x58, 0x59, 0x5A, 0x5C, 0x60, 0x61, 0x62, 0x64,
566 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
567 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
568 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
569};
570
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100571static const u32 b43_ntab_noisevar10[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100572 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 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
620 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
621 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
622 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
623 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
624 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
625 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
626 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
627 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
628 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
629 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
630 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
631 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
632 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
633 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
634 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
635 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
636};
637
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100638static const u32 b43_ntab_noisevar11[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100639 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 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
687 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
688 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
689 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
690 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
691 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
692 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
693 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
694 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
695 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
696 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
697 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
698 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
699 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
700 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
701 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
702 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
703};
704
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100705static const u16 b43_ntab_pilot[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100706 0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08,
707 0xFF08, 0xFF08, 0x80D5, 0x80D5, 0x80D5, 0x80D5,
708 0x80D5, 0x80D5, 0x80D5, 0x80D5, 0xFF0A, 0xFF82,
709 0xFFA0, 0xFF28, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
710 0xFF82, 0xFFA0, 0xFF28, 0xFF0A, 0xFFFF, 0xFFFF,
711 0xFFFF, 0xFFFF, 0xF83F, 0xFA1F, 0xFA97, 0xFAB5,
712 0xF2BD, 0xF0BF, 0xFFFF, 0xFFFF, 0xF017, 0xF815,
713 0xF215, 0xF095, 0xF035, 0xF01D, 0xFFFF, 0xFFFF,
714 0xFF08, 0xFF02, 0xFF80, 0xFF20, 0xFF08, 0xFF02,
715 0xFF80, 0xFF20, 0xF01F, 0xF817, 0xFA15, 0xF295,
716 0xF0B5, 0xF03D, 0xFFFF, 0xFFFF, 0xF82A, 0xFA0A,
717 0xFA82, 0xFAA0, 0xF2A8, 0xF0AA, 0xFFFF, 0xFFFF,
718 0xF002, 0xF800, 0xF200, 0xF080, 0xF020, 0xF008,
719 0xFFFF, 0xFFFF, 0xF00A, 0xF802, 0xFA00, 0xF280,
720 0xF0A0, 0xF028, 0xFFFF, 0xFFFF,
721};
722
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100723static const u32 b43_ntab_pilotlt[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100724 0x76540123, 0x62407351, 0x76543201, 0x76540213,
725 0x76540123, 0x76430521,
726};
727
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100728static const u32 b43_ntab_tdi20a0[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100729 0x00091226, 0x000A1429, 0x000B56AD, 0x000C58B0,
730 0x000D5AB3, 0x000E9CB6, 0x000F9EBA, 0x0000C13D,
731 0x00020301, 0x00030504, 0x00040708, 0x0005090B,
732 0x00064B8E, 0x00095291, 0x000A5494, 0x000B9718,
733 0x000C9927, 0x000D9B2A, 0x000EDD2E, 0x000FDF31,
734 0x000101B4, 0x000243B7, 0x000345BB, 0x000447BE,
735 0x00058982, 0x00068C05, 0x00099309, 0x000A950C,
736 0x000BD78F, 0x000CD992, 0x000DDB96, 0x000F1D99,
737 0x00005FA8, 0x0001422C, 0x0002842F, 0x00038632,
738 0x00048835, 0x0005CA38, 0x0006CCBC, 0x0009D3BF,
739 0x000B1603, 0x000C1806, 0x000D1A0A, 0x000E1C0D,
740 0x000F5E10, 0x00008093, 0x00018297, 0x0002C49A,
741 0x0003C680, 0x0004C880, 0x00060B00, 0x00070D00,
742 0x00000000, 0x00000000, 0x00000000,
743};
744
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100745static const u32 b43_ntab_tdi20a1[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100746 0x00014B26, 0x00028D29, 0x000393AD, 0x00049630,
747 0x0005D833, 0x0006DA36, 0x00099C3A, 0x000A9E3D,
748 0x000BC081, 0x000CC284, 0x000DC488, 0x000F068B,
749 0x0000488E, 0x00018B91, 0x0002D214, 0x0003D418,
750 0x0004D6A7, 0x000618AA, 0x00071AAE, 0x0009DCB1,
751 0x000B1EB4, 0x000C0137, 0x000D033B, 0x000E053E,
752 0x000F4702, 0x00008905, 0x00020C09, 0x0003128C,
753 0x0004148F, 0x00051712, 0x00065916, 0x00091B19,
754 0x000A1D28, 0x000B5F2C, 0x000C41AF, 0x000D43B2,
755 0x000E85B5, 0x000F87B8, 0x0000C9BC, 0x00024CBF,
756 0x00035303, 0x00045506, 0x0005978A, 0x0006998D,
757 0x00095B90, 0x000A5D93, 0x000B9F97, 0x000C821A,
758 0x000D8400, 0x000EC600, 0x000FC800, 0x00010A00,
759 0x00000000, 0x00000000, 0x00000000,
760};
761
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100762static const u32 b43_ntab_tdi40a0[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100763 0x0011A346, 0x00136CCF, 0x0014F5D9, 0x001641E2,
764 0x0017CB6B, 0x00195475, 0x001B2383, 0x001CAD0C,
765 0x001E7616, 0x0000821F, 0x00020BA8, 0x0003D4B2,
766 0x00056447, 0x00072DD0, 0x0008B6DA, 0x000A02E3,
767 0x000B8C6C, 0x000D15F6, 0x0011E484, 0x0013AE0D,
768 0x00153717, 0x00168320, 0x00180CA9, 0x00199633,
769 0x001B6548, 0x001CEED1, 0x001EB7DB, 0x0000C3E4,
770 0x00024D6D, 0x000416F7, 0x0005A585, 0x00076F0F,
771 0x0008F818, 0x000A4421, 0x000BCDAB, 0x000D9734,
772 0x00122649, 0x0013EFD2, 0x001578DC, 0x0016C4E5,
773 0x00184E6E, 0x001A17F8, 0x001BA686, 0x001D3010,
774 0x001EF999, 0x00010522, 0x00028EAC, 0x00045835,
775 0x0005E74A, 0x0007B0D3, 0x00093A5D, 0x000A85E6,
776 0x000C0F6F, 0x000DD8F9, 0x00126787, 0x00143111,
777 0x0015BA9A, 0x00170623, 0x00188FAD, 0x001A5936,
778 0x001BE84B, 0x001DB1D4, 0x001F3B5E, 0x000146E7,
779 0x00031070, 0x000499FA, 0x00062888, 0x0007F212,
780 0x00097B9B, 0x000AC7A4, 0x000C50AE, 0x000E1A37,
781 0x0012A94C, 0x001472D5, 0x0015FC5F, 0x00174868,
782 0x0018D171, 0x001A9AFB, 0x001C2989, 0x001DF313,
783 0x001F7C9C, 0x000188A5, 0x000351AF, 0x0004DB38,
784 0x0006AA4D, 0x000833D7, 0x0009BD60, 0x000B0969,
785 0x000C9273, 0x000E5BFC, 0x00132A8A, 0x0014B414,
786 0x00163D9D, 0x001789A6, 0x001912B0, 0x001ADC39,
787 0x001C6BCE, 0x001E34D8, 0x001FBE61, 0x0001CA6A,
788 0x00039374, 0x00051CFD, 0x0006EC0B, 0x00087515,
789 0x0009FE9E, 0x000B4AA7, 0x000CD3B1, 0x000E9D3A,
790 0x00000000, 0x00000000,
791};
792
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100793static const u32 b43_ntab_tdi40a1[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100794 0x001EDB36, 0x000129CA, 0x0002B353, 0x00047CDD,
795 0x0005C8E6, 0x000791EF, 0x00091BF9, 0x000AAA07,
796 0x000C3391, 0x000DFD1A, 0x00120923, 0x0013D22D,
797 0x00155C37, 0x0016EACB, 0x00187454, 0x001A3DDE,
798 0x001B89E7, 0x001D12F0, 0x001F1CFA, 0x00016B88,
799 0x00033492, 0x0004BE1B, 0x00060A24, 0x0007D32E,
800 0x00095D38, 0x000AEC4C, 0x000C7555, 0x000E3EDF,
801 0x00124AE8, 0x001413F1, 0x0015A37B, 0x00172C89,
802 0x0018B593, 0x001A419C, 0x001BCB25, 0x001D942F,
803 0x001F63B9, 0x0001AD4D, 0x00037657, 0x0004C260,
804 0x00068BE9, 0x000814F3, 0x0009A47C, 0x000B2D8A,
805 0x000CB694, 0x000E429D, 0x00128C26, 0x001455B0,
806 0x0015E4BA, 0x00176E4E, 0x0018F758, 0x001A8361,
807 0x001C0CEA, 0x001DD674, 0x001FA57D, 0x0001EE8B,
808 0x0003B795, 0x0005039E, 0x0006CD27, 0x000856B1,
809 0x0009E5C6, 0x000B6F4F, 0x000CF859, 0x000E8462,
810 0x00130DEB, 0x00149775, 0x00162603, 0x0017AF8C,
811 0x00193896, 0x001AC49F, 0x001C4E28, 0x001E17B2,
812 0x0000A6C7, 0x00023050, 0x0003F9DA, 0x00054563,
813 0x00070EEC, 0x00089876, 0x000A2704, 0x000BB08D,
814 0x000D3A17, 0x001185A0, 0x00134F29, 0x0014D8B3,
815 0x001667C8, 0x0017F151, 0x00197ADB, 0x001B0664,
816 0x001C8FED, 0x001E5977, 0x0000E805, 0x0002718F,
817 0x00043B18, 0x000586A1, 0x0007502B, 0x0008D9B4,
818 0x000A68C9, 0x000BF252, 0x000DBBDC, 0x0011C7E5,
819 0x001390EE, 0x00151A78, 0x0016A906, 0x00183290,
820 0x0019BC19, 0x001B4822, 0x001CD12C, 0x001E9AB5,
821 0x00000000, 0x00000000,
822};
823
Rafał Miłecki4772ae12010-01-15 12:18:21 +0100824static const u32 b43_ntab_tdtrn[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +0100825 0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
826 0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
827 0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
828 0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
829 0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
830 0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
831 0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
832 0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
833 0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
834 0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
835 0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
836 0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
837 0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
838 0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
839 0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
840 0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
841 0xFA58FA58, 0xF895043B, 0xFF4C09C0, 0xFBC6FFA8,
842 0xFB84F384, 0x0798F6F9, 0x05760122, 0x058409F6,
843 0x0B500000, 0x05B7F542, 0x08860432, 0x06DDFEE7,
844 0xFB84F384, 0xF9D90664, 0xF7E8025C, 0x00FFF7BD,
845 0x05A805A8, 0xF7BD00FF, 0x025CF7E8, 0x0664F9D9,
846 0xF384FB84, 0xFEE706DD, 0x04320886, 0xF54205B7,
847 0x00000B50, 0x09F60584, 0x01220576, 0xF6F90798,
848 0xF384FB84, 0xFFA8FBC6, 0x09C0FF4C, 0x043BF895,
849 0x02D402D4, 0x07DE0270, 0xFC96079C, 0xF90AFE94,
850 0xFE00FF2C, 0x02D4065D, 0x092A0096, 0x0014FBB8,
851 0xFD2CFD2C, 0x076AFB3C, 0x0096F752, 0xF991FD87,
852 0xFB2C0200, 0xFEB8F960, 0x08E0FC96, 0x049802A8,
853 0xFD2CFD2C, 0x02A80498, 0xFC9608E0, 0xF960FEB8,
854 0x0200FB2C, 0xFD87F991, 0xF7520096, 0xFB3C076A,
855 0xFD2CFD2C, 0xFBB80014, 0x0096092A, 0x065D02D4,
856 0xFF2CFE00, 0xFE94F90A, 0x079CFC96, 0x027007DE,
857 0x02D402D4, 0x027007DE, 0x079CFC96, 0xFE94F90A,
858 0xFF2CFE00, 0x065D02D4, 0x0096092A, 0xFBB80014,
859 0xFD2CFD2C, 0xFB3C076A, 0xF7520096, 0xFD87F991,
860 0x0200FB2C, 0xF960FEB8, 0xFC9608E0, 0x02A80498,
861 0xFD2CFD2C, 0x049802A8, 0x08E0FC96, 0xFEB8F960,
862 0xFB2C0200, 0xF991FD87, 0x0096F752, 0x076AFB3C,
863 0xFD2CFD2C, 0x0014FBB8, 0x092A0096, 0x02D4065D,
864 0xFE00FF2C, 0xF90AFE94, 0xFC96079C, 0x07DE0270,
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 0x00000000, 0x00000000, 0x00000000, 0x00000000,
873 0x00000000, 0x00000000, 0x00000000, 0x00000000,
874 0x00000000, 0x00000000, 0x00000000, 0x00000000,
875 0x00000000, 0x00000000, 0x00000000, 0x00000000,
876 0x00000000, 0x00000000, 0x00000000, 0x00000000,
877 0x00000000, 0x00000000, 0x00000000, 0x00000000,
878 0x00000000, 0x00000000, 0x00000000, 0x00000000,
879 0x00000000, 0x00000000, 0x00000000, 0x00000000,
880 0x00000000, 0x00000000, 0x00000000, 0x00000000,
881 0x00000000, 0x00000000, 0x00000000, 0x00000000,
882 0x00000000, 0x00000000, 0x00000000, 0x00000000,
883 0x00000000, 0x00000000, 0x00000000, 0x00000000,
884 0x00000000, 0x00000000, 0x00000000, 0x00000000,
885 0x00000000, 0x00000000, 0x00000000, 0x00000000,
886 0x00000000, 0x00000000, 0x00000000, 0x00000000,
887 0x00000000, 0x00000000, 0x00000000, 0x00000000,
888 0x00000000, 0x00000000, 0x00000000, 0x00000000,
889 0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
890 0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
891 0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
892 0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
893 0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
894 0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
895 0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
896 0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
897 0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
898 0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
899 0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
900 0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
901 0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
902 0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
903 0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
904 0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
905 0x061C061C, 0xFF30009D, 0xFFB21141, 0xFD87FB54,
906 0xF65DFE59, 0x02EEF99E, 0x0166F03C, 0xFFF809B6,
907 0x000008A4, 0x000AF42B, 0x00EFF577, 0xFA840BF2,
908 0xFC02FF51, 0x08260F67, 0xFFF0036F, 0x0842F9C3,
909 0x00000000, 0x063DF7BE, 0xFC910010, 0xF099F7DA,
910 0x00AF03FE, 0xF40E057C, 0x0A89FF11, 0x0BD5FFF6,
911 0xF75C0000, 0xF64A0008, 0x0FC4FE9A, 0x0662FD12,
912 0x01A709A3, 0x04AC0279, 0xEEBF004E, 0xFF6300D0,
913 0xF9E4F9E4, 0x00D0FF63, 0x004EEEBF, 0x027904AC,
914 0x09A301A7, 0xFD120662, 0xFE9A0FC4, 0x0008F64A,
915 0x0000F75C, 0xFFF60BD5, 0xFF110A89, 0x057CF40E,
916 0x03FE00AF, 0xF7DAF099, 0x0010FC91, 0xF7BE063D,
917 0x00000000, 0xF9C30842, 0x036FFFF0, 0x0F670826,
918 0xFF51FC02, 0x0BF2FA84, 0xF57700EF, 0xF42B000A,
919 0x08A40000, 0x09B6FFF8, 0xF03C0166, 0xF99E02EE,
920 0xFE59F65D, 0xFB54FD87, 0x1141FFB2, 0x009DFF30,
921 0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
922 0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
923 0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
924 0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
925 0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
926 0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
927 0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
928 0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
929 0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
930 0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
931 0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
932 0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
933 0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
934 0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
935 0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
936 0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
937 0xFA58FA58, 0xF8F0FE00, 0x0448073D, 0xFDC9FE46,
938 0xF9910258, 0x089D0407, 0xFD5CF71A, 0x02AFFDE0,
939 0x083E0496, 0xFF5A0740, 0xFF7AFD97, 0x00FE01F1,
940 0x0009082E, 0xFA94FF75, 0xFECDF8EA, 0xFFB0F693,
941 0xFD2CFA58, 0x0433FF16, 0xFBA405DD, 0xFA610341,
942 0x06A606CB, 0x0039FD2D, 0x0677FA97, 0x01FA05E0,
943 0xF896003E, 0x075A068B, 0x012CFC3E, 0xFA23F98D,
944 0xFC7CFD43, 0xFF90FC0D, 0x01C10982, 0x00C601D6,
945 0xFD2CFD2C, 0x01D600C6, 0x098201C1, 0xFC0DFF90,
946 0xFD43FC7C, 0xF98DFA23, 0xFC3E012C, 0x068B075A,
947 0x003EF896, 0x05E001FA, 0xFA970677, 0xFD2D0039,
948 0x06CB06A6, 0x0341FA61, 0x05DDFBA4, 0xFF160433,
949 0xFA58FD2C, 0xF693FFB0, 0xF8EAFECD, 0xFF75FA94,
950 0x082E0009, 0x01F100FE, 0xFD97FF7A, 0x0740FF5A,
951 0x0496083E, 0xFDE002AF, 0xF71AFD5C, 0x0407089D,
952 0x0258F991, 0xFE46FDC9, 0x073D0448, 0xFE00F8F0,
953 0xFD2CFD2C, 0xFCE00500, 0xFC09FDDC, 0xFE680157,
954 0x04C70571, 0xFC3AFF21, 0xFCD70228, 0x056D0277,
955 0x0200FE00, 0x0022F927, 0xFE3C032B, 0xFC44FF3C,
956 0x03E9FBDB, 0x04570313, 0x04C9FF5C, 0x000D03B8,
957 0xFA580000, 0xFBE900D2, 0xF9D0FE0B, 0x0125FDF9,
958 0x042501BF, 0x0328FA2B, 0xFFA902F0, 0xFA250157,
959 0x0200FE00, 0x03740438, 0xFF0405FD, 0x030CFE52,
960 0x0037FB39, 0xFF6904C5, 0x04F8FD23, 0xFD31FC1B,
961 0xFD2CFD2C, 0xFC1BFD31, 0xFD2304F8, 0x04C5FF69,
962 0xFB390037, 0xFE52030C, 0x05FDFF04, 0x04380374,
963 0xFE000200, 0x0157FA25, 0x02F0FFA9, 0xFA2B0328,
964 0x01BF0425, 0xFDF90125, 0xFE0BF9D0, 0x00D2FBE9,
965 0x0000FA58, 0x03B8000D, 0xFF5C04C9, 0x03130457,
966 0xFBDB03E9, 0xFF3CFC44, 0x032BFE3C, 0xF9270022,
967 0xFE000200, 0x0277056D, 0x0228FCD7, 0xFF21FC3A,
968 0x057104C7, 0x0157FE68, 0xFDDCFC09, 0x0500FCE0,
969 0xFD2CFD2C, 0x0500FCE0, 0xFDDCFC09, 0x0157FE68,
970 0x057104C7, 0xFF21FC3A, 0x0228FCD7, 0x0277056D,
971 0xFE000200, 0xF9270022, 0x032BFE3C, 0xFF3CFC44,
972 0xFBDB03E9, 0x03130457, 0xFF5C04C9, 0x03B8000D,
973 0x0000FA58, 0x00D2FBE9, 0xFE0BF9D0, 0xFDF90125,
974 0x01BF0425, 0xFA2B0328, 0x02F0FFA9, 0x0157FA25,
975 0xFE000200, 0x04380374, 0x05FDFF04, 0xFE52030C,
976 0xFB390037, 0x04C5FF69, 0xFD2304F8, 0xFC1BFD31,
977 0xFD2CFD2C, 0xFD31FC1B, 0x04F8FD23, 0xFF6904C5,
978 0x0037FB39, 0x030CFE52, 0xFF0405FD, 0x03740438,
979 0x0200FE00, 0xFA250157, 0xFFA902F0, 0x0328FA2B,
980 0x042501BF, 0x0125FDF9, 0xF9D0FE0B, 0xFBE900D2,
981 0xFA580000, 0x000D03B8, 0x04C9FF5C, 0x04570313,
982 0x03E9FBDB, 0xFC44FF3C, 0xFE3C032B, 0x0022F927,
983 0x0200FE00, 0x056D0277, 0xFCD70228, 0xFC3AFF21,
984 0x04C70571, 0xFE680157, 0xFC09FDDC, 0xFCE00500,
985 0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
986 0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
987 0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
988 0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
989 0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
990 0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
991 0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
992 0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
993 0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
994 0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
995 0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
996 0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
997 0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
998 0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
999 0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
1000 0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
1001};
1002
Rafał Miłecki4772ae12010-01-15 12:18:21 +01001003static const u32 b43_ntab_tmap[] = {
Michael Buesch8ac919b2008-01-16 02:14:23 +01001004 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1005 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1006 0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
1007 0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
1008 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x000AA888,
1009 0x88880000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1010 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1011 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1012 0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
1013 0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
1014 0xF1111110, 0x11111111, 0x11F11111, 0x00011111,
1015 0x11110000, 0x1111F111, 0x11111111, 0x111111F1,
1016 0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00088AAA,
1017 0xAAAA0000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1018 0xAAA8AAA0, 0x8AAA8AAA, 0xAA8A8A8A, 0x000AAA88,
1019 0x8AAA0000, 0xAAA8A888, 0x8AA88A8A, 0x8A88A888,
1020 0x08080A00, 0x0A08080A, 0x080A0A08, 0x00080808,
1021 0x080A0000, 0x080A0808, 0x080A0808, 0x0A0A0A08,
1022 0xA0A0A0A0, 0x80A0A080, 0x8080A0A0, 0x00008080,
1023 0x80A00000, 0x80A080A0, 0xA080A0A0, 0x8080A0A0,
1024 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1025 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1026 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1027 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1028 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1029 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1030 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1031 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1032 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1033 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1034 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1035 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1036 0x99999000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1037 0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1038 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1039 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
1040 0x22000000, 0x2222B222, 0x22222222, 0x222222B2,
1041 0xB2222220, 0x22222222, 0x22D22222, 0x00000222,
1042 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1043 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1044 0x33000000, 0x3333B333, 0x33333333, 0x333333B3,
1045 0xB3333330, 0x33333333, 0x33D33333, 0x00000333,
1046 0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
1047 0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
1048 0x99B99B00, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1049 0x9B99BB99, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1050 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1051 0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
1052 0x22222200, 0x2222F222, 0x22222222, 0x222222F2,
1053 0x22222222, 0x22222222, 0x22F22222, 0x00000222,
1054 0x11000000, 0x1111F111, 0x11111111, 0x11111111,
1055 0xF1111111, 0x11111111, 0x11F11111, 0x01111111,
1056 0xBB9BB900, 0xB9B9BB99, 0xB99BBBBB, 0xBBBB9B9B,
1057 0xB9BB99BB, 0xB99999B9, 0xB9B9B99B, 0x00000BBB,
1058 0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1059 0xA8AA88AA, 0xA88888A8, 0xA8A8A88A, 0x0A888AAA,
1060 0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
1061 0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00000AAA,
1062 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1063 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1064 0xBBBBBB00, 0x999BBBBB, 0x9BB99B9B, 0xB9B9B9BB,
1065 0xB9B99BBB, 0xB9B9B9BB, 0xB9BB9B99, 0x00000999,
1066 0x8A000000, 0xAA88A888, 0xA88888AA, 0xA88A8A88,
1067 0xA88AA88A, 0x88A8AAAA, 0xA8AA8AAA, 0x0888A88A,
1068 0x0B0B0B00, 0x090B0B0B, 0x0B090B0B, 0x0909090B,
1069 0x09090B0B, 0x09090B0B, 0x09090B09, 0x00000909,
1070 0x0A000000, 0x0A080808, 0x080A080A, 0x080A0A08,
1071 0x080A080A, 0x0808080A, 0x0A0A0A08, 0x0808080A,
1072 0xB0B0B000, 0x9090B0B0, 0x90B09090, 0xB0B0B090,
1073 0xB0B090B0, 0x90B0B0B0, 0xB0B09090, 0x00000090,
1074 0x80000000, 0xA080A080, 0xA08080A0, 0xA0808080,
1075 0xA080A080, 0x80A0A0A0, 0xA0A080A0, 0x00A0A0A0,
1076 0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
1077 0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
1078 0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
1079 0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
1080 0x33000000, 0x3333F333, 0x33333333, 0x333333F3,
1081 0xF3333330, 0x33333333, 0x33F33333, 0x00000333,
1082 0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
1083 0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
1084 0x99000000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
1085 0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
1086 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1087 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1088 0x88888000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1089 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1090 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1091 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
1092 0x88A88A00, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1093 0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1094 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1095 0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
1096 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1097 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1098 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
1099 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
1100 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1101 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1102 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
1103 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
1104 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1105 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1106 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1107 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1108 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1109 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1110 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1111 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1112 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1113 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1114 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1115 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1116};
1117
Rafał Miłecki088e56b2010-01-15 13:02:45 +01001118const u32 b43_ntab_tx_gain_rev0_1_2[] = {
1119 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
1120 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
1121 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
1122 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
1123 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
1124 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
1125 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
1126 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
1127 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
1128 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
1129 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
1130 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
1131 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
1132 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
1133 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
1134 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
1135 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
1136 0x03902942, 0x03902844, 0x03902842, 0x03902744,
1137 0x03902742, 0x03902644, 0x03902642, 0x03902544,
1138 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
1139 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
1140 0x03802842, 0x03802744, 0x03802742, 0x03802644,
1141 0x03802642, 0x03802544, 0x03802542, 0x03802444,
1142 0x03802442, 0x03802344, 0x03802342, 0x03802244,
1143 0x03802242, 0x03802144, 0x03802142, 0x03802044,
1144 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
1145 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
1146 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
1147 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
1148 0x03801842, 0x03801744, 0x03801742, 0x03801644,
1149 0x03801642, 0x03801544, 0x03801542, 0x03801444,
1150 0x03801442, 0x03801344, 0x03801342, 0x00002b00,
1151};
1152
1153const u32 b43_ntab_tx_gain_rev3plus_2ghz[] = {
1154 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
1155 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
1156 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
1157 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
1158 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
1159 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
1160 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
1161 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
1162 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
1163 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
1164 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
1165 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
1166 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
1167 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
1168 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
1169 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
1170 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
1171 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
1172 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
1173 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
1174 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
1175 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
1176 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
1177 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
1178 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
1179 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
1180 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
1181 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
1182 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
1183 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
1184 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
1185 0x1041003c, 0x1041003b, 0x10410039, 0x10410037,
1186};
1187
1188const u32 b43_ntab_tx_gain_rev3_5ghz[] = {
1189 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
1190 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
1191 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
1192 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
1193 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
1194 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
1195 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
1196 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
1197 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
1198 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
1199 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
1200 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
1201 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
1202 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
1203 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
1204 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
1205 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
1206 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
1207 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
1208 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
1209 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
1210 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
1211 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
1212 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
1213 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
1214 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
1215 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
1216 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
1217 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
1218 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
1219 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
1220 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037,
1221};
1222
1223const u32 b43_ntab_tx_gain_rev4_5ghz[] = {
1224 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
1225 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
1226 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
1227 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
1228 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
1229 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
1230 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
1231 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
1232 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
1233 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
1234 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
1235 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
1236 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
1237 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
1238 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
1239 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
1240 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
1241 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
1242 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
1243 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
1244 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
1245 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
1246 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
1247 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
1248 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
1249 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
1250 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
1251 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
1252 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
1253 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
1254 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
1255 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034,
1256};
1257
1258const u32 b43_ntab_tx_gain_rev5plus_5ghz[] = {
1259 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
1260 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
1261 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
1262 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
1263 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
1264 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
1265 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
1266 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
1267 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
1268 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
1269 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
1270 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
1271 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
1272 0x09620039, 0x09620037, 0x09620035, 0x09620033,
1273 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
1274 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
1275 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
1276 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
1277 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
1278 0x06620039, 0x06620037, 0x06620035, 0x06620033,
1279 0x05620046, 0x05620044, 0x05620042, 0x05620040,
1280 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
1281 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
1282 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
1283 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
1284 0x03620038, 0x03620037, 0x03620035, 0x03620033,
1285 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
1286 0x02620046, 0x02620044, 0x02620043, 0x02620042,
1287 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
1288 0x01620043, 0x01620042, 0x01620041, 0x01620040,
1289 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
1290 0x0062003b, 0x00620039, 0x00620037, 0x00620035,
1291};
1292
1293const u32 txpwrctrl_tx_gain_ipa[] = {
1294 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
1295 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
1296 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
1297 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
1298 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
1299 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
1300 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
1301 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
1302 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
1303 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
1304 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
1305 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
1306 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
1307 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
1308 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
1309 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
1310 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
1311 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
1312 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
1313 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
1314 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
1315 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
1316 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
1317 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
1318 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
1319 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
1320 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
1321 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
1322 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
1323 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
1324 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
1325 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025,
1326};
1327
1328const u32 txpwrctrl_tx_gain_ipa_rev5[] = {
1329 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
1330 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
1331 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
1332 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
1333 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
1334 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
1335 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
1336 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
1337 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
1338 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
1339 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
1340 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
1341 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
1342 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
1343 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
1344 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
1345 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
1346 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
1347 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
1348 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
1349 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
1350 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
1351 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
1352 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
1353 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
1354 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
1355 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
1356 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
1357 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
1358 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
1359 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
1360 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025,
1361};
1362
1363const u32 txpwrctrl_tx_gain_ipa_rev6[] = {
1364 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
1365 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
1366 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
1367 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
1368 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
1369 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
1370 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
1371 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
1372 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
1373 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
1374 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
1375 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
1376 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
1377 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
1378 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
1379 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
1380 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
1381 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
1382 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
1383 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
1384 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
1385 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
1386 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
1387 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
1388 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
1389 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
1390 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
1391 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
1392 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
1393 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
1394 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
1395 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025,
1396};
1397
1398const u32 txpwrctrl_tx_gain_ipa_5g[] = {
1399 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
1400 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
1401 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
1402 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
1403 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
1404 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
1405 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
1406 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
1407 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
1408 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
1409 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
1410 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
1411 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
1412 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
1413 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
1414 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
1415 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
1416 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
1417 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
1418 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
1419 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
1420 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
1421 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
1422 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
1423 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
1424 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
1425 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
1426 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
1427 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
1428 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
1429 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
1430 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f,
1431};
1432
1433const u16 tbl_iqcal_gainparams[2][9][8] = {
1434 {
1435 { 0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69 },
1436 { 0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69 },
1437 { 0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68 },
1438 { 0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67 },
1439 { 0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66 },
1440 { 0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65 },
1441 { 0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65 },
1442 { 0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65 },
1443 { 0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65 }
1444 },
1445 {
1446 { 0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
1447 { 0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
1448 { 0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79 },
1449 { 0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78 },
1450 { 0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78 },
1451 { 0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78 },
1452 { 0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78 },
1453 { 0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78 },
1454 { 0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78 }
1455 }
1456};
1457
1458const struct nphy_txiqcal_ladder ladder_lo[] = {
1459 { 3, 0 },
1460 { 4, 0 },
1461 { 6, 0 },
1462 { 9, 0 },
1463 { 13, 0 },
1464 { 18, 0 },
1465 { 25, 0 },
1466 { 25, 1 },
1467 { 25, 2 },
1468 { 25, 3 },
1469 { 25, 4 },
1470 { 25, 5 },
1471 { 25, 6 },
1472 { 25, 7 },
1473 { 35, 7 },
1474 { 50, 7 },
1475 { 71, 7 },
1476 { 100, 7 }
1477};
1478
1479const struct nphy_txiqcal_ladder ladder_iq[] = {
1480 { 3, 0 },
1481 { 4, 0 },
1482 { 6, 0 },
1483 { 9, 0 },
1484 { 13, 0 },
1485 { 18, 0 },
1486 { 25, 0 },
1487 { 35, 0 },
1488 { 50, 0 },
1489 { 71, 0 },
1490 { 100, 0 },
1491 { 100, 1 },
1492 { 100, 2 },
1493 { 100, 3 },
1494 { 100, 4 },
1495 { 100, 5 },
1496 { 100, 6 },
1497 { 100, 7 }
1498};
1499
1500const u16 loscale[] = {
1501 256, 256, 271, 271,
1502 287, 256, 256, 271,
1503 271, 287, 287, 304,
1504 304, 256, 256, 271,
1505 271, 287, 287, 304,
1506 304, 322, 322, 341,
1507 341, 362, 362, 383,
1508 383, 256, 256, 271,
1509 271, 287, 287, 304,
1510 304, 322, 322, 256,
1511 256, 271, 271, 287,
1512 287, 304, 304, 322,
1513 322, 341, 341, 362,
1514 362, 256, 256, 271,
1515 271, 287, 287, 304,
1516 304, 322, 322, 256,
1517 256, 271, 271, 287,
1518 287, 304, 304, 322,
1519 322, 341, 341, 362,
1520 362, 256, 256, 271,
1521 271, 287, 287, 304,
1522 304, 322, 322, 341,
1523 341, 362, 362, 383,
1524 383, 406, 406, 430,
1525 430, 455, 455, 482,
1526 482, 511, 511, 541,
1527 541, 573, 573, 607,
1528 607, 643, 643, 681,
1529 681, 722, 722, 764,
1530 764, 810, 810, 858,
1531 858, 908, 908, 962,
1532 962, 1019, 1019, 256
1533};
1534
1535const u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
1536 0x0200, 0x0300, 0x0400, 0x0700,
1537 0x0900, 0x0c00, 0x1200, 0x1201,
1538 0x1202, 0x1203, 0x1204, 0x1205,
1539 0x1206, 0x1207, 0x1907, 0x2307,
1540 0x3207, 0x4707
1541};
1542
1543const u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
1544 0x0300, 0x0500, 0x0700, 0x0900,
1545 0x0d00, 0x1100, 0x1900, 0x1901,
1546 0x1902, 0x1903, 0x1904, 0x1905,
1547 0x1906, 0x1907, 0x2407, 0x3207,
1548 0x4607, 0x6407
1549};
1550
1551const u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
1552 0x0100, 0x0200, 0x0400, 0x0700,
1553 0x0900, 0x0c00, 0x1200, 0x1900,
1554 0x2300, 0x3200, 0x4700, 0x4701,
1555 0x4702, 0x4703, 0x4704, 0x4705,
1556 0x4706, 0x4707
1557};
1558
1559const u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
1560 0x0200, 0x0300, 0x0600, 0x0900,
1561 0x0d00, 0x1100, 0x1900, 0x2400,
1562 0x3200, 0x4600, 0x6400, 0x6401,
1563 0x6402, 0x6403, 0x6404, 0x6405,
1564 0x6406, 0x6407
1565};
1566
1567const u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[B43_NTAB_TX_IQLO_CAL_STARTCOEFS_REV3] = { };
1568
1569const u16 tbl_tx_iqlo_cal_startcoefs[B43_NTAB_TX_IQLO_CAL_STARTCOEFS] = { };
1570
1571const u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
1572 0x8423, 0x8323, 0x8073, 0x8256,
1573 0x8045, 0x8223, 0x9423, 0x9323,
1574 0x9073, 0x9256, 0x9045, 0x9223
1575};
1576
1577const u16 tbl_tx_iqlo_cal_cmds_recal[] = {
1578 0x8101, 0x8253, 0x8053, 0x8234,
1579 0x8034, 0x9101, 0x9253, 0x9053,
1580 0x9234, 0x9034
1581};
1582
1583const u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
1584 0x8123, 0x8264, 0x8086, 0x8245,
1585 0x8056, 0x9123, 0x9264, 0x9086,
1586 0x9245, 0x9056
1587};
1588
1589const u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
1590 0x8434, 0x8334, 0x8084, 0x8267,
1591 0x8056, 0x8234, 0x9434, 0x9334,
1592 0x9084, 0x9267, 0x9056, 0x9234
1593};
1594
Rafał Miłecki45ca6972010-01-22 01:53:15 +01001595const s16 tbl_tx_filter_coef_rev4[7][15] = {
1596 { -377, 137, -407, 208, -1527,
1597 956, 93, 186, 93, 230,
1598 -44, 230, 20, -191, 201 },
1599 { -77, 20, -98, 49, -93,
1600 60, 56, 111, 56, 26,
1601 -5, 26, 34, -32, 34 },
1602 { -360, 164, -376, 164, -1533,
1603 576, 308, -314, 308, 121,
1604 -73, 121, 91, 124, 91 },
1605 { -295, 200, -363, 142, -1391,
1606 826, 151, 301, 151, 151,
1607 301, 151, 602, -752, 602 },
1608 { -92, 58, -96, 49, -104,
1609 44, 17, 35, 17, 12,
1610 25, 12, 13, 27, 13 },
1611 { -375, 136, -399, 209, -1479,
1612 949, 130, 260, 130, 230,
1613 -44, 230, 201, -191, 201 },
1614 { 0xed9, 0xc8, 0xe95, 0x8e, 0xa91,
1615 0x33a, 0x97, 0x12d, 0x97, 0x97,
1616 0x12d, 0x97, 0x25a, 0xd10, 0x25a }
1617};
1618
Rafał Miłecki75377b22010-01-22 01:53:13 +01001619/* addr0, addr1, bmask, shift */
1620const struct nphy_rf_control_override_rev2 tbl_rf_control_override_rev2[] = {
1621 { 0x78, 0x78, 0x0038, 3 }, /* for field == 0x0002 (fls == 2) */
1622 { 0x7A, 0x7D, 0x0001, 0 }, /* for field == 0x0004 (fls == 3) */
1623 { 0x7A, 0x7D, 0x0002, 1 }, /* for field == 0x0008 (fls == 4) */
1624 { 0x7A, 0x7D, 0x0004, 2 }, /* for field == 0x0010 (fls == 5) */
1625 { 0x7A, 0x7D, 0x0030, 4 }, /* for field == 0x0020 (fls == 6) */
1626 { 0x7A, 0x7D, 0x00C0, 6 }, /* for field == 0x0040 (fls == 7) */
1627 { 0x7A, 0x7D, 0x0100, 8 }, /* for field == 0x0080 (fls == 8) */
1628 { 0x7A, 0x7D, 0x0200, 9 }, /* for field == 0x0100 (fls == 9) */
1629 { 0x78, 0x78, 0x0004, 2 }, /* for field == 0x0200 (fls == 10) */
1630 { 0x7B, 0x7E, 0x01FF, 0 }, /* for field == 0x0400 (fls == 11) */
1631 { 0x7C, 0x7F, 0x01FF, 0 }, /* for field == 0x0800 (fls == 12) */
1632 { 0x78, 0x78, 0x0100, 8 }, /* for field == 0x1000 (fls == 13) */
1633 { 0x78, 0x78, 0x0200, 9 }, /* for field == 0x2000 (fls == 14) */
1634 { 0x78, 0x78, 0xF000, 12 } /* for field == 0x4000 (fls == 15) */
1635};
1636
1637/* val_mask, val_shift, en_addr0, val_addr0, en_addr1, val_addr1 */
1638const struct nphy_rf_control_override_rev3 tbl_rf_control_override_rev3[] = {
1639 { 0x8000, 15, 0xE5, 0xF9, 0xE6, 0xFB }, /* field == 0x0001 (fls 1) */
1640 { 0x0001, 0, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0002 (fls 2) */
1641 { 0x0002, 1, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0004 (fls 3) */
1642 { 0x0004, 2, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0008 (fls 4) */
1643 { 0x0016, 4, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0010 (fls 5) */
1644 { 0x0020, 5, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0020 (fls 6) */
1645 { 0x0040, 6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0040 (fls 7) */
1646 { 0x0080, 6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0080 (fls 8) */
1647 { 0x0100, 7, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0100 (fls 9) */
1648 { 0x0007, 0, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0200 (fls 10) */
1649 { 0x0070, 4, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0400 (fls 11) */
1650 { 0xE000, 13, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0800 (fls 12) */
1651 { 0xFFFF, 0, 0xE7, 0x7B, 0xEC, 0x7E }, /* field == 0x1000 (fls 13) */
1652 { 0xFFFF, 0, 0xE7, 0x7C, 0xEC, 0x7F }, /* field == 0x2000 (fls 14) */
1653 { 0x00C0, 6, 0xE7, 0xF9, 0xEC, 0xFB } /* field == 0x4000 (fls 15) */
1654};
1655
Michael Buesch8ac919b2008-01-16 02:14:23 +01001656static inline void assert_ntab_array_sizes(void)
1657{
1658#undef check
1659#define check(table, size) \
1660 BUILD_BUG_ON(ARRAY_SIZE(b43_ntab_##table) != B43_NTAB_##size##_SIZE)
1661
1662 check(adjustpower0, C0_ADJPLT);
1663 check(adjustpower1, C1_ADJPLT);
1664 check(bdi, BDI);
1665 check(channelest, CHANEST);
1666 check(estimatepowerlt0, C0_ESTPLT);
1667 check(estimatepowerlt1, C1_ESTPLT);
1668 check(framelookup, FRAMELT);
1669 check(framestruct, FRAMESTRUCT);
1670 check(gainctl0, C0_GAINCTL);
1671 check(gainctl1, C1_GAINCTL);
1672 check(intlevel, INTLEVEL);
1673 check(iqlt0, C0_IQLT);
1674 check(iqlt1, C1_IQLT);
1675 check(loftlt0, C0_LOFEEDTH);
1676 check(loftlt1, C1_LOFEEDTH);
1677 check(mcs, MCS);
1678 check(noisevar10, NOISEVAR10);
1679 check(noisevar11, NOISEVAR11);
1680 check(pilot, PILOT);
1681 check(pilotlt, PILOTLT);
1682 check(tdi20a0, TDI20A0);
1683 check(tdi20a1, TDI20A1);
1684 check(tdi40a0, TDI40A0);
1685 check(tdi40a1, TDI40A1);
1686 check(tdtrn, TDTRN);
1687 check(tmap, TMAP);
1688
1689#undef check
1690}
1691
Rafał Miłeckic643a662010-01-18 00:21:27 +01001692u32 b43_ntab_read(struct b43_wldev *dev, u32 offset)
1693{
1694 u32 type, value;
1695
1696 type = offset & B43_NTAB_TYPEMASK;
1697 offset &= ~B43_NTAB_TYPEMASK;
1698 B43_WARN_ON(offset > 0xFFFF);
1699
1700 switch (type) {
1701 case B43_NTAB_8BIT:
1702 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
1703 value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF;
1704 break;
1705 case B43_NTAB_16BIT:
1706 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
1707 value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
1708 break;
1709 case B43_NTAB_32BIT:
1710 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
1711 value = b43_phy_read(dev, B43_NPHY_TABLE_DATAHI);
1712 value <<= 16;
1713 value |= b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
1714 break;
1715 default:
1716 B43_WARN_ON(1);
1717 value = 0;
1718 }
1719
1720 return value;
1721}
1722
Rafał Miłecki91458342010-01-18 00:21:35 +01001723void b43_ntab_read_bulk(struct b43_wldev *dev, u32 offset,
1724 unsigned int nr_elements, void *_data)
1725{
1726 u32 type;
1727 u8 *data = _data;
1728 unsigned int i;
1729
1730 type = offset & B43_NTAB_TYPEMASK;
1731 offset &= ~B43_NTAB_TYPEMASK;
1732 B43_WARN_ON(offset > 0xFFFF);
1733
1734 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
1735
1736 for (i = 0; i < nr_elements; i++) {
1737 switch (type) {
1738 case B43_NTAB_8BIT:
1739 *data = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF;
1740 data++;
1741 break;
1742 case B43_NTAB_16BIT:
1743 *((u16 *)data) = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
1744 data += 2;
1745 break;
1746 case B43_NTAB_32BIT:
1747 *((u32 *)data) = b43_phy_read(dev, B43_NPHY_TABLE_DATAHI);
1748 *((u32 *)data) <<= 16;
1749 *((u32 *)data) |= b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
1750 data += 4;
1751 break;
1752 default:
1753 B43_WARN_ON(1);
1754 }
1755 }
1756}
1757
Michael Buesch8ac919b2008-01-16 02:14:23 +01001758void b43_ntab_write(struct b43_wldev *dev, u32 offset, u32 value)
1759{
1760 u32 type;
1761
1762 type = offset & B43_NTAB_TYPEMASK;
1763 offset &= 0xFFFF;
1764
1765 switch (type) {
1766 case B43_NTAB_8BIT:
1767 B43_WARN_ON(value & ~0xFF);
1768 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
1769 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
1770 break;
1771 case B43_NTAB_16BIT:
1772 B43_WARN_ON(value & ~0xFFFF);
1773 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
1774 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
1775 break;
1776 case B43_NTAB_32BIT:
1777 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
1778 b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
1779 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value & 0xFFFF);
1780 break;
1781 default:
1782 B43_WARN_ON(1);
1783 }
1784
1785 return;
1786
1787 /* Some compiletime assertions... */
1788 assert_ntab_array_sizes();
1789}
Rafał Miłecki4772ae12010-01-15 12:18:21 +01001790
Rafał Miłecki2581b142010-01-18 00:21:21 +01001791void b43_ntab_write_bulk(struct b43_wldev *dev, u32 offset,
1792 unsigned int nr_elements, const void *_data)
1793{
1794 u32 type, value;
1795 const u8 *data = _data;
1796 unsigned int i;
1797
1798 type = offset & B43_NTAB_TYPEMASK;
1799 offset &= ~B43_NTAB_TYPEMASK;
1800 B43_WARN_ON(offset > 0xFFFF);
1801
1802 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
1803
1804 for (i = 0; i < nr_elements; i++) {
1805 switch (type) {
1806 case B43_NTAB_8BIT:
1807 value = *data;
1808 data++;
1809 B43_WARN_ON(value & ~0xFF);
1810 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
1811 break;
1812 case B43_NTAB_16BIT:
1813 value = *((u16 *)data);
1814 data += 2;
1815 B43_WARN_ON(value & ~0xFFFF);
1816 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
1817 break;
1818 case B43_NTAB_32BIT:
1819 value = *((u32 *)data);
1820 data += 4;
1821 b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
1822 b43_phy_write(dev, B43_NPHY_TABLE_DATALO,
1823 value & 0xFFFF);
1824 break;
1825 default:
1826 B43_WARN_ON(1);
1827 }
1828 }
1829}
1830
Rafał Miłecki4772ae12010-01-15 12:18:21 +01001831#define ntab_upload(dev, offset, data) do { \
1832 unsigned int i; \
1833 for (i = 0; i < (offset##_SIZE); i++) \
1834 b43_ntab_write(dev, (offset) + i, (data)[i]); \
1835 } while (0)
1836
1837void b43_nphy_rev0_1_2_tables_init(struct b43_wldev *dev)
1838{
1839 /* Static tables */
1840 ntab_upload(dev, B43_NTAB_FRAMESTRUCT, b43_ntab_framestruct);
1841 ntab_upload(dev, B43_NTAB_FRAMELT, b43_ntab_framelookup);
1842 ntab_upload(dev, B43_NTAB_TMAP, b43_ntab_tmap);
1843 ntab_upload(dev, B43_NTAB_TDTRN, b43_ntab_tdtrn);
1844 ntab_upload(dev, B43_NTAB_INTLEVEL, b43_ntab_intlevel);
1845 ntab_upload(dev, B43_NTAB_PILOT, b43_ntab_pilot);
1846 ntab_upload(dev, B43_NTAB_PILOTLT, b43_ntab_pilotlt);
1847 ntab_upload(dev, B43_NTAB_TDI20A0, b43_ntab_tdi20a0);
1848 ntab_upload(dev, B43_NTAB_TDI20A1, b43_ntab_tdi20a1);
1849 ntab_upload(dev, B43_NTAB_TDI40A0, b43_ntab_tdi40a0);
1850 ntab_upload(dev, B43_NTAB_TDI40A1, b43_ntab_tdi40a1);
1851 ntab_upload(dev, B43_NTAB_BDI, b43_ntab_bdi);
1852 ntab_upload(dev, B43_NTAB_CHANEST, b43_ntab_channelest);
1853 ntab_upload(dev, B43_NTAB_MCS, b43_ntab_mcs);
1854
1855 /* Volatile tables */
1856 ntab_upload(dev, B43_NTAB_NOISEVAR10, b43_ntab_noisevar10);
1857 ntab_upload(dev, B43_NTAB_NOISEVAR11, b43_ntab_noisevar11);
1858 ntab_upload(dev, B43_NTAB_C0_ESTPLT, b43_ntab_estimatepowerlt0);
1859 ntab_upload(dev, B43_NTAB_C1_ESTPLT, b43_ntab_estimatepowerlt1);
1860 ntab_upload(dev, B43_NTAB_C0_ADJPLT, b43_ntab_adjustpower0);
1861 ntab_upload(dev, B43_NTAB_C1_ADJPLT, b43_ntab_adjustpower1);
1862 ntab_upload(dev, B43_NTAB_C0_GAINCTL, b43_ntab_gainctl0);
1863 ntab_upload(dev, B43_NTAB_C1_GAINCTL, b43_ntab_gainctl1);
1864 ntab_upload(dev, B43_NTAB_C0_IQLT, b43_ntab_iqlt0);
1865 ntab_upload(dev, B43_NTAB_C1_IQLT, b43_ntab_iqlt1);
1866 ntab_upload(dev, B43_NTAB_C0_LOFEEDTH, b43_ntab_loftlt0);
1867 ntab_upload(dev, B43_NTAB_C1_LOFEEDTH, b43_ntab_loftlt1);
1868}
1869
1870void b43_nphy_rev3plus_tables_init(struct b43_wldev *dev)
1871{
1872 /* Static tables */
1873 /* TODO */
1874
1875 /* Volatile tables */
1876 /* TODO */
1877}