From patchwork Wed Jul 6 07:52:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aman Kumar X-Patchwork-Id: 113734 X-Patchwork-Delegate: thomas@monjalon.net 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 CCDADA0540; Wed, 6 Jul 2022 09:57:51 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2CFE642B79; Wed, 6 Jul 2022 09:56:53 +0200 (CEST) Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by mails.dpdk.org (Postfix) with ESMTP id 4724D42BA8 for ; Wed, 6 Jul 2022 09:56:51 +0200 (CEST) Received: by mail-pf1-f171.google.com with SMTP id w185so9963832pfb.4 for ; Wed, 06 Jul 2022 00:56:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vvdntech-in.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MGdB9IGVS3/hJaoO8cCz5tJAU7lV79Ofnu6JGoHE/DM=; b=07tBVIBOVPhVvEB95lyswnTjljBel3rJre3hGMupvZb/IE8eqY7FkNp71IqN5JIkR2 yEmKu49o5D1AMQSos7u6Qx1HVsfeVguhewvbkj3n2mhWzK+dMlUoPROj3JWp855JyTq2 5bMYi0eCjUfPqj5hLj8kXR9dGuc1tzaKlLl2057eIc7TUaK4iDA0xw7qAGnbPeX9iA3x 30phhjsJHbOd8NyQrh9gHFVcAdS2I5CwDuM1Bysm0R6Ol6Q+Bij2qAXs6r4xh6l74vZ7 y9sL40QajBeiGNdpGa0bCtVCvy0ABL5pRKrdOXyu3o2LrZImZhacW6iLMihDJ0vcn2SC insQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MGdB9IGVS3/hJaoO8cCz5tJAU7lV79Ofnu6JGoHE/DM=; b=hhLw7wmN6xjFUmWpnmmySIWVFufneXL1GIKTdPeDb3sBeTVzALfs+YdGJ9G7z7wKia swQmh6UHtqa1jcvMRc5ANIGyluxUom5lgRXU/XfEdO7HgfhfmmJxObd8wSPGelXWExPP DGnvCOMQdgyvdwS9K478QpnsDHeazRls9y3b+AGFEDaB1TCUJMbOmULvAkixyEhuXGC5 o7ekquXFn2IMfMi6gvrY6LL3XRyYrJ8X83KyI3U4AaWX5TOopXj8+fwzE+OyVnD3iwyv iOl49XYIFdnzG2rqwYqHq5VhRIXjW04JkzA1dVsSnJpI9XnCNF49pAEgunpCEhXhAu4W 0VxQ== X-Gm-Message-State: AJIora9QrpsO8Sbmf5FGff8uq7i1y/nVP7yAc23uIlmvfAtWyL4AUo/T Yuq3tAq9osSq3tFyPndEzYySFCEe7avixaGa X-Google-Smtp-Source: AGRyM1t1koQvLwavsCkcQ8tpp6Mog65ic86iz7hCoWDHYv4qIcS4kpgDbzYm1vRvicZPpbNiwD+6cw== X-Received: by 2002:a63:441b:0:b0:411:4723:ac40 with SMTP id r27-20020a63441b000000b004114723ac40mr34186938pga.35.1657094210396; Wed, 06 Jul 2022 00:56:50 -0700 (PDT) Received: from 470--5GDC--BLR.blore.vvdntech.com ([106.51.39.131]) by smtp.gmail.com with ESMTPSA id r4-20020a17090a438400b001ef81574355sm7378805pjg.12.2022.07.06.00.56.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Jul 2022 00:56:50 -0700 (PDT) From: Aman Kumar To: dev@dpdk.org Cc: maxime.coquelin@redhat.com, david.marchand@redhat.com, aman.kumar@vvdntech.in Subject: [RFC PATCH 16/29] net/qdma: add start and stop apis Date: Wed, 6 Jul 2022 13:22:06 +0530 Message-Id: <20220706075219.517046-17-aman.kumar@vvdntech.in> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220706075219.517046-1-aman.kumar@vvdntech.in> References: <20220706075219.517046-1-aman.kumar@vvdntech.in> MIME-Version: 1.0 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 this patch implements definitions for dev_start and dev_stop apis. Signed-off-by: Aman Kumar --- drivers/net/qdma/qdma_devops.c | 53 ++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/drivers/net/qdma/qdma_devops.c b/drivers/net/qdma/qdma_devops.c index 5329bd3cd4..28de783207 100644 --- a/drivers/net/qdma/qdma_devops.c +++ b/drivers/net/qdma/qdma_devops.c @@ -865,8 +865,40 @@ void qdma_dev_rx_queue_release(struct rte_eth_dev *dev, uint16_t q_id) */ int qdma_dev_start(struct rte_eth_dev *dev) { - (void)dev; + struct qdma_tx_queue *txq; + struct qdma_rx_queue *rxq; + uint32_t qid; + int err; + + PMD_DRV_LOG(INFO, "qdma-dev-start: Starting\n"); + + /* prepare descriptor rings for operation */ + for (qid = 0; qid < dev->data->nb_tx_queues; qid++) { + txq = (struct qdma_tx_queue *)dev->data->tx_queues[qid]; + + /* Deferred Queues should not start with dev_start */ + if (!txq->tx_deferred_start) { + err = qdma_dev_tx_queue_start(dev, qid); + if (err != 0) + return err; + } + } + for (qid = 0; qid < dev->data->nb_rx_queues; qid++) { + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + + /* Deferred Queues should not start with dev_start */ + if (!rxq->rx_deferred_start) { + err = qdma_dev_rx_queue_start(dev, qid); + if (err != 0) + return err; + } + } + +#if (MIN_TX_PIDX_UPDATE_THRESHOLD > 1) + rte_eal_alarm_set(QDMA_TXQ_PIDX_UPDATE_INTERVAL, + qdma_txq_pidx_update, (void *)dev); +#endif return 0; } @@ -922,7 +954,24 @@ int qdma_dev_infos_get(struct rte_eth_dev *dev, */ int qdma_dev_stop(struct rte_eth_dev *dev) { - (void)dev; + uint32_t qid; +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + + PMD_DRV_LOG(INFO, "PF-%d(DEVFN) Stop H2C & C2H queues", + qdma_dev->func_id); +#endif + + /* reset driver's internal queue structures to default values */ + for (qid = 0; qid < dev->data->nb_tx_queues; qid++) + qdma_dev_tx_queue_stop(dev, qid); + for (qid = 0; qid < dev->data->nb_rx_queues; qid++) + qdma_dev_rx_queue_stop(dev, qid); + +#if (MIN_TX_PIDX_UPDATE_THRESHOLD > 1) + /* Cancel pending PIDX updates */ + rte_eal_alarm_cancel(qdma_txq_pidx_update, (void *)dev); +#endif return 0; }