struct rte_device device; /**< Inherit core device */
union {
struct rte_eth_dev *eth_dev; /**< ethernet device */
- struct rte_dma_dev *dmadev; /**< DMA Device */
struct rte_rawdev *rawdev; /**< Raw Device */
};
enum rte_dpaa2_dev_type dev_type; /**< Device Type */
return 0;
}
+static int
+dpaa2_dpdmai_dev_uninit(struct rte_dma_dev *dev);
+
static int
dpaa2_qdma_close(struct rte_dma_dev *dev)
{
/* Reset QDMA device structure */
qdma_dev->num_vqs = 0;
+ dpaa2_dpdmai_dev_uninit(dev);
+
return 0;
}
return -EINVAL;
}
- dpaa2_dev->dmadev = dmadev;
dmadev->dev_ops = &dpaa2_qdma_ops;
dmadev->device = &dpaa2_dev->device;
dmadev->fp_obj->dev_private = dmadev->data->dev_private;
static int
dpaa2_qdma_remove(struct rte_dpaa2_device *dpaa2_dev)
{
- struct rte_dma_dev *dmadev = dpaa2_dev->dmadev;
int ret;
DPAA2_QDMA_FUNC_TRACE();
- dpaa2_dpdmai_dev_uninit(dmadev);
-
ret = rte_dma_pmd_release(dpaa2_dev->device.name);
if (ret)
DPAA2_QDMA_ERR("Device cleanup failed");