qcacmn: add flag which indicate use of monitor ring

Add a flag to indicate monitor destination being used

Change-Id: Ic89f5ad2ed918fe1d894a214416866ea88f1b96a
CRs-fixed: 2371551
This commit is contained in:
Chaithanya Garrepalli
2018-12-21 19:17:33 +05:30
committed by nshrivas
parent 71c9846f58
commit 65e6fc1a43
2 changed files with 10 additions and 1 deletions

View File

@@ -3221,6 +3221,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
qdf_spinlock_create(&pdev->neighbour_peer_mutex); qdf_spinlock_create(&pdev->neighbour_peer_mutex);
TAILQ_INIT(&pdev->neighbour_peers_list); TAILQ_INIT(&pdev->neighbour_peers_list);
pdev->neighbour_peers_added = false; pdev->neighbour_peers_added = false;
pdev->monitor_configured = false;
if (dp_soc_cmn_setup(soc)) { if (dp_soc_cmn_setup(soc)) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
@@ -5516,6 +5517,7 @@ static QDF_STATUS dp_reset_monitor_mode(struct cdp_pdev *pdev_handle)
pdev->monitor_vdev = NULL; pdev->monitor_vdev = NULL;
pdev->mcopy_mode = 0; pdev->mcopy_mode = 0;
pdev->monitor_configured = false;
qdf_spin_unlock_bh(&pdev->mon_lock); qdf_spin_unlock_bh(&pdev->mon_lock);
@@ -5698,7 +5700,7 @@ static QDF_STATUS dp_vdev_set_monitor_mode(struct cdp_vdev *vdev_handle,
pdev, pdev->pdev_id, pdev->soc, vdev); pdev, pdev->pdev_id, pdev->soc, vdev);
/*Check if current pdev's monitor_vdev exists */ /*Check if current pdev's monitor_vdev exists */
if (pdev->monitor_vdev || pdev->mcopy_mode) { if (pdev->monitor_configured) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
"monitor vap already created vdev=%pK\n", vdev); "monitor vap already created vdev=%pK\n", vdev);
qdf_assert(vdev); qdf_assert(vdev);
@@ -5706,6 +5708,7 @@ static QDF_STATUS dp_vdev_set_monitor_mode(struct cdp_vdev *vdev_handle,
} }
pdev->monitor_vdev = vdev; pdev->monitor_vdev = vdev;
pdev->monitor_configured = true;
/* If smart monitor mode, do not configure monitor ring */ /* If smart monitor mode, do not configure monitor ring */
if (smart_monitor) if (smart_monitor)
@@ -7652,6 +7655,7 @@ dp_config_debug_sniffer(struct cdp_pdev *pdev_handle, int val)
case 0: case 0:
pdev->tx_sniffer_enable = 0; pdev->tx_sniffer_enable = 0;
pdev->mcopy_mode = 0; pdev->mcopy_mode = 0;
pdev->monitor_configured = false;
if (!pdev->pktlog_ppdu_stats && !pdev->enhanced_stats_en && if (!pdev->pktlog_ppdu_stats && !pdev->enhanced_stats_en &&
!pdev->bpr_enable) { !pdev->bpr_enable) {
@@ -7674,6 +7678,7 @@ dp_config_debug_sniffer(struct cdp_pdev *pdev_handle, int val)
case 1: case 1:
pdev->tx_sniffer_enable = 1; pdev->tx_sniffer_enable = 1;
pdev->mcopy_mode = 0; pdev->mcopy_mode = 0;
pdev->monitor_configured = false;
if (!pdev->pktlog_ppdu_stats) if (!pdev->pktlog_ppdu_stats)
dp_h2t_cfg_stats_msg_send(pdev, dp_h2t_cfg_stats_msg_send(pdev,
@@ -7687,6 +7692,7 @@ dp_config_debug_sniffer(struct cdp_pdev *pdev_handle, int val)
pdev->mcopy_mode = 1; pdev->mcopy_mode = 1;
dp_pdev_configure_monitor_rings(pdev); dp_pdev_configure_monitor_rings(pdev);
pdev->monitor_configured = true;
pdev->tx_sniffer_enable = 0; pdev->tx_sniffer_enable = 0;
if (!pdev->pktlog_ppdu_stats) if (!pdev->pktlog_ppdu_stats)

View File

@@ -1201,6 +1201,9 @@ struct dp_pdev {
/*tx_mutex for me*/ /*tx_mutex for me*/
DP_MUTEX_TYPE tx_mutex; DP_MUTEX_TYPE tx_mutex;
/* monitor */
bool monitor_configured;
/* Smart Mesh */ /* Smart Mesh */
bool filter_neighbour_peers; bool filter_neighbour_peers;