]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/net/wireless/iwlwifi/iwl-trans.h
iwlagn: move the stop / wake queue logic to transport layer
[mv-sheeva.git] / drivers / net / wireless / iwlwifi / iwl-trans.h
index 6edf2e0dadab709563c4f962a1134ac3235e3d91..7a2daa886dfd155a0647ec757e186997eb923a5a 100644 (file)
@@ -101,6 +101,7 @@ struct iwl_device_cmd;
  * @kick_nic: remove the RESET from the embedded CPU and let it run
  * @free: release all the ressource for the transport layer itself such as
  *        irq, tasklet etc...
+ * @stop_queue: stop a specific queue
  * @check_stuck_queue: check if a specific queue is stuck
  * @wait_tx_queue_empty: wait until all tx queues are empty
  * @dbgfs_register: add the dbgfs files under this directory. Files will be
@@ -143,6 +144,8 @@ struct iwl_trans_ops {
 
        void (*free)(struct iwl_trans *trans);
 
+       void (*stop_queue)(struct iwl_trans *trans, int q);
+
        int (*dbgfs_register)(struct iwl_trans *trans, struct dentry* dir);
        int (*check_stuck_queue)(struct iwl_trans *trans, int q);
        int (*wait_tx_queue_empty)(struct iwl_trans *trans);
@@ -256,6 +259,11 @@ static inline void iwl_trans_free(struct iwl_trans *trans)
        trans->ops->free(trans);
 }
 
+static inline void iwl_trans_stop_queue(struct iwl_trans *trans, int q)
+{
+       trans->ops->stop_queue(trans, q);
+}
+
 static inline int iwl_trans_wait_tx_queue_empty(struct iwl_trans *trans)
 {
        return trans->ops->wait_tx_queue_empty(trans);