aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00.h
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-03-25 09:13:18 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-03-25 16:42:00 -0400
commit3a643d244f09fa1fdd25d48a56a073c1a69583ee (patch)
tree3cd8423f72f37d66fdd2738409f72779da3911fc /drivers/net/wireless/rt2x00/rt2x00.h
parent866a05038481d77cac6fc0186250b4c44e691b42 (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.h11
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);
987int rt2x00mac_config_interface(struct ieee80211_hw *hw, 990int 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);
993void 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);
990int rt2x00mac_get_stats(struct ieee80211_hw *hw, 997int rt2x00mac_get_stats(struct ieee80211_hw *hw,
991 struct ieee80211_low_level_stats *stats); 998 struct ieee80211_low_level_stats *stats);
992int rt2x00mac_get_tx_stats(struct ieee80211_hw *hw, 999int rt2x00mac_get_tx_stats(struct ieee80211_hw *hw,