| 1 | --- a/drivers/net/wireless/b43/b43.h |
| 2 | +++ b/drivers/net/wireless/b43/b43.h |
| 3 | @@ -718,6 +718,7 @@ struct b43_wldev { |
| 4 | bool qos_enabled; /* TRUE, if QoS is used. */ |
| 5 | bool hwcrypto_enabled; /* TRUE, if HW crypto acceleration is enabled. */ |
| 6 | bool use_pio; /* TRUE if next init should use PIO */ |
| 7 | + int gpiomask; /* GPIO LED mask as a module parameter */ |
| 8 | |
| 9 | /* PHY/Radio device. */ |
| 10 | struct b43_phy phy; |
| 11 | --- a/drivers/net/wireless/b43/main.c |
| 12 | +++ b/drivers/net/wireless/b43/main.c |
| 13 | @@ -75,6 +75,11 @@ MODULE_FIRMWARE("b43/ucode15.fw"); |
| 14 | MODULE_FIRMWARE("b43/ucode5.fw"); |
| 15 | MODULE_FIRMWARE("b43/ucode9.fw"); |
| 16 | |
| 17 | +static int modparam_gpiomask = 0x000F; |
| 18 | +module_param_named(gpiomask, modparam_gpiomask, int, 0444); |
| 19 | +MODULE_PARM_DESC(gpiomask, |
| 20 | + "GPIO mask for LED control (default 0x000F)"); |
| 21 | + |
| 22 | static int modparam_bad_frames_preempt; |
| 23 | module_param_named(bad_frames_preempt, modparam_bad_frames_preempt, int, 0444); |
| 24 | MODULE_PARM_DESC(bad_frames_preempt, |
| 25 | @@ -2542,10 +2547,10 @@ static int b43_gpio_init(struct b43_wlde |
| 26 | & ~B43_MACCTL_GPOUTSMSK); |
| 27 | |
| 28 | b43_write16(dev, B43_MMIO_GPIO_MASK, b43_read16(dev, B43_MMIO_GPIO_MASK) |
| 29 | - | 0x000F); |
| 30 | + | modparam_gpiomask); |
| 31 | |
| 32 | mask = 0x0000001F; |
| 33 | - set = 0x0000000F; |
| 34 | + set = modparam_gpiomask; |
| 35 | if (dev->dev->bus->chip_id == 0x4301) { |
| 36 | mask |= 0x0060; |
| 37 | set |= 0x0060; |
| 38 | @@ -5102,10 +5107,10 @@ static void b43_print_driverinfo(void) |
| 39 | feat_sdio = "S"; |
| 40 | #endif |
| 41 | printk(KERN_INFO "Broadcom 43xx driver loaded " |
| 42 | - "[ Features: %s%s%s%s%s, Firmware-ID: " |
| 43 | + "[ Features: %s%s%s%s%s, GPIO LED Mask: 0x%04x, Firmware-ID: " |
| 44 | B43_SUPPORTED_FIRMWARE_ID " ]\n", |
| 45 | feat_pci, feat_pcmcia, feat_nphy, |
| 46 | - feat_leds, feat_sdio); |
| 47 | + feat_leds, feat_sdio, modparam_gpiomask); |
| 48 | } |
| 49 | |
| 50 | static int __init b43_init(void) |
| 51 | |