qcacmn: refine the APIs for reap timer of monitor status ring
Since more than one components depend on reap timer of monitor status ring, add bitmap to record the trigger sources of the timer and refine the APIs/calling functions accordingly. With this change: When a new start request comes, if the source is CDP_MON_REAP_SOURCE_ANY, skip bit set, and start timer if any bit has been set in the bitmap; while for the other sources, set the bit and start timer if the bitmap is empty before that. When a new stop request comes, if the source is CDP_MON_REAP_SOURCE_ANY, skip bit clear, and stop timer if any bit has been set in the bitmap; while for the other sources, clear the bit and stop timer if the bitmap is empty after that. Change-Id: Idaa7837c4b93b247ff2236aa5072d309fa9548c2 CRs-Fixed: 3190347
This commit is contained in:

committed by
Madan Koyyalamudi

parent
c8fafae5ee
commit
a9461beb20
@@ -13548,7 +13548,7 @@ static QDF_STATUS dp_bus_suspend(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
|
||||
qdf_timer_stop(&soc->int_timer);
|
||||
|
||||
/* Stop monitor reap timer and reap any pending frames in ring */
|
||||
dp_monitor_pktlog_reap_pending_frames(pdev);
|
||||
dp_monitor_reap_timer_suspend(soc);
|
||||
|
||||
dp_suspend_fse_cache_flush(soc);
|
||||
|
||||
@@ -13570,7 +13570,7 @@ static QDF_STATUS dp_bus_resume(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
|
||||
qdf_timer_mod(&soc->int_timer, DP_INTR_POLL_TIMER_MS);
|
||||
|
||||
/* Start monitor reap timer */
|
||||
dp_monitor_pktlog_start_reap_timer(pdev);
|
||||
dp_monitor_reap_timer_start(soc, CDP_MON_REAP_SOURCE_ANY);
|
||||
|
||||
dp_resume_fse_cache_flush(soc);
|
||||
|
||||
@@ -13602,7 +13602,7 @@ static void dp_process_wow_ack_rsp(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
|
||||
* response from FW reap mon status ring to make sure no packets pending
|
||||
* in the ring.
|
||||
*/
|
||||
dp_monitor_pktlog_reap_pending_frames(pdev);
|
||||
dp_monitor_reap_timer_suspend(soc);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13624,7 +13624,7 @@ static void dp_process_target_suspend_req(struct cdp_soc_t *soc_hdl,
|
||||
}
|
||||
|
||||
/* Stop monitor reap timer and reap any pending frames in ring */
|
||||
dp_monitor_pktlog_reap_pending_frames(pdev);
|
||||
dp_monitor_reap_timer_suspend(soc);
|
||||
}
|
||||
|
||||
static struct cdp_bus_ops dp_ops_bus = {
|
||||
|
Reference in New Issue
Block a user