qcacld-2.0: CL 3804270 - Update fw common interface files
Define WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID
Change-Id: Iada3a99ef59efbfef1c289302ac7769023007b0b
CRs-fixed: 865207
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index b07c7e5..8d6eac9 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -861,6 +861,8 @@
WMITLV_TAG_STRUC_wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_stats_period,
WMITLV_TAG_STRUC_wmi_ndl_schedule_update_fixed_param,
+ WMITLV_TAG_STRUC_wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_msduq_qdepth_thresh_update,
} WMITLV_TAG_ID;
/*
@@ -1209,6 +1211,7 @@
OP(WMI_ENABLE_FILS_CMDID) \
OP(WMI_BCN_OFFLOAD_CTRL_CMDID) \
OP(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID) \
+ OP(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID) \
/* add new CMD_LIST elements above this line */
/*
@@ -3474,6 +3477,12 @@
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param, wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID);
+/* Set msduq qdepth threshold value Cmd */
+#define WMITLV_TABLE_WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param, wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_msduq_qdepth_thresh_update, msduq_qdepth_thresh_update, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID);
+
/************************** TLV definitions of WMI events *******************************/
/* Service Ready event */
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index ceffb6b..af7f220 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -502,6 +502,8 @@
*/
WMI_PEER_ANTDIV_INFO_REQ_CMDID,
+ /** Peer/Tid/Msduq threshold update */
+ WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID,
/* beacon/management specific commands */
@@ -14419,6 +14421,62 @@
A_INT32 chain_rssi[8];
} wmi_peer_antdiv_info;
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_msduq_qdepth_thresh_update */
+
+ /** tid_number */
+ A_UINT32 tid_num;
+
+ /** msduq_mask to set the value
+ * bit 0 - HI-PRI msdu flowq qdepth threshold need to update if set
+ * bit 1 - LOW-PRI msdu flowq qdepth threshold need to update if set
+ * bit 2 - UDP msdu flowq qdepth threshold need to update if set
+ * bit 3 - NON-UDP msdu flowq qdepth threshold need to update if set
+ * rest of bits are reserved and set to 0.
+ */
+ A_UINT32 msduq_update_mask;
+
+ /** Qdepth threshold value
+ * If number of msdus in a queue excess over qdepth_thresh_value value
+ * while queuing msdu's then we drop new msdus.
+ * (Though dropping older (stale) data rather than newer data might be
+ * preferable, the dropping is performed by MAC HW, and there’s no option
+ * to configure the HW to do head dropping rather than tail dropping.)
+ */
+ A_UINT32 qdepth_thresh_value;
+} wmi_msduq_qdepth_thresh_update;
+
+/** WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID
+ * Request FW to update msduq qdepth threshold per TID per peer */
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param
+ */
+ A_UINT32 tlv_header;
+
+ /** pdev id
+ * The pdev_id can be determined from the vdev_id, but the pdev_id
+ * is explicitly provided so it can be used for sanity checking.
+ */
+ A_UINT32 pdev_id;
+
+ /** vdev id */
+ A_UINT32 vdev_id;
+
+ /**
+ * To set the peer msduq qdepth threshold update for a single peer,
+ * the host shall send mac address for which peer need to be updated.
+ */
+ wmi_mac_addr peer_mac_address;
+
+ /** number of payload update tlvs */
+ A_UINT32 num_of_msduq_updates;
+
+ /** Followed by the variable length TLV msduq_qdepth_updates:
+ * wmi_msduq_qdepth_th_update msduq_qdepth_thshd_update_list[]
+ */
+} wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param;
+
typedef enum {
WMI_PEER_IND_SMPS = 0x0, /* spatial multiplexing power save */
WMI_PEER_IND_OMN, /* operating mode notification */
@@ -20907,6 +20965,7 @@
WMI_RETURN_STRING(WMI_PDEV_SEND_FD_CMDID);
WMI_RETURN_STRING(WMI_ENABLE_FILS_CMDID);
WMI_RETURN_STRING(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID);
+ WMI_RETURN_STRING(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID);
}
return "Invalid WMI cmd";
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index b0aee44..2d72c2a 100644
--- a/CORE/SERVICES/COMMON/wmi_version.h
+++ b/CORE/SERVICES/COMMON/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_ 474
+#define __WMI_REVISION_ 475
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index 29d7a7b..e815874 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -766,6 +766,7 @@
CASE_RETURN_STRING(WMI_HB_DHCP_LEASE_RENEW_OFFLOAD_CMDID);
CASE_RETURN_STRING(WMI_WLM_CONFIG_CMDID);
CASE_RETURN_STRING(WMI_PDEV_UPDATE_PMK_CACHE_CMDID);
+ CASE_RETURN_STRING(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID);
}
return "Invalid WMI cmd";
}