diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2008-03-31 09:53:44 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-04-01 17:14:09 -0400 |
commit | a2e1d52a32eab53f8ab03c4023310f65aaa054a7 (patch) | |
tree | 93f5f5692f220afbedc4512bdd372084097e5e54 /drivers/net/wireless/rt2x00/rt2x00dev.c | |
parent | e0b005fa1479045fe879944036268af3ebcd1835 (diff) |
rt2x00: Remove MAC80211_LEDS dependency
Implement triggers inside rt2x00 itself based
on input from mac80211. This replaces the method
of using the mac80211 trigger events which do
not work for USB drivers due to the scheduling
requirement.
After this patch RT2500USB_LEDS and RT73USB_LEDS
no longer need to be tagged as broken since they
now support LED handling again without having to
check for in_atomic().
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00dev.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00dev.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index d2c096708e8c..62b58a6261fe 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c | |||
@@ -108,11 +108,13 @@ int rt2x00lib_enable_radio(struct rt2x00_dev *rt2x00dev) | |||
108 | /* | 108 | /* |
109 | * Enable radio. | 109 | * Enable radio. |
110 | */ | 110 | */ |
111 | status = rt2x00dev->ops->lib->set_device_state(rt2x00dev, | 111 | status = |
112 | STATE_RADIO_ON); | 112 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_RADIO_ON); |
113 | if (status) | 113 | if (status) |
114 | return status; | 114 | return status; |
115 | 115 | ||
116 | rt2x00leds_led_radio(rt2x00dev, true); | ||
117 | |||
116 | __set_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags); | 118 | __set_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags); |
117 | 119 | ||
118 | /* | 120 | /* |
@@ -155,6 +157,7 @@ void rt2x00lib_disable_radio(struct rt2x00_dev *rt2x00dev) | |||
155 | * Disable radio. | 157 | * Disable radio. |
156 | */ | 158 | */ |
157 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_RADIO_OFF); | 159 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_RADIO_OFF); |
160 | rt2x00leds_led_radio(rt2x00dev, false); | ||
158 | } | 161 | } |
159 | 162 | ||
160 | void rt2x00lib_toggle_rx(struct rt2x00_dev *rt2x00dev, enum dev_state state) | 163 | void rt2x00lib_toggle_rx(struct rt2x00_dev *rt2x00dev, enum dev_state state) |
@@ -449,6 +452,9 @@ static void rt2x00lib_intf_scheduled_iter(void *data, u8 *mac, | |||
449 | 452 | ||
450 | if (delayed_flags & DELAYED_CONFIG_ERP) | 453 | if (delayed_flags & DELAYED_CONFIG_ERP) |
451 | rt2x00lib_config_erp(rt2x00dev, intf, &intf->conf); | 454 | rt2x00lib_config_erp(rt2x00dev, intf, &intf->conf); |
455 | |||
456 | if (delayed_flags & DELAYED_LED_ASSOC) | ||
457 | rt2x00leds_led_assoc(rt2x00dev, !!rt2x00dev->intf_associated); | ||
452 | } | 458 | } |
453 | 459 | ||
454 | static void rt2x00lib_intf_scheduled(struct work_struct *work) | 460 | static void rt2x00lib_intf_scheduled(struct work_struct *work) |