qcacmn: Interrupt changes in MSI path
1) Modified MSI interrupt mask for QCN9000 so that rx and tx interrupts can be decoupled. 2) Removed lmac interrupts from polling mode and switched them to msi interrupts. Added MSI masks for lmac rings. 3) Enable monitor mode LWM interrupt. This was already enabled in integrated ahb interrupts but missing in msi. Replenish buffers in RXDMA refill ring based on low threshold interrupts in addition to regular Rx processing. Also made interrupt batch counter threshold as 8 for monitor status ring since ppdu end interrupts are not available in PCI chipset and require srng msi interrupts to reap monitor status ring Change-Id: I5c84b14d6b0a9c26fb3f0d67c349e79751a60861
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
4dab98d3ce
commit
0d69530ee2
@@ -166,43 +166,79 @@ static const int tx_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||
WLAN_CFG_TX_RING_MASK_3};
|
||||
|
||||
static const int rx_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
WLAN_CFG_RX_RING_MASK_0,
|
||||
WLAN_CFG_RX_RING_MASK_1,
|
||||
WLAN_CFG_RX_RING_MASK_2,
|
||||
WLAN_CFG_RX_RING_MASK_3};
|
||||
|
||||
static const int rx_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||
0, 0, 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};
|
||||
|
||||
static const int host2rxdma_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||
0, 0, 0, 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};
|
||||
|
||||
static const int rxdma2host_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||
0, 0, 0, 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};
|
||||
|
||||
static const int host2rxdma_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
WLAN_CFG_HOST2RXDMA_MON_RING_MASK_0,
|
||||
WLAN_CFG_HOST2RXDMA_MON_RING_MASK_1,
|
||||
WLAN_CFG_HOST2RXDMA_MON_RING_MASK_2};
|
||||
|
||||
static const int rxdma2host_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
WLAN_CFG_RXDMA2HOST_MON_RING_MASK_0,
|
||||
WLAN_CFG_RXDMA2HOST_MON_RING_MASK_1,
|
||||
WLAN_CFG_RXDMA2HOST_MON_RING_MASK_2};
|
||||
|
||||
static const int rx_err_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||
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};
|
||||
|
||||
static const int rx_wbm_rel_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||
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};
|
||||
|
||||
static const int reo_status_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
WLAN_CFG_REO_STATUS_RING_MASK_0,
|
||||
WLAN_CFG_REO_STATUS_RING_MASK_1,
|
||||
WLAN_CFG_REO_STATUS_RING_MASK_2,
|
||||
|
Reference in New Issue
Block a user