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:

کامیت شده توسط
nshrivas

والد
afb889318f
کامیت
38205cc1b7
@@ -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,
|
||||
|
مرجع در شماره جدید
Block a user