From e2119da18d3641a4dab6bbfe0445fbd8aef70951 Mon Sep 17 00:00:00 2001 From: Gururaj Pandurangi Date: Tue, 20 Dec 2022 18:35:02 -0800 Subject: [PATCH] qcacld-3.0: Add API for EMLSR padding delay Add support to configure EMLSR padding delay subfield. Host should advertise this value in assoc request if it's greater than the value configured by FW during boot. Change-Id: Ia9b1e748745278ed502980697f4851f8044db658 CRs-Fixed: 3364158 --- .../mlme/dispatcher/inc/wlan_mlme_api.h | 18 +++++++++++++++++ .../mlme/dispatcher/src/wlan_mlme_api.c | 20 ++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h index 75cb9ef16a..53fd80879a 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -2574,6 +2574,19 @@ void wlan_mlme_get_eml_params(struct wlan_objmgr_psoc *psoc, struct wlan_mlo_eml_cap *cap); +/** + * wlan_mlme_cfg_set_emlsr_pad_delay() - Configure EMLSR padding delay subfield + * @psoc: psoc context + * @val: EMLSR padding delay subfield value + * + * API to configure EMLSR padding delay subfield in psoc mlme obj with user + * requested value if it greater than the value configured by FW during boot-up. + * + * Return: none + */ +void +wlan_mlme_cfg_set_emlsr_pad_delay(struct wlan_objmgr_psoc *psoc, uint8_t val); + /** * wlan_mlme_get_t2lm_negotiation_supported() - Get the T2LM * negotiation supported value @@ -2634,6 +2647,11 @@ wlan_mlme_get_eml_params(struct wlan_objmgr_psoc *psoc, { } +static inline void +wlan_mlme_cfg_set_emlsr_pad_delay(struct wlan_objmgr_psoc *psoc, uint8_t val) +{ +} + static inline enum t2lm_negotiation_support wlan_mlme_get_t2lm_negotiation_supported(struct wlan_objmgr_psoc *psoc) { diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index e850ce65eb..e1f89092ef 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -3469,7 +3469,7 @@ wlan_mlme_set_eml_params(struct wlan_objmgr_psoc *psoc, struct wlan_mlme_psoc_ext_obj *mlme_obj; if (!cap->emlcap.emlsr_supp) { - mlme_legacy_debug("No EMLSR supp: %d", cap->emlcap.emlsr_supp); + mlme_legacy_debug("EMLSR supp: %d", cap->emlcap.emlsr_supp); return; } @@ -3501,6 +3501,24 @@ wlan_mlme_get_eml_params(struct wlan_objmgr_psoc *psoc, cap->emlmr_supp = mlme_obj->cfg.eml_cap.emlmr_supp; } +void +wlan_mlme_cfg_set_emlsr_pad_delay(struct wlan_objmgr_psoc *psoc, uint8_t val) +{ + struct wlan_mlme_psoc_ext_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_ext_obj(psoc); + if (!mlme_obj) { + mlme_legacy_err("No psoc object"); + return; + } + + if (val > mlme_obj->cfg.eml_cap.emlsr_pad_delay && + val <= WLAN_ML_BV_CINFO_EMLCAP_EMLSRDELAY_256US) { + mlme_obj->cfg.eml_cap.emlsr_pad_delay = val; + mlme_debug("EMLSR padding delay configured to %d", val); + } +} + enum t2lm_negotiation_support wlan_mlme_get_t2lm_negotiation_supported(struct wlan_objmgr_psoc *psoc) {