summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/HDD/inc/wlan_hdd_tgt_cfg.h3
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c3
-rw-r--r--CORE/SERVICES/WMA/wma.c6
-rw-r--r--CORE/SERVICES/WMA/wma.h1
-rw-r--r--CORE/SYS/legacy/src/utils/src/parserApi.c10
5 files changed, 15 insertions, 8 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_tgt_cfg.h b/CORE/HDD/inc/wlan_hdd_tgt_cfg.h
index 1821da3f2040..ae3d1c3d52ab 100644
--- a/CORE/HDD/inc/wlan_hdd_tgt_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_tgt_cfg.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2015 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -108,6 +108,7 @@ struct hdd_tgt_cfg {
#ifdef FEATURE_GREEN_AP
bool egap_support;
#endif
+ uint32_t fine_time_measurement_cap;
};
struct hdd_dfs_radar_ind {
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 218435ae0913..caf62fe30820 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -8768,6 +8768,9 @@ void hdd_update_tgt_cfg(void *context, void *param)
HDD_ANTENNA_MODE_2X2 : HDD_ANTENNA_MODE_1X1;
hddLog(LOG1, FL("Current antenna mode: %d"),
hdd_ctx->current_antenna_mode);
+ hdd_ctx->cfg_ini->fine_time_meas_cap &= cfg->fine_time_measurement_cap;
+ hddLog(LOG1, FL("fine_time_measurement_cap: 0x%x"),
+ hdd_ctx->cfg_ini->fine_time_meas_cap);
}
/* This function is invoked in atomic context when a radar
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 0316c2de27df..6751637c0ae6 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -30963,7 +30963,8 @@ static void wma_update_hdd_cfg(tp_wma_handle wma_handle)
hdd_tgt_cfg.lpss_support = wma_handle->lpss_support;
#endif
hdd_tgt_cfg.ap_arpns_support = wma_handle->ap_arpns_support;
-
+ hdd_tgt_cfg.fine_time_measurement_cap =
+ wma_handle->fine_time_measurement_cap;
wma_setup_egap_support(&hdd_tgt_cfg, wma_handle);
wma_handle->tgt_cfg_update_cb(hdd_ctx, &hdd_tgt_cfg);
}
@@ -31123,7 +31124,8 @@ v_VOID_t wma_rx_service_ready_event(WMA_HANDLE handle, void *cmd_param_info)
wma_handle->txrx_chainmask = ev->txrx_chainmask;
wma_handle->target_fw_version = ev->fw_build_vers;
-
+ wma_handle->fine_time_measurement_cap = ev->wmi_fw_sub_feat_caps;
+ WMA_LOGD(FL("FW fine time meas cap: 0x%x"), ev->wmi_fw_sub_feat_caps);
WMA_LOGE("%s: Firmware build version : %08x",
__func__, ev->fw_build_vers);
diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h
index 07f59cea4223..2ac7b536052f 100644
--- a/CORE/SERVICES/WMA/wma.h
+++ b/CORE/SERVICES/WMA/wma.h
@@ -851,6 +851,7 @@ typedef struct wma_handle {
uint16_t max_mgmt_tx_fail_count;
struct wma_runtime_pm_context runtime_context;
+ uint32_t fine_time_measurement_cap;
}t_wma_handle, *tp_wma_handle;
struct wma_target_cap {
diff --git a/CORE/SYS/legacy/src/utils/src/parserApi.c b/CORE/SYS/legacy/src/utils/src/parserApi.c
index 8c42380733a2..ca41fea99ba9 100644
--- a/CORE/SYS/legacy/src/utils/src/parserApi.c
+++ b/CORE/SYS/legacy/src/utils/src/parserApi.c
@@ -1183,18 +1183,18 @@ PopulateDot11fExtCap(tpAniSirGlobal pMac,
return eSIR_FAILURE;
}
- if (val) // If set to true then set RTTv3
+ if (val)
{
if (!psessionEntry || LIM_IS_STA_ROLE(psessionEntry)) {
p_ext_cap->fine_time_meas_initiator =
- (pMac->fine_time_meas_cap & FINE_TIME_MEAS_STA_INITIATOR) ? 1 : 0;
+ (pMac->fine_time_meas_cap & WMI_FW_STA_RTT_INITR) ? 1 : 0;
p_ext_cap->fine_time_meas_responder =
- (pMac->fine_time_meas_cap & FINE_TIME_MEAS_STA_RESPONDER) ? 1 : 0;
+ (pMac->fine_time_meas_cap & WMI_FW_STA_RTT_RESPR) ? 1 : 0;
} else if (LIM_IS_AP_ROLE(psessionEntry)) {
p_ext_cap->fine_time_meas_initiator =
- (pMac->fine_time_meas_cap & FINE_TIME_MEAS_SAP_INITIATOR) ? 1 : 0;
+ (pMac->fine_time_meas_cap & WMI_FW_AP_RTT_INITR) ? 1 : 0;
p_ext_cap->fine_time_meas_responder =
- (pMac->fine_time_meas_cap & FINE_TIME_MEAS_SAP_RESPONDER) ? 1 : 0;
+ (pMac->fine_time_meas_cap & WMI_FW_AP_RTT_RESPR) ? 1 : 0;
}
}