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);