aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-trans.h
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2012-01-08 06:37:59 -0500
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2012-02-02 17:36:42 -0500
commitcc56feb2eb06a0a80a8f07e4adab7e6626009cca (patch)
tree8efc487255a526fa67bf20f9928fb167c6636416 /drivers/net/wireless/iwlwifi/iwl-trans.h
parenta6c684ee489a99a54f978aa92a9bf1e82f8c633b (diff)
iwlwifi: introduce trans_ops->stop_hw
This handler stops the HW and puts it in low power state. It will allow to clean up the flows in the upper layers. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-trans.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
index 55b5dc3b5dd6..d0b6146b0971 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
@@ -134,6 +134,8 @@ struct iwl_host_cmd {
134/** 134/**
135 * struct iwl_trans_ops - transport specific operations 135 * struct iwl_trans_ops - transport specific operations
136 * @start_hw: starts the HW- from that point on, the HW can send interrupts 136 * @start_hw: starts the HW- from that point on, the HW can send interrupts
137 * @stop_hw: stops the HW- from that point on, the HW will be in low power but
138 * will still issue interrupt if the HW RF kill is triggered.
137 * @start_device: allocates and inits all the resources for the transport 139 * @start_device: allocates and inits all the resources for the transport
138 * layer. 140 * layer.
139 * @fw_alive: called when the fw sends alive notification 141 * @fw_alive: called when the fw sends alive notification
@@ -163,6 +165,7 @@ struct iwl_host_cmd {
163struct iwl_trans_ops { 165struct iwl_trans_ops {
164 166
165 int (*start_hw)(struct iwl_trans *iwl_trans); 167 int (*start_hw)(struct iwl_trans *iwl_trans);
168 void (*stop_hw)(struct iwl_trans *iwl_trans);
166 int (*start_device)(struct iwl_trans *trans); 169 int (*start_device)(struct iwl_trans *trans);
167 void (*fw_alive)(struct iwl_trans *trans); 170 void (*fw_alive)(struct iwl_trans *trans);
168 void (*stop_device)(struct iwl_trans *trans); 171 void (*stop_device)(struct iwl_trans *trans);
@@ -271,6 +274,11 @@ static inline int iwl_trans_start_hw(struct iwl_trans *trans)
271 return trans->ops->start_hw(trans); 274 return trans->ops->start_hw(trans);
272} 275}
273 276
277static inline void iwl_trans_stop_hw(struct iwl_trans *trans)
278{
279 trans->ops->stop_hw(trans);
280}
281
274static inline void iwl_trans_fw_alive(struct iwl_trans *trans) 282static inline void iwl_trans_fw_alive(struct iwl_trans *trans)
275{ 283{
276 trans->ops->fw_alive(trans); 284 trans->ops->fw_alive(trans);