소스 검색

qcacmn: Handle ring processing appropriately

1. Currently, mapping multiple rings to same interrupt
   context is misleading as we cannot identify the
   interrupt source. Assign umac reo and wbm release ring
   processing under different interrupt masks.
2. Map error rings processing under one interrupt context
   as they are not frequent.

Change-Id: Ia2c4de29b99d1e25af7e2ce3068132f5995a9a95
CRs-Fixed: 2434741
Venkata Sharath Chandra Manchala 6 년 전
부모
커밋
457bee21b3
1개의 변경된 파일18개의 추가작업 그리고 55개의 파일을 삭제
  1. 18 55
      wlan_cfg/wlan_cfg.c

+ 18 - 55
wlan_cfg/wlan_cfg.c

@@ -91,76 +91,39 @@
 
 #ifdef CONFIG_MCL
 static const int tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
-						0,
-						WLAN_CFG_TX_RING_MASK_0,
-						0,
-						0,
-						0,
-						0,
-						0};
+	WLAN_CFG_TX_RING_MASK_0, 0, 0, 0, 0, 0, 0};
 
 #ifndef IPA_OFFLOAD
 static const int rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
-					0,
-					0,
-					WLAN_CFG_RX_RING_MASK_0,
-					0,
-					WLAN_CFG_RX_RING_MASK_1,
-					WLAN_CFG_RX_RING_MASK_2,
-					WLAN_CFG_RX_RING_MASK_3};
+	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, 0, 0};
 #else
 static const int rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
-					0,
-					0,
-					WLAN_CFG_RX_RING_MASK_0,
-					0,
-					WLAN_CFG_RX_RING_MASK_1,
-					WLAN_CFG_RX_RING_MASK_2,
-					0};
+	0, WLAN_CFG_RX_RING_MASK_0, WLAN_CFG_RX_RING_MASK_1, WLAN_CFG_RX_RING_MASK_2, 0, 0, 0};
 #endif
 
 static const int rx_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
-					0,
-					0,
-					0,
-					WLAN_CFG_RX_MON_RING_MASK_0,
-					WLAN_CFG_RX_MON_RING_MASK_1,
-					WLAN_CFG_RX_MON_RING_MASK_2,
-					WLAN_CFG_RX_MON_RING_MASK_3};
+	0, WLAN_CFG_RX_MON_RING_MASK_0, WLAN_CFG_RX_MON_RING_MASK_1, 0, 0, 0, 0};
 
 static const int host2rxdma_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
-					0,
-					0,
-					0,
-					0,
-					0,
-					0,
-					0};
+	0, 0, 0, 0, 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};
+	0, 0, 0, 0, 0, WLAN_CFG_RXDMA2HOST_RING_MASK_0, WLAN_CFG_RXDMA2HOST_RING_MASK_1};
 
 static const int host2rxdma_mon_ring_mask[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};
+	0, 0, 0, 0, 0, 0, 0};
 
 static const int rxdma2host_mon_ring_mask[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};
+	0, 0, 0, 0, 0, 0, 0};
+
+static const int rx_err_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
+	0, 0, 0, 0, 0, 0, WLAN_CFG_RX_ERR_RING_MASK_0};
+
+static const int rx_wbm_rel_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
+	0, 0, 0, 0, 0, 0, WLAN_CFG_RX_WBM_REL_RING_MASK_0};
+
+static const int reo_status_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
+	0, 0, 0, 0, 0, 0, WLAN_CFG_REO_STATUS_RING_MASK_0};
 #else
 static const int tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
 						WLAN_CFG_TX_RING_MASK_0,
@@ -219,7 +182,6 @@ static const int rxdma2host_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
 					WLAN_CFG_RXDMA2HOST_MON_RING_MASK_0,
 					WLAN_CFG_RXDMA2HOST_MON_RING_MASK_1,
 					WLAN_CFG_RXDMA2HOST_MON_RING_MASK_2};
-#endif
 
 static const int rx_err_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
 					WLAN_CFG_RX_ERR_RING_MASK_0,
@@ -238,6 +200,7 @@ static const int reo_status_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
 					WLAN_CFG_REO_STATUS_RING_MASK_1,
 					WLAN_CFG_REO_STATUS_RING_MASK_2,
 					WLAN_CFG_REO_STATUS_RING_MASK_3};
+#endif /*CONFIG_MCL*/
 
 /**
  * wlan_cfg_soc_attach() - Allocate and prepare SoC configuration