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

Reply via email to