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

Commit a68a213d authored by spuligil's avatar spuligil
Browse files

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

Change-Id: I1d2b261a12d7c9dc5ac029e96a8182326b7c8a85
WMI: add VDEV_STANDALONE SOUND_CMD + SOUND_COMPLETE_EVENT msg defs
CRs-Fixed: 2262693
parent 248734da
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -619,6 +619,7 @@ typedef enum {
    WMI_SERVICE_CFR_CAPTURE_PDEV_ID_SOC = 366, /* Host can send PDEV_ID_SOC with CFR capture request and FW can derive pdev_id from TA address */
    WMI_SERVICE_11BE_MLO_TDLS_SUPPORT = 367, /* Indicates FW supports 11be MLO TDLS. Host should enable 11be on TDLS only when FW indicates the support. */
    WMI_SERVICE_MANUAL_ULOFDMA_TRIGGER_SUPPORT = 368, /* Support for Host triggered Manual UL OFDMA trigger frame feature */
    WMI_SERVICE_STANDALONE_SOUND = 369, /* FW supports standalone sounding */

    WMI_MAX_EXT2_SERVICE

+19 −1
Original line number Diff line number Diff line
@@ -1350,6 +1350,9 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_vdev_set_manual_mu_trig_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_manual_ul_ofdma_trig_feedback_evt_fixed_param,
    WMITLV_TAG_STRUC_wmi_mlo_peer_link_control_param,
    WMITLV_TAG_STRUC_wmi_dma_buf_release_cv_upload_meta_data,
    WMITLV_TAG_STRUC_wmi_standalone_sounding_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_standalone_sounding_evt_fixed_param,
} WMITLV_TAG_ID;

/*
@@ -1873,6 +1876,7 @@ typedef enum {
    OP(WMI_MLO_VDEV_GET_LINK_INFO_CMDID) \
    OP(WMI_VDEV_SET_ULOFDMA_MANUAL_SU_TRIG_CMDID) \
    OP(WMI_VDEV_SET_ULOFDMA_MANUAL_MU_TRIG_CMDID) \
    OP(WMI_VDEV_STANDALONE_SOUND_CMDID) \
    /* add new CMD_LIST elements above this line */


@@ -2176,6 +2180,7 @@ typedef enum {
    OP(WMI_CSA_IE_RECEIVED_EVENTID) \
    OP(WMI_MLO_VDEV_LINK_INFO_EVENTID) \
    OP(WMI_MANUAL_UL_OFDMA_TRIG_FEEDBACK_EVENTID) \
    OP(WMI_VDEV_STANDALONE_SOUND_COMPLETE_EVENTID) \
    /* add new EVT_LIST elements above this line */


@@ -5323,6 +5328,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_ULOFDMA_MANUAL_SU_TRIG_CMDID);
    WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, peer_macaddr, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_ULOFDMA_MANUAL_MU_TRIG_CMDID);

/* Standalone Sound Cmd */
#define WMITLV_TABLE_WMI_VDEV_STANDALONE_SOUND_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_standalone_sounding_cmd_fixed_param, wmi_standalone_sounding_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, peer_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_STANDALONE_SOUND_CMDID);



/************************** TLV definitions of WMI events *******************************/
@@ -6834,7 +6845,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DMA_RING_CFG_RSP_EVENTID);
#define WMITLV_TABLE_WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dma_buf_release_fixed_param, wmi_dma_buf_release_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dma_buf_release_entry, entries, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dma_buf_release_spectral_meta_data, meta_data, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dma_buf_release_spectral_meta_data, meta_data, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dma_buf_release_cv_upload_meta_data, cv_meta_data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID);

/* ctl failsafe check event */
@@ -7223,6 +7235,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_VDEV_LINK_INFO_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, peer_macaddr, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MANUAL_UL_OFDMA_TRIG_FEEDBACK_EVENTID);

/* WMI standalone sound complete event */
#define WMITLV_TABLE_WMI_VDEV_STANDALONE_SOUND_COMPLETE_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_standalone_sounding_evt_fixed_param, wmi_standalone_sounding_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, snd_failed, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_STANDALONE_SOUND_COMPLETE_EVENTID);



#ifdef __cplusplus
+145 −0
Original line number Diff line number Diff line
@@ -1230,6 +1230,9 @@ typedef enum {
    /* H2T HPA message */
    WMI_HPA_CMDID,
    /* WMI comamnd for standalone sounding */
    WMI_VDEV_STANDALONE_SOUND_CMDID,
    /*  Offload 11k related requests */
    WMI_11K_OFFLOAD_REPORT_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_11K_OFFLOAD),
    /* invoke neighbor report from FW */
@@ -2207,6 +2210,9 @@ typedef enum {
    /* T2H HPA message */
    WMI_HPA_EVENTID,
    /* WMI standalone command complete Event */
    WMI_VDEV_STANDALONE_SOUND_COMPLETE_EVENTID,
    /* GPIO Event */
    WMI_GPIO_INPUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GPIO),
@@ -33440,6 +33446,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
        WMI_RETURN_STRING(WMI_MLO_VDEV_GET_LINK_INFO_CMDID);
        WMI_RETURN_STRING(WMI_VDEV_SET_ULOFDMA_MANUAL_SU_TRIG_CMDID);
        WMI_RETURN_STRING(WMI_VDEV_SET_ULOFDMA_MANUAL_MU_TRIG_CMDID);
        WMI_RETURN_STRING(WMI_VDEV_STANDALONE_SOUND_CMDID);
    }
    return (A_UINT8 *) "Invalid WMI cmd";
@@ -35275,6 +35282,7 @@ typedef struct {
typedef enum {
    WMI_DMA_RING_CONFIG_MODULE_SPECTRAL,
    WMI_DMA_RING_CONFIG_MODULE_RTT,
    WMI_DMA_RING_CONFIG_MODULE_CV_UPLOAD,
} WMI_DMA_RING_SUPPORTED_MODULE;
typedef struct {
@@ -35433,6 +35441,7 @@ typedef struct {
    /* This TLV is followed by another TLV of array of structs.
     * wmi_dma_buf_release_entry entries[num_buf_release_entry];
     * wmi_dma_buf_release_spectral_meta_data meta_datat[num_meta_data_entry];
     * wmi_dma_buf_release_cv_upload_meta_data cv_meta_data[num_meta_data_entry]
     */
} wmi_dma_buf_release_fixed_param;
@@ -42153,6 +42162,142 @@ typedef struct {
} wmi_vdev_set_manual_su_trig_cmd_fixed_param;
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_SET_ASNR_LENGTH(asnr_params, value) \
        WMI_SET_BITS(asnr_params, 0, 16, value)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_GET_ASNR_LENGTH(asnr_params) \
        WMI_GET_BITS(asnr_params, 0, 16)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_SET_ASNR_OFFSET(asnr_params, value) \
        WMI_SET_BITS(asnr_params, 16, 16, value)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_GET_ASNR_OFFSET(asnr_params) \
        WMI_GET_BITS(asnr_params, 16, 16)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_SET_DSNR_LENGTH(dsnr_params, value) \
        WMI_SET_BITS(dsnr_params, 0, 16, value)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_GET_DSNR_LENGTH(dsnr_params) \
        WMI_GET_BITS(dsnr_params, 0, 16)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_SET_DSNR_OFFSET(dsnr_params, value) \
        WMI_SET_BITS(dsnr_params, 16, 16, value)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_GET_DSNR_OFFSET(dsnr_params) \
        WMI_GET_BITS(dsnr_params, 16, 16)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_SET_FB_PARAMS_NC(fb_params, value) \
        WMI_SET_BITS(fb_params, 0, 2, value)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_GET_FB_PARAMS_NC(fb_params) \
        WMI_GET_BITS(fb_params, 0, 2)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_SET_FB_PARAMS_NSS_NUM(fb_params, value) \
        WMI_SET_BITS(fb_params, 2, 2, value)
#define WMI_DMA_BUF_RELEASE_CV_UPLOAD_GET_FB_PARAMS_NSS_NUM(fb_params) \
        WMI_GET_BITS(fb_params, 2, 2)
#define WMI_SET_STANDALONE_SOUND_PARAMS_FB_TYPE(snd_params, value) \
        WMI_SET_BITS(snd_params, 0, 1, value)
#define WMI_GET_STANDALONE_SOUND_PARAMS_FB_TYPE(snd_params) \
        WMI_GET_BITS(snd_params, 0, 1)
#define WMI_SET_STANDALONE_SOUND_PARAMS_NG(snd_params, value) \
        WMI_SET_BITS(snd_params, 1, 2, value)
#define WMI_GET_STANDALONE_SOUND_PARAMS_NG(snd_params) \
        WMI_GET_BITS(snd_params, 1, 2)
#define WMI_SET_STANDALONE_SOUND_PARAMS_CB(snd_params, value) \
        WMI_SET_BITS(snd_params, 3, 1, value)
#define WMI_GET_STANDALONE_SOUND_PARAMS_CB(snd_params) \
        WMI_GET_BITS(snd_params, 3, 1)
#define WMI_SET_STANDALONE_SOUND_PARAMS_BW(snd_params, value) \
        WMI_SET_BITS(snd_params, 4, 3, value)
#define WMI_GET_STANDALONE_SOUND_PARAMS_BW(snd_params) \
        WMI_GET_BITS(snd_params, 4, 3)
typedef enum _WMI_STANDALONE_SOUND_STATUS_T {
    WMI_STANDALONE_SOUND_STATUS_OK,
    WMI_STANDALONE_SOUND_STATUS_ERR_NUM_PEERS_EXCEEDED,
    WMI_STANDALONE_SOUND_STATUS_ERR_NG_INVALID,
    WMI_STANDALONE_SOUND_STATUS_ERR_NUM_REPEAT_EXCEEDED,
    WMI_STANDALONE_SOUND_STATUS_ERR_PEER_DOESNOT_SUPPORT_BW,
    WMI_STANDALONE_SOUND_STATUS_ERR_INVALID_PEER,
    WMI_STANDALONE_SOUND_STATUS_ERR_INVALID_VDEV,
    WMI_STANDALONE_SOUND_STATUS_ERR_PEER_DOES_NOT_SUPPORT_MU_FB,
    WMI_STANDALONE_SOUND_STATUS_ERR_DMA_NOT_CONFIGURED,
    WMI_STANDALONE_SOUND_STATUS_ERR_COMPLETE_FAILURE,
} WMI_STANDALONE_SOUND_STATUS_T;
typedef struct {
    A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_dma_buf_release_cv_upload_meta_data */
    /** Set if the CV is valid */
    A_UINT32 is_valid;
     /** Feedback type */
    A_UINT32 fb_type;
    /**
    * [15:0] ASNR length
    * [31:16] ASNR offset
    */
    A_UINT32 asnr_params;
    /**
    * [15:0] DSNR length
    * [31:16] DSNR offset
    */
    A_UINT32 dsnr_params;
    /** Peer mac address */
    wmi_mac_addr peer_mac_address;
    /**
    * [1:0] Nc
    * [3:2] nss_num
    */
    A_UINT32 fb_params;
} wmi_dma_buf_release_cv_upload_meta_data;
typedef struct {
    A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_standalone_sounding_cmd_fixed_param */
    /** vdev identifier */
    A_UINT32 vdev_id;
    /** sounding_params:
    * [0] Feedback type
    * [2:1] Ng
    * [3] Codebook
    * [6:4] BW
    *     0 = 20 MHz
    *     1 = 40 MHz
    *     2 = 80 MHz
    *     3 = 160 MHz
    *     4 = 320 MHz
    * [31:7] Reserved
    */
    A_UINT32 sounding_params;
    /** The number of sounding repeats */
    A_UINT32 num_sounding_repeats;
    /**
    * TLV (tag length value) parameters follow the
    * structure. The TLV's are:
    * wmi_mac_addr peer_list[num_peers];
    */
} wmi_standalone_sounding_cmd_fixed_param;
typedef struct {
    A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_standalone_sounding_evt_fixed_param */
    /** vdev identifier */
    A_UINT32 vdev_id;
    /** status:
     * standalone sounding command status -
     * refer to WMI_STANDALONE_SOUND_STATUS_T
     */
    A_UINT32 status;
    /** number of CV buffers uploaded */
    A_UINT32 buffer_uploaded;
    /** TLV (tag length value) parameters follow the
    * structure. The TLV's are:
    * A_UINT32 snd_failed[num_sounding_repeats];
    *     snd_failed[] array's elements hold the number of failures
    *     for each sounding.
    */
} wmi_standalone_sounding_evt_fixed_param;
/* ADD NEW DEFS HERE */
+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_ 1295
#define __WMI_REVISION_ 1296

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