diff --git a/mlme/core/src/wlan_mlme_main.c b/mlme/core/src/wlan_mlme_main.c index 9d60f3043d..7edbf61f8b 100644 --- a/mlme/core/src/wlan_mlme_main.c +++ b/mlme/core/src/wlan_mlme_main.c @@ -1943,6 +1943,9 @@ static void mlme_init_wmm_in_cfg(struct wlan_objmgr_psoc *psoc, cfg_get(psoc, CFG_QOS_WMM_TS_INFO_ACK_POLICY); wmm_params->wmm_tspec_element.ts_acm_is_off = cfg_get(psoc, CFG_QOS_ADDTS_WHEN_ACM_IS_OFF); + wmm_params->delayed_trigger_frm_int = + cfg_get(psoc, CFG_TL_DELAYED_TRGR_FRM_INTERVAL); + } static void mlme_init_wps_params_cfg(struct wlan_objmgr_psoc *psoc, diff --git a/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h b/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h index bbde4a2b5b..1f2edbcc27 100644 --- a/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h +++ b/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -960,6 +960,29 @@ 0, \ "ACM value for AC") +/* + * + * DelayedTriggerFrmInt - UAPSD delay interval + * @Min: 1 + * @Max: 4294967295 + * @Default: 3000 + * + * This parameter controls the delay interval(in ms) of UAPSD auto trigger. + * + * Supported Feature: WMM + * + * Usage: Internal/External + * + * + */ +#define CFG_TL_DELAYED_TRGR_FRM_INTERVAL CFG_INI_UINT( \ + "DelayedTriggerFrmInt", \ + 1, \ + 4294967295UL, \ + 3000, \ + CFG_VALUE_OR_DEFAULT, \ + "UAPSD auto trigger Interval") + #define CFG_WMM_PARAMS_ALL \ CFG(CFG_QOS_ENABLED) \ CFG(CFG_WME_ENABLED) \ @@ -1001,6 +1024,7 @@ QOS_CFG \ CFG(CFG_QOS_WMM_BURST_SIZE_DEFN) \ CFG(CFG_QOS_WMM_TS_INFO_ACK_POLICY) \ - CFG(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF) + CFG(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF) \ + CFG(CFG_TL_DELAYED_TRGR_FRM_INTERVAL) #endif /* __CFG_MLME_FE_WMM_H */ diff --git a/mlme/dispatcher/inc/wlan_mlme_api.h b/mlme/dispatcher/inc/wlan_mlme_api.h index 1a986b58dd..a20f753980 100644 --- a/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/mlme/dispatcher/inc/wlan_mlme_api.h @@ -896,6 +896,17 @@ QDF_STATUS wlan_mlme_get_fils_enabled_info(struct wlan_objmgr_psoc *psoc, QDF_STATUS wlan_mlme_set_fils_enabled_info(struct wlan_objmgr_psoc *psoc, bool value); +/** + * wlan_mlme_get_tl_delayed_trgr_frm_int() - Get delay interval(in ms) + * of UAPSD auto trigger + * @psoc: pointer to psoc object + * @value: Value that needs to be set from the caller + * + * Return: None + */ +void wlan_mlme_get_tl_delayed_trgr_frm_int(struct wlan_objmgr_psoc *psoc, + uint32_t *value); + /** * wlan_mlme_get_wmm_dir_ac_vi() - Get TSPEC direction * for VI diff --git a/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/mlme/dispatcher/inc/wlan_mlme_public_struct.h index 7e2a53df4d..b92767e1c3 100644 --- a/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -1530,6 +1530,7 @@ struct wlan_mlme_wmm_ac_bk { * @ac_vi: Default TSPEC parameters for AC_VI * @ac_be: Default TSPEC parameters for AC_BE * @ac_bk: Default TSPEC parameters for AC_BK + * @delayed_trigger_frm_int: delay int(in ms) of UAPSD auto trigger */ struct wlan_mlme_wmm_params { bool qos_enabled; @@ -1543,6 +1544,7 @@ struct wlan_mlme_wmm_params { struct wlan_mlme_wmm_ac_vi ac_vi; struct wlan_mlme_wmm_ac_be ac_be; struct wlan_mlme_wmm_ac_bk ac_bk; + uint32_t delayed_trigger_frm_int; }; /** diff --git a/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index 78e6423411..47d4d0654f 100644 --- a/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h @@ -2679,6 +2679,23 @@ QDF_STATUS ucfg_mlme_ibss_power_save_setup(struct wlan_objmgr_psoc *psoc, return wlan_mlme_ibss_power_save_setup(psoc, vdev_id); } +/** + * ucfg_mlme_get_tl_delayed_trgr_frm_int() - Get delay interval(in ms) + * of UAPSD auto trigger. + * @psoc: pointer to psoc object + * @value: Value that needs to be set from the caller + * + * Inline UCFG API to be used by HDD/OSIF callers + * + * Return: None + */ +static inline +void ucfg_mlme_get_tl_delayed_trgr_frm_int(struct wlan_objmgr_psoc *psoc, + uint32_t *value) +{ + wlan_mlme_get_tl_delayed_trgr_frm_int(psoc, value); +} + /** * ucfg_mlme_get_wmm_dir_ac_vi() - Get TSPEC direction * for VI diff --git a/mlme/dispatcher/src/wlan_mlme_api.c b/mlme/dispatcher/src/wlan_mlme_api.c index c5effce3fa..3436e70348 100644 --- a/mlme/dispatcher/src/wlan_mlme_api.c +++ b/mlme/dispatcher/src/wlan_mlme_api.c @@ -976,6 +976,22 @@ wlan_mlme_get_manufacture_product_name(struct wlan_objmgr_psoc *psoc, return QDF_STATUS_SUCCESS; } + +void wlan_mlme_get_tl_delayed_trgr_frm_int(struct wlan_objmgr_psoc *psoc, + uint32_t *value) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + *value = cfg_default(CFG_TL_DELAYED_TRGR_FRM_INTERVAL); + return; + } + + *value = mlme_obj->cfg.wmm_params.delayed_trigger_frm_int; +} + + QDF_STATUS wlan_mlme_get_wmm_dir_ac_vo(struct wlan_objmgr_psoc *psoc, uint8_t *value) { diff --git a/tdls/dispatcher/inc/wlan_tdls_cfg.h b/tdls/dispatcher/inc/wlan_tdls_cfg.h index 03827e593a..c3ff2a6249 100644 --- a/tdls/dispatcher/inc/wlan_tdls_cfg.h +++ b/tdls/dispatcher/inc/wlan_tdls_cfg.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -702,31 +702,6 @@ CFG_VALUE_OR_DEFAULT, \ "Timer to defer for enabling TDLS on P2P listen") -/* - * - * DelayedTriggerFrmInt - delayed trigger frame interval. - * @Min: 500 - * @Max: 6000 - * @Default: 2000 - * - * This ini is used to set the delayed trigger frame interval. - * - * Related: gEnableTDLSSupport. - * - * Supported Feature: TDLS - * - * Usage: Internal/External - * - * - */ -#define CFG_TDLS_DELAYED_TRGR_FRM_INT CFG_INI_UINT( \ - "DelayedTriggerFrmInt", \ - 1, \ - 4294967295UL, \ - 3000, \ - CFG_VALUE_OR_DEFAULT, \ - "delayed trigger frame interval") - #define CFG_TDLS_ALL \ CFG(CFG_TDLS_QOS_WMM_UAPSD_MASK) \ CFG(CFG_TDLS_BUF_STA_ENABLED) \ @@ -753,7 +728,6 @@ CFG(CFG_TDLS_WMM_MODE_ENABLE) \ CFG(CFG_TDLS_SCAN_ENABLE) \ CFG(CFG_TDLS_PEER_KICKOUT_THRESHOLD) \ - CFG(CFG_TDLS_ENABLE_DEFER_TIMER) \ - CFG(CFG_TDLS_DELAYED_TRGR_FRM_INT) + CFG(CFG_TDLS_ENABLE_DEFER_TIMER) #endif diff --git a/tdls/dispatcher/src/wlan_tdls_ucfg_api.c b/tdls/dispatcher/src/wlan_tdls_ucfg_api.c index 3113e0f4fb..d792812e2a 100644 --- a/tdls/dispatcher/src/wlan_tdls_ucfg_api.c +++ b/tdls/dispatcher/src/wlan_tdls_ucfg_api.c @@ -201,7 +201,7 @@ static QDF_STATUS tdls_object_init_params( tdls_soc_obj->tdls_configs.tdls_peer_kickout_threshold = cfg_get(psoc, CFG_TDLS_PEER_KICKOUT_THRESHOLD); tdls_soc_obj->tdls_configs.delayed_trig_framint = - cfg_get(psoc, CFG_TDLS_DELAYED_TRGR_FRM_INT); + cfg_get(psoc, CFG_TL_DELAYED_TRGR_FRM_INTERVAL); tdls_soc_obj->tdls_configs.tdls_wmm_mode_enable = cfg_get(psoc, CFG_TDLS_WMM_MODE_ENABLE); tdls_soc_obj->tdls_configs.tdls_off_chan_enable =