diff --git a/mlme/core/src/wlan_mlme_main.c b/mlme/core/src/wlan_mlme_main.c
index 0424f34c79..6a2f32da89 100644
--- a/mlme/core/src/wlan_mlme_main.c
+++ b/mlme/core/src/wlan_mlme_main.c
@@ -1293,6 +1293,21 @@ static void mlme_init_wmm_in_cfg(struct wlan_objmgr_psoc *psoc,
cfg_get(psoc, CFG_QOS_WMM_UAPSD_BE_SRV_INTV);
wmm_params->ac_be.uapsd_be_sus_intv =
cfg_get(psoc, CFG_QOS_WMM_UAPSD_BE_SUS_INTV);
+
+ wmm_params->ac_bk.dir_ac_bk =
+ cfg_get(psoc, CFG_QOS_WMM_DIR_AC_BK);
+ wmm_params->ac_bk.nom_msdu_size_ac_bk =
+ cfg_get(psoc, CFG_QOS_WMM_NOM_MSDU_SIZE_AC_BK);
+ wmm_params->ac_bk.mean_data_rate_ac_bk =
+ cfg_get(psoc, CFG_QOS_WMM_MEAN_DATA_RATE_AC_BK);
+ wmm_params->ac_bk.min_phy_rate_ac_bk =
+ cfg_get(psoc, CFG_QOS_WMM_MIN_PHY_RATE_AC_BK);
+ wmm_params->ac_bk.sba_ac_bk =
+ cfg_get(psoc, CFG_QOS_WMM_SBA_AC_BK);
+ wmm_params->ac_bk.uapsd_bk_srv_intv =
+ cfg_get(psoc, CFG_QOS_WMM_UAPSD_BK_SRV_INTV);
+ wmm_params->ac_bk.uapsd_bk_sus_intv =
+ cfg_get(psoc, CFG_QOS_WMM_UAPSD_BK_SUS_INTV);
}
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 678ad48ca3..872ac5ed5e 100644
--- a/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h
+++ b/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h
@@ -581,6 +581,181 @@
CFG_VALUE_OR_DEFAULT, \
"Infra uapsd vi sus intv")
+/*
+ *
+ * InfraDirAcBk - Set TSPEC direction for BK
+ * @Min: 0
+ * @Max: 3
+ * @Default: 3
+ *
+ * This ini is used to set TSPEC direction for BK
+ *
+ * Related: None.
+ *
+ * Supported Feature: WMM
+ *
+ * Usage: Internal/External
+ *
+ *
+ */
+#define CFG_QOS_WMM_DIR_AC_BK CFG_INI_UINT( \
+ "InfraDirAcBk", \
+ 0, \
+ 3, \
+ 3, \
+ CFG_VALUE_OR_DEFAULT, \
+ "TSPEC direction for BK")
+
+/*
+ *
+ * InfraNomMsduSizeAcBk - Set normal MSDU size for BK
+ * @Min: 0x0
+ * @Max: 0xFFFF
+ * @Default: 0x85DC
+ *
+ * This ini is used to set normal MSDU size for BK
+ *
+ * Related: None.
+ *
+ * Supported Feature: WMM
+ *
+ * Usage: Internal/External
+ *
+ *
+ */
+#define CFG_QOS_WMM_NOM_MSDU_SIZE_AC_BK CFG_INI_UINT( \
+ "InfraNomMsduSizeAcBk", \
+ 0x0, \
+ 0xFFFF, \
+ 0x85DC, \
+ CFG_VALUE_OR_DEFAULT, \
+ "MSDU size for BK")
+
+/*
+ *
+ * InfraMeanDataRateAcBk - Set mean data rate for BK
+ * @Min: 0x0
+ * @Max: 0xFFFFFFFF
+ * @Default: 0x493E0
+ *
+ * This ini is used to set mean data rate for BK
+ *
+ * Related: None.
+ *
+ * Supported Feature: WMM
+ *
+ * Usage: Internal/External
+ *
+ *
+ */
+#define CFG_QOS_WMM_MEAN_DATA_RATE_AC_BK CFG_INI_UINT( \
+ "InfraMeanDataRateAcBk", \
+ 0x0, \
+ 0xFFFFFFFF, \
+ 0x493E0, \
+ CFG_VALUE_OR_DEFAULT, \
+ "data rate for BK")
+
+/*
+ *
+ * InfraMinPhyRateAcBke - Set min PHY rate for BK
+ * @Min: 0x0
+ * @Max: 0xFFFFFFFF
+ * @Default: 0x5B8D80
+ *
+ * This ini is used to set min PHY rate for BK
+ *
+ * Related: None.
+ *
+ * Supported Feature: WMM
+ *
+ * Usage: Internal/External
+ *
+ *
+ */
+#define CFG_QOS_WMM_MIN_PHY_RATE_AC_BK CFG_INI_UINT( \
+ "InfraMinPhyRateAcBk", \
+ 0x0, \
+ 0xFFFFFFFF, \
+ 0x5B8D80, \
+ CFG_VALUE_OR_DEFAULT, \
+ "min PHY rate for BK")
+
+/*
+ *
+ * InfraSbaAcBk - Set surplus bandwidth allowance for BK
+ * @Min: 0x2001
+ * @Max: 0xFFFF
+ * @Default: 0x2001
+ *
+ * This ini is used to set surplus bandwidth allowance for BK
+ *
+ * Related: None.
+ *
+ * Supported Feature: WMM
+ *
+ * Usage: Internal/External
+ *
+ *
+ */
+#define CFG_QOS_WMM_SBA_AC_BK CFG_INI_UINT( \
+ "InfraSbaAcBk", \
+ 0x2001, \
+ 0xFFFF, \
+ 0x2001, \
+ CFG_VALUE_OR_DEFAULT, \
+ "surplus bandwidth allowance for BK")
+
+/*
+ *
+ * InfraUapsdBkSrvIntv - Set Uapsd service interval for BK
+ * @Min: 0
+ * @Max: 4294967295UL
+ * @Default: 300
+ *
+ * This ini is used to set Uapsd service interval for BK
+ *
+ * Related: None.
+ *
+ * Supported Feature: WMM
+ *
+ * Usage: Internal/External
+ *
+ *
+ */
+#define CFG_QOS_WMM_UAPSD_BK_SRV_INTV CFG_INI_UINT( \
+ "InfraUapsdBkSrvIntv", \
+ 0, \
+ 4294967295UL, \
+ 300, \
+ CFG_VALUE_OR_DEFAULT, \
+ "Infra uapsd bk srv intv")
+
+/*
+ *
+ * InfraUapsdBkSuspIntv - Set Uapsd suspension interval for BK
+ * @Min: 0
+ * @Max: 4294967295UL
+ * @Default: 2000
+ *
+ * This ini is used to set Uapsd suspension interval for BK
+ *
+ * Related: None.
+ *
+ * Supported Feature: WMM
+ *
+ * Usage: Internal/External
+ *
+ *
+ */
+#define CFG_QOS_WMM_UAPSD_BK_SUS_INTV CFG_INI_UINT( \
+ "InfraUapsdBkSuspIntv", \
+ 0, \
+ 4294967295UL, \
+ 2000, \
+ CFG_VALUE_OR_DEFAULT, \
+ "Infra uapsd bk sus intv")
+
#define CFG_WMM_PARAMS_ALL \
CFG(CFG_QOS_ENABLED) \
CFG(CFG_WME_ENABLED) \
@@ -607,6 +782,13 @@
CFG(CFG_QOS_WMM_MIN_PHY_RATE_AC_BE) \
CFG(CFG_QOS_WMM_SBA_AC_BE) \
CFG(CFG_QOS_WMM_UAPSD_BE_SRV_INTV) \
- CFG(CFG_QOS_WMM_UAPSD_BE_SUS_INTV)
+ CFG(CFG_QOS_WMM_UAPSD_BE_SUS_INTV) \
+ CFG(CFG_QOS_WMM_DIR_AC_BK) \
+ CFG(CFG_QOS_WMM_NOM_MSDU_SIZE_AC_BK) \
+ CFG(CFG_QOS_WMM_MEAN_DATA_RATE_AC_BK) \
+ CFG(CFG_QOS_WMM_MIN_PHY_RATE_AC_BK) \
+ CFG(CFG_QOS_WMM_SBA_AC_BK) \
+ CFG(CFG_QOS_WMM_UAPSD_BK_SRV_INTV) \
+ CFG(CFG_QOS_WMM_UAPSD_BK_SUS_INTV)
#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 dab0de03f4..0010f1a166 100644
--- a/mlme/dispatcher/inc/wlan_mlme_api.h
+++ b/mlme/dispatcher/inc/wlan_mlme_api.h
@@ -801,6 +801,88 @@ QDF_STATUS wlan_mlme_get_wmm_uapsd_be_srv_intv(struct wlan_objmgr_psoc *psoc,
QDF_STATUS wlan_mlme_get_wmm_uapsd_be_sus_intv(struct wlan_objmgr_psoc *psoc,
uint32_t *value);
+/**
+ * wlan_mlme_get_wmm_dir_ac_bk() - Get TSPEC direction
+ * for BK
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+wlan_mlme_get_wmm_dir_ac_bk(struct wlan_objmgr_psoc *psoc, uint8_t *value);
+
+/**
+ * wlan_mlme_get_wmm_nom_msdu_size_ac_bk() - Get normal
+ * MSDU size for BK
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+wlan_mlme_get_wmm_nom_msdu_size_ac_bk(struct wlan_objmgr_psoc *psoc,
+ uint16_t *value);
+
+/**
+ * wlan_mlme_get_wmm_mean_data_rate_ac_bk() - mean data
+ * rate for BK
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+wlan_mlme_get_wmm_mean_data_rate_ac_bk(struct wlan_objmgr_psoc *psoc,
+ uint32_t *value);
+
+/**
+ * wlan_mlme_get_wmm_min_phy_rate_ac_bk() - min PHY
+ * rate for BK
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+wlan_mlme_get_wmm_min_phy_rate_ac_bk(struct wlan_objmgr_psoc *psoc,
+ uint32_t *value);
+
+/**
+ * wlan_mlme_get_wmm_sba_ac_bk() - surplus bandwidth
+ * allowance for BE
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+wlan_mlme_get_wmm_sba_ac_bk(struct wlan_objmgr_psoc *psoc, uint16_t *value);
+
+/**
+ * wlan_mlme_get_wmm_uapsd_bk_srv_intv() - Get Uapsd service
+ * interval for BK
+ * @psoc: pointer to psoc object
+ * @value: pointer to the value which will be filled for the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+wlan_mlme_get_wmm_uapsd_bk_srv_intv(struct wlan_objmgr_psoc *psoc,
+ uint32_t *value);
+
+/**
+ * wlan_mlme_get_wmm_uapsd_bk_sus_intv() - Get Uapsd suspension
+ * interval for BK
+ * @psoc: pointer to psoc object
+ * @value: pointer to the value which will be filled for the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+wlan_mlme_get_wmm_uapsd_bk_sus_intv(struct wlan_objmgr_psoc *psoc,
+ uint32_t *value);
+
/**
* wlan_mlme_get_wmm_dir_ac_vo() - Get TSPEC direction
* for VO
diff --git a/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/mlme/dispatcher/inc/wlan_mlme_public_struct.h
index 66def29914..f734d1fbe9 100644
--- a/mlme/dispatcher/inc/wlan_mlme_public_struct.h
+++ b/mlme/dispatcher/inc/wlan_mlme_public_struct.h
@@ -1062,6 +1062,27 @@ struct wlan_mlme_wmm_ac_be {
};
+/**
+ * struct wlan_mlme_wmm_ac_bk - Default TSPEC parameters
+ * for AC_BK
+ * @dir_ac_bk: TSPEC direction for BK
+ * @nom_msdu_size_ac_bk: normal MSDU size for BK
+ * @mean_data_rate_ac_bk: mean data rate for BK
+ * @min_phy_rate_ac_bk: min PHY rate for BK
+ * @sba_ac_bk: surplus bandwidth allowance for BK
+ * @uapsd_bk_srv_intv: Uapsd service interval for BK
+ * @uapsd_bk_sus_intv: Uapsd suspension interval for BK
+ */
+struct wlan_mlme_wmm_ac_bk {
+ uint8_t dir_ac_bk;
+ uint16_t nom_msdu_size_ac_bk;
+ uint32_t mean_data_rate_ac_bk;
+ uint32_t min_phy_rate_ac_bk;
+ uint16_t sba_ac_bk;
+ uint32_t uapsd_bk_srv_intv;
+ uint32_t uapsd_bk_sus_intv;
+};
+
/**
* struct wlan_mlme_wmm_params - WMM CFG Items
* @qos_enabled: AP is enabled with 11E
@@ -1071,6 +1092,7 @@ struct wlan_mlme_wmm_ac_be {
* @ac_vo: Default TSPEC parameters for AC_VO
* @ac_vi: Default TSPEC parameters for AC_VI
* @ac_be: Default TSPEC parameters for AC_BE
+ * @ac_bk: Default TSPEC parameters for AC_BK
*/
struct wlan_mlme_wmm_params {
bool qos_enabled;
@@ -1081,6 +1103,7 @@ struct wlan_mlme_wmm_params {
struct wlan_mlme_wmm_ac_vo ac_vo;
struct wlan_mlme_wmm_ac_vi ac_vi;
struct wlan_mlme_wmm_ac_be ac_be;
+ struct wlan_mlme_wmm_ac_bk ac_bk;
};
/**
diff --git a/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
index 4c1deae775..abee54832c 100644
--- a/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
+++ b/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
@@ -1932,4 +1932,121 @@ ucfg_mlme_get_wmm_uapsd_be_sus_intv(struct wlan_objmgr_psoc *psoc,
return wlan_mlme_get_wmm_uapsd_be_sus_intv(psoc, value);
}
+/**
+ * ucfg_mlme_get_wmm_dir_ac_bk() - Get TSPEC direction
+ * for BK
+ * @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: QDF Status
+ */
+static inline QDF_STATUS
+ucfg_mlme_get_wmm_dir_ac_bk(struct wlan_objmgr_psoc *psoc, uint8_t *value)
+{
+ return wlan_mlme_get_wmm_dir_ac_bk(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_wmm_nom_msdu_size_ac_be() - Get normal
+ * MSDU size for BE
+ * @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: QDF Status
+ */
+static inline QDF_STATUS
+ucfg_mlme_get_wmm_nom_msdu_size_ac_bk(struct wlan_objmgr_psoc *psoc,
+ uint16_t *value)
+{
+ return wlan_mlme_get_wmm_nom_msdu_size_ac_bk(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_wmm_mean_data_rate_ac_bk() - mean data
+ * rate for BK
+ * @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: QDF Status
+ */
+static inline QDF_STATUS
+ucfg_mlme_get_wmm_mean_data_rate_ac_bk(struct wlan_objmgr_psoc *psoc,
+ uint32_t *value)
+{
+ return wlan_mlme_get_wmm_mean_data_rate_ac_bk(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_wmm_min_phy_rate_ac_bk() - min PHY
+ * rate for BE
+ * @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: QDF Status
+ */
+static inline QDF_STATUS
+ucfg_mlme_get_wmm_min_phy_rate_ac_bk(struct wlan_objmgr_psoc *psoc,
+ uint32_t *value)
+{
+ return wlan_mlme_get_wmm_min_phy_rate_ac_bk(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_wmm_sba_ac_bk() - surplus bandwidth
+ * allowance for BE
+ * @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: QDF Status
+ */
+static inline QDF_STATUS
+ucfg_mlme_get_wmm_sba_ac_bk(struct wlan_objmgr_psoc *psoc, uint16_t *value)
+{
+ return wlan_mlme_get_wmm_sba_ac_bk(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_wmm_uapsd_bk_srv_intv() - Get Uapsd service
+ * interval for BK
+ * @psoc: pointer to psoc object
+ * @value: pointer to the value which will be filled for the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline QDF_STATUS
+ucfg_mlme_get_wmm_uapsd_bk_srv_intv(struct wlan_objmgr_psoc *psoc,
+ uint32_t *value)
+{
+ return wlan_mlme_get_wmm_uapsd_bk_srv_intv(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_wmm_uapsd_bk_sus_intv() - Get Uapsd suspension
+ * interval for BK
+ * @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: QDF Status
+ */
+static inline QDF_STATUS
+ucfg_mlme_get_wmm_uapsd_bk_sus_intv(struct wlan_objmgr_psoc *psoc,
+ uint32_t *value)
+{
+ return wlan_mlme_get_wmm_uapsd_bk_sus_intv(psoc, value);
+}
+
#endif /* _WLAN_MLME_UCFG_API_H_ */
diff --git a/mlme/dispatcher/src/wlan_mlme_api.c b/mlme/dispatcher/src/wlan_mlme_api.c
index c0bd5a64f6..76841212a9 100644
--- a/mlme/dispatcher/src/wlan_mlme_api.c
+++ b/mlme/dispatcher/src/wlan_mlme_api.c
@@ -908,6 +908,122 @@ QDF_STATUS wlan_mlme_get_wmm_uapsd_be_sus_intv(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
+QDF_STATUS
+wlan_mlme_get_wmm_dir_ac_bk(struct wlan_objmgr_psoc *psoc, uint8_t *value)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("Failed to get MLME Obj");
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ *value = mlme_obj->cfg.wmm_params.ac_bk.dir_ac_bk;
+
+ return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_wmm_nom_msdu_size_ac_bk(struct wlan_objmgr_psoc *psoc,
+ uint16_t *value)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("Failed to get MLME Obj");
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ *value = mlme_obj->cfg.wmm_params.ac_bk.nom_msdu_size_ac_bk;
+
+ return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+wlan_mlme_get_wmm_mean_data_rate_ac_bk(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) {
+ mlme_err("Failed to get MLME Obj");
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ *value = mlme_obj->cfg.wmm_params.ac_bk.mean_data_rate_ac_bk;
+
+ return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+wlan_mlme_get_wmm_min_phy_rate_ac_bk(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) {
+ mlme_err("Failed to get MLME Obj");
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ *value = mlme_obj->cfg.wmm_params.ac_bk.min_phy_rate_ac_bk;
+
+ return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+wlan_mlme_get_wmm_sba_ac_bk(struct wlan_objmgr_psoc *psoc, uint16_t *value)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("Failed to get MLME Obj");
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ *value = mlme_obj->cfg.wmm_params.ac_bk.sba_ac_bk;
+
+ return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+wlan_mlme_get_wmm_uapsd_bk_srv_intv(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) {
+ mlme_err("Failed to get MLME Obj");
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ *value = mlme_obj->cfg.wmm_params.ac_bk.uapsd_bk_srv_intv;
+
+ return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+wlan_mlme_get_wmm_uapsd_bk_sus_intv(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) {
+ mlme_err("Failed to get MLME Obj");
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ *value = mlme_obj->cfg.wmm_params.ac_bk.uapsd_bk_sus_intv;
+
+ return QDF_STATUS_SUCCESS;
+}
+
QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
int value)
{