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:

committed by
nshrivas

parent
4db72ac87b
commit
a59b5607c6
@@ -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
|
||||||
|
@@ -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];
|
||||||
|
@@ -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
|
||||||
|
@@ -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,
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user