Whoops, forgot to add this file to the b43-update commit.
[openwrt.git] / package / b43 / patches / 001-porting.patch
1 Index: b43/main.c
2 ===================================================================
3 --- b43.orig/main.c 2008-02-15 22:39:48.000000000 +0100
4 +++ b43/main.c 2008-02-15 22:45:38.000000000 +0100
5 @@ -2017,7 +2017,7 @@ static int b43_gpio_init(struct b43_wlde
6 mask |= 0x0180;
7 set |= 0x0180;
8 }
9 - if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_PACTRL) {
10 + if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_PACTRL) {
11 b43_write16(dev, B43_MMIO_GPIO_MASK,
12 b43_read16(dev, B43_MMIO_GPIO_MASK)
13 | 0x0200);
14 @@ -2384,7 +2384,7 @@ static void b43_periodic_every60sec(stru
15 return;
16 if (!b43_has_hardware_pctl(phy))
17 b43_lo_g_ctl_mark_all_unused(dev);
18 - if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI) {
19 + if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI) {
20 b43_mac_suspend(dev);
21 b43_calc_nrssi_slope(dev);
22 if ((phy->radio_ver == 0x2050) && (phy->radio_rev == 8)) {
23 @@ -2794,11 +2794,14 @@ u8 b43_ieee80211_antenna_sanitize(struct
24 return 0;
25 }
26
27 +#if 0
28 /* Get the mask of available antennas. */
29 if (dev->phy.gmode)
30 antenna_mask = dev->dev->bus->sprom.ant_available_bg;
31 else
32 antenna_mask = dev->dev->bus->sprom.ant_available_a;
33 +#endif
34 + antenna_mask = 0xFF; //FIXME need ssb update
35
36 if (!(antenna_mask & (1 << (antenna_nr - 1)))) {
37 /* This antenna is not available. Fall back to default. */
38 @@ -2939,7 +2942,7 @@ static int b43_op_set_key(struct ieee802
39 u8 algorithm;
40 u8 index;
41 int err;
42 - DECLARE_MAC_BUF(mac);
43 +// DECLARE_MAC_BUF(mac);
44
45 if (modparam_nohwcrypt)
46 return -ENOSPC; /* User disabled HW-crypto */
47 @@ -3019,10 +3022,12 @@ out_unlock:
48 spin_unlock_irqrestore(&wl->irq_lock, flags);
49 mutex_unlock(&wl->mutex);
50 if (!err) {
51 +#if 0
52 b43dbg(wl, "%s hardware based encryption for keyidx: %d, "
53 "mac: %s\n",
54 cmd == SET_KEY ? "Using" : "Disabling", key->keyidx,
55 print_mac(mac, addr));
56 +#endif
57 }
58 return err;
59 }
60 @@ -3349,13 +3354,13 @@ static void b43_bluetooth_coext_enable(s
61 struct ssb_sprom *sprom = &dev->dev->bus->sprom;
62 u32 hf;
63
64 - if (!(sprom->boardflags_lo & B43_BFL_BTCOEXIST))
65 + if (!(sprom->r1.boardflags_lo & B43_BFL_BTCOEXIST))
66 return;
67 if (dev->phy.type != B43_PHYTYPE_B && !dev->phy.gmode)
68 return;
69
70 hf = b43_hf_read(dev);
71 - if (sprom->boardflags_lo & B43_BFL_BTCMOD)
72 + if (sprom->r1.boardflags_lo & B43_BFL_BTCMOD)
73 hf |= B43_HF_BTCOEXALT;
74 else
75 hf |= B43_HF_BTCOEX;
76 @@ -3497,7 +3502,7 @@ static int b43_wireless_core_init(struct
77 hf |= B43_HF_SYMW;
78 if (phy->rev == 1)
79 hf |= B43_HF_GDCW;
80 - if (sprom->boardflags_lo & B43_BFL_PACTRL)
81 + if (sprom->r1.boardflags_lo & B43_BFL_PACTRL)
82 hf |= B43_HF_OFDMPABOOST;
83 } else if (phy->type == B43_PHYTYPE_B) {
84 hf |= B43_HF_SYMW;
85 @@ -4001,10 +4006,10 @@ static void b43_sprom_fixup(struct ssb_b
86 /* boardflags workarounds */
87 if (bus->boardinfo.vendor == SSB_BOARDVENDOR_DELL &&
88 bus->chip_id == 0x4301 && bus->boardinfo.rev == 0x74)
89 - bus->sprom.boardflags_lo |= B43_BFL_BTCOEXIST;
90 + bus->sprom.r1.boardflags_lo |= B43_BFL_BTCOEXIST;
91 if (bus->boardinfo.vendor == PCI_VENDOR_ID_APPLE &&
92 bus->boardinfo.type == 0x4E && bus->boardinfo.rev > 0x40)
93 - bus->sprom.boardflags_lo |= B43_BFL_PACTRL;
94 + bus->sprom.r1.boardflags_lo |= B43_BFL_PACTRL;
95 }
96
97 static void b43_wireless_exit(struct ssb_device *dev, struct b43_wl *wl)
98 @@ -4038,10 +4043,10 @@ static int b43_wireless_init(struct ssb_
99 hw->max_noise = -110;
100 hw->queues = 1; /* FIXME: hardware has more queues */
101 SET_IEEE80211_DEV(hw, dev->dev);
102 - if (is_valid_ether_addr(sprom->et1mac))
103 - SET_IEEE80211_PERM_ADDR(hw, sprom->et1mac);
104 + if (is_valid_ether_addr(sprom->r1.et1mac))
105 + SET_IEEE80211_PERM_ADDR(hw, sprom->r1.et1mac);
106 else
107 - SET_IEEE80211_PERM_ADDR(hw, sprom->il0mac);
108 + SET_IEEE80211_PERM_ADDR(hw, sprom->r1.il0mac);
109
110 /* Get and initialize struct b43_wl */
111 wl = hw_to_b43_wl(hw);
112 Index: b43/leds.c
113 ===================================================================
114 --- b43.orig/leds.c 2008-02-06 00:55:14.000000000 +0100
115 +++ b43/leds.c 2008-02-15 22:51:32.000000000 +0100
116 @@ -190,10 +190,10 @@ void b43_leds_init(struct b43_wldev *dev
117 enum b43_led_behaviour behaviour;
118 bool activelow;
119
120 - sprom[0] = bus->sprom.gpio0;
121 - sprom[1] = bus->sprom.gpio1;
122 - sprom[2] = bus->sprom.gpio2;
123 - sprom[3] = bus->sprom.gpio3;
124 + sprom[0] = bus->sprom.r1.gpio0;
125 + sprom[1] = bus->sprom.r1.gpio1;
126 + sprom[2] = bus->sprom.r1.gpio2;
127 + sprom[3] = bus->sprom.r1.gpio3;
128
129 for (i = 0; i < 4; i++) {
130 if (sprom[i] == 0xFF) {
131 Index: b43/lo.c
132 ===================================================================
133 --- b43.orig/lo.c 2008-02-06 00:55:14.000000000 +0100
134 +++ b43/lo.c 2008-02-15 22:50:17.000000000 +0100
135 @@ -264,7 +264,7 @@ static u16 lo_measure_feedthrough(struct
136 rfover |= pga;
137 rfover |= lna;
138 rfover |= trsw_rx;
139 - if ((dev->dev->bus->sprom.boardflags_lo & B43_BFL_EXTLNA)
140 + if ((dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_EXTLNA)
141 && phy->rev > 6)
142 rfover |= B43_PHY_RFOVERVAL_EXTLNA;
143
144 @@ -634,7 +634,7 @@ static void lo_measure_setup(struct b43_
145 & 0xFFFC);
146 if (phy->type == B43_PHYTYPE_G) {
147 if ((phy->rev >= 7) &&
148 - (sprom->boardflags_lo & B43_BFL_EXTLNA)) {
149 + (sprom->r1.boardflags_lo & B43_BFL_EXTLNA)) {
150 b43_phy_write(dev, B43_PHY_RFOVER, 0x933);
151 } else {
152 b43_phy_write(dev, B43_PHY_RFOVER, 0x133);
153 Index: b43/nphy.c
154 ===================================================================
155 --- b43.orig/nphy.c 2008-02-06 00:55:14.000000000 +0100
156 +++ b43/nphy.c 2008-02-15 22:48:51.000000000 +0100
157 @@ -134,6 +134,8 @@ static void b43_radio_init2055_post(stru
158
159 b43_radio_mask(dev, B2055_MASTER1, 0xFFF3);
160 msleep(1);
161 +//FIXME ssb update needed
162 +#if 0
163 if ((sprom->revision != 4) || !(sprom->boardflags_hi & 0x0002)) {
164 if ((binfo->vendor != PCI_VENDOR_ID_BROADCOM) ||
165 (binfo->type != 0x46D) ||
166 @@ -143,6 +145,7 @@ static void b43_radio_init2055_post(stru
167 msleep(1);
168 }
169 }
170 +#endif
171 b43_radio_maskset(dev, B2055_RRCCAL_NOPTSEL, 0x3F, 0x2C);
172 msleep(1);
173 b43_radio_write16(dev, B2055_CAL_MISC, 0x3C);
174 Index: b43/phy.c
175 ===================================================================
176 --- b43.orig/phy.c 2008-02-06 00:55:14.000000000 +0100
177 +++ b43/phy.c 2008-02-15 22:47:55.000000000 +0100
178 @@ -924,7 +924,7 @@ static void b43_phy_inita(struct b43_wld
179 }
180
181 if ((phy->type == B43_PHYTYPE_G) &&
182 - (dev->dev->bus->sprom.boardflags_lo & B43_BFL_PACTRL)) {
183 + (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_PACTRL)) {
184 b43_phy_write(dev, B43_PHY_OFDM(0x6E),
185 (b43_phy_read(dev, B43_PHY_OFDM(0x6E))
186 & 0xE000) | 0x3CF);
187 @@ -1027,7 +1027,7 @@ static void b43_phy_initb4(struct b43_wl
188 if (phy->radio_ver == 0x2050)
189 b43_phy_write(dev, 0x002A, 0x88C2);
190 b43_set_txpower_g(dev, &phy->bbatt, &phy->rfatt, phy->tx_control);
191 - if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI) {
192 + if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI) {
193 b43_calc_nrssi_slope(dev);
194 b43_calc_nrssi_threshold(dev);
195 }
196 @@ -1174,7 +1174,7 @@ static void b43_phy_initb6(struct b43_wl
197 b43_radio_write16(dev, 0x5A, 0x88);
198 b43_radio_write16(dev, 0x5B, 0x6B);
199 b43_radio_write16(dev, 0x5C, 0x0F);
200 - if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_ALTIQ) {
201 + if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_ALTIQ) {
202 b43_radio_write16(dev, 0x5D, 0xFA);
203 b43_radio_write16(dev, 0x5E, 0xD8);
204 } else {
205 @@ -1266,7 +1266,7 @@ static void b43_phy_initb6(struct b43_wl
206 b43_phy_write(dev, 0x0062, 0x0007);
207 b43_radio_init2050(dev);
208 b43_lo_g_measure(dev);
209 - if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI) {
210 + if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI) {
211 b43_calc_nrssi_slope(dev);
212 b43_calc_nrssi_threshold(dev);
213 }
214 @@ -1386,7 +1386,7 @@ static void b43_calc_loopback_gain(struc
215 b43_phy_write(dev, B43_PHY_RFOVERVAL,
216 b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xCFFF);
217
218 - if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_EXTLNA) {
219 + if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_EXTLNA) {
220 if (phy->rev >= 7) {
221 b43_phy_write(dev, B43_PHY_RFOVER,
222 b43_phy_read(dev, B43_PHY_RFOVER)
223 @@ -1553,7 +1553,7 @@ static void b43_phy_initg(struct b43_wld
224 & 0x0FFF) | (phy->lo_control->
225 tx_bias << 12));
226 }
227 - if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_PACTRL)
228 + if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_PACTRL)
229 b43_phy_write(dev, B43_PHY_CCK(0x2E), 0x8075);
230 else
231 b43_phy_write(dev, B43_PHY_CCK(0x2E), 0x807F);
232 @@ -1567,7 +1567,7 @@ static void b43_phy_initg(struct b43_wld
233 b43_phy_write(dev, B43_PHY_LO_MASK, 0x8078);
234 }
235
236 - if (!(dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI)) {
237 + if (!(dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI)) {
238 /* The specs state to update the NRSSI LT with
239 * the value 0x7FFFFFFF here. I think that is some weird
240 * compiler optimization in the original driver.
241 @@ -1776,15 +1776,15 @@ void b43_phy_xmitpower(struct b43_wldev
242 estimated_pwr =
243 b43_phy_estimate_power_out(dev, average);
244
245 - max_pwr = dev->dev->bus->sprom.maxpwr_bg;
246 - if ((dev->dev->bus->sprom.boardflags_lo
247 + max_pwr = dev->dev->bus->sprom.r1.maxpwr_bg;
248 + if ((dev->dev->bus->sprom.r1.boardflags_lo
249 & B43_BFL_PACTRL) && (phy->type == B43_PHYTYPE_G))
250 max_pwr -= 0x3;
251 if (unlikely(max_pwr <= 0)) {
252 b43warn(dev->wl,
253 "Invalid max-TX-power value in SPROM.\n");
254 max_pwr = 60; /* fake it */
255 - dev->dev->bus->sprom.maxpwr_bg = max_pwr;
256 + dev->dev->bus->sprom.r1.maxpwr_bg = max_pwr;
257 }
258
259 /*TODO:
260 @@ -1842,7 +1842,7 @@ void b43_phy_xmitpower(struct b43_wldev
261 B43_TXCTL_TXMIX;
262 rfatt += 2;
263 bbatt += 2;
264 - } else if (dev->dev->bus->sprom.
265 + } else if (dev->dev->bus->sprom.r1.
266 boardflags_lo &
267 B43_BFL_PACTRL) {
268 bbatt += 4 * (rfatt - 2);
269 @@ -1921,13 +1921,13 @@ int b43_phy_init_tssi2dbm_table(struct b
270 s8 *dyn_tssi2dbm;
271
272 if (phy->type == B43_PHYTYPE_A) {
273 - pab0 = (s16) (dev->dev->bus->sprom.pa1b0);
274 - pab1 = (s16) (dev->dev->bus->sprom.pa1b1);
275 - pab2 = (s16) (dev->dev->bus->sprom.pa1b2);
276 + pab0 = (s16) (dev->dev->bus->sprom.r1.pa1b0);
277 + pab1 = (s16) (dev->dev->bus->sprom.r1.pa1b1);
278 + pab2 = (s16) (dev->dev->bus->sprom.r1.pa1b2);
279 } else {
280 - pab0 = (s16) (dev->dev->bus->sprom.pa0b0);
281 - pab1 = (s16) (dev->dev->bus->sprom.pa0b1);
282 - pab2 = (s16) (dev->dev->bus->sprom.pa0b2);
283 + pab0 = (s16) (dev->dev->bus->sprom.r1.pa0b0);
284 + pab1 = (s16) (dev->dev->bus->sprom.r1.pa0b1);
285 + pab2 = (s16) (dev->dev->bus->sprom.r1.pa0b2);
286 }
287
288 if ((dev->dev->bus->chip_id == 0x4301) && (phy->radio_ver != 0x2050)) {
289 @@ -1940,17 +1940,17 @@ int b43_phy_init_tssi2dbm_table(struct b
290 pab0 != -1 && pab1 != -1 && pab2 != -1) {
291 /* The pabX values are set in SPROM. Use them. */
292 if (phy->type == B43_PHYTYPE_A) {
293 - if ((s8) dev->dev->bus->sprom.itssi_a != 0 &&
294 - (s8) dev->dev->bus->sprom.itssi_a != -1)
295 + if ((s8) dev->dev->bus->sprom.r1.itssi_a != 0 &&
296 + (s8) dev->dev->bus->sprom.r1.itssi_a != -1)
297 phy->tgt_idle_tssi =
298 - (s8) (dev->dev->bus->sprom.itssi_a);
299 + (s8) (dev->dev->bus->sprom.r1.itssi_a);
300 else
301 phy->tgt_idle_tssi = 62;
302 } else {
303 - if ((s8) dev->dev->bus->sprom.itssi_bg != 0 &&
304 - (s8) dev->dev->bus->sprom.itssi_bg != -1)
305 + if ((s8) dev->dev->bus->sprom.r1.itssi_bg != 0 &&
306 + (s8) dev->dev->bus->sprom.r1.itssi_bg != -1)
307 phy->tgt_idle_tssi =
308 - (s8) (dev->dev->bus->sprom.itssi_bg);
309 + (s8) (dev->dev->bus->sprom.r1.itssi_bg);
310 else
311 phy->tgt_idle_tssi = 62;
312 }
313 @@ -2894,7 +2894,7 @@ void b43_calc_nrssi_threshold(struct b43
314 if (phy->radio_ver != 0x2050)
315 return;
316 if (!
317 - (dev->dev->bus->sprom.
318 + (dev->dev->bus->sprom.r1.
319 boardflags_lo & B43_BFL_RSSI))
320 return;
321
322 @@ -2925,7 +2925,7 @@ void b43_calc_nrssi_threshold(struct b43
323 }
324 case B43_PHYTYPE_G:
325 if (!phy->gmode ||
326 - !(dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI)) {
327 + !(dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI)) {
328 tmp16 = b43_nrssi_hw_read(dev, 0x20);
329 if (tmp16 >= 0x20)
330 tmp16 -= 0x40;
331 @@ -3447,7 +3447,7 @@ static u16 radio2050_rfover_val(struct b
332 }
333
334 if ((phy->rev < 7) ||
335 - !(sprom->boardflags_lo & B43_BFL_EXTLNA)) {
336 + !(sprom->r1.boardflags_lo & B43_BFL_EXTLNA)) {
337 if (phy_register == B43_PHY_RFOVER) {
338 return 0x1B3;
339 } else if (phy_register == B43_PHY_RFOVERVAL) {
340 @@ -3487,7 +3487,7 @@ static u16 radio2050_rfover_val(struct b
341 }
342 } else {
343 if ((phy->rev < 7) ||
344 - !(sprom->boardflags_lo & B43_BFL_EXTLNA)) {
345 + !(sprom->r1.boardflags_lo & B43_BFL_EXTLNA)) {
346 if (phy_register == B43_PHY_RFOVER) {
347 return 0x1B3;
348 } else if (phy_register == B43_PHY_RFOVERVAL) {
349 @@ -3979,7 +3979,7 @@ int b43_radio_selectchannel(struct b43_w
350 b43_write16(dev, B43_MMIO_CHANNEL, channel2freq_bg(channel));
351
352 if (channel == 14) {
353 - if (dev->dev->bus->sprom.country_code ==
354 + if (dev->dev->bus->sprom.r1.country_code ==
355 SSB_SPROM1CCODE_JAPAN)
356 b43_hf_write(dev,
357 b43_hf_read(dev) & ~B43_HF_ACPR);
358 Index: b43/wa.c
359 ===================================================================
360 --- b43.orig/wa.c 2008-02-06 00:55:14.000000000 +0100
361 +++ b43/wa.c 2008-02-15 22:50:54.000000000 +0100
362 @@ -535,7 +535,7 @@ static void b43_wa_boards_g(struct b43_w
363 } else {
364 b43_ofdmtab_write16(dev, B43_OFDMTAB_GAINX, 1, 0x0002);
365 b43_ofdmtab_write16(dev, B43_OFDMTAB_GAINX, 2, 0x0001);
366 - if ((bus->sprom.boardflags_lo & B43_BFL_EXTLNA) &&
367 + if ((bus->sprom.r1.boardflags_lo & B43_BFL_EXTLNA) &&
368 (phy->rev >= 7)) {
369 b43_phy_write(dev, B43_PHY_EXTG(0x11),
370 b43_phy_read(dev, B43_PHY_EXTG(0x11)) & 0xF7FF);
371 @@ -548,7 +548,7 @@ static void b43_wa_boards_g(struct b43_w
372 }
373 }
374 }
375 - if (bus->sprom.boardflags_lo & B43_BFL_FEM) {
376 + if (bus->sprom.r1.boardflags_lo & B43_BFL_FEM) {
377 b43_phy_write(dev, B43_PHY_GTABCTL, 0x3120);
378 b43_phy_write(dev, B43_PHY_GTABDATA, 0xC480);
379 }
380 Index: b43/xmit.c
381 ===================================================================
382 --- b43.orig/xmit.c 2008-02-06 00:55:14.000000000 +0100
383 +++ b43/xmit.c 2008-02-15 22:49:37.000000000 +0100
384 @@ -444,7 +444,7 @@ static s8 b43_rssi_postprocess(struct b4
385 else
386 tmp -= 3;
387 } else {
388 - if (dev->dev->bus->sprom.
389 + if (dev->dev->bus->sprom.r1.
390 boardflags_lo & B43_BFL_RSSI) {
391 if (in_rssi > 63)
392 in_rssi = 63;
This page took 0.05479 seconds and 5 git commands to generate.