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

Commit a5f7db1c authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 62b94874 on remote branch

Change-Id: I047ca106ab532eaf948b97c2666d8a1ede322281
parents 01727726 62b94874
Loading
Loading
Loading
Loading
+36 −1
Original line number Diff line number Diff line
@@ -1353,7 +1353,7 @@ typedef enum {
    HTT_STATS_PREAM_HT,
    HTT_STATS_PREAM_VHT,
    HTT_STATS_PREAM_HE,
    HTT_STATS_PREAM_RSVD,
    HTT_STATS_PREAM_EHT,
    HTT_STATS_PREAM_RSVD1,

    HTT_STATS_PREAM_COUNT,
@@ -3525,6 +3525,7 @@ typedef struct {

#define HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS 12 /* 0-11 */
#define HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS 2 /* 12, 13 */
#define HTT_TX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS 2 /* 14, 15 */
#define HTT_TX_PDEV_STATS_NUM_GI_COUNTERS 4
#define HTT_TX_PDEV_STATS_NUM_DCM_COUNTERS 5
#define HTT_TX_PDEV_STATS_NUM_BW_COUNTERS 4
@@ -3551,6 +3552,18 @@ typedef struct {
        ((_var) |= ((_val) << HTT_TX_PDEV_RATE_STATS_MAC_ID_S)); \
    } while (0)

/*
 * Introduce new TX counters to support 320MHz support and punctured modes
 */
typedef enum {
    HTT_TX_PDEV_STATS_PUNCTURED_NONE = 0,
    HTT_TX_PDEV_STATS_PUNCTURED_20 = 1,
    HTT_TX_PDEV_STATS_PUNCTURED_40 = 2,
    HTT_TX_PDEV_STATS_PUNCTURED_80 = 3,
    HTT_TX_PDEV_STATS_PUNCTURED_120 = 4,
    HTT_TX_PDEV_STATS_NUM_PUNCTURED_MODE_COUNTERS = 5
} HTT_TX_PDEV_STATS_NUM_PUNCTURED_MODE_TYPE;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;

@@ -3652,6 +3665,11 @@ typedef struct {
    A_UINT32 ax_mu_mimo_tx_gi_ext[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS][HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS];
    /* 11AX VHT DL MU OFDMA extended TX guard interval stats for MCS 12/13 */
    A_UINT32 ofdma_tx_gi_ext[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS][HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS];
    /* Stats for MCS 14/15 */
    A_UINT32 tx_mcs_ext_2[HTT_TX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
    A_UINT32 tx_bw_320mhz;
    A_UINT32 tx_gi_ext_2[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS][HTT_TX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
    A_UINT32 tx_su_punctured_mode[HTT_TX_PDEV_STATS_NUM_PUNCTURED_MODE_COUNTERS];
} htt_tx_pdev_rate_stats_tlv;

/* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_TX_RATE
@@ -3672,12 +3690,14 @@ typedef struct {
#define HTT_RX_PDEV_STATS_NUM_LEGACY_OFDM_STATS 8
#define HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS 12 /* 0-11 */
#define HTT_RX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS 2 /* 12, 13 */
#define HTT_RX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS 2 /* 14, 15 */
#define HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS_EXT 14 /* 0-13 */
#define HTT_RX_PDEV_STATS_NUM_GI_COUNTERS 4
#define HTT_RX_PDEV_STATS_NUM_DCM_COUNTERS 5
#define HTT_RX_PDEV_STATS_NUM_BW_COUNTERS 4
#define HTT_RX_PDEV_STATS_TOTAL_BW_COUNTERS \
    (HTT_RX_PDEV_STATS_NUM_BW_EXT_COUNTERS + HTT_RX_PDEV_STATS_NUM_BW_COUNTERS)
#define HTT_RX_PDEV_STATS_NUM_BW_EXT2_COUNTERS 5 /* 20, 40, 80, 160, 320Mhz */
#define HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS 8
#define HTT_RX_PDEV_STATS_ULMUMIMO_NUM_SPATIAL_STREAMS 8
#define HTT_RX_PDEV_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
@@ -3717,6 +3737,16 @@ typedef struct {
        ((_var) |= ((_val) << HTT_RX_PDEV_RATE_STATS_MAC_ID_S)); \
    } while (0)

/* Introduce new RX counters to support 320MHZ support and punctured modes */
typedef enum {
    HTT_RX_PDEV_STATS_PUNCTURED_NONE = 0,
    HTT_RX_PDEV_STATS_PUNCTURED_20 = 1,
    HTT_RX_PDEV_STATS_PUNCTURED_40 = 2,
    HTT_RX_PDEV_STATS_PUNCTURED_80 = 3,
    HTT_RX_PDEV_STATS_PUNCTURED_120 = 4,
    HTT_RX_PDEV_STATS_NUM_PUNCTURED_MODE_COUNTERS = 5
} HTT_RX_PDEV_STATS_NUM_PUNCTURED_MODE_TYPE;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;

@@ -3861,6 +3891,11 @@ typedef struct {
    A_UINT32 rx_11ax_su_txbf_mcs_ext[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS_EXT];
    A_UINT32 rx_11ax_mu_txbf_mcs_ext[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS_EXT];
    A_UINT32 rx_11ax_dl_ofdma_mcs_ext[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS_EXT];
    /* MCS 14,15 */
    A_UINT32 rx_mcs_ext_2[HTT_RX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
    A_UINT32 rx_bw_ext[HTT_RX_PDEV_STATS_NUM_BW_EXT2_COUNTERS];
    A_UINT32 rx_gi_ext_2[HTT_RX_PDEV_STATS_NUM_GI_COUNTERS][HTT_RX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS];
    A_UINT32 rx_su_punctured_mode[HTT_RX_PDEV_STATS_NUM_PUNCTURED_MODE_COUNTERS];
} htt_rx_pdev_rate_ext_stats_tlv;

/* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_RX_RATE_EXT
+2 −1
Original line number Diff line number Diff line
/*
 * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
 *
 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
 *
@@ -120,6 +120,7 @@ typedef enum {
  WLAN_MODULE_SHO,                      /* 0x56 */ /* SAP HW offload */
  WLAN_MODULE_MLO_MGR,                  /* 0x57 */ /* MLO manager */
  WLAN_MODULE_PEER_INIT,                /* 0x58 */ /* peer init connection handling */
  WLAN_MODULE_STA_MLO_PS,               /* 0x59 */ /* MLO PS manager */


  WLAN_MODULE_ID_MAX,
+1 −0
Original line number Diff line number Diff line
@@ -533,6 +533,7 @@ typedef enum {
    WMI_SERVICE_11AX_TDLS_SUPPORT = 288, /* Indicates FW supports 11ax TDLS. Host should enable 11ax on TDLS only when FW indicates the support. */
    WMI_SERVICE_11BE = 289, /* Indicates FW supports 11be */
    WMI_SERVICE_BIG_DATA_SUPPORT = 290, /* Indicates FW supports Big Data feature */
    WMI_SERVICE_EAPOL_OVER_NWIFI = 291, /* Indicates FW supports sending eapol frames in native wifi mode even when the vdev is brought up in raw ethernet mode */


    WMI_MAX_EXT2_SERVICE
+23 −3
Original line number Diff line number Diff line
@@ -1153,6 +1153,9 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_pdev_extd_stats,
    WMITLV_TAG_STRUC_wmi_peer_assoc_mlo_params,
    WMITLV_TAG_STRUC_wmi_vdev_smart_monitor_event_fixed_param,
    WMITLV_TAG_STRUC_wmi_mgmt_rx_reo_params,
    WMITLV_TAG_STRUC_wmi_mgmt_rx_fw_consumed_hdr,
    WMITLV_TAG_STRUC_wmi_mgmt_rx_reo_filter_configuration_cmd_fixed_param,
} WMITLV_TAG_ID;

/*
@@ -1615,6 +1618,7 @@ typedef enum {
    OP(WMI_MLO_READY_CMDID) \
    OP(WMI_MLO_TEARDOWN_CMDID) \
    OP(WMI_VDEV_IGMP_OFFLOAD_CMDID) \
    OP(WMI_MGMT_RX_REO_FILTER_CONFIGURATION_CMDID) \
    /* add new CMD_LIST elements above this line */


@@ -1881,6 +1885,7 @@ typedef enum {
    OP(WMI_MLO_SETUP_COMPLETE_EVENTID) \
    OP(WMI_MLO_TEARDOWN_COMPLETE_EVENTID) \
    OP(WMI_VDEV_SMART_MONITOR_EVENTID) \
    OP(WMI_MGMT_RX_FW_CONSUMED_EVENTID) \
    /* add new EVT_LIST elements above this line */


@@ -2553,14 +2558,18 @@ WMITLV_CREATE_PARAM_STRUC(WMI_CLEAR_LINK_STATS_CMDID);

/* Request stats Cmd */
#define WMITLV_TABLE_WMI_REQUEST_LINK_STATS_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_link_stats_cmd_fixed_param, wmi_request_link_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_link_stats_cmd_fixed_param, wmi_request_link_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_id_bitmap, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, mld_macaddr, WMITLV_SIZE_VAR)

WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_LINK_STATS_CMDID);

/* Request for unified Link Layer and get station stats Cmd */
#define WMITLV_TABLE_WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_unified_ll_get_sta_cmd_fixed_param, wmi_request_unified_ll_get_sta_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_inst_rssi_stats_params, inst_rssi_params, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_inst_rssi_stats_params, inst_rssi_params, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_id_bitmap, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, mld_macaddr, WMITLV_SIZE_VAR)

WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID);

@@ -4654,6 +4663,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_TEARDOWN_CMDID);
    WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, WMI_IPV4_ADDR, mc_ipv4_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_IGMP_OFFLOAD_CMDID);

/* WMI CMD to receive the management filter criteria from the host for Rx REO */
#define WMITLV_TABLE_WMI_MGMT_RX_REO_FILTER_CONFIGURATION_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_reo_filter_configuration_cmd_fixed_param, wmi_mgmt_rx_reo_filter_configuration_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_REO_FILTER_CONFIGURATION_CMDID);


/************************** TLV definitions of WMI events *******************************/

@@ -4896,9 +4910,15 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STA_KICKOUT_EVENTID);
#define WMITLV_TABLE_WMI_MGMT_RX_EVENTID(id,op,buf,len)                                                                                                 \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr, wmi_mgmt_rx_hdr, hdr, WMITLV_SIZE_FIX)   \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rssi_ctl_ext, rssi_ctl_ext, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rssi_ctl_ext, rssi_ctl_ext, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_reo_params, wmi_mgmt_rx_reo_params, reo_params, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_EVENTID);

/* Management Rx FW Consumed Event */
#define WMITLV_TABLE_WMI_MGMT_RX_FW_CONSUMED_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_fw_consumed_hdr, wmi_mgmt_rx_fw_consumed_hdr, hdr, WMITLV_SIZE_FIX)
    WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_FW_CONSUMED_EVENTID);

/* TBTT offset Event */
#define WMITLV_TABLE_WMI_TBTTOFFSET_UPDATE_EVENTID(id,op,buf,len)                                                         \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tbtt_offset_event_fixed_param, wmi_tbtt_offset_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+197 −7
Original line number Diff line number Diff line
@@ -678,6 +678,8 @@ typedef enum {
    WMI_FD_TMPL_CMDID,
    /** Transmit QoS null Frame over wmi interface */
    WMI_QOS_NULL_FRAME_TX_SEND_CMDID,
    /** WMI CMD to receive the management filter criteria from the host for RX REO */
    WMI_MGMT_RX_REO_FILTER_CONFIGURATION_CMDID,
    /** commands to directly control ba negotiation directly from host. only used in test mode */
@@ -1686,6 +1688,9 @@ typedef enum {
    /** Event for QoS null frame TX completion  */
    WMI_QOS_NULL_FRAME_TX_COMPLETION_EVENTID,
    /** WMI event for Firmware Consumed/Dropped Rx management frames indication */
    WMI_MGMT_RX_FW_CONSUMED_EVENTID,
    /* ADDBA Related WMI Events*/
    /** Indication the completion of the prior
@@ -3826,20 +3831,26 @@ typedef struct {
     *      1-> MLO support
     *      2-3-> Reserved
     *      Refer to the WMI_RSRC_CFG_FLAGS2_RX_PEER_METADATA_VERSION macros.
     *  Bits 6 - is_sap_connected_d3wow_enabled
     *  Bit 6 - is_sap_connected_d3wow_enabled
     *      Enable D3WoW for SAP w/ clients connected
     *      0-> disable the feature
     *      1-> enable the feature
     *      Refer to the WMI_RSRC_CFG_FLAGS2_IS_SAP_CONNECTED_D3WOW_ENABLED
     *      GET/SET macros.
     *  Bits 7 - is_go_connected_d3wow_enabled
     *  Bit 7 - is_go_connected_d3wow_enabled
     *      Enable D3WoW for GO w/ clients connected
     *      0-> disable the feature
     *      1-> enable the feature
     *      Refer to the WMI_RSRC_CFG_FLAGS2_IS_GO_CONNECTED_D3WOW_ENABLED
     *      GET/SET macros.
     *  Bit 8 - enable_dynamic_pcie_gen_speed_switch
     *      enable dynamic pcie gen speed switch
     *      0-> disable the feature
     *      1-> enable the feature
     *      Refer to the WMI_RSRC_CFG_FLAGS2_IS_DYNAMIC_PCIE_GEN_SPEED_SWITCH_ENABLED
     *      GET/SET macros.
     *
     *  Bits 31:8 - Reserved
     *  Bits 31:9 - Reserved
     */
    A_UINT32 flags2;
    /** @brief host_service_flags - can be used by Host to indicate
@@ -4150,6 +4161,11 @@ typedef struct {
#define WMI_RSRC_CFG_FLAGS2_IS_GO_CONNECTED_D3WOW_ENABLED_SET(flags2, value) \
    WMI_SET_BITS(flags2, 7, 1, value)
#define WMI_RSRC_CFG_FLAGS2_IS_DYNAMIC_PCIE_GEN_SPEED_SWITCH_ENABLED_GET(flags2) \
    WMI_GET_BITS(flags2, 8, 1)
#define WMI_RSRC_CFG_FLAGS2_IS_DYNAMIC_PCIE_GEN_SPEED_SWITCH_ENABLED_SET(flags2, value) \
    WMI_SET_BITS(flags2, 8, 1, value)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_IFACE_SUPPORT_GET(host_service_flags) \
    WMI_GET_BITS(host_service_flags, 0, 1)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_IFACE_SUPPORT_SET(host_service_flags, val) \
@@ -4175,6 +4191,11 @@ typedef struct {
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_REG_CC_EXT_SUPPORT_SET(host_service_flags, val) \
    WMI_SET_BITS(host_service_flags, 4, 1, val)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_CHANNEL_SUPPORT_GET(host_service_flags) \
    WMI_GET_BITS(host_service_flags, 5, 1)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_CHANNEL_SUPPORT_SET(host_service_flags, val) \
    WMI_SET_BITS(host_service_flags, 5, 1, val)
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */
@@ -4631,9 +4652,6 @@ typedef enum {
/* Extend 6ghz channel measure time */
#define WMI_SCAN_FLAG_EXT_6GHZ_EXTEND_MEASURE_TIME    0x00000400
/* Force unicast address in RA */
#define WMI_SCAN_FLAG_EXT_FORCE_UNICAST_RA            0x00000800
/**
 * Currently passive scan has higher priority than beacon and
 * beacon miss would happen irrespective of dwell time.
@@ -4643,6 +4661,9 @@ typedef enum {
 */
#define WMI_SCAN_FLAG_EXT_PASSIVE_SCAN_START_TIME_ENHANCE   0x00000800
/* Force unicast address in RA */
#define WMI_SCAN_FLAG_EXT_FORCE_UNICAST_RA            0x00001000
/**
 * new 6 GHz flags per chan (short ssid or bssid) in struct
 * wmi_hint_freq_short_ssid or wmi_hint_freq_bssid
@@ -5053,6 +5074,79 @@ typedef struct {
#define MAX_ANTENNA_EIGHT 8
/** Helper macro for params GET/SET of MGMT_RX_FW_CONSUMED_EVENTID */
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_PEER_ID_GET(peer_info_subtype) WMI_GET_BITS(peer_info_subtype, 0, 16)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_PEER_ID_SET(peer_info_subtype, value) WMI_SET_BITS(peer_info_subtype, 0, 16, value)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_IEEE_LINK_ID_GET(peer_info_subtype) WMI_GET_BITS(peer_info_subtype, 16, 3)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_IEEE_LINK_ID_SET(peer_info_subtype, value) WMI_SET_BITS(peer_info_subtype, 16, 3, value)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_SUBTYPE_GET(peer_info_subtype) WMI_GET_BITS(peer_info_subtype, 28, 4)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_SUBTYPE_SET(peer_info_subtype, value) WMI_SET_BITS(peer_info_subtype, 28, 4, value)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_VALID_GET(mgmt_pkt_ctr_info) WMI_GET_BITS(mgmt_pkt_ctr_info, 15, 1)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_VALID_SET(mgmt_pkt_ctr_info, value) WMI_SET_BITS(mgmt_pkt_ctr_info, 15, 1, value)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_GET(mgmt_pkt_ctr_info) WMI_GET_BITS(mgmt_pkt_ctr_info, 16, 16)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_SET(mgmt_pkt_ctr_info, value) WMI_SET_BITS(mgmt_pkt_ctr_info, 16, 16, value)
typedef struct {
    A_UINT32 tlv_header; /* WMITLV_TAG_STRUCT_wmi_mgmt_rx_fw_consumed_hdr */
    A_UINT32 rx_tsf_l32; /* h/w assigned timestamp of the rx frame in micro sec */
    A_UINT32 rx_tsf_u32 ;/* h/w assigned timestamp of the rx frame in micro sec */
    A_UINT32 pdev_id; /* pdev_id for identifying the MAC the rx mgmt frame was received by */
    /**
     * peer_info_subtype
     *
     * [15:0]:  ml_peer_id, ML peer_id unique across chips
     * [18:16]: ieee_link_id, protocol link id on which the rx frame is received
     * [27:19]: reserved
     * [31:28]: subtype, subtype of the received MGMT frame
     */
    A_UINT32 peer_info_subtype;
    A_UINT32 chan_freq; /* frequency in MHz of the channel on which this frame was received */
    /* Timestamp (in micro sec) of the last fw consumed/dropped mgmt. frame, same across chips */
    A_UINT32 global_timestamp;
    /**
     * mgmt_pkt_ctr_info
     *
     * [14:0]:  reserved
     * [15]:    mgmt_pkt_ctr_valid
     * [31:16]: mgmt_pkt_ctr, Sequence number of the last fw consumed mgmt frame
     */
    A_UINT32 mgmt_pkt_ctr_info;
} wmi_mgmt_rx_fw_consumed_hdr;
/** Helper macro for param GET/SET of mgmt_rx_reo_params */
#define WMI_MGMT_RX_REO_PARAM_IEEE_LINK_ID_GET(mgmt_pkt_ctr_link_info) WMI_GET_BITS(mgmt_pkt_ctr_link_info, 12, 3)
#define WMI_MGMT_RX_REO_PARAM_IEEE_LINK_ID_SET(mgmt_pkt_ctr_link_info, value) WMI_SET_BITS(mgmt_pkt_ctr_link_info, 12, 3, value)
#define WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_VALID_GET(mgmt_pkt_ctr_link_info) WMI_GET_BITS(mgmt_pkt_ctr_link_info, 15, 1)
#define WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_VALID_SET(mgmt_pkt_ctr_link_info, value) WMI_SET_BITS(mgmt_pkt_ctr_link_info, 15, 1, value)
#define WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_GET(mgmt_pkt_ctr_link_info) WMI_GET_BITS(mgmt_pkt_ctr_link_info, 16, 16)
#define WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_SET(mgmt_pkt_ctr_link_info, value) WMI_SET_BITS(mgmt_pkt_ctr_link_info, 16, 16, value)
/** Data structure of the TLV to add in RX EVENTID for providing REO params
 *  like global_timestamp and mgmt_pkt_ctr
 */
typedef struct {
    A_UINT32 tlv_header; /*TLV WMITLV_TAG_STRUC_wmi_mgmt_rx_reo_params*/
    /* Timestamp (in micro sec) of the last fw forwarded mgmt. frame, same across chips */
    A_UINT32 global_timestamp;
    /**
     * mgmt_pkt_ctr_link_info
     *
     * [11:0]:  reserved
     * [14:12]: ieee_link_id, protocol link id on which the rx frame is received
     * [15]:    mgmt_pkt_ctr_valid
     * [31:16]: mgmt_pkt_ctr, Sequence number of the last fw forwarded mgmt frame
     */
    A_UINT32 mgmt_pkt_ctr_link_info;
} wmi_mgmt_rx_reo_params;
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr */
    /** channel on which this frame is received (channel number) */
@@ -5107,8 +5201,30 @@ typedef struct {
/* This TLV is optionally followed by array of struct:
 *  wmi_rssi_ctl_ext rssi_ctl_ext;
 */
/*
 * This TLV is followed by struct:
 * wmi_mgmt_rx_reo_params reo_params;// MGMT rx REO params
 */
} wmi_mgmt_rx_hdr;
/* WMI CMD to receive the management filter criteria from the host */
typedef struct {
    A_UINT32 tlv_header; /* WMITLV_TAG_STRUC_wmi_mgmt_reo_filter_cmd_fixed_param */
    A_UINT32 pdev_id; /* pdev_id for identifying the MAC */
    /* filter:
     * Each bit represents the possible combination of frame type (2 bits)
     * and subtype (4 bits)
     * There would be 64 such combinations as per the 802.11 standard
     * For Exp : We have beacon frame, we will take the type and subtype
     *           of this frame and concatenate the bits, it will give 6 bits
     *           number. We need to go to that bit position in the below
     *           2 filter_low and filter_high bitmap and set the bit.
     */
    A_UINT32 filter_low;
    A_UINT32 filter_high;
} wmi_mgmt_rx_reo_filter_configuration_cmd_fixed_param;
typedef enum {
    PKT_CAPTURE_MODE_DISABLE = 0,
    PKT_CAPTURE_MODE_MGMT_ONLY,
@@ -8466,6 +8582,17 @@ typedef struct {
    A_UINT32 stats_clear_req_mask;
    /** identifies which peer stats to be cleared. Valid only while clearing PER_REER */
    wmi_mac_addr peer_macaddr;
/*
 * This TLV is (optionally) followed by other TLVs:
 *     A_UINT32 vdev_id_bitmap[];
 *         This array is present and non-zero length in MLO case, stats should
 *         only be cleared for the VDEVs in vdev_id_bitmap in the bitmap when
 *         it is present.
 *     wmi_mac_addr mld_macaddr[];
 *         This array is present and non-zero length in MLO case, stats should
 *         only be cleared for the peers with the MLD MAC addresses specified
 *         in the array.
 */
} wmi_clear_link_stats_cmd_fixed_param;
/* Link Stats configuration params. Trigger the link layer statistics collection*/
@@ -15772,6 +15899,13 @@ typedef struct {
     *     1 - To enable FT-IM
     */
    A_UINT32 ft_im_for_deauth;
    /*
     * FW can prefer doing over-the-ds fast BSS transition instead of
     * over-the-air if associated and target AP are both capable of FT over DS.
     *     0 - To disable FT-over-DS
     *     1 - To enable FT-over-DS
     */
    A_UINT32 ft_over_ds_enable;
} wmi_roam_11r_offload_tlv_param;
/* This TLV will be filled only in case of ESE */
@@ -16231,8 +16365,13 @@ typedef struct {
    /** consider roam trigger if connected AP rssi is worse than trigger_rssi_threshold */
    A_INT32 trigger_rssi_threshold;      /* Units in dbm*/
    /*
     * Consider AP as roam candidate only if AP rssi is better than
     * Consider 2.4GHz AP as roam candidate only if AP rssi is better than
     * cand_ap_min_rssi_threshold
     * If valid (non-zero) cand_ap_min_rssi_threshold_5g and
     * cand_ap_min_rssi_threshold_6g values are provided,
     * then cand_ap_min_rssi_threshold should only be applied to 2.4 GHz APs.
     * But if cand_ap_min_rssi_threshold_5g and cand_ap_min_rssi_threshold_6g
     * are zeros, then cand_ap_min_rssi_threshold should be applied to all APs.
     */
    A_INT32 cand_ap_min_rssi_threshold; /* Units in dbm */
    /* Roam score delta in %.
@@ -16247,6 +16386,16 @@ typedef struct {
       Ex: Reason code in the BTM response frame
       Valid values are 0 - 255 */
    A_UINT32 reason_code;
    /*
     * Consider 5GHz AP as roam candidate only if AP rssi is better than
     * cand_ap_min_rssi_threshold_5g
     */
    A_INT32 cand_ap_min_rssi_threshold_5g; /* Units in dbm */
    /*
     * Consider 6GHz AP as roam candidate only if AP rssi is better than
     * cand_ap_min_rssi_threshold_6g
     */
    A_INT32 cand_ap_min_rssi_threshold_6g; /* Units in dbm */
} wmi_configure_roam_trigger_parameters;
/**
@@ -28579,6 +28728,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
        WMI_RETURN_STRING(WMI_MLO_READY_CMDID);
        WMI_RETURN_STRING(WMI_MLO_TEARDOWN_CMDID);
        WMI_RETURN_STRING(WMI_VDEV_IGMP_OFFLOAD_CMDID);
        WMI_RETURN_STRING(WMI_MGMT_RX_REO_FILTER_CONFIGURATION_CMDID);
    }
    return "Invalid WMI cmd";
@@ -29599,6 +29749,7 @@ typedef enum _WMI_ADD_TWT_STATUS_T {
    WMI_ADD_TWT_STATUS_ROAM_IN_PROGRESS,    /* Roaming in progress */
    WMI_ADD_TWT_STATUS_CHAN_SW_IN_PROGRESS, /* Channel switch in progress */
    WMI_ADD_TWT_STATUS_SCAN_IN_PROGRESS,    /* Scan in progress */
    WMI_ADD_TWT_STATUS_DIALOG_ID_BUSY,      /* FW is in the process of handling this dialog */
} WMI_ADD_TWT_STATUS_T;
typedef struct {
@@ -32374,8 +32525,47 @@ typedef struct {
     * The rx_ts_reset flag will be set to 1 upon every reset of rx_start_ts.
     */
    A_UINT32 rx_ts_reset;
    /*
     * MCS and Guard Interval.
     * MCS: For legacy mode only
     *    0: 48 Mbps
     *    1: 24 Mbps
     *    2: 12 Mbps
     *    3: 6 Mbps
     *    4: 54 Mbps
     *    5: 36 Mbps
     *    6: 18 Mbps
     *    7: 9 Mbps
     *    8: invalid entry
     *
     * GI: For Legacy mode only
     *    0: 0.8 us
     *    1: 0.4 us
     *    2: 1.6 us
     *    3: 3.2 us
     *    4: invalid entry
     *
     * Bits 0:3        mcs
     * Bits 4:6        gi_type
     * Bits 7:31       reserved
     */
    A_UINT32 mcs_gi_info;
} wmi_peer_cfr_capture_event_fixed_param;
#define WMI_CFR_MCS_GET(mcs_gi_info) \
        WMI_GET_BITS(mcs_gi_info, 0, 4)
#define WMI_CFR_MCS_SET(mcs_gi_info, value) \
        WMI_SET_BITS(mcs_gi_info, 0, 4, value)
#define WMI_CFR_GI_TYPE_GET(mcs_gi_info) \
        WMI_GET_BITS(mcs_gi_info, 4, 3)
#define WMI_CFR_GI_TYPE_SET(mcs_gi_info, value) \
        WMI_SET_BITS(mcs_gi_info, 4, 3, value)
#define WMI_UNIFIED_CHAIN_PHASE_MASK 0x0000ffff
#define WMI_UNIFIED_CHAIN_PHASE_GET(tlv, chain_idx) \
    ((A_UINT16) ((tlv)->chain_phase[chain_idx] & WMI_UNIFIED_CHAIN_PHASE_MASK))
Loading