|
@@ -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
|