From cca8cdabf0530a7e55e31757dfd3a0c968faddb7 Mon Sep 17 00:00:00 2001 From: Karun Kumar Eagalapati Date: Tue, 6 Aug 2024 16:31:45 +0530 Subject: [PATCH] drivers: wifi: Update RPU patch to rev#5231057e7e4 UMAC: [SHEL-2995]: Provision added for parsing keep alive parameters in command init. Adding variable in init command to enable null-frame based power save and sending that information to lmac after reset. Merging 70mai changes. LMAC: [SHEL-2995]: Corresponding changes for keep alive. [SHEL-2919]: Config option added to avoid sending pspoll frames for retrieving incoming data in power save mode. Asserted event to switch device state to active from UMAC which triggers null frames. [NRFX178]: Added check to disable watchdog irq if value is zero. Fast power save or null frame based data retrieve is moved to init command from seperate command. Signed-off-by: Karun Kumar Eagalapati --- .../fw_if/umac_if/inc/fw/host_rpu_sys_if.h | 20 +++++++++++++++++++ .../fw_if/umac_if/inc/fw/lmac_if_common.h | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/nrf_wifi/fw_if/umac_if/inc/fw/host_rpu_sys_if.h b/nrf_wifi/fw_if/umac_if/inc/fw/host_rpu_sys_if.h index a474f3b919..121cbf7a72 100644 --- a/nrf_wifi/fw_if/umac_if/inc/fw/host_rpu_sys_if.h +++ b/nrf_wifi/fw_if/umac_if/inc/fw/host_rpu_sys_if.h @@ -828,6 +828,16 @@ enum op_band { BAND_24G }; +/** + * @brief This enum defines keep alive status. + */ +enum nrf_wifi_keep_alive_status { + /** Keep alive feature disabled */ + KEEP_ALIVE_DISABLED = 0, + /** Keep alive feature enabled */ + KEEP_ALIVE_ENABLED = 1 +}; + /** * @brief This enum specifies the type of frames used to retrieve buffered data * from the AP in power save mode. @@ -889,6 +899,16 @@ struct nrf_wifi_cmd_sys_init { * from the AP in power save @ref data_retrieve_mechanism. */ unsigned char ps_data_retrieval_mech; + /** The RPU uses this value to configure watchdog timer */ + unsigned int watchdog_timer_val; + /** The RPU uses this value to decide whether keep alive + * feature is enabled or not see enum keep_alive_status + */ + unsigned char keep_alive_enable; + /** The RPU uses this value(in seconds) for periodicity of the keep + * alive frame. + */ + unsigned int keep_alive_period; } __NRF_WIFI_PKD; /** diff --git a/nrf_wifi/fw_if/umac_if/inc/fw/lmac_if_common.h b/nrf_wifi/fw_if/umac_if/inc/fw/lmac_if_common.h index f3ddb04ad1..e903b96b65 100644 --- a/nrf_wifi/fw_if/umac_if/inc/fw/lmac_if_common.h +++ b/nrf_wifi/fw_if/umac_if/inc/fw/lmac_if_common.h @@ -19,7 +19,7 @@ #define RPU_MEM_LMAC_VER 0xB7000D54 #define RPU_MEM_LMAC_PATCH_BIN 0x80044000 -#define RPU_MEM_LMAC_PATCH_BIMG 0x8004B000 +#define RPU_MEM_LMAC_PATCH_BIMG 0x8004B400 #define NRF_WIFI_LMAC_VER(ver) ((ver & 0xFF000000) >> 24) #define NRF_WIFI_LMAC_VER_MAJ(ver) ((ver & 0x00FF0000) >> 16)