qcacmn: Add change to skip monitor ring cfg

Add change to skip monitor ring configuration
for smart and lite monitor through dp_set_monitor_mode
API instead will be handled to configure
cdp_txrx_set_pdev_param from caller as required
during restart, stop and up path.

Change-Id: If842399c64601049efdf9233a83ede5ce368802c
CRs-Fixed: 2421573
This commit is contained in:
Naga
2019-03-22 19:01:28 +05:30
committed by nshrivas
parent dcb2769793
commit 65fad66752

View File

@@ -5894,7 +5894,7 @@ static QDF_STATUS dp_pdev_configure_monitor_rings(struct dp_pdev *pdev)
* Return: 0 on success, not 0 on failure * Return: 0 on success, not 0 on failure
*/ */
static QDF_STATUS dp_vdev_set_monitor_mode(struct cdp_vdev *vdev_handle, static QDF_STATUS dp_vdev_set_monitor_mode(struct cdp_vdev *vdev_handle,
uint8_t smart_monitor) uint8_t special_monitor)
{ {
struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle; struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle;
struct dp_pdev *pdev; struct dp_pdev *pdev;
@@ -5902,10 +5902,21 @@ static QDF_STATUS dp_vdev_set_monitor_mode(struct cdp_vdev *vdev_handle,
qdf_assert(vdev); qdf_assert(vdev);
pdev = vdev->pdev; pdev = vdev->pdev;
pdev->monitor_vdev = vdev;
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_WARN, QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_WARN,
"pdev=%pK, pdev_id=%d, soc=%pK vdev=%pK\n", "pdev=%pK, pdev_id=%d, soc=%pK vdev=%pK\n",
pdev, pdev->pdev_id, pdev->soc, vdev); pdev, pdev->pdev_id, pdev->soc, vdev);
/*
* do not configure monitor buf ring and filter for smart and
* lite monitor
* for smart monitor filters are added along with first NAC
* for lite monitor required configuration done through
* dp_set_pdev_param
*/
if (special_monitor)
return QDF_STATUS_SUCCESS;
/*Check if current pdev's monitor_vdev exists */ /*Check if current pdev's monitor_vdev exists */
if (pdev->monitor_configured) { if (pdev->monitor_configured) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
@@ -5914,13 +5925,8 @@ static QDF_STATUS dp_vdev_set_monitor_mode(struct cdp_vdev *vdev_handle,
return QDF_STATUS_E_RESOURCES; return QDF_STATUS_E_RESOURCES;
} }
pdev->monitor_vdev = vdev;
pdev->monitor_configured = true; pdev->monitor_configured = true;
/* If smart monitor mode, do not configure monitor ring */
if (smart_monitor)
return QDF_STATUS_SUCCESS;
return dp_pdev_configure_monitor_rings(pdev); return dp_pdev_configure_monitor_rings(pdev);
} }