| 625 | } |
| 626 | |
| 627 | int |
| 628 | idpf_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id) |
| 629 | { |
| 630 | struct idpf_vport *vport = dev->data->dev_private; |
| 631 | struct idpf_tx_queue *txq = |
| 632 | dev->data->tx_queues[tx_queue_id]; |
| 633 | int err = 0; |
| 634 | |
| 635 | err = idpf_vc_txq_config(vport, txq); |
| 636 | if (err != 0) { |
| 637 | PMD_DRV_LOG(ERR, "Fail to configure Tx queue %u", tx_queue_id); |
| 638 | return err; |
| 639 | } |
| 640 | |
| 641 | err = idpf_tx_queue_init(dev, tx_queue_id); |
| 642 | if (err != 0) { |
| 643 | PMD_DRV_LOG(ERR, "Failed to init TX queue %u", |
| 644 | tx_queue_id); |
| 645 | return err; |
| 646 | } |
| 647 | |
| 648 | /* Ready to switch the queue on */ |
| 649 | err = idpf_vc_queue_switch(vport, tx_queue_id, false, true); |
| 650 | if (err != 0) { |
| 651 | PMD_DRV_LOG(ERR, "Failed to switch TX queue %u on", |
| 652 | tx_queue_id); |
| 653 | } else { |
| 654 | txq->q_started = true; |
| 655 | dev->data->tx_queue_state[tx_queue_id] = |
| 656 | RTE_ETH_QUEUE_STATE_STARTED; |
| 657 | } |
| 658 | |
| 659 | return err; |
| 660 | } |
| 661 | |
| 662 | int |
| 663 | idpf_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id) |
no test coverage detected