qcacmn: Enable Monitor Mode for QCA6390

Support Monitor Mode for QCA6390 as RXDMA1 block is
now removed.
1. Monitor buffers are now received on rxdma_err_dst_ring
2. RXDMA1 monitor status ring is moved to RXDMA0 monitor
   status ring
3. Msdu link descriptors are now returned to WBM descriptor
   release ring.
4. Reap the Monitor buffers and return it to SW Refill ring.
5. Use the same rx descriptor pool for regular and monitor data.

Change-Id: If41e5d13f942da2b97e5aab72b88ae344925ba67
CRs-Fixed: 2297300
This commit is contained in:
Venkata Sharath Chandra Manchala
2018-08-01 12:45:34 -07:00
committed by nshrivas
parent cc8676b6a8
commit 8747958dff
11 changed files with 541 additions and 194 deletions

View File

@@ -128,6 +128,15 @@ static const int host2rxdma_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
0,
0,
0};
static const int rxdma2host_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
WLAN_CFG_RXDMA2HOST_RING_MASK_0,
WLAN_CFG_RXDMA2HOST_RING_MASK_1,
WLAN_CFG_RXDMA2HOST_RING_MASK_2,
WLAN_CFG_RXDMA2HOST_RING_MASK_3,
0,
0,
0};
#else
static const int tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
WLAN_CFG_TX_RING_MASK_0,
@@ -155,6 +164,12 @@ static const int host2rxdma_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
WLAN_CFG_HOST2RXDMA_RING_MASK_1,
WLAN_CFG_HOST2RXDMA_RING_MASK_2,
WLAN_CFG_HOST2RXDMA_RING_MASK_3};
static const int rxdma2host_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
WLAN_CFG_RXDMA2HOST_RING_MASK_0,
WLAN_CFG_RXDMA2HOST_RING_MASK_1,
WLAN_CFG_RXDMA2HOST_RING_MASK_2,
WLAN_CFG_RXDMA2HOST_RING_MASK_3};
#endif
static const int rx_err_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
@@ -175,12 +190,6 @@ static const int reo_status_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
WLAN_CFG_REO_STATUS_RING_MASK_2,
WLAN_CFG_REO_STATUS_RING_MASK_3};
static const int rxdma2host_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
WLAN_CFG_RXDMA2HOST_RING_MASK_0,
WLAN_CFG_RXDMA2HOST_RING_MASK_1,
WLAN_CFG_RXDMA2HOST_RING_MASK_2,
WLAN_CFG_RXDMA2HOST_RING_MASK_3};
/**
* struct wlan_cfg_dp_pdev_ctxt - Configuration parameters for pdev (radio)
* @rx_dma_buf_ring_size - Size of RxDMA buffer ring
@@ -214,6 +223,7 @@ struct wlan_cfg_dp_soc_ctxt *wlan_cfg_soc_attach(void *psoc)
if (wlan_cfg_ctx == NULL)
return NULL;
wlan_cfg_ctx->rxdma1_enable = WLAN_CFG_RXDMA1_ENABLE;
wlan_cfg_ctx->num_int_ctxts = WLAN_CFG_INT_NUM_CONTEXTS;
wlan_cfg_ctx->max_clients = cfg_get(psoc, CFG_DP_MAX_CLIENTS);
wlan_cfg_ctx->max_alloc_size = cfg_get(psoc, CFG_DP_MAX_ALLOC_SIZE);