From 07e2404dd9820034c2519b35c0d987e6b9e2b548 Mon Sep 17 00:00:00 2001 From: chenguo Date: Wed, 7 Mar 2018 17:00:38 +0800 Subject: [PATCH] qcacmn: Add reaping RXDMA status ring for 2.4GHz MAC for PKTLOG Traffic will hang during PKTLOG operations for 2.4GHz Mac. The reason is that Reaping operation is missed for RXDMPA status ring for MAC1. Add reaping MAC1 along with MAC0 for 2.4GHz band during PKTLOG operations in mission mode. CRs-Fixed: 2198593 Change-Id: I8591c6cd85d7970c2d0835e18dbfd74d2aaae08e --- dp/wifi3.0/dp_main.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 77565f427e1a..70641990bf78 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -7315,11 +7315,24 @@ int dp_set_pktlog_wifi3(struct dp_pdev *pdev, uint32_t event, static void dp_service_mon_rings(void *arg) { struct dp_soc *soc = (struct dp_soc *) arg; - int ring = 0, work_done; + int ring = 0, work_done, mac_id; + struct dp_pdev *pdev = NULL; - work_done = dp_mon_process(soc, ring, QCA_NAPI_BUDGET); - QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG, - FL("Reaped %d descs from Monitor rings"), work_done); + for (ring = 0 ; ring < MAX_PDEV_CNT; ring++) { + pdev = soc->pdev_list[ring]; + if (pdev == NULL) + continue; + for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++) { + int mac_for_pdev = dp_get_mac_id_for_pdev(mac_id, + pdev->pdev_id); + work_done = dp_mon_process(soc, mac_for_pdev, + QCA_NAPI_BUDGET); + + QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG, + FL("Reaped %d descs from Monitor rings"), + work_done); + } + } qdf_timer_mod(&soc->mon_reap_timer, DP_INTR_POLL_TIMER_MS); }