qcacmn: Extract AoA phase delta parameters
Add API to extract AoA phase delta and IbfCalValues from WMI event. Also Add service bit to support the feature Change-Id: I6f6514711345dd47c4be3673b8c40501feb763e9
This commit is contained in:

committed by
Madan Koyyalamudi

parent
42c3f92bf4
commit
378a3b351e
@@ -227,6 +227,57 @@ static QDF_STATUS send_cfr_rcc_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef REPORT_AOA_FOR_RCC
|
||||||
|
static QDF_STATUS
|
||||||
|
extract_cfr_phase_param_tlv(wmi_unified_t wmi_handle,
|
||||||
|
void *evt_buf,
|
||||||
|
struct wmi_cfr_phase_delta_param *param)
|
||||||
|
{
|
||||||
|
WMI_PDEV_AOA_PHASEDELTA_EVENTID_param_tlvs *param_buf;
|
||||||
|
wmi_pdev_aoa_phasedelta_evt_fixed_param *phase_event;
|
||||||
|
|
||||||
|
param_buf = (WMI_PDEV_AOA_PHASEDELTA_EVENTID_param_tlvs *)evt_buf;
|
||||||
|
if (!param_buf) {
|
||||||
|
wmi_err("Invalid cfr aoa phase delta buffer");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
phase_event = param_buf->fixed_param;
|
||||||
|
if (!phase_event) {
|
||||||
|
wmi_err("CFR phase AoA delta buffer is NULL");
|
||||||
|
return QDF_STATUS_E_NULL_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
param->freq = phase_event->freq;
|
||||||
|
param->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host
|
||||||
|
(wmi_handle, phase_event->pdev_id);
|
||||||
|
|
||||||
|
param->max_chains = phase_event->chainInfo & 0xFFFF;
|
||||||
|
|
||||||
|
param->chain_phase_mask = (phase_event->chainInfo >> 16) & 0xFFFF;
|
||||||
|
|
||||||
|
qdf_mem_copy(param->ibf_cal_val,
|
||||||
|
phase_event->perChainIbfCalVal,
|
||||||
|
(sizeof(uint32_t) * WMI_MAX_CHAINS_FOR_AOA_RCC));
|
||||||
|
|
||||||
|
qdf_mem_copy(param->phase_delta,
|
||||||
|
phase_event->phasedelta,
|
||||||
|
(sizeof(uint32_t) *
|
||||||
|
WMI_MAX_CHAINS_FOR_AOA_RCC *
|
||||||
|
MAX_AOA_PHASEDELTA));
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static QDF_STATUS
|
||||||
|
extract_cfr_phase_param_tlv(wmi_unified_t wmi_handle,
|
||||||
|
void *evt_buf,
|
||||||
|
struct wmi_cfr_phase_delta_param *param)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_E_NOSUPPORT;
|
||||||
|
}
|
||||||
|
#endif /* REPORT_AOA_FOR_RCC */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static QDF_STATUS send_peer_cfr_capture_cmd_tlv(wmi_unified_t wmi_handle,
|
static QDF_STATUS send_peer_cfr_capture_cmd_tlv(wmi_unified_t wmi_handle,
|
||||||
@@ -286,6 +337,7 @@ void wmi_cfr_attach_tlv(wmi_unified_t wmi_handle)
|
|||||||
ops->send_peer_cfr_capture_cmd = send_peer_cfr_capture_cmd_tlv;
|
ops->send_peer_cfr_capture_cmd = send_peer_cfr_capture_cmd_tlv;
|
||||||
ops->extract_cfr_peer_tx_event_param =
|
ops->extract_cfr_peer_tx_event_param =
|
||||||
extract_cfr_peer_tx_event_param_tlv;
|
extract_cfr_peer_tx_event_param_tlv;
|
||||||
|
ops->extract_cfr_phase_param = extract_cfr_phase_param_tlv;
|
||||||
wmi_enh_cfr_attach_tlv(wmi_handle);
|
wmi_enh_cfr_attach_tlv(wmi_handle);
|
||||||
}
|
}
|
||||||
#endif /* WLAN_CFR_ENABLE */
|
#endif /* WLAN_CFR_ENABLE */
|
||||||
|
@@ -16037,6 +16037,10 @@ event_ids[wmi_roam_scan_chan_list_id] =
|
|||||||
#endif
|
#endif
|
||||||
event_ids[wmi_pdev_get_halphy_cal_status_event_id] =
|
event_ids[wmi_pdev_get_halphy_cal_status_event_id] =
|
||||||
WMI_PDEV_GET_HALPHY_CAL_STATUS_EVENTID;
|
WMI_PDEV_GET_HALPHY_CAL_STATUS_EVENTID;
|
||||||
|
#ifdef REPORT_AOA_FOR_RCC
|
||||||
|
event_ids[wmi_pdev_aoa_phasedelta_event_id] =
|
||||||
|
WMI_PDEV_AOA_PHASEDELTA_EVENTID;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
||||||
@@ -16451,6 +16455,10 @@ static void populate_tlv_service(uint32_t *wmi_service)
|
|||||||
WMI_SERVICE_RTT_AP_INITIATOR_STAGGERED_MODE_SUPPORTED;
|
WMI_SERVICE_RTT_AP_INITIATOR_STAGGERED_MODE_SUPPORTED;
|
||||||
wmi_service[wmi_service_rtt_ap_initiator_bursted_mode_supported] =
|
wmi_service[wmi_service_rtt_ap_initiator_bursted_mode_supported] =
|
||||||
WMI_SERVICE_RTT_AP_INITIATOR_BURSTED_MODE_SUPPORTED;
|
WMI_SERVICE_RTT_AP_INITIATOR_BURSTED_MODE_SUPPORTED;
|
||||||
|
#ifdef REPORT_AOA_FOR_RCC
|
||||||
|
wmi_service[wmi_service_aoa_for_rcc_supported] =
|
||||||
|
WMI_SERVICE_AOA_FOR_RCC_SUPPORTED;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user