Jon Hood wrote:
> The top LED says "PWR". The second on bottom says "LINK".
> bcm43xx: Contents of sprom[0-3]: 0xab 0xf8 0x2e 0x19
>
> Extra unrelated info if it helps (especially interesting is that this
> card can't decide if it's a 4303 or a 4301):
> Compaq Proliant p2 500 MHz with a nice server and raid5 arrays. I
> originally had a dlink 802.11g card in there with ndiswrappers, but it
> died after only a couple days of use. Then I found this linksys
> 802.11b card.
Please replace previous patches with this one. With it, the POWER led should be
on, and the LINK led
should blink when transmitting. I also made a change that limits the maximum
number of error
printouts to 20 if an unknown sprom value is encountered.
Larry
Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_leds.c
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_leds.c
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_leds.c
@@ -168,6 +168,8 @@ void bcm43xx_leds_exit(struct bcm43xx_pr
bcm43xx_leds_switch_all(bcm, 0);
}
+static int bcm43xx_max_led_err = 20;
+
void bcm43xx_leds_update(struct bcm43xx_private *bcm, int activity)
{
struct bcm43xx_led *led;
@@ -189,20 +191,24 @@ void bcm43xx_leds_update(struct bcm43xx_
case BCM43xx_LED_INACTIVE:
continue;
case BCM43xx_LED_OFF:
+ case BCM43xx_LED_BCM4303_3:
break;
case BCM43xx_LED_ON:
turn_on = 1;
break;
case BCM43xx_LED_ACTIVITY:
+ case BCM43xx_LED_BCM4303_0:
turn_on = activity;
break;
case BCM43xx_LED_RADIO_ALL:
turn_on = radio->enabled;
break;
case BCM43xx_LED_RADIO_A:
+ case BCM43xx_LED_BCM4303_2:
turn_on = (radio->enabled && phy->type ==
BCM43xx_PHYTYPE_A);
break;
case BCM43xx_LED_RADIO_B:
+ case BCM43xx_LED_BCM4303_1:
turn_on = (radio->enabled &&
(phy->type == BCM43xx_PHYTYPE_B ||
phy->type == BCM43xx_PHYTYPE_G));
@@ -257,7 +263,11 @@ void bcm43xx_leds_update(struct bcm43xx_
continue;
#endif /* CONFIG_BCM43XX_DEBUG */
default:
- assert(0);
+ if (bcm43xx_max_led_err) {
+ printkl(KERN_INFO PFX "Bad branch in
leds_update,"
+ " led->behaviour: 0x%x\n",
led->behaviour);
+ --bcm43xx_max_led_err;
+ }
};
if (led->activelow)
Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_leds.h
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_leds.h
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_leds.h
@@ -24,6 +24,10 @@ struct bcm43xx_led {
#define BCM43xx_LED_BEHAVIOUR 0x7F
#define BCM43xx_LED_ACTIVELOW 0x80
+#define BCM43xx_LED_BCM4303_0 0x2B
+#define BCM43xx_LED_BCM4303_1 0x78
+#define BCM43xx_LED_BCM4303_2 0x2E
+#define BCM43xx_LED_BCM4303_3 0x19
enum { /* LED behaviour values */
BCM43xx_LED_OFF,
BCM43xx_LED_ON,
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev