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

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

Merge 94d344c3 on remote branch

Change-Id: I01609e5ba140808f5b76f507105a0721dfaae209
parents d0bcbb97 94d344c3
Loading
Loading
Loading
Loading
+19 −6
Original line number Diff line number Diff line
@@ -845,6 +845,19 @@ typedef struct {
         ((_var) |= ((_val) << HTT_PPDU_STATS_USER_COMMON_TLV_DELAYED_BA_S)); \
     } while (0)

#define HTT_PPDU_STATS_USER_COMMON_TLV_IS_SQNUM_VALID_IN_BUFFER_M     0x00008000
#define HTT_PPDU_STATS_USER_COMMON_TLV_IS_SQNUM_VALID_IN_BUFFER_S             15

#define HTT_PPDU_STATS_USER_COMMON_TLV_IS_SQNUM_VALID_IN_BUFFER_GET(_var) \
    (((_var) & HTT_PPDU_STATS_USER_COMMON_TLV_IS_SQNUM_VALID_IN_BUFFER_M) >> \
    HTT_PPDU_STATS_USER_COMMON_TLV_IS_SQNUM_VALID_IN_BUFFER_S)

#define HTT_PPDU_STATS_USER_COMMON_TLV_IS_SQNUM_VALID_IN_BUFFER_SET(_var, _val) \
     do { \
         HTT_CHECK_SET_VAL(HTT_PPDU_STATS_USER_COMMON_TLV_IS_SQNUM_VALID_IN_BUFFER, _val); \
         ((_var) |= ((_val) << HTT_PPDU_STATS_USER_COMMON_TLV_IS_SQNUM_VALID_IN_BUFFER_S)); \
     } while (0)

#define HTT_PPDU_STATS_USER_COMMON_TLV_NUM_FRAMES_M     0xffff0000
#define HTT_PPDU_STATS_USER_COMMON_TLV_NUM_FRAMES_S             16

@@ -914,7 +927,7 @@ typedef struct {
                     mpdus_tried:              9,
                     bw:                       4,
                     delayed_ba:               1,
                     reserved0:          1,
                     is_sqno_valid_in_buffer:  1,
                     num_frames:              16;
        };
    };
+1 −0
Original line number Diff line number Diff line
@@ -482,6 +482,7 @@ typedef enum {
    WMI_SERVICE_FSE_CMEM_ALLOC_SUPPORT = 262, /* Indicates that FW supports non-secure CMEM allocation for FSE table */
    WMI_SERVICE_PASSIVE_SCAN_START_TIME_ENHANCE = 263, /* Indicates FW support to not skip beacon if passive scan dwell time + channel switch delay is lesser than beacon interval */
    WMI_SERVICE_QOS_NULL_FRAME_TX_OVER_WMI = 264, /* Indicates that FW supports tx of QoS null frame downloaded through WMI interface */
    WMI_SERVICE_SCAN_CONFIG_PER_CHANNEL = 265, /* Indicates that FW supports per channel configuration support in the scan start command */


    WMI_MAX_EXT2_SERVICE
+11 −1
Original line number Diff line number Diff line
@@ -1112,6 +1112,9 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_qos_null_frame_tx_send_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_qos_null_frame_tx_compl_event_fixed_param,
    WMITLV_TAG_STRUC_wmi_pdev_enable_duration_based_tx_mode_selection_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_regulatory_rule_ext_struct,
    WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_ext_fixed_param,
    WMITLV_TAG_STRUC_wmi_ctrl_path_mem_stats_struct,
} WMITLV_TAG_ID;

/*
@@ -5592,6 +5595,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_11D_NEW_COUNTRY_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_struct, reg_rule_array, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EVENTID);

/* Ext regulatory channel list of current country code */
#define WMITLV_TABLE_WMI_REG_CHAN_LIST_CC_EXT_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_ext_fixed_param, wmi_reg_chan_list_cc_event_ext_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_ext_struct, reg_rule_array, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EXT_EVENTID);

/* FIPS event */
#define WMITLV_TABLE_WMI_PDEV_FIPS_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_fips_event_fixed_param, wmi_pdev_fips_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)   \
@@ -5845,7 +5854,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID);
#define WMITLV_TABLE_WMI_CTRL_PATH_STATS_EVENTID(id, op, buf, len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param, wmi_ctrl_path_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_pdev_stats_struct, ctrl_path_pdev_stats, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_extd_stats, vdev_extd_stats, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_extd_stats, vdev_extd_stats, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_mem_stats_struct, ctrl_path_mem_stats, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_CTRL_PATH_STATS_EVENTID);

#define WMITLV_TABLE_WMI_RADIO_CHAN_STATS_EVENTID(id, op, buf, len) \
+193 −2
Original line number Diff line number Diff line
@@ -1998,6 +1998,7 @@ typedef enum {
    /** WMI events related to regulatory offload */
    WMI_REG_CHAN_LIST_CC_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_REGULATORY),
    WMI_11D_NEW_COUNTRY_EVENTID,
    WMI_REG_CHAN_LIST_CC_EXT_EVENTID,
    /** Events for TWT(Target Wake Time) of STA and AP  */
    WMI_TWT_ENABLE_COMPLETE_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_TWT),
@@ -4315,6 +4316,14 @@ typedef struct {
/**
 * TLV (tag length value) parameters follow the scan_cmd
 * structure. The TLV's are:
 *     channel_list:
 *         If FW supports WMI_SERVICE_SCAN_CONFIG_PER_CHANNEL,
 *             then channel_list may fill the upper 12 bits with channel flags,
 *             while using only the lower 20 bits for channel frequency.
 *             Check WMI_SCAN_CHANNEL_FLAG macros for the channel flags
 *         If FW doesn't support WMI_SERVICE_SCAN_CONFIG_PER_CHANNEL,
 *             then channel_list only holds the frequency value
 *         Use WMI_SCAN_CHANNEL_FREQ_MASK & WMI_SCAN_CHANNEL_FLAGS_MASK
 *     A_UINT32 channel_list[num_chan]; // in MHz
 *     wmi_ssid ssid_list[num_ssids];
 *     wmi_mac_addr bssid_list[num_bssid];
@@ -4464,6 +4473,9 @@ 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.
@@ -4486,6 +4498,24 @@ typedef enum {
/* Combine short SSID with legacy bssid list */
#define WMI_SCAN_HINT_FLAG_COMBINE_BSSID_LIST   0x00000004
#define WMI_SCAN_CHANNEL_FREQ_MASK  0x000FFFFF
#define WMI_SCAN_CHANNEL_FLAGS_MASK 0xFFF00000
/**
 * Per channel configuration flags
 */
/**
 * WMI_SCAN_CHANNEL_FLAG_SCAN_ONLY_IF_RNR_FOUND:
 *     If this flag is set, then scan only if the corresponding channel
 *     is found via RNR IE during 2g/5g scan.
 *     If this flag is not set, then FW always scans the channel
 *     irrespective of RNR and also FW ignores
 *     WMI_SCAN_FLAG_EXT_6GHZ_SKIP_NON_RNR_CH flag
 */
#define WMI_SCAN_CHANNEL_FLAG_SCAN_ONLY_IF_RNR_FOUND 0x001
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param */
    /** requestor requesting cancel  */
@@ -9363,6 +9393,73 @@ typedef struct {
    A_UINT32 vdev_pause_fail_rt_to_sched_algo_fifo_full_cnt;
} wmi_ctrl_path_pdev_stats_struct;
typedef enum {
    WMI_CTRL_PATH_STATS_ARENA_HRAM,
    WMI_CTRL_PATH_STATS_ARENA_HCRAM,
    WMI_CTRL_PATH_STATS_ARENA_HREMOTE,
    WMI_CTRL_PATH_STATS_ARENA_HCREMOTE,
    WMI_CTRL_PATH_STATS_ARENA_REMOTE,
    WMI_CTRL_PATH_STATS_ARENA_SRAM,
    WMI_CTRL_PATH_STATS_ARENA_SRAM_AUX,
    WMI_CTRL_PATH_STATS_ARENA_PAGEABLE,
    WMI_CTRL_PATH_STATS_ARENA_CMEM,
    WMI_CTRL_PATH_STATS_ARENA_TRAM,
    WMI_CTRL_PATH_STATS_ARENA_HWIO,
    WMI_CTRL_PATH_STATS_ARENA_CALDB,
    WMI_CTRL_PATH_STATS_ARENA_M3,
    WMI_CTRL_PATH_STATS_ARENA_ETMREMOTE,
    WMI_CTRL_PATH_STATS_ARENA_M3_DUMP,
    WMI_CTRL_PATH_STATS_ARENA_EMUPHY,
    WMI_CTRL_PATH_STATS_ARENA_DBG_SRAM,
    WMI_CTRL_PATH_STATS_ARENA_DBG_SRAM_AUX,
    WMI_CTRL_PATH_STATS_ARENA_SRAM_AUX_OVERFLOW,
    WMI_CTRL_PATH_STATS_ARENA_AMSS,
    WMI_CTRL_PATH_STATS_ARENA_MAX,
} wmi_ctrl_path_fw_arena_ids;
/*
 * Used by some hosts to print names of arenas, based on
 * wmi_ctrl_path_fw_arena_ids values specified in
 * wmi_ctrl_path_mem_stats_struct in ctrl_path_stats event msg.
 */
static INLINE A_UINT8 *wmi_ctrl_path_fw_arena_id_to_name(A_UINT32 arena_id)
{
    switch(arena_id)
    {
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_HRAM);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_HCRAM);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_HREMOTE);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_HCREMOTE);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_REMOTE);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_SRAM);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_SRAM_AUX);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_PAGEABLE);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_CMEM);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_TRAM);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_HWIO);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_CALDB);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_M3);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_ETMREMOTE);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_M3_DUMP);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_EMUPHY);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_DBG_SRAM);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_DBG_SRAM_AUX);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_SRAM_AUX_OVERFLOW);
        WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_AMSS);
    }
    return (A_UINT8 *) "WMI_CTRL_PATH_STATS_ARENA_UNKNOWN";
}
typedef struct {
    /** TLV tag and len; tag equals
     *  WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param */
    A_UINT32 tlv_header;
    A_UINT32 arena_id;          /* see wmi_ctrl_path_fw_arena_ids */
    A_UINT32 total_bytes;       /* total bytes in each arena */
    A_UINT32 allocated_bytes;   /* allocated bytes in each arena */
} wmi_ctrl_path_mem_stats_struct;
typedef struct {
    /** TLV tag and len; tag equals
    *  WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param */
@@ -15809,6 +15906,7 @@ typedef enum wake_reason_e {
    WOW_REASON_RFKILL,
    WOW_REASON_DFS_CAC,
    WOW_REASON_VDEV_DISCONNECT,
    WOW_REASON_LOCAL_DATA_UC_DROP,
    /* add new WOW_REASON_ defs before this line */
    WOW_REASON_MAX,
@@ -25600,9 +25698,12 @@ typedef struct {
typedef enum {
    /*
     * Multiple stats type can be requested together, so each value
     * within this enum represents a bit within a stats bitmap.
     * within this enum represents a bit position within a stats bitmap.
     */
    WMI_REQUEST_CTRL_PATH_PDEV_TX_STAT = 0x00000001,
    /* bit 0 is currently unused / reserved */
    WMI_REQUEST_CTRL_PATH_PDEV_TX_STAT   = 1,
    WMI_REQUEST_CTRL_PATH_VDEV_EXTD_STAT = 2,
    WMI_REQUEST_CTRL_PATH_MEM_STAT       = 3,
} wmi_ctrl_path_stats_id;
typedef enum {
@@ -27300,6 +27401,38 @@ typedef struct {
                                  bits 31:16 reserved */
} wmi_regulatory_rule_struct;
#define WMI_REG_RULE_PSD_FLAG_GET(psd_power_info) \
    WMI_GET_BITS(psd_power_info, 0, 1)
#define WMI_REG_RULE_PSD_FLAG_SET(psd_power_info, value) \
    WMI_SET_BITS(psd_power_info, 0, 1, value)
#define WMI_REG_RULE_PSD_EIRP_GET(psd_power_info) \
    WMI_GET_BITS(psd_power_info, 16, 16)
#define WMI_REG_RULE_PSD_EIRP_SET(psd_power_info, value) \
    WMI_SET_BITS(psd_power_info, 16, 16, value)
typedef struct {
    A_UINT32  tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_regulatory_rule_ext_struct */
    A_UINT32  freq_info;       /* bits 15:0  = u16 start_freq,
                                  bits 31:16 = u16 end_freq
                                  (both in MHz units)
                                  use same MACRO as wmi_regulatory_rule_struct
                                */
    A_UINT32  bw_pwr_info;     /* bits 15:0  = u16 max_bw (MHz units),
                                  bits 23:16 = u8 reg_power (dBm units),
                                  bits 31:24 = u8 ant_gain (dB units)
                                  use same MACRO as wmi_regulatory_rule_struct
                                */
    A_UINT32  flag_info;       /* bits 15:0  = u16 flags,
                                  bits 31:16 reserved
                                  use same MACRO as wmi_regulatory_rule_struct
                                */
    A_UINT32  psd_power_info;  /* bits 0     - whether PSD power,
                                  bits 15:1  - reserved
                                  bits 31:16 - maximum PSD EIRP (dB/MHz)
                                */
} wmi_regulatory_rule_ext_struct;
typedef enum {
    WMI_REG_DFS_UNINIT_REGION = 0,
    WMI_REG_DFS_FCC_REGION    = 1,
@@ -27349,6 +27482,64 @@ typedef struct {
/* followed by wmi_regulatory_rule_struct TLV array. First 2G and then 5G */
} wmi_reg_chan_list_cc_event_fixed_param;
typedef enum {
    WMI_REG_CLIENT_REGULAR = 0,
    WMI_REG_CLIENT_SUBORDINATE = 1,
    /* 2 and 3 are reserved for future growth */
    WMI_REG_CLIENT_MAX = 4, /* can't expand, b/c used as array length below */
} wmi_reg_client_type;
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_ext_fixed_param */
    A_UINT32 status_code; /* WMI_REG_SET_CC_STATUS_CODE */
    A_UINT32 phy_id;
    A_UINT32 alpha2;
    A_UINT32 num_phy;
    A_UINT32 country_id;  /* uses CountryCode enum values */
    A_UINT32 domain_code; /* used EnumRd enum values */
    A_UINT32 dfs_region;  /* WMI_REG_DFS_REGION */
    A_UINT32 phybitmap;   /* WMI_REGULATORY_PHYBITMAP */
    A_UINT32 min_bw_2g;   /* BW in MHz */
    A_UINT32 max_bw_2g;   /* BW in MHz */
    A_UINT32 min_bw_5g;   /* BW in MHz */
    A_UINT32 max_bw_5g;   /* BW in MHz */
    A_UINT32 num_2g_reg_rules;
    A_UINT32 num_5g_reg_rules;
    A_UINT32 client_type;            /* populated if device can function as client */
    A_UINT32 rnr_tpe_usable;         /* If RNR TPE Octet usable for that country   */
    A_UINT32 unspecified_ap_usable;  /* If unspecified AP usable for that country  */
    A_UINT32 domain_code_6g_ap_lpi;
    A_UINT32 domain_code_6g_ap_sp;
    A_UINT32 domain_code_6g_ap_vlp;
    A_UINT32 domain_code_6g_client_lpi[WMI_REG_CLIENT_MAX];
    A_UINT32 domain_code_6g_client_sp[WMI_REG_CLIENT_MAX];
    A_UINT32 domain_code_6g_client_vlp[WMI_REG_CLIENT_MAX];
    A_UINT32 min_bw_6g_ap_sp; /* MHz */
    A_UINT32 max_bw_6g_ap_sp;
    A_UINT32 min_bw_6g_ap_lpi;
    A_UINT32 max_bw_6g_ap_lpi;
    A_UINT32 min_bw_6g_ap_vlp;
    A_UINT32 max_bw_6g_ap_vlp;
    A_UINT32 min_bw_6g_client_sp[WMI_REG_CLIENT_MAX];
    A_UINT32 max_bw_6g_client_sp[WMI_REG_CLIENT_MAX];
    A_UINT32 min_bw_6g_client_lpi[WMI_REG_CLIENT_MAX];
    A_UINT32 max_bw_6g_client_lpi[WMI_REG_CLIENT_MAX];
    A_UINT32 min_bw_6g_client_vlp[WMI_REG_CLIENT_MAX];
    A_UINT32 max_bw_6g_client_vlp[WMI_REG_CLIENT_MAX];
    A_UINT32 num_6g_reg_rules_ap_sp;
    A_UINT32 num_6g_reg_rules_ap_lpi;
    A_UINT32 num_6g_reg_rules_ap_vlp;
    A_UINT32 num_6g_reg_rules_client_sp[WMI_REG_CLIENT_MAX];
    A_UINT32 num_6g_reg_rules_client_lpi[WMI_REG_CLIENT_MAX];
    A_UINT32 num_6g_reg_rules_client_vlp[WMI_REG_CLIENT_MAX];
/*
 * This fixed_param TLV is followed by wmi_regulatory_rule_ext struct TLV array.
 * Within the reg rule ext TLV array, the 2G elements occur first,
 * then the 5G elements, then the 6G elements (AP SG, AP LPI, AP VLP,
 * client SP x4, client LPI x4, client vlp x4).
 */
} wmi_reg_chan_list_cc_event_ext_fixed_param;
typedef struct {
    A_UINT32  tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_11d_scan_start_cmd_fixed_param */
    A_UINT32  vdev_id;
+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_ 906
#define __WMI_REVISION_ 910

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