This source file includes following definitions.
- b43legacy_ilt_write
- b43legacy_ilt_write32
- b43legacy_ilt_read
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include "b43legacy.h"
16 #include "ilt.h"
17 #include "phy.h"
18
19
20
21
22 const u32 b43legacy_ilt_rotor[B43legacy_ILT_ROTOR_SIZE] = {
23 0xFEB93FFD, 0xFEC63FFD,
24 0xFED23FFD, 0xFEDF3FFD,
25 0xFEEC3FFE, 0xFEF83FFE,
26 0xFF053FFE, 0xFF113FFE,
27 0xFF1E3FFE, 0xFF2A3FFF,
28 0xFF373FFF, 0xFF443FFF,
29 0xFF503FFF, 0xFF5D3FFF,
30 0xFF693FFF, 0xFF763FFF,
31 0xFF824000, 0xFF8F4000,
32 0xFF9B4000, 0xFFA84000,
33 0xFFB54000, 0xFFC14000,
34 0xFFCE4000, 0xFFDA4000,
35 0xFFE74000, 0xFFF34000,
36 0x00004000, 0x000D4000,
37 0x00194000, 0x00264000,
38 0x00324000, 0x003F4000,
39 0x004B4000, 0x00584000,
40 0x00654000, 0x00714000,
41 0x007E4000, 0x008A3FFF,
42 0x00973FFF, 0x00A33FFF,
43 0x00B03FFF, 0x00BC3FFF,
44 0x00C93FFF, 0x00D63FFF,
45 0x00E23FFE, 0x00EF3FFE,
46 0x00FB3FFE, 0x01083FFE,
47 0x01143FFE, 0x01213FFD,
48 0x012E3FFD, 0x013A3FFD,
49 0x01473FFD,
50 };
51
52 const u32 b43legacy_ilt_retard[B43legacy_ILT_RETARD_SIZE] = {
53 0xDB93CB87, 0xD666CF64,
54 0xD1FDD358, 0xCDA6D826,
55 0xCA38DD9F, 0xC729E2B4,
56 0xC469E88E, 0xC26AEE2B,
57 0xC0DEF46C, 0xC073FA62,
58 0xC01D00D5, 0xC0760743,
59 0xC1560D1E, 0xC2E51369,
60 0xC4ED18FF, 0xC7AC1ED7,
61 0xCB2823B2, 0xCEFA28D9,
62 0xD2F62D3F, 0xD7BB3197,
63 0xDCE53568, 0xE1FE3875,
64 0xE7D13B35, 0xED663D35,
65 0xF39B3EC4, 0xF98E3FA7,
66 0x00004000, 0x06723FA7,
67 0x0C653EC4, 0x129A3D35,
68 0x182F3B35, 0x1E023875,
69 0x231B3568, 0x28453197,
70 0x2D0A2D3F, 0x310628D9,
71 0x34D823B2, 0x38541ED7,
72 0x3B1318FF, 0x3D1B1369,
73 0x3EAA0D1E, 0x3F8A0743,
74 0x3FE300D5, 0x3F8DFA62,
75 0x3F22F46C, 0x3D96EE2B,
76 0x3B97E88E, 0x38D7E2B4,
77 0x35C8DD9F, 0x325AD826,
78 0x2E03D358, 0x299ACF64,
79 0x246DCB87,
80 };
81
82 const u16 b43legacy_ilt_finefreqa[B43legacy_ILT_FINEFREQA_SIZE] = {
83 0x0082, 0x0082, 0x0102, 0x0182,
84 0x0202, 0x0282, 0x0302, 0x0382,
85 0x0402, 0x0482, 0x0502, 0x0582,
86 0x05E2, 0x0662, 0x06E2, 0x0762,
87 0x07E2, 0x0842, 0x08C2, 0x0942,
88 0x09C2, 0x0A22, 0x0AA2, 0x0B02,
89 0x0B82, 0x0BE2, 0x0C62, 0x0CC2,
90 0x0D42, 0x0DA2, 0x0E02, 0x0E62,
91 0x0EE2, 0x0F42, 0x0FA2, 0x1002,
92 0x1062, 0x10C2, 0x1122, 0x1182,
93 0x11E2, 0x1242, 0x12A2, 0x12E2,
94 0x1342, 0x13A2, 0x1402, 0x1442,
95 0x14A2, 0x14E2, 0x1542, 0x1582,
96 0x15E2, 0x1622, 0x1662, 0x16C1,
97 0x1701, 0x1741, 0x1781, 0x17E1,
98 0x1821, 0x1861, 0x18A1, 0x18E1,
99 0x1921, 0x1961, 0x19A1, 0x19E1,
100 0x1A21, 0x1A61, 0x1AA1, 0x1AC1,
101 0x1B01, 0x1B41, 0x1B81, 0x1BA1,
102 0x1BE1, 0x1C21, 0x1C41, 0x1C81,
103 0x1CA1, 0x1CE1, 0x1D01, 0x1D41,
104 0x1D61, 0x1DA1, 0x1DC1, 0x1E01,
105 0x1E21, 0x1E61, 0x1E81, 0x1EA1,
106 0x1EE1, 0x1F01, 0x1F21, 0x1F41,
107 0x1F81, 0x1FA1, 0x1FC1, 0x1FE1,
108 0x2001, 0x2041, 0x2061, 0x2081,
109 0x20A1, 0x20C1, 0x20E1, 0x2101,
110 0x2121, 0x2141, 0x2161, 0x2181,
111 0x21A1, 0x21C1, 0x21E1, 0x2201,
112 0x2221, 0x2241, 0x2261, 0x2281,
113 0x22A1, 0x22C1, 0x22C1, 0x22E1,
114 0x2301, 0x2321, 0x2341, 0x2361,
115 0x2361, 0x2381, 0x23A1, 0x23C1,
116 0x23E1, 0x23E1, 0x2401, 0x2421,
117 0x2441, 0x2441, 0x2461, 0x2481,
118 0x2481, 0x24A1, 0x24C1, 0x24C1,
119 0x24E1, 0x2501, 0x2501, 0x2521,
120 0x2541, 0x2541, 0x2561, 0x2561,
121 0x2581, 0x25A1, 0x25A1, 0x25C1,
122 0x25C1, 0x25E1, 0x2601, 0x2601,
123 0x2621, 0x2621, 0x2641, 0x2641,
124 0x2661, 0x2661, 0x2681, 0x2681,
125 0x26A1, 0x26A1, 0x26C1, 0x26C1,
126 0x26E1, 0x26E1, 0x2701, 0x2701,
127 0x2721, 0x2721, 0x2740, 0x2740,
128 0x2760, 0x2760, 0x2780, 0x2780,
129 0x2780, 0x27A0, 0x27A0, 0x27C0,
130 0x27C0, 0x27E0, 0x27E0, 0x27E0,
131 0x2800, 0x2800, 0x2820, 0x2820,
132 0x2820, 0x2840, 0x2840, 0x2840,
133 0x2860, 0x2860, 0x2880, 0x2880,
134 0x2880, 0x28A0, 0x28A0, 0x28A0,
135 0x28C0, 0x28C0, 0x28C0, 0x28E0,
136 0x28E0, 0x28E0, 0x2900, 0x2900,
137 0x2900, 0x2920, 0x2920, 0x2920,
138 0x2940, 0x2940, 0x2940, 0x2960,
139 0x2960, 0x2960, 0x2960, 0x2980,
140 0x2980, 0x2980, 0x29A0, 0x29A0,
141 0x29A0, 0x29A0, 0x29C0, 0x29C0,
142 0x29C0, 0x29E0, 0x29E0, 0x29E0,
143 0x29E0, 0x2A00, 0x2A00, 0x2A00,
144 0x2A00, 0x2A20, 0x2A20, 0x2A20,
145 0x2A20, 0x2A40, 0x2A40, 0x2A40,
146 0x2A40, 0x2A60, 0x2A60, 0x2A60,
147 };
148
149 const u16 b43legacy_ilt_finefreqg[B43legacy_ILT_FINEFREQG_SIZE] = {
150 0x0089, 0x02E9, 0x0409, 0x04E9,
151 0x05A9, 0x0669, 0x0709, 0x0789,
152 0x0829, 0x08A9, 0x0929, 0x0989,
153 0x0A09, 0x0A69, 0x0AC9, 0x0B29,
154 0x0BA9, 0x0BE9, 0x0C49, 0x0CA9,
155 0x0D09, 0x0D69, 0x0DA9, 0x0E09,
156 0x0E69, 0x0EA9, 0x0F09, 0x0F49,
157 0x0FA9, 0x0FE9, 0x1029, 0x1089,
158 0x10C9, 0x1109, 0x1169, 0x11A9,
159 0x11E9, 0x1229, 0x1289, 0x12C9,
160 0x1309, 0x1349, 0x1389, 0x13C9,
161 0x1409, 0x1449, 0x14A9, 0x14E9,
162 0x1529, 0x1569, 0x15A9, 0x15E9,
163 0x1629, 0x1669, 0x16A9, 0x16E8,
164 0x1728, 0x1768, 0x17A8, 0x17E8,
165 0x1828, 0x1868, 0x18A8, 0x18E8,
166 0x1928, 0x1968, 0x19A8, 0x19E8,
167 0x1A28, 0x1A68, 0x1AA8, 0x1AE8,
168 0x1B28, 0x1B68, 0x1BA8, 0x1BE8,
169 0x1C28, 0x1C68, 0x1CA8, 0x1CE8,
170 0x1D28, 0x1D68, 0x1DC8, 0x1E08,
171 0x1E48, 0x1E88, 0x1EC8, 0x1F08,
172 0x1F48, 0x1F88, 0x1FE8, 0x2028,
173 0x2068, 0x20A8, 0x2108, 0x2148,
174 0x2188, 0x21C8, 0x2228, 0x2268,
175 0x22C8, 0x2308, 0x2348, 0x23A8,
176 0x23E8, 0x2448, 0x24A8, 0x24E8,
177 0x2548, 0x25A8, 0x2608, 0x2668,
178 0x26C8, 0x2728, 0x2787, 0x27E7,
179 0x2847, 0x28C7, 0x2947, 0x29A7,
180 0x2A27, 0x2AC7, 0x2B47, 0x2BE7,
181 0x2CA7, 0x2D67, 0x2E47, 0x2F67,
182 0x3247, 0x3526, 0x3646, 0x3726,
183 0x3806, 0x38A6, 0x3946, 0x39E6,
184 0x3A66, 0x3AE6, 0x3B66, 0x3BC6,
185 0x3C45, 0x3CA5, 0x3D05, 0x3D85,
186 0x3DE5, 0x3E45, 0x3EA5, 0x3EE5,
187 0x3F45, 0x3FA5, 0x4005, 0x4045,
188 0x40A5, 0x40E5, 0x4145, 0x4185,
189 0x41E5, 0x4225, 0x4265, 0x42C5,
190 0x4305, 0x4345, 0x43A5, 0x43E5,
191 0x4424, 0x4464, 0x44C4, 0x4504,
192 0x4544, 0x4584, 0x45C4, 0x4604,
193 0x4644, 0x46A4, 0x46E4, 0x4724,
194 0x4764, 0x47A4, 0x47E4, 0x4824,
195 0x4864, 0x48A4, 0x48E4, 0x4924,
196 0x4964, 0x49A4, 0x49E4, 0x4A24,
197 0x4A64, 0x4AA4, 0x4AE4, 0x4B23,
198 0x4B63, 0x4BA3, 0x4BE3, 0x4C23,
199 0x4C63, 0x4CA3, 0x4CE3, 0x4D23,
200 0x4D63, 0x4DA3, 0x4DE3, 0x4E23,
201 0x4E63, 0x4EA3, 0x4EE3, 0x4F23,
202 0x4F63, 0x4FC3, 0x5003, 0x5043,
203 0x5083, 0x50C3, 0x5103, 0x5143,
204 0x5183, 0x51E2, 0x5222, 0x5262,
205 0x52A2, 0x52E2, 0x5342, 0x5382,
206 0x53C2, 0x5402, 0x5462, 0x54A2,
207 0x5502, 0x5542, 0x55A2, 0x55E2,
208 0x5642, 0x5682, 0x56E2, 0x5722,
209 0x5782, 0x57E1, 0x5841, 0x58A1,
210 0x5901, 0x5961, 0x59C1, 0x5A21,
211 0x5AA1, 0x5B01, 0x5B81, 0x5BE1,
212 0x5C61, 0x5D01, 0x5D80, 0x5E20,
213 0x5EE0, 0x5FA0, 0x6080, 0x61C0,
214 };
215
216 const u16 b43legacy_ilt_noisea2[B43legacy_ILT_NOISEA2_SIZE] = {
217 0x0001, 0x0001, 0x0001, 0xFFFE,
218 0xFFFE, 0x3FFF, 0x1000, 0x0393,
219 };
220
221 const u16 b43legacy_ilt_noisea3[B43legacy_ILT_NOISEA3_SIZE] = {
222 0x4C4C, 0x4C4C, 0x4C4C, 0x2D36,
223 0x4C4C, 0x4C4C, 0x4C4C, 0x2D36,
224 };
225
226 const u16 b43legacy_ilt_noiseg1[B43legacy_ILT_NOISEG1_SIZE] = {
227 0x013C, 0x01F5, 0x031A, 0x0631,
228 0x0001, 0x0001, 0x0001, 0x0001,
229 };
230
231 const u16 b43legacy_ilt_noiseg2[B43legacy_ILT_NOISEG2_SIZE] = {
232 0x5484, 0x3C40, 0x0000, 0x0000,
233 0x0000, 0x0000, 0x0000, 0x0000,
234 };
235
236 const u16 b43legacy_ilt_noisescaleg1[B43legacy_ILT_NOISESCALEG_SIZE] = {
237 0x6C77, 0x5162, 0x3B40, 0x3335,
238 0x2F2D, 0x2A2A, 0x2527, 0x1F21,
239 0x1A1D, 0x1719, 0x1616, 0x1414,
240 0x1414, 0x1400, 0x1414, 0x1614,
241 0x1716, 0x1A19, 0x1F1D, 0x2521,
242 0x2A27, 0x2F2A, 0x332D, 0x3B35,
243 0x5140, 0x6C62, 0x0077,
244 };
245
246 const u16 b43legacy_ilt_noisescaleg2[B43legacy_ILT_NOISESCALEG_SIZE] = {
247 0xD8DD, 0xCBD4, 0xBCC0, 0XB6B7,
248 0xB2B0, 0xADAD, 0xA7A9, 0x9FA1,
249 0x969B, 0x9195, 0x8F8F, 0x8A8A,
250 0x8A8A, 0x8A00, 0x8A8A, 0x8F8A,
251 0x918F, 0x9695, 0x9F9B, 0xA7A1,
252 0xADA9, 0xB2AD, 0xB6B0, 0xBCB7,
253 0xCBC0, 0xD8D4, 0x00DD,
254 };
255
256 const u16 b43legacy_ilt_noisescaleg3[B43legacy_ILT_NOISESCALEG_SIZE] = {
257 0xA4A4, 0xA4A4, 0xA4A4, 0xA4A4,
258 0xA4A4, 0xA4A4, 0xA4A4, 0xA4A4,
259 0xA4A4, 0xA4A4, 0xA4A4, 0xA4A4,
260 0xA4A4, 0xA400, 0xA4A4, 0xA4A4,
261 0xA4A4, 0xA4A4, 0xA4A4, 0xA4A4,
262 0xA4A4, 0xA4A4, 0xA4A4, 0xA4A4,
263 0xA4A4, 0xA4A4, 0x00A4,
264 };
265
266 const u16 b43legacy_ilt_sigmasqr1[B43legacy_ILT_SIGMASQR_SIZE] = {
267 0x007A, 0x0075, 0x0071, 0x006C,
268 0x0067, 0x0063, 0x005E, 0x0059,
269 0x0054, 0x0050, 0x004B, 0x0046,
270 0x0042, 0x003D, 0x003D, 0x003D,
271 0x003D, 0x003D, 0x003D, 0x003D,
272 0x003D, 0x003D, 0x003D, 0x003D,
273 0x003D, 0x003D, 0x0000, 0x003D,
274 0x003D, 0x003D, 0x003D, 0x003D,
275 0x003D, 0x003D, 0x003D, 0x003D,
276 0x003D, 0x003D, 0x003D, 0x003D,
277 0x0042, 0x0046, 0x004B, 0x0050,
278 0x0054, 0x0059, 0x005E, 0x0063,
279 0x0067, 0x006C, 0x0071, 0x0075,
280 0x007A,
281 };
282
283 const u16 b43legacy_ilt_sigmasqr2[B43legacy_ILT_SIGMASQR_SIZE] = {
284 0x00DE, 0x00DC, 0x00DA, 0x00D8,
285 0x00D6, 0x00D4, 0x00D2, 0x00CF,
286 0x00CD, 0x00CA, 0x00C7, 0x00C4,
287 0x00C1, 0x00BE, 0x00BE, 0x00BE,
288 0x00BE, 0x00BE, 0x00BE, 0x00BE,
289 0x00BE, 0x00BE, 0x00BE, 0x00BE,
290 0x00BE, 0x00BE, 0x0000, 0x00BE,
291 0x00BE, 0x00BE, 0x00BE, 0x00BE,
292 0x00BE, 0x00BE, 0x00BE, 0x00BE,
293 0x00BE, 0x00BE, 0x00BE, 0x00BE,
294 0x00C1, 0x00C4, 0x00C7, 0x00CA,
295 0x00CD, 0x00CF, 0x00D2, 0x00D4,
296 0x00D6, 0x00D8, 0x00DA, 0x00DC,
297 0x00DE,
298 };
299
300
301
302 void b43legacy_ilt_write(struct b43legacy_wldev *dev, u16 offset, u16 val)
303 {
304 b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_CTRL, offset);
305 b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_DATA1, val);
306 }
307
308 void b43legacy_ilt_write32(struct b43legacy_wldev *dev, u16 offset, u32 val)
309 {
310 b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_CTRL, offset);
311 b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_DATA2,
312 (val & 0xFFFF0000) >> 16);
313 b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_DATA1,
314 val & 0x0000FFFF);
315 }
316
317 u16 b43legacy_ilt_read(struct b43legacy_wldev *dev, u16 offset)
318 {
319 b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_CTRL, offset);
320 return b43legacy_phy_read(dev, B43legacy_PHY_ILT_G_DATA1);
321 }