diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2008-03-25 09:13:18 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-03-25 16:42:00 -0400 |
commit | 3a643d244f09fa1fdd25d48a56a073c1a69583ee (patch) | |
tree | 3cd8423f72f37d66fdd2738409f72779da3911fc /drivers/net/wireless/rt2x00/rt2x00.h | |
parent | 866a05038481d77cac6fc0186250b4c44e691b42 (diff) |
rt2x00: Fix in_atomic() usage
rt73usb and rt2500usb used in_atomic to determine
if a configuration step should be rescheduled or not.
Since in_atomic() is not a valid method to determine
if sleeping is allowed we should fix the way this is handled
by adding a new flag to rt2x00.
In addition mark LED class support for the drivers broken
since that also uses the broken in_atomic() method but
so far no solution exists to have LED triggers work only
in scheduled context.
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/rt2x00.h')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index c016bfe1defd..333484ddb993 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h | |||
@@ -560,6 +560,8 @@ struct rt2x00lib_ops { | |||
560 | /* | 560 | /* |
561 | * Configuration handlers. | 561 | * Configuration handlers. |
562 | */ | 562 | */ |
563 | void (*config_filter) (struct rt2x00_dev *rt2x00dev, | ||
564 | const unsigned int filter_flags); | ||
563 | void (*config_intf) (struct rt2x00_dev *rt2x00dev, | 565 | void (*config_intf) (struct rt2x00_dev *rt2x00dev, |
564 | struct rt2x00_intf *intf, | 566 | struct rt2x00_intf *intf, |
565 | struct rt2x00intf_conf *conf, | 567 | struct rt2x00intf_conf *conf, |
@@ -568,8 +570,8 @@ struct rt2x00lib_ops { | |||
568 | #define CONFIG_UPDATE_MAC ( 1 << 2 ) | 570 | #define CONFIG_UPDATE_MAC ( 1 << 2 ) |
569 | #define CONFIG_UPDATE_BSSID ( 1 << 3 ) | 571 | #define CONFIG_UPDATE_BSSID ( 1 << 3 ) |
570 | 572 | ||
571 | int (*config_erp) (struct rt2x00_dev *rt2x00dev, | 573 | void (*config_erp) (struct rt2x00_dev *rt2x00dev, |
572 | struct rt2x00lib_erp *erp); | 574 | struct rt2x00lib_erp *erp); |
573 | void (*config) (struct rt2x00_dev *rt2x00dev, | 575 | void (*config) (struct rt2x00_dev *rt2x00dev, |
574 | struct rt2x00lib_conf *libconf, | 576 | struct rt2x00lib_conf *libconf, |
575 | const unsigned int flags); | 577 | const unsigned int flags); |
@@ -624,6 +626,7 @@ enum rt2x00_flags { | |||
624 | DRIVER_REQUIRE_FIRMWARE, | 626 | DRIVER_REQUIRE_FIRMWARE, |
625 | DRIVER_REQUIRE_BEACON_GUARD, | 627 | DRIVER_REQUIRE_BEACON_GUARD, |
626 | DRIVER_REQUIRE_ATIM_QUEUE, | 628 | DRIVER_REQUIRE_ATIM_QUEUE, |
629 | DRIVER_REQUIRE_SCHEDULED, | ||
627 | 630 | ||
628 | /* | 631 | /* |
629 | * Driver configuration | 632 | * Driver configuration |
@@ -987,6 +990,10 @@ int rt2x00mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf); | |||
987 | int rt2x00mac_config_interface(struct ieee80211_hw *hw, | 990 | int rt2x00mac_config_interface(struct ieee80211_hw *hw, |
988 | struct ieee80211_vif *vif, | 991 | struct ieee80211_vif *vif, |
989 | struct ieee80211_if_conf *conf); | 992 | struct ieee80211_if_conf *conf); |
993 | void rt2x00mac_configure_filter(struct ieee80211_hw *hw, | ||
994 | unsigned int changed_flags, | ||
995 | unsigned int *total_flags, | ||
996 | int mc_count, struct dev_addr_list *mc_list); | ||
990 | int rt2x00mac_get_stats(struct ieee80211_hw *hw, | 997 | int rt2x00mac_get_stats(struct ieee80211_hw *hw, |
991 | struct ieee80211_low_level_stats *stats); | 998 | struct ieee80211_low_level_stats *stats); |
992 | int rt2x00mac_get_tx_stats(struct ieee80211_hw *hw, | 999 | int rt2x00mac_get_tx_stats(struct ieee80211_hw *hw, |