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,