|
@@ -1098,6 +1098,8 @@ int iwl_mvm_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
|
|
|
/* make sure the d0i3 exit work is not pending */
|
|
|
flush_work(&mvm->d0i3_exit_work);
|
|
|
|
|
|
+ iwl_fw_runtime_suspend(&mvm->fwrt);
|
|
|
+
|
|
|
ret = iwl_trans_suspend(trans);
|
|
|
if (ret)
|
|
|
return ret;
|
|
@@ -2012,6 +2014,8 @@ int iwl_mvm_resume(struct ieee80211_hw *hw)
|
|
|
|
|
|
mvm->trans->system_pm_mode = IWL_PLAT_PM_MODE_DISABLED;
|
|
|
|
|
|
+ iwl_fw_runtime_resume(&mvm->fwrt);
|
|
|
+
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -2038,6 +2042,8 @@ static int iwl_mvm_d3_test_open(struct inode *inode, struct file *file)
|
|
|
|
|
|
mvm->trans->system_pm_mode = IWL_PLAT_PM_MODE_D3;
|
|
|
|
|
|
+ iwl_fw_runtime_suspend(&mvm->fwrt);
|
|
|
+
|
|
|
/* start pseudo D3 */
|
|
|
rtnl_lock();
|
|
|
err = __iwl_mvm_suspend(mvm->hw, mvm->hw->wiphy->wowlan_config, true);
|
|
@@ -2098,6 +2104,8 @@ static int iwl_mvm_d3_test_release(struct inode *inode, struct file *file)
|
|
|
__iwl_mvm_resume(mvm, true);
|
|
|
rtnl_unlock();
|
|
|
|
|
|
+ iwl_fw_runtime_resume(&mvm->fwrt);
|
|
|
+
|
|
|
mvm->trans->system_pm_mode = IWL_PLAT_PM_MODE_DISABLED;
|
|
|
|
|
|
iwl_abort_notification_waits(&mvm->notif_wait);
|