qcacld-3.0: Add config to enable/disable RX PN_check offload
Add config to enable/disable RX PN_check offload.
Offload PN check to FW for QCN7605 HL data path.
Change-Id: Ieab4442d73957a9e0314d637a513452616f7a48c
CRs-Fixed: 2433079
diff --git a/Kbuild b/Kbuild
index 271696c..2011712 100644
--- a/Kbuild
+++ b/Kbuild
@@ -2211,6 +2211,7 @@
cppflags-$(CONFIG_FEATURE_HL_GROUP_CREDIT_FLOW_CONTROL) += -DFEATURE_HL_GROUP_CREDIT_FLOW_CONTROL
cppflags-$(CONFIG_FEATURE_HL_DBS_GROUP_CREDIT_SHARING) += -DFEATURE_HL_DBS_GROUP_CREDIT_SHARING
cppflags-$(CONFIG_CREDIT_REP_THROUGH_CREDIT_UPDATE) += -DCONFIG_CREDIT_REP_THROUGH_CREDIT_UPDATE
+cppflags-$(CONFIG_RX_PN_CHECK_OFFLOAD) += -DCONFIG_RX_PN_CHECK_OFFLOAD
cppflags-$(CONFIG_WLAN_SYNC_TSF_PTP) += -DWLAN_FEATURE_TSF_PTP
cppflags-$(CONFIG_WLAN_SYNC_TSF_PLUS_EXT_GPIO_IRQ) += -DWLAN_FEATURE_TSF_PLUS_EXT_GPIO_IRQ
diff --git a/configs/genoa.sdio.debug_defconfig b/configs/genoa.sdio.debug_defconfig
index 41d3799..722c75f 100644
--- a/configs/genoa.sdio.debug_defconfig
+++ b/configs/genoa.sdio.debug_defconfig
@@ -48,4 +48,5 @@
endif
CONFIG_LINUX_QCMBR :=y
CONFIG_TGT_NUM_MSDU_DESC := 0
+CONFIG_RX_PN_CHECK_OFFLOAD := y
###################################
diff --git a/configs/genoa.sdio.perf_defconfig b/configs/genoa.sdio.perf_defconfig
index ac4124b..0c73dcc 100644
--- a/configs/genoa.sdio.perf_defconfig
+++ b/configs/genoa.sdio.perf_defconfig
@@ -54,4 +54,5 @@
QCA_WIFI_FTM_NL80211 := n
CONFIG_LINUX_QCMBR := n
CONFIG_TGT_NUM_MSDU_DESC := 0
+CONFIG_RX_PN_CHECK_OFFLOAD := y
###################################
diff --git a/configs/genoa.usb.debug_defconfig b/configs/genoa.usb.debug_defconfig
index ca4720e..f8158bf 100644
--- a/configs/genoa.usb.debug_defconfig
+++ b/configs/genoa.usb.debug_defconfig
@@ -44,6 +44,7 @@
endif
# Genoa features vs Rome
+CONFIG_RX_PN_CHECK_OFFLOAD := y
CONFIG_HTT_PADDR64 := y
CONFIG_QCA_WIFI_FTM := y
diff --git a/configs/genoa.usb.perf_defconfig b/configs/genoa.usb.perf_defconfig
index de73a4a..cecaea8 100644
--- a/configs/genoa.usb.perf_defconfig
+++ b/configs/genoa.usb.perf_defconfig
@@ -53,6 +53,7 @@
endif
# Genoa features vs Rome
+CONFIG_RX_PN_CHECK_OFFLOAD := y
CONFIG_HTT_PADDR64 := y
CONFIG_QCA_WIFI_FTM := n
diff --git a/core/dp/txrx/ol_cfg.c b/core/dp/txrx/ol_cfg.c
index 6458e92..12353ea 100644
--- a/core/dp/txrx/ol_cfg.c
+++ b/core/dp/txrx/ol_cfg.c
@@ -76,8 +76,8 @@
cfg_ctx->tx_download_size = 1500;
ol_pdev_cfg_credit_update(cfg_ctx);
}
-#else
+#else /* CONFIG_HL_SUPPORT */
static inline
void ol_pdev_cfg_param_update(struct txrx_pdev_cfg_t *cfg_ctx)
{
@@ -89,6 +89,22 @@
}
#endif
+#ifdef CONFIG_RX_PN_CHECK_OFFLOAD
+static inline
+void ol_pdev_cfg_rx_pn_check(struct txrx_pdev_cfg_t *cfg_ctx)
+{
+ /* Do not do pn check on host */
+ cfg_ctx->rx_pn_check = 0;
+}
+#else
+static inline
+void ol_pdev_cfg_rx_pn_check(struct txrx_pdev_cfg_t *cfg_ctx)
+{
+ /* Do pn check on host */
+ cfg_ctx->rx_pn_check = 1;
+}
+#endif /* CONFIG_RX_PN_CHECK_OFFLOAD */
+
#if CFG_TGT_DEFAULT_RX_SKIP_DEFRAG_TIMEOUT_DUP_DETECTION_CHECK
static inline
uint8_t ol_defrag_timeout_check(void)
@@ -119,9 +135,8 @@
return NULL;
ol_pdev_cfg_param_update(cfg_ctx);
+ ol_pdev_cfg_rx_pn_check(cfg_ctx);
- /* temporarily disabled PN check for Riva/Pronto */
- cfg_ctx->rx_pn_check = 1;
cfg_ctx->defrag_timeout_check = ol_defrag_timeout_check();
cfg_ctx->max_peer_id = 511;
cfg_ctx->max_vdev = CFG_TGT_NUM_VDEV;