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:
@@ -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;
|
||||
|
||||
/**
|
||||
|
@@ -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 */
|
||||
|
Referência em uma nova issue
Block a user