diff options
| author | Ron Rindjunsky <ron.rindjunsky@intel.com> | 2008-01-28 07:07:15 -0500 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2008-02-29 15:19:13 -0500 |
| commit | 0df3ef45a3d7b59cc53ce4e3611033c6e3b51a1b (patch) | |
| tree | 094a5340c7ded841c72c6542176568af7bd2a565 /drivers/net/wireless | |
| parent | 8816edcea9009b66570bef10acde5a552a9b3b3c (diff) | |
mac80211: A-MPDU Tx add session's and low level driver's API
This patch adds the API for 3 stages in A-MPDU Tx session flow:
- request mac80211 to start/stop A-MPDU Tx session for specific TID. such a
request should be issued by a load aware element, either mac80211 itself
or external element.
- requests by mac80211 to low-level driver to start/stop Tx aggregation.
notice that low level driver responds now with Starting Sequence Number.
- async feedback by low-level to mac80211 to inform that HW is ready for
next A-MPDU Tx state.
Changes in API to Rx A-MPDU were also made, reflected in iwlwifi changes as
well.
Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 4 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index d727de8b96fe..cd4f5e383e60 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
| @@ -4732,7 +4732,7 @@ static void iwl4965_sta_modify_del_ba_tid(struct iwl4965_priv *priv, | |||
| 4732 | 4732 | ||
| 4733 | int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, | 4733 | int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, |
| 4734 | enum ieee80211_ampdu_mlme_action action, | 4734 | enum ieee80211_ampdu_mlme_action action, |
| 4735 | const u8 *addr, u16 tid, u16 ssn) | 4735 | const u8 *addr, u16 tid, u16 *ssn) |
| 4736 | { | 4736 | { |
| 4737 | struct iwl4965_priv *priv = hw->priv; | 4737 | struct iwl4965_priv *priv = hw->priv; |
| 4738 | int sta_id; | 4738 | int sta_id; |
| @@ -4744,7 +4744,7 @@ int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, | |||
| 4744 | switch (action) { | 4744 | switch (action) { |
| 4745 | case IEEE80211_AMPDU_RX_START: | 4745 | case IEEE80211_AMPDU_RX_START: |
| 4746 | IWL_DEBUG_HT("start Rx\n"); | 4746 | IWL_DEBUG_HT("start Rx\n"); |
| 4747 | iwl4965_sta_modify_add_ba_tid(priv, sta_id, tid, ssn); | 4747 | iwl4965_sta_modify_add_ba_tid(priv, sta_id, tid, *ssn); |
| 4748 | break; | 4748 | break; |
| 4749 | case IEEE80211_AMPDU_RX_STOP: | 4749 | case IEEE80211_AMPDU_RX_STOP: |
| 4750 | IWL_DEBUG_HT("stop Rx\n"); | 4750 | IWL_DEBUG_HT("stop Rx\n"); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.h b/drivers/net/wireless/iwlwifi/iwl-4965.h index 9cb82be0ff80..6edf869d4d54 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.h +++ b/drivers/net/wireless/iwlwifi/iwl-4965.h | |||
| @@ -777,7 +777,7 @@ extern void iwl4965_set_ht_add_station(struct iwl4965_priv *priv, u8 index, | |||
| 777 | struct ieee80211_ht_info *sta_ht_inf); | 777 | struct ieee80211_ht_info *sta_ht_inf); |
| 778 | extern int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, | 778 | extern int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, |
| 779 | enum ieee80211_ampdu_mlme_action action, | 779 | enum ieee80211_ampdu_mlme_action action, |
| 780 | const u8 *addr, u16 tid, u16 ssn); | 780 | const u8 *addr, u16 tid, u16 *ssn); |
| 781 | #ifdef CONFIG_IWL4965_HT_AGG | 781 | #ifdef CONFIG_IWL4965_HT_AGG |
| 782 | extern int iwl4965_mac_ht_tx_agg_start(struct ieee80211_hw *hw, u8 *da, | 782 | extern int iwl4965_mac_ht_tx_agg_start(struct ieee80211_hw *hw, u8 *da, |
| 783 | u16 tid, u16 *start_seq_num); | 783 | u16 tid, u16 *start_seq_num); |
