diff options
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_tgt_cfg.h | 3 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_main.c | 3 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 6 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.h | 1 | ||||
| -rw-r--r-- | CORE/SYS/legacy/src/utils/src/parserApi.c | 10 |
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; } } |
