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 =