diff options
| author | Selvaraj, Sridhar <sselvara@codeaurora.org> | 2017-01-20 17:06:34 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-02-24 06:15:30 -0800 |
| commit | 8ac2f4363e2e9516f9eb30ac86eeac05319711ce (patch) | |
| tree | 7769c34047ed3d09c51f44ec946c785a21dea8f0 | |
| parent | 247cc865c8fa1e6b94a87e6480646f712898c781 (diff) | |
qcacld-3.0: Add "g_fils_max_chan_guard_time" INI and pass it to firmware
Add "g_fils_max_chan_guard_time" INI and pass the configured value
to firmware for STA vdev as part of vdev attach. Based on this INI,
firmware will calculate the dwell time while sending in probe request.
Change-Id: I2336a7e0a37181ea00ef117e9907e7eaf194ae3d
CRs-Fixed: 1114057
| -rw-r--r-- | core/hdd/inc/wlan_hdd_cfg.h | 23 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_cfg.c | 8 | ||||
| -rw-r--r-- | core/sme/inc/csr_api.h | 1 | ||||
| -rw-r--r-- | core/sme/inc/csr_internal.h | 1 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_api_roam.c | 6 | ||||
| -rw-r--r-- | core/wma/inc/wma_if.h | 2 | ||||
| -rw-r--r-- | core/wma/src/wma_dev_if.c | 8 |
7 files changed, 49 insertions, 0 deletions
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index 61aa45bfcd88..42552d518fb5 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -9620,6 +9620,28 @@ enum dot11p_mode { #define CFG_QCN_IE_SUPPORT_MAX 1 #define CFG_QCN_IE_SUPPORT_DEFAULT 0 +/* + * <ini> + * g_fils_max_chan_guard_time - Set maximum channel guard time(ms) + * @Min: 0 + * @Max: 10 + * @Default: 0 + * + * This ini is used to set maximum channel guard time in milli seconds + * + * Related: None + * + * Supported Feature: FILS + * + * Usage: External + * + * </ini> + */ +#define CFG_FILS_MAX_CHAN_GUARD_TIME_NAME "g_fils_max_chan_guard_time" +#define CFG_FILS_MAX_CHAN_GUARD_TIME_MIN (0) +#define CFG_FILS_MAX_CHAN_GUARD_TIME_MAX (10) +#define CFG_FILS_MAX_CHAN_GUARD_TIME_DEFAULT (0) + /*--------------------------------------------------------------------------- Type declarations -------------------------------------------------------------------------*/ @@ -10330,6 +10352,7 @@ struct hdd_config { bool sap_internal_restart; bool enable_bcast_probe_rsp; bool qcn_ie_support; + uint8_t fils_max_chan_guard_time; }; #define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var)) diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index 232001926ae4..91ec80b5c791 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -4291,6 +4291,12 @@ REG_TABLE_ENTRY g_registry_table[] = { CFG_QCN_IE_SUPPORT_DEFAULT, CFG_QCN_IE_SUPPORT_MIN, CFG_QCN_IE_SUPPORT_MAX), + REG_VARIABLE(CFG_FILS_MAX_CHAN_GUARD_TIME_NAME, WLAN_PARAM_Integer, + struct hdd_config, fils_max_chan_guard_time, + VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, + CFG_FILS_MAX_CHAN_GUARD_TIME_DEFAULT, + CFG_FILS_MAX_CHAN_GUARD_TIME_MIN, + CFG_FILS_MAX_CHAN_GUARD_TIME_MAX), }; /** @@ -7327,6 +7333,8 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx) pHddCtx->config->enable_bcast_probe_rsp; smeConfig->csrConfig.qcn_ie_support = pHddCtx->config->qcn_ie_support; + smeConfig->csrConfig.fils_max_chan_guard_time = + pHddCtx->config->fils_max_chan_guard_time; status = sme_update_config(pHddCtx->hHal, smeConfig); if (!QDF_IS_STATUS_SUCCESS(status)) { diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 9e70e4375b58..a069f5861d77 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -1315,6 +1315,7 @@ typedef struct tagCsrConfigParam { struct wmi_per_roam_config per_roam_config; bool enable_bcast_probe_rsp; bool qcn_ie_support; + uint8_t fils_max_chan_guard_time; } tCsrConfigParam; /* Tush */ diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h index 6f5af6a2a538..f58dbcf52c85 100644 --- a/core/sme/inc/csr_internal.h +++ b/core/sme/inc/csr_internal.h @@ -665,6 +665,7 @@ typedef struct tagCsrConfig { struct wmi_per_roam_config per_roam_config; bool enable_bcast_probe_rsp; bool qcn_ie_support; + uint8_t fils_max_chan_guard_time; } tCsrConfig; typedef struct tagCsrChannelPowerInfo { diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 01aad375ca0e..b2167089d731 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -2626,6 +2626,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac, pParam->enable_bcast_probe_rsp; pMac->roam.configParam.qcn_ie_support = pParam->qcn_ie_support; + pMac->roam.configParam.fils_max_chan_guard_time = + pParam->fils_max_chan_guard_time; } return status; @@ -2864,6 +2866,8 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam) pMac->roam.configParam.enable_bcast_probe_rsp; pParam->qcn_ie_support = pMac->roam.configParam.qcn_ie_support; + pParam->fils_max_chan_guard_time = + pMac->roam.configParam.fils_max_chan_guard_time; return QDF_STATUS_SUCCESS; } @@ -15409,6 +15413,8 @@ QDF_STATUS csr_process_add_sta_session_command(tpAniSirGlobal pMac, pMac->roam.configParam.rx_aggregation_size; add_sta_self_req->enable_bcast_probe_rsp = pMac->roam.configParam.enable_bcast_probe_rsp; + add_sta_self_req->fils_max_chan_guard_time = + pMac->roam.configParam.fils_max_chan_guard_time; msg.type = WMA_ADD_STA_SELF_REQ; msg.reserved = 0; diff --git a/core/wma/inc/wma_if.h b/core/wma/inc/wma_if.h index 5ce20c4c4272..ad68492d4209 100644 --- a/core/wma/inc/wma_if.h +++ b/core/wma/inc/wma_if.h @@ -1149,6 +1149,7 @@ typedef struct sMaxTxPowerPerBandParams { * @tx_aggregation_size: Tx aggregation size * @rx_aggregation_size: Rx aggregation size * @enable_bcast_probe_rsp: enable broadcast probe response + * @fils_max_chan_guard_time: FILS max channel guard time */ struct add_sta_self_params { tSirMacAddr self_mac_addr; @@ -1162,6 +1163,7 @@ struct add_sta_self_params { uint32_t tx_aggregation_size; uint32_t rx_aggregation_size; bool enable_bcast_probe_rsp; + uint8_t fils_max_chan_guard_time; }; /** diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 1c2eb15cb784..3ddd0fce2fca 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -1897,6 +1897,14 @@ ol_txrx_vdev_handle wma_vdev_attach(tp_wma_handle wma_handle, if (QDF_IS_STATUS_ERROR(ret)) WMA_LOGE("Failed to set WMI_VDEV_PARAM_ENABLE_BCAST_PROBE_RESPONSE"); + /* Pass down the FILS max channel guard time to FW */ + ret = wma_vdev_set_param( + wma_handle->wmi_handle, + self_sta_req->session_id, + WMI_VDEV_PARAM_FILS_MAX_CHANNEL_GUARD_TIME, + self_sta_req->fils_max_chan_guard_time); + if (QDF_IS_STATUS_ERROR(ret)) + WMA_LOGE("Failed to set WMI_VDEV_PARAM_FILS_MAX_CHANNEL_GUARD_TIME"); } /* Initialize BMISS parameters */ |
