diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 249939f69c25..9078b5488ee3 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -478,6 +478,7 @@ typedef enum { WMI_SERVICE_LL_STATS_PER_CHAN_RX_TX_TIME_SUPPORT = 258, /* Indicates firmware support sending per channel own tx & rx time in radio stats of LL stats. */ WMI_SERVICE_THERMAL_MULTI_CLIENT_SUPPORT = 259, /* Indicates FW Thermal Mgr will support multiple clients for mitigation */ WMI_SERVICE_NAN_SEND_NAN_ENABLE_RESPONSE_TO_HOST = 260, /* Indicates FW will include an additional TLV in nan enable response for Host driver to parse */ + WMI_SERVICE_UNIFIED_LL_GET_STA_CMD_SUPPORT = 261, /* Indicates that FW supports handling Link Layer and Get Station stats Commands together (WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID) */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index c600756d7383..5b7e67c89a59 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1107,6 +1107,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_wfa_config_ocv, WMITLV_TAG_STRUC_wmi_wfa_config_saquery, WMITLV_TAG_STRUC_wmi_roam_data_rssi_roaming_param, + WMITLV_TAG_STRUC_wmi_request_unified_ll_get_sta_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1556,6 +1557,7 @@ typedef enum { OP(WMI_AUDIO_AGGR_SET_SCHED_METHOD_CMDID) \ OP(WMI_AUDIO_AGGR_GET_SCHED_METHOD_CMDID) \ OP(WMI_WFA_CONFIG_CMDID) \ + OP(WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -2475,6 +2477,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_CLEAR_LINK_STATS_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_LINK_STATS_CMDID); +/* Request for unified Link Layer and get station stats Cmd */ +#define WMITLV_TABLE_WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_unified_ll_get_sta_cmd_fixed_param, wmi_request_unified_ll_get_sta_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_inst_rssi_stats_params, inst_rssi_params, WMITLV_SIZE_VAR) + +WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID); + /* Request wlm stats Cmd */ #define WMITLV_TABLE_WMI_REQUEST_WLM_STATS_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_wlm_stats_cmd_fixed_param, wmi_request_wlm_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 2f776139bca6..dd236ec110d0 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -919,6 +919,9 @@ typedef enum { /** request for control path stats */ WMI_REQUEST_CTRL_PATH_STATS_CMDID, + /** unified request for LL stats and get station cmds */ + WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID, + /** ARP OFFLOAD REQUEST*/ WMI_SET_ARP_NS_OFFLOAD_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_ARP_NS_OFL), @@ -8120,6 +8123,22 @@ typedef struct { wmi_mac_addr peer_macaddr; } wmi_request_link_stats_cmd_fixed_param; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_unified_request_ll_get_sta_cmd_fixed_param */ + /** Type of stats required. This is a bitmask of WMI_LINK_STATS_RADIO, WMI_LINK_STATS_IFACE */ + A_UINT32 link_stats_type; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** unique id identifying the request, generated by the caller */ + A_UINT32 request_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** Type of stats required for get station cmd (see wmi_stats_id enum) */ + A_UINT32 get_sta_stats_id; + /** pdev_id for identifying the MAC. See macros starting with WMI_PDEV_ID_ for values. In non-DBDC case host should set it to 0. */ + A_UINT32 pdev_id; +} wmi_request_unified_ll_get_sta_cmd_fixed_param; + #define WLM_STATS_REQ_LINK 0x00000001 typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_wlm_stats_cmd_fixed_param */ @@ -27031,6 +27050,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PDEV_GET_TPC_STATS_CMDID); WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_SCHED_METHOD_CMDID); WMI_RETURN_STRING(WMI_AUDIO_AGGR_GET_SCHED_METHOD_CMDID); + WMI_RETURN_STRING(WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID); } return "Invalid WMI cmd"; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index b871d4546267..fc7465b837da 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_ 890 +#define __WMI_REVISION_ 891 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work