diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 2a46ca0471..83389fb869 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -3299,6 +3299,19 @@ dp_soc_near_full_interrupt_attach(struct dp_soc *soc, int num_irq, } #endif +#ifdef DP_CON_MON_MSI_SKIP_SET +static inline bool dp_skip_rx_mon_ring_mask_set(struct dp_soc *soc) +{ + return !!(soc->cdp_soc.ol_ops->get_con_mode() != + QDF_GLOBAL_MONITOR_MODE); +} +#else +static inline bool dp_skip_rx_mon_ring_mask_set(struct dp_soc *soc) +{ + return false; +} +#endif + /* * dp_soc_interrupt_detach() - Deregister any allocations done for interrupts * @txrx_soc: DP SOC handle @@ -3408,6 +3421,9 @@ static QDF_STATUS dp_soc_interrupt_attach(struct cdp_soc_t *txrx_soc) int umac_reset_intr_mask = wlan_cfg_get_umac_reset_intr_mask(soc->wlan_cfg_ctx, i); + if (dp_skip_rx_mon_ring_mask_set(soc)) + rx_mon_mask = 0; + soc->intr_ctx[i].dp_intr_id = i; soc->intr_ctx[i].tx_ring_mask = tx_mask; soc->intr_ctx[i].rx_ring_mask = rx_mask;