diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index ace268fd7d..911dc612ed 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1046,6 +1046,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_multiple_vdev_restart_resp_event_fixed_param, WMITLV_TAG_STRUC_wmi_roam_get_scan_channel_list_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_roam_scan_channel_list_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_get_big_data_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_send_big_data_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1474,6 +1476,7 @@ typedef enum { OP(WMI_VDEV_AUDIO_SYNC_QTIMER_CMDID) \ OP(WMI_VDEV_SET_PCL_CMDID) \ OP(WMI_ROAM_GET_SCAN_CHANNEL_LIST_CMDID) \ + OP(WMI_VDEV_GET_BIG_DATA_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -1718,6 +1721,7 @@ typedef enum { OP(WMI_PEER_CREATE_CONF_EVENTID) \ OP(WMI_PDEV_MULTIPLE_VDEV_RESTART_RESP_EVENTID) \ OP(WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID) \ + OP(WMI_VDEV_SEND_BIG_DATA_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -4282,6 +4286,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_PCL_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_get_scan_channel_list_cmd_fixed_param, wmi_roam_get_scan_channel_list_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_GET_SCAN_CHANNEL_LIST_CMDID); +/* Get per vdev BIG DATA stats */ +#define WMITLV_TABLE_WMI_VDEV_GET_BIG_DATA_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_big_data_cmd_fixed_param, wmi_vdev_get_big_data_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_BIG_DATA_CMDID); + /************************** TLV definitions of WMI events *******************************/ @@ -5763,6 +5772,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTIPLE_VDEV_RESTART_RESP_EVENTID); WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID); +/* send BIG DATA event to host */ +#define WMITLV_TABLE_WMI_VDEV_SEND_BIG_DATA_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_send_big_data_event_fixed_param, wmi_vdev_send_big_data_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SEND_BIG_DATA_EVENTID); + + #ifdef __cplusplus } #endif diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 08375ceac0..c4e5d47bac 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -493,6 +493,8 @@ typedef enum { WMI_VDEV_AUDIO_SYNC_QTIMER_CMDID, /** Preferred channel list for each vdev */ WMI_VDEV_SET_PCL_CMDID, + /** Get per vdev BIG DATA stats */ + WMI_VDEV_GET_BIG_DATA_CMDID, /* peer specific commands */ @@ -1465,6 +1467,8 @@ typedef enum { WMI_VDEV_AUDIO_SYNC_START_STOP_EVENTID, /** Sends the final offset in the QTIMERs of both master and slave */ WMI_VDEV_AUDIO_SYNC_Q_MASTER_SLAVE_OFFSET_EVENTID, + /* send BIG DATA stats to host */ + WMI_VDEV_SEND_BIG_DATA_EVENTID, /* peer specific events */ @@ -25276,6 +25280,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_VDEV_AUDIO_SYNC_TRIGGER_CMDID); WMI_RETURN_STRING(WMI_VDEV_AUDIO_SYNC_QTIMER_CMDID); WMI_RETURN_STRING(WMI_ROAM_GET_SCAN_CHANNEL_LIST_CMDID); + WMI_RETURN_STRING(WMI_VDEV_GET_BIG_DATA_CMDID); } return "Invalid WMI cmd"; @@ -26979,6 +26984,77 @@ typedef struct { */ } wmi_roam_scan_channel_list_event_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_big_data_cmd_fixed_param */ + A_UINT32 vdev_id; +} wmi_vdev_get_big_data_cmd_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_send_big_data_event_fixed_param */ + A_UINT32 vdev_id; + /** param list **/ + /* Target power (dBm units) - 2.4G/5G */ + A_UINT32 target_power_2g_dsss; + A_UINT32 target_power_2g_ofdm; + A_UINT32 target_power_2g_mcs0; + A_UINT32 target_power_5g_ofdm; + A_UINT32 target_power_5g_mcs0; + + /* ANI level from hal-phy */ + A_UINT32 ani_level; + + /* Number of probe requests sent while roaming after BMISS */ + A_UINT32 tx_probe_req; + + /* Number of probe responses received while roaming after BMISS */ + A_UINT32 rx_probe_response; + + /* + * Number of retries (both by HW and FW) for tx data MPDUs sent by this vdev + */ + A_UINT32 num_data_retries; + + /* Number of tx data MPDUs dropped from this vdev due to tx retry limit */ + A_UINT32 num_tx_data_fail; + + /* Number of aggregated unicast tx expecting response ppdu */ + A_UINT32 data_tx_ppdu_count; + + /* Number of aggregated unicast tx expecting response mpdu */ + A_UINT32 data_tx_mpdu_count; + + /* number of rx frames with good PCLP */ + A_UINT32 rx_frame_good_pclp_count; + + /* Number of occasions that no valid delimiter is detected by ampdu parser */ + A_UINT32 invalid_delimiter_count; + + /* Number of frames for which the CRC check failed in the MAC */ + A_UINT32 rx_crc_check_fail_count; + + /* tx fifo overflows count for transmissions by this vdev */ + A_UINT32 txpcu_fifo_overflows_count; + + /* Number of ucast ACKS received good FCS (doesn't include block acks) */ + A_UINT32 successful_acks_count; + + /* + * RX BlockACK Counts + * Note that this counts the number of block acks received by this vdev, + * not the number of MPDUs acked by block acks. + */ + A_UINT32 rx_block_ack_count; + + /* Beacons received from member of BSS */ + A_UINT32 member_bss_beacon_count; + + /* Beacons received from other BSS */ + A_UINT32 non_bss_beacon_count; + + /* Number of RX Data multicast frames dropped by the HW */ + A_UINT32 rx_data_mc_frame_filtered_count; +} wmi_vdev_send_big_data_event_fixed_param; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_txpower_query_cmd_fixed_param */ A_UINT32 request_id; /* unique request ID to distinguish the command / event set */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 4db923863e..ca7e66184c 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -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_ 770 +#define __WMI_REVISION_ 771 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work