qcacmn: Create flow control pools on vdev start

As many as 5 vdevs can be created, which is defined by MAX_SME_SESSIONS.
But flow control pools are only valid for active TxRx capable vdevs.
which is 3 active vdevs. So attach flow pool creation to vdev_start
instead of vdev_attach.

Change-Id: I137676ba618aa3a6684c7d17ef7d9263c4df6efe
CRs-Fixed: 2220079
This commit is contained in:
Manjunathappa Prakash
2018-03-06 14:22:44 -08:00
کامیت شده توسط nshrivas
والد afb889318f
کامیت 38205cc1b7
5فایلهای تغییر یافته به همراه88 افزوده شده و 13 حذف شده

مشاهده پرونده

@@ -113,6 +113,62 @@ cdp_vdev_attach(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
return soc->ops->cmn_drv_ops->txrx_vdev_attach(pdev,
vdev_mac_addr, vdev_id, op_mode);
}
#ifndef CONFIG_WIN
/**
* cdp_flow_pool_map() - Create flow pool for vdev
* @soc - data path soc handle
* @pdev
* @vdev_id - vdev_id corresponding to vdev start
*
* Create per vdev flow pool.
*
* return none
*/
static inline QDF_STATUS cdp_flow_pool_map(ol_txrx_soc_handle soc,
struct cdp_pdev *pdev, uint8_t vdev_id)
{
if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
"%s: Invalid Instance:", __func__);
QDF_BUG(0);
return QDF_STATUS_E_INVAL;
}
if (!soc->ops->flowctl_ops ||
!soc->ops->flowctl_ops->flow_pool_map_handler)
return QDF_STATUS_E_INVAL;
return soc->ops->flowctl_ops->flow_pool_map_handler(soc, pdev, vdev_id);
}
/**
* cdp_flow_pool_unmap() - Delete flow pool
* @soc - data path soc handle
* @pdev
* @vdev_id - vdev_id corresponding to vdev start
*
* Delete flow pool
*
* return none
*/
static inline void cdp_flow_pool_unmap(ol_txrx_soc_handle soc,
struct cdp_pdev *pdev, uint8_t vdev_id)
{
if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
"%s: Invalid Instance:", __func__);
QDF_BUG(0);
return;
}
if (!soc->ops->flowctl_ops ||
!soc->ops->flowctl_ops->flow_pool_unmap_handler)
return;
return soc->ops->flowctl_ops->flow_pool_unmap_handler(soc, pdev,
vdev_id);
}
#endif
static inline void
cdp_vdev_detach(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,