aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn.h
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2011-08-26 02:11:00 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-08-29 15:25:34 -0400
commita0eaad713f6fc1f63fe293ad6ce63cb01e05c03c (patch)
tree72dee57cdee0bfb9e796d6b12159b75eae17f5c7 /drivers/net/wireless/iwlwifi/iwl-agn.h
parent1f7b6172db86e9ab2b4cd794441bb2c40ab287fc (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.h8
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 */
149void 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);
153void iwlagn_count_agg_tx_err_status(struct iwl_priv *priv, u16 status);
149void iwl_check_abort_status(struct iwl_priv *priv, 154void iwl_check_abort_status(struct iwl_priv *priv,
150 u8 frame_count, u32 status); 155 u8 frame_count, u32 status);
151int iwlagn_hw_valid_rtc_data_addr(u32 addr); 156int iwlagn_hw_valid_rtc_data_addr(u32 addr);
@@ -178,7 +183,8 @@ int iwlagn_txq_check_empty(struct iwl_priv *priv,
178void iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv, 183void iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv,
179 struct iwl_rx_mem_buffer *rxb); 184 struct iwl_rx_mem_buffer *rxb);
180void iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb); 185void iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb);
181int iwlagn_tx_queue_reclaim(struct iwl_priv *priv, int txq_id, int index); 186void iwl_tx_queue_reclaim(struct iwl_trans *trans, int txq_id, int index,
187 struct sk_buff_head *skbs);
182 188
183static inline u32 iwl_tx_status_to_mac80211(u32 status) 189static inline u32 iwl_tx_status_to_mac80211(u32 status)
184{ 190{