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
*/
static uint8_t dp_cpu_ring_map[DP_CPU_RING_MAP_MAX][WLAN_CFG_INT_NUM_CONTEXTS] = {
{0x0, 0x1, 0x2, 0x0},
{0x1, 0x2, 0x1, 0x2},
{0x0, 0x2, 0x0, 0x2},
{0x2, 0x2, 0x2, 0x2}
#ifdef CONFIG_WIN
static uint8_t
dp_cpu_ring_map[DP_CPU_RING_MAP_MAX][WLAN_CFG_INT_NUM_CONTEXTS] = {
{0x0, 0x1, 0x2, 0x0, 0x0, 0x1, 0x2, 0x0, 0x0, 0x1, 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

View File

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

View File

@@ -112,7 +112,12 @@ enum hif_ic_irq {
struct CE_state;
#define CE_COUNT_MAX 12
#define HIF_MAX_GRP_IRQ 16
#ifdef CONFIG_WIN
#define HIF_MAX_GROUP 12
#else
#define HIF_MAX_GROUP 8
#endif
#ifdef CONFIG_SLUB_DEBUG_ON
#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};
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_1,
WLAN_CFG_RX_RING_MASK_2,

View File

@@ -39,7 +39,7 @@
#define NUM_RXDMA_RINGS_PER_PDEV 2
#else
#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
/*
* This mask defines how many transmit frames account for 1 NAPI work unit
@@ -75,8 +75,6 @@
/* Miscellaneous configuration */
#define MAX_IDLE_SCATTER_BUFS 16
#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_NUM_PEER_ID_PER_PEER 8
#define DP_MAX_TIDS 17