All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: dev@dpdk.org, gakhil@marvell.com, nicolas.chautru@intel.com
Cc: david.marchand@redhat.com,
	Hemant Agrawal <hemant.agrawal@nxp.com>,
	Nipun Gupta <nipun.gupta@nxp.com>
Subject: [dpdk-dev] [PATCH v3 5/8] baseband/la12xx: add enqueue and dequeue support
Date: Tue, 13 Apr 2021 10:47:12 +0530	[thread overview]
Message-ID: <20210413051715.26430-6-hemant.agrawal@nxp.com> (raw)
In-Reply-To: <20210413051715.26430-1-hemant.agrawal@nxp.com>

Add support for enqueue and dequeue the LDPC enc/dec
from the modem device.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/baseband/la12xx/bbdev_la12xx.c     | 397 ++++++++++++++++++++-
 drivers/baseband/la12xx/bbdev_la12xx_ipc.h |  37 ++
 2 files changed, 430 insertions(+), 4 deletions(-)

diff --git a/drivers/baseband/la12xx/bbdev_la12xx.c b/drivers/baseband/la12xx/bbdev_la12xx.c
index 0a68686205..d1040987b2 100644
--- a/drivers/baseband/la12xx/bbdev_la12xx.c
+++ b/drivers/baseband/la12xx/bbdev_la12xx.c
@@ -117,6 +117,10 @@ la12xx_queue_release(struct rte_bbdev *dev, uint16_t q_id)
 		((uint64_t) ((unsigned long) (A) \
 		- ((uint64_t)ipc_priv->hugepg_start.host_vaddr)))
 
+#define MODEM_P2V(A) \
+	((uint64_t) ((unsigned long) (A) \
+		+ (unsigned long)(ipc_priv->peb_start.host_vaddr)))
+
 static int ipc_queue_configure(uint32_t channel_id,
 		ipc_t instance, struct bbdev_la12xx_q_priv *q_priv)
 {
@@ -345,6 +349,387 @@ static const struct rte_bbdev_ops pmd_ops = {
 	.queue_release = la12xx_queue_release,
 	.start = la12xx_start
 };
+
+static int
+fill_feca_desc_enc(struct bbdev_la12xx_q_priv *q_priv,
+		   struct bbdev_ipc_dequeue_op *bbdev_ipc_op,
+		   struct rte_bbdev_enc_op *bbdev_enc_op,
+		   struct rte_bbdev_op_data *in_op_data)
+{
+	RTE_SET_USED(q_priv);
+	RTE_SET_USED(bbdev_ipc_op);
+	RTE_SET_USED(bbdev_enc_op);
+	RTE_SET_USED(in_op_data);
+
+	return 0;
+}
+
+static int
+fill_feca_desc_dec(struct bbdev_la12xx_q_priv *q_priv,
+		   struct bbdev_ipc_dequeue_op *bbdev_ipc_op,
+		   struct rte_bbdev_dec_op *bbdev_dec_op,
+		   struct rte_bbdev_op_data *out_op_data)
+{
+	RTE_SET_USED(q_priv);
+	RTE_SET_USED(bbdev_ipc_op);
+	RTE_SET_USED(bbdev_dec_op);
+	RTE_SET_USED(out_op_data);
+
+	return 0;
+}
+
+static inline int
+is_bd_ring_full(uint32_t ci, uint32_t ci_flag,
+		uint32_t pi, uint32_t pi_flag)
+{
+	if (pi == ci) {
+		if (pi_flag != ci_flag)
+			return 1; /* Ring is Full */
+	}
+	return 0;
+}
+
+static inline int
+prepare_ldpc_enc_op(struct rte_bbdev_enc_op *bbdev_enc_op,
+		    struct bbdev_ipc_dequeue_op *bbdev_ipc_op,
+		    struct bbdev_la12xx_q_priv *q_priv,
+		    struct rte_bbdev_op_data *in_op_data,
+		    struct rte_bbdev_op_data *out_op_data)
+{
+	struct rte_bbdev_op_ldpc_enc *ldpc_enc = &bbdev_enc_op->ldpc_enc;
+	uint32_t total_out_bits;
+	int ret;
+
+	total_out_bits = (ldpc_enc->tb_params.cab *
+		ldpc_enc->tb_params.ea) + (ldpc_enc->tb_params.c -
+		ldpc_enc->tb_params.cab) * ldpc_enc->tb_params.eb;
+
+	ldpc_enc->output.length = (total_out_bits + 7)/8;
+
+	ret = fill_feca_desc_enc(q_priv, bbdev_ipc_op,
+				 bbdev_enc_op, in_op_data);
+	if (ret) {
+		BBDEV_LA12XX_PMD_ERR(
+			"fill_feca_desc_enc failed, ret: %d", ret);
+		return ret;
+	}
+
+	rte_pktmbuf_append(out_op_data->data, ldpc_enc->output.length);
+
+	return 0;
+}
+
+static inline int
+prepare_ldpc_dec_op(struct rte_bbdev_dec_op *bbdev_dec_op,
+		    struct bbdev_ipc_dequeue_op *bbdev_ipc_op,
+		    struct bbdev_la12xx_q_priv *q_priv,
+		    struct rte_bbdev_op_data *out_op_data)
+{
+	struct rte_bbdev_op_ldpc_dec *ldpc_dec = &bbdev_dec_op->ldpc_dec;
+	uint32_t total_out_bits;
+	uint32_t num_code_blocks = 0;
+	uint16_t sys_cols;
+	int ret;
+
+	sys_cols = (ldpc_dec->basegraph == 1) ? 22 : 10;
+	if (ldpc_dec->tb_params.c == 1) {
+		total_out_bits = ((sys_cols * ldpc_dec->z_c) -
+				ldpc_dec->n_filler);
+		/* 5G-NR protocol uses 16 bit CRC when output packet
+		 * size <= 3824 (bits). Otherwise 24 bit CRC is used.
+		 * Adjust the output bits accordingly
+		 */
+		if (total_out_bits - 16 <= 3824)
+			total_out_bits -= 16;
+		else
+			total_out_bits -= 24;
+		ldpc_dec->hard_output.length = (total_out_bits / 8);
+	} else {
+		total_out_bits = (((sys_cols * ldpc_dec->z_c) -
+				ldpc_dec->n_filler - 24) *
+				ldpc_dec->tb_params.c);
+		ldpc_dec->hard_output.length = (total_out_bits / 8) - 3;
+	}
+
+	num_code_blocks = ldpc_dec->tb_params.c;
+
+	bbdev_ipc_op->num_code_blocks = rte_cpu_to_be_32(num_code_blocks);
+
+	ret = fill_feca_desc_dec(q_priv, bbdev_ipc_op,
+				 bbdev_dec_op, out_op_data);
+	if (ret) {
+		BBDEV_LA12XX_PMD_ERR("fill_feca_desc_dec failed, ret: %d", ret);
+		return ret;
+	}
+
+	return 0;
+}
+
+static int
+enqueue_single_op(struct bbdev_la12xx_q_priv *q_priv, void *bbdev_op)
+{
+	struct bbdev_la12xx_private *priv = q_priv->bbdev_priv;
+	ipc_userspace_t *ipc_priv = priv->ipc_priv;
+	ipc_instance_t *ipc_instance = ipc_priv->instance;
+	struct bbdev_ipc_dequeue_op *bbdev_ipc_op;
+	struct rte_bbdev_op_ldpc_enc *ldpc_enc;
+	struct rte_bbdev_op_ldpc_dec *ldpc_dec;
+	uint32_t q_id = q_priv->q_id;
+	uint32_t ci, ci_flag, pi, pi_flag;
+	ipc_ch_t *ch = &(ipc_instance->ch_list[q_id]);
+	ipc_br_md_t *md = &(ch->md);
+	size_t virt;
+	char *huge_start_addr =
+		(char *)q_priv->bbdev_priv->ipc_priv->hugepg_start.host_vaddr;
+	struct rte_bbdev_op_data *in_op_data, *out_op_data;
+	char *data_ptr;
+	uint32_t l1_pcie_addr;
+	int ret;
+	uint32_t temp_ci;
+
+	temp_ci = q_priv->host_params->ci;
+	ci = IPC_GET_CI_INDEX(temp_ci);
+	ci_flag = IPC_GET_CI_FLAG(temp_ci);
+
+	pi = IPC_GET_PI_INDEX(q_priv->host_pi);
+	pi_flag = IPC_GET_PI_FLAG(q_priv->host_pi);
+
+	BBDEV_LA12XX_PMD_DP_DEBUG(
+		"before bd_ring_full: pi: %u, ci: %u, pi_flag: %u, ci_flag: %u, ring size: %u",
+		pi, ci, pi_flag, ci_flag, q_priv->queue_size);
+
+	if (is_bd_ring_full(ci, ci_flag, pi, pi_flag)) {
+		BBDEV_LA12XX_PMD_DP_DEBUG(
+				"bd ring full for queue id: %d", q_id);
+		return IPC_CH_FULL;
+	}
+
+	virt = MODEM_P2V(q_priv->host_params->modem_ptr[pi]);
+	bbdev_ipc_op = (struct bbdev_ipc_dequeue_op *)virt;
+	q_priv->bbdev_op[pi] = bbdev_op;
+
+	switch (q_priv->op_type) {
+	case RTE_BBDEV_OP_LDPC_ENC:
+		ldpc_enc = &(((struct rte_bbdev_enc_op *)bbdev_op)->ldpc_enc);
+		in_op_data = &ldpc_enc->input;
+		out_op_data = &ldpc_enc->output;
+
+		ret = prepare_ldpc_enc_op(bbdev_op, bbdev_ipc_op, q_priv,
+					  in_op_data, out_op_data);
+		if (ret) {
+			BBDEV_LA12XX_PMD_ERR(
+				"process_ldpc_enc_op failed, ret: %d", ret);
+			return ret;
+		}
+		break;
+
+	case RTE_BBDEV_OP_LDPC_DEC:
+		ldpc_dec = &(((struct rte_bbdev_dec_op *)bbdev_op)->ldpc_dec);
+		in_op_data = &ldpc_dec->input;
+
+			out_op_data = &ldpc_dec->hard_output;
+
+		ret = prepare_ldpc_dec_op(bbdev_op, bbdev_ipc_op,
+					  q_priv, out_op_data);
+		if (ret) {
+			BBDEV_LA12XX_PMD_ERR(
+				"process_ldpc_dec_op failed, ret: %d", ret);
+			return ret;
+		}
+		break;
+
+	default:
+		BBDEV_LA12XX_PMD_ERR("unsupported bbdev_ipc op type");
+		return -1;
+	}
+
+	if (in_op_data->data) {
+		data_ptr = rte_pktmbuf_mtod(in_op_data->data, char *);
+		l1_pcie_addr = (uint32_t)GUL_USER_HUGE_PAGE_ADDR +
+			       data_ptr - huge_start_addr;
+		bbdev_ipc_op->in_addr = l1_pcie_addr;
+		bbdev_ipc_op->in_len = in_op_data->length;
+	}
+
+	if (out_op_data->data) {
+		data_ptr = rte_pktmbuf_mtod(out_op_data->data, char *);
+		l1_pcie_addr = (uint32_t)GUL_USER_HUGE_PAGE_ADDR +
+				data_ptr - huge_start_addr;
+		bbdev_ipc_op->out_addr = rte_cpu_to_be_32(l1_pcie_addr);
+		bbdev_ipc_op->out_len = rte_cpu_to_be_32(out_op_data->length);
+	}
+
+	/* Move Producer Index forward */
+	pi++;
+	/* Flip the PI flag, if wrapping */
+	if (unlikely(q_priv->queue_size == pi)) {
+		pi = 0;
+		pi_flag = pi_flag ? 0 : 1;
+	}
+
+	if (pi_flag)
+		IPC_SET_PI_FLAG(pi);
+	else
+		IPC_RESET_PI_FLAG(pi);
+	/* Wait for Data Copy & pi_flag update to complete before updating pi */
+	rte_mb();
+	/* now update pi */
+	md->pi = rte_cpu_to_be_32(pi);
+	q_priv->host_pi = pi;
+
+	BBDEV_LA12XX_PMD_DP_DEBUG(
+			"enter: pi: %u, ci: %u, pi_flag: %u, ci_flag: %u, ring size: %u",
+			pi, ci, pi_flag, ci_flag, q_priv->queue_size);
+
+	return 0;
+}
+
+/* Enqueue decode burst */
+static uint16_t
+enqueue_dec_ops(struct rte_bbdev_queue_data *q_data,
+		struct rte_bbdev_dec_op **ops, uint16_t nb_ops)
+{
+	struct bbdev_la12xx_q_priv *q_priv = q_data->queue_private;
+	int nb_enqueued, ret;
+
+	for (nb_enqueued = 0; nb_enqueued < nb_ops; nb_enqueued++) {
+		ret = enqueue_single_op(q_priv, ops[nb_enqueued]);
+		if (ret)
+			break;
+	}
+
+	q_data->queue_stats.enqueue_err_count += nb_ops - nb_enqueued;
+	q_data->queue_stats.enqueued_count += nb_enqueued;
+
+	return nb_enqueued;
+}
+
+/* Enqueue encode burst */
+static uint16_t
+enqueue_enc_ops(struct rte_bbdev_queue_data *q_data,
+		struct rte_bbdev_enc_op **ops, uint16_t nb_ops)
+{
+	struct bbdev_la12xx_q_priv *q_priv = q_data->queue_private;
+	int nb_enqueued, ret;
+
+	for (nb_enqueued = 0; nb_enqueued < nb_ops; nb_enqueued++) {
+		ret = enqueue_single_op(q_priv, ops[nb_enqueued]);
+		if (ret)
+			break;
+	}
+
+	q_data->queue_stats.enqueue_err_count += nb_ops - nb_enqueued;
+	q_data->queue_stats.enqueued_count += nb_enqueued;
+
+	return nb_enqueued;
+}
+
+static inline int
+is_bd_ring_empty(uint32_t ci, uint32_t ci_flag,
+		 uint32_t pi, uint32_t pi_flag)
+{
+	if (ci == pi) {
+		if (ci_flag == pi_flag)
+			return 1; /* No more Buffer */
+	}
+	return 0;
+}
+
+/* Dequeue encode burst */
+static void *
+dequeue_single_op(struct bbdev_la12xx_q_priv *q_priv, void *dst)
+{
+	struct bbdev_la12xx_private *priv = q_priv->bbdev_priv;
+	ipc_userspace_t *ipc_priv = priv->ipc_priv;
+	uint32_t q_id = q_priv->q_id + HOST_RX_QUEUEID_OFFSET;
+	ipc_instance_t *ipc_instance = ipc_priv->instance;
+	ipc_ch_t *ch = &(ipc_instance->ch_list[q_id]);
+	uint32_t ci, ci_flag, pi, pi_flag;
+	ipc_br_md_t *md;
+	void *op;
+	uint32_t temp_pi;
+
+	md = &(ch->md);
+	ci = IPC_GET_CI_INDEX(q_priv->host_ci);
+	ci_flag = IPC_GET_CI_FLAG(q_priv->host_ci);
+
+	temp_pi = q_priv->host_params->pi;
+	pi = IPC_GET_PI_INDEX(temp_pi);
+	pi_flag = IPC_GET_PI_FLAG(temp_pi);
+
+	if (is_bd_ring_empty(ci, ci_flag, pi, pi_flag))
+		return NULL;
+
+	BBDEV_LA12XX_PMD_DP_DEBUG(
+		"pi: %u, ci: %u, pi_flag: %u, ci_flag: %u, ring size: %u",
+		pi, ci, pi_flag, ci_flag, q_priv->queue_size);
+
+	op = q_priv->bbdev_op[ci];
+
+	rte_memcpy(dst, q_priv->msg_ch_vaddr[ci],
+		sizeof(struct bbdev_ipc_enqueue_op));
+
+	/* Move Consumer Index forward */
+	ci++;
+	/* Flip the CI flag, if wrapping */
+	if (q_priv->queue_size == ci) {
+		ci = 0;
+		ci_flag = ci_flag ? 0 : 1;
+	}
+	if (ci_flag)
+		IPC_SET_CI_FLAG(ci);
+	else
+		IPC_RESET_CI_FLAG(ci);
+	md->ci = rte_cpu_to_be_32(ci);
+	q_priv->host_ci = ci;
+
+	BBDEV_LA12XX_PMD_DP_DEBUG(
+		"exit: pi: %u, ci: %u, pi_flag: %u, ci_flag: %u, ring size: %u",
+		pi, ci, pi_flag, ci_flag, q_priv->queue_size);
+
+	return op;
+}
+
+/* Dequeue decode burst */
+static uint16_t
+dequeue_dec_ops(struct rte_bbdev_queue_data *q_data,
+		struct rte_bbdev_dec_op **ops, uint16_t nb_ops)
+{
+	struct bbdev_la12xx_q_priv *q_priv = q_data->queue_private;
+	struct bbdev_ipc_enqueue_op bbdev_ipc_op;
+	int nb_dequeued;
+
+	for (nb_dequeued = 0; nb_dequeued < nb_ops; nb_dequeued++) {
+		ops[nb_dequeued] = dequeue_single_op(q_priv, &bbdev_ipc_op);
+		if (!ops[nb_dequeued])
+			break;
+		ops[nb_dequeued]->status = bbdev_ipc_op.status;
+	}
+	q_data->queue_stats.dequeued_count += nb_dequeued;
+
+	return nb_dequeued;
+}
+
+/* Dequeue encode burst */
+static uint16_t
+dequeue_enc_ops(struct rte_bbdev_queue_data *q_data,
+		struct rte_bbdev_enc_op **ops, uint16_t nb_ops)
+{
+	struct bbdev_la12xx_q_priv *q_priv = q_data->queue_private;
+	struct bbdev_ipc_enqueue_op bbdev_ipc_op;
+	int nb_enqueued;
+
+	for (nb_enqueued = 0; nb_enqueued < nb_ops; nb_enqueued++) {
+		ops[nb_enqueued] = dequeue_single_op(q_priv, &bbdev_ipc_op);
+		if (!ops[nb_enqueued])
+			break;
+		ops[nb_enqueued]->status = bbdev_ipc_op.status;
+	}
+	q_data->queue_stats.enqueued_count += nb_enqueued;
+
+	return nb_enqueued;
+}
+
 static struct hugepage_info *
 get_hugepage_info(void)
 {
@@ -720,10 +1105,14 @@ la12xx_bbdev_create(struct rte_vdev_device *vdev,
 	bbdev->intr_handle = NULL;
 
 	/* register rx/tx burst functions for data path */
-	bbdev->dequeue_enc_ops = NULL;
-	bbdev->dequeue_dec_ops = NULL;
-	bbdev->enqueue_enc_ops = NULL;
-	bbdev->enqueue_dec_ops = NULL;
+	bbdev->dequeue_enc_ops = dequeue_enc_ops;
+	bbdev->dequeue_dec_ops = dequeue_dec_ops;
+	bbdev->enqueue_enc_ops = enqueue_enc_ops;
+	bbdev->enqueue_dec_ops = enqueue_dec_ops;
+	bbdev->dequeue_ldpc_enc_ops = dequeue_enc_ops;
+	bbdev->dequeue_ldpc_dec_ops = dequeue_dec_ops;
+	bbdev->enqueue_ldpc_enc_ops = enqueue_enc_ops;
+	bbdev->enqueue_ldpc_dec_ops = enqueue_dec_ops;
 
 	return 0;
 }
diff --git a/drivers/baseband/la12xx/bbdev_la12xx_ipc.h b/drivers/baseband/la12xx/bbdev_la12xx_ipc.h
index 9d5789f726..4e181e9254 100644
--- a/drivers/baseband/la12xx/bbdev_la12xx_ipc.h
+++ b/drivers/baseband/la12xx/bbdev_la12xx_ipc.h
@@ -76,6 +76,25 @@ typedef struct {
 	_IOWR(GUL_IPC_MAGIC, 5, struct ipc_msg *)
 #define IOCTL_GUL_IPC_CHANNEL_RAISE_INTERRUPT _IOW(GUL_IPC_MAGIC, 6, int *)
 
+#define GUL_USER_HUGE_PAGE_OFFSET	(0)
+#define GUL_PCI1_ADDR_BASE	(0x00000000ULL)
+
+#define GUL_USER_HUGE_PAGE_ADDR	(GUL_PCI1_ADDR_BASE + GUL_USER_HUGE_PAGE_OFFSET)
+
+/* IPC PI/CI index & flag manipulation helpers */
+#define IPC_PI_CI_FLAG_MASK	0x80000000 /*  (1<<31) */
+#define IPC_PI_CI_INDEX_MASK	0x7FFFFFFF /* ~(1<<31) */
+
+#define IPC_SET_PI_FLAG(x)	(x |= IPC_PI_CI_FLAG_MASK)
+#define IPC_RESET_PI_FLAG(x)	(x &= IPC_PI_CI_INDEX_MASK)
+#define IPC_GET_PI_FLAG(x)	(x >> 31)
+#define IPC_GET_PI_INDEX(x)	(x & IPC_PI_CI_INDEX_MASK)
+
+#define IPC_SET_CI_FLAG(x)	(x |= IPC_PI_CI_FLAG_MASK)
+#define IPC_RESET_CI_FLAG(x)	(x &= IPC_PI_CI_INDEX_MASK)
+#define IPC_GET_CI_FLAG(x)	(x >> 31)
+#define IPC_GET_CI_INDEX(x)	(x & IPC_PI_CI_INDEX_MASK)
+
 /** buffer ring common metadata */
 typedef struct ipc_bd_ring_md {
 	volatile uint32_t pi;		/**< Producer index and flag (MSB)
@@ -173,6 +192,24 @@ struct bbdev_ipc_enqueue_op {
 	uint32_t rsvd;
 };
 
+/** Structure specifying dequeue operation (dequeue at LA1224) */
+struct bbdev_ipc_dequeue_op {
+	/** Input buffer memory address */
+	uint32_t in_addr;
+	/** Input buffer memory length */
+	uint32_t in_len;
+	/** Output buffer memory address */
+	uint32_t out_addr;
+	/** Output buffer memory length */
+	uint32_t out_len;
+	/* Number of code blocks. Only set when HARQ is used */
+	uint32_t num_code_blocks;
+	/** Dequeue Operation flags */
+	uint32_t op_flags;
+	/** Shared metadata between L1 and L2 */
+	uint32_t shared_metadata;
+};
+
 /* This shared memory would be on the host side which have copy of some
  * of the parameters which are also part of Shared BD ring. Read access
  * of these parameters from the host side would not be over PCI.
-- 
2.17.1


  parent reply	other threads:[~2021-04-13  5:19 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-18  6:34 [dpdk-dev] [PATCH 1/6] baseband: introduce NXP LA12xx driver Hemant Agrawal
2021-03-18  6:34 ` [dpdk-dev] [PATCH 2/6] baseband/la12xx: add devargs for max queues Hemant Agrawal
2021-03-18  6:34 ` [dpdk-dev] [PATCH 3/6] baseband/la12xx: add support for multiple modems Hemant Agrawal
2021-03-18  6:34 ` [dpdk-dev] [PATCH 4/6] baseband/la12xx: add queue and modem config support Hemant Agrawal
2021-03-18  6:34 ` [dpdk-dev] [PATCH 5/6] baseband/la12xx: add enqueue and dequeue support Hemant Agrawal
2021-03-18  6:34 ` [dpdk-dev] [PATCH 6/6] baseband/la12xx: add documentation support Hemant Agrawal
2021-03-18 14:53 ` [dpdk-dev] [PATCH 1/6] baseband: introduce NXP LA12xx driver David Marchand
2021-03-19  5:54   ` Hemant Agrawal
2021-04-08  8:55     ` [dpdk-dev] [EXT] " Akhil Goyal
2021-04-08  8:57       ` Hemant Agrawal
2021-04-08 15:29       ` Chautru, Nicolas
2021-04-10 17:02 ` [dpdk-dev] [PATCH v2 0/8] baseband: add " Hemant Agrawal
2021-04-10 17:02   ` [dpdk-dev] [PATCH v2 1/8] baseband: introduce " Hemant Agrawal
2021-04-10 17:02   ` [dpdk-dev] [PATCH v2 2/8] baseband/la12xx: add devargs for max queues Hemant Agrawal
2021-04-10 17:02   ` [dpdk-dev] [PATCH v2 3/8] baseband/la12xx: add support for multiple modems Hemant Agrawal
2021-04-10 17:02   ` [dpdk-dev] [PATCH v2 4/8] baseband/la12xx: add queue and modem config support Hemant Agrawal
2021-04-10 17:02   ` [dpdk-dev] [PATCH v2 5/8] baseband/la12xx: add enqueue and dequeue support Hemant Agrawal
2021-04-10 17:02   ` [dpdk-dev] [PATCH v2 6/8] baseband/la12xx: add documentation support Hemant Agrawal
2021-04-10 17:02   ` [dpdk-dev] [PATCH v2 7/8] app/bbdev: add parameter to take input in network order Hemant Agrawal
2021-04-12  7:22     ` David Marchand
2021-04-12  7:29       ` Hemant Agrawal
2021-04-10 17:02   ` [dpdk-dev] [PATCH v2 8/8] app/bbdev: add test vectors for transport blocks Hemant Agrawal
2021-04-13  5:17   ` [dpdk-dev] [PATCH v3 0/8] baseband: add NXP LA12xx driver Hemant Agrawal
2021-04-13  5:17     ` [dpdk-dev] [PATCH v3 1/8] baseband: introduce " Hemant Agrawal
2021-04-24 10:36       ` [dpdk-dev] [PATCH v4 0/8] baseband: add " Hemant Agrawal
2021-04-24 10:36         ` [dpdk-dev] [PATCH v4 1/8] bbdev: add network order data capability Hemant Agrawal
2021-04-24 21:59           ` Chautru, Nicolas
2021-04-25 16:14             ` Thomas Monjalon
2021-04-26 17:01           ` Dave Burley
2021-04-28 13:03             ` Hemant Agrawal
2021-04-28 13:34             ` Hemant Agrawal
2021-04-28 15:19               ` Chautru, Nicolas
2021-04-24 10:36         ` [dpdk-dev] [PATCH v4 2/8] baseband: introduce NXP LA12xx driver Hemant Agrawal
2021-04-24 10:36         ` [dpdk-dev] [PATCH v4 3/8] baseband/la12xx: add devargs for max queues Hemant Agrawal
2021-04-24 10:36         ` [dpdk-dev] [PATCH v4 4/8] baseband/la12xx: add support for multiple modems Hemant Agrawal
2021-04-24 10:36         ` [dpdk-dev] [PATCH v4 5/8] baseband/la12xx: add queue and modem config support Hemant Agrawal
2021-04-24 22:12           ` Chautru, Nicolas
2021-05-13 11:01             ` Nipun Gupta
2021-05-13 14:51               ` Chautru, Nicolas
2021-05-17 17:00                 ` Nipun Gupta
2021-05-17 17:53                   ` Chautru, Nicolas
2021-05-19 18:43                     ` Nipun Gupta
2021-04-24 10:36         ` [dpdk-dev] [PATCH v4 6/8] baseband/la12xx: add enqueue and dequeue support Hemant Agrawal
2021-04-24 10:36         ` [dpdk-dev] [PATCH v4 7/8] app/bbdev: enable la12xx for bbdev Hemant Agrawal
2021-04-24 10:37         ` [dpdk-dev] [PATCH v4 8/8] app/bbdev: add test vectors for transport blocks Hemant Agrawal
2021-04-24 22:05           ` Chautru, Nicolas
2021-05-05 12:31         ` [dpdk-dev] [EXT] [PATCH v4 0/8] baseband: add NXP LA12xx driver Akhil Goyal
2021-06-16 20:35           ` Akhil Goyal
2021-06-26  9:59             ` Hemant Agrawal
2021-04-13  5:17     ` [dpdk-dev] [PATCH v3 2/8] baseband/la12xx: add devargs for max queues Hemant Agrawal
2021-04-13  5:17     ` [dpdk-dev] [PATCH v3 3/8] baseband/la12xx: add support for multiple modems Hemant Agrawal
2021-04-14  0:02       ` Chautru, Nicolas
2021-04-14 12:10         ` Hemant Agrawal
2021-04-13  5:17     ` [dpdk-dev] [PATCH v3 4/8] baseband/la12xx: add queue and modem config support Hemant Agrawal
2021-04-14  0:41       ` Chautru, Nicolas
2021-04-13  5:17     ` Hemant Agrawal [this message]
2021-04-14  0:53       ` [dpdk-dev] [PATCH v3 5/8] baseband/la12xx: add enqueue and dequeue support Chautru, Nicolas
2021-04-14 12:06         ` Hemant Agrawal
2021-04-13  5:17     ` [dpdk-dev] [PATCH v3 6/8] baseband/la12xx: add documentation support Hemant Agrawal
2021-04-14  0:57       ` Chautru, Nicolas
2021-04-14 11:59         ` Hemant Agrawal
2021-04-13  5:17     ` [dpdk-dev] [PATCH v3 7/8] app/bbdev: add parameter to take input in network order Hemant Agrawal
2021-04-14  1:00       ` Chautru, Nicolas
2021-04-14 12:15         ` Nipun Gupta
2021-04-13  5:17     ` [dpdk-dev] [PATCH v3 8/8] app/bbdev: add test vectors for transport blocks Hemant Agrawal
2021-04-14  1:09       ` Chautru, Nicolas
2021-04-14 12:16         ` Nipun Gupta
2021-04-14 15:48           ` Chautru, Nicolas
2021-04-13 10:06     ` [dpdk-dev] [EXT] [PATCH v3 0/8] baseband: add NXP LA12xx driver Akhil Goyal
2021-09-12 12:15 ` [dpdk-dev] [PATCH v5 0/9] " Nipun Gupta
2021-09-12 12:15   ` [dpdk-dev] [PATCH v5 1/9] bbdev: add big endian processing data capability Nipun Gupta
2021-09-13 18:39     ` Chautru, Nicolas
2021-09-17  8:30       ` Nipun Gupta
2021-09-17 14:23         ` Chautru, Nicolas
2021-09-12 12:15   ` [dpdk-dev] [PATCH v5 2/9] baseband: introduce NXP LA12xx driver Nipun Gupta
2021-09-12 12:15   ` [dpdk-dev] [PATCH v5 3/9] baseband/la12xx: add devargs for max queues Nipun Gupta
2021-09-12 12:15   ` [dpdk-dev] [PATCH v5 4/9] baseband/la12xx: add support for multiple modems Nipun Gupta
2021-09-12 12:15   ` [dpdk-dev] [PATCH v5 5/9] baseband/la12xx: add queue and modem config support Nipun Gupta
2021-09-13 18:56     ` Chautru, Nicolas
2021-09-17  8:33       ` Nipun Gupta
2021-09-12 12:15   ` [dpdk-dev] [PATCH v5 6/9] baseband/la12xx: add enqueue and dequeue support Nipun Gupta
2021-09-12 12:15   ` [dpdk-dev] [PATCH v5 7/9] app/bbdev: enable la12xx for bbdev Nipun Gupta
2021-09-12 12:15   ` [dpdk-dev] [PATCH v5 8/9] app/bbdev: handle endianness of test data Nipun Gupta
2021-09-13 18:45     ` Chautru, Nicolas
2021-09-12 12:15   ` [dpdk-dev] [PATCH v5 9/9] app/bbdev: add test vectors for transport blocks Nipun Gupta
2021-09-13 19:01     ` Chautru, Nicolas
2021-09-17  8:37       ` Nipun Gupta
2021-09-17 14:20         ` Chautru, Nicolas
2021-09-24  4:37 ` [dpdk-dev] [PATCH v6 0/9] baseband: add NXP LA12xx driver nipun.gupta
2021-09-24  4:37   ` [dpdk-dev] [PATCH v6 1/9] bbdev: add big endian processing data processing info nipun.gupta
2021-09-24  4:37   ` [dpdk-dev] [PATCH v6 2/9] baseband: introduce NXP LA12xx driver nipun.gupta
2021-09-24  4:37   ` [dpdk-dev] [PATCH v6 3/9] baseband/la12xx: add devargs for max queues nipun.gupta
2021-09-24  4:37   ` [dpdk-dev] [PATCH v6 4/9] baseband/la12xx: add support for multiple modems nipun.gupta
2021-09-24  4:37   ` [dpdk-dev] [PATCH v6 5/9] baseband/la12xx: add queue and modem config support nipun.gupta
2021-09-24  4:37   ` [dpdk-dev] [PATCH v6 6/9] baseband/la12xx: add enqueue and dequeue support nipun.gupta
2021-09-24  4:37   ` [dpdk-dev] [PATCH v6 7/9] app/bbdev: enable la12xx for bbdev nipun.gupta
2021-09-24  4:37   ` [dpdk-dev] [PATCH v6 8/9] app/bbdev: handle endianness of test data nipun.gupta
2021-09-24  4:37   ` [dpdk-dev] [PATCH v6 9/9] app/bbdev: add test vectors for transport blocks nipun.gupta
2021-09-28  8:29 ` [dpdk-dev] [PATCH v7 0/9] baseband: add NXP LA12xx driver nipun.gupta
2021-09-28  8:29   ` [dpdk-dev] [PATCH v7 1/9] bbdev: add big endian processing data processing info nipun.gupta
2021-10-04 23:09     ` Chautru, Nicolas
2021-09-28  8:29   ` [dpdk-dev] [PATCH v7 2/9] baseband: introduce NXP LA12xx driver nipun.gupta
2021-09-28  8:29   ` [dpdk-dev] [PATCH v7 3/9] baseband/la12xx: add devargs for max queues nipun.gupta
2021-09-28  8:29   ` [dpdk-dev] [PATCH v7 4/9] baseband/la12xx: add support for multiple modems nipun.gupta
2021-09-28  8:29   ` [dpdk-dev] [PATCH v7 5/9] baseband/la12xx: add queue and modem config support nipun.gupta
2021-10-04 23:19     ` Chautru, Nicolas
2021-09-28  8:29   ` [dpdk-dev] [PATCH v7 6/9] baseband/la12xx: add enqueue and dequeue support nipun.gupta
2021-10-04 23:23     ` Chautru, Nicolas
2021-09-28  8:29   ` [dpdk-dev] [PATCH v7 7/9] app/bbdev: enable la12xx for bbdev nipun.gupta
2021-09-28  8:29   ` [dpdk-dev] [PATCH v7 8/9] app/bbdev: handle endianness of test data nipun.gupta
2021-10-04 23:38     ` Chautru, Nicolas
2021-09-28  8:29   ` [dpdk-dev] [PATCH v7 9/9] app/bbdev: add test vectors for transport blocks nipun.gupta
2021-10-04 23:31     ` Chautru, Nicolas
2021-10-06 11:31 ` [dpdk-dev] [PATCH v8 0/8] baseband: add NXP LA12xx driver nipun.gupta
2021-10-06 11:31   ` [dpdk-dev] [PATCH v8 1/8] bbdev: add big endian processing data processing info nipun.gupta
2021-10-06 21:02     ` Chautru, Nicolas
2021-10-06 11:31   ` [dpdk-dev] [PATCH v8 2/8] baseband: introduce NXP LA12xx driver nipun.gupta
2021-10-06 11:31   ` [dpdk-dev] [PATCH v8 3/8] baseband/la12xx: add devargs for max queues nipun.gupta
2021-10-06 11:31   ` [dpdk-dev] [PATCH v8 4/8] baseband/la12xx: add support for multiple modems nipun.gupta
2021-10-06 11:31   ` [dpdk-dev] [PATCH v8 5/8] baseband/la12xx: add queue and modem config support nipun.gupta
2021-10-06 11:31   ` [dpdk-dev] [PATCH v8 6/8] baseband/la12xx: add enqueue and dequeue support nipun.gupta
2021-10-06 11:31   ` [dpdk-dev] [PATCH v8 7/8] app/bbdev: enable la12xx for bbdev nipun.gupta
2021-10-06 11:31   ` [dpdk-dev] [PATCH v8 8/8] app/bbdev: handle endianness of test data nipun.gupta
2021-10-06 20:24     ` Chautru, Nicolas
2021-10-07  9:33 ` [dpdk-dev] [PATCH v9 0/8] baseband: add NXP LA12xx driver nipun.gupta
2021-10-07  9:33   ` [dpdk-dev] [PATCH v9 1/8] bbdev: add device info related to data endianness assumption nipun.gupta
2021-10-07  9:33   ` [dpdk-dev] [PATCH v9 2/8] baseband: introduce NXP LA12xx driver nipun.gupta
2021-10-07  9:33   ` [dpdk-dev] [PATCH v9 3/8] baseband/la12xx: add devargs for max queues nipun.gupta
2021-10-07  9:33   ` [dpdk-dev] [PATCH v9 4/8] baseband/la12xx: add support for multiple modems nipun.gupta
2021-10-07  9:33   ` [dpdk-dev] [PATCH v9 5/8] baseband/la12xx: add queue and modem config support nipun.gupta
2021-10-07  9:33   ` [dpdk-dev] [PATCH v9 6/8] baseband/la12xx: add enqueue and dequeue support nipun.gupta
2021-10-07  9:33   ` [dpdk-dev] [PATCH v9 7/8] app/bbdev: enable la12xx for bbdev nipun.gupta
2021-10-07  9:33   ` [dpdk-dev] [PATCH v9 8/8] app/bbdev: handle endianness of test data nipun.gupta
2021-10-11  4:32 ` [dpdk-dev] [PATCH v10 0/8] baseband: add NXP LA12xx driver nipun.gupta
2021-10-11  4:32   ` [dpdk-dev] [PATCH v10 1/8] bbdev: add device info related to data endianness nipun.gupta
2021-10-11  4:32   ` [dpdk-dev] [PATCH v10 2/8] baseband: introduce NXP LA12xx driver nipun.gupta
2021-10-16 13:58     ` [dpdk-dev] [EXT] " Akhil Goyal
2021-10-11  4:32   ` [dpdk-dev] [PATCH v10 3/8] baseband/la12xx: add devargs for max queues nipun.gupta
2021-10-16 14:00     ` [dpdk-dev] [EXT] " Akhil Goyal
2021-10-11  4:32   ` [dpdk-dev] [PATCH v10 4/8] baseband/la12xx: add support for multiple modems nipun.gupta
2021-10-11  4:32   ` [dpdk-dev] [PATCH v10 5/8] baseband/la12xx: add queue and modem config support nipun.gupta
2021-10-16 14:13     ` [dpdk-dev] [EXT] " Akhil Goyal
2021-10-11  4:32   ` [dpdk-dev] [PATCH v10 6/8] baseband/la12xx: add enqueue and dequeue support nipun.gupta
2021-10-11  4:32   ` [dpdk-dev] [PATCH v10 7/8] app/bbdev: enable la12xx for bbdev nipun.gupta
2021-10-11  4:32   ` [dpdk-dev] [PATCH v10 8/8] app/bbdev: handle endianness of test data nipun.gupta
2021-10-17  6:53 ` [dpdk-dev] [PATCH v11 0/8] baseband: add NXP LA12xx driver nipun.gupta
2021-10-17  6:53   ` [dpdk-dev] [PATCH v11 1/8] bbdev: add device info related to data endianness nipun.gupta
2021-10-17  6:53   ` [dpdk-dev] [PATCH v11 2/8] baseband: introduce NXP LA12xx driver nipun.gupta
2021-10-17  6:53   ` [dpdk-dev] [PATCH v11 3/8] baseband/la12xx: add devargs for max queues nipun.gupta
2021-10-17  6:53   ` [dpdk-dev] [PATCH v11 4/8] baseband/la12xx: add support for multiple modems nipun.gupta
2021-10-17  6:53   ` [dpdk-dev] [PATCH v11 5/8] baseband/la12xx: add queue and modem config support nipun.gupta
2021-10-17  6:53   ` [dpdk-dev] [PATCH v11 6/8] baseband/la12xx: add enqueue and dequeue support nipun.gupta
2021-10-17  6:53   ` [dpdk-dev] [PATCH v11 7/8] app/bbdev: enable la12xx for bbdev nipun.gupta
2021-10-17  6:53   ` [dpdk-dev] [PATCH v11 8/8] app/bbdev: handle endianness of test data nipun.gupta
2021-10-18 15:23   ` [dpdk-dev] [EXT] [PATCH v11 0/8] baseband: add NXP LA12xx driver Akhil Goyal
2021-10-18 18:08     ` Chautru, Nicolas
2021-10-18 18:13       ` Akhil Goyal

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=20210413051715.26430-6-hemant.agrawal@nxp.com \
    --to=hemant.agrawal@nxp.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=gakhil@marvell.com \
    --cc=nicolas.chautru@intel.com \
    --cc=nipun.gupta@nxp.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.