aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2007-11-09 17:57:18 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:04:42 -0500
commit95de2841aad971867851b59c0c5253ecc2e19832 (patch)
treedf6a79322a1f7b8992d38ca7d02502e0ded31b3f
parent458414b2e3d9dd7ee4510d18c119a7ccd3b43ec5 (diff)
b43: Convert to use of the new SPROM structure
The b43 driver is modified to use the new SPROM structure. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/b43/leds.c8
-rw-r--r--drivers/net/wireless/b43/lo.c6
-rw-r--r--drivers/net/wireless/b43/main.c32
-rw-r--r--drivers/net/wireless/b43/phy.c59
-rw-r--r--drivers/net/wireless/b43/wa.c4
-rw-r--r--drivers/net/wireless/b43/xmit.c2
6 files changed, 55 insertions, 56 deletions
diff --git a/drivers/net/wireless/b43/leds.c b/drivers/net/wireless/b43/leds.c
index e04eba1f9308..4b590d8c65ff 100644
--- a/drivers/net/wireless/b43/leds.c
+++ b/drivers/net/wireless/b43/leds.c
@@ -190,10 +190,10 @@ void b43_leds_init(struct b43_wldev *dev)
190 enum b43_led_behaviour behaviour; 190 enum b43_led_behaviour behaviour;
191 bool activelow; 191 bool activelow;
192 192
193 sprom[0] = bus->sprom.r1.gpio0; 193 sprom[0] = bus->sprom.gpio0;
194 sprom[1] = bus->sprom.r1.gpio1; 194 sprom[1] = bus->sprom.gpio1;
195 sprom[2] = bus->sprom.r1.gpio2; 195 sprom[2] = bus->sprom.gpio2;
196 sprom[3] = bus->sprom.r1.gpio3; 196 sprom[3] = bus->sprom.gpio3;
197 197
198 for (i = 0; i < 4; i++) { 198 for (i = 0; i < 4; i++) {
199 if (sprom[i] == 0xFF) { 199 if (sprom[i] == 0xFF) {
diff --git a/drivers/net/wireless/b43/lo.c b/drivers/net/wireless/b43/lo.c
index 0a50fd584c19..88f35e67e226 100644
--- a/drivers/net/wireless/b43/lo.c
+++ b/drivers/net/wireless/b43/lo.c
@@ -264,8 +264,8 @@ static u16 lo_measure_feedthrough(struct b43_wldev *dev,
264 rfover |= pga; 264 rfover |= pga;
265 rfover |= lna; 265 rfover |= lna;
266 rfover |= trsw_rx; 266 rfover |= trsw_rx;
267 if ((dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_EXTLNA) && 267 if ((dev->dev->bus->sprom.boardflags_lo & B43_BFL_EXTLNA)
268 phy->rev > 6) 268 && phy->rev > 6)
269 rfover |= B43_PHY_RFOVERVAL_EXTLNA; 269 rfover |= B43_PHY_RFOVERVAL_EXTLNA;
270 270
271 b43_phy_write(dev, B43_PHY_PGACTL, 0xE300); 271 b43_phy_write(dev, B43_PHY_PGACTL, 0xE300);
@@ -634,7 +634,7 @@ static void lo_measure_setup(struct b43_wldev *dev,
634 & 0xFFFC); 634 & 0xFFFC);
635 if (phy->type == B43_PHYTYPE_G) { 635 if (phy->type == B43_PHYTYPE_G) {
636 if ((phy->rev >= 7) && 636 if ((phy->rev >= 7) &&
637 (sprom->r1.boardflags_lo & B43_BFL_EXTLNA)) { 637 (sprom->boardflags_lo & B43_BFL_EXTLNA)) {
638 b43_phy_write(dev, B43_PHY_RFOVER, 0x933); 638 b43_phy_write(dev, B43_PHY_RFOVER, 0x933);
639 } else { 639 } else {
640 b43_phy_write(dev, B43_PHY_RFOVER, 0x133); 640 b43_phy_write(dev, B43_PHY_RFOVER, 0x133);
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 72321d802f1d..16b413d11d19 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -1924,7 +1924,7 @@ static int b43_gpio_init(struct b43_wldev *dev)
1924 mask |= 0x0180; 1924 mask |= 0x0180;
1925 set |= 0x0180; 1925 set |= 0x0180;
1926 } 1926 }
1927 if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_PACTRL) { 1927 if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_PACTRL) {
1928 b43_write16(dev, B43_MMIO_GPIO_MASK, 1928 b43_write16(dev, B43_MMIO_GPIO_MASK,
1929 b43_read16(dev, B43_MMIO_GPIO_MASK) 1929 b43_read16(dev, B43_MMIO_GPIO_MASK)
1930 | 0x0200); 1930 | 0x0200);
@@ -2289,7 +2289,7 @@ static void b43_periodic_every60sec(struct b43_wldev *dev)
2289 2289
2290 if (!b43_has_hardware_pctl(phy)) 2290 if (!b43_has_hardware_pctl(phy))
2291 b43_lo_g_ctl_mark_all_unused(dev); 2291 b43_lo_g_ctl_mark_all_unused(dev);
2292 if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI) { 2292 if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI) {
2293 b43_mac_suspend(dev); 2293 b43_mac_suspend(dev);
2294 b43_calc_nrssi_slope(dev); 2294 b43_calc_nrssi_slope(dev);
2295 if ((phy->radio_ver == 0x2050) && (phy->radio_rev == 8)) { 2295 if ((phy->radio_ver == 0x2050) && (phy->radio_rev == 8)) {
@@ -3208,13 +3208,13 @@ static void b43_bluetooth_coext_enable(struct b43_wldev *dev)
3208 struct ssb_sprom *sprom = &dev->dev->bus->sprom; 3208 struct ssb_sprom *sprom = &dev->dev->bus->sprom;
3209 u32 hf; 3209 u32 hf;
3210 3210
3211 if (!(sprom->r1.boardflags_lo & B43_BFL_BTCOEXIST)) 3211 if (!(sprom->boardflags_lo & B43_BFL_BTCOEXIST))
3212 return; 3212 return;
3213 if (dev->phy.type != B43_PHYTYPE_B && !dev->phy.gmode) 3213 if (dev->phy.type != B43_PHYTYPE_B && !dev->phy.gmode)
3214 return; 3214 return;
3215 3215
3216 hf = b43_hf_read(dev); 3216 hf = b43_hf_read(dev);
3217 if (sprom->r1.boardflags_lo & B43_BFL_BTCMOD) 3217 if (sprom->boardflags_lo & B43_BFL_BTCMOD)
3218 hf |= B43_HF_BTCOEXALT; 3218 hf |= B43_HF_BTCOEXALT;
3219 else 3219 else
3220 hf |= B43_HF_BTCOEX; 3220 hf |= B43_HF_BTCOEX;
@@ -3345,7 +3345,7 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
3345 hf |= B43_HF_SYMW; 3345 hf |= B43_HF_SYMW;
3346 if (phy->rev == 1) 3346 if (phy->rev == 1)
3347 hf |= B43_HF_GDCW; 3347 hf |= B43_HF_GDCW;
3348 if (sprom->r1.boardflags_lo & B43_BFL_PACTRL) 3348 if (sprom->boardflags_lo & B43_BFL_PACTRL)
3349 hf |= B43_HF_OFDMPABOOST; 3349 hf |= B43_HF_OFDMPABOOST;
3350 } else if (phy->type == B43_PHYTYPE_B) { 3350 } else if (phy->type == B43_PHYTYPE_B) {
3351 hf |= B43_HF_SYMW; 3351 hf |= B43_HF_SYMW;
@@ -3862,20 +3862,20 @@ static void b43_sprom_fixup(struct ssb_bus *bus)
3862 /* boardflags workarounds */ 3862 /* boardflags workarounds */
3863 if (bus->boardinfo.vendor == SSB_BOARDVENDOR_DELL && 3863 if (bus->boardinfo.vendor == SSB_BOARDVENDOR_DELL &&
3864 bus->chip_id == 0x4301 && bus->boardinfo.rev == 0x74) 3864 bus->chip_id == 0x4301 && bus->boardinfo.rev == 0x74)
3865 bus->sprom.r1.boardflags_lo |= B43_BFL_BTCOEXIST; 3865 bus->sprom.boardflags_lo |= B43_BFL_BTCOEXIST;
3866 if (bus->boardinfo.vendor == PCI_VENDOR_ID_APPLE && 3866 if (bus->boardinfo.vendor == PCI_VENDOR_ID_APPLE &&
3867 bus->boardinfo.type == 0x4E && bus->boardinfo.rev > 0x40) 3867 bus->boardinfo.type == 0x4E && bus->boardinfo.rev > 0x40)
3868 bus->sprom.r1.boardflags_lo |= B43_BFL_PACTRL; 3868 bus->sprom.boardflags_lo |= B43_BFL_PACTRL;
3869 3869
3870 /* Handle case when gain is not set in sprom */ 3870 /* Handle case when gain is not set in sprom */
3871 if (bus->sprom.r1.antenna_gain_a == 0xFF) 3871 if (bus->sprom.antenna_gain_a == 0xFF)
3872 bus->sprom.r1.antenna_gain_a = 2; 3872 bus->sprom.antenna_gain_a = 2;
3873 if (bus->sprom.r1.antenna_gain_bg == 0xFF) 3873 if (bus->sprom.antenna_gain_bg == 0xFF)
3874 bus->sprom.r1.antenna_gain_bg = 2; 3874 bus->sprom.antenna_gain_bg = 2;
3875 3875
3876 /* Convert Antennagain values to Q5.2 */ 3876 /* Convert Antennagain values to Q5.2 */
3877 bus->sprom.r1.antenna_gain_a <<= 2; 3877 bus->sprom.antenna_gain_a <<= 2;
3878 bus->sprom.r1.antenna_gain_bg <<= 2; 3878 bus->sprom.antenna_gain_bg <<= 2;
3879} 3879}
3880 3880
3881static void b43_wireless_exit(struct ssb_device *dev, struct b43_wl *wl) 3881static void b43_wireless_exit(struct ssb_device *dev, struct b43_wl *wl)
@@ -3908,10 +3908,10 @@ static int b43_wireless_init(struct ssb_device *dev)
3908 hw->max_noise = -110; 3908 hw->max_noise = -110;
3909 hw->queues = 1; /* FIXME: hardware has more queues */ 3909 hw->queues = 1; /* FIXME: hardware has more queues */
3910 SET_IEEE80211_DEV(hw, dev->dev); 3910 SET_IEEE80211_DEV(hw, dev->dev);
3911 if (is_valid_ether_addr(sprom->r1.et1mac)) 3911 if (is_valid_ether_addr(sprom->et1mac))
3912 SET_IEEE80211_PERM_ADDR(hw, sprom->r1.et1mac); 3912 SET_IEEE80211_PERM_ADDR(hw, sprom->et1mac);
3913 else 3913 else
3914 SET_IEEE80211_PERM_ADDR(hw, sprom->r1.il0mac); 3914 SET_IEEE80211_PERM_ADDR(hw, sprom->il0mac);
3915 3915
3916 /* Get and initialize struct b43_wl */ 3916 /* Get and initialize struct b43_wl */
3917 wl = hw_to_b43_wl(hw); 3917 wl = hw_to_b43_wl(hw);
diff --git a/drivers/net/wireless/b43/phy.c b/drivers/net/wireless/b43/phy.c
index 7eb71d73663c..facc01c25f90 100644
--- a/drivers/net/wireless/b43/phy.c
+++ b/drivers/net/wireless/b43/phy.c
@@ -903,7 +903,7 @@ static void b43_phy_inita(struct b43_wldev *dev)
903 } 903 }
904 904
905 if ((phy->type == B43_PHYTYPE_G) && 905 if ((phy->type == B43_PHYTYPE_G) &&
906 (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_PACTRL)) { 906 (dev->dev->bus->sprom.boardflags_lo & B43_BFL_PACTRL)) {
907 b43_phy_write(dev, B43_PHY_OFDM(0x6E), 907 b43_phy_write(dev, B43_PHY_OFDM(0x6E),
908 (b43_phy_read(dev, B43_PHY_OFDM(0x6E)) 908 (b43_phy_read(dev, B43_PHY_OFDM(0x6E))
909 & 0xE000) | 0x3CF); 909 & 0xE000) | 0x3CF);
@@ -1006,7 +1006,7 @@ static void b43_phy_initb4(struct b43_wldev *dev)
1006 if (phy->radio_ver == 0x2050) 1006 if (phy->radio_ver == 0x2050)
1007 b43_phy_write(dev, 0x002A, 0x88C2); 1007 b43_phy_write(dev, 0x002A, 0x88C2);
1008 b43_set_txpower_g(dev, &phy->bbatt, &phy->rfatt, phy->tx_control); 1008 b43_set_txpower_g(dev, &phy->bbatt, &phy->rfatt, phy->tx_control);
1009 if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI) { 1009 if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI) {
1010 b43_calc_nrssi_slope(dev); 1010 b43_calc_nrssi_slope(dev);
1011 b43_calc_nrssi_threshold(dev); 1011