From 4f216dbafc8edd80378697376ad74401242cb0f5 Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 3 Nov 2023 06:01:44 -0700 Subject: [PATCH] fw-api: CL 25134675 - update fw common interface files WMI: add PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMD msg def Change-Id: I725cdbc45641b9c4536dc013c3b459063654b598 CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 9 +++++++++ fw/wmi_unified.h | 37 +++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 48 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 8f098f38c7..bbeda80c7e 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -646,6 +646,7 @@ typedef enum { 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_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 41e1e785f0..58f8dc99dd 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1415,6 +1415,8 @@ typedef enum { 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_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -1954,6 +1956,7 @@ typedef enum { 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) \ /* add new CMD_LIST elements above this line */ @@ -4617,6 +4620,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) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 6b12d1677f..76b5cc488a 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -761,6 +761,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 */ @@ -31748,6 +31751,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. @@ -37016,6 +37052,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) 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); } return (A_UINT8 *) "Invalid WMI cmd"; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index bc112bae51..fbd1334f8f 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_ 1411 +#define __WMI_REVISION_ 1412 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work