qcacmn: Delete peers when tx monitor is disabled

Delete the litemon peers added when tx monitor is disabled.

Change-Id: If604e0c121690919ac8364f70e2a471df1b7f794
CRs-Fixed: 3412125
Cette révision appartient à :
Nandha Kishore Easwaran
2023-02-20 20:07:42 +05:30
révisé par Madan Koyyalamudi
Parent 6f3a375902
révision ba9a08a6fc

Voir le fichier

@@ -32,6 +32,9 @@
#ifdef FEATURE_PERPKT_INFO
#include "dp_ratetable.h"
#endif
#ifdef QCA_SUPPORT_LITE_MONITOR
#include "dp_lite_mon.h"
#endif
#define MAX_TX_MONITOR_STUCK 50
@@ -590,6 +593,25 @@ void dp_print_pdev_tx_monitor_stats_2_0(struct dp_pdev *pdev)
DP_PRINT_STATS("\t\ttlv drop : %llu", stats.tlv_drop_cnt);
}
#ifdef QCA_SUPPORT_LITE_MONITOR
static void dp_lite_mon_free_tx_peers(struct dp_pdev *pdev)
{
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
struct dp_mon_pdev_be *mon_pdev_be =
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
struct dp_lite_mon_tx_config *lite_mon_tx_config;
lite_mon_tx_config = mon_pdev_be->lite_mon_tx_config;
qdf_spin_lock_bh(&lite_mon_tx_config->lite_mon_tx_lock);
dp_lite_mon_free_peers(pdev, &lite_mon_tx_config->tx_config);
qdf_spin_unlock_bh(&lite_mon_tx_config->lite_mon_tx_lock);
}
#else
static void dp_lite_mon_free_tx_peers(struct dp_pdev *pdev)
{
}
#endif
/*
* dp_config_enh_tx_monitor_2_0()- API to enable/disable enhanced tx capture
* @pdev_handle: DP_PDEV handle
@@ -617,6 +639,8 @@ dp_config_enh_tx_monitor_2_0(struct dp_pdev *pdev, uint8_t val)
tx_mon_be->mode = TX_MON_BE_DISABLE;
mon_pdev_be->tx_mon_mode = 0;
mon_pdev_be->tx_mon_filter_length = DMA_LENGTH_64B;
/* Free any peers that were added for tx peer filtering */
dp_lite_mon_free_tx_peers(pdev);
break;
}
case TX_MON_BE_FULL_CAPTURE: