wlan: add dynamic WMM-PS support
Add firmware definitions for dynamic WMM-PS support.
Host driver will use these definitions to configure
the firmware to use and tune the dynamic WMM-PS functionality.
Change-Id: I50f4409b00bde2ce7d8b1f62265539f58497e4f7
CRs-Fixed: 705980
diff --git a/riva/inc/wlan_hal_cfg.h b/riva/inc/wlan_hal_cfg.h
index 6b2b4df..79d2e18 100644
--- a/riva/inc/wlan_hal_cfg.h
+++ b/riva/inc/wlan_hal_cfg.h
@@ -255,11 +255,22 @@
#define QWLAN_HAL_CFG_BTC_CRITICAL_HID_NSNIFF_BLK_GUIDANCE 197
#define QWLAN_HAL_CFG_BTC_DYN_A2DP_TX_QUEUE_THOLD 198
#define QWLAN_HAL_CFG_BTC_DYN_OPP_TX_QUEUE_THOLD 199
-#define QWLAN_HAL_CFG_MAX_PARAMS 200
+#define QWLAN_HAL_CFG_LINK_FAIL_TIMEOUT 200
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_SP 201
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT 202
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT 203
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT_MEAS_WINDOW 204
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT_MEAS_WINDOW 205
+#define QWLAN_HAL_CFG_MAX_PSPOLL_IN_WMM_UAPSD_PS_MODE 206
+#define QWLAN_HAL_CFG_MAX_UAPSD_INACTIVITY_INTERVALS 207
+#define QWLAN_HAL_CFG_ENABLE_DYNAMIC_WMMPS 208
+
+
+#define QWLAN_HAL_CFG_MAX_PARAMS 209
/* Total number of Integer CFGs. This is used while allocating the memory for TLV */
-#define QWLAN_HAL_CFG_INTEGER_PARAM 196
+#define QWLAN_HAL_CFG_INTEGER_PARAM 209
/*-------------------------------------------------------------------------
Configuration Parameter min, max, defaults
@@ -973,4 +984,48 @@
#define QWLAN_HAL_CFG_ASD_RTT_RSSI_HYST_THRESHOLD_MIN 50
#define QWLAN_HAL_CFG_ASD_RTT_RSSI_HYST_THRESHOLD_MAX 100
+/* QWLAN_HAL_CFG_LINK_FAIL_TIMEOUT */
+#define QWLAN_HAL_CFG_LINK_FAIL_TIMEOUT_DEF 6000
+#define QWLAN_HAL_CFG_LINK_FAIL_TIMEOUT_MAX 60000
+#define QWLAN_HAL_CFG_LINK_FAIL_TIMEOUT_MIN 1000
+
+/* QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_SP */
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_SP_MIN 0 // 0 is a special case which means ignore this rule
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_SP_MAX 500
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_SP_DEF 10
+
+/* QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT */
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT_MIN 0
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT_MAX 5000
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT_DEF 50
+
+/* QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT */
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT_MIN 0
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT_MAX 5000
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT_DEF 50
+
+/* QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT_MEAS_WINDOW */
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT_MEAS_WINDOW_MIN 50 // In milliseconds - 50ms
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT_MEAS_WINDOW_MAX 50000 // 50 sec
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_RX_CNT_MEAS_WINDOW_DEF 500 // 500ms
+
+/* QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT_MEAS_WINDOW */
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT_MEAS_WINDOW_MIN 50 // In milliseconds - 50ms
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT_MEAS_WINDOW_MAX 50000 // 50 sec
+#define QWLAN_HAL_CFG_MAX_UAPSD_CONSEC_TX_CNT_MEAS_WINDOW_DEF 500 // 500ms
+
+/* QWLAN_HAL_CFG_MAX_PSPOLL_IN_WMM_UAPSD_PS_MODE */
+#define QWLAN_HAL_CFG_MAX_PSPOLL_IN_WMM_UAPSD_PS_MODE_MIN 0
+#define QWLAN_HAL_CFG_MAX_PSPOLL_IN_WMM_UAPSD_PS_MODE_MAX 255
+#define QWLAN_HAL_CFG_MAX_PSPOLL_IN_WMM_UAPSD_PS_MODE_DEF 0
+
+/* QWLAN_HAL_CFG_MAX_UAPSD_INACTIVITY_INTERVALS */
+#define QWLAN_HAL_CFG_MAX_UAPSD_INACTIVITY_INTERVALS_MIN 1 // Cannot be 0 since otherwise switching from Active to PS mode will fail
+#define QWLAN_HAL_CFG_MAX_UAPSD_INACTIVITY_INTERVALS_MAX 255
+#define QWLAN_HAL_CFG_MAX_UAPSD_INACTIVITY_INTERVALS_DEF 10
+
+/* QWLAN_HAL_CFG_ENABLE_DYNAMIC_WMMPS */
+#define QWLAN_HAL_CFG_ENABLE_DYNAMIC_WMMPS_MIN 0
+#define QWLAN_HAL_CFG_ENABLE_DYNAMIC_WMMPS_MAX 1
+#define QWLAN_HAL_CFG_ENABLE_DYNAMIC_WMMPS_DEF 1
#endif //__WLAN_HAL_CFG_H__
diff --git a/riva/inc/wlan_hal_msg.h b/riva/inc/wlan_hal_msg.h
index 13ba704..68368a6 100644
--- a/riva/inc/wlan_hal_msg.h
+++ b/riva/inc/wlan_hal_msg.h
@@ -6540,6 +6540,7 @@
LINK_LAYER_STATS_MEAS = 40,
MU_MIMO = 41,
EXTENDED_SCAN = 42,
+ DYNAMIC_WMM_PS = 43,
MAX_FEATURE_SUPPORTED = 128,
} placeHolderInCapBitmap;
@@ -6564,6 +6565,7 @@
#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
+#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);