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