qcacmn: Componentize extender AP
Remove dependency of extender ap on VAP layer and radio(ic) layer data structure Change-Id: Ib336f518847abd1b29f5ea3cfd1a508dc2cd14e8 CRs-Fixed: 2148247
This commit is contained in:
@@ -1060,4 +1060,52 @@ QDF_STATUS cdp_update_config_parameters(ol_txrx_soc_handle soc,
|
|||||||
return soc->ops->cmn_drv_ops->update_config_parameters(psoc,
|
return soc->ops->cmn_drv_ops->update_config_parameters(psoc,
|
||||||
cfg);
|
cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cdp_pdev_get_dp_txrx_handle() - get advanced dp handle from pdev
|
||||||
|
* @soc: opaque soc handle
|
||||||
|
* @pdev: data path pdev handle
|
||||||
|
*
|
||||||
|
* Return: opaque dp handle
|
||||||
|
*/
|
||||||
|
static inline void *
|
||||||
|
cdp_pdev_get_dp_txrx_handle(ol_txrx_soc_handle soc, void *pdev)
|
||||||
|
{
|
||||||
|
if (!soc || !soc->ops) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
|
"%s: Invalid Instance:", __func__);
|
||||||
|
QDF_BUG(0);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (soc->ops->cmn_drv_ops->get_dp_txrx_handle)
|
||||||
|
return soc->ops->cmn_drv_ops->get_dp_txrx_handle(pdev);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cdp_pdev_set_dp_txrx_handle() - set advanced dp handle in pdev
|
||||||
|
* @soc: opaque soc handle
|
||||||
|
* @pdev: data path pdev handle
|
||||||
|
* @dp_hdl: opaque pointer for dp_txrx_handle
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static inline void
|
||||||
|
cdp_pdev_set_dp_txrx_handle(ol_txrx_soc_handle soc, void *pdev, void *dp_hdl)
|
||||||
|
{
|
||||||
|
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->cmn_drv_ops ||
|
||||||
|
!soc->ops->cmn_drv_ops->set_dp_txrx_handle)
|
||||||
|
return;
|
||||||
|
|
||||||
|
soc->ops->cmn_drv_ops->set_dp_txrx_handle(pdev, dp_hdl);
|
||||||
|
}
|
||||||
#endif /* _CDP_TXRX_CMN_H_ */
|
#endif /* _CDP_TXRX_CMN_H_ */
|
||||||
|
@@ -228,6 +228,9 @@ struct cdp_cmn_ops {
|
|||||||
uint32_t *rx_pn);
|
uint32_t *rx_pn);
|
||||||
QDF_STATUS (*update_config_parameters)(struct cdp_soc *psoc,
|
QDF_STATUS (*update_config_parameters)(struct cdp_soc *psoc,
|
||||||
struct cdp_config_params *params);
|
struct cdp_config_params *params);
|
||||||
|
|
||||||
|
void *(*get_dp_txrx_handle)(struct cdp_pdev *pdev_hdl);
|
||||||
|
void (*set_dp_txrx_handle)(struct cdp_pdev *pdev_hdl, void *dp_txrx_hdl);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cdp_ctrl_ops {
|
struct cdp_ctrl_ops {
|
||||||
|
@@ -2541,6 +2541,7 @@ static void dp_pdev_detach_wifi3(struct cdp_pdev *txrx_pdev, int force)
|
|||||||
soc->pdev_list[pdev->pdev_id] = NULL;
|
soc->pdev_list[pdev->pdev_id] = NULL;
|
||||||
soc->pdev_count--;
|
soc->pdev_count--;
|
||||||
wlan_cfg_pdev_detach(pdev->wlan_cfg_ctx);
|
wlan_cfg_pdev_detach(pdev->wlan_cfg_ctx);
|
||||||
|
qdf_mem_free(pdev->dp_txrx_handle);
|
||||||
qdf_mem_free(pdev);
|
qdf_mem_free(pdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5872,6 +5873,34 @@ dp_txrx_data_tx_cb_set(struct cdp_vdev *vdev_handle,
|
|||||||
vdev->tx_non_std_data_callback.ctxt = ctxt;
|
vdev->tx_non_std_data_callback.ctxt = ctxt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_pdev_get_dp_txrx_handle() - get dp handle from pdev
|
||||||
|
* @pdev_hdl: datapath pdev handle
|
||||||
|
*
|
||||||
|
* Return: opaque pointer to dp txrx handle
|
||||||
|
*/
|
||||||
|
static void *dp_pdev_get_dp_txrx_handle(struct cdp_pdev *pdev_hdl)
|
||||||
|
{
|
||||||
|
struct dp_pdev *pdev = (struct dp_pdev *)pdev_hdl;
|
||||||
|
|
||||||
|
return pdev->dp_txrx_handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_pdev_set_dp_txrx_handle() - set dp handle in pdev
|
||||||
|
* @pdev_hdl: datapath pdev handle
|
||||||
|
* @dp_txrx_hdl: opaque pointer for dp_txrx_handle
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
dp_pdev_set_dp_txrx_handle(struct cdp_pdev *pdev_hdl, void *dp_txrx_hdl)
|
||||||
|
{
|
||||||
|
struct dp_pdev *pdev = (struct dp_pdev *)pdev_hdl;
|
||||||
|
|
||||||
|
pdev->dp_txrx_handle = dp_txrx_hdl;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_WIN
|
#ifdef CONFIG_WIN
|
||||||
static void dp_peer_teardown_wifi3(struct cdp_vdev *vdev_hdl, void *peer_hdl)
|
static void dp_peer_teardown_wifi3(struct cdp_vdev *vdev_hdl, void *peer_hdl)
|
||||||
{
|
{
|
||||||
@@ -5926,7 +5955,9 @@ static struct cdp_cmn_ops dp_ops_cmn = {
|
|||||||
.set_pn_check = dp_set_pn_check_wifi3,
|
.set_pn_check = dp_set_pn_check_wifi3,
|
||||||
.update_config_parameters = dp_update_config_parameters,
|
.update_config_parameters = dp_update_config_parameters,
|
||||||
/* TODO: Add other functions */
|
/* TODO: Add other functions */
|
||||||
.txrx_data_tx_cb_set = dp_txrx_data_tx_cb_set
|
.txrx_data_tx_cb_set = dp_txrx_data_tx_cb_set,
|
||||||
|
.get_dp_txrx_handle = dp_pdev_get_dp_txrx_handle,
|
||||||
|
.set_dp_txrx_handle = dp_pdev_set_dp_txrx_handle,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct cdp_ctrl_ops dp_ops_ctrl = {
|
static struct cdp_ctrl_ops dp_ops_ctrl = {
|
||||||
|
@@ -1103,6 +1103,8 @@ struct dp_pdev {
|
|||||||
uint16_t tx_peer_id;
|
uint16_t tx_peer_id;
|
||||||
uint16_t rx_ppdu_id;
|
uint16_t rx_ppdu_id;
|
||||||
} am_copy_id;
|
} am_copy_id;
|
||||||
|
|
||||||
|
void *dp_txrx_handle; /* Advanced data path handle */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct dp_peer;
|
struct dp_peer;
|
||||||
|
Reference in New Issue
Block a user