summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Liu <kaliu@codeaurora.org>2016-08-29 18:26:19 +0800
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-09-02 15:08:45 +0530
commita904d395ac279e082065e6eb13b8769fa1c03d83 (patch)
treea6e1e7f24cfd6ed3d44c112b61492a36cd19dc17
parent1c68ff8bfb76ab663e24b9c81d0f8d0d72f85d76 (diff)
qcacld-2.0: Enable tx flow control for HL usb case
Currently tx flow control is just enabled in LL, we encounter a case in HL usb that kernel UDP stack will pump many packets which cause host discard packets. Enable tx flow control for usb to avoid packets discarded. Change-Id: If70bceaa0f64eb94e7f8e5480076869d2c6f1d9e CRs-Fixed: 1058813
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c21
-rw-r--r--Kbuild6
2 files changed, 20 insertions, 7 deletions
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 2cd904067953..d2ba037d80db 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -12121,19 +12121,12 @@ void hdd_dump_concurrency_info(hdd_context_t *pHddCtx)
WLAN_TFC_IPAUC_TX_DESC_RESERVE;
} else
#endif /* IPA_UC_OFFLOAD */
-#ifdef CONFIG_HL_SUPPORT
- {
- pAdapter->tx_flow_low_watermark = 0;
- }
- pAdapter->tx_flow_high_watermark_offset = 0;
-#else
{
pAdapter->tx_flow_low_watermark =
pHddCtx->cfg_ini->TxFlowLowWaterMark;
}
pAdapter->tx_flow_high_watermark_offset =
pHddCtx->cfg_ini->TxFlowHighWaterMarkOffset;
-#endif
WLANTL_SetAdapterMaxQDepth(pHddCtx->pvosContext,
pAdapter->sessionId,
pHddCtx->cfg_ini->TxFlowMaxQueueDepth);
@@ -12160,8 +12153,15 @@ void hdd_dump_concurrency_info(hdd_context_t *pHddCtx)
if (preAdapterChannel == targetChannel)
{
/* Current adapter */
+#ifdef CONFIG_PER_VDEV_TX_DESC_POOL
+ pAdapter->tx_flow_low_watermark =
+ pHddCtx->cfg_ini->TxFlowLowWaterMark;
+ pAdapter->tx_flow_high_watermark_offset =
+ pHddCtx->cfg_ini->TxFlowHighWaterMarkOffset;
+#else
pAdapter->tx_flow_low_watermark = 0;
pAdapter->tx_flow_high_watermark_offset = 0;
+#endif
WLANTL_SetAdapterMaxQDepth(pHddCtx->pvosContext,
pAdapter->sessionId,
pHddCtx->cfg_ini->TxHbwFlowMaxQueueDepth);
@@ -12183,8 +12183,15 @@ void hdd_dump_concurrency_info(hdd_context_t *pHddCtx)
}
/* Previous adapter */
+#ifdef CONFIG_PER_VDEV_TX_DESC_POOL
+ preAdapterContext->tx_flow_low_watermark =
+ pHddCtx->cfg_ini->TxFlowLowWaterMark;
+ preAdapterContext->tx_flow_high_watermark_offset =
+ pHddCtx->cfg_ini->TxFlowHighWaterMarkOffset;
+#else
preAdapterContext->tx_flow_low_watermark = 0;
preAdapterContext->tx_flow_high_watermark_offset = 0;
+#endif
WLANTL_SetAdapterMaxQDepth(pHddCtx->pvosContext,
preAdapterContext->sessionId,
pHddCtx->cfg_ini->TxHbwFlowMaxQueueDepth);
diff --git a/Kbuild b/Kbuild
index fd695111e241..debe172bcd44 100644
--- a/Kbuild
+++ b/Kbuild
@@ -207,6 +207,7 @@ ifeq ($(CONFIG_ROME_IF),pci)
endif
ifeq ($(CONFIG_ROME_IF),usb)
CONFIG_PER_VDEV_TX_DESC_POOL := 1
+ CONFIG_QCA_LL_TX_FLOW_CT := 1
endif
ifeq ($(CONFIG_QCA_WIFI_SDIO), 1)
CONFIG_PER_VDEV_TX_DESC_POOL := 0
@@ -1260,6 +1261,11 @@ ifeq ($(CONFIG_PER_VDEV_TX_DESC_POOL), 1)
CDEFINES += -DCONFIG_PER_VDEV_TX_DESC_POOL
endif
+#Enable tx flow control
+ifeq ($(CONFIG_QCA_LL_TX_FLOW_CT), 1)
+CDEFINES += -DQCA_LL_TX_FLOW_CT
+endif
+
#Enable Tx mgmt desc reserve
ifeq ($(CONFIG_TX_DESC_HI_PRIO_RESERVE), 1)
CDEFINES += -DCONFIG_TX_DESC_HI_PRIO_RESERVE