Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ced8b2ba authored by spuligil's avatar spuligil
Browse files

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

Change-Id: Ifcc4d1c1a0c4dd621b4bd9f87ab94717a5822ed2
WMI: add PDEV_ENHANCED_AOA_PHASEDELTA_EVENT msg def
CRs-Fixed: 2262693
parent 078c19b0
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1392,6 +1392,8 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_aux_dev_capabilities,
    WMITLV_TAG_STRUC_wmi_nan_oem_data_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_nan_oem_data_event_fixed_param,
    WMITLV_TAG_STRUC_wmi_pdev_enhanced_aoa_phasedelta_evt_fixed_param,
    WMITLV_TAG_STRUC_wmi_enhanced_aoa_gain_phase_data_hdr,
} WMITLV_TAG_ID;
/*
 * IMPORTANT: Please add _ALL_ WMI Commands Here.
@@ -2241,6 +2243,7 @@ typedef enum {
    OP(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_EVENTID) \
    OP(WMI_MLO_LINK_SWITCH_REQUEST_EVENTID) \
    OP(WMI_NAN_OEM_DATA_EVENTID) \
    OP(WMI_PDEV_ENHANCED_AOA_PHASEDELTA_EVENTID) \
    /* add new EVT_LIST elements above this line */


@@ -7432,6 +7435,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_primary_link_peer_migration_status, primary_link_peer_migration_status, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_EVENTID);

/*
 * Update AOA Phase delta values for all gain tables event
 * Below definition shows TLV packing of AOA Phase delta values for all gain tables event
 */
#define WMITLV_TABLE_WMI_PDEV_ENHANCED_AOA_PHASEDELTA_EVENTID(id, op, buf, len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_enhanced_aoa_phasedelta_evt_fixed_param, wmi_pdev_enhanced_aoa_phasedelta_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_enhanced_aoa_gain_phase_data_hdr, aoa_data_hdr, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, aoa_data_buf, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENHANCED_AOA_PHASEDELTA_EVENTID);


#ifdef __cplusplus
}
+127 −0
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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_ 1363
#define __WMI_REVISION_ 1364

/** The Version Namespace should not be normally changed. Only
 *  host and firmware of the same WMI namespace will work