diff options
author | Reinette Chatre <reinette.chatre@intel.com> | 2010-02-22 19:24:47 -0500 |
---|---|---|
committer | Reinette Chatre <reinette.chatre@intel.com> | 2010-03-19 16:40:58 -0400 |
commit | fe6b23dd361199bfbc50b0cbce6bed37c5797c75 (patch) | |
tree | 96acb9c114342d7dc731310159dc4195248d115e /drivers/net/wireless/iwlwifi/iwl-sta.h | |
parent | 7e2461910e9115c9964975f77584baf8c2f76bfe (diff) |
iwlwifi: implement new mac80211 station add/remove calls
mac80211 recently implemented two new callbacks that are used to request
station add/remove from the driver. The benefot from these new callbacks
are that they enable the driver to sleep while performing this work.
This is a big patch since a few things need to be coordinated in this move.
First we need to decouple station management from rate scaling, which
caused a lot of code to be moved and/or deleted. Next we needed to tie in
with mac80211's station management callback and let it direct our station
management as well as trigger the rate scaling initialization.
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-sta.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-sta.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.h b/drivers/net/wireless/iwlwifi/iwl-sta.h index 50367e83defd..87a34997a758 100644 --- a/drivers/net/wireless/iwlwifi/iwl-sta.h +++ b/drivers/net/wireless/iwlwifi/iwl-sta.h | |||
@@ -57,10 +57,8 @@ void iwl_update_tkip_key(struct iwl_priv *priv, | |||
57 | struct ieee80211_key_conf *keyconf, | 57 | struct ieee80211_key_conf *keyconf, |
58 | const u8 *addr, u32 iv32, u16 *phase1key); | 58 | const u8 *addr, u32 iv32, u16 *phase1key); |
59 | 59 | ||
60 | int iwl_rxon_add_station(struct iwl_priv *priv, const u8 *addr, bool is_ap); | ||
61 | void iwl_add_bcast_station(struct iwl_priv *priv); | 60 | void iwl_add_bcast_station(struct iwl_priv *priv); |
62 | void iwl3945_add_bcast_station(struct iwl_priv *priv); | 61 | void iwl3945_add_bcast_station(struct iwl_priv *priv); |
63 | int iwl_remove_station(struct iwl_priv *priv, const u8 *addr, bool is_ap); | ||
64 | void iwl_restore_stations(struct iwl_priv *priv); | 62 | void iwl_restore_stations(struct iwl_priv *priv); |
65 | void iwl_clear_ucode_stations(struct iwl_priv *priv, bool force); | 63 | void iwl_clear_ucode_stations(struct iwl_priv *priv, bool force); |
66 | int iwl_get_free_ucode_key_index(struct iwl_priv *priv); | 64 | int iwl_get_free_ucode_key_index(struct iwl_priv *priv); |
@@ -68,8 +66,13 @@ int iwl_get_sta_id(struct iwl_priv *priv, struct ieee80211_hdr *hdr); | |||
68 | int iwl_get_ra_sta_id(struct iwl_priv *priv, struct ieee80211_hdr *hdr); | 66 | int iwl_get_ra_sta_id(struct iwl_priv *priv, struct ieee80211_hdr *hdr); |
69 | int iwl_send_add_sta(struct iwl_priv *priv, | 67 | int iwl_send_add_sta(struct iwl_priv *priv, |
70 | struct iwl_addsta_cmd *sta, u8 flags); | 68 | struct iwl_addsta_cmd *sta, u8 flags); |
71 | u8 iwl_add_station(struct iwl_priv *priv, const u8 *addr, bool is_ap, u8 flags, | 69 | int iwl_add_local_station(struct iwl_priv *priv, const u8 *addr, bool init_rs); |
72 | struct ieee80211_sta_ht_cap *ht_info); | 70 | int iwl_add_station_common(struct iwl_priv *priv, const u8 *addr, |
71 | bool is_ap, | ||
72 | struct ieee80211_sta_ht_cap *ht_info, | ||
73 | u8 *sta_id_r); | ||
74 | int iwl_mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | ||
75 | struct ieee80211_sta *sta); | ||
73 | void iwl_sta_tx_modify_enable_tid(struct iwl_priv *priv, int sta_id, int tid); | 76 | void iwl_sta_tx_modify_enable_tid(struct iwl_priv *priv, int sta_id, int tid); |
74 | int iwl_sta_rx_agg_start(struct iwl_priv *priv, | 77 | int iwl_sta_rx_agg_start(struct iwl_priv *priv, |
75 | const u8 *addr, int tid, u16 ssn); | 78 | const u8 *addr, int tid, u16 ssn); |