diff --git a/dp/wifi3.0/be/dp_be.c b/dp/wifi3.0/be/dp_be.c index a3f3ddd809..ba5c5361a7 100644 --- a/dp/wifi3.0/be/dp_be.c +++ b/dp/wifi3.0/be/dp_be.c @@ -1349,7 +1349,7 @@ int dp_register_ppeds_interrupts(struct dp_soc *soc, struct dp_srng *srng, "pci%d_ppe2tcl", pci_slot); ret = pld_pfrm_request_irq(soc->osdev->dev, irq, dp_ppe_ds_ppe2tcl_irq_handler, - IRQF_SHARED | IRQF_NO_SUSPEND, + IRQF_NO_SUSPEND, be_soc->irq_name[1], dp_get_ppe_ds_ctxt(soc)); if (ret) diff --git a/hif/src/hif_exec.c b/hif/src/hif_exec.c index e61d9fb720..45afa5a10b 100644 --- a/hif/src/hif_exec.c +++ b/hif/src/hif_exec.c @@ -1253,7 +1253,7 @@ QDF_STATUS hif_register_umac_reset_handler(struct hif_opaque_softc *hif_scn, /* Register the interrupt handler */ ret = pfrm_request_irq(hif_sc->qdf_dev->dev, irq, hif_umac_reset_irq_handler, - IRQF_SHARED | IRQF_NO_SUSPEND, + IRQF_NO_SUSPEND, "umac_hw_reset_irq", umac_reset_ctx); if (ret) { diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index de14e9d54b..a3dbded6bf 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/wlan_cfg/wlan_cfg.c @@ -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