|
@@ -1240,4 +1240,80 @@ cdp_pdev_set_dp_txrx_handle(ol_txrx_soc_handle soc, void *pdev, void *dp_hdl)
|
|
|
|
|
|
soc->ops->cmn_drv_ops->set_dp_txrx_handle(pdev, dp_hdl);
|
|
|
}
|
|
|
+
|
|
|
+/**
|
|
|
+ * cdp_soc_get_dp_txrx_handle() - get extended dp handle from soc
|
|
|
+ * @soc: opaque soc handle
|
|
|
+ *
|
|
|
+ * Return: opaque extended dp handle
|
|
|
+ */
|
|
|
+static inline void *
|
|
|
+cdp_soc_get_dp_txrx_handle(ol_txrx_soc_handle soc)
|
|
|
+{
|
|
|
+ if (!soc || !soc->ops) {
|
|
|
+ QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
|
+ "%s: Invalid Instance:", __func__);
|
|
|
+ QDF_BUG(0);
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (soc->ops->cmn_drv_ops->get_soc_dp_txrx_handle)
|
|
|
+ return soc->ops->cmn_drv_ops->get_soc_dp_txrx_handle(
|
|
|
+ (struct cdp_soc *) soc);
|
|
|
+
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * cdp_soc_set_dp_txrx_handle() - set advanced dp handle in soc
|
|
|
+ * @soc: opaque soc handle
|
|
|
+ * @dp_hdl: opaque pointer for dp_txrx_handle
|
|
|
+ *
|
|
|
+ * Return: void
|
|
|
+ */
|
|
|
+static inline void
|
|
|
+cdp_soc_set_dp_txrx_handle(ol_txrx_soc_handle soc, void *dp_handle)
|
|
|
+{
|
|
|
+ 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_soc_dp_txrx_handle)
|
|
|
+ return;
|
|
|
+
|
|
|
+ soc->ops->cmn_drv_ops->set_soc_dp_txrx_handle((struct cdp_soc *)soc,
|
|
|
+ dp_handle);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * cdp_tx_send() - enqueue frame for transmission
|
|
|
+ * @soc: soc opaque handle
|
|
|
+ * @vdev: VAP device
|
|
|
+ * @nbuf: nbuf to be enqueued
|
|
|
+ *
|
|
|
+ * This API is used by Extended Datapath modules to enqueue frame for
|
|
|
+ * transmission
|
|
|
+ *
|
|
|
+ * Return: void
|
|
|
+ */
|
|
|
+static inline void
|
|
|
+cdp_tx_send(ol_txrx_soc_handle soc, struct cdp_vdev *vdev, qdf_nbuf_t nbuf)
|
|
|
+{
|
|
|
+ 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->tx_send)
|
|
|
+ return;
|
|
|
+
|
|
|
+ soc->ops->cmn_drv_ops->tx_send(vdev, nbuf);
|
|
|
+}
|
|
|
#endif /* _CDP_TXRX_CMN_H_ */
|