aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/b43/bus.c4
-rw-r--r--drivers/net/wireless/b43/bus.h4
-rw-r--r--drivers/net/wireless/b43/leds.c5
-rw-r--r--drivers/net/wireless/b43/phy_a.c7
-rw-r--r--drivers/net/wireless/b43/phy_common.c4
-rw-r--r--drivers/net/wireless/b43/phy_g.c48
-rw-r--r--drivers/net/wireless/b43/phy_lp.c5
-rw-r--r--drivers/net/wireless/b43/phy_n.c15
-rw-r--r--drivers/net/wireless/b43/wa.c19
9 files changed, 54 insertions, 57 deletions
diff --git a/drivers/net/wireless/b43/bus.c b/drivers/net/wireless/b43/bus.c
index 8d0e7584eafd..f897b7054a0a 100644
--- a/drivers/net/wireless/b43/bus.c
+++ b/drivers/net/wireless/b43/bus.c
@@ -74,6 +74,10 @@ struct b43_bus_dev *b43_bus_dev_ssb_init(struct ssb_device *sdev)
74 dev->dma_dev = sdev->dma_dev; 74 dev->dma_dev = sdev->dma_dev;
75 dev->irq = sdev->irq; 75 dev->irq = sdev->irq;
76 76
77 dev->board_vendor = sdev->bus->boardinfo.vendor;
78 dev->board_type = sdev->bus->boardinfo.type;
79 dev->board_rev = sdev->bus->boardinfo.rev;
80
77 dev->chip_id = sdev->bus->chip_id; 81 dev->chip_id = sdev->bus->chip_id;
78 dev->chip_rev = sdev->bus->chip_rev; 82 dev->chip_rev = sdev->bus->chip_rev;
79 dev->chip_pkg = sdev->bus->chip_package; 83 dev->chip_pkg = sdev->bus->chip_package;
diff --git a/drivers/net/wireless/b43/bus.h b/drivers/net/wireless/b43/bus.h
index 14942fb605d9..e88b4494beaa 100644
--- a/drivers/net/wireless/b43/bus.h
+++ b/drivers/net/wireless/b43/bus.h
@@ -24,6 +24,10 @@ struct b43_bus_dev {
24 struct device *dma_dev; 24 struct device *dma_dev;
25 unsigned int irq; 25 unsigned int irq;
26 26
27 u16 board_vendor;
28 u16 board_type;
29 u16 board_rev;
30
27 u16 chip_id; 31 u16 chip_id;
28 u8 chip_rev; 32 u8 chip_rev;
29 u8 chip_pkg; 33 u8 chip_pkg;
diff --git a/drivers/net/wireless/b43/leds.c b/drivers/net/wireless/b43/leds.c
index 70bcf4276146..b56ed41fc1bd 100644
--- a/drivers/net/wireless/b43/leds.c
+++ b/drivers/net/wireless/b43/leds.c
@@ -215,7 +215,6 @@ static void b43_led_get_sprominfo(struct b43_wldev *dev,
215 enum b43_led_behaviour *behaviour, 215 enum b43_led_behaviour *behaviour,
216 bool *activelow) 216 bool *activelow)
217{ 217{
218 struct ssb_bus *bus = dev->sdev->bus;
219 u8 sprom[4]; 218 u8 sprom[4];
220 219
221 sprom[0] = dev->dev->bus_sprom->gpio0; 220 sprom[0] = dev->dev->bus_sprom->gpio0;
@@ -231,12 +230,12 @@ static void b43_led_get_sprominfo(struct b43_wldev *dev,
231 case 0: 230 case 0:
232 *behaviour = B43_LED_ACTIVITY; 231 *behaviour = B43_LED_ACTIVITY;
233 *activelow = 1; 232 *activelow = 1;
234 if (bus->boardinfo.vendor == PCI_VENDOR_ID_COMPAQ) 233 if (dev->dev->board_vendor == PCI_VENDOR_ID_COMPAQ)
235 *behaviour = B43_LED_RADIO_ALL; 234 *behaviour = B43_LED_RADIO_ALL;
236 break; 235 break;
237 case 1: 236 case 1:
238 *behaviour = B43_LED_RADIO_B; 237 *behaviour = B43_LED_RADIO_B;
239 if (bus->boardinfo.vendor == PCI_VENDOR_ID_ASUSTEK) 238 if (dev->dev->board_vendor == PCI_VENDOR_ID_ASUSTEK)
240 *behaviour = B43_LED_ASSOC; 239 *behaviour = B43_LED_ASSOC;
241 break; 240 break;
242 case 2: 241 case 2:
diff --git a/drivers/net/wireless/b43/phy_a.c b/drivers/net/wireless/b43/phy_a.c
index 821b516fe9e4..73ace5552bad 100644
--- a/drivers/net/wireless/b43/phy_a.c
+++ b/drivers/net/wireless/b43/phy_a.c
@@ -265,7 +265,6 @@ static void hardware_pctl_init_aphy(struct b43_wldev *dev)
265 265
266void b43_phy_inita(struct b43_wldev *dev) 266void b43_phy_inita(struct b43_wldev *dev)
267{ 267{
268 struct ssb_bus *bus = dev->sdev->bus;
269 struct b43_phy *phy = &dev->phy; 268 struct b43_phy *phy = &dev->phy;
270 269
271 /* This lowlevel A-PHY init is also called from G-PHY init. 270 /* This lowlevel A-PHY init is also called from G-PHY init.
@@ -296,9 +295,9 @@ void b43_phy_inita(struct b43_wldev *dev)
296 295
297 b43_radio_init2060(dev); 296 b43_radio_init2060(dev);
298 297
299 if ((bus->boardinfo.vendor == SSB_BOARDVENDOR_BCM) && 298 if ((dev->dev->board_vendor == SSB_BOARDVENDOR_BCM) &&
300 ((bus->boardinfo.type == SSB_BOARD_BU4306) || 299 ((dev->dev->board_type == SSB_BOARD_BU4306) ||
301 (bus->boardinfo.type == SSB_BOARD_BU4309))) { 300 (dev->dev->board_type == SSB_BOARD_BU4309))) {
302 ; //TODO: A PHY LO 301 ; //TODO: A PHY LO
303 } 302 }
304 303
diff --git a/drivers/net/wireless/b43/phy_common.c b/drivers/net/wireless/b43/phy_common.c
index 3f7bdf845446..425af28ea4e5 100644
--- a/drivers/net/wireless/b43/phy_common.c
+++ b/drivers/net/wireless/b43/phy_common.c
@@ -368,8 +368,8 @@ void b43_phy_txpower_check(struct b43_wldev *dev, unsigned int flags)
368 /* The next check will be needed in two seconds, or later. */ 368 /* The next check will be needed in two seconds, or later. */
369 phy->next_txpwr_check_time = round_jiffies(now + (HZ * 2)); 369 phy->next_txpwr_check_time = round_jiffies(now + (HZ * 2));
370 370
371 if ((dev->sdev->bus->boardinfo.vendor == SSB_BOARDVENDOR_BCM) && 371 if ((dev->dev->board_vendor == SSB_BOARDVENDOR_BCM) &&
372 (dev->sdev->bus->boardinfo.type == SSB_BOARD_BU4306)) 372 (dev->dev->board_type == SSB_BOARD_BU4306))
373 return; /* No software txpower adjustment needed */ 373 return; /* No software txpower adjustment needed */
374 374
375 result = phy->ops->recalc_txpower(dev, !!(flags & B43_TXPWR_IGNORE_TSSI)); 375 result = phy->ops->recalc_txpower(dev, !!(flags & B43_TXPWR_IGNORE_TSSI));
diff --git a/drivers/net/wireless/b43/phy_g.c b/drivers/net/wireless/b43/phy_g.c
index 40ce9e6d104e..684be1fd59ae 100644
--- a/drivers/net/wireless/b43/phy_g.c
+++ b/drivers/net/wireless/b43/phy_g.c
@@ -1491,7 +1491,6 @@ static u16 b43_radio_init2050(struct b43_wldev *dev)
1491 1491
1492static void b43_phy_initb5(struct b43_wldev *dev) 1492static void b43_phy_initb5(struct b43_wldev *dev)
1493{ 1493{
1494 struct ssb_bus *bus = dev->sdev->bus;
1495 struct b43_phy *phy = &dev->phy; 1494 struct b43_phy *phy = &dev->phy;
1496 struct b43_phy_g *gphy = phy->g; 1495 struct b43_phy_g *gphy = phy->g;
1497 u16 offset, value; 1496 u16 offset, value;
@@ -1500,8 +1499,8 @@ static void b43_phy_initb5(struct b43_wldev *dev)
1500 if (phy->analog == 1) { 1499 if (phy->analog == 1) {
1501 b43_radio_set(dev, 0x007A, 0x0050); 1500 b43_radio_set(dev, 0x007A, 0x0050);
1502 } 1501 }
1503 if ((bus->boardinfo.vendor != SSB_BOARDVENDOR_BCM) && 1502 if ((dev->dev->board_vendor != SSB_BOARDVENDOR_BCM) &&
1504 (bus->boardinfo.type != SSB_BOARD_BU4306)) { 1503 (dev->dev->board_type != SSB_BOARD_BU4306)) {
1505 value = 0x2120; 1504 value = 0x2120;
1506 for (offset = 0x00A8; offset < 0x00C7; offset++) { 1505 for (offset = 0x00A8; offset < 0x00C7; offset++) {
1507 b43_phy_write(dev, offset, value); 1506 b43_phy_write(dev, offset, value);
@@ -1922,7 +1921,6 @@ static void b43_hardware_pctl_init_gphy(struct b43_wldev *dev)
1922/* Initialize B/G PHY power control */ 1921/* Initialize B/G PHY power control */
1923static void b43_phy_init_pctl(struct b43_wldev *dev) 1922static void b43_phy_init_pctl(struct b43_wldev *dev)
1924{ 1923{
1925 struct ssb_bus *bus = dev->sdev->bus;
1926 struct b43_phy *phy = &dev->phy; 1924 struct b43_phy *phy = &dev->phy;
1927 struct b43_phy_g *gphy = phy->g; 1925 struct b43_phy_g *gphy = phy->g;
1928 struct b43_rfatt old_rfatt; 1926 struct b43_rfatt old_rfatt;
@@ -1931,8 +1929,8 @@ static void b43_phy_init_pctl(struct b43_wldev *dev)
1931 1929
1932 B43_WARN_ON(phy->type != B43_PHYTYPE_G); 1930 B43_WARN_ON(phy->type != B43_PHYTYPE_G);
1933 1931
1934 if ((bus->boardinfo.vendor == SSB_BOARDVENDOR_BCM) && 1932 if ((dev->dev->board_vendor == SSB_BOARDVENDOR_BCM) &&
1935 (bus->boardinfo.type == SSB_BOARD_BU4306)) 1933 (dev->dev->board_type == SSB_BOARD_BU4306))
1936 return; 1934 return;
1937 1935
1938 b43_phy_write(dev, 0x0028, 0x8018); 1936 b43_phy_write(dev, 0x0028, 0x8018);
@@ -2136,17 +2134,17 @@ static void default_baseband_attenuation(struct b43_wldev *dev,
2136static void default_radio_attenuation(struct b43_wldev *dev, 2134static void default_radio_attenuation(struct b43_wldev *dev,
2137 struct b43_rfatt *rf) 2135 struct b43_rfatt *rf)
2138{ 2136{
2139 struct ssb_bus *bus = dev->sdev->bus; 2137 struct b43_bus_dev *bdev = dev->dev;
2140 struct b43_phy *phy = &dev->phy; 2138 struct b43_phy *phy = &dev->phy;
2141 2139
2142 rf->with_padmix = 0; 2140 rf->with_padmix = 0;
2143 2141
2144 if (bus->boardinfo.vendor == SSB_BOARDVENDOR_BCM && 2142 if (dev->dev->board_vendor == SSB_BOARDVENDOR_BCM &&
2145 bus->boardinfo.type == SSB_BOARD_BCM4309G) { 2143 dev->dev->board_type == SSB_BOARD_BCM4309G) {
2146 if (bus->boardinfo.rev < 0x43) {