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 3E07BC43458 for ; Mon, 29 Jun 2026 05:22:38 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4CA0A40663; Mon, 29 Jun 2026 07:22:17 +0200 (CEST) Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by mails.dpdk.org (Postfix) with ESMTP id 93D3740647; Mon, 29 Jun 2026 07:22:13 +0200 (CEST) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 735E31A07E3; Mon, 29 Jun 2026 07:22:13 +0200 (CEST) Received: from aprdc01srsp001v.ap-rdc01.nxp.com (aprdc01srsp001v.ap-rdc01.nxp.com [165.114.16.16]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 9E22F1A0CA9; Mon, 29 Jun 2026 07:18:21 +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 BC02A180007B; Mon, 29 Jun 2026 13:18:20 +0800 (+08) From: Gagandeep Singh To: dev@dpdk.org Cc: hemant.agrawal@nxp.com, stable@dpdk.org, Gagandeep Singh Subject: [PATCH v4 2/9] net/enetc: fix queue initialization Date: Mon, 29 Jun 2026 10:48:12 +0530 Message-Id: <20260629051819.989176-3-g.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260629051819.989176-1-g.singh@nxp.com> References: <20260623060004.2187716-1-g.singh@nxp.com> <20260629051819.989176-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