wiphy_delayed_work_cancel(mvm->hw->wiphy,
                                          &mvmvif->prevent_esr_done_wk);
+
+               /* No need for the periodic statistics anymore */
+               if (ieee80211_vif_is_mld(vif) && mvmvif->esr_active)
+                       iwl_mvm_request_periodic_system_statistics(mvm, false);
        }
 
        return 0;
 
        else
                mvmvif->primary_link = __ffs(vif->active_links);
 
+       /* Needed for tracking RSSI */
+       iwl_mvm_request_periodic_system_statistics(mvm, true);
+
        return ret;
 }
 
                ret = iwl_mvm_esr_mode_active(mvm, vif);
                if (ret) {
                        IWL_ERR(mvm, "failed to activate ESR mode (%d)\n", ret);
+                       iwl_mvm_request_periodic_system_statistics(mvm, false);
                        goto out;
                }
        }
                        break;
        }
 
+       iwl_mvm_request_periodic_system_statistics(mvm, false);
+
        return ret;
 }
 
 
 void iwl_mvm_rx_statistics(struct iwl_mvm *mvm,
                           struct iwl_rx_cmd_buffer *rxb);
 int iwl_mvm_request_statistics(struct iwl_mvm *mvm, bool clear);
+int iwl_mvm_request_periodic_system_statistics(struct iwl_mvm *mvm,
+                                              bool enable);
 void iwl_mvm_accu_radio_stats(struct iwl_mvm *mvm);
 
 /* NVM */
 
 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
 /*
- * Copyright (C) 2012-2014, 2018-2023 Intel Corporation
+ * Copyright (C) 2012-2014, 2018-2024 Intel Corporation
  * Copyright (C) 2013-2014 Intel Mobile Communications GmbH
  * Copyright (C) 2015-2017 Intel Deutschland GmbH
  */
        return true;
 }
 
+#define PERIODIC_STAT_RATE 5
+
+int iwl_mvm_request_periodic_system_statistics(struct iwl_mvm *mvm, bool enable)
+{
+       u32 flags = enable ? 0 : IWL_STATS_CFG_FLG_DISABLE_NTFY_MSK;
+       u32 type = enable ? (IWL_STATS_NTFY_TYPE_ID_OPER |
+                            IWL_STATS_NTFY_TYPE_ID_OPER_PART1) : 0;
+       struct iwl_system_statistics_cmd system_cmd = {
+               .cfg_mask = cpu_to_le32(flags),
+               .config_time_sec = cpu_to_le32(enable ?
+                                              PERIODIC_STAT_RATE : 0),
+               .type_id_mask = cpu_to_le32(type),
+       };
+
+       return iwl_mvm_send_cmd_pdu(mvm,
+                                   WIDE_ID(SYSTEM_GROUP,
+                                           SYSTEM_STATISTICS_CMD),
+                                   0, sizeof(system_cmd), &system_cmd);
+}
+
 static int iwl_mvm_request_system_statistics(struct iwl_mvm *mvm, bool clear,
                                             u8 cmd_ver)
 {