diff --git a/common/wlan_lib.c b/common/wlan_lib.c
index 840eeba..1c3d4da 100644
--- a/common/wlan_lib.c
+++ b/common/wlan_lib.c
@@ -2237,6 +2237,33 @@
 
 /*----------------------------------------------------------------------------*/
 /*!
+* \brief This function is called to set g_fgKeepFullPwr flag in firmware
+*
+* \param[IN] prAdapter        Pointer to the Adapter structure.
+* \param[IN] fgEnable         Boolean of enable
+*                             True: wlan stays awake and keeps working in full power state
+*                             False: wlan may go to sleep and consumes less power.
+*
+* \return WLAN_STATUS_SUCCESS
+* \return WLAN_STATUS_FAILURE
+*/
+/*----------------------------------------------------------------------------*/
+WLAN_STATUS wlanKeepFullPwr(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgEnable)
+{
+	struct CMD_KEEP_FULL_PWR_T rCmdKeepFullPwr;
+
+	ASSERT(prAdapter);
+
+	rCmdKeepFullPwr.ucEnable = fgEnable;
+	DBGLOG(HAL, STATE, "KeepFullPwr: %d\n", rCmdKeepFullPwr.ucEnable);
+
+	return wlanSendSetQueryCmd(prAdapter,
+				   CMD_ID_KEEP_FULL_PWR, TRUE, FALSE, FALSE, NULL, NULL,
+				   sizeof(struct CMD_KEEP_FULL_PWR_T), (PUINT_8)&rCmdKeepFullPwr, NULL, 0);
+}
+
+/*----------------------------------------------------------------------------*/
+/*!
 * \brief This function is called to check if it is RF test mode and
 *        the OID is allowed to be called or not
 *
@@ -9547,6 +9574,9 @@
 	PARAM_POWER_MODE ePwrMode;
 	P_BSS_INFO_T prBssInfo;
 
+	if (prGlueInfo->prAdapter->u4IsKeepFullPwrBitmap)
+		wlanKeepFullPwr(prGlueInfo->prAdapter, FALSE);
+
 	/* if wifi.cfg EAPOL offload is 0, we set rekey offload when enter wow */
 	if (!prGlueInfo->prAdapter->rWifiVar.ucEapolOffload) {
 		wlanSuspendRekeyOffload(prGlueInfo, FALSE);
@@ -9614,5 +9644,8 @@
 				prGlueInfo->prAdapter->prAisBssInfo->ucBssIndex, ePwrMode, FALSE, FALSE);
 		}
 	}
+
+	if (prGlueInfo->prAdapter->u4IsKeepFullPwrBitmap)
+		wlanKeepFullPwr(prGlueInfo->prAdapter, TRUE);
 }
 
diff --git a/include/nic/adapter.h b/include/nic/adapter.h
index a184640..2a55cc3 100644
--- a/include/nic/adapter.h
+++ b/include/nic/adapter.h
@@ -1166,6 +1166,12 @@
 	UINT_32 u4CtiaPowerMode;
 	BOOLEAN fgEnCtiaPowerMode;
 
+	/* Bitmap is defined as #define KEEP_FULL_PWR_{FEATURE}_BIT in wlan_lib.h
+	 * Each feature controls KeepFullPwr(CMD_ID_KEEP_FULL_PWR) should
+	 * register bitmap to ensure low power during suspend.
+	 */
+	UINT_32 u4IsKeepFullPwrBitmap;
+
 	UINT_32 fgEnArpFilter;
 
 	UINT_32 u4UapsdAcBmp;
diff --git a/include/nic_cmd_event.h b/include/nic_cmd_event.h
index 7beea0a..2e8e3e4 100644
--- a/include/nic_cmd_event.h
+++ b/include/nic_cmd_event.h
@@ -447,6 +447,8 @@
 	CMD_ID_P2P_ABORT,	/* 0x26 (Set) */
 	CMD_ID_SET_DBDC_PARMS = 0x28,	/* 0x28 (Set) */
 
+	CMD_ID_KEEP_FULL_PWR = 0x2A,	/* 0x2A (Set) */
+
 	/* SLT commands */
 	CMD_ID_RANDOM_RX_RESET_EN = 0x2C,	/* 0x2C (Set ) */
 	CMD_ID_RANDOM_RX_RESET_DE = 0x2D,	/* 0x2D (Set ) */
@@ -1549,6 +1551,12 @@
 	UINT_8 aucReserved[3];
 } CMD_NIC_POWER_CTRL, *P_CMD_NIC_POWER_CTRL;
 
+/* CMD_ID_KEEP_FULL_PWR */
+struct CMD_KEEP_FULL_PWR_T {
+	UINT_8 ucEnable;
+	UINT_8 aucReserved[3];
+};
+
 /* CMD_ID_POWER_SAVE_MODE */
 typedef struct _CMD_PS_PROFILE_T {
 	UINT_8 ucBssIndex;
diff --git a/include/wlan_lib.h b/include/wlan_lib.h
index 96d6516..c660539 100644
--- a/include/wlan_lib.h
+++ b/include/wlan_lib.h
@@ -203,6 +203,10 @@
 #define INVALID_WOW_WAKE_UP_REASON 255
 #endif
 
+#if CFG_SUPPORT_ADVANCE_CONTROL
+#define KEEP_FULL_PWR_TRAFFIC_REPORT_BIT BIT(0)
+#define KEEP_FULL_PWR_NOISE_HISTOGRAM_BIT BIT(1)
+#endif
 
 typedef enum _CMD_VER_T {
 	CMD_VER_1, /* Type[2]+String[32]+Value[32] */
@@ -1072,6 +1076,8 @@
 
 WLAN_STATUS wlanSendNicPowerCtrlCmd(IN P_ADAPTER_T prAdapter, IN UINT_8 ucPowerMode);
 
+WLAN_STATUS wlanKeepFullPwr(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgEnable);
+
 BOOLEAN wlanIsHandlerAllowedInRFTest(IN PFN_OID_HANDLER_FUNC pfnOidHandler, IN BOOLEAN fgSetInfo);
 
 WLAN_STATUS wlanProcessQueuedSwRfb(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfbListHead);
diff --git a/os/linux/gl_wext_priv.c b/os/linux/gl_wext_priv.c
index 10d9c8f..15f86dd 100644
--- a/os/linux/gl_wext_priv.c
+++ b/os/linux/gl_wext_priv.c
@@ -9366,9 +9366,11 @@
 	cmd->ucBand = ucBand;
 
 	if (strnicmp(apcArgv[1], "ENABLE", strlen("ENABLE")) == 0) {
+		prGlueInfo->prAdapter->u4IsKeepFullPwrBitmap |= KEEP_FULL_PWR_TRAFFIC_REPORT_BIT;
 		cmd->ucAction = CMD_GET_REPORT_ENABLE;
 		cmd->u2Type |= CMD_ADV_CONTROL_SET;
 	} else if (strnicmp(apcArgv[1], "DISABLE", strlen("DISABLE")) == 0) {
+		prGlueInfo->prAdapter->u4IsKeepFullPwrBitmap &= ~KEEP_FULL_PWR_TRAFFIC_REPORT_BIT;
 		cmd->ucAction = CMD_GET_REPORT_DISABLE;
 		cmd->u2Type |= CMD_ADV_CONTROL_SET;
 	} else if (strnicmp(apcArgv[1], "RESET", strlen("RESET")) == 0) {
@@ -10192,9 +10194,11 @@
 	cmd->u2Len = sizeof(*cmd);
 
 	if (strnicmp(apcArgv[1], "ENABLE", strlen("ENABLE")) == 0) {
+		prGlueInfo->prAdapter->u4IsKeepFullPwrBitmap |= KEEP_FULL_PWR_NOISE_HISTOGRAM_BIT;
 		cmd->ucAction = CMD_NOISE_HISTOGRAM_ENABLE;
 		cmd->u2Type |= CMD_ADV_CONTROL_SET;
 	} else if (strnicmp(apcArgv[1], "DISABLE", strlen("DISABLE")) == 0) {
+		prGlueInfo->prAdapter->u4IsKeepFullPwrBitmap &= ~KEEP_FULL_PWR_NOISE_HISTOGRAM_BIT;
 		cmd->ucAction = CMD_NOISE_HISTOGRAM_DISABLE;
 		cmd->u2Type |= CMD_ADV_CONTROL_SET;
 	} else if (strnicmp(apcArgv[1], "RESET", strlen("RESET")) == 0) {
