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
Bu işleme şunda yer alıyor:
Yu Wang
2022-05-17 18:07:53 +08:00
işlemeyi yapan: Madan Koyyalamudi
ebeveyn c8fafae5ee
işleme a9461beb20
10 değiştirilmiş dosya ile 239 ekleme ve 211 silme

Dosyayı Görüntüle

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -101,7 +102,7 @@ target_if_cfr_subscribe_ppdu_desc(struct wlan_objmgr_pdev *pdev,
g_cfr_subscribe.callback = target_cfr_callback;
g_cfr_subscribe.context = pdev;
cdp_set_cfr_rcc(soc, 0, is_subscribe);
cdp_enable_mon_reap_timer(soc, 0, is_subscribe);
cdp_enable_mon_reap_timer(soc, CDP_MON_REAP_SOURCE_CFR, is_subscribe);
if (is_subscribe) {
if (cdp_wdi_event_sub(soc, 0, &g_cfr_subscribe,
WDI_EVENT_RX_PPDU_DESC)) {