From 2352b070f5420f4b7baf92e1ac29410368e45c87 Mon Sep 17 00:00:00 2001 From: Amit Shukla Date: Mon, 13 Jan 2020 12:21:19 -0800 Subject: [PATCH] qcacmn: Fix for NSS interrupt mask issue in Dynamic mode change FR Interrupt masking should use lmac id instead of pdev id in NSS mode. Change-Id: Ib5f974a18e6536249e4f422eb5c677947cb6e3be CRs-Fixed: 2557902 --- dp/wifi3.0/dp_main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 38d85289f1..33111d7659 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -2634,6 +2634,8 @@ static void dp_soc_reset_intr_mask(struct dp_soc *soc) /* loop and reset the mask for only offloaded ring */ for (j = 0; j < MAX_PDEV_CNT; j++) { + int lmac_id = wlan_cfg_get_hw_mac_idx(soc->wlan_cfg_ctx, j); + if (!dp_soc_ring_if_nss_offloaded(soc, RXDMA_BUF, j)) { continue; } @@ -2641,18 +2643,18 @@ static void dp_soc_reset_intr_mask(struct dp_soc *soc) /* * Group number corresponding to rx offloaded ring. */ - group_number = dp_srng_find_ring_in_mask(j, grp_mask); + group_number = dp_srng_find_ring_in_mask(lmac_id, grp_mask); if (group_number < 0) { QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG, FL("ring not part of any group; ring_type: %d,ring_num %d"), - REO_DST, j); + REO_DST, lmac_id); return; } /* set the interrupt mask for offloaded ring */ mask = wlan_cfg_get_host2rxdma_ring_mask(soc->wlan_cfg_ctx, group_number); - mask &= (~(1 << j)); + mask &= (~(1 << lmac_id)); /* * set the interrupt mask to zero for rx offloaded radio.