]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: iwlwifi: mvm: support EMLSR on WH/PE
authorJohannes Berg <johannes.berg@intel.com>
Tue, 31 Dec 2024 11:59:07 +0000 (13:59 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 13 Jan 2025 14:34:06 +0000 (15:34 +0100)
Unlike FM which only supported EMLSR on B-step and later, here
it can be supported starting from A-step.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20241231135726.65a3b822e002.I4d6f10e02686f1cc159121cf702d6b747cab5b8a@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h

index 7fd51976924d895212561a759beed1e4cf6243a2..ee769da72e68ce83f9536bc3d550c47dcf7a28d7 100644 (file)
@@ -1732,12 +1732,19 @@ static inline bool iwl_mvm_is_ctdp_supported(struct iwl_mvm *mvm)
 
 static inline bool iwl_mvm_is_esr_supported(struct iwl_trans *trans)
 {
-       if ((CSR_HW_RFID_TYPE(trans->hw_rf_id) == IWL_CFG_RF_TYPE_FM) &&
-           !CSR_HW_RFID_IS_CDB(trans->hw_rf_id))
+       if (CSR_HW_RFID_IS_CDB(trans->hw_rf_id))
+               return false;
+
+       switch (CSR_HW_RFID_TYPE(trans->hw_rf_id)) {
+       case IWL_CFG_RF_TYPE_FM:
                /* Step A doesn't support eSR */
                return CSR_HW_RFID_STEP(trans->hw_rf_id);
-
-       return false;
+       case IWL_CFG_RF_TYPE_WH:
+       case IWL_CFG_RF_TYPE_PE:
+               return true;
+       default:
+               return false;
+       }
 }
 
 static inline int iwl_mvm_max_active_links(struct iwl_mvm *mvm,