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
Cette révision appartient à :

révisé par
nshrivas

Parent
4db72ac87b
révision
a59b5607c6
@@ -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
|
||||
|
@@ -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];
|
||||
|
@@ -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
|
||||
|
@@ -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,
|
||||
|
@@ -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
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur