Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
brcm47xx: add Luxul XAP-1500 and XWR-1750 WiFi LEDs
(cherry picked from commit 16efb0c) Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
- Loading branch information
Rafał Miłecki
committed
Apr 3, 2018
1 parent
fe3db68
commit 5a9b101
Showing
2 changed files
with
88 additions
and
2 deletions.
There are no files selected for viewing
86 changes: 86 additions & 0 deletions
86
target/linux/brcm47xx/patches-4.4/032-MIPS-BCM47XX-Add-Luxul-XAP1500-XWR1750-WiFi-LEDs.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
From 272641206100e89656038180da12eff4f03d79d1 Mon Sep 17 00:00:00 2001 | ||
From: Dan Haab <dan.haab@luxul.com> | ||
Date: Tue, 27 Mar 2018 11:24:34 -0600 | ||
Subject: [PATCH] MIPS: BCM47XX: Add Luxul XAP1500/XWR1750 WiFi LEDs | ||
|
||
Some Luxul devices use PCIe connected GPIO LEDs that are not available | ||
until the PCI subsytem and its drivers load. Using the same array for | ||
these LEDs would block registering any LEDs until all GPIOs become | ||
available. This may be undesired behavior as some LEDs should be | ||
available as early as possible (e.g. system status LED). This patch will | ||
allow registering available LEDs while deferring these PCIe GPIO | ||
connected 'extra' LEDs until they become available. | ||
|
||
Signed-off-by: Dan Haab <dan.haab@luxul.com> | ||
Cc: Ralf Baechle <ralf@linux-mips.org> | ||
Cc: Hauke Mehrtens <hauke@hauke-m.de> | ||
Cc: linux-mips@linux-mips.org | ||
Patchwork: https://patchwork.linux-mips.org/patch/18952/ | ||
Signed-off-by: James Hogan <jhogan@kernel.org> | ||
--- | ||
arch/mips/bcm47xx/leds.c | 21 +++++++++++++++++++++ | ||
1 file changed, 21 insertions(+) | ||
|
||
--- a/arch/mips/bcm47xx/leds.c | ||
+++ b/arch/mips/bcm47xx/leds.c | ||
@@ -408,6 +408,12 @@ bcm47xx_leds_luxul_xap_1500_v1[] __initc | ||
}; | ||
|
||
static const struct gpio_led | ||
+bcm47xx_leds_luxul_xap1500_v1_extra[] __initconst = { | ||
+ BCM47XX_GPIO_LED(44, "green", "5ghz", 0, LEDS_GPIO_DEFSTATE_OFF), | ||
+ BCM47XX_GPIO_LED(76, "green", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF), | ||
+}; | ||
+ | ||
+static const struct gpio_led | ||
bcm47xx_leds_luxul_xbr_4400_v1[] __initconst = { | ||
BCM47XX_GPIO_LED(12, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF), | ||
BCM47XX_GPIO_LED_TRIGGER(15, "green", "status", 0, "timer"), | ||
@@ -434,6 +440,11 @@ bcm47xx_leds_luxul_xwr_1750_v1[] __initc | ||
BCM47XX_GPIO_LED(15, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF), | ||
}; | ||
|
||
+static const struct gpio_led | ||
+bcm47xx_leds_luxul_xwr1750_v1_extra[] __initconst = { | ||
+ BCM47XX_GPIO_LED(76, "green", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF), | ||
+}; | ||
+ | ||
/* Microsoft */ | ||
|
||
static const struct gpio_led | ||
@@ -527,6 +538,12 @@ static struct gpio_led_platform_data bcm | ||
bcm47xx_leds_pdata.num_leds = ARRAY_SIZE(dev_leds); \ | ||
} while (0) | ||
|
||
+static struct gpio_led_platform_data bcm47xx_leds_pdata_extra __initdata = {}; | ||
+#define bcm47xx_set_pdata_extra(dev_leds) do { \ | ||
+ bcm47xx_leds_pdata_extra.leds = dev_leds; \ | ||
+ bcm47xx_leds_pdata_extra.num_leds = ARRAY_SIZE(dev_leds); \ | ||
+} while (0) | ||
+ | ||
void __init bcm47xx_leds_register(void) | ||
{ | ||
enum bcm47xx_board board = bcm47xx_board_get(); | ||
@@ -704,6 +721,7 @@ void __init bcm47xx_leds_register(void) | ||
break; | ||
case BCM47XX_BOARD_LUXUL_XAP_1500_V1: | ||
bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1500_v1); | ||
+ bcm47xx_set_pdata_extra(bcm47xx_leds_luxul_xap1500_v1_extra); | ||
break; | ||
case BCM47XX_BOARD_LUXUL_XBR_4400_V1: | ||
bcm47xx_set_pdata(bcm47xx_leds_luxul_xbr_4400_v1); | ||
@@ -716,6 +734,7 @@ void __init bcm47xx_leds_register(void) | ||
break; | ||
case BCM47XX_BOARD_LUXUL_XWR_1750_V1: | ||
bcm47xx_set_pdata(bcm47xx_leds_luxul_xwr_1750_v1); | ||
+ bcm47xx_set_pdata_extra(bcm47xx_leds_luxul_xwr1750_v1_extra); | ||
break; | ||
|
||
case BCM47XX_BOARD_MICROSOFT_MN700: | ||
@@ -759,4 +778,6 @@ void __init bcm47xx_leds_register(void) | ||
} | ||
|
||
gpio_led_register_device(-1, &bcm47xx_leds_pdata); | ||
+ if (bcm47xx_leds_pdata_extra.num_leds) | ||
+ gpio_led_register_device(0, &bcm47xx_leds_pdata_extra); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters