|
@@ -1885,6 +1885,7 @@ void hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
|
|
mac_handle_t mac_handle;
|
|
mac_handle_t mac_handle;
|
|
bool bval = false;
|
|
bool bval = false;
|
|
uint8_t value = 0;
|
|
uint8_t value = 0;
|
|
|
|
+ uint32_t fine_time_meas_cap = 0;
|
|
|
|
|
|
if (!hdd_ctx) {
|
|
if (!hdd_ctx) {
|
|
hdd_err("HDD context is NULL");
|
|
hdd_err("HDD context is NULL");
|
|
@@ -2051,10 +2052,19 @@ void hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
|
|
hdd_update_hw_dbs_capable(hdd_ctx);
|
|
hdd_update_hw_dbs_capable(hdd_ctx);
|
|
hdd_ctx->dynamic_nss_chains_support =
|
|
hdd_ctx->dynamic_nss_chains_support =
|
|
cfg->dynamic_nss_chains_support;
|
|
cfg->dynamic_nss_chains_support;
|
|
- hdd_ctx->config->fine_time_meas_cap &= cfg->fine_time_measurement_cap;
|
|
|
|
|
|
+ ucfg_mlme_get_fine_time_meas_cap(hdd_ctx->psoc, &fine_time_meas_cap);
|
|
|
|
+ fine_time_meas_cap &= cfg->fine_time_measurement_cap;
|
|
|
|
+ status = ucfg_mlme_set_fine_time_meas_cap(hdd_ctx->psoc,
|
|
|
|
+ fine_time_meas_cap);
|
|
|
|
+ if (QDF_IS_STATUS_ERROR(status)) {
|
|
|
|
+ hdd_err("failed to set fine_time_meas_cap, 0x%x, ox%x",
|
|
|
|
+ fine_time_meas_cap, cfg->fine_time_measurement_cap);
|
|
|
|
+ ucfg_mlme_get_fine_time_meas_cap(hdd_ctx->psoc,
|
|
|
|
+ &fine_time_meas_cap);
|
|
|
|
+ }
|
|
|
|
+
|
|
hdd_ctx->fine_time_meas_cap_target = cfg->fine_time_measurement_cap;
|
|
hdd_ctx->fine_time_meas_cap_target = cfg->fine_time_measurement_cap;
|
|
- hdd_debug("fine_time_meas_cap: 0x%x",
|
|
|
|
- hdd_ctx->config->fine_time_meas_cap);
|
|
|
|
|
|
+ hdd_debug("fine_time_meas_cap: 0x%x", fine_time_meas_cap);
|
|
|
|
|
|
status = ucfg_mlme_get_vht_enable2x2(hdd_ctx->psoc, &bval);
|
|
status = ucfg_mlme_get_vht_enable2x2(hdd_ctx->psoc, &bval);
|
|
if (!QDF_IS_STATUS_SUCCESS(status))
|
|
if (!QDF_IS_STATUS_SUCCESS(status))
|
|
@@ -9580,6 +9590,7 @@ int hdd_start_ap_adapter(struct hdd_adapter *adapter)
|
|
bool is_ssr = false;
|
|
bool is_ssr = false;
|
|
int ret;
|
|
int ret;
|
|
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
|
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
|
|
|
+ uint32_t fine_time_meas_cap = 0;
|
|
|
|
|
|
hdd_enter();
|
|
hdd_enter();
|
|
|
|
|
|
@@ -9609,12 +9620,14 @@ int hdd_start_ap_adapter(struct hdd_adapter *adapter)
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
- if (adapter->device_mode == QDF_SAP_MODE)
|
|
|
|
|
|
+ if (adapter->device_mode == QDF_SAP_MODE) {
|
|
|
|
+ ucfg_mlme_get_fine_time_meas_cap(hdd_ctx->psoc,
|
|
|
|
+ &fine_time_meas_cap);
|
|
sme_cli_set_command(adapter->session_id,
|
|
sme_cli_set_command(adapter->session_id,
|
|
WMI_VDEV_PARAM_ENABLE_DISABLE_RTT_RESPONDER_ROLE,
|
|
WMI_VDEV_PARAM_ENABLE_DISABLE_RTT_RESPONDER_ROLE,
|
|
- (bool)(hdd_ctx->config->fine_time_meas_cap &
|
|
|
|
- WMI_FW_AP_RTT_RESPR),
|
|
|
|
|
|
+ (bool)(fine_time_meas_cap & WMI_FW_AP_RTT_RESPR),
|
|
VDEV_CMD);
|
|
VDEV_CMD);
|
|
|
|
+ }
|
|
|
|
|
|
status = hdd_init_ap_mode(adapter, is_ssr);
|
|
status = hdd_init_ap_mode(adapter, is_ssr);
|
|
|
|
|