DPDK patches and discussions
 help / color / mirror / Atom feed
From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: dev@dpdk.org
Cc: ferruh.yigit@intel.com, Hemant Agrawal <hemant.agrawal@nxp.com>
Subject: [dpdk-dev] [PATCH 9/9] net/dpaa: support Rxq and Txq info routines
Date: Fri, 10 Jul 2020 21:51:37 +0530	[thread overview]
Message-ID: <20200710162137.22973-9-hemant.agrawal@nxp.com> (raw)
In-Reply-To: <20200710162137.22973-1-hemant.agrawal@nxp.com>

This patch add support for rxq_info_get and txq_info_get

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/include/fsl_qman.h |  3 ++
 drivers/net/dpaa/dpaa_ethdev.c      | 51 +++++++++++++++++++++++++++--
 2 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 0d9cfc339..8ba37411a 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -1251,6 +1251,9 @@ struct qman_fq {
 	void **qman_fq_lookup_table;
 	u32 key;
 #endif
+	u16 nb_desc;
+	u16 resv;
+	u64 offloads;
 };
 
 /*
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index ea178f4d4..c15e2b546 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -748,6 +748,8 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 		DPAA_PMD_ERR("%p:Rx deferred start not supported", (void *)dev);
 		return -EINVAL;
 	}
+	rxq->nb_desc = UINT16_MAX;
+	rxq->offloads = rx_conf->offloads;
 
 	DPAA_PMD_INFO("Rx queue setup for queue index: %d fq_id (0x%x)",
 			queue_idx, rxq->fqid);
@@ -895,6 +897,7 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 	if (dpaa_intf->cgr_rx) {
 		struct qm_mcc_initcgr cgr_opts = {0};
 
+		rxq->nb_desc = nb_desc;
 		/* Enable tail drop with cgr on this queue */
 		qm_cgr_cs_thres_set64(&cgr_opts.cgr.cs_thres, nb_desc, 0);
 		ret = qman_modify_cgr(dpaa_intf->cgr_rx, 0, &cgr_opts);
@@ -1015,6 +1018,7 @@ int dpaa_eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 		const struct rte_eth_txconf *tx_conf)
 {
 	struct dpaa_if *dpaa_intf = dev->data->dev_private;
+	struct qman_fq *txq = &dpaa_intf->tx_queues[queue_idx];
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -1023,6 +1027,9 @@ int dpaa_eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 		DPAA_PMD_ERR("%p:Tx deferred start not supported", (void *)dev);
 		return -EINVAL;
 	}
+	txq->nb_desc = UINT16_MAX;
+	txq->offloads = tx_conf->offloads;
+
 	if (queue_idx >= dev->data->nb_tx_queues) {
 		rte_errno = EOVERFLOW;
 		DPAA_PMD_ERR("%p: queue index out of range (%u >= %u)",
@@ -1031,8 +1038,8 @@ int dpaa_eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 	}
 
 	DPAA_PMD_INFO("Tx queue setup for queue index: %d fq_id (0x%x)",
-			queue_idx, dpaa_intf->tx_queues[queue_idx].fqid);
-	dev->data->tx_queues[queue_idx] = &dpaa_intf->tx_queues[queue_idx];
+			queue_idx, txq->fqid);
+	dev->data->tx_queues[queue_idx] = txq;
 
 	return 0;
 }
@@ -1247,6 +1254,43 @@ static int dpaa_dev_queue_intr_disable(struct rte_eth_dev *dev,
 	return 0;
 }
 
+static void
+dpaa_rxq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
+	struct rte_eth_rxq_info *qinfo)
+{
+	struct dpaa_if *dpaa_intf = dev->data->dev_private;
+	struct qman_fq *rxq;
+
+	rxq = dev->data->rx_queues[queue_id];
+
+	qinfo->mp = dpaa_intf->bp_info->mp;
+	qinfo->scattered_rx = dev->data->scattered_rx;
+	qinfo->nb_desc = rxq->nb_desc;
+	qinfo->conf.rx_free_thresh = 1;
+	qinfo->conf.rx_drop_en = 1;
+	qinfo->conf.rx_deferred_start = 0;
+	qinfo->conf.offloads = rxq->offloads;
+}
+
+static void
+dpaa_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
+	struct rte_eth_txq_info *qinfo)
+{
+	struct qman_fq *txq;
+
+	txq = dev->data->tx_queues[queue_id];
+
+	qinfo->nb_desc = txq->nb_desc;
+	qinfo->conf.tx_thresh.pthresh = 0;
+	qinfo->conf.tx_thresh.hthresh = 0;
+	qinfo->conf.tx_thresh.wthresh = 0;
+
+	qinfo->conf.tx_free_thresh = 0;
+	qinfo->conf.tx_rs_thresh = 0;
+	qinfo->conf.offloads = txq->offloads;
+	qinfo->conf.tx_deferred_start = 0;
+}
+
 static struct eth_dev_ops dpaa_devops = {
 	.dev_configure		  = dpaa_eth_dev_configure,
 	.dev_start		  = dpaa_eth_dev_start,
@@ -1262,6 +1306,9 @@ static struct eth_dev_ops dpaa_devops = {
 	.rx_queue_count		  = dpaa_dev_rx_queue_count,
 	.rx_burst_mode_get	  = dpaa_dev_rx_burst_mode_get,
 	.tx_burst_mode_get	  = dpaa_dev_tx_burst_mode_get,
+	.rxq_info_get		  = dpaa_rxq_info_get,
+	.txq_info_get		  = dpaa_txq_info_get,
+
 	.flow_ctrl_get		  = dpaa_flow_ctrl_get,
 	.flow_ctrl_set		  = dpaa_flow_ctrl_set,
 
-- 
2.17.1


  parent reply	other threads:[~2020-07-10 16:27 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-10 16:21 [dpdk-dev] [PATCH 1/9] net/dpaa2: remove Rx timestamp enable PMD API Hemant Agrawal
2020-07-10 16:21 ` [dpdk-dev] [PATCH 2/9] net/dpaa2: support per port Rx mbuf timestamp Hemant Agrawal
2020-07-10 16:21 ` [dpdk-dev] [PATCH 3/9] net/dpaa: add Tx/Rx burst mode info Hemant Agrawal
2020-07-10 16:21 ` [dpdk-dev] [PATCH 4/9] net/dpaa2: " Hemant Agrawal
2020-07-10 16:21 ` [dpdk-dev] [PATCH 5/9] net/dpaa: report error on using deferred start Hemant Agrawal
2020-07-10 16:21 ` [dpdk-dev] [PATCH 6/9] net/dpaa2: report error on queue " Hemant Agrawal
2020-07-10 16:21 ` [dpdk-dev] [PATCH 7/9] net/dpaa2: add support to use Tx Queue desc size Hemant Agrawal
2020-07-10 16:21 ` [dpdk-dev] [PATCH 8/9] net/dpaa2: support Rxq and Txq info routines Hemant Agrawal
2020-07-10 16:21 ` Hemant Agrawal [this message]
2020-07-21  1:32 ` [dpdk-dev] [PATCH 1/9] net/dpaa2: remove Rx timestamp enable PMD API Ferruh Yigit
2020-07-21  3:26   ` Hemant Agrawal
2020-07-21  8:56 ` Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200710162137.22973-9-hemant.agrawal@nxp.com \
    --to=hemant.agrawal@nxp.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).