diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index ebbebe268f..d0db4536d6 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -2117,6 +2117,27 @@ static void dp_srng_free(struct dp_soc *soc, struct dp_srng *srng) srng->hal_srng = NULL; } +#ifdef DISABLE_MON_RING_MSI_CFG +/* + * dp_skip_msi_cfg() - Check if msi cfg has to be skipped for ring_type + * @ring_type: sring type + * + * Return: True if msi cfg should be skipped for srng type else false + */ +static inline bool dp_skip_msi_cfg(int ring_type) +{ + if (ring_type == RXDMA_MONITOR_STATUS) + return true; + + return false; +} +#else +static inline bool dp_skip_msi_cfg(int ring_type) +{ + return false; +} +#endif + /* * dp_srng_init() - Initialize SRNG * @soc : Data path soc handle @@ -2154,11 +2175,10 @@ static QDF_STATUS dp_srng_init(struct dp_soc *soc, struct dp_srng *srng, (void *)ring_params.ring_base_paddr, ring_params.num_entries); - if (soc->intr_mode == DP_INTR_MSI) { + if (soc->intr_mode == DP_INTR_MSI && !dp_skip_msi_cfg(ring_type)) { dp_srng_msi_setup(soc, &ring_params, ring_type, ring_num); dp_verbose_debug("Using MSI for ring_type: %d, ring_num %d", ring_type, ring_num); - } else { ring_params.msi_data = 0; ring_params.msi_addr = 0;