2016-06-03 21:15:05

by Lucas Stach

[permalink] [raw]
Subject: [PATCH] b43: only hardcode LED behavior if SPROM doesn't encode any

Only hardcode the LED behavior if the SROM doesn't provide any for all
LEDs of the card. This avoids instantiating LED triggers for unconnected
LEDs, while (hopefully) keeping things working for old cards with a
blank SROM.

Signed-off-by: Lucas Stach <[email protected]>
---
drivers/net/wireless/broadcom/b43/leds.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/broadcom/b43/leds.c b/drivers/net/wireless/broadcom/b43/leds.c
index d79ab2a..cb987c2 100644
--- a/drivers/net/wireless/broadcom/b43/leds.c
+++ b/drivers/net/wireless/broadcom/b43/leds.c
@@ -222,7 +222,7 @@ static void b43_led_get_sprominfo(struct b43_wldev *dev,
sprom[2] = dev->dev->bus_sprom->gpio2;
sprom[3] = dev->dev->bus_sprom->gpio3;

- if (sprom[led_index] == 0xFF) {
+ if ((sprom[0] & sprom[1] & sprom[2] & sprom[3]) == 0xff) {
/* There is no LED information in the SPROM
* for this LED. Hardcode it here. */
*activelow = false;
@@ -250,7 +250,11 @@ static void b43_led_get_sprominfo(struct b43_wldev *dev,
return;
}
} else {
- *behaviour = sprom[led_index] & B43_LED_BEHAVIOUR;
+ /* keep LED disabled if no mapping is defined */
+ if (sprom[led_index] == 0xff)
+ *behaviour = B43_LED_OFF;
+ else
+ *behaviour = sprom[led_index] & B43_LED_BEHAVIOUR;
*activelow = !!(sprom[led_index] & B43_LED_ACTIVELOW);
}
}
--
2.5.5



2016-06-03 21:10:23

by Michael Büsch

[permalink] [raw]
Subject: Re: [PATCH] b43: only hardcode LED behavior if SPROM doesn't encode any

On Fri, 3 Jun 2016 23:04:03 +0200
Lucas Stach <[email protected]> wrote:

> Only hardcode the LED behavior if the SROM doesn't provide any for all
> LEDs of the card. This avoids instantiating LED triggers for unconnected
> LEDs, while (hopefully) keeping things working for old cards with a
> blank SROM.
>
> Signed-off-by: Lucas Stach <[email protected]>

Acked-by: Michael Buesch <[email protected]>


> ---
> drivers/net/wireless/broadcom/b43/leds.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/broadcom/b43/leds.c b/drivers/net/wireless/broadcom/b43/leds.c
> index d79ab2a..cb987c2 100644
> --- a/drivers/net/wireless/broadcom/b43/leds.c
> +++ b/drivers/net/wireless/broadcom/b43/leds.c
> @@ -222,7 +222,7 @@ static void b43_led_get_sprominfo(struct b43_wldev *dev,
> sprom[2] = dev->dev->bus_sprom->gpio2;
> sprom[3] = dev->dev->bus_sprom->gpio3;
>
> - if (sprom[led_index] == 0xFF) {
> + if ((sprom[0] & sprom[1] & sprom[2] & sprom[3]) == 0xff) {
> /* There is no LED information in the SPROM
> * for this LED. Hardcode it here. */
> *activelow = false;
> @@ -250,7 +250,11 @@ static void b43_led_get_sprominfo(struct b43_wldev *dev,
> return;
> }
> } else {
> - *behaviour = sprom[led_index] & B43_LED_BEHAVIOUR;
> + /* keep LED disabled if no mapping is defined */
> + if (sprom[led_index] == 0xff)
> + *behaviour = B43_LED_OFF;
> + else
> + *behaviour = sprom[led_index] & B43_LED_BEHAVIOUR;
> *activelow = !!(sprom[led_index] & B43_LED_ACTIVELOW);
> }
> }




--
Michael


Attachments:
(No filename) (819.00 B)
OpenPGP digital signature

2016-06-16 15:15:06

by Kalle Valo

[permalink] [raw]
Subject: Re: b43: only hardcode LED behavior if SPROM doesn't encode any

Lucas Stach <[email protected]> wrote:
> Only hardcode the LED behavior if the SROM doesn't provide any for all
> LEDs of the card. This avoids instantiating LED triggers for unconnected
> LEDs, while (hopefully) keeping things working for old cards with a
> blank SROM.
>
> Signed-off-by: Lucas Stach <[email protected]>

Thanks, 1 patch applied to wireless-drivers-next.git:

508f1222ba4e b43: only hardcode LED behavior if SPROM doesn't encode any

--
Sent by pwcli
https://patchwork.kernel.org/patch/9154077/