From 3c15eb5ff777bd392977b54b7df23573a5c40270 Mon Sep 17 00:00:00 2001 From: Himanshu Batra Date: Thu, 30 Sep 2021 11:34:01 +0530 Subject: [PATCH] qcacmn: Update DP interrupt mask assignment table for IPA Offload Update DP interrupt mask assignment table for IPA Offload Change-Id: Id91ab040f52a4e3b81e38754cc500dad3ab2fd22 --- wlan_cfg/wlan_cfg.c | 548 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 548 insertions(+) diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index e5e8573638..d0a7fb9a38 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/wlan_cfg/wlan_cfg.c @@ -222,6 +222,553 @@ static const uint8_t tx_ring_near_full_irq_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = * This structure contains the best possible mask assignment for a given * number of MSIs available in the system. */ +#ifdef IPA_OFFLOAD +static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIONS] = { + /* Interrupt assignment for integrated configuration */ + { + /* tx ring masks */ + { WLAN_CFG_TX_RING_MASK_0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx ring masks */ + { 0, 0, 0, 0, 0, 0, 0, + WLAN_CFG_RX_RING_MASK_0, + WLAN_CFG_RX_RING_MASK_1, + WLAN_CFG_RX_RING_MASK_2, + 0}, + /* rx mon ring masks */ + { 0, 0, 0, 0, + WLAN_CFG_RX_MON_RING_MASK_0, + WLAN_CFG_RX_MON_RING_MASK_1, + WLAN_CFG_RX_MON_RING_MASK_2, + 0, 0, 0, 0}, + /* host2rxdma ring masks */ + { WLAN_CFG_HOST2RXDMA_RING_MASK_0, + WLAN_CFG_HOST2RXDMA_RING_MASK_1, + WLAN_CFG_HOST2RXDMA_RING_MASK_2, + WLAN_CFG_HOST2RXDMA_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + /* rxdma2host ring masks */ + { 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}, + /* host2rxdma mon ring masks */ + { 0, 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}, + /* rxdma2host mon ring masks */ + { 0, 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}, + /* rx err ring masks */ + { WLAN_CFG_RX_ERR_RING_MASK_0, + WLAN_CFG_RX_ERR_RING_MASK_1, + WLAN_CFG_RX_ERR_RING_MASK_2, + WLAN_CFG_RX_ERR_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + /* rx wbm rel ring masks */ + { WLAN_CFG_RX_WBM_REL_RING_MASK_0, + WLAN_CFG_RX_WBM_REL_RING_MASK_1, + WLAN_CFG_RX_WBM_REL_RING_MASK_2, + WLAN_CFG_RX_WBM_REL_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + /* reo status ring masks */ + { WLAN_CFG_REO_STATUS_RING_MASK_0, + WLAN_CFG_REO_STATUS_RING_MASK_1, + WLAN_CFG_REO_STATUS_RING_MASK_2, + WLAN_CFG_REO_STATUS_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + }, + /* Interrupt assignment for 1 MSI combination */ + { + /* tx ring masks */ + { WLAN_CFG_TX_RING_MASK_0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx ring masks */ + { WLAN_CFG_RX_RING_MASK_0 | + WLAN_CFG_RX_RING_MASK_1 | + WLAN_CFG_RX_RING_MASK_2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx mon ring masks */ + { WLAN_CFG_RX_MON_RING_MASK_0 | + WLAN_CFG_RX_MON_RING_MASK_1 | + WLAN_CFG_RX_MON_RING_MASK_2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* host2rxdma ring masks */ + { WLAN_CFG_HOST2RXDMA_RING_MASK_0 | + WLAN_CFG_HOST2RXDMA_RING_MASK_1 | + WLAN_CFG_HOST2RXDMA_RING_MASK_2 | + WLAN_CFG_HOST2RXDMA_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rxdma2host ring masks */ + { 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, 0, 0}, + /* host2rxdma mon ring masks */ + { 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, 0, 0, 0}, + /* rxdma2host mon ring masks */ + { 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, 0, 0, 0}, + /* rx err ring masks */ + { WLAN_CFG_RX_ERR_RING_MASK_0 | + WLAN_CFG_RX_ERR_RING_MASK_1 | + WLAN_CFG_RX_ERR_RING_MASK_2 | + WLAN_CFG_RX_ERR_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx wbm rel ring masks */ + { WLAN_CFG_RX_WBM_REL_RING_MASK_0 | + WLAN_CFG_RX_WBM_REL_RING_MASK_1 | + WLAN_CFG_RX_WBM_REL_RING_MASK_2 | + WLAN_CFG_RX_WBM_REL_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* reo status ring masks */ + { WLAN_CFG_REO_STATUS_RING_MASK_0 | + WLAN_CFG_REO_STATUS_RING_MASK_1 | + WLAN_CFG_REO_STATUS_RING_MASK_2 | + WLAN_CFG_REO_STATUS_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + /* Interrupt assignment for 2 MSI combination */ + { + /* tx ring masks */ + { WLAN_CFG_TX_RING_MASK_0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx ring masks */ + { WLAN_CFG_RX_RING_MASK_0 | + WLAN_CFG_RX_RING_MASK_1, + WLAN_CFG_RX_RING_MASK_2, + 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx mon ring masks */ + { WLAN_CFG_RX_MON_RING_MASK_0 | + WLAN_CFG_RX_MON_RING_MASK_1, + WLAN_CFG_RX_MON_RING_MASK_2, + 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* host2rxdma ring masks */ + { WLAN_CFG_HOST2RXDMA_RING_MASK_0 | + WLAN_CFG_HOST2RXDMA_RING_MASK_1, + WLAN_CFG_HOST2RXDMA_RING_MASK_2 | + WLAN_CFG_HOST2RXDMA_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rxdma2host ring masks */ + { 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, 0}, + /* host2rxdma mon ring masks */ + { 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, 0, 0}, + /* rxdma2host mon ring masks */ + { 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, 0, 0}, + /* rx err ring masks */ + { WLAN_CFG_RX_ERR_RING_MASK_0 | + WLAN_CFG_RX_ERR_RING_MASK_1, + WLAN_CFG_RX_ERR_RING_MASK_2 | + WLAN_CFG_RX_ERR_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx wbm rel ring masks */ + { WLAN_CFG_RX_WBM_REL_RING_MASK_0 | + WLAN_CFG_RX_WBM_REL_RING_MASK_1, + WLAN_CFG_RX_WBM_REL_RING_MASK_2 | + WLAN_CFG_RX_WBM_REL_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* reo status ring masks */ + { WLAN_CFG_REO_STATUS_RING_MASK_0 | + WLAN_CFG_REO_STATUS_RING_MASK_1, + WLAN_CFG_REO_STATUS_RING_MASK_2 | + WLAN_CFG_REO_STATUS_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + /* Interrupt assignment for 3 MSI combination */ + { + /* tx ring masks */ + { WLAN_CFG_TX_RING_MASK_0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx ring masks */ + { WLAN_CFG_RX_RING_MASK_0, + WLAN_CFG_RX_RING_MASK_1, + WLAN_CFG_RX_RING_MASK_2, + 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx mon ring masks */ + { 0, 0, + WLAN_CFG_RX_MON_RING_MASK_0 | + WLAN_CFG_RX_MON_RING_MASK_1 | + WLAN_CFG_RX_MON_RING_MASK_2, + 0, 0, 0, 0, 0, 0, 0, 0}, + /* host2rxdma ring masks */ + { 0, 0, + WLAN_CFG_HOST2RXDMA_RING_MASK_0 | + WLAN_CFG_HOST2RXDMA_RING_MASK_1 | + WLAN_CFG_HOST2RXDMA_RING_MASK_2 | + WLAN_CFG_HOST2RXDMA_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0}, + /* rxdma2host ring masks */ + { 0, 0, + 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}, + /* host2rxdma mon ring masks */ + { 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, 0}, + /* rxdma2host mon ring masks */ + { 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, 0}, + /* rx err ring masks */ + { 0, 0, + WLAN_CFG_RX_ERR_RING_MASK_0 | + WLAN_CFG_RX_ERR_RING_MASK_1 | + WLAN_CFG_RX_ERR_RING_MASK_2 | + WLAN_CFG_RX_ERR_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx wbm rel ring masks */ + { 0, 0, + WLAN_CFG_RX_WBM_REL_RING_MASK_0 | + WLAN_CFG_RX_WBM_REL_RING_MASK_1 | + WLAN_CFG_RX_WBM_REL_RING_MASK_2 | + WLAN_CFG_RX_WBM_REL_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0}, + /* reo status ring masks */ + { 0, 0, + WLAN_CFG_REO_STATUS_RING_MASK_0 | + WLAN_CFG_REO_STATUS_RING_MASK_1 | + WLAN_CFG_REO_STATUS_RING_MASK_2 | + WLAN_CFG_REO_STATUS_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0, 0}, + }, + /* Interrupt assignment for 4 MSI combination */ + { + /* tx ring masks */ + { WLAN_CFG_TX_RING_MASK_0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx ring masks */ + { WLAN_CFG_RX_RING_MASK_0, + WLAN_CFG_RX_RING_MASK_1, + WLAN_CFG_RX_RING_MASK_2, + 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx mon ring masks */ + { WLAN_CFG_RX_MON_RING_MASK_0, + WLAN_CFG_RX_MON_RING_MASK_1, + WLAN_CFG_RX_MON_RING_MASK_2, + 0, 0, 0, 0, 0, 0, 0, 0}, + /* host2rxdma ring masks */ + { WLAN_CFG_HOST2RXDMA_RING_MASK_0, + WLAN_CFG_HOST2RXDMA_RING_MASK_1, + WLAN_CFG_HOST2RXDMA_RING_MASK_2, + WLAN_CFG_HOST2RXDMA_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + /* rxdma2host ring masks */ + { 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}, + /* host2rxdma mon ring masks */ + { 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, 0}, + /* rxdma2host mon ring masks */ + { 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, 0}, + /* rx err ring masks */ + { WLAN_CFG_RX_ERR_RING_MASK_0, + WLAN_CFG_RX_ERR_RING_MASK_1, + WLAN_CFG_RX_ERR_RING_MASK_2, + WLAN_CFG_RX_ERR_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + /* rx wbm rel ring masks */ + { WLAN_CFG_RX_WBM_REL_RING_MASK_0, + WLAN_CFG_RX_WBM_REL_RING_MASK_1, + WLAN_CFG_RX_WBM_REL_RING_MASK_2, + WLAN_CFG_RX_WBM_REL_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + /* reo status ring masks */ + { WLAN_CFG_REO_STATUS_RING_MASK_0, + WLAN_CFG_REO_STATUS_RING_MASK_1, + WLAN_CFG_REO_STATUS_RING_MASK_2, + WLAN_CFG_REO_STATUS_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + }, + /* Interrupt assignment for 5 MSI combination */ + { + /* tx ring masks */ + { WLAN_CFG_TX_RING_MASK_0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx ring masks */ + { WLAN_CFG_RX_RING_MASK_0, + WLAN_CFG_RX_RING_MASK_1, + WLAN_CFG_RX_RING_MASK_2, + 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx mon ring masks */ + { 0, 0, 0, 0, + WLAN_CFG_RX_MON_RING_MASK_0 | + WLAN_CFG_RX_MON_RING_MASK_1 | + WLAN_CFG_RX_MON_RING_MASK_2, + 0, 0, 0, 0, 0, 0}, + /* host2rxdma ring masks */ + { 0, 0, 0, 0, + WLAN_CFG_HOST2RXDMA_RING_MASK_0 | + WLAN_CFG_HOST2RXDMA_RING_MASK_1 | + WLAN_CFG_HOST2RXDMA_RING_MASK_2 | + WLAN_CFG_HOST2RXDMA_RING_MASK_3, + 0, 0, 0, 0, 0, 0}, + /* rxdma2host ring masks */ + { 0, 0, 0, 0, + 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}, + /* host2rxdma mon ring masks */ + { 0, 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}, + /* rxdma2host mon ring masks */ + { 0, 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}, + /* rx err ring masks */ + { 0, 0, 0, 0, + WLAN_CFG_RX_ERR_RING_MASK_0 | + WLAN_CFG_RX_ERR_RING_MASK_1 | + WLAN_CFG_RX_ERR_RING_MASK_2 | + WLAN_CFG_RX_ERR_RING_MASK_3, + 0, 0, 0, 0, 0, 0}, + /* rx wbm rel ring masks */ + { 0, 0, 0, 0, + WLAN_CFG_RX_WBM_REL_RING_MASK_0 | + WLAN_CFG_RX_WBM_REL_RING_MASK_1 | + WLAN_CFG_RX_WBM_REL_RING_MASK_2 | + WLAN_CFG_RX_WBM_REL_RING_MASK_3, + 0, 0, 0, 0, 0, 0}, + /* reo status ring masks */ + { 0, 0, 0, 0, + WLAN_CFG_REO_STATUS_RING_MASK_0 | + WLAN_CFG_REO_STATUS_RING_MASK_1 | + WLAN_CFG_REO_STATUS_RING_MASK_2 | + WLAN_CFG_REO_STATUS_RING_MASK_3, + 0, 0, 0, 0, 0, 0}, + }, + /* Interrupt assignment for 6 MSI combination */ + { + /* tx ring masks */ + { WLAN_CFG_TX_RING_MASK_0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx ring masks */ + { 0, 0, + WLAN_CFG_RX_RING_MASK_0, + WLAN_CFG_RX_RING_MASK_1, + WLAN_CFG_RX_RING_MASK_2, + 0, 0, 0, 0, 0, 0}, + /* rx mon ring masks */ + { WLAN_CFG_RX_MON_RING_MASK_0, + WLAN_CFG_RX_MON_RING_MASK_1, + WLAN_CFG_RX_MON_RING_MASK_2, + 0, 0, 0, 0, 0, 0, 0, 0}, + /* host2rxdma ring masks */ + { WLAN_CFG_HOST2RXDMA_RING_MASK_0, + WLAN_CFG_HOST2RXDMA_RING_MASK_1, + WLAN_CFG_HOST2RXDMA_RING_MASK_2, + WLAN_CFG_HOST2RXDMA_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + /* rxdma2host ring masks */ + { 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}, + /* host2rxdma mon ring masks */ + { 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, 0}, + /* rxdma2host mon ring masks */ + { 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, 0}, + /* rx err ring masks */ + { WLAN_CFG_RX_ERR_RING_MASK_0, + WLAN_CFG_RX_ERR_RING_MASK_1, + WLAN_CFG_RX_ERR_RING_MASK_2, + WLAN_CFG_RX_ERR_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + /* rx wbm rel ring masks */ + { WLAN_CFG_RX_WBM_REL_RING_MASK_0, + WLAN_CFG_RX_WBM_REL_RING_MASK_1, + WLAN_CFG_RX_WBM_REL_RING_MASK_2, + WLAN_CFG_RX_WBM_REL_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + /* reo status ring masks */ + { WLAN_CFG_REO_STATUS_RING_MASK_0, + WLAN_CFG_REO_STATUS_RING_MASK_1, + WLAN_CFG_REO_STATUS_RING_MASK_2, + WLAN_CFG_REO_STATUS_RING_MASK_3, + 0, 0, 0, 0, 0, 0, 0}, + }, + /* Interrupt assignment for 7 MSI combination */ + { + /* tx ring masks */ + { WLAN_CFG_TX_RING_MASK_0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx ring masks */ + { 0, 0, 0, + WLAN_CFG_RX_RING_MASK_0, + WLAN_CFG_RX_RING_MASK_1, + WLAN_CFG_RX_RING_MASK_2, + 0, 0, 0, 0}, + /* rx mon ring masks */ + { 0, 0, 0, + WLAN_CFG_RX_MON_RING_MASK_0, + WLAN_CFG_RX_MON_RING_MASK_1, + WLAN_CFG_RX_MON_RING_MASK_2, + 0, 0, 0, 0, 0}, + /* host2rxdma ring masks */ + { 0, 0, 0, + WLAN_CFG_HOST2RXDMA_RING_MASK_0, + WLAN_CFG_HOST2RXDMA_RING_MASK_1, + WLAN_CFG_HOST2RXDMA_RING_MASK_2, + WLAN_CFG_HOST2RXDMA_RING_MASK_3, + 0, 0, 0, 0}, + /* rxdma2host ring masks */ + { 0, 0, 0, + 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}, + /* host2rxdma mon ring masks */ + { 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}, + /* rxdma2host mon ring masks */ + { 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}, + /* rx err ring masks */ + { 0, 0, 0, + WLAN_CFG_RX_ERR_RING_MASK_0, + WLAN_CFG_RX_ERR_RING_MASK_1, + WLAN_CFG_RX_ERR_RING_MASK_2, + WLAN_CFG_RX_ERR_RING_MASK_3, + 0, 0, 0, 0}, + /* rx wbm rel ring masks */ + { 0, 0, 0, + WLAN_CFG_RX_WBM_REL_RING_MASK_0, + WLAN_CFG_RX_WBM_REL_RING_MASK_1, + WLAN_CFG_RX_WBM_REL_RING_MASK_2, + WLAN_CFG_RX_WBM_REL_RING_MASK_3, + 0, 0, 0, 0}, + /* reo status ring masks */ + { 0, 0, 0, + WLAN_CFG_REO_STATUS_RING_MASK_0, + WLAN_CFG_REO_STATUS_RING_MASK_1, + WLAN_CFG_REO_STATUS_RING_MASK_2, + WLAN_CFG_REO_STATUS_RING_MASK_3, + 0, 0, 0, 0}, + }, + /* Interrupt assignment for 8 MSI combination */ + { + /* tx ring masks */ + { WLAN_CFG_TX_RING_MASK_0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* rx ring masks */ + { 0, 0, 0, 0, + WLAN_CFG_RX_RING_MASK_0, + WLAN_CFG_RX_RING_MASK_1, + WLAN_CFG_RX_RING_MASK_2, + 0, 0, 0, 0}, + /* rx mon ring masks */ + { 0, 0, 0, + WLAN_CFG_RX_MON_RING_MASK_0, + WLAN_CFG_RX_MON_RING_MASK_1, + WLAN_CFG_RX_MON_RING_MASK_2, + 0, 0, 0, 0, 0}, + /* host2rxdma ring masks */ + { 0, 0, 0, + WLAN_CFG_HOST2RXDMA_RING_MASK_0, + WLAN_CFG_HOST2RXDMA_RING_MASK_1, + WLAN_CFG_HOST2RXDMA_RING_MASK_2, + WLAN_CFG_HOST2RXDMA_RING_MASK_3, + 0, 0, 0, 0}, + /* rxdma2host ring masks */ + { 0, 0, 0, + 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}, + /* host2rxdma mon ring masks */ + { 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}, + /* rxdma2host mon ring masks */ + { 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}, + /* rx err ring masks */ + { 0, 0, 0, + WLAN_CFG_RX_ERR_RING_MASK_0, + WLAN_CFG_RX_ERR_RING_MASK_1, + WLAN_CFG_RX_ERR_RING_MASK_2, + WLAN_CFG_RX_ERR_RING_MASK_3, + 0, 0, 0, 0}, + /* rx wbm rel ring masks */ + { 0, 0, 0, + WLAN_CFG_RX_WBM_REL_RING_MASK_0, + WLAN_CFG_RX_WBM_REL_RING_MASK_1, + WLAN_CFG_RX_WBM_REL_RING_MASK_2, + WLAN_CFG_RX_WBM_REL_RING_MASK_3, + 0, 0, 0, 0}, + /* reo status ring masks */ + { 0, 0, 0, + WLAN_CFG_REO_STATUS_RING_MASK_0, + WLAN_CFG_REO_STATUS_RING_MASK_1, + WLAN_CFG_REO_STATUS_RING_MASK_2, + WLAN_CFG_REO_STATUS_RING_MASK_3, + 0, 0, 0, 0}, + }, +}; +#else static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIONS] = { /* Interrupt assignment for integrated configuration */ { @@ -803,6 +1350,7 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO }, }; #endif +#endif /** * g_wlan_srng_cfg[] - Per ring_type specific configuration