diff options
Diffstat (limited to 'drivers/net/wireless/b43/radio_2057.c')
-rw-r--r-- | drivers/net/wireless/b43/radio_2057.c | 420 |
1 files changed, 419 insertions, 1 deletions
diff --git a/drivers/net/wireless/b43/radio_2057.c b/drivers/net/wireless/b43/radio_2057.c index df3574545819..ff1e026a61a1 100644 --- a/drivers/net/wireless/b43/radio_2057.c +++ b/drivers/net/wireless/b43/radio_2057.c | |||
@@ -105,6 +105,27 @@ static u16 r2057_rev8_init[][2] = { | |||
105 | }; | 105 | }; |
106 | */ | 106 | */ |
107 | 107 | ||
108 | /* Extracted from MMIO dump of 6.30.223.141 */ | ||
109 | static u16 r2057_rev9_init[][2] = { | ||
110 | { 0x27, 0x1f }, { 0x28, 0x0a }, { 0x29, 0x2f }, { 0x42, 0x1f }, | ||
111 | { 0x48, 0x3f }, { 0x5c, 0x41 }, { 0x63, 0x14 }, { 0x64, 0x12 }, | ||
112 | { 0x66, 0xff }, { 0x74, 0xa3 }, { 0x7b, 0x14 }, { 0x7c, 0x14 }, | ||
113 | { 0x7d, 0xee }, { 0x86, 0xc0 }, { 0xc4, 0x10 }, { 0xc9, 0x01 }, | ||
114 | { 0xe1, 0x41 }, { 0xe8, 0x14 }, { 0xe9, 0x12 }, { 0xeb, 0xff }, | ||
115 | { 0xf5, 0x0a }, { 0xf8, 0x09 }, { 0xf9, 0xa3 }, { 0x100, 0x14 }, | ||
116 | { 0x101, 0x10 }, { 0x102, 0xee }, { 0x10b, 0xc0 }, { 0x149, 0x10 }, | ||
117 | { 0x14e, 0x01 }, { 0x1b7, 0x05 }, { 0x1c2, 0xa0 }, | ||
118 | }; | ||
119 | |||
120 | /* Extracted from MMIO dump of 6.30.223.248 */ | ||
121 | static u16 r2057_rev14_init[][2] = { | ||
122 | { 0x011, 0xfc }, { 0x030, 0x24 }, { 0x040, 0x1c }, { 0x082, 0x08 }, | ||
123 | { 0x0b4, 0x44 }, { 0x0c8, 0x01 }, { 0x0c9, 0x01 }, { 0x107, 0x08 }, | ||
124 | { 0x14d, 0x01 }, { 0x14e, 0x01 }, { 0x1af, 0x40 }, { 0x1b0, 0x40 }, | ||
125 | { 0x1cc, 0x01 }, { 0x1cf, 0x10 }, { 0x1d0, 0x0f }, { 0x1d3, 0x10 }, | ||
126 | { 0x1d4, 0x0f }, | ||
127 | }; | ||
128 | |||
108 | #define RADIOREGS7(r00, r01, r02, r03, r04, r05, r06, r07, r08, r09, \ | 129 | #define RADIOREGS7(r00, r01, r02, r03, r04, r05, r06, r07, r08, r09, \ |
109 | r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, \ | 130 | r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, \ |
110 | r20, r21, r22, r23, r24, r25, r26, r27) \ | 131 | r20, r21, r22, r23, r24, r25, r26, r27) \ |
@@ -137,6 +158,27 @@ static u16 r2057_rev8_init[][2] = { | |||
137 | .radio_lna2g_tune_core1 = r26, \ | 158 | .radio_lna2g_tune_core1 = r26, \ |
138 | .radio_lna5g_tune_core1 = r27 | 159 | .radio_lna5g_tune_core1 = r27 |
139 | 160 | ||
161 | #define RADIOREGS7_2G(r00, r01, r02, r03, r04, r05, r06, r07, r08, r09, \ | ||
162 | r10, r11, r12, r13, r14, r15, r16, r17) \ | ||
163 | .radio_vcocal_countval0 = r00, \ | ||
164 | .radio_vcocal_countval1 = r01, \ | ||
165 | .radio_rfpll_refmaster_sparextalsize = r02, \ | ||
166 | .radio_rfpll_loopfilter_r1 = r03, \ | ||
167 | .radio_rfpll_loopfilter_c2 = r04, \ | ||
168 | .radio_rfpll_loopfilter_c1 = r05, \ | ||
169 | .radio_cp_kpd_idac = r06, \ | ||
170 | .radio_rfpll_mmd0 = r07, \ | ||
171 | .radio_rfpll_mmd1 = r08, \ | ||
172 | .radio_vcobuf_tune = r09, \ | ||
173 | .radio_logen_mx2g_tune = r10, \ | ||
174 | .radio_logen_indbuf2g_tune = r11, \ | ||
175 | .radio_txmix2g_tune_boost_pu_core0 = r12, \ | ||
176 | .radio_pad2g_tune_pus_core0 = r13, \ | ||
177 | .radio_lna2g_tune_core0 = r14, \ | ||
178 | .radio_txmix2g_tune_boost_pu_core1 = r15, \ | ||
179 | .radio_pad2g_tune_pus_core1 = r16, \ | ||
180 | .radio_lna2g_tune_core1 = r17 | ||
181 | |||
140 | #define PHYREGS(r0, r1, r2, r3, r4, r5) \ | 182 | #define PHYREGS(r0, r1, r2, r3, r4, r5) \ |
141 | .phy_regs.phy_bw1a = r0, \ | 183 | .phy_regs.phy_bw1a = r0, \ |
142 | .phy_regs.phy_bw2 = r1, \ | 184 | .phy_regs.phy_bw2 = r1, \ |
@@ -145,6 +187,353 @@ static u16 r2057_rev8_init[][2] = { | |||
145 | .phy_regs.phy_bw5 = r4, \ | 187 | .phy_regs.phy_bw5 = r4, \ |
146 | .phy_regs.phy_bw6 = r5 | 188 | .phy_regs.phy_bw6 = r5 |
147 | 189 | ||
190 | /* Copied from brcmsmac (5.75.11): chan_info_nphyrev8_2057_rev5 */ | ||
191 | static const struct b43_nphy_chantabent_rev7_2g b43_nphy_chantab_phy_rev8_radio_rev5[] = { | ||
192 | { | ||
193 | .freq = 2412, | ||
194 | RADIOREGS7_2G(0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, | ||
195 | 0x09, 0x0d, 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, | ||
196 | 0x03, 0xff), | ||
197 | PHYREGS(0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443), | ||
198 | }, | ||
199 | { | ||
200 | .freq = 2417, | ||
201 | RADIOREGS7_2G(0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, | ||
202 | 0x09, 0x0d, 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, | ||
203 | 0x03, 0xff), | ||
204 | PHYREGS(0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441), | ||
205 | }, | ||
206 | { | ||
207 | .freq = 2422, | ||
208 | RADIOREGS7_2G(0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, | ||
209 | 0x09, 0x0d, 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, | ||
210 | 0x03, 0xef), | ||
211 | PHYREGS(0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f), | ||
212 | }, | ||
213 | { | ||
214 | .freq = 2427, | ||
215 | RADIOREGS7_2G(0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, | ||
216 | 0x09, 0x0c, 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, | ||
217 | 0x03, 0xdf), | ||
218 | PHYREGS(0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d), | ||
219 | }, | ||
220 | { | ||
221 | .freq = 2432, | ||
222 | RADIOREGS7_2G(0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, | ||
223 | 0x09, 0x0c, 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, | ||
224 | 0x03, 0xcf), | ||
225 | PHYREGS(0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a), | ||
226 | }, | ||
227 | { | ||
228 | .freq = 2437, | ||
229 | RADIOREGS7_2G(0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, | ||
230 | 0x09, 0x0c, 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, | ||
231 | 0x03, 0xbf), | ||
232 | PHYREGS(0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438), | ||
233 | }, | ||
234 | { | ||
235 | .freq = 2442, | ||
236 | RADIOREGS7_2G(0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, | ||
237 | 0x09, 0x0b, 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, | ||
238 | 0x03, 0xaf), | ||
239 | PHYREGS(0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436), | ||
240 | }, | ||
241 | { | ||
242 | .freq = 2447, | ||
243 | RADIOREGS7_2G(0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, | ||
244 | 0x09, 0x0b, 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, | ||
245 | 0x03, 0x9f), | ||
246 | PHYREGS(0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434), | ||
247 | }, | ||
248 | { | ||
249 | .freq = 2452, | ||
250 | RADIOREGS7_2G(0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, | ||
251 | 0x09, 0x0b, 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, | ||
252 | 0x03, 0x8f), | ||
253 | PHYREGS(0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431), | ||
254 | }, | ||
255 | { | ||
256 | .freq = 2457, | ||
257 | RADIOREGS7_2G(0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, | ||
258 | 0x09, 0x0b, 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, | ||
259 | 0x03, 0x7f), | ||
260 | PHYREGS(0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f), | ||
261 | }, | ||
262 | { | ||
263 | .freq = 2462, | ||
264 | RADIOREGS7_2G(0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, | ||
265 | 0x09, 0x0b, 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, | ||
266 | 0x03, 0x6f), | ||
267 | PHYREGS(0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d), | ||
268 | }, | ||
269 | { | ||
270 | .freq = 2467, | ||
271 | RADIOREGS7_2G(0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, | ||
272 | 0x09, 0x0b, 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, | ||
273 | 0x03, 0x5f), | ||
274 | PHYREGS(0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b), | ||
275 | }, | ||
276 | { | ||
277 | .freq = 2472, | ||
278 | RADIOREGS7_2G(0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, | ||
279 | 0x09, 0x0a, 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, | ||
280 | 0x03, 0x4f), | ||
281 | PHYREGS(0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429), | ||
282 | }, | ||
283 | { | ||
284 | .freq = 2484, | ||
285 | RADIOREGS7_2G(0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, | ||
286 | 0x09, 0x0a, 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, | ||
287 | 0x03, 0x3f), | ||
288 | PHYREGS(0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424), | ||
289 | } | ||
290 | }; | ||
291 | |||
292 | /* Extracted from MMIO dump of 6.30.223.248 */ | ||
293 | static const struct b43_nphy_chantabent_rev7_2g b43_nphy_chantab_phy_rev17_radio_rev14[] = { | ||
294 | { | ||
295 | .freq = 2412, | ||
296 | RADIOREGS7_2G(0x48, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x6c, | ||
297 | 0x09, 0x0d, 0x09, 0x03, 0x21, 0x53, 0xff, 0x21, | ||
298 | 0x53, 0xff), | ||
299 | PHYREGS(0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443), | ||
300 | }, | ||
301 | { | ||
302 | .freq = 2417, | ||
303 | RADIOREGS7_2G(0x4b, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x71, | ||
304 | 0x09, 0x0d, 0x08, 0x03, 0x21, 0x53, 0xff, 0x21, | ||
305 | 0x53, 0xff), | ||
306 | PHYREGS(0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441), | ||
307 | }, | ||
308 | { | ||
309 | .freq = 2422, | ||
310 | RADIOREGS7_2G(0x4e, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x76, | ||
311 | 0x09, 0x0d, 0x08, 0x03, 0x21, 0x53, 0xff, 0x21, | ||
312 | 0x53, 0xff), | ||
313 | PHYREGS(0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f), | ||
314 | }, | ||
315 | { | ||
316 | .freq = 2427, | ||
317 | RADIOREGS7_2G(0x52, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x7b, | ||
318 | 0x09, 0x0c, 0x08, 0x03, 0x21, 0x53, 0xff, 0x21, | ||
319 | 0x53, 0xff), | ||
320 | PHYREGS(0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d), | ||
321 | }, | ||
322 | { | ||
323 | .freq = 2432, | ||
324 | RADIOREGS7_2G(0x55, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x80, | ||
325 | 0x09, 0x0c, 0x08, 0x03, 0x21, 0x53, 0xff, 0x21, | ||
326 | 0x53, 0xff), | ||
327 | PHYREGS(0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a), | ||
328 | }, | ||
329 | { | ||
330 | .freq = 2437, | ||
331 | RADIOREGS7_2G(0x58, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x85, | ||
332 | 0x09, 0x0c, 0x08, 0x03, 0x21, 0x53, 0xff, 0x21, | ||
333 | 0x53, 0xff), | ||
334 | PHYREGS(0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438), | ||
335 | }, | ||
336 | { | ||
337 | .freq = 2442, | ||
338 | RADIOREGS7_2G(0x5c, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x8a, | ||
339 | 0x09, 0x0c, 0x08, 0x03, 0x21, 0x43, 0xff, 0x21, | ||
340 | 0x43, 0xff), | ||
341 | PHYREGS(0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436), | ||
342 | }, | ||
343 | { | ||
344 | .freq = 2447, | ||
345 | RADIOREGS7_2G(0x5f, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x8f, | ||
346 | 0x09, 0x0c, 0x08, 0x03, 0x21, 0x43, 0xff, 0x21, | ||
347 | 0x43, 0xff), | ||
348 | PHYREGS(0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434), | ||
349 | }, | ||
350 | { | ||
351 | .freq = 2452, | ||
352 | RADIOREGS7_2G(0x62, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x94, | ||
353 | 0x09, 0x0c, 0x08, 0x03, 0x21, 0x43, 0xff, 0x21, | ||
354 | 0x43, 0xff), | ||
355 | PHYREGS(0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431), | ||
356 | }, | ||
357 | { | ||
358 | .freq = 2457, | ||
359 | RADIOREGS7_2G(0x66, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x99, | ||
360 | 0x09, 0x0b, 0x07, 0x03, 0x21, 0x43, 0xff, 0x21, | ||
361 | 0x43, 0xff), | ||
362 | PHYREGS(0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f), | ||
363 | }, | ||
364 | { | ||
365 | .freq = 2462, | ||
366 | RADIOREGS7_2G(0x69, 0x16, 0x30, 0x2b, 0x1f, 0x1f, 0x30, 0x9e, | ||
367 | 0x09, 0x0b, 0x07, 0x03, 0x01, 0x43, 0xff, 0x01, | ||
368 | 0x43, 0xff), | ||
369 | PHYREGS(0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d), | ||
370 | }, | ||
371 | }; | ||
372 | |||
373 | /* Extracted from MMIO dump of 6.30.223.141 */ | ||
374 | static const struct b43_nphy_chantabent_rev7 b43_nphy_chantab_phy_rev16_radio_rev9[] = { | ||
375 | { | ||
376 | .freq = 2412, | ||
377 | RADIOREGS7(0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, | ||
378 | 0x09, 0x0f, 0x0a, 0x00, 0x0a, 0x00, 0x41, 0x63, | ||
379 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
380 | 0x00, 0x00, 0xf0, 0x00), | ||
381 | PHYREGS(0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443), | ||
382 | }, | ||
383 | { | ||
384 | .freq = 2417, | ||
385 | RADIOREGS7(0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, | ||
386 | 0x09, 0x0f, 0x0a, 0x00, 0x0a, 0x00, 0x41, 0x63, | ||
387 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
388 | 0x00, 0x00, 0xf0, 0x00), | ||
389 | PHYREGS(0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441), | ||
390 | }, | ||
391 | { | ||
392 | .freq = 2422, | ||
393 | RADIOREGS7(0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, | ||
394 | 0x09, 0x0f, 0x09, 0x00, 0x09, 0x00, 0x41, 0x63, | ||
395 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
396 | 0x00, 0x00, 0xf0, 0x00), | ||
397 | PHYREGS(0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f), | ||
398 | }, | ||
399 | { | ||
400 | .freq = 2427, | ||
401 | RADIOREGS7(0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, | ||
402 | 0x09, 0x0f, 0x09, 0x00, 0x09, 0x00, 0x41, 0x63, | ||
403 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
404 | 0x00, 0x00, 0xf0, 0x00), | ||
405 | PHYREGS(0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d), | ||
406 | }, | ||
407 | { | ||
408 | .freq = 2432, | ||
409 | RADIOREGS7(0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, | ||
410 | 0x09, 0x0f, 0x08, 0x00, 0x08, 0x00, 0x41, 0x63, | ||
411 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
412 | 0x00, 0x00, 0xf0, 0x00), | ||
413 | PHYREGS(0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a), | ||
414 | }, | ||
415 | { | ||
416 | .freq = 2437, | ||
417 | RADIOREGS7(0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, | ||
418 | 0x09, 0x0f, 0x08, 0x00, 0x08, 0x00, 0x41, 0x63, | ||
419 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
420 | 0x00, 0x00, 0xf0, 0x00), | ||
421 | PHYREGS(0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438), | ||
422 | }, | ||
423 | { | ||
424 | .freq = 2442, | ||
425 | RADIOREGS7(0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, | ||
426 | 0x09, 0x0f, 0x07, 0x00, 0x07, 0x00, 0x41, 0x63, | ||
427 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
428 | 0x00, 0x00, 0xf0, 0x00), | ||
429 | PHYREGS(0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436), | ||
430 | }, | ||
431 | { | ||
432 | .freq = 2447, | ||
433 | RADIOREGS7(0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, | ||
434 | 0x09, 0x0f, 0x07, 0x00, 0x07, 0x00, 0x41, 0x63, | ||
435 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
436 | 0x00, 0x00, 0xf0, 0x00), | ||
437 | PHYREGS(0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434), | ||
438 | }, | ||
439 | { | ||
440 | .freq = 2452, | ||
441 | RADIOREGS7(0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, | ||
442 | 0x09, 0x0f, 0x07, 0x00, 0x07, 0x00, 0x41, 0x63, | ||
443 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
444 | 0x00, 0x00, 0xf0, 0x00), | ||
445 | PHYREGS(0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431), | ||
446 | }, | ||
447 | { | ||
448 | .freq = 2457, | ||
449 | RADIOREGS7(0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, | ||
450 | 0x09, 0x0f, 0x06, 0x00, 0x06, 0x00, 0x41, 0x63, | ||
451 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
452 | 0x00, 0x00, 0xf0, 0x00), | ||
453 | PHYREGS(0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f), | ||
454 | }, | ||
455 | { | ||
456 | .freq = 2462, | ||
457 | RADIOREGS7(0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, | ||
458 | 0x09, 0x0f, 0x06, 0x00, 0x06, 0x00, 0x41, 0x63, | ||
459 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x41, 0x63, 0x00, | ||
460 | 0x00, 0x00, 0xf0, 0x00), | ||
461 | PHYREGS(0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d), | ||
462 | }, | ||
463 | { | ||
464 | .freq = 5180, | ||
465 | RADIOREGS7(0xbe, 0x16, 0x10, 0x1f, 0x08, 0x08, 0x3f, 0x06, | ||
466 | 0x02, 0x0e, 0x00, 0x0e, 0x00, 0x9e, 0x00, 0x00, | ||
467 | 0x9f, 0x2f, 0xa3, 0x00, 0xfc, 0x00, 0x00, 0x4f, | ||
468 | 0x3a, 0x83, 0x00, 0xfc), | ||
469 | PHYREGS(0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb), | ||
470 | }, | ||
471 | { | ||
472 | .freq = 5200, | ||
473 | RADIOREGS7(0xc5, 0x16, 0x10, 0x1f, 0x08, 0x08, 0x3f, 0x08, | ||
474 | 0x02, 0x0e, 0x00, 0x0e, 0x00, 0x9e, 0x00, 0x00, | ||
475 | 0x7f, 0x2f, 0x83, 0x00, 0xf8, 0x00, 0x00, 0x4c, | ||
476 | 0x4a, 0x83, 0x00, 0xf8), | ||
477 | PHYREGS(0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9), | ||
478 | }, | ||
479 | { | ||
480 | .freq = 5220, | ||
481 | RADIOREGS7(0xcc, 0x16, 0x10, 0x1f, 0x08, 0x08, 0x3f, 0x0a, | ||
482 | 0x02, 0x0e, 0x00, 0x0e, 0x00, 0x9e, 0x00, 0x00, | ||
483 | 0x6d, 0x3d, 0x83, 0x00, 0xf8, 0x00, 0x00, 0x2d, | ||
484 | 0x2a, 0x73, 0x00, 0xf8), | ||
485 | PHYREGS(0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7), | ||
486 | }, | ||
487 | { | ||
488 | .freq = 5240, | ||
489 | RADIOREGS7(0xd2, 0x16, 0x10, 0x1f, 0x08, 0x08, 0x3f, 0x0c, | ||
490 | 0x02, 0x0d, 0x00, 0x0d, 0x00, 0x8d, 0x00, 0x00, | ||
491 | 0x4d, 0x1c, 0x73, 0x00, 0xf8, 0x00, 0x00, 0x4d, | ||
492 | 0x2b, 0x73, 0x00, 0xf8), | ||
493 | PHYREGS(0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5), | ||
494 | }, | ||
495 | { | ||
496 | .freq = 5745, | ||
497 | RADIOREGS7(0x7b, 0x17, 0x20, 0x1f, 0x08, 0x08, 0x3f, 0x7d, | ||
498 | 0x04, 0x08, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, | ||
499 | 0x08, 0x03, 0x03, 0x00, 0x30, 0x00, 0x00, 0x06, | ||
500 | 0x02, 0x03, 0x00, 0x30), | ||
501 | PHYREGS(0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9), | ||
502 | }, | ||
503 | { | ||
504 | .freq = 5765, | ||
505 | RADIOREGS7(0x81, 0x17, 0x20, 0x1f, 0x08, 0x08, 0x3f, 0x81, | ||
506 | 0x04, 0x08, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, | ||
507 | 0x06, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x05, | ||
508 | 0x02, 0x03, 0x00, 0x00), | ||
509 | PHYREGS(0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8), | ||
510 | }, | ||
511 | { | ||
512 | .freq = 5785, | ||
513 | RADIOREGS7(0x88, 0x17, 0x20, 0x1f, 0x08, 0x08, 0x3f, 0x85, | ||
514 | 0x04, 0x08, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, | ||
515 | 0x08, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x05, | ||
516 | 0x21, 0x03, 0x00, 0x00), | ||
517 | PHYREGS(0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6), | ||
518 | }, | ||
519 | { | ||
520 | .freq = 5805, | ||
521 | RADIOREGS7(0x8f, 0x17, 0x20, 0x1f, 0x08, 0x08, 0x3f, 0x89, | ||
522 | 0x04, 0x07, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, | ||
523 | 0x06, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, | ||
524 | 0x00, 0x03, 0x00, 0x00), | ||
525 | PHYREGS(0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4), | ||
526 | }, | ||
527 | { | ||
528 | .freq = 5825, | ||
529 | RADIOREGS7(0x95, 0x17, 0x20, 0x1f, 0x08, 0x08, 0x3f, 0x8d, | ||
530 | 0x04, 0x07, 0x00, 0x05, 0x00, 0x03, 0x00, 0x00, | ||
531 | 0x05, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, | ||
532 | 0x00, 0x03, 0x00, 0x00), | ||
533 | PHYREGS(0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3), | ||
534 | }, | ||
535 | }; | ||
536 | |||
148 | void r2057_upload_inittabs(struct b43_wldev *dev) | 537 | void r2057_upload_inittabs(struct b43_wldev *dev) |
149 | { | 538 | { |
150 | struct b43_phy *phy = &dev->phy; | 539 | struct b43_phy *phy = &dev->phy; |
@@ -171,6 +560,18 @@ void r2057_upload_inittabs(struct b43_wldev *dev) | |||
171 | size = ARRAY_SIZE(r2057_rev5a_init); | 560 | size = ARRAY_SIZE(r2057_rev5a_init); |
172 | } | 561 | } |
173 | break; | 562 | break; |
563 | case 16: | ||
564 | if (phy->radio_rev == 9) { | ||
565 | table = r2057_rev9_init[0]; | ||
566 | size = ARRAY_SIZE(r2057_rev9_init); | ||
567 | } | ||
568 | break; | ||
569 | case 17: | ||
570 | if (phy->radio_rev == 14) { | ||
571 | table = r2057_rev14_init[0]; | ||
572 | size = ARRAY_SIZE(r2057_rev14_init); | ||
573 | } | ||
574 | break; | ||
174 | } | 575 | } |
175 | 576 | ||
176 | B43_WARN_ON(!table); | 577 | B43_WARN_ON(!table); |
@@ -193,8 +594,25 @@ void r2057_get_chantabent_rev7(struct b43_wldev *dev, u16 freq, | |||
193 | *tabent_r7 = NULL; | 594 | *tabent_r7 = NULL; |
194 | *tabent_r7_2g = NULL; | 595 | *tabent_r7_2g = NULL; |
195 | 596 | ||
196 | /* TODO */ | ||
197 | switch (phy->rev) { | 597 | switch (phy->rev) { |
598 | case 8: | ||
599 | if (phy->radio_rev == 5) { | ||
600 | e_r7_2g = b43_nphy_chantab_phy_rev8_radio_rev5; | ||
601 | len = ARRAY_SIZE(b43_nphy_chantab_phy_rev8_radio_rev5); | ||
602 | } | ||
603 | break; | ||
604 | case 16: | ||
605 | if (phy->radio_rev == 9) { | ||
606 | e_r7 = b43_nphy_chantab_phy_rev16_radio_rev9; | ||
607 | len = ARRAY_SIZE(b43_nphy_chantab_phy_rev16_radio_rev9); | ||
608 | } | ||
609 | break; | ||
610 | case 17: | ||
611 | if (phy->radio_rev == 14) { | ||
612 | e_r7_2g = b43_nphy_chantab_phy_rev17_radio_rev14; | ||
613 | len = ARRAY_SIZE(b43_nphy_chantab_phy_rev17_radio_rev14); | ||
614 | } | ||
615 | break; | ||
198 | default: | 616 | default: |
199 | break; | 617 | break; |
200 | } | 618 | } |