| 676 | } |
| 677 | |
| 678 | int |
| 679 | rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id) |
| 680 | { |
| 681 | struct rte_bbdev *dev = get_dev(dev_id); |
| 682 | VALID_DEV_OR_RET_ERR(dev, dev_id); |
| 683 | |
| 684 | VALID_DEV_OPS_OR_RET_ERR(dev, dev_id); |
| 685 | |
| 686 | VALID_QUEUE_OR_RET_ERR(queue_id, dev); |
| 687 | |
| 688 | if (!dev->data->queues[queue_id].started) { |
| 689 | rte_bbdev_log_debug("Queue %u of device %u already stopped", |
| 690 | queue_id, dev_id); |
| 691 | return 0; |
| 692 | } |
| 693 | |
| 694 | if (dev->dev_ops->queue_stop) { |
| 695 | int ret = dev->dev_ops->queue_stop(dev, queue_id); |
| 696 | if (ret < 0) { |
| 697 | rte_bbdev_log(ERR, "Device %u queue %u stop failed", |
| 698 | dev_id, queue_id); |
| 699 | return ret; |
| 700 | } |
| 701 | } |
| 702 | dev->data->queues[queue_id].started = false; |
| 703 | |
| 704 | rte_bbdev_log_debug("Stopped queue %u of device %u", queue_id, dev_id); |
| 705 | return 0; |
| 706 | } |
| 707 | |
| 708 | /* Get device statistics */ |
| 709 | static void |