From f5d3adb7a5b375ff321e93a062d60159ac3410b4 Mon Sep 17 00:00:00 2001 From: Ravi Dondaputi Date: Mon, 10 Jul 2023 19:42:26 +0530 Subject: [PATCH] drivers: wifi: Write BSS max idle time to UMAC Write BSS max idle time to UMAC in the association request. Signed-off-by: Ravi Dondaputi --- .../wifi/nrf700x/osal/fw_if/umac_if/inc/fw/host_rpu_umac_if.h | 1 + .../wifi/nrf700x/osal/fw_if/umac_if/src/default/fmac_api.c | 4 ++++ drivers/wifi/nrf700x/zephyr/src/zephyr_wpa_supp_if.c | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/drivers/wifi/nrf700x/osal/fw_if/umac_if/inc/fw/host_rpu_umac_if.h b/drivers/wifi/nrf700x/osal/fw_if/umac_if/inc/fw/host_rpu_umac_if.h index d984bc17946..680450e25be 100644 --- a/drivers/wifi/nrf700x/osal/fw_if/umac_if/inc/fw/host_rpu_umac_if.h +++ b/drivers/wifi/nrf700x/osal/fw_if/umac_if/inc/fw/host_rpu_umac_if.h @@ -1529,6 +1529,7 @@ struct nrf_wifi_umac_assoc_info { signed char control_port; unsigned int prev_bssid_flag; unsigned char prev_bssid[NRF_WIFI_ETH_ADDR_LEN]; + unsigned short bss_max_idle_time; } __NRF_WIFI_PKD; /** diff --git a/drivers/wifi/nrf700x/osal/fw_if/umac_if/src/default/fmac_api.c b/drivers/wifi/nrf700x/osal/fw_if/umac_if/src/default/fmac_api.c index d9ed6ef4aef..42b4c0a41c8 100644 --- a/drivers/wifi/nrf700x/osal/fw_if/umac_if/src/default/fmac_api.c +++ b/drivers/wifi/nrf700x/osal/fw_if/umac_if/src/default/fmac_api.c @@ -881,6 +881,10 @@ enum wifi_nrf_status wifi_nrf_fmac_assoc(void *dev_ctx, connect_common_info->nrf_wifi_flags |= NRF_WIFI_CONNECT_COMMON_INFO_PREV_BSSID; } + if (assoc_info->bss_max_idle_time) { + connect_common_info->maxidle_insec = assoc_info->bss_max_idle_time; + } + status = umac_cmd_cfg(fmac_dev_ctx, assoc_cmd, sizeof(*assoc_cmd)); diff --git a/drivers/wifi/nrf700x/zephyr/src/zephyr_wpa_supp_if.c b/drivers/wifi/nrf700x/zephyr/src/zephyr_wpa_supp_if.c index 2c941cbc100..88eec1872b1 100644 --- a/drivers/wifi/nrf700x/zephyr/src/zephyr_wpa_supp_if.c +++ b/drivers/wifi/nrf700x/zephyr/src/zephyr_wpa_supp_if.c @@ -822,6 +822,10 @@ int wifi_nrf_wpa_supp_associate(void *if_priv, struct wpa_driver_associate_param assoc_info.use_mfp = NRF_WIFI_MFP_REQUIRED; } + if (params->bss_max_idle_period) { + assoc_info.bss_max_idle_time = params->bss_max_idle_period; + } + status = wifi_nrf_fmac_assoc(rpu_ctx_zep->rpu_ctx, vif_ctx_zep->vif_idx, &assoc_info); if (status != WIFI_NRF_STATUS_SUCCESS) {