From patchwork Fri Feb 19 09:28:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Somnath Kotur X-Patchwork-Id: 88003 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D2654A054A; Fri, 19 Feb 2021 10:28:12 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5B60240395; Fri, 19 Feb 2021 10:28:12 +0100 (CET) Received: from relay.smtp-ext.broadcom.com (lpdvacalvio01.broadcom.com [192.19.229.182]) by mails.dpdk.org (Postfix) with ESMTP id 093F940042 for ; Fri, 19 Feb 2021 10:28:10 +0100 (CET) Received: from dhcp-10-123-153-55.dhcp.broadcom.net (bgccx-dev-host-lnx35.bec.broadcom.net [10.123.153.55]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by relay.smtp-ext.broadcom.com (Postfix) with ESMTPS id E96C92E5F1; Fri, 19 Feb 2021 01:28:07 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com E96C92E5F1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1613726889; bh=A4kCuSNIJQcRngSPizw99xSjdY0TD96PJdDTtwYqMNw=; h=From:To:Cc:Subject:Date:From; b=ayP1dwFfkNRJ55Ck1MCkORksifHMvbkMBSufaUBxxKTXh/PDVRkp7ijuvDb416q93 dorEwZzE68M3iMJbBqaeX2adWOvDxRXR/5L81upprSnW8R4UhyRp6Os9uoSrleOSJh rgN0vHQxFzSSrQKUPznDdYinxImFNwfNoRLFKUvM= From: Somnath Kotur To: dev@dpdk.org Cc: ferruh.yigit@intel.com, Somnath Kotur Date: Fri, 19 Feb 2021 14:58:03 +0530 Message-Id: <20210219092803.12756-1-somnath.kotur@broadcom.com> X-Mailer: git-send-email 2.28.0.450.g3a238e5 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH] net/bnxt: refactor HWRM rings allocation routine 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 Sender: "dev" bnxt_alloc_hwrm_rings() was duplicating a snippet of code that was already present in bnxt_alloc_hwrm_rx_ring() with just one line/function invocation missing. Add that line and replace the snippet of code with a call to bnxt_hwrm_alloc_rx_ring Signed-off-by: Somnath Kotur --- drivers/net/bnxt/bnxt_ring.c | 59 ++++-------------------------------- 1 file changed, 6 insertions(+), 53 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c index ba23c1fa03..997dcdc28b 100644 --- a/drivers/net/bnxt/bnxt_ring.c +++ b/drivers/net/bnxt/bnxt_ring.c @@ -581,6 +581,7 @@ int bnxt_alloc_hwrm_rx_ring(struct bnxt *bp, int queue_index) struct bnxt_cp_ring_info *cpr = rxq->cp_ring; struct bnxt_ring *cp_ring = cpr->cp_ring_struct; struct bnxt_rx_ring_info *rxr = rxq->rx_ring; + struct bnxt_coal coal; int rc; /* @@ -603,6 +604,9 @@ int bnxt_alloc_hwrm_rx_ring(struct bnxt *bp, int queue_index) bp->grp_info[queue_index].cp_fw_ring_id = cp_ring->fw_ring_id; } + bnxt_init_dflt_coal(&coal); + bnxt_hwrm_set_ring_coal(bp, &coal, cp_ring->fw_ring_id); + if (!BNXT_NUM_ASYNC_CPR(bp) && !queue_index) { /* * If a dedicated async event completion ring is not enabled, @@ -699,60 +703,9 @@ int bnxt_alloc_hwrm_rings(struct bnxt *bp) bnxt_init_all_rings(bp); for (i = 0; i < bp->rx_cp_nr_rings; i++) { - struct bnxt_rx_queue *rxq = bp->rx_queues[i]; - struct bnxt_cp_ring_info *cpr = rxq->cp_ring; - struct bnxt_ring *cp_ring = cpr->cp_ring_struct; - struct bnxt_rx_ring_info *rxr = rxq->rx_ring; - - /* - * Storage for the cp ring is allocated based on worst-case - * usage, the actual size to be used by hw is computed here. - */ - cp_ring->ring_size = rxr->rx_ring_struct->ring_size * 2; - - if (bp->eth_dev->data->scattered_rx) - cp_ring->ring_size *= AGG_RING_SIZE_FACTOR; - - cp_ring->ring_mask = cp_ring->ring_size - 1; - - if (bnxt_alloc_cmpl_ring(bp, i, cpr)) - goto err_out; - - if (BNXT_HAS_RING_GRPS(bp)) { - bp->grp_info[i].fw_stats_ctx = cpr->hw_stats_ctx_id; - bp->grp_info[i].cp_fw_ring_id = cp_ring->fw_ring_id; - } - - bnxt_hwrm_set_ring_coal(bp, &coal, cp_ring->fw_ring_id); - if (!BNXT_NUM_ASYNC_CPR(bp) && !i) { - /* - * If a dedicated async event completion ring is not - * enabled, use the first completion ring as the default - * completion ring for async event handling. - */ - bp->async_cp_ring = cpr; - rc = bnxt_hwrm_set_async_event_cr(bp); - if (rc) - goto err_out; - } - - if (bnxt_alloc_rx_ring(bp, i)) - goto err_out; - - if (bnxt_alloc_rx_agg_ring(bp, i)) + rc = bnxt_alloc_hwrm_rx_ring(bp, i); + if (rc) goto err_out; - - if (bnxt_init_one_rx_ring(rxq)) { - PMD_DRV_LOG(ERR, "bnxt_init_one_rx_ring failed!\n"); - bnxt_rx_queue_release_op(rxq); - return -ENOMEM; - } - bnxt_db_write(&rxr->rx_db, rxr->rx_raw_prod); - bnxt_db_write(&rxr->ag_db, rxr->ag_raw_prod); - rxq->index = i; -#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64) - bnxt_rxq_vec_setup(rxq); -#endif } for (i = 0; i < bp->tx_cp_nr_rings; i++) {