qcacmn: Split Tx and Rx indication handling

Add support to handle Tx completion processing and Rx processing into
different NAPI threads/contexts for Lithium DP

Change-Id: I4f5c6ef3ce969ce457e26cf3e8305df1ae782f09
This commit is contained in:
Pamidipati, Vijay
2018-11-08 10:09:03 +05:30
committed by nshrivas
parent 4db72ac87b
commit a59b5607c6
5 changed files with 30 additions and 12 deletions

View File

@@ -240,12 +240,23 @@ enum dp_cpu_ring_map_types {
/** /**
* @brief Cpu to tx ring map * @brief Cpu to tx ring map
*/ */
static uint8_t dp_cpu_ring_map[DP_CPU_RING_MAP_MAX][WLAN_CFG_INT_NUM_CONTEXTS] = { #ifdef CONFIG_WIN
{0x0, 0x1, 0x2, 0x0}, static uint8_t
{0x1, 0x2, 0x1, 0x2}, dp_cpu_ring_map[DP_CPU_RING_MAP_MAX][WLAN_CFG_INT_NUM_CONTEXTS] = {
{0x0, 0x2, 0x0, 0x2}, {0x0, 0x1, 0x2, 0x0, 0x0, 0x1, 0x2, 0x0, 0x0, 0x1, 0x2},
{0x2, 0x2, 0x2, 0x2} {0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1},
{0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0},
{0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}
}; };
#else
static uint8_t
dp_cpu_ring_map[DP_CPU_RING_MAP_MAX][WLAN_CFG_INT_NUM_CONTEXTS] = {
{0x0, 0x1, 0x2, 0x0, 0x0, 0x1, 0x2},
{0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1},
{0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0},
{0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}
};
#endif
/** /**
* @brief Select the type of statistics * @brief Select the type of statistics

View File

@@ -61,7 +61,6 @@
#define REPT_MU_OFDMA_MIMO 3 #define REPT_MU_OFDMA_MIMO 3
#define DP_VO_TID 6 #define DP_VO_TID 6
#define DP_MAX_INTERRUPT_CONTEXTS 8
#define DP_MAX_TID_MAPS 16 /* MAX TID MAPS AVAILABLE PER PDEV*/ #define DP_MAX_TID_MAPS 16 /* MAX TID MAPS AVAILABLE PER PDEV*/
#define DSCP_TID_MAP_MAX (64) #define DSCP_TID_MAP_MAX (64)
#define DP_IP_DSCP_SHIFT 2 #define DP_IP_DSCP_SHIFT 2
@@ -85,12 +84,10 @@
#define MAX_TCL_DATA_RINGS 4 #define MAX_TCL_DATA_RINGS 4
#define MAX_IDLE_SCATTER_BUFS 16 #define MAX_IDLE_SCATTER_BUFS 16
#define DP_MAX_IRQ_PER_CONTEXT 12 #define DP_MAX_IRQ_PER_CONTEXT 12
#define DP_MAX_INTERRUPT_CONTEXTS 8
#define DEFAULT_HW_PEER_ID 0xffff #define DEFAULT_HW_PEER_ID 0xffff
#define MAX_TX_HW_QUEUES MAX_TCL_DATA_RINGS #define MAX_TX_HW_QUEUES MAX_TCL_DATA_RINGS
#define DP_MAX_INTERRUPT_CONTEXTS 8
/* Maximum retries for Delba per tid per peer */ /* Maximum retries for Delba per tid per peer */
#define DP_MAX_DELBA_RETRY 3 #define DP_MAX_DELBA_RETRY 3
@@ -783,7 +780,7 @@ struct dp_soc {
void *hal_soc; void *hal_soc;
/* DP Interrupts */ /* DP Interrupts */
struct dp_intr intr_ctx[DP_MAX_INTERRUPT_CONTEXTS]; struct dp_intr intr_ctx[WLAN_CFG_INT_NUM_CONTEXTS];
/* REO destination rings */ /* REO destination rings */
struct dp_srng reo_dest_ring[MAX_REO_DEST_RINGS]; struct dp_srng reo_dest_ring[MAX_REO_DEST_RINGS];

View File

@@ -112,7 +112,12 @@ enum hif_ic_irq {
struct CE_state; struct CE_state;
#define CE_COUNT_MAX 12 #define CE_COUNT_MAX 12
#define HIF_MAX_GRP_IRQ 16 #define HIF_MAX_GRP_IRQ 16
#ifdef CONFIG_WIN
#define HIF_MAX_GROUP 12
#else
#define HIF_MAX_GROUP 8 #define HIF_MAX_GROUP 8
#endif
#ifdef CONFIG_SLUB_DEBUG_ON #ifdef CONFIG_SLUB_DEBUG_ON
#ifndef CONFIG_WIN #ifndef CONFIG_WIN

View File

@@ -145,6 +145,13 @@ static const int tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
WLAN_CFG_TX_RING_MASK_3}; WLAN_CFG_TX_RING_MASK_3};
static const int rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = { static const int rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
0,
0,
0,
0,
0,
0,
0,
WLAN_CFG_RX_RING_MASK_0, WLAN_CFG_RX_RING_MASK_0,
WLAN_CFG_RX_RING_MASK_1, WLAN_CFG_RX_RING_MASK_1,
WLAN_CFG_RX_RING_MASK_2, WLAN_CFG_RX_RING_MASK_2,

View File

@@ -39,7 +39,7 @@
#define NUM_RXDMA_RINGS_PER_PDEV 2 #define NUM_RXDMA_RINGS_PER_PDEV 2
#else #else
#define MAX_PDEV_CNT 3 #define MAX_PDEV_CNT 3
#define WLAN_CFG_INT_NUM_CONTEXTS 7 #define WLAN_CFG_INT_NUM_CONTEXTS 11
#define WLAN_CFG_RXDMA1_ENABLE 1 #define WLAN_CFG_RXDMA1_ENABLE 1
/* /*
* This mask defines how many transmit frames account for 1 NAPI work unit * This mask defines how many transmit frames account for 1 NAPI work unit
@@ -75,8 +75,6 @@
/* Miscellaneous configuration */ /* Miscellaneous configuration */
#define MAX_IDLE_SCATTER_BUFS 16 #define MAX_IDLE_SCATTER_BUFS 16
#define DP_MAX_IRQ_PER_CONTEXT 12 #define DP_MAX_IRQ_PER_CONTEXT 12
#define DP_MAX_INTERRUPT_CONTEXTS 8
#define DP_MAX_INTERRUPT_CONTEXTS 8
#define MAX_HTT_METADATA_LEN 32 #define MAX_HTT_METADATA_LEN 32
#define MAX_NUM_PEER_ID_PER_PEER 8 #define MAX_NUM_PEER_ID_PER_PEER 8
#define DP_MAX_TIDS 17 #define DP_MAX_TIDS 17