diff --git a/include/mgmt/rlm_domain.h b/include/mgmt/rlm_domain.h
index a43bd89..d5d2dc3 100644
--- a/include/mgmt/rlm_domain.h
+++ b/include/mgmt/rlm_domain.h
@@ -753,7 +753,7 @@
 void rlmDomainOidSetCountry(IN P_ADAPTER_T prAdapter, char *country, u8 size_of_country);
 u32 rlmDomainGetCountryCode(void);
 u32 rlmDomainGetTempCountryCode(void);
-void rlmDomianAssert(BOOLEAN cond);
+void rlmDomainAssert(BOOLEAN cond);
 
 /*******************************************************************************
 *                              F U N C T I O N S
diff --git a/include/nic/hal.h b/include/nic/hal.h
index c041a57..7d529d1 100644
--- a/include/nic/hal.h
+++ b/include/nic/hal.h
@@ -1049,4 +1049,5 @@
 WLAN_STATUS halReleaseIOBuffer(IN P_ADAPTER_T prAdapter);
 VOID halDeAggRxPktWorker(struct work_struct *work);
 VOID halPrintHifDbgInfo(IN P_ADAPTER_T prAdapter);
+BOOLEAN halIsTxResourceControlEn(IN P_ADAPTER_T prAdapter);
 #endif /* _HAL_H */
diff --git a/include/nic/que_mgt.h b/include/nic/que_mgt.h
index e4232b8..7ba0937 100644
--- a/include/nic/que_mgt.h
+++ b/include/nic/que_mgt.h
@@ -439,6 +439,7 @@
 	UINT_32 u4MaxForwardBufferCount;
 
 	OS_SYSTIME rLastTxPktDumpTime;
+	BOOLEAN fgIsTxResrouceControlEn;
 } QUE_MGT_T, *P_QUE_MGT_T;
 
 typedef struct _EVENT_RX_ADDBA_T {
@@ -758,7 +759,7 @@
 /* Queue Management and STA_REC Initialization                                */
 /*----------------------------------------------------------------------------*/
 
-VOID qmInit(IN P_ADAPTER_T prAdapter);
+VOID qmInit(IN P_ADAPTER_T prAdapter, IN BOOLEAN isTxResrouceControlEn);
 
 #if QM_TEST_MODE
 VOID qmTestCases(IN P_ADAPTER_T prAdapter);
diff --git a/mgmt/rlm_domain.c b/mgmt/rlm_domain.c
index aa4003b..325b104 100644
--- a/mgmt/rlm_domain.c
+++ b/mgmt/rlm_domain.c
@@ -2660,7 +2660,7 @@
 #endif
 }
 
-void rlmDomianAssert(BOOLEAN cond)
+void rlmDomainAssert(BOOLEAN cond)
 {
 	/* bypass this check because single sku is not enable */
 	if (!regd_is_single_sku_en())
diff --git a/nic/nic_tx.c b/nic/nic_tx.c
index 709c441..ff06a49 100644
--- a/nic/nic_tx.c
+++ b/nic/nic_tx.c
@@ -227,7 +227,7 @@
 	/* enable/disable TX resource control */
 	prTxCtrl->fgIsTxResourceCtrl = NIC_TX_RESOURCE_CTRL;
 
-	qmInit(prAdapter);
+	qmInit(prAdapter, halIsTxResourceControlEn(prAdapter));
 
 	TX_RESET_ALL_CNTS(prTxCtrl);
 
diff --git a/nic/que_mgt.c b/nic/que_mgt.c
index 75444f0..f24e225 100644
--- a/nic/que_mgt.c
+++ b/nic/que_mgt.c
@@ -230,7 +230,7 @@
 * \return (none)
 */
 /*----------------------------------------------------------------------------*/
-VOID qmInit(IN P_ADAPTER_T prAdapter)
+VOID qmInit(IN P_ADAPTER_T prAdapter, IN BOOLEAN isTxResrouceControlEn)
 {
 	UINT_32 u4Idx;
 #if QM_ADAPTIVE_TC_RESOURCE_CTRL
@@ -273,6 +273,8 @@
 
 	kalMemSet(&g_arMissTimeout, 0, sizeof(g_arMissTimeout));
 
+	prQM->fgIsTxResrouceControlEn = isTxResrouceControlEn;
+
 #if QM_ADAPTIVE_TC_RESOURCE_CTRL
 	/* 4 <4> Initialize TC resource control variables */
 	for (u4Idx = 0; u4Idx < TC_NUM; u4Idx++)
@@ -1294,10 +1296,12 @@
 				if (u4MaxForwardFrameCountLimit > prBssInfo->ucBssFreeQuota)
 					u4MaxForwardFrameCountLimit = prBssInfo->ucBssFreeQuota;
 			}
+
 #if CFG_SUPPORT_DBDC
-			if (prAdapter->rWifiVar.uDeQuePercentEnable && prAdapter->rWifiVar.fgDbDcModeEn)
+			if (prAdapter->rWifiVar.fgDbDcModeEn)
 				u4MaxResourceLimit = gmGetDequeueQuota(prAdapter, prStaRec, prBssInfo, u4TotalQuota);
 #endif
+
 			/* 4 <2.3> Dequeue packet */
 			/* Three cases to break: (1) No resource (2) No packets (3) Fairness */
 			while (!QUEUE_IS_EMPTY(prCurrQueue)) {
@@ -2148,6 +2152,12 @@
 	UINT_32	u4Weight = 100;
 	UINT_32	u4Quota;
 
+	P_QUE_MGT_T prQM = &prAdapter->rQM;
+
+	if ((prAdapter->rWifiVar.uDeQuePercentEnable == FALSE) ||
+		(prQM->fgIsTxResrouceControlEn == FALSE))
+		return u4TotalQuota;
+
 	if (prStaRec->ucDesiredPhyTypeSet & PHY_TYPE_BIT_VHT) {
 		if (prBssInfo->ucVhtChannelWidth > VHT_OP_CHANNEL_WIDTH_20_40) {
 			/* BW80 NSS1 rate: MCS9 433 Mbps */
diff --git a/os/linux/gl_cfg80211.c b/os/linux/gl_cfg80211.c
index 840ae8a..80d913a 100644
--- a/os/linux/gl_cfg80211.c
+++ b/os/linux/gl_cfg80211.c
@@ -3263,7 +3263,7 @@
 	} else if (rlmDomainIsCtrlStateEqualTo(REGD_STATE_INVALID)) {
 		DBGLOG(RLM, ERROR, "\n%s():\n---> WARNING. Transit to invalid state.\n", __func__);
 		DBGLOG(RLM, ERROR, "---> WARNING.\n ");
-		rlmDomianAssert(0);
+		rlmDomainAssert(0);
 #if 0
 		return; /*error state*/
 #endif
@@ -3311,7 +3311,7 @@
 			DBGLOG(RLM, ERROR, "%s(): Error, Cannot find the correct RegDomain. country = %s\n",
 				__func__, rlmDomainGetCountryCode());
 
-			rlmDomianAssert(0);
+			rlmDomainAssert(0);
 			return;
 		}
 
diff --git a/os/linux/hif/pcie/hal_api.c b/os/linux/hif/pcie/hal_api.c
index 5b593c2..7fc06a3 100644
--- a/os/linux/hif/pcie/hal_api.c
+++ b/os/linux/hif/pcie/hal_api.c
@@ -1679,3 +1679,7 @@
 
 }
 
+BOOLEAN halIsTxResourceControlEn(IN P_ADAPTER_T prAdapter)
+{
+	return FALSE;
+}
diff --git a/os/linux/hif/sdio/hal_api.c b/os/linux/hif/sdio/hal_api.c
index 94ccafd..d5967a2 100644
--- a/os/linux/hif/sdio/hal_api.c
+++ b/os/linux/hif/sdio/hal_api.c
@@ -2100,3 +2100,8 @@
 	halPollDbgCr(prAdapter, LP_OWN_BACK_FAILED_DBGCR_POLL_ROUND);
 }
 
+BOOLEAN halIsTxResourceControlEn(IN P_ADAPTER_T prAdapter)
+{
+	return TRUE;
+}
+
diff --git a/os/linux/hif/usb/hal_api.c b/os/linux/hif/usb/hal_api.c
index 9901744..1eff320 100644
--- a/os/linux/hif/usb/hal_api.c
+++ b/os/linux/hif/usb/hal_api.c
@@ -1433,3 +1433,8 @@
 
 }
 
+BOOLEAN halIsTxResourceControlEn(IN P_ADAPTER_T prAdapter)
+{
+	return FALSE;
+}
+
