From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 97914CD98F2 for ; Mon, 22 Jun 2026 11:35:35 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CE01B40655; Mon, 22 Jun 2026 13:35:25 +0200 (CEST) Received: from inva021.nxp.com (inva021.nxp.com [92.121.34.21]) by mails.dpdk.org (Postfix) with ESMTP id 2D3D440150; Mon, 22 Jun 2026 13:35:23 +0200 (CEST) Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 06B5A200325; Mon, 22 Jun 2026 13:35:23 +0200 (CEST) Received: from aprdc01srsp001v.ap-rdc01.nxp.com (aprdc01srsp001v.ap-rdc01.nxp.com [165.114.16.16]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id C16D4200309; Mon, 22 Jun 2026 13:35:22 +0200 (CEST) Received: from lsv03457.swis.in-blr01.nxp.com (lsv03457.swis.in-blr01.nxp.com [92.120.147.250]) by aprdc01srsp001v.ap-rdc01.nxp.com (Postfix) with ESMTP id E8AFC180007B; Mon, 22 Jun 2026 19:35:21 +0800 (+08) From: Gagandeep Singh To: dev@dpdk.org Cc: hemant.agrawal@nxp.com, stable@dpdk.org, Gagandeep Singh Subject: [PATCH v2 2/9] net/enetc: fix queue initialization Date: Mon, 22 Jun 2026 17:05:10 +0530 Message-Id: <20260622113517.1616028-3-g.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260622113517.1616028-1-g.singh@nxp.com> References: <20260619184427.522518-1-g.singh@nxp.com> <20260622113517.1616028-1-g.singh@nxp.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV using ClamSMTP X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Hardware can misbehave if the user tries to reset the consumer and producer indexes without resetting the ring. This patch adds the ring reset step before resetting the indexes. Fixes: 6c9c5aadc0e0 ("net/enetc: support ENETC4 queue API") Cc: stable@dpdk.org Signed-off-by: Gagandeep Singh --- drivers/net/enetc/enetc4_ethdev.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/enetc/enetc4_ethdev.c b/drivers/net/enetc/enetc4_ethdev.c index 78eba70..154fc09 100644 --- a/drivers/net/enetc/enetc4_ethdev.c +++ b/drivers/net/enetc/enetc4_ethdev.c @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright 2024 NXP + * Copyright 2024-2026 NXP */ #include @@ -279,6 +279,7 @@ enetc4_tx_queue_setup(struct rte_eth_dev *dev, const struct rte_eth_txconf *tx_conf) { int err; + uint32_t tx_data; struct enetc_bdr *tx_ring; struct rte_eth_dev_data *data = dev->data; struct enetc_eth_adapter *priv = @@ -301,6 +302,10 @@ enetc4_tx_queue_setup(struct rte_eth_dev *dev, goto fail; tx_ring->ndev = dev; + /* reset queue */ + tx_data = enetc4_txbdr_rd(&priv->hw.hw, tx_ring->index, ENETC_TBMR); + tx_data &= ~ENETC_TBMR_EN; + enetc4_txbdr_wr(&priv->hw.hw, tx_ring->index, ENETC_TBMR, tx_data); enetc4_setup_txbdr(&priv->hw.hw, tx_ring); data->tx_queues[queue_idx] = tx_ring; tx_ring->tx_deferred_start = tx_conf->tx_deferred_start; @@ -427,6 +432,7 @@ enetc4_rx_queue_setup(struct rte_eth_dev *dev, struct rte_mempool *mb_pool) { int err = 0; + uint32_t rx_enable; struct enetc_bdr *rx_ring; struct rte_eth_dev_data *data = dev->data; struct enetc_eth_adapter *adapter = @@ -450,6 +456,10 @@ enetc4_rx_queue_setup(struct rte_eth_dev *dev, goto fail; rx_ring->ndev = dev; + /* reset queue */ + rx_enable = enetc4_rxbdr_rd(&adapter->hw.hw, rx_ring->index, ENETC_RBMR); + rx_enable &= ~ENETC_RBMR_EN; + enetc4_rxbdr_wr(&adapter->hw.hw, rx_ring->index, ENETC_RBMR, rx_enable); enetc4_setup_rxbdr(&adapter->hw.hw, rx_ring, mb_pool); data->rx_queues[rx_queue_id] = rx_ring; rx_ring->rx_deferred_start = rx_conf->rx_deferred_start; -- 2.25.1