diff options
| author | spuligil <spuligil@codeaurora.org> | 2019-07-26 06:00:33 -0700 |
|---|---|---|
| committer | spuligil <spuligil@codeaurora.org> | 2019-07-26 06:00:33 -0700 |
| commit | 47ce4fa6151833ba23fcb9543c541a67748cf493 (patch) | |
| tree | 106e4cd1d9a6bb026c24a9fa03169f322616aeb7 | |
| parent | 4ca736d2a531fd90e2a04b2735def80f4ec38590 (diff) | |
fw-api: CL 7724664 - update fw common interface files
Change-Id: I78d2eec406d9b0a338c21b1f19902a2960b32dfc
WMI: add cfr_Capture_event_phase info to PEER_CFR_CAPTURE_EVENT msg
CRs-Fixed: 2262693
| -rwxr-xr-x | fw/wmi_tlv_defs.h | 4 | ||||
| -rwxr-xr-x | fw/wmi_unified.h | 50 | ||||
| -rwxr-xr-x | fw/wmi_version.h | 2 |
3 files changed, 47 insertions, 9 deletions
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 412b5957a449..e7e7681f129d 100755 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1001,6 +1001,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_get_elna_bypass_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_get_elna_bypass_event_fixed_param, WMITLV_TAG_STRUC_wmi_roam_pmkid_request_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_cfr_capture_event_phase_fixed_param, } WMITLV_TAG_ID; /* @@ -4012,7 +4013,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID); /* Peer CFR capture cmd */ #define WMITLV_TABLE_WMI_PEER_CFR_CAPTURE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_cfr_capture_cmd_fixed_param, wmi_peer_cfr_capture_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_cfr_capture_cmd_fixed_param, wmi_peer_cfr_capture_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_cfr_capture_event_phase_fixed_param, wmi_peer_cfr_capture_event_phase_fixed_param, phase_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CFR_CAPTURE_CMDID); /* CHANNEL WIDTH SWITCH commands for peers. */ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index f991ac4a6a35..5f6dc5ae7cf6 100755 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -4639,6 +4639,9 @@ typedef struct { #define WMI_TX_SEND_PARAM_FRAME_TYPE_GET(tx_param_dword1) WMI_GET_BITS(tx_param_dword1, 20, 1) #define WMI_TX_SEND_PARAM_FRAME_TYPE_SET(tx_param_dword1, value) WMI_SET_BITS(tx_param_dword1, 20, 1, value) +#define WMI_TX_SEND_PARAM_CFR_CAPTURE_GET(tx_param_dword1) WMI_GET_BITS(tx_param_dword1, 21, 1) +#define WMI_TX_SEND_PARAM_CFR_CAPTURE_SET(tx_param_dword1, value) WMI_SET_BITS(tx_param_dword1, 21, 1, value) + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_send_params */ @@ -4739,7 +4742,7 @@ typedef struct { /* chain_mask - specify which chains to transmit from * If not set, target will choose what chain_mask to use. */ - chain_mask: 8, + chain_mask: 8, /* The bits in this mask correspond to the values as below * bit 0 -> 5MHz @@ -4751,7 +4754,7 @@ typedef struct { * bit 6 -> 80_80MHz * If no bits are set, target can choose what BW to use. */ - bw_mask: 7, + bw_mask: 7, /* preamble_type_mask - * Specify which preamble types (CCK, OFDM, HT, VHT) the target @@ -4764,15 +4767,19 @@ typedef struct { * bit 4: if set, HE * If no bits are set, target can choose what preamble type to use. */ - preamble_type: 5, + preamble_type: 5, /* Data:1 Mgmt:0 */ - frame_type: 1, + frame_type: 1, - reserved1_31_21: 11; - }; - A_UINT32 tx_param_dword1; + /* Capture CFR when bit is set + */ + cfr_capture: 1, + + reserved1_31_22: 10; + }; + A_UINT32 tx_param_dword1; }; } wmi_tx_send_params; @@ -16962,6 +16969,8 @@ typedef enum { typedef enum { /* Send null frame on the requested bw and capture CFR on ACK */ WMI_PEER_CFR_CAPTURE_METHOD_NULL_FRAME = 0, + WMI_PEER_CFR_CAPTURE_METHOD_NULL_FRAME_WITH_PHASE = 1, + WMI_PEER_CFR_CAPTURE_METHOD_PROBE_RESP = 2, /* New methods to be added here */ WMI_PEER_CFR_CAPTURE_METHOD_MAX, } WMI_PEER_CFR_CAPTURE_METHOD; @@ -27184,6 +27193,33 @@ typedef struct { A_UINT32 chain_rssi[WMI_MAX_CHAINS]; } wmi_peer_cfr_capture_event_fixed_param; +#define WMI_UNIFIED_CHAIN_PHASE_MASK 0x0000ffff +#define WMI_UNIFIED_CHAIN_PHASE_GET(tlv, chain_idx) \ + ((A_UINT16) ((tlv)->chain_phase[chain_idx] & WMI_UNIFIED_CHAIN_PHASE_MASK)) +#define WMI_UNIFIED_CHAIN_PHASE_SET(tlv, chain_idx, value) \ + (tlv)->chain_phase[chain_idx] = (WMI_UNIFIED_CHAIN_PHASE_MASK & (value)) + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_cfr_capture_event_phase_fixed_param */ + A_UINT32 tlv_header; + + /* Per chain AoA phase data of the Peer, for up to WMI_MAX_CHAINS. + * USE WMI_UNIFIED_CHAIN_PHASE_GET to extract the phase value for + * a particular chain. + * Only lower 2 bytes will contain phase data for a particular chain. + * The values in phase data will be from 0 1023 as mapping of + * 0-359 degrees using the formula - + * phase data = phase in degrees * 1024 / 360 + * + * Target will set 0xFFFF for all invalid chains. + * + * The WMI_UNIFIED_CHAIN_PHASE_GET/SET macros can be used to access + * the valid portion of the 4-byte word containing the chain phase data. + */ + A_UINT32 chain_phase[WMI_MAX_CHAINS]; +} wmi_peer_cfr_capture_event_phase_fixed_param; + #define WMI_PEER_CFR_CAPTURE_EVT_STATUS_OK 0x80000000 #define WMI_PEER_CFR_CAPTURE_EVT_STATUS_OK_S 31 diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 9c23d555c391..e33a2dae56e5 100755 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -36,7 +36,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 700 +#define __WMI_REVISION_ 701 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work |
