qcacld-3.0: ADD MLME INI item of WMM Config
Add the WMM config ini config CFG_TL_DELAYED_TRGR_FRM_INT_NAME to MLME cfg. Introduce the basic infra APIs related to these configs from mlme. Change-Id: Ifaf8072a78f21760e00973e625d7c8e41d8b51a6 CRs-Fixed: 2361533
This commit is contained in:
@@ -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,
|
||||
|
@@ -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")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* 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
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#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 */
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* 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
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#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
|
||||
|
@@ -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 =
|
||||
|
@@ -149,28 +149,6 @@ enum hdd_dot11_mode {
|
||||
#define CFG_DOT11_MODE_DEFAULT eHDD_DOT11_MODE_11ax
|
||||
#define CFG_DOT11_MODE_MAX eHDD_DOT11_MODE_11ax
|
||||
|
||||
/* WMM configuration */
|
||||
/*
|
||||
* <ini>
|
||||
* 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
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
|
||||
#define CFG_TL_DELAYED_TRGR_FRM_INT_NAME "DelayedTriggerFrmInt"
|
||||
#define CFG_TL_DELAYED_TRGR_FRM_INT_MIN 1
|
||||
#define CFG_TL_DELAYED_TRGR_FRM_INT_MAX (4294967295UL)
|
||||
#define CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT 3000
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableSNRMonitoring - Enables SNR Monitoring
|
||||
@@ -289,8 +267,6 @@ struct hdd_config {
|
||||
/* Bitmap for operating voltage corner mode */
|
||||
uint32_t vc_mode_cfg_bitmap;
|
||||
#endif
|
||||
uint32_t DelayedTriggerFrmInt;
|
||||
|
||||
#ifdef ENABLE_MTRACE_LOG
|
||||
bool enable_mtrace;
|
||||
#endif
|
||||
|
@@ -63,13 +63,6 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_DOT11_MODE_MIN,
|
||||
CFG_DOT11_MODE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TL_DELAYED_TRGR_FRM_INT_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, DelayedTriggerFrmInt,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT,
|
||||
CFG_TL_DELAYED_TRGR_FRM_INT_MIN,
|
||||
CFG_TL_DELAYED_TRGR_FRM_INT_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_ENABLE_SNR_MONITORING_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fEnableSNRMonitoring,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
|
||||
|
@@ -123,6 +123,7 @@ static void hdd_wmm_enable_tl_uapsd(struct hdd_wmm_qos_context *pQosContext)
|
||||
uint32_t suspension_interval;
|
||||
enum sme_qos_wmm_dir_type direction;
|
||||
bool psb;
|
||||
uint32_t delayed_trgr_frm_int;
|
||||
|
||||
/* The TSPEC must be valid */
|
||||
if (pAc->wmmAcTspecValid == false) {
|
||||
@@ -155,6 +156,9 @@ static void hdd_wmm_enable_tl_uapsd(struct hdd_wmm_qos_context *pQosContext)
|
||||
hdd_debug("No change in U-APSD parameters");
|
||||
return;
|
||||
}
|
||||
|
||||
ucfg_mlme_get_tl_delayed_trgr_frm_int(hdd_ctx->psoc,
|
||||
&delayed_trgr_frm_int);
|
||||
/* everything is in place to notify TL */
|
||||
status =
|
||||
sme_enable_uapsd_for_ac((WLAN_HDD_GET_STATION_CTX_PTR(adapter))->
|
||||
@@ -163,7 +167,7 @@ static void hdd_wmm_enable_tl_uapsd(struct hdd_wmm_qos_context *pQosContext)
|
||||
pAc->wmmAcTspecInfo.ts_info.up,
|
||||
service_interval, suspension_interval,
|
||||
direction, psb, adapter->vdev_id,
|
||||
hdd_ctx->config->DelayedTriggerFrmInt);
|
||||
delayed_trgr_frm_int);
|
||||
|
||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||
hdd_err("Failed to enable U-APSD for AC=%d", acType);
|
||||
@@ -2005,6 +2009,7 @@ QDF_STATUS hdd_wmm_assoc(struct hdd_adapter *adapter,
|
||||
uint32_t srv_value = 0;
|
||||
uint32_t sus_value = 0;
|
||||
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
uint32_t delayed_trgr_frm_int;
|
||||
|
||||
/* when we associate we need to notify TL if it needs to
|
||||
* enable UAPSD for any access categories
|
||||
@@ -2032,6 +2037,9 @@ QDF_STATUS hdd_wmm_assoc(struct hdd_adapter *adapter,
|
||||
|
||||
hdd_debug("U-APSD mask is 0x%02x", (int)uapsdMask);
|
||||
|
||||
ucfg_mlme_get_tl_delayed_trgr_frm_int(hdd_ctx->psoc,
|
||||
&delayed_trgr_frm_int);
|
||||
|
||||
if (uapsdMask & HDD_AC_VO) {
|
||||
status = ucfg_mlme_get_wmm_uapsd_vo_srv_intv(hdd_ctx->psoc,
|
||||
&srv_value);
|
||||
@@ -2052,7 +2060,7 @@ QDF_STATUS hdd_wmm_assoc(struct hdd_adapter *adapter,
|
||||
SME_AC_VO, 7, 7, srv_value, sus_value,
|
||||
SME_QOS_WMM_TS_DIR_BOTH, 1,
|
||||
adapter->vdev_id,
|
||||
hdd_ctx->config->DelayedTriggerFrmInt);
|
||||
delayed_trgr_frm_int);
|
||||
|
||||
QDF_ASSERT(QDF_IS_STATUS_SUCCESS(status));
|
||||
}
|
||||
@@ -2077,7 +2085,7 @@ QDF_STATUS hdd_wmm_assoc(struct hdd_adapter *adapter,
|
||||
SME_AC_VI, 5, 5, srv_value, sus_value,
|
||||
SME_QOS_WMM_TS_DIR_BOTH, 1,
|
||||
adapter->vdev_id,
|
||||
hdd_ctx->config->DelayedTriggerFrmInt);
|
||||
delayed_trgr_frm_int);
|
||||
|
||||
QDF_ASSERT(QDF_IS_STATUS_SUCCESS(status));
|
||||
}
|
||||
@@ -2102,7 +2110,7 @@ QDF_STATUS hdd_wmm_assoc(struct hdd_adapter *adapter,
|
||||
SME_AC_BK, 2, 2, srv_value, sus_value,
|
||||
SME_QOS_WMM_TS_DIR_BOTH, 1,
|
||||
adapter->vdev_id,
|
||||
hdd_ctx->config->DelayedTriggerFrmInt);
|
||||
delayed_trgr_frm_int);
|
||||
|
||||
QDF_ASSERT(QDF_IS_STATUS_SUCCESS(status));
|
||||
}
|
||||
@@ -2127,7 +2135,7 @@ QDF_STATUS hdd_wmm_assoc(struct hdd_adapter *adapter,
|
||||
SME_AC_BE, 3, 3, srv_value, sus_value,
|
||||
SME_QOS_WMM_TS_DIR_BOTH, 1,
|
||||
adapter->vdev_id,
|
||||
hdd_ctx->config->DelayedTriggerFrmInt);
|
||||
delayed_trgr_frm_int);
|
||||
|
||||
QDF_ASSERT(QDF_IS_STATUS_SUCCESS(status));
|
||||
}
|
||||
|
Reference in New Issue
Block a user