diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c
index 7142592782..63b84a5634 100644
--- a/components/mlme/core/src/wlan_mlme_main.c
+++ b/components/mlme/core/src/wlan_mlme_main.c
@@ -999,8 +999,9 @@ static void mlme_init_he_cap_in_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_he_caps *he_caps = &mlme_cfg->he_caps;
he_caps->dot11_he_cap.htc_he = cfg_default(CFG_HE_CONTROL);
- he_caps->dot11_he_cap.twt_request = cfg_default(CFG_HE_TWT_REQUESTOR);
- he_caps->dot11_he_cap.twt_responder = cfg_default(CFG_HE_TWT_RESPONDER);
+ he_caps->dot11_he_cap.twt_request = cfg_get(psoc, CFG_HE_TWT_REQUESTOR);
+ he_caps->dot11_he_cap.twt_responder =
+ cfg_get(psoc, CFG_HE_TWT_RESPONDER);
he_caps->dot11_he_cap.fragmentation =
cfg_default(CFG_HE_FRAGMENTATION);
he_caps->dot11_he_cap.max_num_frag_msdu_amsdu_exp =
diff --git a/components/mlme/dispatcher/inc/cfg_mlme_he_caps.h b/components/mlme/dispatcher/inc/cfg_mlme_he_caps.h
index ac584f3447..29631c8584 100644
--- a/components/mlme/dispatcher/inc/cfg_mlme_he_caps.h
+++ b/components/mlme/dispatcher/inc/cfg_mlme_he_caps.h
@@ -28,14 +28,48 @@
0, \
"HE Control")
-#define CFG_HE_TWT_REQUESTOR CFG_BOOL( \
+/*
+ *
+ * he_twt_requestor- Enable HE TWT requestor.
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ * This ini is used to enable or disable HE TWT requestor.
+ *
+ * Related: NA
+ *
+ * Supported Feature: 11AX
+ *
+ * Usage: External
+ *
+ *
+ */
+#define CFG_HE_TWT_REQUESTOR CFG_INI_BOOL( \
"he_twt_requestor", \
- 0, \
+ 1, \
"HE Twt Requestor")
-#define CFG_HE_TWT_RESPONDER CFG_BOOL( \
+/*
+ *
+ * he_twt_responder- Enable HE TWT responder.
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ * This ini is used to enable or disable HE TWT responder.
+ *
+ * Related: NA
+ *
+ * Supported Feature: 11AX
+ *
+ * Usage: External
+ *
+ *
+ */
+#define CFG_HE_TWT_RESPONDER CFG_INI_BOOL( \
"he_twt_responder", \
- 0, \
+ 1, \
"HE Twt Responder")
#define CFG_HE_FRAGMENTATION CFG_UINT( \
diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c
index d31ccb31eb..3c5377156c 100644
--- a/components/mlme/dispatcher/src/wlan_mlme_api.c
+++ b/components/mlme/dispatcher/src/wlan_mlme_api.c
@@ -575,13 +575,15 @@ QDF_STATUS mlme_update_tgt_he_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
mlme_obj->cfg.he_caps.dot11_he_cap.present = 1;
mlme_obj->cfg.he_caps.dot11_he_cap.htc_he = he_cap->htc_he;
- mlme_obj->cfg.he_caps.dot11_he_cap.twt_request =
- he_cap->twt_request;
- mlme_obj->cfg.he_caps.dot11_he_cap.twt_responder =
- he_cap->twt_responder;
+ value = QDF_MIN(he_cap->twt_request,
+ mlme_obj->cfg.he_caps.dot11_he_cap.twt_request);
+ mlme_obj->cfg.he_caps.dot11_he_cap.twt_request = value;
- value = QDF_MIN(
- he_cap->fragmentation,
+ value = QDF_MIN(he_cap->twt_responder,
+ mlme_obj->cfg.he_caps.dot11_he_cap.twt_responder);
+ mlme_obj->cfg.he_caps.dot11_he_cap.twt_responder = value;
+
+ value = QDF_MIN(he_cap->fragmentation,
mlme_obj->cfg.he_caps.he_dynamic_fragmentation);
if (cfg_in_range(CFG_HE_FRAGMENTATION, value))