| 1478 | }; |
| 1479 | |
| 1480 | static int |
| 1481 | dpaa2_dpdmai_dev_uninit(struct rte_dma_dev *dev) |
| 1482 | { |
| 1483 | struct dpaa2_dpdmai_dev *dpdmai_dev = dev->data->dev_private; |
| 1484 | int ret; |
| 1485 | |
| 1486 | DPAA2_QDMA_FUNC_TRACE(); |
| 1487 | |
| 1488 | ret = dpdmai_disable(&dpdmai_dev->dpdmai, CMD_PRI_LOW, |
| 1489 | dpdmai_dev->token); |
| 1490 | if (ret) |
| 1491 | DPAA2_QDMA_ERR("dmdmai disable failed"); |
| 1492 | |
| 1493 | /* Set up the DQRR storage for Rx */ |
| 1494 | struct dpaa2_queue *rxq = &(dpdmai_dev->rx_queue[0]); |
| 1495 | |
| 1496 | if (rxq->q_storage) { |
| 1497 | dpaa2_free_dq_storage(rxq->q_storage); |
| 1498 | rte_free(rxq->q_storage); |
| 1499 | } |
| 1500 | |
| 1501 | /* Close the device at underlying layer*/ |
| 1502 | ret = dpdmai_close(&dpdmai_dev->dpdmai, CMD_PRI_LOW, dpdmai_dev->token); |
| 1503 | if (ret) |
| 1504 | DPAA2_QDMA_ERR("Failure closing dpdmai device"); |
| 1505 | |
| 1506 | return 0; |
| 1507 | } |
| 1508 | |
| 1509 | static int |
| 1510 | dpaa2_dpdmai_dev_init(struct rte_dma_dev *dev, int dpdmai_id) |
no test coverage detected