Merge 43ce3eded4 on remote branch

Change-Id: I21304f5003c0798c2c74ef501245f0b694e34291
This commit is contained in:
Linux Build Service Account 2023-12-10 23:33:23 -08:00
commit 89466334b2
6 changed files with 543 additions and 25 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
@ -813,6 +814,7 @@ typedef enum {
HTT_STATS_CODEL_MSDUQ_TAG = 189, /* htt_codel_msduq_stats_tlv */
HTT_STATS_MLO_SCHED_STATS_TAG = 190, /* htt_mlo_sched_stats_tlv */
HTT_STATS_PDEV_MLO_IPC_STATS_TAG = 191, /* htt_pdev_mlo_ipc_stats_tlv */
HTT_STATS_WHAL_WSI_TAG = 192, /* htt_stats_whal_wsi_tlv */
HTT_STATS_MAX_TAG,
@ -2767,6 +2769,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 +3227,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

@ -1353,6 +1353,17 @@ typedef struct {
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_whal_tx_tlv htt_hw_stats_whal_tx_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
A_UINT32 wsib_event_watchdog_timeout;
A_UINT32 wsib_event_slave_tlv_length_error;
A_UINT32 wsib_event_slave_parity_error;
A_UINT32 wsib_event_slave_direct_message;
A_UINT32 wsib_event_slave_backpressure_error;
A_UINT32 wsib_event_master_tlv_length_error;
} htt_stats_whal_wsi_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/**
@ -5482,7 +5493,10 @@ typedef htt_stats_tx_pdev_rate_stats_be_ofdma_tlv
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/** Tx PPDU duration histogram **/
/** tx_ppdu_dur_hist:
* Tx PPDU duration histogram, which holds the tx duration of PPDUs
* under histogram bins of interval 250us
*/
A_UINT32 tx_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS];
A_UINT32 tx_success_time_us_low;
A_UINT32 tx_success_time_us_high;
@ -5490,6 +5504,11 @@ typedef struct {
A_UINT32 tx_fail_time_us_high;
A_UINT32 pdev_up_time_us_low;
A_UINT32 pdev_up_time_us_high;
/** tx_ofdma_ppdu_dur_hist:
* Tx OFDMA PPDU duration histogram, which holds the tx duration of
* OFDMA PPDUs under histogram bins of interval 250us
*/
A_UINT32 tx_ofdma_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS];
} htt_stats_tx_pdev_ppdu_dur_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_tx_pdev_ppdu_dur_tlv htt_tx_pdev_ppdu_dur_stats_tlv;
@ -8179,6 +8198,41 @@ typedef struct {
A_UINT32 fw_run_time;
/** per chain runtime noise floor values in dBm */
A_INT32 runTime_nf_chain[HTT_STATS_MAX_CHAINS];
/** DFS SW based progressive stats - start **/
/* current AP operating bandwidth (refer to WLAN_PHY_MODE) */
A_UINT32 current_OBW;
/* current AP device bandwidth (refer to WLAN_PHY_MODE) */
A_UINT32 current_DBW;
/* last_radar_type: last detected radar type
* This last_radar_type field contains a value whose meaning is not
* exposed to the host; this field is only provided for debug purposes.
*/
A_UINT32 last_radar_type;
/* dfs_reg_domain: curent DFS regulatory domain
* This dfs_reg_domain field contains a value whose meaning is not
* exposed to the host; this field is only provided for debug purposes.
*/
A_UINT32 dfs_reg_domain;
/* radar_mask_bit: Radar mask setting programmed in HW registers.
* Each bit represents a 20 MHz portion of the channel.
* Bit 0 represents the highest 20 MHz portion within the channel.
* For example...
* For a 80 MHz channel, bit0 = highest 20 MHz, bit3 = lowest 20 MHz
* For a 320 MHz channel, bit0 = highest 20 MHz, bit15 = lowest 20 MHz
*/
A_UINT32 radar_mask_bit;
/* DFS radar rssi threshold (units = dBm) */
A_INT32 radar_rssi;
/* DFS global flags (refer to IEEE80211_CHAN_* defines) */
A_UINT32 radar_dfs_flags;
/* band center frequency of operating bandwidth (units = MHz) */
A_UINT32 band_center_frequency_OBW;
/* band center frequency of device bandwidth (units = MHz) */
A_UINT32 band_center_frequency_DBW;
/** DFS SW based progressive stats - end **/
} htt_stats_phy_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_phy_stats_tlv htt_phy_stats_tlv;
@ -8292,6 +8346,15 @@ typedef struct {
* values are specified by the HTT_WHAL_CONFIG enum type
*/
A_UINT32 whal_config_flag;
/** nfcal_iteration_counts:
* iteration count for Home/Scan/Periodic Noise Floor calibrations
* nfcal_iteration_counts[0] - home NF iteration counter
* nfcal_iteration_counts[1] - scan NF iteration counter
* nfcal_iteration_counts[2] - periodic NF iteration counter
* These counters are not reset automatically; they are only reset
* when explicitly requested by the host.
*/
A_UINT32 nfcal_iteration_counts[3];
} htt_stats_phy_reset_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_phy_reset_stats_tlv htt_phy_reset_stats_tlv;
@ -8984,14 +9047,19 @@ typedef htt_stats_ml_link_info_details_tlv htt_ml_link_info_tlv;
#define HTT_ML_PEER_DETAILS_LINK_INIT_COUNT_S 19
#define HTT_ML_PEER_DETAILS_NON_STR_M 0x00400000
#define HTT_ML_PEER_DETAILS_NON_STR_S 22
#define HTT_ML_PEER_DETAILS_EMLSR_M 0x00800000
#define HTT_ML_PEER_DETAILS_EMLSR_S 23
#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M 0x00800000
#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S 23
/* for backwards compatibility, retain the old EMLSR name of the bitfield */
#define HTT_ML_PEER_DETAILS_EMLSR_M HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M
#define HTT_ML_PEER_DETAILS_EMLSR_S HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S
#define HTT_ML_PEER_DETAILS_IS_STA_KO_M 0x01000000
#define HTT_ML_PEER_DETAILS_IS_STA_KO_S 24
#define HTT_ML_PEER_DETAILS_NUM_LOCAL_LINKS_M 0x06000000
#define HTT_ML_PEER_DETAILS_NUM_LOCAL_LINKS_S 25
#define HTT_ML_PEER_DETAILS_ALLOCATED_M 0x08000000
#define HTT_ML_PEER_DETAILS_ALLOCATED_S 27
#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_M 0x10000000
#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_S 28
#define HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_M 0x000000ff
#define HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_S 0
@ -9062,17 +9130,32 @@ typedef htt_stats_ml_link_info_details_tlv htt_ml_link_info_tlv;
((_var) |= ((_val) << HTT_ML_PEER_DETAILS_NON_STR_S)); \
} while (0)
#define HTT_ML_PEER_DETAILS_EMLSR_GET(_var) \
(((_var) & HTT_ML_PEER_DETAILS_EMLSR_M) >> \
HTT_ML_PEER_DETAILS_EMLSR_S)
#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_GET(_var) \
(((_var) & HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M) >> \
HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S)
#define HTT_ML_PEER_DETAILS_EMLSR_SET(_var, _val) \
#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_EMLSR, _val); \
((_var) &= ~(HTT_ML_PEER_DETAILS_EMLSR_M)); \
((_var) |= ((_val) << HTT_ML_PEER_DETAILS_EMLSR_S)); \
HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE, _val); \
((_var) &= ~(HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M)); \
((_var) |= ((_val) << HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S)); \
} while (0)
/* start deprecated:
* For backwards compatibility, retain a macro definition that uses
* the old EMLSR name of the bitfield
*/
#define HTT_ML_PEER_DETAILS_EMLSR_GET(_var) \
(((_var) & HTT_ML_PEER_DETAILS_EMLSR_M) >> \
HTT_ML_PEER_DETAILS_EMLSR_S)
#define HTT_ML_PEER_DETAILS_EMLSR_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_EMLSR, _val); \
((_var) &= ~(HTT_ML_PEER_DETAILS_EMLSR_M)); \
((_var) |= ((_val) << HTT_ML_PEER_DETAILS_EMLSR_S)); \
} while (0)
/* end deprecated */
#define HTT_ML_PEER_DETAILS_IS_STA_KO_GET(_var) \
(((_var) & HTT_ML_PEER_DETAILS_IS_STA_KO_M) >> \
HTT_ML_PEER_DETAILS_IS_STA_KO_S)
@ -9106,6 +9189,18 @@ typedef htt_stats_ml_link_info_details_tlv htt_ml_link_info_tlv;
((_var) |= ((_val) << HTT_ML_PEER_DETAILS_ALLOCATED_S)); \
} while (0)
#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_GET(_var) \
(((_var) & HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_M) >> \
HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_S)
#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_EMLSR_SUPPORT, _val); \
((_var) &= ~(HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_M)); \
((_var) |= ((_val) << HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_S)); \
} while (0)
#define HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_GET(_var) \
(((_var) & HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_M) >> \
HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_S)
@ -9128,11 +9223,21 @@ typedef struct {
primary_chip_id : 2,
link_init_count : 3,
non_str : 1,
emlsr : 1,
is_emlsr_active : 1,
is_sta_ko : 1,
num_local_links : 2,
allocated : 1,
reserved : 4;
emlsr_support : 1,
reserved : 3;
};
struct {
/*
* For backwards compatibility, use a dummy union element to
* retain the old "emlsr" name for the "is_emlsr_active" bitfield.
*/
A_UINT32 dummy1 : 23,
emlsr : 1,
dummy2 : 8;
};
A_UINT32 msg_dword_1;
};
@ -9341,6 +9446,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;
/**
@ -9384,6 +9491,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,9 @@ 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_SERVICE_MULTIPLE_COEX_CONFIG_SUPPORT = 397, /* FW supports mutiple coex configs in one cmd */
WMI_MAX_EXT2_SERVICE

View file

@ -1412,6 +1412,15 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pdev_utf_event_fixed_param,
WMITLV_TAG_STRUC_wmi_vdev_oob_connection_req_cmd_fixed_param,
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_STRUC_wmi_coex_multiple_config_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_disallowed_mlo_mode_bitmap_param,
WMITLV_TAG_STRUC_wmi_led_blink_rate_table,
WMITLV_TAG_STRUC_wmi_enable_led_blink_download_rate_table_fixed_param,
} WMITLV_TAG_ID;
/*
* IMPORTANT: Please add _ALL_ WMI Commands Here.
@ -1950,6 +1959,10 @@ typedef enum {
OP(WMI_CSA_EVENT_STATUS_INDICATION_CMDID) \
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) \
OP(WMI_COEX_MULTIPLE_CONFIG_CMDID) \
OP(WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID) \
/* add new CMD_LIST elements above this line */
@ -2269,6 +2282,7 @@ typedef enum {
OP(WMI_MLO_LINK_STATE_SWITCH_EVENTID) \
OP(WMI_VDEV_SCHED_MODE_PROBE_RESP_EVENTID) \
OP(WMI_VDEV_OOB_CONNECTION_RESP_EVENTID) \
OP(WMI_AUDIO_TRANSPORT_SWITCH_TYPE_EVENTID) \
/* add new EVT_LIST elements above this line */
@ -2652,7 +2666,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);
@ -2660,7 +2676,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);
@ -4608,6 +4626,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)
@ -4716,7 +4740,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) \
@ -5172,7 +5198,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENABLE_DURATION_BASED_TX_MODE_SELECTION_CMDID
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_UINT32, A_UINT32, vdev_id_bitmap2, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap2, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap2, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_disallowed_mlo_mode_bitmap_param, disallow_mode_param, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_CMDID);
/* Request DPD Status */
@ -5402,6 +5429,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param, wmi_xgap_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_CMDID);
/* WMI cmd to indicate bearer switch response status (succcess, fail or timeout) to the corresponding switch type request */
#define WMITLV_TABLE_WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_audio_transport_switch_resp_status_cmd_fixed_param, wmi_audio_transport_switch_resp_status_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID);
#define WMITLV_TABLE_WMI_ODD_LIVEDUMP_REQUEST_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_livedump_request_cmd_fixed_param, wmi_livedump_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, odd_livedump_id_list, WMITLV_SIZE_VAR)
@ -5493,6 +5525,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_CONF_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_wsi_stats_info_cmd_fixed_param, wmi_pdev_wsi_stats_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_WSI_STATS_INFO_CMDID);
/* Data Rate based GPIO LED blink and Rate Table Download command */
#define WMITLV_TABLE_WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_enable_led_blink_download_rate_table_fixed_param, wmi_enable_led_blink_download_rate_table_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC,wmi_led_blink_rate_table, led_blink_rate_table, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID);
/* CSA status indication command to inform FW about host accepting or rejecting csa event*/
#define WMITLV_TABLE_WMI_CSA_EVENT_STATUS_INDICATION_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_event_status_ind_fixed_param , wmi_csa_event_status_ind_fixed_param,fixed_param, WMITLV_SIZE_FIX)
@ -5506,6 +5544,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_CSA_EVENT_STATUS_INDICATION_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_oob_connection_req_cmd_fixed_param, wmi_vdev_oob_connection_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_OOB_CONNECTION_REQ_CMDID);
/* Multiple BTCOEX config commands. */
#define WMITLV_TABLE_WMI_COEX_MULTIPLE_CONFIG_CMDID(id,op,buf,len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_coex_multiple_config_cmd_fixed_param, wmi_coex_multiple_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, WMI_COEX_CONFIG_CMD_fixed_param, config_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_COEX_MULTIPLE_CONFIG_CMDID);
/************************** TLV definitions of WMI events *******************************/
@ -7400,6 +7444,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HEALTH_MON_INIT_DONE_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param, wmi_xgap_enable_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_COMPLETE_EVENTID);
/* Event to switch to xpan to ble or ble to xpan */
#define WMITLV_TABLE_WMI_AUDIO_TRANSPORT_SWITCH_TYPE_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_audio_transport_switch_type_event_fixed_param, wmi_audio_transport_switch_type_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_TRANSPORT_SWITCH_TYPE_EVENTID);
/* ODD Livedump */
#define WMITLV_TABLE_WMI_ODD_LIVEDUMP_RESPONSE_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_livedump_response_event_fixed_param, wmi_livedump_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)

View file

@ -516,6 +516,11 @@ typedef enum {
WMI_PDEV_SET_RF_PATH_CMDID,
/** WSI stats info WMI command */
WMI_PDEV_WSI_STATS_INFO_CMDID,
/*
* WMI cmd to Enable LED blink based on Tx+Rx Data Rate
* and download LED ON/OFF Rate table
*/
WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID,
/* VDEV (virtual device) specific commands */
@ -761,6 +766,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 */
@ -1245,6 +1253,9 @@ typedef enum {
/* WMI comamnd for standalone sounding */
WMI_VDEV_STANDALONE_SOUND_CMDID,
/* WMI cmd used by host to send the switch response status to FW */
WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID,
/* Offload 11k related requests */
WMI_11K_OFFLOAD_REPORT_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_11K_OFFLOAD),
/* invoke neighbor report from FW */
@ -1373,6 +1384,7 @@ typedef enum {
WMI_COEX_DBAM_CMDID,
WMI_TAS_POWER_HISTORY_CMDID,
WMI_ESL_EGID_CMDID,
WMI_COEX_MULTIPLE_CONFIG_CMDID,
/**
* OBSS scan offload enable/disable commands
@ -2248,6 +2260,9 @@ typedef enum {
/* WMI standalone command complete Event */
WMI_VDEV_STANDALONE_SOUND_COMPLETE_EVENTID,
/* WMI evt to indicate switch type either to WLAN(XPAN) or non_WLAN(BLE) */
WMI_AUDIO_TRANSPORT_SWITCH_TYPE_EVENTID,
/* GPIO Event */
WMI_GPIO_INPUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GPIO),
@ -4617,7 +4632,12 @@ typedef struct {
* Refer to the below definitions of the
* WMI_RSRC_CFG_HOST_SERVICE_FLAG_RADAR_FLAGS_FULL_BW_NOL_GET
* and _SET macros.
* Bits 31:15 - Reserved
* Bit 15
* This bit will be set if the has qms_dlkm support enabled.
* Refer to the below definitions of the
* WMI_RSRC_CFG_HOST_SERVICE_FLAG_QMS_DLKM_SUPPORT_GET
* and _SET macros.
* Bits 31:16 - Reserved
*/
A_UINT32 host_service_flags;
@ -5065,6 +5085,11 @@ typedef struct {
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_RADAR_FLAGS_FULL_BW_NOL_SET(host_service_flags, val) \
WMI_SET_BITS(host_service_flags, 14, 1, val)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_QMS_DLKM_SUPPORT_GET(host_service_flags) \
WMI_GET_BITS(host_service_flags, 15, 1)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_QMS_DLKM_SUPPORT_SET(host_service_flags, val) \
WMI_SET_BITS(host_service_flags, 15, 1, val)
#define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_GET(carrier_config) \
WMI_GET_BITS(carrier_config, 0, 1)
@ -5917,6 +5942,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
/**
@ -9325,6 +9351,24 @@ typedef enum {
/** Parameter to set PDEV level UL OFDMA RTD */
WMI_PDEV_PARAM_UL_OFDMA_RTD,
/** Parameter to enable/disable tid0 and tid3 mapping to work 3 Link MLO */
WMI_PDEV_PARAM_TID_MAPPING_3LINK_MLO,
/** Parameter to enable/disable small OFDMA M-RUs **/
WMI_PDEV_PARAM_ENABLE_SMALL_MRU,
/** Parameter to enable/disable large OFDMA M-RUs **/
WMI_PDEV_PARAM_ENABLE_LARGE_MRU,
/** Parameter to enable/disable delayed LMR feedback.
* Note: Delayed LMR feedback is supported only up to two ranging peers to
* enable Location certification
* 0 - Immediate LMR feedback is enabled for all ranging peers.
* 1 (non zero) - delayed LMR feedback is enabled. Third peer onward will
* default to immediate LMR feedback.
**/
WMI_PDEV_PARAM_ENABLE_DELAYED_LMR_FEEDBACK,
} WMI_PDEV_PARAM;
#define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
@ -9851,6 +9895,14 @@ typedef struct {
/* current 64 bit TSF timestamp */
A_UINT32 tx_tsf_l32;
A_UINT32 tx_tsf_u32;
/* info:
* Bit[0:2] - band on which frame is sent, band value will be
* one of the wmi_mlo_band_info_t enum constants.
* Macros WMI_ROAM_BTM_RESP_MLO_BAND_INFO_GET,SET
* can be reused for setting mlo band info.
* Bit[3:31] - reserved
*/
A_UINT32 info;
} wmi_mgmt_tx_compl_event_fixed_param;
typedef struct {
@ -10063,6 +10115,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,
@ -16954,6 +17012,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;
@ -18210,6 +18272,11 @@ typedef enum {
*/
WMI_VDEV_PARAM_DISABLE_TWT_INFO_FRAME, /* 0xC0 */
/*
* Set the Recommended Max allowed active links
*/
WMI_VDEV_PARAM_MLO_MAX_RECOM_ACTIVE_LINKS, /* 0xC1 */
/*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE ===
* The below vdev param types are used for prototyping, and are
@ -23366,6 +23433,8 @@ typedef enum wake_reason_e {
WOW_REASON_COEX_CHAVD,
/* vdev repurpose request event */
WOW_REASON_VDEV_REPURPOSE,
/* STX High duty cycle event */
WOW_REASON_STX_WOW_HIGH_DUTY_CYCLE,
/* add new WOW_REASON_ defs before this line */
WOW_REASON_MAX,
@ -31235,8 +31304,16 @@ typedef enum {
TSF_TSTAMP_QTIMER_CAPTURE_REQ = 4,
TSF_TSTAMP_AUTO_REPORT_ENABLE = 5,
TSF_TSTAMP_AUTO_REPORT_DISABLE = 6,
TSF_TSTAMP_PERIODIC_REPORT_REQ = 5,
} wmi_tsf_tstamp_action;
typedef enum {
TSF_TSTAMP_REPORT_TTIMER = 0x1, /* bit 0: TSF Timer */
TSF_TSTAMP_REPORT_QTIMER = 0x2, /* bit 1: H/T common Timer */
} wmi_tsf_tstamp_report_flags;
#define TSF_TSTAMP_REPORT_PERIOD_MIN 1000 /* ms units */
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_vdev_tsf_tstamp_action_cmd_fixed_param */
@ -31245,6 +31322,12 @@ typedef struct {
A_UINT32 vdev_id;
/* action type, refer to wmi_tsf_tstamp_action */
A_UINT32 tsf_action;
/*
* The below fields are valid only when tsf_action is
* TSF_TSTAMP_PERIODIC_REPORT_REQ.
*/
A_UINT32 period; /* the period of report timestamp, ms units */
A_UINT32 flags; /* wmi_tsf_tstamp_report_flags */
} wmi_vdev_tsf_tstamp_action_cmd_fixed_param;
typedef struct {
@ -31714,6 +31797,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.
@ -34623,7 +34739,7 @@ typedef enum wmi_coex_config_type {
} WMI_COEX_CONFIG_TYPE;
typedef struct {
A_UINT32 tlv_header;
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_COEX_CONFIG_CMD_fixed_param */
A_UINT32 vdev_id;
A_UINT32 config_type; /* wmi_coex_config_type enum */
A_UINT32 config_arg1;
@ -34634,6 +34750,14 @@ typedef struct {
A_UINT32 config_arg6;
} WMI_COEX_CONFIG_CMD_fixed_param;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_coex_multiple_config_cmd_fixed_param */
/*
* This struct is followed by other TLVs:
* WMI_COEX_CONFIG_CMD_fixed_param config_list[num_config];
*/
} wmi_coex_multiple_config_cmd_fixed_param;
typedef enum wmi_coex_dbam_mode_type {
WMI_COEX_DBAM_DISABLE = 0,
WMI_COEX_DBAM_ENABLE = 1,
@ -36981,6 +37105,10 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_CSA_EVENT_STATUS_INDICATION_CMDID);
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);
WMI_RETURN_STRING(WMI_COEX_MULTIPLE_CONFIG_CMDID);
WMI_RETURN_STRING(WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID);
}
return (A_UINT8 *) "Invalid WMI cmd";
@ -37876,6 +38004,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;
@ -40243,6 +40375,14 @@ typedef struct {
A_UINT32 scoring_capability_bitmap;
} wmi_roam_capability_report_event_fixed_param;
/*
* Definition of disallow connection modes.
*/
typedef enum {
/* Bit 0: roam to 5GL+5GH MLSR is not allowed if the bit is set. */
WMI_ROAM_MLO_CONNECTION_MODE_5GL_5GH_MLSR = 0x1,
} WMI_ROAM_MLO_CONNECTION_MODES;
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_mlo_config_cmd_fixed_param */
wmi_mac_addr partner_link_addr; /* Assigned link address which can be used as self link addr when vdev is not created */
@ -40262,6 +40402,13 @@ typedef struct {
*/
A_UINT32 support_link_band; /* Configure the band bitmap of mlo connection supports. */
A_UINT32 max_active_links; /* Max active links supported for STA */
/*
* Disallow the specified connection mode(s) when roaming to MLD AP.
* Refer to the WMI_ROAM_MLO_CONNECTION_MODES enum for the connection mode
* each bit represents.
*/
A_UINT32 disallow_connect_modes;
} wmi_roam_mlo_config_cmd_fixed_param;
typedef struct {
@ -43751,6 +43898,7 @@ enum wmi_oem_data_evt_cause {
WMI_OEM_DATA_EVT_CAUSE_UNSPECIFIED = 0,
WMI_OEM_DATA_EVT_CAUSE_CMD_REQ = 1,
WMI_OEM_DATA_EVT_CAUSE_ASYNC = 2,
WMI_OEM_DATA_EVT_CAUSE_QMS = 3,
};
typedef struct {
@ -44578,6 +44726,7 @@ typedef enum {
WMI_MLO_LINK_FORCE_INACTIVE_LINK_NUM = 4, /* Force inactive a number of links, firmware to decide which links to inactive */
WMI_MLO_LINK_NO_FORCE = 5, /* Cancel the force operation of specific links, allow firmware to decide */
WMI_MLO_LINK_FORCE_ACTIVE_INACTIVE = 6, /* combination of force specific links active & force specific links inactive */
WMI_MLO_LINK_NON_FORCE_UPDATE = 7, /* Used when host wants to update other fields like disallow_mlo_mode_bmap */
} WMI_MLO_LINK_FORCE_MODE;
typedef enum {
@ -44671,6 +44820,8 @@ typedef struct wmi_mlo_link_set_active_cmd
* For force mode WMI_MLO_LINK_FORCE_ACTIVE_INACTIVE ieee_link_id_bitmap2[]
* carry the inactive linkid bitmap.
* In other cases the length of the array should be 0.
*---
* wmi_disallowed_mlo_mode_bitmap_param_t disallow_mlo_mode_bmap[];
*/
} wmi_mlo_link_set_active_cmd_fixed_param;
@ -44692,6 +44843,77 @@ typedef struct wmi_mlo_set_active_link_number_param
} wmi_mlo_set_active_link_number_param;
#define WMI_MLO_MODE_MLMR 0x1;
#define WMI_MLO_MODE_EMLSR 0x2;
#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID1(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 0, 8)
#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 0, 8, value)
#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID2(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 8, 8)
#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 8, 8, value)
#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID3(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 16, 8)
#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID3(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 16, 8, value)
#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID4(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 24, 8)
#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID4(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 24, 8, value)
typedef struct wmi_disallowed_mlo_mode_bitmap_param
{
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_disallowed_mlo_mode_bitmap_param */
A_UINT32 tlv_header;
/** disallowed_mode_bitmap:
* Bitmap of MLO Modes like MLMR, eMLSR which are not allowed.
* Refer to WMI_MLO_MODE_*
* disallowed_mode_bitmap Meaning
* ====================== =================
* 0x0 No restriction
* 0x1 MLMR is not allowed
* 0x2 EMLSR is not allowed
* 0x3 MLMR and EMLSR are not allowed
*/
A_UINT32 disallowed_mode_bitmap;
/** ieee_link_id_comb:
* Give combination of IEEE link IDs for which above disallowed_mode_bitmap
* is applicable.
* Each 8-bits in ieee_link_id_comb represents one link ID.
* Use WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID* and _SET_LINK_ID* to get/set
* link IDs in this field.
*/
A_UINT32 ieee_link_id_comb;
/** Example:
* Say there are 3 MLO links with ieee link IDs as 1,2 and 32.
* Say host wants to disallow MLMR between links with IDs 1 and 2,
* disallow eMLSR between links with IDs 1 and 32,
* disallow MLMR and eMLSR for links with IDs 2 and 32.
* There will be 3 TLVs of type wmi_disallowed_mlo_mode_bitmap_param
* like below.
*
* wmi_disallowed_mlo_mode_bitmap_param[0]:
* disallowed_mode_bitmap = 0x1,
* ieee_link_id_comb = 0x00000201
* WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, 0x1)
* WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, 0x2)
*
* wmi_disallowed_mlo_mode_bitmap_param[1]
* disallowed_mode_bitmap = 0x2,
* ieee_link_id_comb = 0x00002001
* WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, 0x1)
* WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, 0x20)
*
* wmi_disallowed_mlo_mode_bitmap_param[2]
* disallowed_mode_bitmap = 0x3,
* ieee_link_id_comb = 0x00002002
* WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, 0x2)
* WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, 0x20)
*/
} wmi_disallowed_mlo_mode_bitmap_param;
typedef enum {
WMI_MLO_LINK_SET_ACTIVE_STATUS_SUCCESS = 0,
WMI_MLO_LINK_SET_ACTIVE_STATUS_HOST_REJECT = 1,
@ -47038,6 +47260,39 @@ typedef struct {
A_UINT32 pdev_id;
} wmi_pdev_utf_event_fixed_param;
typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_led_blink_rate_table */
A_UINT32 tlv_header;
A_UINT32 on_time; /* units = milliseconds */
A_UINT32 off_time; /* units = milliseconds */
} wmi_led_blink_rate_table;
typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_enable_led_blink_download_rate_table_fixed_param */
A_UINT32 tlv_header;
/* Pdev Id 0 or 1 based on split phy */
A_UINT32 pdev_id;
/* Feature enable or disable flag 0-disable 1-enable */
A_UINT32 blink_enable_flag;
/* Bandwidth (Mbps) of each index in the blink rate table.
* This quantum specification tells the FW which of the blink rate table
* elements to use; the FW will divide the data rate by this bw_per_index
* and round down, to obtain the index into the rate table for the blink
* rate corresponding to the data rate.
*/
A_UINT32 bw_per_index;
/**
* Following this fixed_param TLV are the following additional TLVs:
* - wmi_led_blink_rate_table led_blink_rate_table[]
* The led_blink_rate_table[] elements need to be ordered by
* increasing data rate, so that by dividing the data rate by
* bw_per_index, the FW can find which index/element of the
* led_blink_rate_table[] array to use.
*/
} wmi_enable_led_blink_download_rate_table_fixed_param;
typedef enum {
/* Used when peer attempts connection with vdev */
VDEV_OOB_CONNECT_REQUEST = 0,
@ -47085,6 +47340,35 @@ typedef struct {
A_UINT32 connect_resp_type;
} wmi_vdev_oob_connection_resp_event_fixed_param;
typedef enum {
WMI_AUDIO_TRANSPORT_SWITCH_STATUS_FAIL = 0,
WMI_AUDIO_TRANSPORT_SWITCH_STATUS_SUCCESS,
WMI_AUDIO_TRANSPORT_SWITCH_STATUS_TIMEOUT,
} WMI_AUDIO_TRANSPORT_SWITCH_RESPONSE_STATUS;
typedef enum {
WMI_AUDIO_TRANSPORT_SWITCH_TYPE_NON_WLAN = 0,
WMI_AUDIO_TRANSPORT_SWITCH_TYPE_WLAN = 1,
} WMI_AUDIO_TRANSPORT_SWITCH_TYPE;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_audio_transport_switch_type_event_fixed_param */
A_UINT32 tlv_header;
/** This indicates whether FW is requesting for switch to WLAN(XPAN) or non-WLAN(BLE) */
A_UINT32 switch_type; /*see definition of WMI_AUDIO_TRANSPORT_SWITCH_TYPE */
} wmi_audio_transport_switch_type_event_fixed_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_audio_transport_switch_resp_status_cmd_fixed_param */
A_UINT32 tlv_header;
/** This indicates whether switch response status is success, fail, timeout */
A_UINT32 switch_response_status; /* see definition of WMI_AUDIO_TRANSPORT_SWITCH_RESPONSE_STATUS */
/** This indicates for which switch type (WLAN(XPAN) or non-WLAN(BLE)) the switch response status is intended to */
A_UINT32 switch_type; /* see definition of WMI_AUDIO_TRANSPORT_SWITCH_TYPE */
} wmi_audio_transport_switch_resp_status_cmd_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_ 1405
#define __WMI_REVISION_ 1421
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work