qcacmn: Change MSI configs for lower MSI line groups
ppe2tcl and Umac reset interrupts need dedicated irq lines. Hence, group some of the existing dp groups togeather to share MSI lines to make space for ppe2tcl and Umac reset dedicated irqs. Change-Id: I5181caeaeb4d0107b62e7ac812c2f829fd8215a2 CRs-Fixed: 3423553
这个提交包含在:

提交者
Madan Koyyalamudi

父节点
c46d796117
当前提交
2bea262d35
@@ -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];
|
||||
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];
|
||||
|
||||
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];
|
||||
wlan_cfg_mask_assignment(wlan_cfg_ctx, mask_assignment,
|
||||
interrupt_index, i, is_monitor_mode);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
在新工单中引用
屏蔽一个用户