qcacmn: Add support for AoA data extraction
Extract AoA data from WMI_PEER_CFR_CAPTURE_EVENTID. Change-Id: I827ef735f46a3ed1bed61fda2d9bd39fd631f40d CRs-Fixed: 2502029
This commit is contained in:

committed by
nshrivas

parent
8c730b08c0
commit
d465314ffd
@@ -7501,6 +7501,7 @@ struct vap_tidmap_prec_params {
|
|||||||
* Each of these 8-bit RSSI reports is in dBm units. 0x80 means invalid.
|
* 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 bytes within used chain_rssi indices will be 0x80.
|
||||||
* Unused rssi_chain indices will be set to 0x80808080.
|
* Unused rssi_chain indices will be set to 0x80808080.
|
||||||
|
* @chain_phase: Per chain phase of peer for upto WMI_HOST_MAX_CHAINS.
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint32_t capture_method;
|
uint32_t capture_method;
|
||||||
@@ -7518,6 +7519,7 @@ typedef struct {
|
|||||||
uint32_t timestamp_us;
|
uint32_t timestamp_us;
|
||||||
uint32_t counter;
|
uint32_t counter;
|
||||||
uint32_t chain_rssi[WMI_HOST_MAX_CHAINS];
|
uint32_t chain_rssi[WMI_HOST_MAX_CHAINS];
|
||||||
|
uint16_t chain_phase[WMI_HOST_MAX_CHAINS];
|
||||||
} wmi_cfr_peer_tx_event_param;
|
} wmi_cfr_peer_tx_event_param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -11568,8 +11568,10 @@ static QDF_STATUS
|
|||||||
extract_cfr_peer_tx_event_param_tlv(wmi_unified_t wmi_handle, void *evt_buf,
|
extract_cfr_peer_tx_event_param_tlv(wmi_unified_t wmi_handle, void *evt_buf,
|
||||||
wmi_cfr_peer_tx_event_param *peer_tx_event)
|
wmi_cfr_peer_tx_event_param *peer_tx_event)
|
||||||
{
|
{
|
||||||
|
int idx;
|
||||||
WMI_PEER_CFR_CAPTURE_EVENTID_param_tlvs *param_buf;
|
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_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;
|
param_buf = (WMI_PEER_CFR_CAPTURE_EVENTID_param_tlvs *)evt_buf;
|
||||||
if (!param_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,
|
qdf_mem_copy(peer_tx_event->chain_rssi, peer_tx_event_ev->chain_rssi,
|
||||||
sizeof(peer_tx_event->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;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
#endif /* WLAN_CFR_ENABLE */
|
#endif /* WLAN_CFR_ENABLE */
|
||||||
|
Reference in New Issue
Block a user