This patch adds new fields to 'struct enetc_bdr' to save the
configuratin of Rx and Tx deferred start.

Signed-off-by: Jie Hai <haij...@huawei.com>
---
 drivers/net/enetc/enetc.h        | 2 ++
 drivers/net/enetc/enetc_ethdev.c | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/drivers/net/enetc/enetc.h b/drivers/net/enetc/enetc.h
index 7163633bcedf..170854cd1649 100644
--- a/drivers/net/enetc/enetc.h
+++ b/drivers/net/enetc/enetc.h
@@ -74,6 +74,8 @@ struct enetc_bdr {
        };
        struct rte_mempool *mb_pool;   /* mbuf pool to populate RX ring. */
        struct rte_eth_dev *ndev;
+       bool rx_deferred_start;
+       bool tx_deferred_start;
 };
 
 /*
diff --git a/drivers/net/enetc/enetc_ethdev.c b/drivers/net/enetc/enetc_ethdev.c
index 1b4337bc488c..444792b7f77e 100644
--- a/drivers/net/enetc/enetc_ethdev.c
+++ b/drivers/net/enetc/enetc_ethdev.c
@@ -326,9 +326,11 @@ enetc_tx_queue_setup(struct rte_eth_dev *dev,
                               ENETC_TBMR, ENETC_TBMR_EN);
                dev->data->tx_queue_state[tx_ring->index] =
                               RTE_ETH_QUEUE_STATE_STARTED;
+               tx_ring->tx_deferred_start = false;
        } else {
                dev->data->tx_queue_state[tx_ring->index] =
                               RTE_ETH_QUEUE_STATE_STOPPED;
+               tx_ring->tx_deferred_start = true;
        }
 
        return 0;
@@ -473,9 +475,11 @@ enetc_rx_queue_setup(struct rte_eth_dev *dev,
                               ENETC_RBMR_EN);
                dev->data->rx_queue_state[rx_ring->index] =
                               RTE_ETH_QUEUE_STATE_STARTED;
+               rx_ring->rx_deferred_start = false;
        } else {
                dev->data->rx_queue_state[rx_ring->index] =
                               RTE_ETH_QUEUE_STATE_STOPPED;
+               rx_ring->rx_deferred_start = true;
        }
 
        rx_ring->crc_len = (uint8_t)((rx_offloads & 
RTE_ETH_RX_OFFLOAD_KEEP_CRC) ?
-- 
2.30.0

Reply via email to