|
@@ -890,14 +890,11 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, 0, 0, 0, WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0, 0, 0, 0, 0},
|
|
@@ -984,14 +981,12 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, 0, 0, 0, 0, WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0,
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- WLAN_CFG_PPE2TCL_RING_MASK_0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0, 0, 0, 0},
|
|
@@ -1078,14 +1073,11 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe wbm ds release ring ring mask */
|
|
|
- { 0, 0, 0, 0, 0, 0, 0, WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- WLAN_CFG_PPE2TCL_RING_MASK_0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0, 0, 0},
|
|
@@ -1163,14 +1155,12 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0,
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- WLAN_CFG_PPE2TCL_RING_MASK_0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0, 0},
|
|
@@ -1248,14 +1238,12 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0, 0, 0, 0, 0, 0, 0},
|
|
|
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0,
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- WLAN_CFG_PPE2TCL_RING_MASK_0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
0, 0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0},
|
|
@@ -1333,14 +1321,11 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0, 0, 0, 0, 0, 0},
|
|
|
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- WLAN_CFG_REO2PPE_RING_MASK_0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- 0, WLAN_CFG_PPE2TCL_RING_MASK_0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
0, 0, 0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0},
|
|
@@ -1418,14 +1403,12 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0, 0, 0, 0, 0},
|
|
|
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- 0, WLAN_CFG_REO2PPE_RING_MASK_0, 0, 0, 0},
|
|
|
+ 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- 0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
0, 0, 0, 0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0},
|
|
@@ -1501,20 +1484,20 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- 0, WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0, 0, 0, 0},
|
|
|
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0, 0, 0},
|
|
|
+ 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- 0, 0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
0, 0, 0, 0, 0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0},
|
|
|
},
|
|
|
};
|
|
|
#else
|
|
|
+
|
|
|
+/* DS and Umac reset not supported if available MSI lines are less than 8 */
|
|
|
static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIONS] = {
|
|
|
/* Interrupt assignment for integrated configuration */
|
|
|
{
|
|
@@ -1592,11 +1575,14 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
{WLAN_CFG_TX_MON_RING_MASK_0, WLAN_CFG_TX_MON_RING_MASK_1, 0,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
+ WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
+ WLAN_CFG_REO2PPE_RING_MASK_0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
+ WLAN_CFG_PPE2TCL_RING_MASK_0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
WLAN_CFG_UMAC_RESET_INTR_MASK_0},
|
|
@@ -1673,15 +1659,14 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
{ WLAN_CFG_TX_MON_RING_MASK_0 |
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* ppe ds wbm release ring ring mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {WLAN_CFG_REO2PPE_RING_MASK_0, 0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, WLAN_CFG_PPE2TCL_RING_MASK_0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
- {WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
},
|
|
|
/* Interrupt assignment for 2 MSI combination */
|
|
|
{
|
|
@@ -1755,15 +1740,14 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
{ WLAN_CFG_TX_MON_RING_MASK_0,
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* ppe ds wbm release ring ring mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {WLAN_CFG_REO2PPE_RING_MASK_0, 0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, WLAN_CFG_PPE2TCL_RING_MASK_0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
- {0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0, 0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
},
|
|
|
/* Interrupt assignment for 3 MSI combination */
|
|
|
{
|
|
@@ -1845,15 +1829,14 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
{ WLAN_CFG_TX_MON_RING_MASK_0,
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* ppe ds wbm release ring ring mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {WLAN_CFG_REO2PPE_RING_MASK_0, 0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, WLAN_CFG_PPE2TCL_RING_MASK_0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
- {0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
},
|
|
|
/* Interrupt assignment for 4 MSI combination */
|
|
|
{
|
|
@@ -1927,15 +1910,14 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
{ WLAN_CFG_TX_MON_RING_MASK_0,
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* ppe ds wbm release ring ring mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, WLAN_CFG_REO2PPE_RING_MASK_0, 0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
- {0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
},
|
|
|
/* Interrupt assignment for 5 MSI combination */
|
|
|
{
|
|
@@ -2018,17 +2000,13 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, WLAN_CFG_REO2PPE_RING_MASK_0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
- {0, 0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
},
|
|
|
/* Interrupt assignment for 6 MSI combination */
|
|
|
{
|
|
@@ -2104,17 +2082,13 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
- {0, 0, 0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
},
|
|
|
/* Interrupt assignment for 7 MSI combination */
|
|
|
{
|
|
@@ -2198,17 +2172,13 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, 0, WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
- {0, 0, 0, 0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
},
|
|
|
/* Interrupt assignment for 8 MSI combination */
|
|
|
{
|
|
@@ -2222,9 +2192,9 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
{ 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_2 |
|
|
|
WLAN_CFG_RX_RING_MASK_3,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* rx mon ring masks */
|
|
|
{ 0, 0, 0,
|
|
|
WLAN_CFG_RX_MON_RING_MASK_0,
|
|
@@ -2292,14 +2262,11 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, 0, 0, WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0, 0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0},
|
|
@@ -2386,14 +2353,11 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe ds wbm release ring ring mask */
|
|
|
- { 0, 0, 0, 0, 0, WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* Reo2ppe ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* ppe2tcl ring mask */
|
|
|
- {0, 0, 0, 0, 0, 0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0,
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
/* umac reset mask */
|
|
|
{0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0, 0, 0, 0, 0},
|
|
@@ -3013,6 +2977,198 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO
|
|
|
},
|
|
|
};
|
|
|
#endif
|
|
|
+
|
|
|
+struct dp_int_mask_assignment dp_ds_mask_assignment_8msi =
|
|
|
+ /* Interrupt assignment for 8 MSI combination */
|
|
|
+ {
|
|
|
+ /* tx ring masks */
|
|
|
+ { WLAN_CFG_TX_RING_MASK_0,
|
|
|
+ WLAN_CFG_TX_RING_MASK_1,
|
|
|
+ WLAN_CFG_TX_RING_MASK_2 |
|
|
|
+ WLAN_CFG_TX_RING_MASK_3,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rx ring masks */
|
|
|
+ { 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,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rx mon ring masks */
|
|
|
+ { 0, 0,
|
|
|
+ WLAN_CFG_RX_MON_RING_MASK_0,
|
|
|
+ WLAN_CFG_RX_MON_RING_MASK_1,
|
|
|
+ WLAN_CFG_RX_MON_RING_MASK_2,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* host2rxdma ring masks */
|
|
|
+ { 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,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rxdma2host ring masks */
|
|
|
+ { 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,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* host2rxdma mon ring masks */
|
|
|
+ { 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, 0, 0, 0, 0},
|
|
|
+ /* rxdma2host mon ring masks */
|
|
|
+ { 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, 0, 0, 0, 0},
|
|
|
+ /* rx err ring masks */
|
|
|
+ { 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,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rx wbm rel ring masks */
|
|
|
+ { 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,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* reo status ring masks */
|
|
|
+ { 0, 0,
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_0,
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_1,
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_2 |
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_3,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rx_ring_near_full_irq mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rx_ring_near_full_irq_2 mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* tx_ring_near_full_irq mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* host2txmon ring masks */
|
|
|
+ { WLAN_CFG_HOST2TXMON_RING_MASK_0,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* tx mon ring masks */
|
|
|
+ { WLAN_CFG_TX_MON_RING_MASK_0,
|
|
|
+ WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* ppe ds wbm release ring ring mask */
|
|
|
+ { WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0, 0, 0, 0, 0,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* Reo2ppe ring mask */
|
|
|
+ {0, 0, 0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0, 0,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* ppe2tcl ring mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0, 0,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* umac reset mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, WLAN_CFG_UMAC_RESET_INTR_MASK_0,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ };
|
|
|
+
|
|
|
+struct dp_int_mask_assignment dp_ds_mask_assignment_9msi =
|
|
|
+ /* Interrupt assignment for 9 MSI combination */
|
|
|
+ {
|
|
|
+ /* tx ring masks */
|
|
|
+ { WLAN_CFG_TX_RING_MASK_0,
|
|
|
+ WLAN_CFG_TX_RING_MASK_1,
|
|
|
+ WLAN_CFG_TX_RING_MASK_2,
|
|
|
+ WLAN_CFG_TX_RING_MASK_3,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rx ring masks */
|
|
|
+ { 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,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rx mon ring masks */
|
|
|
+ { 0, 0, 0,
|
|
|
+ WLAN_CFG_RX_MON_RING_MASK_0,
|
|
|
+ WLAN_CFG_RX_MON_RING_MASK_1,
|
|
|
+ WLAN_CFG_RX_MON_RING_MASK_2,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* host2rxdma ring masks */
|
|
|
+ { 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,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rxdma2host ring masks */
|
|
|
+ { 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,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* host2rxdma mon ring masks */
|
|
|
+ { 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, 0, 0, 0},
|
|
|
+ /* rxdma2host mon ring masks */
|
|
|
+ { 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, 0, 0, 0},
|
|
|
+ /* rx err ring masks */
|
|
|
+ { 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,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rx wbm rel ring masks */
|
|
|
+ { 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,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* reo status ring masks */
|
|
|
+ { 0, 0, 0,
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_0,
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_1,
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_2,
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_3,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rx_ring_near_full_irq mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* rx_ring_near_full_irq_2 mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* tx_ring_near_full_irq mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* host2txmon ring masks */
|
|
|
+ { WLAN_CFG_HOST2TXMON_RING_MASK_0,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* tx mon ring masks */
|
|
|
+ { WLAN_CFG_TX_MON_RING_MASK_0,
|
|
|
+ WLAN_CFG_TX_MON_RING_MASK_1,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* ppe ds wbm release ring ring mask */
|
|
|
+ { WLAN_CFG_PPEDS_WBM_RELEASE_RING_MASK_0, 0, 0, 0, 0, 0,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* Reo2ppe ring mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, WLAN_CFG_REO2PPE_RING_MASK_0,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* ppe2tcl ring mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, WLAN_CFG_PPE2TCL_RING_MASK_0,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ /* umac reset mask */
|
|
|
+ {0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
+ WLAN_CFG_UMAC_RESET_INTR_MASK_0, 0, 0, 0, 0, 0, 0, 0},
|
|
|
+ };
|
|
|
#endif
|
|
|
|
|
|
/* g_wlan_srng_cfg[] - Per ring_type specific configuration */
|
|
@@ -3237,6 +3393,76 @@ void wlan_cfg_fill_interrupt_mask(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
|
|
|
|
|
|
#else
|
|
|
|
|
|
+static void
|
|
|
+wlan_cfg_mask_assignment(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
|
|
|
+ struct dp_int_mask_assignment *mask_assignment,
|
|
|
+ int interrupt_index, int i, bool is_monitor_mode)
|
|
|
+{
|
|
|
+ int int_host2rxdma_mon_ring_mask;
|
|
|
+ bool host2rxmon_mask_set = false;
|
|
|
+ bool txmon_hw_support = false;
|
|
|
+
|
|
|
+ wlan_cfg_ctx->int_tx_ring_mask[i] =
|
|
|
+ mask_assignment->tx_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_rx_mon_ring_mask[i] =
|
|
|
+ mask_assignment->rx_mon_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_rx_err_ring_mask[i] =
|
|
|
+ mask_assignment->rx_err_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_rx_wbm_rel_ring_mask[i] =
|
|
|
+ mask_assignment->rx_wbm_rel_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_reo_status_ring_mask[i] =
|
|
|
+ mask_assignment->reo_status_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_ppeds_wbm_release_ring_mask[i] =
|
|
|
+ mask_assignment->ppeds_wbm_release_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_ppe2tcl_ring_mask[i] =
|
|
|
+ mask_assignment->ppe2tcl_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_reo2ppe_ring_mask[i] =
|
|
|
+ mask_assignment->reo2ppe_ring_mask[i];
|
|
|
+ if (is_monitor_mode) {
|
|
|
+ wlan_cfg_ctx->int_rx_ring_mask[i] = 0;
|
|
|
+ wlan_cfg_ctx->int_rxdma2host_ring_mask[i] = 0;
|
|
|
+ } else {
|
|
|
+ wlan_cfg_ctx->int_rx_ring_mask[i] =
|
|
|
+ mask_assignment->rx_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_rxdma2host_ring_mask[i] =
|
|
|
+ mask_assignment->rxdma2host_ring_mask[i];
|
|
|
+ }
|
|
|
+ wlan_cfg_ctx->int_host2rxdma_ring_mask[i] =
|
|
|
+ mask_assignment->host2rxdma_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_host2rxdma_mon_ring_mask[i] =
|
|
|
+ mask_assignment->host2rxdma_mon_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_rxdma2host_mon_ring_mask[i] =
|
|
|
+ mask_assignment->rxdma2host_mon_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_rx_ring_near_full_irq_1_mask[i] =
|
|
|
+ mask_assignment->rx_ring_near_full_irq_1_mask[i];
|
|
|
+ wlan_cfg_ctx->int_rx_ring_near_full_irq_2_mask[i] =
|
|
|
+ mask_assignment->rx_ring_near_full_irq_2_mask[i];
|
|
|
+ wlan_cfg_ctx->int_tx_ring_near_full_irq_mask[i] =
|
|
|
+ mask_assignment->tx_ring_near_full_irq_mask[i];
|
|
|
+
|
|
|
+ txmon_hw_support = wlan_cfg_get_txmon_hw_support(wlan_cfg_ctx);
|
|
|
+ if (txmon_hw_support) {
|
|
|
+ wlan_cfg_ctx->int_tx_mon_ring_mask[i] =
|
|
|
+ mask_assignment->tx_mon_ring_mask[i];
|
|
|
+ wlan_cfg_ctx->int_host2txmon_ring_mask[i] =
|
|
|
+ mask_assignment->host2txmon_ring_mask[i];
|
|
|
+ int_host2rxdma_mon_ring_mask =
|
|
|
+ mask_assignment->host2rxdma_mon_ring_mask[i];
|
|
|
+ if (int_host2rxdma_mon_ring_mask && !host2rxmon_mask_set) {
|
|
|
+ wlan_cfg_ctx->int_host2rxdma_mon_ring_mask[interrupt_index] =
|
|
|
+ mask_assignment->host2rxdma_mon_ring_mask[i];
|
|
|
+ host2rxmon_mask_set = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ wlan_cfg_ctx->int_tx_mon_ring_mask[i] = 0;
|
|
|
+ wlan_cfg_ctx->int_host2txmon_ring_mask[i] = 0;
|
|
|
+ wlan_cfg_ctx->int_host2rxdma_mon_ring_mask[i] =
|
|
|
+ mask_assignment->host2rxdma_mon_ring_mask[i];
|
|
|
+ }
|
|
|
+ wlan_cfg_ctx->int_umac_reset_intr_mask[i] =
|
|
|
+ mask_assignment->umac_reset_intr_mask[i];
|
|
|
+}
|
|
|
+
|
|
|
void wlan_cfg_fill_interrupt_mask(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
|
|
|
int num_dp_msi,
|
|
|
int interrupt_mode,
|
|
@@ -3244,9 +3470,7 @@ void wlan_cfg_fill_interrupt_mask(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
|
|
|
{
|
|
|
int i = 0;
|
|
|
int interrupt_index = 0;
|
|
|
- int int_host2rxdma_mon_ring_mask;
|
|
|
- bool host2rxmon_mask_set = false;
|
|
|
- bool txmon_hw_support = false;
|
|
|
+ struct dp_int_mask_assignment *mask_assignment;
|
|
|
|
|
|
if(interrupt_mode == DP_INTR_INTEGRATED) {
|
|
|
interrupt_index = 0;
|
|
@@ -3258,65 +3482,17 @@ void wlan_cfg_fill_interrupt_mask(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
|
|
|
}
|
|
|
|
|
|
for (i = 0; i < WLAN_CFG_INT_NUM_CONTEXTS; i++) {
|
|
|
- wlan_cfg_ctx->int_tx_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].tx_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_rx_mon_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].rx_mon_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_rx_err_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].rx_err_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_rx_wbm_rel_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].rx_wbm_rel_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_reo_status_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].reo_status_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_ppeds_wbm_release_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].ppeds_wbm_release_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_ppe2tcl_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].ppe2tcl_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_reo2ppe_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].reo2ppe_ring_mask[i];
|
|
|
- if (is_monitor_mode) {
|
|
|
- wlan_cfg_ctx->int_rx_ring_mask[i] = 0;
|
|
|
- wlan_cfg_ctx->int_rxdma2host_ring_mask[i] = 0;
|
|
|
- } else {
|
|
|
- wlan_cfg_ctx->int_rx_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].rx_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_rxdma2host_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].rxdma2host_ring_mask[i];
|
|
|
- }
|
|
|
- wlan_cfg_ctx->int_host2rxdma_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].host2rxdma_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_host2rxdma_mon_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].host2rxdma_mon_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_rxdma2host_mon_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].rxdma2host_mon_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_rx_ring_near_full_irq_1_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].rx_ring_near_full_irq_1_mask[i];
|
|
|
- wlan_cfg_ctx->int_rx_ring_near_full_irq_2_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].rx_ring_near_full_irq_2_mask[i];
|
|
|
- wlan_cfg_ctx->int_tx_ring_near_full_irq_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].tx_ring_near_full_irq_mask[i];
|
|
|
-
|
|
|
- txmon_hw_support = wlan_cfg_get_txmon_hw_support(wlan_cfg_ctx);
|
|
|
- if (txmon_hw_support) {
|
|
|
- wlan_cfg_ctx->int_tx_mon_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].tx_mon_ring_mask[i];
|
|
|
- wlan_cfg_ctx->int_host2txmon_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].host2txmon_ring_mask[i];
|
|
|
- int_host2rxdma_mon_ring_mask =
|
|
|
- dp_mask_assignment[interrupt_index].host2rxdma_mon_ring_mask[i];
|
|
|
- if (int_host2rxdma_mon_ring_mask && !host2rxmon_mask_set) {
|
|
|
- wlan_cfg_ctx->int_host2rxdma_mon_ring_mask[interrupt_index] =
|
|
|
- dp_mask_assignment[interrupt_index].host2rxdma_mon_ring_mask[i];
|
|
|
- host2rxmon_mask_set = true;
|
|
|
- }
|
|
|
- } else {
|
|
|
- wlan_cfg_ctx->int_tx_mon_ring_mask[i] = 0;
|
|
|
- wlan_cfg_ctx->int_host2txmon_ring_mask[i] = 0;
|
|
|
- wlan_cfg_ctx->int_host2rxdma_mon_ring_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].host2rxdma_mon_ring_mask[i];
|
|
|
- }
|
|
|
- wlan_cfg_ctx->int_umac_reset_intr_mask[i] =
|
|
|
- dp_mask_assignment[interrupt_index].umac_reset_intr_mask[i];
|
|
|
+ if (!wlan_cfg_get_dp_soc_is_ppeds_enabled(wlan_cfg_ctx))
|
|
|
+ mask_assignment = &dp_mask_assignment[interrupt_index];
|
|
|
+ else if (interrupt_index == 8)
|
|
|
+ mask_assignment = &dp_ds_mask_assignment_8msi;
|
|
|
+ else if (interrupt_index == 9)
|
|
|
+ mask_assignment = &dp_ds_mask_assignment_9msi;
|
|
|
+ else
|
|
|
+ mask_assignment = &dp_mask_assignment[interrupt_index];
|
|
|
+
|
|
|
+ wlan_cfg_mask_assignment(wlan_cfg_ctx, mask_assignment,
|
|
|
+ interrupt_index, i, is_monitor_mode);
|
|
|
}
|
|
|
}
|
|
|
#endif
|