diff options
| -rw-r--r-- | drivers/net/wireless/b43/bus.c | 4 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/bus.h | 4 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/leds.c | 5 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/phy_a.c | 7 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/phy_common.c | 4 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/phy_g.c | 48 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/phy_lp.c | 5 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/phy_n.c | 15 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/wa.c | 19 |
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 | ||
| 266 | void b43_phy_inita(struct b43_wldev *dev) | 266 | void 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 | ||
| 1492 | static void b43_phy_initb5(struct b43_wldev *dev) | 1492 | static 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 */ |
| 1923 | static void b43_phy_init_pctl(struct b43_wldev *dev) | 1922 | static 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, | |||
| 2136 | static void default_radio_attenuation(struct b43_wldev *dev, | 2134 | static 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) { | ||
