diff options
| author | Sandeep Puligilla <spuligil@codeaurora.org> | 2017-03-09 11:01:11 -0800 |
|---|---|---|
| committer | Sandeep Puligilla <spuligil@codeaurora.org> | 2017-03-16 06:54:06 -0700 |
| commit | f186655939ba41a0eed147aaec5265d2c494ab4b (patch) | |
| tree | c7931e4a8cd04f0d00c72761ac1d5c16552f5556 | |
| parent | 32fd566d95c982fb2ae040ba435e43ec25e526ff (diff) | |
fw-api: CL 2914574 - update fw common interface files
rx PHY err RSSI values for chains 4-7
Change-Id: I126748318904565d6229a2209e810b9246c00ce4
CRs-Fixed: 1107600
| -rwxr-xr-x | fw/wmi_tlv_defs.h | 8 | ||||
| -rwxr-xr-x | fw/wmi_unified.h | 67 | ||||
| -rwxr-xr-x | fw/wmi_version.h | 2 |
3 files changed, 74 insertions, 3 deletions
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 6991c3c17dea..a7d03cfef2b9 100755 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -809,6 +809,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_vdev_get_arp_stats_event_fixed_param, WMITLV_TAG_STRUC_wmi_iface_offload_stats, WMITLV_TAG_STRUC_wmi_request_stats_cmd_sub_struc_param, + WMITLV_TAG_STRUC_rssi_ctl_ext, + WMITLV_TAG_STRUC_wmi_single_phyerr_ext_rx_hdr, } WMITLV_TAG_ID; /* @@ -3377,7 +3379,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_CHAN_INFO_EVENTID); /* Phy Error Event */ #define WMITLV_TABLE_WMI_PHYERR_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_comb_phyerr_rx_hdr, wmi_comb_phyerr_rx_hdr, hdr, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_single_phyerr_ext_rx_hdr, single_phyerr_ext, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PHYERR_EVENTID); /* TX Pause/Unpause event */ @@ -3425,7 +3428,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STA_KICKOUT_EVENTID); /* Management Rx Event */ #define WMITLV_TABLE_WMI_MGMT_RX_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr, wmi_mgmt_rx_hdr, hdr, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rssi_ctl_ext, rssi_ctl_ext, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_EVENTID); /* TBTT offset Event */ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index e05b6046b485..066f40d3280d 100755 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -3040,6 +3040,7 @@ typedef struct { /** flag indicating that the the mgmt frame (probe req/beacon) is received in the context of matched network by FW ENLO */ #define WMI_MGMT_RX_HDR_ENLO 0x02 +#define MAX_ANTENNA_EIGHT 8 typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr */ @@ -3089,8 +3090,22 @@ typedef struct { /* This TLV is followed by array of bytes: * A_UINT8 bufp[]; <-- management frame buffer */ +/* This TLV is optionally followed by array of struct: + * wmi_rssi_ctl_ext rssi_ctl_ext; + */ } wmi_mgmt_rx_hdr; +/* + * Instead of universally increasing the RX_HDR_HEADROOM size which may cause problems for older targets, + * this new ext_hdr can be used for extending the header and will be only applicable for new targets. + */ +typedef struct +{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_rssi_ctl_ext */ + /** RSSI of PRI 20MHz for each chain, in dB w.r.t. noise floor */ + A_UINT32 rssi_ctl_ext[MAX_ANTENNA_EIGHT - ATH_MAX_ANTENNA]; +} wmi_rssi_ctl_ext; + typedef struct { /** TSF timestamp */ A_UINT32 tsf_timestamp; @@ -3151,6 +3166,41 @@ typedef struct { A_UINT32 buf_len; } wmi_single_phyerr_rx_hdr; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_single_phyerr_ext_rx_hdr */ + /** + * RSSI on chain 4 through 7 in dB w.r.t noise floor. + * + * This is formatted the same as the PPDU_START RX descriptor + * field: + * + * [7:0]: pri20 + * [15:8]: sec20 + * [23:16]: sec40 + * [31:24]: sec80 + */ + A_UINT32 rssi_chain4; + A_UINT32 rssi_chain5; + A_UINT32 rssi_chain6; + A_UINT32 rssi_chain7; + /** + * Last calibrated NF value for chain 4 through 7 in dbm + * + * nf_list_3: + * + [15:0] - chain 4 + * + [31:16] - chain 5 + * + * nf_list_4: + * + [15:0] - chain 6 + * + [31:16] - chain 7 + * + * Each chain's noise floor is stored as a sign-extended (negative) + * value in dBm units. + */ + A_UINT32 nf_list_3; + A_UINT32 nf_list_4; +} wmi_single_phyerr_ext_rx_hdr; + #define WMI_UNIFIED_FREQINFO_1_LO 0x000000ff #define WMI_UNIFIED_FREQINFO_1_LO_S 0 #define WMI_UNIFIED_FREQINFO_1_HI 0x0000ff00 @@ -3216,10 +3266,23 @@ typedef struct { #define WMI_UNIFIED_CHAIN_3 0xffff0000 #define WMI_UNIFIED_CHAIN_3_S 16 +#define WMI_UNIFIED_CHAIN_4 0x0000ffff +#define WMI_UNIFIED_CHAIN_4_S 0 +#define WMI_UNIFIED_CHAIN_5 0xffff0000 +#define WMI_UNIFIED_CHAIN_5_S 16 +#define WMI_UNIFIED_CHAIN_6 0x0000ffff +#define WMI_UNIFIED_CHAIN_6_S 0 +#define WMI_UNIFIED_CHAIN_7 0xffff0000 +#define WMI_UNIFIED_CHAIN_7_S 16 + #define WMI_UNIFIED_CHAIN_0_FIELD nf_list_1 #define WMI_UNIFIED_CHAIN_1_FIELD nf_list_1 #define WMI_UNIFIED_CHAIN_2_FIELD nf_list_2 #define WMI_UNIFIED_CHAIN_3_FIELD nf_list_2 +#define WMI_UNIFIED_CHAIN_4_FIELD nf_list_3 +#define WMI_UNIFIED_CHAIN_5_FIELD nf_list_3 +#define WMI_UNIFIED_CHAIN_6_FIELD nf_list_4 +#define WMI_UNIFIED_CHAIN_7_FIELD nf_list_4 #define WMI_UNIFIED_NF_CHAIN_GET(hdr, c) \ ((int16_t) (WMI_F_MS((hdr)->WMI_UNIFIED_CHAIN_##c##_FIELD, \ @@ -3298,6 +3361,10 @@ typedef struct { * header - payload, header - payload... * (The header is of type: wmi_single_phyerr_rx_hdr) * A_UINT8 bufp[]; + * The extension hdr will repeat num_phyerr_events of times + * and will have 1:1 mapping with above header. i.e the 1st + * ext_rx_hdr will belong to 1st phyerr_rx_hdr and so on. + * wmi_single_phyerr_ext_rx_hdr single_phyerr_ext; */ } wmi_comb_phyerr_rx_hdr; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 80d27bddcd06..af4df03ded28 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_ 362 +#define __WMI_REVISION_ 363 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work |
