From 17634e1e48ddc8fac6bcffa67d6b66491ae8bcb9 Mon Sep 17 00:00:00 2001 From: Ajit Pal Singh Date: Fri, 12 Apr 2019 11:17:36 +0530 Subject: [PATCH] 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 --- Kbuild | 1 + configs/genoa.sdio.debug_defconfig | 1 + configs/genoa.sdio.perf_defconfig | 1 + configs/genoa.usb.debug_defconfig | 1 + configs/genoa.usb.perf_defconfig | 1 + core/dp/txrx/ol_cfg.c | 21 ++++++++++++++++++--- 6 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Kbuild b/Kbuild index 271696cdc92f..201171261244 100644 --- a/Kbuild +++ b/Kbuild @@ -2211,6 +2211,7 @@ cppflags-$(CONFIG_QCA_HL_NETDEV_FLOW_CONTROL) += -DQCA_HL_NETDEV_FLOW_CONTROL 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 41d3799efbe5..722c75ff8e4b 100644 --- a/configs/genoa.sdio.debug_defconfig +++ b/configs/genoa.sdio.debug_defconfig @@ -48,4 +48,5 @@ else 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 ac4124bae185..0c73dcccc762 100644 --- a/configs/genoa.sdio.perf_defconfig +++ b/configs/genoa.sdio.perf_defconfig @@ -54,4 +54,5 @@ CONFIG_QCA_WIFI_FTM := n 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 ca4720ef6271..f8158bfab93d 100644 --- a/configs/genoa.usb.debug_defconfig +++ b/configs/genoa.usb.debug_defconfig @@ -44,6 +44,7 @@ CONFIG_LEAK_DETECTION := y 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 de73a4affb5c..cecaea8f79c3 100644 --- a/configs/genoa.usb.perf_defconfig +++ b/configs/genoa.usb.perf_defconfig @@ -53,6 +53,7 @@ CONFIG_CFG_NUM_ROAM_DEBUG_RECORD := 64 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 6458e9236464..12353eac1793 100644 --- a/core/dp/txrx/ol_cfg.c +++ b/core/dp/txrx/ol_cfg.c @@ -76,8 +76,8 @@ void ol_pdev_cfg_param_update(struct txrx_pdev_cfg_t *cfg_ctx) 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 @@ void ol_pdev_cfg_param_update(struct txrx_pdev_cfg_t *cfg_ctx) } #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 @@ struct cdp_cfg *ol_pdev_cfg_attach(qdf_device_t osdev, void *pcfg_param) 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;