qcacmn: Add support for AoA data extraction

Extract AoA data from WMI_PEER_CFR_CAPTURE_EVENTID.

Change-Id: I827ef735f46a3ed1bed61fda2d9bd39fd631f40d
CRs-Fixed: 2502029
Esse commit está contido em:
Abhiram Jogadenu
2019-08-09 11:23:50 +05:30
commit de nshrivas
commit d465314ffd
2 arquivos alterados com 18 adições e 0 exclusões

Ver arquivo

@@ -7501,6 +7501,7 @@ struct vap_tidmap_prec_params {
* Each of these 8-bit RSSI reports is in dBm units. 0x80 means invalid.
* Unused bytes within used chain_rssi indices will be 0x80.
* Unused rssi_chain indices will be set to 0x80808080.
* @chain_phase: Per chain phase of peer for upto WMI_HOST_MAX_CHAINS.
*/
typedef struct {
uint32_t capture_method;
@@ -7518,6 +7519,7 @@ typedef struct {
uint32_t timestamp_us;
uint32_t counter;
uint32_t chain_rssi[WMI_HOST_MAX_CHAINS];
uint16_t chain_phase[WMI_HOST_MAX_CHAINS];
} wmi_cfr_peer_tx_event_param;
/**

Ver arquivo

@@ -11568,8 +11568,10 @@ static QDF_STATUS
extract_cfr_peer_tx_event_param_tlv(wmi_unified_t wmi_handle, void *evt_buf,
wmi_cfr_peer_tx_event_param *peer_tx_event)
{
int idx;
WMI_PEER_CFR_CAPTURE_EVENTID_param_tlvs *param_buf;
wmi_peer_cfr_capture_event_fixed_param *peer_tx_event_ev;
wmi_peer_cfr_capture_event_phase_fixed_param *chain_phase_ev;
param_buf = (WMI_PEER_CFR_CAPTURE_EVENTID_param_tlvs *)evt_buf;
if (!param_buf) {
@@ -11604,6 +11606,20 @@ extract_cfr_peer_tx_event_param_tlv(wmi_unified_t wmi_handle, void *evt_buf,
qdf_mem_copy(peer_tx_event->chain_rssi, peer_tx_event_ev->chain_rssi,
sizeof(peer_tx_event->chain_rssi));
chain_phase_ev = param_buf->phase_param;
if (chain_phase_ev) {
for (idx = 0; idx < WMI_HOST_MAX_CHAINS; idx++) {
/* Due to FW's alignment rules, phase information being
* passed is 32-bit, out of which only 16 bits is valid.
* Remaining bits are all zeroed. So direct mem copy
* will not work as it will copy extra zeroes into host
* structures.
*/
peer_tx_event->chain_phase[idx] =
(0xffff & chain_phase_ev->chain_phase[idx]);
}
}
return QDF_STATUS_SUCCESS;
}
#endif /* WLAN_CFR_ENABLE */