aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-trans.h
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2011-08-26 02:11:25 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-08-29 15:30:32 -0400
commit288712a6ccf47b9df104f800616f6659ecadc940 (patch)
tree5d2d15b7f53db59dc76a3753eb2db3c92c981f18 /drivers/net/wireless/iwlwifi/iwl-trans.h
parente13c0c59e0ec38558ac853d56555e915b4dc7dc2 (diff)
iwlagn: allocate resources for TX BA session in transport
The queues and all the related logic suits to the transport layer. 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-trans.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
index 0fee8840c0aa..8aaab087ba54 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
@@ -94,6 +94,7 @@ struct iwl_device_cmd;
94 * @send_cmd_pdu:send a host command: flags can be CMD_* 94 * @send_cmd_pdu:send a host command: flags can be CMD_*
95 * @tx: send an skb 95 * @tx: send an skb
96 * @reclaim: free packet until ssn. Returns a list of freed packets. 96 * @reclaim: free packet until ssn. Returns a list of freed packets.
97 * @tx_agg_alloc: allocate resources for a TX BA session
97 * @txq_agg_setup: setup a tx queue for AMPDU - will be called once the HW is 98 * @txq_agg_setup: setup a tx queue for AMPDU - will be called once the HW is
98 * ready and a successful ADDBA response has been received. 99 * ready and a successful ADDBA response has been received.
99 * @txq_agg_disable: de-configure a Tx queue to send AMPDUs 100 * @txq_agg_disable: de-configure a Tx queue to send AMPDUs
@@ -126,6 +127,9 @@ struct iwl_trans_ops {
126 u32 status, struct sk_buff_head *skbs); 127 u32 status, struct sk_buff_head *skbs);
127 128
128 int (*txq_agg_disable)(struct iwl_priv *priv, u16 txq_id); 129 int (*txq_agg_disable)(struct iwl_priv *priv, u16 txq_id);
130 int (*tx_agg_alloc)(struct iwl_trans *trans,
131 enum iwl_rxon_context_id ctx, int sta_id, int tid,
132 u16 *ssn);
129 void (*txq_agg_setup)(struct iwl_priv *priv, 133 void (*txq_agg_setup)(struct iwl_priv *priv,
130 enum iwl_rxon_context_id ctx, int sta_id, 134 enum iwl_rxon_context_id ctx, int sta_id,
131 int tid, int frame_limit); 135 int tid, int frame_limit);
@@ -216,6 +220,14 @@ static inline int iwl_trans_txq_agg_disable(struct iwl_trans *trans, u16 txq_id)
216 return trans->ops->txq_agg_disable(priv(trans), txq_id); 220 return trans->ops->txq_agg_disable(priv(trans), txq_id);
217} 221}
218 222
223static inline int iwl_trans_tx_agg_alloc(struct iwl_trans *trans,
224 enum iwl_rxon_context_id ctx,
225 int sta_id, int tid, u16 *ssn)
226{
227 return trans->ops->tx_agg_alloc(trans, ctx, sta_id, tid, ssn);
228}
229
230
219static inline void iwl_trans_txq_agg_setup(struct iwl_trans *trans, 231static inline void iwl_trans_txq_agg_setup(struct iwl_trans *trans,
220 enum iwl_rxon_context_id ctx, 232 enum iwl_rxon_context_id ctx,
221 int sta_id, int tid, 233 int sta_id, int tid,