diff options
author | Luca Coelho <luciano.coelho@intel.com> | 2016-10-07 08:16:26 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-05-14 08:00:16 -0400 |
commit | 45dad03aca5596cc8c1ba71b7644b5859377b823 (patch) | |
tree | 939c1888f9f741e6a9c596a6adc1941b87a673c7 | |
parent | d0a8075ffe0572819e19aac9110e1913cef754d4 (diff) |
iwlwifi: mvm: don't restart HW if suspend fails with unified image
commit bac453ab3745eaa64137ea6e77e009b45954f0ae upstream.
For unified images, we shouldn't restart the HW if suspend fails. The
only reason for restarting the HW with non-unified images is to go
back to the D0 image.
Fixes: 23ae61282b88 ("iwlwifi: mvm: Do not switch to D3 image on suspend")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c index b88e2048ae0b..207d8ae1e116 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c | |||
@@ -1262,12 +1262,15 @@ static int __iwl_mvm_suspend(struct ieee80211_hw *hw, | |||
1262 | iwl_trans_d3_suspend(mvm->trans, test, !unified_image); | 1262 | iwl_trans_d3_suspend(mvm->trans, test, !unified_image); |
1263 | out: | 1263 | out: |
1264 | if (ret < 0) { | 1264 | if (ret < 0) { |
1265 | iwl_mvm_ref(mvm, IWL_MVM_REF_UCODE_DOWN); | ||
1266 | if (mvm->restart_fw > 0) { | ||
1267 | mvm->restart_fw--; | ||
1268 | ieee80211_restart_hw(mvm->hw); | ||
1269 | } | ||
1270 | iwl_mvm_free_nd(mvm); | 1265 | iwl_mvm_free_nd(mvm); |
1266 | |||
1267 | if (!unified_image) { | ||
1268 | iwl_mvm_ref(mvm, IWL_MVM_REF_UCODE_DOWN); | ||
1269 | if (mvm->restart_fw > 0) { | ||
1270 | mvm->restart_fw--; | ||
1271 | ieee80211_restart_hw(mvm->hw); | ||
1272 | } | ||
1273 | } | ||
1271 | } | 1274 | } |
1272 | out_noreset: | 1275 | out_noreset: |
1273 | mutex_unlock(&mvm->mutex); | 1276 | mutex_unlock(&mvm->mutex); |