From e4eb087da56ca27744f1ca6823f1c5fbb9a5777e Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 12 Jan 2023 12:01:05 -0800 Subject: [PATCH] fw-api: CL 21107002 - update fw common interface files Change-Id: If69d1f831dbdcf754bb398637aa615a193e605f8 WMI: add TDMA_SCHEDULE_REQUEST_CMD msg def CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 6 ++++ fw/wmi_unified.h | 79 +++++++++++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 87 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 0e74b74444bc..603d8dfe614f 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -609,6 +609,7 @@ typedef enum { WMI_SERVICE_RTT_11AZ_TB_RSTA_SUPPORT = 356, /* FW support for 11AZ trigger based ranging Responder (RSTA) role */ WMI_SERVICE_SUPPORT_11D_FOR_HOST_SCAN = 357, WMI_SERVICE_DETERMINISTIC_SCHEDULER_LEVEL0 = 358, /* FW supports 12.2 level scheduler mode disable commands and stats */ + WMI_SERVICE_COORDINATED_AP_TDMA = 359, /* Support for Coordinated-AP TDMA feature */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index da134bb29665..1337b4fd6b77 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1333,6 +1333,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_peer_sched_mode_disable_fixed_param, WMITLV_TAG_STRUC_wmi_per_peer_sched_mode_disable, WMITLV_TAG_STRUC_wmi_esl_egid_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_tdma_schedule_request_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1849,6 +1850,7 @@ typedef enum { OP(WMI_TAS_POWER_HISTORY_CMDID) \ OP(WMI_PEER_SCHED_MODE_DISABLE_CMDID) \ OP(WMI_ESL_EGID_CMDID) \ + OP(WMI_TDMA_SCHEDULE_REQUEST_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -5254,6 +5256,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ODD_LIVEDUMP_REQUEST_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_per_peer_sched_mode_disable, peer_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SCHED_MODE_DISABLE_CMDID); +#define WMITLV_TABLE_WMI_TDMA_SCHEDULE_REQUEST_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdma_schedule_request_cmd_fixed_param, wmi_tdma_schedule_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_TDMA_SCHEDULE_REQUEST_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index a6f8ba776364..d8f0eedda868 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -315,6 +315,7 @@ typedef enum { WMI_GRP_SAWF, /* 0x49 SAWF (Service Aware WiFi) */ WMI_GRP_QUIET_OFL, /* 0x4a Quiet offloads */ WMI_GRP_ODD, /* 0x4b ODD */ + WMI_GRP_TDMA, /* 0x4c TDMA */ } WMI_GRP_ID; #define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1) @@ -1551,6 +1552,8 @@ typedef enum { /* WMI commands specific to ODD */ WMI_ODD_LIVEDUMP_REQUEST_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_ODD), + /* WMI commands specific to TDMA */ + WMI_TDMA_SCHEDULE_REQUEST_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_TDMA), } WMI_CMD_ID; typedef enum { @@ -33133,6 +33136,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_VENDOR_PEER_CMDID); WMI_RETURN_STRING(WMI_VDEV_SET_TWT_EDCA_PARAMS_CMDID); /* XPAN TWT */ WMI_RETURN_STRING(WMI_ESL_EGID_CMDID); + WMI_RETURN_STRING(WMI_TDMA_SCHEDULE_REQUEST_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -41337,6 +41341,81 @@ typedef struct { */ } wmi_peer_sched_mode_disable_fixed_param; +/** Coordinated-AP TDMA **/ + +#define WMI_TDMA_MAX_ACTIVE_SCHEDULES 10 + +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdma_schedule_request_cmd_fixed_param **/ + /** pdev_id + * PDEV ID for identifying the MAC for which this schedule + * is being requested. + */ + A_UINT32 pdev_id; + /** schedule_type + * 0 = Reserved + * 1 = Restricted + * UINT32_MAX = Cancel all TDMA schedules and ignore other parameters below. + */ + A_UINT32 schedule_type; + /** schedule_handle_id + * Unique ID to identify this TDMA schedule + */ + A_UINT32 schedule_handle_id; + /** owner_bssid + * The BSSID this TDMA schedule is reserved for + */ + wmi_mac_addr owner_bssid; + /** start_time_tsf_low + * Lower 32-bits of Synchronized Start time for the first busy slot + * in this TDMA schedule. + * It should be a PMM global FW TSF reference + */ + A_UINT32 start_time_tsf_low; + /** start_time_tsf_high + * Higher 32-bits of Synchronized Start time for the first busy slot + * in this TDMA schedule. + * It should be a PMM global FW TSF reference + */ + A_UINT32 start_time_tsf_high; + /** num_busy_slots + * Number of busy periods in this schedule + */ + A_UINT32 num_busy_slots; + /** busy_slot_dur_ms + * The fixed duration of each busy slot in milliseconds + */ + A_UINT32 busy_slot_dur_ms; + /** busy_slot_intvl_ms + * The fixed interval between the start of two consecutive busy slots + * in milliseconds. + */ + A_UINT32 busy_slot_intvl_ms; + /** edca_params_valid + * Indicates whether the following EDCA fields aifsn, ecwmin, ecwmax + * are valid or not + * 1 = Valid. 0 = Not Valid. + */ + A_UINT32 edca_params_valid; + /** aifsn + * Arbitration inter frame spacing number for this schedule type. + * Range: 2-15. + * For voice, video, best-effort, background ACs + */ + A_UINT32 aifsn[WMI_AC_MAX]; + /** ecwmin + * Exponent form of Contention Window minimum value for this schedule type. + * Range: 2 - 1024. + * For voice, video, best-effort, background ACs + */ + A_UINT32 ecwmin[WMI_AC_MAX]; + /** ecwmax + * Exponent form of Contention Window maximum value for this schedule type. + * Range: 2 - 1024. + * For voice, video, best-effort, background ACs + */ + A_UINT32 ecwmax[WMI_AC_MAX]; +} wmi_tdma_schedule_request_cmd_fixed_param; /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index bea9885ee07a..2fb397b96185 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -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_ 1257 +#define __WMI_REVISION_ 1258 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work