Merge b1d6f5963f on remote branch

Change-Id: I7ba2dbf0746bfbc0992b5ab6c0f8bf71dbcb0700
This commit is contained in:
Linux Build Service Account 2023-11-28 00:02:59 -08:00
commit 5495d239c7
6 changed files with 156 additions and 10 deletions

View file

@ -255,9 +255,10 @@
* 3.127 Add transmit_count fields in htt_tx_wbm_completion_vX structs.
* 3.128 Add H2T TX_LATENCY_STATS_CFG + T2H TX_LATENCY_STATS_PERIODIC_IND
* msg defs
* 3.129 Add HTT_TX_FW2WBM_REINJECT_REASON_SAWF_SVC_CLASS_ID_ABSENT def.
*/
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 128
#define HTT_CURRENT_VERSION_MINOR 129
#define HTT_NUM_TX_FRAG_DESC 1024
@ -2767,6 +2768,7 @@ typedef enum {
HTT_TX_FW2WBM_REINJECT_REASON_DHCP,
HTT_TX_FW2WBM_REINJECT_REASON_FLOW_CONTROL,
HTT_TX_FW2WBM_REINJECT_REASON_MLO_MCAST,
HTT_TX_FW2WBM_REINJECT_REASON_SAWF_SVC_CLASS_ID_ABSENT,
HTT_TX_FW2WBM_REINJECT_REASON_MAX,
} htt_tx_fw2wbm_reinject_reason_t;
@ -3224,14 +3226,73 @@ PREPACK struct htt_tx_wbm_transmit_status {
* used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_REINJECT.
*/
PREPACK struct htt_tx_wbm_reinject_status {
A_UINT32
sw_peer_id : 16,
data_length : 16;
A_UINT32
tid : 5,
msduq_idx : 4,
reserved1 : 23;
A_UINT32
reserved0: 32;
A_UINT32
reserved1: 32;
A_UINT32
reserved2: 32;
reserved2: 32;
} POSTPACK;
#define HTT_TX_WBM_REINJECT_SW_PEER_ID_M 0x0000ffff
#define HTT_TX_WBM_REINJECT_SW_PEER_ID_S 0
#define HTT_TX_WBM_REINJECT_DATA_LEN_M 0xffff0000
#define HTT_TX_WBM_REINJECT_DATA_LEN_S 16
#define HTT_TX_WBM_REINJECT_TID_M 0x0000001f
#define HTT_TX_WBM_REINJECT_TID_S 0
#define HTT_TX_WBM_REINJECT_MSDUQ_ID_M 0x000001e0
#define HTT_TX_WBM_REINJECT_MSDUQ_ID_S 5
#define HTT_TX_WBM_REINJECT_SW_PEER_ID_GET(_var)\
(((_var) & HTT_TX_WBM_REINJECT_SW_PEER_ID_M) >>\
HTT_TX_WBM_REINJECT_SW_PEER_ID_S)\
#define HTT_TX_WBM_REINJECT_SW_PEER_ID_SET(_var, _val)\
do {\
HTT_CHECK_SET_VAL(HTT_TX_WBM_REINJECT_SW_PEER_ID, _val); \
((_var) |= ((_val) << HTT_TX_WBM_REINJECT_SW_PEER_ID_S));\
} while(0)
#define HTT_TX_WBM_REINJECT_DATA_LEN_GET(_var)\
(((_var) & HTT_TX_WBM_REINJECT_DATA_LEN_M) >>\
HTT_TX_WBM_REINJECT_DATA_LEN_S)\
#define HTT_TX_WBM_REINJECT_DATA_LEN_SET(_var, _val)\
do {\
HTT_CHECK_SET_VAL(HTT_TX_WBM_REINJECT_DATA_LEN, _val); \
((_var) |= ((_val) << HTT_TX_WBM_REINJECT_DATA_LEN_S));\
} while(0)
#define HTT_TX_WBM_REINJECT_TID_GET(_var)\
(((_var) & HTT_TX_WBM_REINJECT_TID_M) >>\
HTT_TX_WBM_REINJECT_TID_S)\
#define HTT_TX_WBM_REINJECT_TID_SET(_var, _val)\
do {\
HTT_CHECK_SET_VAL(HTT_TX_WBM_REINJECT_TID, _val); \
((_var) |= ((_val) << HTT_TX_WBM_REINJECT_TID_S));\
} while(0)
#define HTT_TX_WBM_REINJECT_MSDUQ_ID_GET(_var)\
(((_var) & HTT_TX_WBM_REINJECT_MSDUQ_ID_M) >>\
HTT_TX_WBM_REINJECT_MSDUQ_ID_S)\
#define HTT_TX_WBM_REINJECT_MSDUQ_ID_SET(_var, _val)\
do {\
HTT_CHECK_SET_VAL(HTT_TX_WBM_REINJECT_MSDUQ_ID, _val); \
((_var) |= ((_val) << HTT_TX_WBM_REINJECT_MSDUQ_ID_S));\
} while(0)
/**
* @brief HTT TX WBM multicast echo check notification from firmware to host
* @details

View file

@ -9350,6 +9350,8 @@ typedef enum {
HTT_STATS_SCHED_OFDMA_TXBF_INELIGIBILITY_MAX,
} htt_stats_sched_ofdma_txbf_ineligibility_t;
#define HTT_MAX_NUM_CHAN_ACC_LAT_INTR 9
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/**
@ -9393,6 +9395,19 @@ typedef struct {
/** Num of instances where dl ofdma is disabled because there are consecutive mpdu failure */
A_UINT32 dlofdma_disabled_consec_no_mpdus_success[HTT_NUM_AC_WMM];
A_UINT32 txbf_ofdma_ineligibility_stat[HTT_STATS_SCHED_OFDMA_TXBF_INELIGIBILITY_MAX];
/** Average channel access latency histogram stats
*
* avg_chan_acc_lat_hist[0]: channel access latency is < 100 us
* avg_chan_acc_lat_hist[1]: 100 us <= channel access latency < 200 us
* avg_chan_acc_lat_hist[2]: 200 us <= channel access latency < 300 us
* avg_chan_acc_lat_hist[3]: 300 us <= channel access latency < 400 us
* avg_chan_acc_lat_hist[4]: 400 us <= channel access latency < 500 us
* avg_chan_acc_lat_hist[5]: 500 us <= channel access latency < 1000 us
* avg_chan_acc_lat_hist[6]: 1000 us <= channel access latency < 1500 us
* avg_chan_acc_lat_hist[7]: 1500 us <= channel access latency < 2000 us
* avg_chan_acc_lat_hist[8]: channel access latency is >= 2000 us
*/
A_UINT32 avg_chan_acc_lat_hist[HTT_MAX_NUM_CHAN_ACC_LAT_INTR];
} htt_stats_pdev_sched_algo_ofdma_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_pdev_sched_algo_ofdma_stats_tlv

View file

@ -645,6 +645,8 @@ typedef enum {
WMI_SERVICE_5GHZ_HI_RSSI_ROAM_SUPPORT = 392, /* Indicate FW supports High RSSI Roam from 5 GHz Band to 6 GHz Band */
WMI_SERVICE_BOTH_PSD_EIRP_FOR_AP_SP_CLIENT_SP_SUPPORT = 393, /* Support for CTL regeneration where both PSD and EIRP will be sent in 6GHZ SET_TPC WMI for SP and SP_CLIENT power modes */
WMI_SERVICE_PDEV_PARAM_IN_UTF_WMI = 394, /* FW supports receiving and sending pdev_id parameter in WMI_PDEV_UTF_(CMD/EVENT) */
WMI_SERVICE_SW_PROG_DFS_SUPPORT = 395, /* Indicate FW support SW progressive DFS */
WMI_SERVICE_MULTIPLE_REORDER_QUEUE_SETUP_SUPPORT = 396, /* Indicate FW supports multiple TID reorder queues setup in one cmd */
WMI_MAX_EXT2_SERVICE

View file

@ -1414,6 +1414,9 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_vdev_oob_connection_resp_event_fixed_param,
WMITLV_TAG_STRUC_wmi_audio_transport_switch_resp_status_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_audio_transport_switch_type_event_fixed_param,
WMITLV_TAG_STRUC_wmi_dbw_chan_info,
WMITLV_TAG_STRUC_wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_peer_per_reorder_q_setup_params_t,
} WMITLV_TAG_ID;
/*
* IMPORTANT: Please add _ALL_ WMI Commands Here.
@ -1953,6 +1956,7 @@ typedef enum {
OP(WMI_VDEV_SCHED_MODE_PROBE_REQ_CMDID) \
OP(WMI_VDEV_OOB_CONNECTION_REQ_CMDID) \
OP(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID) \
OP(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID) \
/* add new CMD_LIST elements above this line */
@ -2656,7 +2660,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_WMM_PARAMS_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_mlo_params, mlo_params, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_partner_link_params, partner_link_params, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, dbw_chan, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, dbw_chan_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_REQUEST_CMDID);
@ -2664,7 +2670,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_REQUEST_CMDID);
#define WMITLV_TABLE_WMI_VDEV_RESTART_REQUEST_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, wmi_vdev_start_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, dbw_chan, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, dbw_chan_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_RESTART_REQUEST_CMDID);
@ -4612,6 +4620,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REORDER_QUEUE_SETUP_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param, wmi_peer_reorder_queue_remove_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID);
/* peer multiple reorder queue setup cmd */
#define WMITLV_TABLE_WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param, wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_per_reorder_q_setup_params_t, reorder_params_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID);
/* Filter in monitor mode parameters Cmd */
#define WMITLV_TABLE_WMI_MNT_FILTER_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mnt_filter_cmd_fixed_param, wmi_mnt_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@ -4720,7 +4734,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, phymode_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, preferred_tx_stream_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, preferred_rx_stream_list, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, preferred_rx_stream_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, dbw_chan, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, dbw_chan_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_CMDID);
#define WMITLV_TABLE_WMI_PDEV_UPDATE_PKT_ROUTING_CMDID(id,op,buf,len) \

View file

@ -761,6 +761,9 @@ typedef enum {
/* Group SET cmd for PEERS */
WMI_PEER_BULK_SET_CMDID,
/* WMI command to setup reorder queue for multiple TIDs */
WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID,
/* beacon/management specific commands */
/** transmit beacon by reference . used for transmitting beacon on low latency interface like pcie */
@ -5923,6 +5926,7 @@ typedef enum {
#define WMI_SCAN_FLAG_EXT_RELIABLE_SCAN 0x00010000
#define WMI_SCAN_FLAG_EXT_FAST_SCAN 0x00020000
#define WMI_SCAN_FLAG_EXT_LOW_POWER_SCAN 0x00040000
#define WMI_SCAN_FLAG_EXT_STOP_IF_BSSID_FOUND 0x00080000
/**
@ -10080,6 +10084,12 @@ typedef struct {
wmi_channel chan;
} wmi_pdev_set_channel_cmd;
typedef struct {
A_UINT32 tlv_header;
/* DBW puncture bitmap */
A_UINT32 dbw_puncture_20mhz_bitmap;
} wmi_dbw_chan_info;
typedef enum {
WMI_PKTLOG_EVENT_RX = 0x00000001,
WMI_PKTLOG_EVENT_TX = 0x00000002,
@ -16971,6 +16981,10 @@ typedef struct {
* wmi_partner_link_info link_info[]; <-- partner link info
* optional TLV, only present for MLO vdevs,
* If the vdev is non-MLO the array length should be 0.
* wmi_channel dbw_chan; <-- WMI channel
* optional TLV for dbw_chan
* wmi_dbw_chan_info dbw_chan_info
* optional TLV used for dbw_chan_info
*/
} wmi_vdev_start_request_cmd_fixed_param;
@ -31738,6 +31752,39 @@ typedef struct {
* established or terminated for the TID. */
} wmi_peer_reorder_queue_setup_cmd_fixed_param;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_per_reorder_q_setup_params_t */
A_UINT32 tid; /* 0 to 15 = QoS TIDs, 16 = non-qos TID */
A_UINT32 queue_ptr_lo; /* lower 32 bits of queue desc address */
A_UINT32 queue_ptr_hi; /* upper 32 bits of queue desc address */
A_UINT32 queue_no; /* 16-bit number assigned by host for queue,
* stored in bits 15:0 of queue_no field */
A_UINT32 ba_window_size_valid; /* Is ba_window_size valid?
* 0 = Invalid, 1 = Valid */
A_UINT32 ba_window_size; /* Valid values: 0 to 256
* Host sends the message when BA session is
* established or terminated for the TID. */
} wmi_peer_per_reorder_q_setup_params_t;
/**
* This command is sent from WLAN host driver to firmware for
* plugging in reorder queue desc to hw for multiple TIDs in one shot.
*
* Example: plug-in queue desc
* host->target: WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID,
* (vdev_id = PEER vdev id,
* peer_macaddr = PEER mac addr)
*/
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param */
A_UINT32 vdev_id;
wmi_mac_addr peer_macaddr; /* peer mac address */
/*
* This struct is followed by other TLVs:
* wmi_peer_per_reorder_q_setup_params_t q_setup_params[num_queues];
*/
} wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param;
/**
* This command is sent from WLAN host driver to firmware for
* removing one or more reorder queue desc to lithium hw.
@ -37006,6 +37053,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_VDEV_SCHED_MODE_PROBE_REQ_CMDID);
WMI_RETURN_STRING(WMI_VDEV_OOB_CONNECTION_REQ_CMDID);
WMI_RETURN_STRING(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID);
WMI_RETURN_STRING(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID);
}
return (A_UINT8 *) "Invalid WMI cmd";
@ -37901,6 +37949,10 @@ typedef struct {
* with vdev ID as index.
* A_UINT32 preferred_rx_streams[]; <-- Array of preferred_rx_streams
* with vdev ID as index.
* wmi_channel dbw_chan; <-- WMI channel
* optional TLV for dbw_chan
* wmi_dbw_chan_info dbw_chan_info
* optional TLV used for dbw_chan_info
*/
} wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param;

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