qcacmn: Changes to enable CFR on special vap

This change enables CFR captures on special vap.

Change-Id: Ifdaeccf7cc2211af5a2b82feae3a0b3ee45b617a
CRs-Fixed: 3308460
This commit is contained in:
Nidhi Jain
2022-11-02 09:23:49 +05:30
committed by Madan Koyyalamudi
parent 559514f2b7
commit 2e2003d54f
4 changed files with 20 additions and 7 deletions

View File

@@ -922,12 +922,14 @@ cdp_get_pldev(ol_txrx_soc_handle soc, uint8_t pdev_id)
* @pdev_id: ID of the physical device object * @pdev_id: ID of the physical device object
* @enable: Enable or disable CFR * @enable: Enable or disable CFR
* @filter_val: Flag to select filter for monitor mode * @filter_val: Flag to select filter for monitor mode
* @cfr_enable_monitor_mode: Flag to be enabled when scan radio is brought up
* in special vap mode
*/ */
static inline void static inline void
cdp_cfr_filter(ol_txrx_soc_handle soc, cdp_cfr_filter(ol_txrx_soc_handle soc,
uint8_t pdev_id, uint8_t pdev_id,
bool enable, bool enable, struct cdp_monitor_filter *filter_val,
struct cdp_monitor_filter *filter_val) bool cfr_enable_monitor_mode)
{ {
if (!soc || !soc->ops) { if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
@@ -939,7 +941,8 @@ cdp_cfr_filter(ol_txrx_soc_handle soc,
if (!soc->ops->cfr_ops || !soc->ops->cfr_ops->txrx_cfr_filter) if (!soc->ops->cfr_ops || !soc->ops->cfr_ops->txrx_cfr_filter)
return; return;
soc->ops->cfr_ops->txrx_cfr_filter(soc, pdev_id, enable, filter_val); soc->ops->cfr_ops->txrx_cfr_filter(soc, pdev_id, enable, filter_val,
cfr_enable_monitor_mode);
} }
/** /**

View File

@@ -2060,7 +2060,8 @@ struct cdp_cfr_ops {
void (*txrx_cfr_filter)(struct cdp_soc_t *soc_hdl, void (*txrx_cfr_filter)(struct cdp_soc_t *soc_hdl,
uint8_t pdev_id, uint8_t pdev_id,
bool enable, bool enable,
struct cdp_monitor_filter *filter_val); struct cdp_monitor_filter *filter_val,
bool cfr_enable_monitor_mode);
bool (*txrx_get_cfr_rcc)(struct cdp_soc_t *soc_hdl, bool (*txrx_get_cfr_rcc)(struct cdp_soc_t *soc_hdl,
uint8_t pdev_id); uint8_t pdev_id);
void (*txrx_set_cfr_rcc)(struct cdp_soc_t *soc_hdl, void (*txrx_set_cfr_rcc)(struct cdp_soc_t *soc_hdl,

View File

@@ -1067,13 +1067,16 @@ QDF_STATUS dp_mon_filter_update_1_0(struct dp_pdev *pdev)
* @pdev_id: id of data path pdev handle * @pdev_id: id of data path pdev handle
* @enable: Enable/Disable CFR * @enable: Enable/Disable CFR
* @filter_val: Flag to select Filter for monitor mode * @filter_val: Flag to select Filter for monitor mode
* @cfr_enable_monitor_mode: Flag to be enabled when scan radio is brought up
* in special vap mode
* *
* Return: void * Return: void
*/ */
static void dp_cfr_filter_1_0(struct cdp_soc_t *soc_hdl, static void dp_cfr_filter_1_0(struct cdp_soc_t *soc_hdl,
uint8_t pdev_id, uint8_t pdev_id,
bool enable, bool enable,
struct cdp_monitor_filter *filter_val) struct cdp_monitor_filter *filter_val,
bool cfr_enable_monitor_mode)
{ {
struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
struct dp_pdev *pdev = NULL; struct dp_pdev *pdev = NULL;
@@ -1091,7 +1094,10 @@ static void dp_cfr_filter_1_0(struct cdp_soc_t *soc_hdl,
mon_pdev = pdev->monitor_pdev; mon_pdev = pdev->monitor_pdev;
if (mon_pdev->mvdev) { if (mon_pdev->mvdev) {
dp_mon_info("No action is needed since mon mode is enabled\n"); if (enable && cfr_enable_monitor_mode)
pdev->cfr_rcc_mode = true;
else
pdev->cfr_rcc_mode = false;
return; return;
} }

View File

@@ -3192,13 +3192,16 @@ dp_mon_filter_setup_tx_lite_mon(struct dp_mon_pdev_be *be_mon_pdev)
* @pdev_id: id of data path pdev handle * @pdev_id: id of data path pdev handle
* @enable: Enable/Disable CFR * @enable: Enable/Disable CFR
* @filter_val: Flag to select Filter for monitor mode * @filter_val: Flag to select Filter for monitor mode
* @cfr_enable_monitor_mode: Flag to be enabled when scan radio is brought up
* in special vap mode
* *
* Return: void * Return: void
*/ */
static void dp_cfr_filter_2_0(struct cdp_soc_t *soc_hdl, static void dp_cfr_filter_2_0(struct cdp_soc_t *soc_hdl,
uint8_t pdev_id, uint8_t pdev_id,
bool enable, bool enable,
struct cdp_monitor_filter *filter_val) struct cdp_monitor_filter *filter_val,
bool cfr_enable_monitor_mode)
{ {
struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
struct dp_pdev *pdev = NULL; struct dp_pdev *pdev = NULL;