From 457bee21b3bd954062c1b4ca9380ec85afca9f88 Mon Sep 17 00:00:00 2001 From: Venkata Sharath Chandra Manchala Date: Fri, 12 Apr 2019 11:38:50 -0700 Subject: [PATCH] qcacmn: Handle ring processing appropriately 1. Currently, mapping multiple rings to same interrupt context is misleading as we cannot identify the interrupt source. Assign umac reo and wbm release ring processing under different interrupt masks. 2. Map error rings processing under one interrupt context as they are not frequent. Change-Id: Ia2c4de29b99d1e25af7e2ce3068132f5995a9a95 CRs-Fixed: 2434741 --- wlan_cfg/wlan_cfg.c | 73 +++++++++++---------------------------------- 1 file changed, 18 insertions(+), 55 deletions(-) diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index f759405e64..299b669f2f 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/wlan_cfg/wlan_cfg.c @@ -91,76 +91,39 @@ #ifdef CONFIG_MCL static const int tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { - 0, - WLAN_CFG_TX_RING_MASK_0, - 0, - 0, - 0, - 0, - 0}; + WLAN_CFG_TX_RING_MASK_0, 0, 0, 0, 0, 0, 0}; #ifndef IPA_OFFLOAD static const int rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { - 0, - 0, - WLAN_CFG_RX_RING_MASK_0, - 0, - WLAN_CFG_RX_RING_MASK_1, - WLAN_CFG_RX_RING_MASK_2, - WLAN_CFG_RX_RING_MASK_3}; + 0, WLAN_CFG_RX_RING_MASK_0, WLAN_CFG_RX_RING_MASK_1, WLAN_CFG_RX_RING_MASK_2, WLAN_CFG_RX_RING_MASK_3, 0, 0}; #else static const int rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { - 0, - 0, - WLAN_CFG_RX_RING_MASK_0, - 0, - WLAN_CFG_RX_RING_MASK_1, - WLAN_CFG_RX_RING_MASK_2, - 0}; + 0, WLAN_CFG_RX_RING_MASK_0, WLAN_CFG_RX_RING_MASK_1, WLAN_CFG_RX_RING_MASK_2, 0, 0, 0}; #endif static const int rx_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { - 0, - 0, - 0, - WLAN_CFG_RX_MON_RING_MASK_0, - WLAN_CFG_RX_MON_RING_MASK_1, - WLAN_CFG_RX_MON_RING_MASK_2, - WLAN_CFG_RX_MON_RING_MASK_3}; + 0, WLAN_CFG_RX_MON_RING_MASK_0, WLAN_CFG_RX_MON_RING_MASK_1, 0, 0, 0, 0}; static const int host2rxdma_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { - 0, - 0, - 0, - 0, - 0, - 0, - 0}; + 0, 0, 0, 0, 0, 0, 0}; static const int rxdma2host_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { - WLAN_CFG_RXDMA2HOST_RING_MASK_0, - WLAN_CFG_RXDMA2HOST_RING_MASK_1, - WLAN_CFG_RXDMA2HOST_RING_MASK_2, - WLAN_CFG_RXDMA2HOST_RING_MASK_3, - 0, - 0, - 0}; + 0, 0, 0, 0, 0, WLAN_CFG_RXDMA2HOST_RING_MASK_0, WLAN_CFG_RXDMA2HOST_RING_MASK_1}; static const int host2rxdma_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { - 0, - 0, - 0, - WLAN_CFG_HOST2RXDMA_MON_RING_MASK_0, - WLAN_CFG_HOST2RXDMA_MON_RING_MASK_1, - WLAN_CFG_HOST2RXDMA_MON_RING_MASK_2}; + 0, 0, 0, 0, 0, 0, 0}; static const int rxdma2host_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { - 0, - 0, - 0, - WLAN_CFG_RXDMA2HOST_MON_RING_MASK_0, - WLAN_CFG_RXDMA2HOST_MON_RING_MASK_1, - WLAN_CFG_RXDMA2HOST_MON_RING_MASK_2}; + 0, 0, 0, 0, 0, 0, 0}; + +static const int rx_err_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { + 0, 0, 0, 0, 0, 0, WLAN_CFG_RX_ERR_RING_MASK_0}; + +static const int rx_wbm_rel_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { + 0, 0, 0, 0, 0, 0, WLAN_CFG_RX_WBM_REL_RING_MASK_0}; + +static const int reo_status_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { + 0, 0, 0, 0, 0, 0, WLAN_CFG_REO_STATUS_RING_MASK_0}; #else static const int tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { WLAN_CFG_TX_RING_MASK_0, @@ -219,7 +182,6 @@ static const int rxdma2host_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { WLAN_CFG_RXDMA2HOST_MON_RING_MASK_0, WLAN_CFG_RXDMA2HOST_MON_RING_MASK_1, WLAN_CFG_RXDMA2HOST_MON_RING_MASK_2}; -#endif static const int rx_err_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { WLAN_CFG_RX_ERR_RING_MASK_0, @@ -238,6 +200,7 @@ static const int reo_status_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { WLAN_CFG_REO_STATUS_RING_MASK_1, WLAN_CFG_REO_STATUS_RING_MASK_2, WLAN_CFG_REO_STATUS_RING_MASK_3}; +#endif /*CONFIG_MCL*/ /** * wlan_cfg_soc_attach() - Allocate and prepare SoC configuration