ソースを参照

qcacld-3.0: Add ini to support twt in 11n mode

Currently TWT works only in 11ax. Add enable_twt_in_11n
ini to support TWT in 11n mode.
False: DO not support TWT in 11n mode
True: Support TWT in 11n mode

Change-Id: If1011c9a24b9c285199d7b0e60e5614d6c1f8786
CRs-Fixed: 3185100
Jyoti Kumari 3 年 前
コミット
abf8be9f56

+ 17 - 0
components/umac/twt/core/src/wlan_twt_cfg.c

@@ -52,6 +52,7 @@ QDF_STATUS wlan_twt_cfg_init(struct wlan_objmgr_psoc *psoc)
 	twt_cfg->bcast_responder_enabled = CFG_TWT_GET_BCAST_RES(bcast_conf);
 	twt_cfg->enable_twt_24ghz = cfg_get(psoc, CFG_ENABLE_TWT_24GHZ);
 	twt_cfg->flex_twt_sched = cfg_default(CFG_HE_FLEX_TWT_SCHED);
+	twt_cfg->is_twt_enabled_in_11n = cfg_get(psoc, CFG_TWT_ENABLE_IN_11N);
 	twt_cfg->req_flag = false;
 	twt_cfg->res_flag = false;
 
@@ -317,3 +318,19 @@ wlan_twt_cfg_get_bcast_responder(struct wlan_objmgr_psoc *psoc, bool *val)
 	return QDF_STATUS_SUCCESS;
 }
 
+QDF_STATUS
+wlan_twt_cfg_get_support_in_11n_mode(struct wlan_objmgr_psoc *psoc,
+				     bool *val)
+{
+	struct twt_psoc_priv_obj *twt_psoc_obj;
+
+	twt_psoc_obj = wlan_twt_psoc_get_comp_private_obj(psoc);
+	if (!twt_psoc_obj) {
+		*val = cfg_default(CFG_TWT_ENABLE_IN_11N);
+		return QDF_STATUS_E_INVAL;
+	}
+
+	*val = twt_psoc_obj->cfg_params.is_twt_enabled_in_11n;
+
+	return QDF_STATUS_SUCCESS;
+}

+ 11 - 0
components/umac/twt/core/src/wlan_twt_cfg.h

@@ -180,5 +180,16 @@ wlan_twt_cfg_get_bcast_requestor(struct wlan_objmgr_psoc *psoc, bool *val);
  */
 QDF_STATUS
 wlan_twt_cfg_get_bcast_responder(struct wlan_objmgr_psoc *psoc, bool *val);
+
+/**
+ * wlan_twt_cfg_get_support_in_11n_mode() - Get TWT support in 11n mode
+ * @psoc: Pointer to global psoc
+ * @val: pointer to output variable
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+wlan_twt_cfg_get_support_in_11n_mode(struct wlan_objmgr_psoc *psoc,
+				     bool *val);
 #endif
 

+ 25 - 1
components/umac/twt/dispatcher/inc/cfg_twt.h

@@ -193,13 +193,37 @@
 				0, \
 				"HE Flex Twt Sched")
 
+/*
+ * <ini>
+ * enable_twt_in_11n - Enable TWT support in 11n mode
+ * @MIN: 0
+ * @MAX: 1
+ * @Default: 0
+ *
+ * This ini is used to enable/disable TWT support 11n mode.
+ * Generally by default TWT support present from HE capable
+ * devices but if this ini is enabled then it will support
+ * partially from 11n mode itself.
+ *
+ * Related: NA
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_TWT_ENABLE_IN_11N CFG_INI_BOOL( \
+		"enable_twt_in_11n", \
+		false, \
+		"enable twt support in 11n mode")
+
 #define CFG_TWT_ALL \
 	CFG(CFG_ENABLE_TWT) \
 	CFG(CFG_TWT_REQUESTOR) \
 	CFG(CFG_TWT_RESPONDER) \
 	CFG(CFG_TWT_CONGESTION_TIMEOUT) \
 	CFG(CFG_BCAST_TWT_REQ_RESP) \
-	CFG(CFG_ENABLE_TWT_24GHZ)
+	CFG(CFG_ENABLE_TWT_24GHZ) \
+	CFG(CFG_TWT_ENABLE_IN_11N)
 #elif !defined(WLAN_SUPPORT_TWT) && !defined(WLAN_TWT_CONV_SUPPORTED)
 #define CFG_TWT_ALL
 #endif

+ 20 - 2
components/umac/twt/dispatcher/inc/wlan_twt_cfg_ext_api.h

@@ -41,18 +41,36 @@ wlan_twt_cfg_get_req_flag(struct wlan_objmgr_psoc *psoc, bool *val);
  */
 QDF_STATUS
 wlan_twt_cfg_get_res_flag(struct wlan_objmgr_psoc *psoc, bool *val);
+
+/**
+ * wlan_twt_cfg_get_support_in_11n() - Get TWT support on HT cap
+ * @psoc: Pointer to global psoc object
+ * @val: pointer to output variable
+ *
+ * Return: QDF_STATUS_SUCCESS
+ */
+QDF_STATUS
+wlan_twt_cfg_get_support_in_11n(struct wlan_objmgr_psoc *psoc,
+				bool *val);
 #else
-static inline
+static inline QDF_STATUS
 wlan_twt_cfg_get_res_flag(struct wlan_objmgr_psoc *psoc, bool *val)
 {
 	return QDF_STATUS_SUCCESS;
 }
 
-static inline
+static inline QDF_STATUS
 wlan_twt_cfg_get_req_flag(struct wlan_objmgr_psoc *psoc, bool *val)
 {
 	return QDF_STATUS_SUCCESS;
 }
+
+static inline QDF_STATUS
+wlan_twt_cfg_get_support_in_11n(struct wlan_objmgr_psoc *psoc,
+				bool *val)
+{
+	return QDF_STATUS_SUCCESS;
+}
 #endif
 
 #endif

+ 2 - 0
components/umac/twt/dispatcher/inc/wlan_twt_ext_defs.h

@@ -39,6 +39,7 @@
  * @flex_twt_sched: flex twt scheduling enable/disable
  * @req_flag: requestor flag enable/disable
  * @res_flag: responder flag enable/disable
+ * @is_twt_enabled_in_11n: Enable TWT support in 11n mode
  */
 struct twt_mc_cfg_params {
 	bool enable_twt;
@@ -51,6 +52,7 @@ struct twt_mc_cfg_params {
 	bool flex_twt_sched;
 	bool req_flag;
 	bool res_flag;
+	bool is_twt_enabled_in_11n;
 };
 
 #endif /* __WLAN_TWT_EXT_DEFS_H__ */

+ 6 - 0
components/umac/twt/dispatcher/src/wlan_twt_cfg_ext_api.c

@@ -29,3 +29,9 @@ wlan_twt_cfg_get_res_flag(struct wlan_objmgr_psoc *psoc, bool *val)
 {
 	return wlan_twt_cfg_get_responder_flag(psoc, val);
 }
+
+QDF_STATUS
+wlan_twt_cfg_get_support_in_11n(struct wlan_objmgr_psoc *psoc, bool *val)
+{
+	return wlan_twt_cfg_get_support_in_11n_mode(psoc, val);
+}