Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91742449 authored by Eliad Peller's avatar Eliad Peller Committed by Emmanuel Grumbach
Browse files

iwlwifi: mvm: allow both d0i3 and d3 wowlan configuration modes



d3 and d0i3 shouldn't be mutually exclusive. Set supported
wowlan triggers by looking for each of them, and check
on suspend/resume which flow should be used ("any" trigger
is supported by d0i3, and all the others by d3)

Signed-off-by: default avatarEliad Peller <eliadx.peller@intel.com>
Reviewed-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent 7616f334
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1142,7 +1142,8 @@ int iwl_mvm_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
	struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);

	iwl_trans_suspend(mvm->trans);
	if (iwl_mvm_is_d0i3_supported(mvm)) {
	if (wowlan->any) {
		/* 'any' trigger means d0i3 usage */
		mutex_lock(&mvm->d0i3_suspend_mutex);
		__set_bit(D0I3_DEFER_WAKEUP, &mvm->d0i3_suspend_flags);
		mutex_unlock(&mvm->d0i3_suspend_mutex);
@@ -1876,8 +1877,10 @@ int iwl_mvm_resume(struct ieee80211_hw *hw)

	iwl_trans_resume(mvm->trans);

	if (iwl_mvm_is_d0i3_supported(mvm))
	if (mvm->hw->wiphy->wowlan_config->any) {
		/* 'any' trigger means d0i3 usage */
		return 0;
	}

	return __iwl_mvm_resume(mvm, false);
}
+8 −6
Original line number Diff line number Diff line
@@ -462,11 +462,13 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
	    device_can_wakeup(mvm->trans->dev)) {
		mvm->wowlan.flags = WIPHY_WOWLAN_ANY;
		hw->wiphy->wowlan = &mvm->wowlan;
	} else if (mvm->fw->img[IWL_UCODE_WOWLAN].sec[0].len &&
	}

	if (mvm->fw->img[IWL_UCODE_WOWLAN].sec[0].len &&
	    mvm->trans->ops->d3_suspend &&
	    mvm->trans->ops->d3_resume &&
	    device_can_wakeup(mvm->trans->dev)) {
		mvm->wowlan.flags = WIPHY_WOWLAN_MAGIC_PKT |
		mvm->wowlan.flags |= WIPHY_WOWLAN_MAGIC_PKT |
				     WIPHY_WOWLAN_DISCONNECT |
				     WIPHY_WOWLAN_EAP_IDENTITY_REQ |
				     WIPHY_WOWLAN_RFKILL_RELEASE |