diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-02-07 11:28:11 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-02-07 11:28:11 +0000 |
commit | 2119054b0a501a065a656f106d3fec11f0c854d3 (patch) | |
tree | 591965ae3e7e4671400eff996096b8f4545d7338 /package/mac80211/patches/561-ath9k_extra_platform_leds.patch | |
parent | a633639fe6e9486f9403914cded6aff130c2e973 (diff) | |
download | master-187ad058-2119054b0a501a065a656f106d3fec11f0c854d3.tar.gz master-187ad058-2119054b0a501a065a656f106d3fec11f0c854d3.tar.bz2 master-187ad058-2119054b0a501a065a656f106d3fec11f0c854d3.zip |
mac80211: update to wireless-testing 2012-02-06
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30346 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/561-ath9k_extra_platform_leds.patch')
-rw-r--r-- | package/mac80211/patches/561-ath9k_extra_platform_leds.patch | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/package/mac80211/patches/561-ath9k_extra_platform_leds.patch b/package/mac80211/patches/561-ath9k_extra_platform_leds.patch new file mode 100644 index 0000000000..3834d43881 --- /dev/null +++ b/package/mac80211/patches/561-ath9k_extra_platform_leds.patch @@ -0,0 +1,71 @@ +--- a/include/linux/ath9k_platform.h ++++ b/include/linux/ath9k_platform.h +@@ -32,6 +32,9 @@ struct ath9k_platform_data { + bool is_clk_25mhz; + int (*get_mac_revision)(void); + int (*external_reset)(void); ++ ++ int num_leds; ++ const struct gpio_led *leds; + }; + + #endif /* _LINUX_ATH9K_PLATFORM_H */ +--- a/drivers/net/wireless/ath/ath9k/gpio.c ++++ b/drivers/net/wireless/ath/ath9k/gpio.c +@@ -14,6 +14,7 @@ + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + ++#include <linux/ath9k_platform.h> + #include "ath9k.h" + + /********************************/ +@@ -88,6 +89,24 @@ int ath_create_gpio_led(struct ath_softc + return ret; + } + ++static int ath_create_platform_led(struct ath_softc *sc, ++ const struct gpio_led *gpio) ++{ ++ struct ath_led *led; ++ int ret; ++ ++ led = kzalloc(sizeof(*led), GFP_KERNEL); ++ if (!led) ++ return -ENOMEM; ++ ++ led->gpio = gpio; ++ ret = ath_add_led(sc, led); ++ if (ret < 0) ++ kfree(led); ++ ++ return ret; ++} ++ + void ath_deinit_leds(struct ath_softc *sc) + { + struct ath_led *led; +@@ -103,8 +122,10 @@ void ath_deinit_leds(struct ath_softc *s + + void ath_init_leds(struct ath_softc *sc) + { ++ struct ath9k_platform_data *pdata = sc->dev->platform_data; + char led_name[32]; + const char *trigger; ++ int i; + + INIT_LIST_HEAD(&sc->leds); + +@@ -133,6 +154,12 @@ void ath_init_leds(struct ath_softc *sc) + trigger = ieee80211_get_radio_led_name(sc->hw); + + ath_create_gpio_led(sc, sc->sc_ah->led_pin, led_name, trigger, 1); ++ ++ if (!pdata) ++ return; ++ ++ for (i = 0; i < pdata->num_leds; i++) ++ ath_create_platform_led(sc, &pdata->leds[i]); + } + #endif + |