diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2012-01-08 06:37:59 -0500 |
---|---|---|
committer | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2012-02-02 17:36:42 -0500 |
commit | cc56feb2eb06a0a80a8f07e4adab7e6626009cca (patch) | |
tree | 8efc487255a526fa67bf20f9928fb167c6636416 /drivers/net/wireless/iwlwifi/iwl-trans.h | |
parent | a6c684ee489a99a54f978aa92a9bf1e82f8c633b (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.h | 8 |
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 { | |||
163 | struct iwl_trans_ops { | 165 | struct 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 | ||
277 | static inline void iwl_trans_stop_hw(struct iwl_trans *trans) | ||
278 | { | ||
279 | trans->ops->stop_hw(trans); | ||
280 | } | ||
281 | |||
274 | static inline void iwl_trans_fw_alive(struct iwl_trans *trans) | 282 | static inline void iwl_trans_fw_alive(struct iwl_trans *trans) |
275 | { | 283 | { |
276 | trans->ops->fw_alive(trans); | 284 | trans->ops->fw_alive(trans); |