summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/SERVICES/COMMON/wmi_services.h1
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h8
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h17
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c1
5 files changed, 28 insertions, 1 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_services.h b/CORE/SERVICES/COMMON/wmi_services.h
index a08cb534b1d1..e5109a9c066e 100644
--- a/CORE/SERVICES/COMMON/wmi_services.h
+++ b/CORE/SERVICES/COMMON/wmi_services.h
@@ -344,6 +344,7 @@ typedef enum {
WMI_SERVICE_GMAC_OFFLOAD_SUPPORT=154, /* Support for GMAC */
WMI_SERVICE_SPOOF_MAC_SUPPORT=155, /* support for SERVICE_SPOOF_MAC */
WMI_SERVICE_PEER_TID_CONFIGS_SUPPORT=156, /* Support TID specific configurations per peer (ack,aggr,retry,rate) */
+ WMI_SERVICE_VDEV_SWRETRY_PER_AC_CONFIG_SUPPORT=157, /* Support vdev software retries configuration per AC (non aggr retry/aggr retry) */
/******* ADD NEW SERVICES HERE *******/
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index 395c212fdae1..93a34d9dbb44 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -905,6 +905,7 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_request_roam_scan_stats_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_roam_scan_stats_event_fixed_param,
WMITLV_TAG_STRUC_wmi_peer_tid_configurations_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_set_custom_sw_retry_th_cmd_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -1275,6 +1276,7 @@ typedef enum {
OP(WMI_TWT_RESUME_DIALOG_CMDID) \
OP(WMI_REQUEST_ROAM_SCAN_STATS_CMDID) \
OP(WMI_PEER_TID_CONFIGURATIONS_CMDID) \
+ OP(WMI_VDEV_SET_CUSTOM_SW_RETRY_TH_CMDID) \
/* add new CMD_LIST elements above this line */
/*
@@ -2377,6 +2379,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_TX_POWER_CMDID);
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_LIMIT_OFFCHAN_CMDID);
+/* vdev per-AC SW retry configuration cmd */
+#define WMITLV_TABLE_WMI_VDEV_SET_CUSTOM_SW_RETRY_TH_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_custom_sw_retry_th_cmd_fixed_param, wmi_vdev_set_custom_sw_retry_th_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_CUSTOM_SW_RETRY_TH_CMDID);
+
/* PDEV Set Base Mac Address Cmd */
#define WMITLV_TABLE_WMI_PDEV_SET_BASE_MACADDR_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param, wmi_pdev_set_base_macaddr_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 3280165aebd1..30329febcd48 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -450,6 +450,8 @@ typedef enum {
WMI_VDEV_GET_TX_POWER_CMDID,
/* limit STA offchannel activity */
WMI_VDEV_LIMIT_OFFCHAN_CMDID,
+ /** To set custom software retries per-AC for vdev */
+ WMI_VDEV_SET_CUSTOM_SW_RETRY_TH_CMDID,
/* peer specific commands */
@@ -4320,6 +4322,20 @@ typedef enum {
WMI_GET_BITS(param, WMI_VDEV_CUSTOM_TX_AC_EN_BITPOS, \
WMI_VDEV_CUSTOM_TX_AC_EN_NUM_BITS)
+typedef enum {
+ WMI_VDEV_CUSTOM_SW_RETRY_TYPE_NONAGGR = 0,
+ WMI_VDEV_CUSTOM_SW_RETRY_TYPE_AGGR = 1,
+ WMI_VDEV_CUSTOM_SW_RETRY_TYPE_MAX,
+} wmi_vdev_custom_sw_retry_type_t;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_custom_sw_retry_th_cmd_fixed_param */
+ A_UINT32 vdev_id; /* vdev id indicating to which the vdev custom software retries will be applied. */
+ A_UINT32 ac_type; /* access category (VI, VO, BE, BK) enum wmi_traffic_ac */
+ A_UINT32 sw_retry_type; /* 0 = non-aggr retry, 1 = aggr retry (wmi_vdev_custom_sw_retry_type_t enum) */
+ A_UINT32 sw_retry_th; /* max retry count per AC base on ac_type for the vdev mentioned in vdev id*/
+} wmi_vdev_set_custom_sw_retry_th_cmd_fixed_param;
+
/*
* Command to enable/disable Green AP Power Save.
* This helps conserve power during AP operation. When the AP has no
@@ -21675,6 +21691,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_TWT_RESUME_DIALOG_CMDID);
WMI_RETURN_STRING(WMI_REQUEST_ROAM_SCAN_STATS_CMDID);
WMI_RETURN_STRING(WMI_PEER_TID_CONFIGURATIONS_CMDID);
+ WMI_RETURN_STRING(WMI_VDEV_SET_CUSTOM_SW_RETRY_TH_CMDID);
}
return "Invalid WMI cmd";
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index b6dad957dfd4..48bd0d973ba2 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_ 517
+#define __WMI_REVISION_ 518
/** 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 2eed533654d2..99ff60748da6 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -788,6 +788,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_PEER_RESERVED0_CMDID);
CASE_RETURN_STRING(WMI_REQUEST_ROAM_SCAN_STATS_CMDID);
CASE_RETURN_STRING(WMI_PEER_TID_CONFIGURATIONS_CMDID);
+ CASE_RETURN_STRING(WMI_VDEV_SET_CUSTOM_SW_RETRY_TH_CMDID);
}
return "Invalid WMI cmd";