diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2011-08-26 02:11:00 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-08-29 15:25:34 -0400 |
commit | a0eaad713f6fc1f63fe293ad6ce63cb01e05c03c (patch) | |
tree | 72dee57cdee0bfb9e796d6b12159b75eae17f5c7 /drivers/net/wireless/iwlwifi/iwl-agn.h | |
parent | 1f7b6172db86e9ab2b4cd794441bb2c40ab287fc (diff) |
iwlagn: reclaim the packets in transport layer
The reclaim flow is really transport related. Define a simple API to allow the
upper layer to request from the transport layer to reclaim packets until an
index written in the Tx response / BA notification.
The transport layer prepares a list of the packets that are being freed and
passes this list to the upper layer.
Between the two layers, the CB of the skb is used to pass a pointer to the
context (BSS / PAN) in which the skb was sent.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.h b/drivers/net/wireless/iwlwifi/iwl-agn.h index d2fa77adbf22..f34590765074 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.h +++ b/drivers/net/wireless/iwlwifi/iwl-agn.h | |||
@@ -146,6 +146,11 @@ int iwlagn_load_ucode_wait_alive(struct iwl_priv *priv, | |||
146 | enum iwlagn_ucode_type ucode_type); | 146 | enum iwlagn_ucode_type ucode_type); |
147 | 147 | ||
148 | /* lib */ | 148 | /* lib */ |
149 | void iwlagn_set_tx_status(struct iwl_priv *priv, | ||
150 | struct ieee80211_tx_info *info, | ||
151 | struct iwlagn_tx_resp *tx_resp, | ||
152 | bool is_agg); | ||
153 | void iwlagn_count_agg_tx_err_status(struct iwl_priv *priv, u16 status); | ||
149 | void iwl_check_abort_status(struct iwl_priv *priv, | 154 | void iwl_check_abort_status(struct iwl_priv *priv, |
150 | u8 frame_count, u32 status); | 155 | u8 frame_count, u32 status); |
151 | int iwlagn_hw_valid_rtc_data_addr(u32 addr); | 156 | int iwlagn_hw_valid_rtc_data_addr(u32 addr); |
@@ -178,7 +183,8 @@ int iwlagn_txq_check_empty(struct iwl_priv *priv, | |||
178 | void iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv, | 183 | void iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv, |
179 | struct iwl_rx_mem_buffer *rxb); | 184 | struct iwl_rx_mem_buffer *rxb); |
180 | void iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb); | 185 | void iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb); |
181 | int iwlagn_tx_queue_reclaim(struct iwl_priv *priv, int txq_id, int index); | 186 | void iwl_tx_queue_reclaim(struct iwl_trans *trans, int txq_id, int index, |
187 | struct sk_buff_head *skbs); | ||
182 | 188 | ||
183 | static inline u32 iwl_tx_status_to_mac80211(u32 status) | 189 | static inline u32 iwl_tx_status_to_mac80211(u32 status) |
184 | { | 190 | { |