From 41cbc1e9a5e3b5a690ef2a7581db8b4723f8a98e Mon Sep 17 00:00:00 2001 From: Arif Hussain Date: Thu, 15 Nov 2018 05:54:45 -0800 Subject: [PATCH] qcacld-3.0: Add ucfg api to get/set ps data inactivity timeout Add and use ucfg api to get/set ps data inactivity timeout value. Change-Id: I8b0931870507aac146a18b70103c323bea1ca6f3 CRs-Fixed: 2335980 --- .../mlme/dispatcher/inc/wlan_mlme_ucfg_api.h | 23 ++++++++++ .../mlme/dispatcher/src/wlan_mlme_ucfg_api.c | 42 +++++++++++++++++++ core/hdd/src/wlan_hdd_wext.c | 20 +++------ 3 files changed, 70 insertions(+), 15 deletions(-) diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index 9d368a65f6ba..528ce7df5df9 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h @@ -772,6 +772,29 @@ ucfg_mlme_set_roaming_offload(struct wlan_objmgr_psoc *psoc, QDF_STATUS ucfg_mlme_get_first_scan_bucket_threshold(struct wlan_objmgr_psoc *psoc, uint8_t *val); + +/** + * ucfg_mlme_get_ps_data_inactivity_timeout() - Get data inactivity timeout + * @psoc: pointer to psoc object + * @inactivity_timeout: buffer to hold value + * + * Return: QDF Status + */ +QDF_STATUS +ucfg_mlme_get_ps_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc, + uint32_t *inactivity_timeout); + +/** + * ucfg_mlme_set_ps_data_inactivity_timeout() - Set data inactivity timeout + * @psoc: pointer to psoc object + * @inactivity_timeout: value to be set + * + * Return: QDF Status + */ +QDF_STATUS +ucfg_mlme_set_ps_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc, + uint32_t inactivity_timeout); + /** * ucfg_mlme_set_sap_listen_interval() - Set the Sap listen interval * @psoc: pointer to psoc object diff --git a/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c b/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c index bb8d88b546ef..0be113598884 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c @@ -466,3 +466,45 @@ ucfg_mlme_get_current_mcs_set(struct wlan_objmgr_psoc *psoc, &mlme_obj->cfg.rates.current_mcs_set, len); } + +QDF_STATUS +ucfg_mlme_get_ps_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc, + uint32_t *inactivity_timeout) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + *inactivity_timeout = + cfg_default(CFG_PS_DATA_INACTIVITY_TIMEOUT); + mlme_err("mlme obj null"); + return QDF_STATUS_E_INVAL; + } + + *inactivity_timeout = mlme_obj->cfg.timeouts.ps_data_inactivity_timeout; + + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS +ucfg_mlme_set_ps_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc, + uint32_t inactivity_timeout) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("mlme obj null"); + return QDF_STATUS_E_INVAL; + } + + if (!cfg_in_range(CFG_PS_DATA_INACTIVITY_TIMEOUT, inactivity_timeout)) { + mlme_err("inactivity timeout set value is invalid %d", + inactivity_timeout); + return QDF_STATUS_E_INVAL; + } + + mlme_obj->cfg.timeouts.ps_data_inactivity_timeout = inactivity_timeout; + + return QDF_STATUS_SUCCESS; +} diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index 0baeb394dfb7..cbf8b9413efc 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -4160,25 +4160,15 @@ static int hdd_we_set_max_assoc(struct hdd_adapter *adapter, int value) } static int hdd_we_set_data_inactivity_timeout(struct hdd_adapter *adapter, - int value) + int inactivity_timeout) { struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); - mac_handle_t mac_handle = hdd_ctx->mac_handle; - struct mac_context *mac_ctx; + QDF_STATUS status; - if (!mac_handle) - return -EINVAL; + status = ucfg_mlme_set_ps_data_inactivity_timeout(hdd_ctx->psoc, + inactivity_timeout); - if (!cfg_in_range(CFG_PS_DATA_INACTIVITY_TIMEOUT, value)) { - hdd_err_rl("Invalid value %d", value); - return -EINVAL; - } - - /* pre-existing layering violation */ - mac_ctx = MAC_CONTEXT(mac_handle); - mac_ctx->mlme_cfg->timeouts.ps_data_inactivity_timeout = value; - - return 0; + return qdf_status_to_os_return(status); } static int hdd_we_set_wow_data_inactivity_timeout(struct hdd_adapter *adapter,