Merge 9ea024200a on remote branch

Change-Id: Iddc2f0ff90dfc9638a2e7dbe16ba9962cec6586a
This commit is contained in:
Linux Build Service Account 2023-03-10 14:07:08 -08:00
commit be117bea66
7 changed files with 432 additions and 20 deletions

View file

@ -241,9 +241,11 @@
* 3.114 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_SOC_START_PRE_RESET def.
* 3.115 Add HTT_H2T_MSG_TYPE_RX_CCE_SUPER_RULE_SETUP and
* HTT_T2H_MSG_TYPE_RX_CCE_SUPER_RULE_SETUP_DONE msg defs.
* 3.116 Add HTT_TX_MONITOR_CFG_WORD_MASK_COMPACTION_ENABLE flag.
* 3.117 Add HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND def.
*/
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 115
#define HTT_CURRENT_VERSION_MINOR 117
#define HTT_NUM_TX_FRAG_DESC 1024
@ -7141,7 +7143,8 @@ PREPACK struct htt_tx_monitor_cfg_t {
filter_in_tx_msdu_end_mgmt: 1,
filter_in_tx_msdu_end_ctrl: 1,
filter_in_tx_msdu_end_data: 1,
rsvd3: 17;
word_mask_compaction_enable: 1,
rsvd3: 16;
A_UINT32 tlv_filter_mask_in0;
A_UINT32 tlv_filter_mask_in1;
A_UINT32 tlv_filter_mask_in2;
@ -7411,6 +7414,18 @@ PREPACK struct htt_tx_monitor_cfg_t {
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_WORD_MASK_COMPACTION_ENABLE_M 0x00008000
#define HTT_TX_MONITOR_CFG_WORD_MASK_COMPACTION_ENABLE_S 15
#define HTT_TX_MONITOR_CFG_WORD_MASK_COMPACTION_ENABLE_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_WORD_MASK_COMPACTION_ENABLE_M) >> \
HTT_TX_MONITOR_CFG_WORD_MASK_COMPACTION_ENABLE_S)
#define HTT_TX_MONITOR_CFG_WORD_MASK_COMPACTION_ENABLE_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_WORD_MASK_COMPACTION_ENABLE, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_WORD_MASK_COMPACTION_ENABLE_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_M 0xffffffff
#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_S 0
#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_GET(_var) \
@ -10538,6 +10553,7 @@ enum htt_t2h_msg_type {
HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN = 0x31,
HTT_T2H_MSG_TYPE_RX_DELBA_EXTN = 0x32,
HTT_T2H_MSG_TYPE_RX_CCE_SUPER_RULE_SETUP_DONE = 0x33,
HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND = 0x34,
HTT_T2H_MSG_TYPE_TEST,
@ -19900,5 +19916,81 @@ PREPACK struct htt_rx_cce_super_rule_setup_done_t {
((_var) |= ((_val) << HTT_RX_CCE_SUPER_RULE_SETUP_DONE_CFG_RESULT_1_S)); \
} while (0)
/**
* @brief target -> host CoDel MSDU queue latencies array configuration
*
* MSG_TYPE => HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND
*
* @details
* The HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND message is used
* by the target to inform the host of the location and size of the DDR array of
* per MSDU queue latency metrics. This array is updated by the host and
* read by the target. The target uses these metric values to determine
* which MSDU queues have latencies exceeding their CoDel latency target.
*
* |31 16|15 8|7 0|
* |-------------------------------------------+----------|
* | number of array elements | reserved | MSG_TYPE |
* |-------------------------------------------+----------|
* | array physical address, low bits |
* |------------------------------------------------------|
* | array physical address, high bits |
* |------------------------------------------------------|
* Header fields:
* - MSG_TYPE
* Bits 7:0
* Purpose: Identifies this as a CoDel MSDU queue latencies
* array configuration message.
* Value: (HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND)
* - NUM_ELEM
* Bits 31:16
* Purpose: Inform the host of the length of the MSDU queue latencies array.
* Value: Specifies the number of elements in the MSDU queue latency
* metrics array. This value is the same as the maximum number of
* MSDU queues supported by the target.
* Since each array element is 16 bits, the size in bytes of the
* MSDU queue latency metrics array is twice the number of elements.
* - PADDR_LOW
* Bits 31:0
* Purpose: Inform the host of the MSDU queue latencies array's location.
* Value: Lower 32 bits of the physical address of the MSDU queue latency
* metrics array.
* - PADDR_HIGH
* Bits 31:0
* Purpose: Inform the host of the MSDU queue latencies array's location.
* Value: Upper 32 bits of the physical address of the MSDU queue latency
* metrics array.
*/
typedef struct {
A_UINT32 msg_type: 8, /* bits 7:0 */
reserved: 8, /* bits 15:8 */
num_elem: 16; /* bits 31:16 */
A_UINT32 paddr_low;
A_UINT32 paddr_high;
} htt_t2h_codel_msduq_latencies_array_cfg_int_t;
#define HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_SIZE 12 /* bytes */
#define HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_INT_NUM_ELEM_M 0xffff0000
#define HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_INT_NUM_ELEM_S 16
#define HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_INT_NUM_ELEM_GET(_var) \
(((_var) & HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_INT_NUM_ELEM_M) >> \
HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_INT_NUM_ELEM_S)
#define HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_INT_NUM_ELEM_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL( \
HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_INT_NUM_ELEM, _val); \
((_var) |= ((_val) << \
HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_INT_NUM_ELEM_S)); \
} while (0)
/*
* This CoDel MSDU queue latencies array whose location and number of
* elements are specified by this HTT_T2H message consists of 16-bit elements
* that each specify a statistical summary (min) of a MSDU queue's latency,
* using microseconds units.
*/
#define HTT_CODEL_MSDUQ_LATENCIES_ARRAY_ELEM_BYTES 2
#endif

View file

@ -1,6 +1,6 @@
/*
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@ -1796,6 +1796,19 @@ typedef enum HTT_PPDU_STATS_RESP_PPDU_TYPE HTT_PPDU_STATS_RESP_PPDU_TYPE;
((_var) |= ((_val) << HTT_PPDU_STATS_USER_RATE_TLV_PUNC_PATTERN_BITMAP_S)); \
} while (0)
#define HTT_PPDU_STATS_USER_RATE_TLV_EXTRA_EHT_LTF_M 0x00010000
#define HTT_PPDU_STATS_USER_RATE_TLV_EXTRA_EHT_LTF_S 16
#define HTT_PPDU_STATS_USER_RATE_TLV_EXTRA_EHT_LTF_GET(_var) \
(((_var) & HTT_PPDU_STATS_USER_RATE_TLV_EXTRA_EHT_LTF_M) >> \
HTT_PPDU_STATS_USER_RATE_TLV_EXTRA_EHT_LTF_S)
#define HTT_PPDU_STATS_USER_RATE_TLV_EXTRA_EHT_LTF_SET (_var , _val) \
do { \
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_USER_RATE_TLV_EXTRA_EHT_LTF, _val); \
((_var) |= ((_val) << HTT_PPDU_STATS_USER_RATE_TLV_EXTRA_EHT_LTF_S)); \
} while (0)
typedef enum HTT_PPDU_STATS_RU_SIZE {
HTT_PPDU_STATS_RU_26,
HTT_PPDU_STATS_RU_52,
@ -1981,9 +1994,12 @@ typedef struct {
/*
* BIT [15:0] :- Punctured BW bitmap pattern to indicate which BWs are
* punctured.
* BIT 16 :- flag showing whether EHT extra LTF is applied
* for current PPDU
*/
A_UINT32 punc_pattern_bitmap: 16,
reserved4: 16;
extra_eht_ltf: 1,
reserved4: 15;
} htt_ppdu_stats_user_rate_tlv;
#define HTT_PPDU_STATS_USR_RATE_VALID_M 0x80000000

View file

@ -1,6 +1,6 @@
/*
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@ -1481,6 +1481,17 @@ typedef struct _htt_tx_tid_stats_v1_tlv {
A_UINT32 mlo_flush_partner_info_high;
A_UINT32 mlo_flush_initator_info_low;
A_UINT32 mlo_flush_initator_info_high;
/*
* head_msdu_tqm_timestamp_us:
* MSDU enqueue timestamp (TQM reference timestamp) for the MSDU
* at the head of the MPDU queue
* head_msdu_tqm_latency_us:
* The age of the MSDU that is at the head of the MPDU queue,
* i.e. the delta between the current TQM time and the MSDU's
* enqueue timestamp.
*/
A_UINT32 head_msdu_tqm_timestamp_us;
A_UINT32 head_msdu_tqm_latency_us;
} htt_tx_tid_stats_v1_tlv;
#define HTT_RX_TID_STATS_SW_PEER_ID_M 0x0000ffff
@ -4980,6 +4991,8 @@ typedef struct {
A_UINT32 ax_su_embedded_trigger_data_ppdu_err;
/** sta side trigger stats */
A_UINT32 trigger_type_11be[HTT_TX_PDEV_STATS_NUM_11BE_TRIGGER_TYPES];
/** Stats for Extra EHT LTF */
A_UINT32 extra_eht_ltf;
} htt_tx_pdev_rate_stats_tlv;
typedef struct {
@ -7494,13 +7507,13 @@ typedef struct {
/** rx_pkt_cnt -
* Received EOP (end-of-packet) count per packet type;
* [0] = 11a; [1] = 11b; [2] = 11n; [3] = 11ac; [4] = 11ax; [5] = GF
* [6-7]=RSVD
* [6] = EHT; [7]=RSVD; [6] = Applicable only for BE
*/
A_UINT32 rx_pkt_cnt[HTT_MAX_RX_PKT_CNT];
/** rx_pkt_crc_pass_cnt -
* Received EOP (end-of-packet) count per packet type;
* [0] = 11a; [1] = 11b; [2] = 11n; [3] = 11ac; [4] = 11ax; [5] = GF
* [6-7]=RSVD
* [6] = EHT; [7]=RSVD; [6] = Applicable only for BE
*/
A_UINT32 rx_pkt_crc_pass_cnt[HTT_MAX_RX_PKT_CRC_PASS_CNT];
/** per_blk_err_cnt -
@ -7522,12 +7535,12 @@ typedef struct {
A_UINT32 rx_ota_err_cnt[HTT_MAX_RX_OTA_ERR_CNT];
/** rx_pkt_cnt_ext -
* Received EOP (end-of-packet) count per packet type for BE;
* [0] = EHT; [1] = WUR; [2] = AZ; [3]=RVSD
* [0] = WUR; [1] = AZ; [2-3]=RVSD
*/
A_UINT32 rx_pkt_cnt_ext[HTT_MAX_RX_PKT_CNT_EXT];
/** rx_pkt_crc_pass_cnt_ext -
* Received EOP (end-of-packet) count per packet type for BE;
* [0] = EHT; [1] = WUR; [2] = AZ; [3]=RVSD
* [0] = WUR; [1] = AZ; [2-3]=RVSD
*/
A_UINT32 rx_pkt_crc_pass_cnt_ext[HTT_MAX_RX_PKT_CRC_PASS_CNT_EXT];
/** rx_pkt_mu_cnt -

View file

@ -1,6 +1,6 @@
/*
* Copyright (c) 2013-2016, 2018-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@ -458,6 +458,10 @@ typedef struct {
A_UINT32 low_5ghz_chan;
A_UINT32 high_5ghz_chan;
A_UINT32 wireless_modes_ext; /* REGDMN MODE ext */
A_UINT32 low_2ghz_chan_ext;
A_UINT32 high_2ghz_chan_ext;
A_UINT32 low_5ghz_chan_ext;
A_UINT32 high_5ghz_chan_ext;
} HAL_REG_CAPABILITIES;
#ifdef NUM_SPATIAL_STREAM
@ -972,8 +976,7 @@ struct wlan_dbg_mem_stats {
};
struct wlan_dbg_peer_stats {
A_INT32 dummy; /* REMOVE THIS ONCE REAL PEER STAT COUNTERS ARE ADDED */
A_INT32 dummy; /* REMOVE THIS ONCE REAL PEER STAT COUNTERS ARE ADDED */
};
/*
@ -1017,7 +1020,7 @@ typedef struct {
* TEMPORARY: leave rssi_chain3 in place for AR900B builds until code using
* rssi_chain3 has been converted to use wlan_dbg_rx_rate_info_v2_t.
*/
A_UINT32 rssi_chain3;
A_UINT32 rssi_chain3;
} wlan_dbg_rx_rate_info_v1b_t;
#if defined(AR900B)

View file

@ -1336,6 +1336,12 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_tdma_schedule_request_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_hpa_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_hpa_evt_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_set_tgtr2p_table_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_set_tgtr2p_table_event_fixed_param,
WMITLV_TAG_STRUC_wmi_peer_bulk_set_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_peer_preferred_link_map,
WMITLV_TAG_STRUC_wmi_scan_blanking_params_info,
WMITLV_TAG_STRUC_wmi_peer_list,
} WMITLV_TAG_ID;
/*
@ -1854,6 +1860,8 @@ typedef enum {
OP(WMI_ESL_EGID_CMDID) \
OP(WMI_TDMA_SCHEDULE_REQUEST_CMDID) \
OP(WMI_HPA_CMDID) \
OP(WMI_PDEV_SET_TGTR2P_TABLE_CMDID) \
OP(WMI_PEER_BULK_SET_CMDID) \
/* add new CMD_LIST elements above this line */
@ -2153,6 +2161,7 @@ typedef enum {
OP(WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_EVENTID) \
OP(WMI_TAS_POWER_HISTORY_EVENTID) \
OP(WMI_HPA_EVENTID) \
OP(WMI_PDEV_SET_TGTR2P_TABLE_EVENTID) \
/* add new EVT_LIST elements above this line */
@ -4796,6 +4805,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CFR_CAPTURE_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_chan_width_peer_list, peer_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CHAN_WIDTH_SWITCH_CMDID);
/* BULK Peer Set command */
#define WMITLV_TABLE_WMI_PEER_BULK_SET_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_bulk_set_cmd_fixed_param, wmi_peer_bulk_set_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_list, peer_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_BULK_SET_CMDID);
/* OBSS_PD Spatial_Reuse Set Default OBSS Thresholds */
#define WMITLV_TABLE_WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param, wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@ -5065,7 +5080,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_TEARDOWN_CMDID);
/** WMI cmd used to setup Tid to Link Mapping for a MLO Peer */
#define WMITLV_TABLE_WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tid_to_link_map_fixed_param, wmi_peer_tid_to_link_map_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tid_to_link_map, tid_to_link_map, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tid_to_link_map, tid_to_link_map, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_preferred_link_map, peer_preferred_link_map, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID);
/** WMI cmd used to setup Tid to Link Mapping for a vdev */
@ -5270,6 +5286,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_TDMA_SCHEDULE_REQUEST_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_HPA_CMDID);
/* WMI cmd to set target rate to power table */
#define WMITLV_TABLE_WMI_PDEV_SET_TGTR2P_TABLE_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_tgtr2p_table_cmd_fixed_param, wmi_pdev_set_tgtr2p_table_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_INT8, r2p_array, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_TGTR2P_TABLE_CMDID);
/************************** TLV definitions of WMI events *******************************/
@ -5450,7 +5472,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_TX_POWER_EVENTID);
/* Channel Info Event */
#define WMITLV_TABLE_WMI_CHAN_INFO_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chan_info_event_fixed_param, wmi_chan_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chan_info_event_fixed_param, wmi_chan_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_scan_blanking_params_info, scan_blanking_params, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_CHAN_INFO_EVENTID);
/* RSSI dB to dBm conversion params info event to host */
@ -7147,6 +7170,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hpa_evt_fixed_param, wmi_hpa_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_HPA_EVENTID);
/* WMI target rate to power table return status event */
#define WMITLV_TABLE_WMI_PDEV_SET_TGTR2P_TABLE_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_tgtr2p_table_event_fixed_param, wmi_pdev_set_tgtr2p_table_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_TGTR2P_TABLE_EVENTID);
#ifdef __cplusplus

View file

@ -515,6 +515,8 @@ typedef enum {
WMI_PDEV_FEATURESET_CMDID,
/** tag as Filter Pass category and the filters set for FP mode */
WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID,
/* WMI cmd to set Target rate to power table */
WMI_PDEV_SET_TGTR2P_TABLE_CMDID,
/* VDEV (virtual device) specific commands */
/** vdev create */
@ -743,6 +745,8 @@ typedef enum {
/* Set disabled scheduler modes for one or more peers */
WMI_PEER_SCHED_MODE_DISABLE_CMDID,
/* Group SET cmd for PEERS */
WMI_PEER_BULK_SET_CMDID,
/* beacon/management specific commands */
@ -1715,6 +1719,9 @@ typedef enum {
/* Event to indicate Schedule tid queue suspended info */
WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID,
/* Event to send target rate to power table update status */
WMI_PDEV_SET_TGTR2P_TABLE_EVENTID,
/* VDEV specific events */
/** VDEV started event in response to VDEV_START request */
@ -8998,6 +9005,21 @@ typedef enum {
* 4..31 | RESERVED
*/
WMI_PDEV_PARAM_SET_DISABLED_SCHED_MODES,
/*
* Override default FW behavior and explicitly enable / disable
* to allow frames without encryption when no encryption is set.
*
*/
WMI_PDEV_PARAM_BYPASS_ENCRYPTION,
/*
* Param to Enable/Disable scan blanking feature on the Scan Radio
* Host should ensure to send this param only for Scan Radio
* The WMI_SCAN_BLANKING_MODE enum specifies the possible values for this parameter.
* Based on the received input, the scan blanking feature will be carried out as explained in the enum WMI_SCAN_BLANKING_MODE
*/
WMI_PDEV_PARAM_SET_SCAN_BLANKING_MODE,
} WMI_PDEV_PARAM;
#define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
@ -17113,6 +17135,9 @@ typedef struct {
*/
#define WMI_PEER_CHWIDTH_PUNCTURE_20MHZ_BITMAP 0x27
#define WMI_PEER_SET_TX_POWER 0x28
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param */
/** unique id identifying the VDEV, generated by the caller */
@ -17698,8 +17723,49 @@ typedef struct {
* If per_chain_noise_floor value is 0 then it should be ignored.
*/
A_UINT32 per_chain_noise_floor[WMI_MAX_CHAINS];
/**
* Following this structure is the optional TLV:
* struct wmi_scan_blanking_params_info[0/1];
*/
} wmi_chan_info_event_fixed_param;
/**
* The below structure contains parameters related to the scan radio
* blanking feature
*/
typedef struct {
/* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_blanking_params_info */
A_UINT32 tlv_header;
/* scan_radio_blanking_duration:
* Cumulative scan disabled duration which indicates the total time in
* micro seconds where rx blanking was enabled on the scan radio due to
* simultaneous transmissions on the same band in the serving radio.
*/
A_UINT32 scan_radio_blanking_duration;
/* scan_radio_blanking_count:
* Count of the number of times rx blanking was enabled on the scan radio
* due to simultaneous transmissions on the same band in the serving radio.
*/
A_UINT32 scan_radio_blanking_count;
} wmi_scan_blanking_params_info;
typedef enum {
/* Blanking feature will be disabled */
WMI_SCAN_BLANKING_DISABLED = 0,
/* Blanking enabled only on current operating band */
WMI_SCAN_BLANKING_ENABLED,
/*
* Blanking enabled on both 5GHz and 6GHz bands when scan radio
* home channel is on either 5GHz or 6GHz bands
*/
WMI_SCAN_BLANKING_ENABLED_NO_ISOLATION,
WMI_SCAN_BLANKING_MAX,
} WMI_SCAN_BLANKING_MODE;
/**
* The below three structures are the params used for converting RSSI
* from dB to dBm units.
@ -25324,10 +25390,15 @@ typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_key_material_ext */
A_UINT32 tlv_header;
/*
* key_buffer contains kck,kck2,kek,kek2,replay counter, in order
* The split between kck vs. kek should be known to host based on akmp.
* key_buffer contains kck,kck2,kek,kek2,replay counter, in order.
* If both the below kck_len and kek_len fields are 0x0, the split
* between kck vs. kek should be inferred based on akmp.
*/
A_UINT8 key_buffer[GTK_OFFLOAD_KEK_EXTENDED_BYTES+GTK_OFFLOAD_KCK_EXTENDED_BYTES+GTK_REPLAY_COUNTER_BYTES];
/* length of kck in key_buffer */
A_UINT32 kck_len;
/* length of kek in key_buffer */
A_UINT32 kek_len;
} wmi_key_material_ext;
typedef struct {
@ -29790,6 +29861,24 @@ typedef struct {
#define WMI_LATENCY_SET_MSDUQ_ID(latency_tid_info,val) \
WMI_SET_BITS(latency_tid_info, WMI_LATENCY_MSDUQ_ID_BIT_POS, WMI_LATENCY_MSDUQ_ID_NUM_BITS, val)
#define WMI_LATENCY_DISABLE_UL_OFDMA_BIT_POS 18
#define WMI_LATENCY_DISABLE_UL_OFDMA_NUM_BITS 1
#define WMI_LATENCY_GET_DISABLE_UL_OFDMA(latency_tid_info) \
WMI_GET_BITS(latency_tid_info, WMI_LATENCY_DISABLE_UL_OFDMA_BIT_POS, WMI_LATENCY_DISABLE_UL_OFDMA_NUM_BITS)
#define WMI_LATENCY_SET_DISABLE_UL_OFDMA(latency_tid_info,val) \
WMI_SET_BITS(latency_tid_info, WMI_LATENCY_DISABLE_UL_OFDMA_BIT_POS, WMI_LATENCY_DISABLE_UL_OFDMA_NUM_BITS, val)
#define WMI_LATENCY_DISABLE_UL_MU_MIMO_BIT_POS 19
#define WMI_LATENCY_DISABLE_UL_MU_MIMO_NUM_BITS 1
#define WMI_LATENCY_GET_DISABLE_UL_MU_MIMO(latency_tid_info) \
WMI_GET_BITS(latency_tid_info, WMI_LATENCY_DISABLE_UL_MU_MIMO_BIT_POS, WMI_LATENCY_DISABLE_UL_MU_MIMO_NUM_BITS)
#define WMI_LATENCY_SET_DISABLE_UL_MU_MIMO(latency_tid_info,val) \
WMI_SET_BITS(latency_tid_info, WMI_LATENCY_DISABLE_UL_MU_MIMO_BIT_POS, WMI_LATENCY_DISABLE_UL_MU_MIMO_NUM_BITS, val)
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_tid_latency_info
@ -29833,7 +29922,13 @@ typedef struct {
*/
A_UINT32 min_tput;
/* latency_tid_info
* Bits 18-31 - Reserved (Shall be zero)
* Bits 20-31 - Reserved (Shall be zero)
* Bit 19 - Disable UL MU-MIMO. If set, UL MU-MIMO is disabled
* for the specified AC. Note that TID level control is
* not possible for UL MU-MIMO (the granularity is AC).
* Bit 18 - Disable UL OFDMA. If set, UL OFDMA is disabled for
* the specified AC. Note that TID level control is not
* possible for UL OFDMA (the granularity is AC).
* Bits 14-17 - MSDU queue flow id within the TID for configuring
* latency info per MSDU flow queue
* Bit 12-13 - burst size sum. Bit to indicate whether to add or
@ -32039,6 +32134,10 @@ typedef struct {
A_UINT32 phy_id;
/* regdomain value specified in EEPROM */
A_UINT32 wireless_modes_ext;
A_UINT32 low_2ghz_chan_ext; /* freq in MHz */
A_UINT32 high_2ghz_chan_ext; /* freq in MHz */
A_UINT32 low_5ghz_chan_ext; /* freq in MHz */
A_UINT32 high_5ghz_chan_ext; /* freq in MHz */
} WMI_HAL_REG_CAPABILITIES_EXT2;
/*
@ -33144,6 +33243,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_ESL_EGID_CMDID);
WMI_RETURN_STRING(WMI_TDMA_SCHEDULE_REQUEST_CMDID);
WMI_RETURN_STRING(WMI_HPA_CMDID);
WMI_RETURN_STRING(WMI_PDEV_SET_TGTR2P_TABLE_CMDID); /* To set target rate to power table */
}
return (A_UINT8 *) "Invalid WMI cmd";
@ -37026,6 +37126,36 @@ typedef struct {
*/
} wmi_peer_chan_width_switch_cmd_fixed_param;
#define WMI_PEER_BULK_SET_VDEV_ID(comp, value) WMI_SET_BITS(comp, 0, 8, value)
#define WMI_PEER_BULK_GET_VDEV_ID(comp) WMI_GET_BITS(comp, 0, 8)
/* bits 30:8 currently unused */
#define WMI_PEER_BULK_SET_VALID_VDEV_ID(comp) WMI_SET_BITS(comp, 31, 1, 1)
#define WMI_PEER_BULK_GET_VALID_VDEV_ID(comp) WMI_GET_BITS(comp, 31, 1)
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUCT_wmi_peer_list */
wmi_mac_addr peer_macaddr;
/** parameter id */
A_UINT32 param_id;
A_UINT32 param_value;
} wmi_peer_list;
/* WMI_PEER_BULK_SET_CMDID */
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_bulk_set_cmd_fixed_param */
/* vdev_var:
* The MSb (bit 31) indicates that the vdev_id is valid.
* The LSB (bits 0-7) is used to infer the actual vdev_id.
* The other bits can be used for future enhancements.
*/
A_UINT32 vdev_var;
/*
* Following this structure is the TLV array:
* struct wmi_peer_list peer_info[];
*/
} wmi_peer_bulk_set_cmd_fixed_param;
typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_he_tb_action_frm_cmd_fixed_param */
A_UINT32 tlv_header;
@ -40409,6 +40539,31 @@ typedef struct {
A_UINT32 tid_to_link_map_info;
} wmi_tid_to_link_map;
#define WMI_MAX_NUM_PREFERRED_LINKS 4
typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_preferred_link_map */
A_UINT32 tlv_header;
/* num_preferred_links:
* If it is 0, all links are equally preferred and which link to be used
* in each schedule is decided by FW.
*/
A_UINT32 num_preferred_links;
/* [0] - highest preferred link, [1] - 2nd preferred link, etc. */
A_UINT32 preferred_link_order[WMI_MAX_NUM_PREFERRED_LINKS];
/* expected_max_latency_ms:
* 0 - Expected Max Latency to be estimated in Firmware
* Non 0 - Firmware should try to achieve given max latency
* in first preferred link.
* If unable to meet in first preferred link, start scheduling
* in next preferred link and so on.
*/
A_UINT32 expected_max_latency_ms[WLAN_MAX_AC];
} wmi_peer_preferred_link_map;
typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_tid_to_link_map_fixed_param */
A_UINT32 tlv_header;
@ -40420,7 +40575,10 @@ typedef struct {
/**
* Following this structure is the TLV:
* struct wmi_tid_to_link_map tid_to_link_map[];
* - struct wmi_tid_to_link_map tid_to_link_map[];
* - struct wmi_peer_preferred_link_map peer_preferred_link_map[];
* Note - TLV array of peer_preferred_link_map has either 0 or 1
* entries, not multiple entries.
*/
} wmi_peer_tid_to_link_map_fixed_param;
@ -40910,6 +41068,15 @@ typedef struct {
A_UINT32 cust_bdf_ver_minor;
} wmi_cust_bdf_version_capabilities;
enum WMI_CODEL_ENABLE_VALUES {
WMI_CODEL_DISABLED,
WMI_CODEL_ENABLED,
/* WMI_CODEL_DEBUG:
* partly enabled – track interval and check target, but don’t drop
*/
WMI_CODEL_DEBUG,
};
typedef enum {
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_MIN_THRUPUT = 0,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_MAX_THRUPUT = 0xffffffff,
@ -40921,8 +41088,14 @@ typedef enum {
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_TID = 0xffffffff,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_MSDU_LOSS_RATE = 0,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_DISABLED_SCHED_MODE = 0,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_CODEL_ENABLED = WMI_CODEL_DISABLED,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_CODEL_LATENCY_TARGET_MS = 0xffffffff,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_CODEL_INTERVAL_MS = 0xffffffff,
} WMI_SAWF_SVC_CLASS_PARAM_DEFAULTS;
#define WMI_CODEL_INTERVAL_MAX_MS 0x0000ffff
#define WMI_CODEL_LATENCY_TARGET_MAX_MS 0x00003fff
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sawf_svc_class_cfg_cmd_fixed_param */
A_UINT32 svc_class_id; /* which service class is being configured */
@ -41013,6 +41186,33 @@ typedef struct {
* The WMI_SCHED_MODE_FLAGS enum defines the bit positions for each mode.
*/
A_UINT32 disabled_sched_modes;
A_UINT32 codel_enabled; /* contains a WMI_CODEL_ENABLE_VALUES enum value */
/* codel_latency_target_ms:
* The codel_latency_target_ms field specifies the latency target for
* MSDU queues belonging to this service class.
* The latency of each such MSDU queue will periodically be checked
* (with the periodicity controlled by the code_interval_ms parameter).
* If the MSDU queue's latency is above this target latency, a MSDU will
* be dropped from the head of the queue, to attempt to get the flow's
* producer to scale down its rate of MSDU production.
* This value should be roughly 10% to 30% of the codel_interval_ms value.
* This value must be <= WMI_CODEL_LATENCY_TARGET_MAX_MS (or must equal
* WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_CODEL_LATENCY_TARGET_MS).
*/
A_UINT32 codel_latency_target_ms;
/* codel_interval_ms:
* The codel_interval_ms field specifies the baseline interval between
* successive checks that a given MSDU queue's latency is under the
* CoDel target latency.
* If in a given interval a MSDU queue has a latency exceeding the target,
* the duration of the subsequent interval for that MSDU queue will be
* reduced. The interval will get reset to the baseline interval when
* the MSDU queue's latency is again under the CoDel target latency.
* This value must be <= WMI_CODEL_INTERVAL_MAX_MS (or must equal
* WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_CODEL_INTERVAL_MS).
*/
A_UINT32 codel_interval_ms;
} wmi_sawf_svc_class_cfg_cmd_fixed_param;
typedef struct {
@ -41464,6 +41664,66 @@ typedef struct {
A_UINT32 ecwmax[WMI_AC_MAX];
} wmi_tdma_schedule_request_cmd_fixed_param;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_tgtr2p_table _fixed_param */
A_UINT32 pdev_id;
/* freq_band:
* Indicates the intended FreqBand for updating targetPowerR2PTable.
* 0: 5G
* 1: 2G
* 2: 6G
*/
A_UINT32 freq_band;
/* sub_band:
* Denotes band defined in targetPowerR2PFreqRangexG BDF fields.
* Valid values for each target is listed below
* For 11AX targets,
* 2G - 0
* 5G/6G - 0/1/2
*
* For 11BE targets,
* 2G - 0
* 5G/6G - 0/1
*/
A_UINT32 sub_band;
/* is_ext:
* Applicable only for 11BE targets
* 0 - Default targetPowerR2PTable
* 1 - To update targetPowerR2PTable in extension fields
* For 11AX targets, value is expected to be 0.
*/
A_UINT32 is_ext;
A_UINT32 target_type; /* 0 - IPQ95xx, 1 - QCN90xx, 0x10 - QCN92xx */
A_UINT32 r2p_array_len; /* length of targetPowerR2PTable */
/* end_of_r2ptable_update:
* This field can be used to indicate FW to trigger update of SW structures
* once user has updated for all the sub-bands of the Frequency band.
* This would be used when there are multiple sub-bands.
*/
A_UINT32 end_of_r2ptable_update;
/*
* Following this structure is the TLV containing targetPowerR2PTablexG
* of type INT8 and with a unit of 0.25dBm.
*/
} wmi_pdev_set_tgtr2p_table_cmd_fixed_param;
typedef enum {
WMI_PDEV_TGTR2P_SUCCESS = 0,
WMI_PDEV_TGTR2P_SUCCESS_WAITING_FOR_END_OF_UPDATE,
WMI_PDEV_TGTR2P_ERROR_INVALID_FREQ_BAND,
WMI_PDEV_TGTR2P_ERROR_INVALID_SUB_BAND,
WMI_PDEV_TGTR2P_ERROR_EXTENSION_FIELDS_NOT_ENABLED_IN_BDF,
WMI_PDEV_TGTR2P_ERROR_INVALID_TARGET_TPYE,
WMI_PDEV_TGTR2P_ERROR_R2P_ARRAY_LEN_MISMATCH,
} wmi_pdev_set_tgtr2p_event_status_type;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_tgtr2p_table_event_fixed_param */
A_UINT32 status; /* enum wmi_pdev_set_tgtr2p_event_status_type to indicate the status code/result */
} wmi_pdev_set_tgtr2p_table_event_fixed_param;
/* ADD NEW DEFS HERE */

View file

@ -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_ 1260
#define __WMI_REVISION_ 1270
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work