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

Commit f93a7f53 authored by spuligil's avatar spuligil
Browse files

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

Change-Id: Ia273fce8f188919bf115237971e1cb7d0a2d1592
WMI: add info re mgmt frames, HTT: provide HT/VHT SIG info
CRs-Fixed: 2262693
parent 38447ada
Loading
Loading
Loading
Loading
+603 −26

File changed.

Preview size limit exceeded, changes collapsed.

+1 −0
Original line number Diff line number Diff line
@@ -394,6 +394,7 @@ typedef enum {
    WMI_SERVICE_FW_IFACE_COMBINATION_SUPPORT = 209, /* FW sends WMI_IFACE_COMBINATION_IND_EVENT msg immediately after WMI_SERVICE_READY_EXT_EVENT msg */
    WMI_SERVICE_TX_COMPL_TSF64 = 210, /* FW supports 64-bit tx TSF in HTT_T2H TX_COMPL_IND msg */
    WMI_SERVICE_DSM_ROAM_FILTER = 211, /* FW supports data stall AP mitigation while roaming */
    WMI_SERVICE_PACKET_CAPTURE_SUPPORT = 212, /* target supports packet capture Mode (SMART MU) */

    /******* ADD NEW SERVICES HERE *******/

+12 −2
Original line number Diff line number Diff line
@@ -983,6 +983,7 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_wlanfw_iface_limit_param,
    WMITLV_TAG_STRUC_wmi_roam_dsm_filter_fixed_param,
    WMITLV_TAG_STRUC_wmi_roam_bssid_disallow_list_config_param,
    WMITLV_TAG_STRUC_wmi_mgmt_hdr,
} WMITLV_TAG_ID;

/*
@@ -1608,6 +1609,7 @@ typedef enum {
    OP(WMI_PDEV_COLD_BOOT_CAL_DATA_EVENTID) \
    OP(WMI_PDEV_RAP_INFO_EVENTID) \
    OP(WMI_IFACE_COMBINATION_IND_EVENTID) \
    OP(WMI_VDEV_MGMT_OFFLOAD_EVENTID) \
    /* add new EVT_LIST elements above this line */


@@ -4139,7 +4141,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_TX_PAUSE_EVENTID);

/* Mgmt TX completion event */
#define WMITLV_TABLE_WMI_MGMT_TX_COMPLETION_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_event_fixed_param, wmi_mgmt_tx_compl_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_event_fixed_param, wmi_mgmt_tx_compl_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mgmt_hdr, mgmt_hdr, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_COMPLETION_EVENTID);

/* offchan data TX completion event */
@@ -4153,7 +4156,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_OFFCHAN_DATA_TX_COMPLETION_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, desc_ids, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, status, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ppdu_id, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ack_rssi, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ack_rssi, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mgmt_hdr, mgmt_hdr, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_BUNDLE_COMPLETION_EVENTID);

/* VDEV Start response Event */
@@ -5368,6 +5372,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_COLD_BOOT_CAL_DATA_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_rap_info_event_fixed_param, wmi_pdev_rap_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_RAP_INFO_EVENTID);

/* Offload TX mgmt frames */
#define WMITLV_TABLE_WMI_VDEV_MGMT_OFFLOAD_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_hdr, wmi_mgmt_hdr, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_MGMT_OFFLOAD_EVENTID);

#ifdef __cplusplus
}
#endif
+101 −1
Original line number Diff line number Diff line
@@ -1378,6 +1378,9 @@ typedef enum {
    /* provide LTE-Coex antenna sharing info */
    WMI_VDEV_GET_MWS_COEX_ANTENNA_SHARING_STATE_EVENTID,
    /* Event to handle FW offloaded mgmt packets */
    WMI_VDEV_MGMT_OFFLOAD_EVENTID,
    /* peer specific events */
    /** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */
@@ -3041,6 +3044,12 @@ typedef struct {
    #define WMI_RSRC_CFG_FLAG_TX_COMPLETION_TX_TSF64_ENABLE_S 26
    #define WMI_RSRC_CFG_FLAG_TX_COMPLETION_TX_TSF64_ENABLE_M 0x4000000
    /*
     * If this BIT is set, then the target should support Packet capture(SMART MU FR)
     */
    #define WMI_RSRC_CFG_FLAG_PACKET_CAPTURE_SUPPORT_S 27
    #define WMI_RSRC_CFG_FLAG_PACKET_CAPTURE_SUPPORT_M 0x8000000
    A_UINT32 flag1;
    /** @brief smart_ant_cap - Smart Antenna capabilities information
@@ -3314,6 +3323,11 @@ typedef struct {
#define WMI_RSRC_CFG_FLAG_TX_COMPLETION_TX_TSF64_ENABLE_GET(word32) \
    WMI_RSRC_CFG_FLAG_GET((word32), TX_COMPLETION_TX_TSF64_ENABLE)
#define WMI_RSRC_CFG_FLAG_PACKET_CAPTURE_SUPPORT_SET(word32, value) \
    WMI_RSRC_CFG_FLAG_SET((word32), PACKET_CAPTURE_SUPPORT, (value))
#define WMI_RSRC_CFG_FLAG_PACKET_CAPTURE_SUPPORT_GET(word32) \
    WMI_RSRC_CFG_FLAG_GET((word32), PACKET_CAPTURE_SUPPORT)
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */
@@ -4038,7 +4052,7 @@ typedef struct {
    /** length of the frame */
    A_UINT32 buf_len;
    /** rx status */
    A_UINT32 status;
    A_UINT32 status; /* capture mode indication */
    /** RSSI of PRI 20MHz for each chain. */
    A_UINT32 rssi_ctl[ATH_MAX_ANTENNA];
    /** information about the management frame e.g. can give a scan source for a scan result mgmt frame */
@@ -4078,6 +4092,83 @@ typedef struct {
 */
} wmi_mgmt_rx_hdr;
typedef enum {
    PKT_CAPTURE_MODE_DISABLE = 0,
    PKT_CAPTURE_MODE_MGMT_ONLY,
    PKT_CAPTURE_MODE_DATA_ONLY,
    PKT_CAPTURE_MODE_DATA_MGMT,
} WMI_PKT_CAPTURE_MODE_CONFIG;
/* This information sending to host during offloaded MGMT local TX and host TX */
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mgmt_hdr */
    /* channel frequency in MHz */
    A_UINT32 chan_freq;
    /** snr information used to cal rssi in dB */
    A_UINT32 snr;
    /** Rate kbps */
    A_UINT32 rate_kbps;
    /** phy mode WLAN_PHY_MODE */
    A_UINT32 phy_mode;
    /** length of the frame in bytes */
    A_UINT32 buf_len;
    /** status:
     * 0x00: CRC ERR
     * 0x08: DECRYPT ERR
     * 0x10: MIC ERR
     * 0x20: KEY CACHE MISS
     */
    A_UINT32 status;
    /** flags:
     * Information about the management frame e.g. can give a scan source
     * for a scan result mgmt frame
     * Refer to WMI_MGMT_RX_HDR_ definitions.
     * ex: WMI_MGMT_RX_HDR_EXTSCAN,WMI_MGMT_RX_HDR_ENLO
     */
    A_UINT32 flags;
    /** combined RSSI, i.e. the sum of the snr + noise floor (dBm units) */
    A_INT32 rssi;
    /** delta between local TSF (TSF timestamp when frame was RXd)
     *  and remote TSF (TSF timestamp in the IE for mgmt frame -
     *  beacon, proberesp for example). If remote TSF is not available,
     *  delta is set to 0.
     *  Although tsf_delta is stored as A_UINT32, it can be negative,
     *  and thus would need to be sign-extended if added to a value
     *  larger than 32 bits.
     */
    A_UINT32 tsf_delta;
    /* The lower 32 bits of the TSF (tsf_l32) is copied by FW from
     * TSF timestamp in the TX MAC descriptor provided by HW.
     */
    A_UINT32 tsf_l32;
    /* The upper 32 bits of the TSF (tsf_u32) is copied by FW from
     * TSF timestamp in the TX MAC descriptor provided by HW.
     */
    A_UINT32 tsf_u32;
    /** pdev_id for identifying the MAC the tx mgmt frame transmitted.
     * See macros starting with WMI_PDEV_ID_ for values.
     */
    A_UINT32 pdev_id;
    A_UINT32 direction; /* tx:0,rx:1*/
    /** tx_status:
     * 0: xmit ok
     * 1: excessive retries
     * 2: blocked by tx filtering
     * 4: fifo underrun
     * 8: swabort
     */
    A_UINT32 tx_status;
/* This TLV may be followed by array of bytes:
 *   A_UINT8 bufp[]; <-- management frame buffer
 */
} wmi_mgmt_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.
@@ -9696,6 +9787,13 @@ typedef enum {
     */
    WMI_VDEV_PARAM_NTH_BEACON_TO_HOST,                    /* 0x92 */
    /**
     * To capture the MGMT OR DATA OR BOTH packets.
     * Refer to enum WMI_PKT_CAPTURE_MODE_CONFIG for specifications of
     * which parameter value enables which kind of packet captures.
     */
    WMI_VDEV_PARAM_PACKET_CAPTURE_MODE,         /* 0x93 */
    /*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE ===
     * The below vdev param types are used for prototyping, and are
@@ -13339,6 +13437,7 @@ typedef enum wake_reason_e {
    WOW_REASON_WLAN_MD, /* motion detected */
    WOW_REASON_WLAN_BL, /* baselining done */
    WOW_REASON_NTH_BCN_OFLD, /* nth beacon forward to host */
    WOW_REASON_PKT_CAPTURE_MODE_WAKE,
    /* add new WOW_REASON_ defs before this line */
    WOW_REASON_MAX,
@@ -13796,6 +13895,7 @@ typedef struct {
#define WMI_RXERR_DECRYPT           0x08    /* non-Michael decrypt error */
#define WMI_RXERR_MIC               0x10    /* Michael MIC decrypt error */
#define WMI_RXERR_KEY_CACHE_MISS    0x20    /* No/incorrect key matter in h/w */
#define WMI_RX_OFFLOAD_MON_MODE     0x40    /* Offload dropped mgmt pkt's for only in capture mode*/
typedef enum {
    PKT_PWR_SAVE_PAID_MATCH =           0x00000001,
+1 −1
Original line number Diff line number Diff line
@@ -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_ 662
#define __WMI_REVISION_ 663

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