Message ID | 20241010140328.1dc3a7fea9d1.Ibf183824471ea5580d9276d104444e53191e6900@changeid (mailing list archive) |
---|---|
State | Rejected |
Delegated to: | Johannes Berg |
Headers | show |
Series | iwlwifi bugfixes - 10-10-2024 | expand |
On Thu, 2024-10-10 at 14:05 +0300, Miri Korenblit wrote: > From: Emmanuel Grumbach <emmanuel.grumbach@intel.com> > > Since we no longer shut down the device in suspend, we also no longer > call iwl_mvm_mei_device_state() and this is a problem because iwlmei [snip config IWLMEI ... depends on BROKEN so there's no way this matters upstream? johannes
On Mon, 2024-10-21 at 12:48 +0200, Johannes Berg wrote: > On Thu, 2024-10-10 at 14:05 +0300, Miri Korenblit wrote: > > From: Emmanuel Grumbach <emmanuel.grumbach@intel.com> > > > > Since we no longer shut down the device in suspend, we also no longer > > call iwl_mvm_mei_device_state() and this is a problem because iwlmei > > [snip > > config IWLMEI > ... > depends on BROKEN > > > so there's no way this matters upstream? And since Emmanuel pointed it out - I meant here it doesn't need to go to the wireless tree, nobody is going to mark it non-BROKEN there, so it can go with other stuff to wireless-next, perhaps eventually together with a patch to mark it non-BROKEN. johannes
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c index 819e1c0c46ca..db0c6e7a186b 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -1237,6 +1237,7 @@ int __iwl_mvm_mac_start(struct iwl_mvm *mvm) fast_resume = mvm->fast_resume; if (fast_resume) { + iwl_mvm_mei_device_state(mvm, true); ret = iwl_mvm_fast_resume(mvm); if (ret) { iwl_mvm_stop_device(mvm); @@ -1356,10 +1357,13 @@ void __iwl_mvm_mac_stop(struct iwl_mvm *mvm, bool suspend) iwl_mvm_rm_aux_sta(mvm); if (suspend && - mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22000) + mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22000) { iwl_mvm_fast_suspend(mvm); - else + /* From this point on, we won't touch the device */ + iwl_mvm_mei_device_state(mvm, false); + } else { iwl_mvm_stop_device(mvm); + } iwl_mvm_async_handlers_purge(mvm); /* async_handlers_list is empty and will stay empty: HW is stopped */