iwlagn: reclaim the packets in transport layer
[deliverable/linux.git] / drivers / net / wireless / iwlwifi / iwl-trans.h
index b4c7166a70e3249fb2964002a4372e9733c70f73..519ad91bda1c56f6f7c1214ee0c2e6f0a5729f0c 100644 (file)
@@ -90,6 +90,7 @@ struct iwl_shared;
  * @send_cmd_pdu:send a host command: flags can be CMD_*
  * @get_tx_cmd: returns a pointer to a new Tx cmd for the upper layer use
  * @tx: send an skb
+ * @reclaim: free packet until ssn. Returns a list of freed packets.
  * @txq_agg_setup: setup a tx queue for AMPDU - will be called once the HW is
  *                 ready and a successful ADDBA response has been received.
  * @txq_agg_disable: de-configure a Tx queue to send AMPDUs
@@ -123,6 +124,8 @@ struct iwl_trans_ops {
        int (*tx)(struct iwl_priv *priv, struct sk_buff *skb,
                struct iwl_tx_cmd *tx_cmd, int txq_id, __le16 fc, bool ampdu,
                struct iwl_rxon_context *ctx);
+       void (*reclaim)(struct iwl_trans *trans, int txq_id, int ssn,
+                       u32 status, struct sk_buff_head *skbs);
 
        int (*txq_agg_disable)(struct iwl_priv *priv, u16 txq_id,
                                  u16 ssn_idx, u8 tx_fifo);
@@ -213,6 +216,13 @@ static inline int iwl_trans_tx(struct iwl_trans *trans, struct sk_buff *skb,
        return trans->ops->tx(priv(trans), skb, tx_cmd, txq_id, fc, ampdu, ctx);
 }
 
+static inline void iwl_trans_reclaim(struct iwl_trans *trans, int txq_id,
+                                int ssn, u32 status,
+                                struct sk_buff_head *skbs)
+{
+       trans->ops->reclaim(trans, txq_id, ssn, status, skbs);
+}
+
 static inline int iwl_trans_txq_agg_disable(struct iwl_trans *trans, u16 txq_id,
                          u16 ssn_idx, u8 tx_fifo)
 {
This page took 0.024537 seconds and 5 git commands to generate.