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

Change-Id: Ifcc4d1c1a0c4dd621b4bd9f87ab94717a5822ed2
WMI: add PDEV_ENHANCED_AOA_PHASEDELTA_EVENT msg def
CRs-Fixed: 2262693
This commit is contained in:
spuligil
2023-07-13 06:01:17 -07:00
parent 078c19b0eb
commit ced8b2ba41
3 changed files with 141 additions and 1 deletions

View File

@@ -1748,6 +1748,8 @@ typedef enum {
/* Event to indicate completion on RF path */
WMI_PDEV_SET_RF_PATH_RESP_EVENTID,
/* Event to get AOA phasedelta values for all gain tables from HALPHY */
WMI_PDEV_ENHANCED_AOA_PHASEDELTA_EVENTID,
/* VDEV specific events */
/** VDEV started event in response to VDEV_START request */
@@ -40444,6 +40446,131 @@ typedef struct {
A_UINT32 perChainIbfCalVal[WMI_MAX_CHAINS_FOR_AOA_RCC];
} wmi_pdev_aoa_phasedelta_evt_fixed_param;
#define WMI_AOA_MAX_SUPPORTED_CHAINS_GET(chain_data) \
WMI_GET_BITS(chain_data, 0, 16)
#define WMI_AOA_MAX_SUPPORTED_CHAINS_SET(chain_data, value) \
WMI_SET_BITS(chain_data, 0, 16, value)
#define WMI_AOA_SUPPORTED_CHAINMASK_GET(chain_data) \
WMI_GET_BITS(chain_data, 16, 16)
#define WMI_AOA_SUPPORTED_CHAINMASK_SET(chain_data, value) \
WMI_SET_BITS(chain_data, 16, 16, value)
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_pdev_enhanced_aoa_phasedelta_eventid */
A_UINT32 tlv_header;
/* Current Operating Channel Frequency in MHz */
A_UINT32 freq;
/** pdev_id:
* Identify the MAC.
* See macros starting with WMI_PDEV_ID_ for values.
* In non-DBDC case host should set it to 0.
*/
A_UINT32 pdev_id;
/** chain_info:
* B0 -- B15 : Max number of chains supported
* B16 --B31 : Data shared for chainmask -
* indicates the chains to which the data shared.
*/
union {
struct {
A_UINT32 max_supported_chains:16,
data_for_chainmask:16;
};
A_UINT32 chain_info;
};
/** XBAR configuration to get RF2BB/BB2RF chain mapping
* Samples of xbar_config,
* If xbar_config is 0xFAC688(hex):
* RF chains 0-7 are connected to BB chains 0-7
* here,
* bits 0 to 2 = 0, maps BB chain 0 for RF chain 0
* bits 3 to 5 = 1, maps BB chain 1 for RF chain 1
* bits 6 to 8 = 2, maps BB chain 2 for RF chain 2
* bits 9 to 11 = 3, maps BB chain 3 for RF chain 3
* bits 12 to 14 = 4, maps BB chain 4 for RF chain 4
* bits 15 to 17 = 5, maps BB chain 5 for RF chain 5
* bits 18 to 20 = 6, maps BB chain 6 for RF chain 6
* bits 21 to 23 = 7, maps BB chain 7 for RF chain 7
*
* If xbar_config is 0x688FAC(hex):
* RF chains 0-3 are connected to BB chains 4-7
* RF chains 4-7 are connected to BB chains 0-3
* here,
* bits 0 to 2 = 4, maps BB chain 4 for RF chain 0
* bits 3 to 5 = 5, maps BB chain 5 for RF chain 1
* bits 6 to 8 = 6, maps BB chain 6 for RF chain 2
* bits 9 to 11 = 7, maps BB chain 7 for RF chain 3
* bits 12 to 14 = 0, maps BB chain 0 for RF chain 4
* bits 15 to 17 = 1, maps BB chain 1 for RF chain 5
* bits 18 to 20 = 2, maps BB chain 2 for RF chain 6
* bits 21 to 23 = 3, maps BB chain 3 for RF chain 7
*/
A_UINT32 xbar_config;
/**
* IBF cal values:
* Used for final AoA calculation
* [AoAPhase = ( PhaseDeltaValue + IBFcalValue ) % 1024]
*/
A_UINT32 per_chain_ibf_cal_val[WMI_MAX_CHAINS];
/**
* This TLV is followed by TLV arrays containing
* different types of data header and data buffer TLVs:
* 1. wmi_enhanced_aoa_gain_phase_data_hdr.
* This TLV contains the array of structure fields which indicate
* the type and format of data carried in the following data buffer
* TLV.
* 2. aoa_data_buf[] - Data buffer TLV.
* TLV header contains the total buffer size.
* Data buffer contains the phase_delta_array[Chains][GainEntries]
* in absolute phase values ranging 0-1024 and
* gain_delta_array[Chains][GainEntries] are gain index values.
*/
} wmi_pdev_enhanced_aoa_phasedelta_evt_fixed_param;
#define WMI_AOA_DATA_TYPE_GET(data_info) \
WMI_GET_BITS(data_info, 0, 8)
#define WMI_AOA_DATA_TYPE_SET(data_info,value) \
WMI_SET_BITS(data_info, 0, 8, value)
#define WMI_AOA_NUM_ENTIRES_GET(data_info) \
WMI_GET_BITS(data_info, 8, 8)
#define WMI_AOA_NUM_DATA_ENTRIES_SET(data_info,value) \
WMI_SET_BITS(data_info, 8, 8, value)
typedef enum _WMI_AOA_EVENT_DATA_TYPE {
WMI_PHASE_DELTA_ARRAY = 0x0,
WMI_GAIN_GROUP_STOP_ARRAY = 0x1,
/* add new types here */
WMI_MAX_DATA_TYPE_ARRAY,
} WMI_AOA_EVENT_DATA_TYPE;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_pdev_enhanced_aoa_phasedelta_eventid */
A_UINT32 tlv_header;
/** data_info:
* Data follows the LSB first and MSB second order in a 32bit word
* bit mapping:
* B0 -- B7 : Data type
* B8 -- B15 : Number of entries to be parsed in terms of 32bit word
*
* If data is Phase delta values - Data type is 0x0
* group stop gain index values - Data type is 0x1
*
* num_entries - Total number of data entries in uint32
*/
union {
struct {
A_UINT32 data_type:8,
num_entries:8,
reserved:16;
};
A_UINT32 data_info;
};
} wmi_enhanced_aoa_gain_phase_data_hdr;
/* WMI_HALPHY_CAL_LIST:
*
* Below is the list of HALPHY online CAL currently enabled in