| 646 | } |
| 647 | |
| 648 | int |
| 649 | rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id) |
| 650 | { |
| 651 | struct rte_bbdev *dev = get_dev(dev_id); |
| 652 | VALID_DEV_OR_RET_ERR(dev, dev_id); |
| 653 | |
| 654 | VALID_DEV_OPS_OR_RET_ERR(dev, dev_id); |
| 655 | |
| 656 | VALID_QUEUE_OR_RET_ERR(queue_id, dev); |
| 657 | |
| 658 | if (dev->data->queues[queue_id].started) { |
| 659 | rte_bbdev_log_debug("Queue %u of device %u already started", |
| 660 | queue_id, dev_id); |
| 661 | return 0; |
| 662 | } |
| 663 | |
| 664 | if (dev->dev_ops->queue_start) { |
| 665 | int ret = dev->dev_ops->queue_start(dev, queue_id); |
| 666 | if (ret < 0) { |
| 667 | rte_bbdev_log(ERR, "Device %u queue %u start failed", |
| 668 | dev_id, queue_id); |
| 669 | return ret; |
| 670 | } |
| 671 | } |
| 672 | dev->data->queues[queue_id].started = true; |
| 673 | |
| 674 | rte_bbdev_log_debug("Started queue %u of device %u", queue_id, dev_id); |
| 675 | return 0; |
| 676 | } |
| 677 | |
| 678 | int |
| 679 | rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id) |