diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2011-08-26 02:11:25 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-08-29 15:30:32 -0400 |
commit | 288712a6ccf47b9df104f800616f6659ecadc940 (patch) | |
tree | 5d2d15b7f53db59dc76a3753eb2db3c92c981f18 /drivers/net/wireless/iwlwifi/iwl-trans.h | |
parent | e13c0c59e0ec38558ac853d56555e915b4dc7dc2 (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.h | 12 |
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 | ||
223 | static 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 | |||
219 | static inline void iwl_trans_txq_agg_setup(struct iwl_trans *trans, | 231 | static 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, |