diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2012-01-09 09:35:08 -0500 |
---|---|---|
committer | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2012-02-02 17:37:52 -0500 |
commit | 1df06bdc6fb26d13af18c5dbb3144f13cf55de3c (patch) | |
tree | d39f2f82a939c9fd426f5e4feb1697058d0d3ef5 /drivers | |
parent | 08079a4919ca960c0f46d244cae3a6ec2c39041d (diff) |
iwlwifi: stop_hw replace enable_rfkill_int
This trans_ops->stop_hw leaves the RFKILL interrupt enabled,
we can call that one instead of enable_rfkill_int. By that,
we reduce the numbers of acceesses to the NIC from 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')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.h | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-mac80211.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | 2 |
4 files changed, 10 insertions, 11 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h index e74bfb7bbb27..8d60dcf6f2eb 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.h +++ b/drivers/net/wireless/iwlwifi/iwl-core.h | |||
@@ -297,12 +297,6 @@ static inline bool iwl_advanced_bt_coexist(struct iwl_priv *priv) | |||
297 | cfg(priv)->bt_params->advanced_bt_coexist; | 297 | cfg(priv)->bt_params->advanced_bt_coexist; |
298 | } | 298 | } |
299 | 299 | ||
300 | static inline void iwl_enable_rfkill_int(struct iwl_priv *priv) | ||
301 | { | ||
302 | IWL_DEBUG_ISR(priv, "Enabling rfkill interrupt\n"); | ||
303 | iwl_write32(trans(priv), CSR_INT_MASK, CSR_INT_BIT_RF_KILL); | ||
304 | } | ||
305 | |||
306 | extern bool bt_siso_mode; | 300 | extern bool bt_siso_mode; |
307 | 301 | ||
308 | #endif /* __iwl_core_h__ */ | 302 | #endif /* __iwl_core_h__ */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-mac80211.c b/drivers/net/wireless/iwlwifi/iwl-mac80211.c index 78bc1e857b00..7177fd76e28a 100644 --- a/drivers/net/wireless/iwlwifi/iwl-mac80211.c +++ b/drivers/net/wireless/iwlwifi/iwl-mac80211.c | |||
@@ -346,9 +346,10 @@ static void iwlagn_mac_stop(struct ieee80211_hw *hw) | |||
346 | flush_workqueue(priv->shrd->workqueue); | 346 | flush_workqueue(priv->shrd->workqueue); |
347 | 347 | ||
348 | /* User space software may expect getting rfkill changes | 348 | /* User space software may expect getting rfkill changes |
349 | * even if interface is down */ | 349 | * even if interface is down, trans->down will leave the RF |
350 | iwl_write32(trans(priv), CSR_INT, 0xFFFFFFFF); | 350 | * kill interrupt enabled |
351 | iwl_enable_rfkill_int(priv); | 351 | */ |
352 | iwl_trans_stop_hw(trans(priv)); | ||
352 | 353 | ||
353 | IWL_DEBUG_MAC80211(priv, "leave\n"); | 354 | IWL_DEBUG_MAC80211(priv, "leave\n"); |
354 | } | 355 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c index 731f287c0f35..78abff004534 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c | |||
@@ -1149,8 +1149,10 @@ void iwl_irq_tasklet(struct iwl_trans *trans) | |||
1149 | if (test_bit(STATUS_INT_ENABLED, &trans->shrd->status)) | 1149 | if (test_bit(STATUS_INT_ENABLED, &trans->shrd->status)) |
1150 | iwl_enable_interrupts(trans); | 1150 | iwl_enable_interrupts(trans); |
1151 | /* Re-enable RF_KILL if it occurred */ | 1151 | /* Re-enable RF_KILL if it occurred */ |
1152 | else if (handled & CSR_INT_BIT_RF_KILL) | 1152 | else if (handled & CSR_INT_BIT_RF_KILL) { |
1153 | iwl_enable_rfkill_int(priv(trans)); | 1153 | IWL_DEBUG_ISR(trans, "Enabling rfkill interrupt\n"); |
1154 | iwl_write32(trans, CSR_INT_MASK, CSR_INT_BIT_RF_KILL); | ||
1155 | } | ||
1154 | } | 1156 | } |
1155 | 1157 | ||
1156 | /****************************************************************************** | 1158 | /****************************************************************************** |
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c index ed2a9216d807..ec26950ebb55 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | |||
@@ -1532,6 +1532,8 @@ static void iwl_trans_pcie_stop_hw(struct iwl_trans *trans) | |||
1532 | { | 1532 | { |
1533 | iwl_apm_stop(trans); | 1533 | iwl_apm_stop(trans); |
1534 | 1534 | ||
1535 | iwl_write32(trans, CSR_INT, 0xFFFFFFFF); | ||
1536 | |||
1535 | /* Even if we stop the HW, we still want the RF kill interrupt */ | 1537 | /* Even if we stop the HW, we still want the RF kill interrupt */ |
1536 | IWL_DEBUG_ISR(trans, "Enabling rfkill interrupt\n"); | 1538 | IWL_DEBUG_ISR(trans, "Enabling rfkill interrupt\n"); |
1537 | iwl_write32(trans, CSR_INT_MASK, CSR_INT_BIT_RF_KILL); | 1539 | iwl_write32(trans, CSR_INT_MASK, CSR_INT_BIT_RF_KILL); |