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;