diff --git a/dp/inc/cdp_txrx_cmn.h b/dp/inc/cdp_txrx_cmn.h index 57f2db37cbc3..e39ae26652b8 100644 --- a/dp/inc/cdp_txrx_cmn.h +++ b/dp/inc/cdp_txrx_cmn.h @@ -1581,6 +1581,25 @@ cdp_peer_map_attach(ol_txrx_soc_handle soc, uint32_t max_peers) soc->ops->cmn_drv_ops->txrx_peer_map_attach(soc, max_peers); } +/** + + * cdp_pdev_set_ctrl_pdev() - set UMAC ctrl pdev to dp pdev + * @soc: opaque soc handle + * @pdev: opaque dp pdev handle + * @ctrl_pdev: opaque ctrl pdev handle + * + * Return: void + */ +static inline void +cdp_pdev_set_ctrl_pdev(ol_txrx_soc_handle soc, struct cdp_pdev *dp_pdev, + struct cdp_ctrl_objmgr_pdev *ctrl_pdev) +{ + if (soc && soc->ops && soc->ops->cmn_drv_ops && + soc->ops->cmn_drv_ops->txrx_pdev_set_ctrl_pdev) + soc->ops->cmn_drv_ops->txrx_pdev_set_ctrl_pdev(dp_pdev, + ctrl_pdev); +} + #ifdef RECEIVE_OFFLOAD /** * cdp_register_rx_offld_flush_cb() - register LRO/GRO flush cb function pointer diff --git a/dp/inc/cdp_txrx_ops.h b/dp/inc/cdp_txrx_ops.h index 974f47fbc723..2f659d01fdaa 100644 --- a/dp/inc/cdp_txrx_ops.h +++ b/dp/inc/cdp_txrx_ops.h @@ -309,6 +309,9 @@ struct cdp_cmn_ops { QDF_STATUS (*txrx_peer_map_attach)(ol_txrx_soc_handle soc, uint32_t num_peers); + void (*txrx_pdev_set_ctrl_pdev)(struct cdp_pdev *pdev_hdl, + struct cdp_ctrl_objmgr_pdev *ctrl_pdev); + ol_txrx_tx_fp tx_send; }; diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index fa09fdb3a88f..3b0fa3037c7a 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -7012,6 +7012,21 @@ static QDF_STATUS dp_peer_map_attach_wifi3(struct cdp_soc_t *soc_hdl, return QDF_STATUS_SUCCESS; } +/** + * dp_pdev_set_ctrl_pdev() - set ctrl pdev handle in dp pdev + * @dp_pdev: dp pdev handle + * @ctrl_pdev: UMAC ctrl pdev handle + * + * Return: void + */ +static void dp_pdev_set_ctrl_pdev(struct cdp_pdev *dp_pdev, + struct cdp_ctrl_objmgr_pdev *ctrl_pdev) +{ + struct dp_pdev *pdev = (struct dp_pdev *)dp_pdev; + + pdev->ctrl_pdev = ctrl_pdev; +} + static struct cdp_cmn_ops dp_ops_cmn = { .txrx_soc_attach_target = dp_soc_attach_target_wifi3, .txrx_vdev_attach = dp_vdev_attach_wifi3, @@ -7077,6 +7092,7 @@ static struct cdp_cmn_ops dp_ops_cmn = { .txrx_peer_reset_ast_table = dp_wds_reset_ast_table_wifi3, .txrx_peer_flush_ast_table = dp_wds_flush_ast_table_wifi3, .txrx_peer_map_attach = dp_peer_map_attach_wifi3, + .txrx_pdev_set_ctrl_pdev = dp_pdev_set_ctrl_pdev, }; static struct cdp_ctrl_ops dp_ops_ctrl = {