diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index fdca7a1b6c..453eb53c5b 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1184,6 +1184,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_mec_aging_timer_config_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_peer_config_ppe_ds_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_ctrl_path_dfs_channel_stats_struct, + WMITLV_TAG_STRUC_wmi_twt_ack_event_fixed_param, + WMITLV_TAG_STRUC_wmi_twt_caps_param, } WMITLV_TAG_ID; /* @@ -1925,6 +1927,7 @@ typedef enum { OP(WMI_PDEV_GET_HALPHY_CAL_STATUS_EVENTID) \ OP(WMI_PDEV_SET_HALPHY_CAL_BMAP_EVENTID) \ OP(WMI_AFC_EVENTID) \ + OP(WMI_TWT_ACK_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -4801,7 +4804,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CAPABILITIES_EXT, mac_phy_caps, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_HAL_REG_CAPABILITIES_EXT2, hal_reg_caps, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_capabilities, wmi_nan_capabilities, nan_cap, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_SCAN_RADIO_CAPABILITIES_EXT2, wmi_scan_radio_caps, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_SCAN_RADIO_CAPABILITIES_EXT2, wmi_scan_radio_caps, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_twt_caps_params, twt_caps, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT2_EVENTID); #define WMITLV_TABLE_WMI_CHAN_RF_CHARACTERIZATION_INFO_EVENTID(id,op,buf,len) \ @@ -6231,6 +6235,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_TWT_BTWT_REMOVE_STA_COMPLETE_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_twt_notify_event_fixed_param, wmi_twt_notify_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TWT_NOTIFY_EVENTID); +/* TWT Ack Event - FW to send Ack Sync event for Host TWT Cmds */ +#define WMITLV_TABLE_WMI_TWT_ACK_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_twt_ack_event_fixed_param, wmi_twt_ack_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_TWT_ACK_EVENTID); + /* Event to send roam scan stats */ #define WMITLV_TABLE_WMI_ROAM_SCAN_STATS_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_stats_event_fixed_param, wmi_roam_scan_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 7c28e00bc7..d5d73406f3 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -2081,6 +2081,7 @@ typedef enum { WMI_TWT_SESSION_STATS_EVENTID, WMI_TWT_NUDGE_DIALOG_COMPLETE_EVENTID, WMI_TWT_NOTIFY_EVENTID, + WMI_TWT_ACK_EVENTID, /** Events in Prototyping phase */ WMI_NDI_CAP_RSP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PROTOTYPE), @@ -4236,6 +4237,10 @@ typedef struct { #define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_CHANNEL_SUPPORT_SET(host_service_flags, val) \ WMI_SET_BITS(host_service_flags, 5, 1, val) +#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_STA_TWT_SYNC_EVT_SUPPORT_GET(host_service_flags) \ + WMI_GET_BITS(host_service_flags, 6, 1) +#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_STA_TWT_SYNC_EVT_SUPPORT_SET(host_service_flags, val) \ + WMI_SET_BITS(host_service_flags, 6, 1, val) typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */ @@ -27960,6 +27965,27 @@ typedef struct { A_UINT32 wireless_modes_ext; } WMI_HAL_REG_CAPABILITIES_EXT2; +/* + * TWT service capability bitmap in wmi_twt_caps_params TLV + * within WMI_SERVICE_READY_EXT2_EVENTID message + */ +typedef enum { + WMI_TWT_STA_SYNC_EVENT_CAP = 1, /* STA TWT: FW internal errors reported using sync WMI_TWT_ACK_EVENTID */ + + /* Add new TWT Caps above */ + WMI_TWT_MAX_CAP = 32, +} WMI_TWT_CAPS_BITMAP; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_caps_param */ + + /* twt_capability_bitmap + * TWT Capabilities - refer to WMI_TWT_CAPS_BITMAP for the meaning of + * the bits within the bitmap + */ + A_UINT32 twt_capability_bitmap; +} wmi_twt_caps_params; + /* * This TLV used for Scan Radio RDP * We have an RDP which supports Multiband-Frequency (2Ghz, 5Ghz and 6Ghz) @@ -30201,6 +30227,20 @@ typedef enum _WMI_TWT_COMMAND_T { #define TWT_FLAGS_GET_TWT_INFO_FRAME_DISABLED(flag) WMI_GET_BITS(flag, 13, 1) #define TWT_FLAGS_SET_TWT_INFO_FRAME_DISABLED(flag, val) WMI_SET_BITS(flag, 13, 1, val) +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_ack_event_fixed_param */ + A_UINT32 vdev_id; /* VDEV identifier */ + wmi_mac_addr peer_macaddr; /* peer MAC address */ + A_UINT32 dialog_id; /* TWT dialog ID */ + A_UINT32 twt_cmd; /* TWT command for which this ack is sent */ + A_UINT32 status; /* Status code corresponding to twt_cmd. + * This status field contains a value from the + * status enum corresponding to the twt_cmd type + * (WMI_ADD_TWT_STATUS_T, WMI_DEL_TWT_STATUS_T, + * WMI_PAUSE_TWT_STATUS_T, etc.) + */ +} wmi_twt_ack_event_fixed_param; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_add_dialog_cmd_fixed_param */ A_UINT32 vdev_id; /* VDEV identifier */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 2a6423bd5c..9c84c1c521 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_ 1023 +#define __WMI_REVISION_ 1024 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work