fw-api: CL 24006951 - update fw common interface files

Change-Id: I5d9f4263a88223680b349335c9a89ea79be669c9
WMI: add enhanced_aoa_gain_table_capabilities in SERVICE_READY_EXT2_EVENT msg
CRs-Fixed: 2262693
This commit is contained in:
spuligil
2023-07-31 03:36:03 -07:00
parent 6db4245bf3
commit 3e8b9ccb66
3 changed files with 104 additions and 2 deletions

View File

@@ -1396,6 +1396,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_enhanced_aoa_gain_phase_data_hdr,
WMITLV_TAG_STRUC_wmi_ctrl_path_sta_rrm_stats_struct,
WMITLV_TAG_STRUC_wmi_pdev_wsi_stats_info_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_enhanced_aoa_caps_param,
WMITLV_TAG_STRUC_wmi_enhanced_aoa_per_band_caps_param,
} WMITLV_TAG_ID;
/*
* IMPORTANT: Please add _ALL_ WMI Commands Here.
@@ -5519,7 +5521,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_sw_cal_ver_cap, sw_cal_ver_cap, WMITLV_SIZE_VAR) \
WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_INT32, A_INT32, hw_tx_power_signed, WMITLV_SIZE_FIX, WMI_HW_TX_POWER_CAPS_MAX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_COEX_FIX_CHANNEL_CAPABILITIES, coex_fix_channel_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_aux_dev_capabilities, aux_dev_caps, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_aux_dev_capabilities, aux_dev_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_enhanced_aoa_caps_param, aoa_caps_param, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_enhanced_aoa_per_band_caps_param, aoa_per_band_caps_param, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT2_EVENTID);
#define WMITLV_TABLE_WMI_SPECTRAL_CAPABILITIES_EVENTID(id,op,buf,len) \

View File

@@ -40597,6 +40597,104 @@ typedef struct {
};
} wmi_enhanced_aoa_gain_phase_data_hdr;
typedef enum _WMI_AGC_GAIN_TABLE_IDX {
WMI_AGC_DG_TABLE_IDX = 0,
WMI_AGC_LG_TABLE_IDX,
WMI_AGC_VLG_TABLE_IDX,
WMI_AGC_MAX_GAIN_TABLE_IDX = 8,
} WMI_AGC_GAIN_TABLE_IDX;
#define WMI_AOA_BDF_NUM_GAIN_TBL_ELEMS_PER_WORD 4
#define WMI_AOA_NUM_GAIN_TBL_ELEMS_PER_WORD 2
#define WMI_AOA_NUM_BYTES_FOR_BDF_GAIN_TBL_ELEM 1
#define WMI_AOA_NUM_BYTES_FOR_GAIN_TBL_ELEM 2
/* Number of words required to store max number of gain table elements = ((max number of gain table elements)/(number of gain table elements per word)) */
/* 2 bytes (at most)used to store each gain table elements */
#define WMI_AOA_NUM_WORD_ENTRIES_FOR_MAX_NUM_AGC_TBL_ELEMS (WMI_AGC_MAX_GAIN_TABLE_IDX / WMI_AOA_NUM_GAIN_TBL_ELEMS_PER_WORD)
/* 1 byte (at most) used to store each gain table elements obtained from BDF */
#define WMI_AOA_BDF_NUM_WORD_ENTRIES_FOR_MAX_NUM_AGC_TBL_ELEMS (WMI_AGC_MAX_GAIN_TABLE_IDX / WMI_AOA_BDF_NUM_GAIN_TBL_ELEMS_PER_WORD)
typedef enum {
WMI_AOA_2G = 0,
WMI_AOA_5G,
WMI_AOA_6G,
WMI_AOA_MAX_BAND,
} WMI_AOA_SUPPORTED_BANDS;
#define WMI_AOA_MAX_AGC_GAIN_GET(pcap_var, tbl_idx, output) \
do { \
A_UINT8 word_idx = 0; \
A_UINT8 bit_index = 0; \
A_UINT8 nth_byte = 0; \
word_idx = tbl_idx >> 1; \
nth_byte = (tbl_idx % WMI_AOA_NUM_GAIN_TBL_ELEMS_PER_WORD); \
bit_index = nth_byte * 8 * WMI_AOA_NUM_BYTES_FOR_GAIN_TBL_ELEM; \
output = WMI_GET_BITS(*(pcap_var + word_idx), bit_index, 16); \
} while (0)
#define WMI_AOA_MAX_AGC_GAIN_SET(pcap_var, tbl_idx, value) \
do { \
A_UINT8 word_idx = 0; \
A_UINT8 bit_index = 0; \
A_UINT8 nth_byte = 0; \
word_idx = tbl_idx >> 1; \
nth_byte = (tbl_idx % WMI_AOA_NUM_GAIN_TBL_ELEMS_PER_WORD); \
bit_index = nth_byte * 8 * WMI_AOA_NUM_BYTES_FOR_GAIN_TBL_ELEM; \
WMI_SET_BITS(*(pcap_var+word_idx), bit_index, 16, value); \
} while (0)
#define WMI_AOA_MAX_BDF_ENTRIES_GET(pcap_var, tbl_idx, output) \
do { \
A_UINT8 word_idx = 0; \
A_UINT8 bit_index = 0; \
A_UINT8 nth_byte = 0; \
word_idx = tbl_idx >> 2; \
nth_byte = (tbl_idx % WMI_AOA_BDF_NUM_GAIN_TBL_ELEMS_PER_WORD); \
bit_index = nth_byte * 8 * WMI_AOA_NUM_BYTES_FOR_BDF_GAIN_TBL_ELEM; \
output = WMI_GET_BITS(*(pcap_var+word_idx), bit_index, 8); \
} while (0)
#define WMI_AOA_MAX_BDF_ENTRIES_SET(pcap_var, tbl_idx, value) \
do { \
A_UINT8 word_idx = 0; \
A_UINT8 nth_byte = 0; \
A_UINT8 bit_index = 0; \
word_idx = tbl_idx >> 2; \
nth_byte = (tbl_idx % WMI_AOA_BDF_NUM_GAIN_TBL_ELEMS_PER_WORD); \
bit_index = nth_byte * 8 * WMI_AOA_NUM_BYTES_FOR_BDF_GAIN_TBL_ELEM; \
WMI_SET_BITS(*(pcap_var+word_idx), bit_index, 8, value); \
} while (0)
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_enhanced_aoa_caps_param */
A_UINT32 tlv_header;
/* Maximum number of Rx AGC gain tables supported */
A_UINT32 max_agc_gain_tbls;
/* 1 byte is used to store bdf max number of elements in each gain tables */
A_UINT32 max_bdf_gain_entries[WMI_AOA_BDF_NUM_WORD_ENTRIES_FOR_MAX_NUM_AGC_TBL_ELEMS];
/** This TLV is followed by TLV array - wmi_enhanced_aoa_per_band_caps_param
* containing band specifc agc gain table information.
*/
} wmi_enhanced_aoa_caps_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_enhanced_aoa_per_band_caps_param */
A_UINT32 tlv_header;
/* Band information - WMI_AOA_SUPPORTED_BANDS */
A_UINT32 band_info;
/* 2 bytes are used to store agc max number of elements in each gain tables */
A_UINT32 max_agc_gain[WMI_AOA_NUM_WORD_ENTRIES_FOR_MAX_NUM_AGC_TBL_ELEMS];
} wmi_enhanced_aoa_per_band_caps_param;
/* WMI_HALPHY_CAL_LIST:
*
* Below is the list of HALPHY online CAL currently enabled in

View File

@@ -37,7 +37,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_ 1376
#define __WMI_REVISION_ 1377
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work