diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index f99ebf73dc..c91d4f49f5 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -3277,6 +3277,12 @@ static void dp_soc_interrupt_map_calculate_integrated(struct dp_soc *soc, soc->wlan_cfg_ctx, intr_ctx_num); int host2rxdma_mon_ring_mask = wlan_cfg_get_host2rxdma_mon_ring_mask( soc->wlan_cfg_ctx, intr_ctx_num); + int host2txmon_ring_mask = wlan_cfg_get_host2txmon_ring_mask( + soc->wlan_cfg_ctx, intr_ctx_num); + int txmon2host_mon_ring_mask = wlan_cfg_get_tx_mon_ring_mask( + soc->wlan_cfg_ctx, intr_ctx_num); + int umac_reset_mask = wlan_cfg_get_umac_reset_intr_mask( + soc->wlan_cfg_ctx, intr_ctx_num); soc->intr_mode = DP_INTR_INTEGRATED; @@ -3325,6 +3331,17 @@ static void dp_soc_interrupt_map_calculate_integrated(struct dp_soc *soc, if (reo_status_ring_mask & (1 << j)) irq_id_map[num_irq++] = reo2host_status; + if (host2txmon_ring_mask & (1 << j)) + irq_id_map[num_irq++] = host2tx_monitor_ring1; + + if (txmon2host_mon_ring_mask & (1 << j)) { + irq_id_map[num_irq++] = + (txmon2host_monitor_destination_mac1 - j); + } + + if (umac_reset_mask & (1 << j)) + irq_id_map[num_irq++] = (umac_reset - j); + } *num_irq_r = num_irq; } diff --git a/hif/inc/hif.h b/hif/inc/hif.h index 43c68c1fc9..00c3a5dc5b 100644 --- a/hif/inc/hif.h +++ b/hif/inc/hif.h @@ -131,6 +131,11 @@ enum hif_ic_irq { wbm2host_tx_completions_ring2, wbm2host_tx_completions_ring1, tcl2host_status_ring, + txmon2host_monitor_destination_mac3, + txmon2host_monitor_destination_mac2, + txmon2host_monitor_destination_mac1, + host2tx_monitor_ring1, + umac_reset, }; #ifdef QCA_SUPPORT_LEGACY_INTERRUPTS diff --git a/hif/src/snoc/if_ahb.c b/hif/src/snoc/if_ahb.c index dd521d5f1a..55984aa5b4 100644 --- a/hif/src/snoc/if_ahb.c +++ b/hif/src/snoc/if_ahb.c @@ -44,7 +44,7 @@ #endif #define HIF_IC_CE0_IRQ_OFFSET 4 -#define HIF_IC_MAX_IRQ 53 +#define HIF_IC_MAX_IRQ 58 static uint16_t ic_irqnum[HIF_IC_MAX_IRQ]; /* integrated chip irq names */ @@ -102,6 +102,11 @@ const char *ic_irqname[HIF_IC_MAX_IRQ] = { "wbm2host-tx-completions-ring2", "wbm2host-tx-completions-ring1", "tcl2host-status-ring", +"txmon2host-monitor-destination-mac3", +"txmon2host-monitor-destination-mac2", +"txmon2host-monitor-destination-mac1", +"host2tx-monitor-ring1", +"umac_reset" }; /** hif_ahb_get_irq_name() - get irqname diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index 9dda685625..d2f2f8cf2b 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/wlan_cfg/wlan_cfg.c @@ -863,11 +863,14 @@ static struct dp_int_mask_assignment dp_mask_assignment[NUM_INTERRUPT_COMBINATIO /* 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 */ - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {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 */ - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {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}, /* umac reset 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, + WLAN_CFG_UMAC_RESET_INTR_MASK_0}, }, /* Interrupt assignment for 1 MSI combination */ {