summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspuligil <spuligil@codeaurora.org>2019-07-26 06:00:33 -0700
committerspuligil <spuligil@codeaurora.org>2019-07-26 06:00:33 -0700
commit47ce4fa6151833ba23fcb9543c541a67748cf493 (patch)
tree106e4cd1d9a6bb026c24a9fa03169f322616aeb7
parent4ca736d2a531fd90e2a04b2735def80f4ec38590 (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-xfw/wmi_tlv_defs.h4
-rwxr-xr-xfw/wmi_unified.h50
-rwxr-xr-xfw/wmi_version.h2
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