diff options
Diffstat (limited to 'drivers/net/wireless/bcm43xx/bcm43xx_leds.c')
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_leds.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_leds.c b/drivers/net/wireless/bcm43xx/bcm43xx_leds.c index 7d383a27b927..8f198befba39 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_leds.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_leds.c | |||
@@ -26,6 +26,7 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include "bcm43xx_leds.h" | 28 | #include "bcm43xx_leds.h" |
29 | #include "bcm43xx_radio.h" | ||
29 | #include "bcm43xx.h" | 30 | #include "bcm43xx.h" |
30 | 31 | ||
31 | #include <asm/bitops.h> | 32 | #include <asm/bitops.h> |
@@ -108,6 +109,7 @@ static void bcm43xx_led_init_hardcoded(struct bcm43xx_private *bcm, | |||
108 | switch (led_index) { | 109 | switch (led_index) { |
109 | case 0: | 110 | case 0: |
110 | led->behaviour = BCM43xx_LED_ACTIVITY; | 111 | led->behaviour = BCM43xx_LED_ACTIVITY; |
112 | led->activelow = 1; | ||
111 | if (bcm->board_vendor == PCI_VENDOR_ID_COMPAQ) | 113 | if (bcm->board_vendor == PCI_VENDOR_ID_COMPAQ) |
112 | led->behaviour = BCM43xx_LED_RADIO_ALL; | 114 | led->behaviour = BCM43xx_LED_RADIO_ALL; |
113 | break; | 115 | break; |
@@ -199,20 +201,21 @@ void bcm43xx_leds_update(struct bcm43xx_private *bcm, int activity) | |||
199 | turn_on = activity; | 201 | turn_on = activity; |
200 | break; | 202 | break; |
201 | case BCM43xx_LED_RADIO_ALL: | 203 | case BCM43xx_LED_RADIO_ALL: |
202 | turn_on = radio->enabled; | 204 | turn_on = radio->enabled && bcm43xx_is_hw_radio_enabled(bcm); |
203 | break; | 205 | break; |
204 | case BCM43xx_LED_RADIO_A: | 206 | case BCM43xx_LED_RADIO_A: |
205 | case BCM43xx_LED_BCM4303_2: | 207 | case BCM43xx_LED_BCM4303_2: |
206 | turn_on = (radio->enabled && phy->type == BCM43xx_PHYTYPE_A); | 208 | turn_on = (radio->enabled && bcm43xx_is_hw_radio_enabled(bcm) && |
209 | phy->type == BCM43xx_PHYTYPE_A); | ||
207 | break; | 210 | break; |
208 | case BCM43xx_LED_RADIO_B: | 211 | case BCM43xx_LED_RADIO_B: |
209 | case BCM43xx_LED_BCM4303_1: | 212 | case BCM43xx_LED_BCM4303_1: |
210 | turn_on = (radio->enabled && | 213 | turn_on = (radio->enabled && bcm43xx_is_hw_radio_enabled(bcm) && |
211 | (phy->type == BCM43xx_PHYTYPE_B || | 214 | (phy->type == BCM43xx_PHYTYPE_B || |
212 | phy->type == BCM43xx_PHYTYPE_G)); | 215 | phy->type == BCM43xx_PHYTYPE_G)); |
213 | break; | 216 | break; |
214 | case BCM43xx_LED_MODE_BG: | 217 | case BCM43xx_LED_MODE_BG: |
215 | if (phy->type == BCM43xx_PHYTYPE_G && | 218 | if (phy->type == BCM43xx_PHYTYPE_G && bcm43xx_is_hw_radio_enabled(bcm) && |
216 | 1/*FIXME: using G rates.*/) | 219 | 1/*FIXME: using G rates.*/) |
217 | turn_on = 1; | 220 | turn_on = 1; |
218 | break; | 221 | break; |