Netdev List
 help / color / mirror / Atom feed
* [PATCH v2 net-next 4/9] net: stmmac: Add descriptor related callbacks for XGMAC2
From: Jose Abreu @ 2018-08-03 14:56 UTC (permalink / raw)
  To: netdev
  Cc: Jose Abreu, David S. Miller, Joao Pinto, Giuseppe Cavallaro,
	Alexandre Torgue
In-Reply-To: <cover.1533307909.git.joabreu@synopsys.com>

Add the descriptor related callbacks for the new IP block XGMAC2.

Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Joao Pinto <jpinto@synopsys.com>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Cc: Alexandre Torgue <alexandre.torgue@st.com>
---
 drivers/net/ethernet/stmicro/stmmac/Makefile       |   3 +-
 drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h     |  30 +++
 .../net/ethernet/stmicro/stmmac/dwxgmac2_descs.c   | 280 +++++++++++++++++++++
 drivers/net/ethernet/stmicro/stmmac/hwif.c         |   2 +-
 drivers/net/ethernet/stmicro/stmmac/hwif.h         |   1 +
 5 files changed, 314 insertions(+), 2 deletions(-)
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c

diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile b/drivers/net/ethernet/stmicro/stmmac/Makefile
index da40d3bba037..99967a80a8c8 100644
--- a/drivers/net/ethernet/stmicro/stmmac/Makefile
+++ b/drivers/net/ethernet/stmicro/stmmac/Makefile
@@ -5,7 +5,8 @@ stmmac-objs:= stmmac_main.o stmmac_ethtool.o stmmac_mdio.o ring_mode.o	\
 	      dwmac100_core.o dwmac100_dma.o enh_desc.o norm_desc.o	\
 	      mmc_core.o stmmac_hwtstamp.o stmmac_ptp.o dwmac4_descs.o	\
 	      dwmac4_dma.o dwmac4_lib.o dwmac4_core.o dwmac5.o hwif.o \
-	      stmmac_tc.o dwxgmac2_core.o dwxgmac2_dma.o $(stmmac-y)
+	      stmmac_tc.o dwxgmac2_core.o dwxgmac2_dma.o dwxgmac2_descs.o \
+	      $(stmmac-y)
 
 # Ordering matters. Generic driver must be last.
 obj-$(CONFIG_STMMAC_PLATFORM)	+= stmmac-platform.o
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
index ddd23f8559df..d090cbb501f2 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
@@ -194,4 +194,34 @@
 #define XGMAC_TPS			BIT(1)
 #define XGMAC_TI			BIT(0)
 
+/* Descriptors */
+#define XGMAC_TDES2_IOC			BIT(31)
+#define XGMAC_TDES2_TTSE		BIT(30)
+#define XGMAC_TDES2_B2L			GENMASK(29, 16)
+#define XGMAC_TDES2_B2L_SHIFT		16
+#define XGMAC_TDES2_B1L			GENMASK(13, 0)
+#define XGMAC_TDES3_OWN			BIT(31)
+#define XGMAC_TDES3_CTXT		BIT(30)
+#define XGMAC_TDES3_FD			BIT(29)
+#define XGMAC_TDES3_LD			BIT(28)
+#define XGMAC_TDES3_CPC			GENMASK(27, 26)
+#define XGMAC_TDES3_CPC_SHIFT		26
+#define XGMAC_TDES3_TCMSSV		BIT(26)
+#define XGMAC_TDES3_THL			GENMASK(22, 19)
+#define XGMAC_TDES3_THL_SHIFT		19
+#define XGMAC_TDES3_TSE			BIT(18)
+#define XGMAC_TDES3_CIC			GENMASK(17, 16)
+#define XGMAC_TDES3_CIC_SHIFT		16
+#define XGMAC_TDES3_TPL			GENMASK(17, 0)
+#define XGMAC_TDES3_FL			GENMASK(14, 0)
+#define XGMAC_RDES3_OWN			BIT(31)
+#define XGMAC_RDES3_CTXT		BIT(30)
+#define XGMAC_RDES3_IOC			BIT(30)
+#define XGMAC_RDES3_LD			BIT(28)
+#define XGMAC_RDES3_CDA			BIT(27)
+#define XGMAC_RDES3_ES			BIT(15)
+#define XGMAC_RDES3_PL			GENMASK(13, 0)
+#define XGMAC_RDES3_TSD			BIT(6)
+#define XGMAC_RDES3_TSA			BIT(4)
+
 #endif /* __STMMAC_DWXGMAC2_H__ */
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
new file mode 100644
index 000000000000..1d858fdec997
--- /dev/null
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
@@ -0,0 +1,280 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2018 Synopsys, Inc. and/or its affiliates.
+ * stmmac XGMAC support.
+ */
+
+#include <linux/stmmac.h>
+#include "common.h"
+#include "dwxgmac2.h"
+
+static int dwxgmac2_get_tx_status(void *data, struct stmmac_extra_stats *x,
+				  struct dma_desc *p, void __iomem *ioaddr)
+{
+	unsigned int tdes3 = le32_to_cpu(p->des3);
+	int ret = tx_done;
+
+	if (unlikely(tdes3 & XGMAC_TDES3_OWN))
+		return tx_dma_own;
+	if (likely(!(tdes3 & XGMAC_TDES3_LD)))
+		return tx_not_ls;
+
+	return ret;
+}
+
+static int dwxgmac2_get_rx_status(void *data, struct stmmac_extra_stats *x,
+				  struct dma_desc *p)
+{
+	unsigned int rdes3 = le32_to_cpu(p->des3);
+	int ret = good_frame;
+
+	if (unlikely(rdes3 & XGMAC_RDES3_OWN))
+		return dma_own;
+	if (likely(!(rdes3 & XGMAC_RDES3_LD)))
+		return discard_frame;
+	if (unlikely(rdes3 & XGMAC_RDES3_ES))
+		ret = discard_frame;
+
+	return ret;
+}
+
+static int dwxgmac2_get_tx_len(struct dma_desc *p)
+{
+	return (le32_to_cpu(p->des2) & XGMAC_TDES2_B1L);
+}
+
+static int dwxgmac2_get_tx_owner(struct dma_desc *p)
+{
+	return (le32_to_cpu(p->des3) & XGMAC_TDES3_OWN) > 0;
+}
+
+static void dwxgmac2_set_tx_owner(struct dma_desc *p)
+{
+	p->des3 |= cpu_to_le32(XGMAC_TDES3_OWN);
+}
+
+static void dwxgmac2_set_rx_owner(struct dma_desc *p, int disable_rx_ic)
+{
+	p->des3 = cpu_to_le32(XGMAC_RDES3_OWN);
+
+	if (!disable_rx_ic)
+		p->des3 |= cpu_to_le32(XGMAC_RDES3_IOC);
+}
+
+static int dwxgmac2_get_tx_ls(struct dma_desc *p)
+{
+	return (le32_to_cpu(p->des3) & XGMAC_RDES3_LD) > 0;
+}
+
+static int dwxgmac2_get_rx_frame_len(struct dma_desc *p, int rx_coe)
+{
+	return (le32_to_cpu(p->des3) & XGMAC_RDES3_PL);
+}
+
+static void dwxgmac2_enable_tx_timestamp(struct dma_desc *p)
+{
+	p->des2 |= cpu_to_le32(XGMAC_TDES2_TTSE);
+}
+
+static int dwxgmac2_get_tx_timestamp_status(struct dma_desc *p)
+{
+	return 0; /* Not supported */
+}
+
+static inline void dwxgmac2_get_timestamp(void *desc, u32 ats, u64 *ts)
+{
+	struct dma_desc *p = (struct dma_desc *)desc;
+	u64 ns = 0;
+
+	ns += le32_to_cpu(p->des1) * 1000000000ULL;
+	ns += le32_to_cpu(p->des0);
+
+	*ts = ns;
+}
+
+static int dwxgmac2_rx_check_timestamp(void *desc)
+{
+	struct dma_desc *p = (struct dma_desc *)desc;
+	unsigned int rdes3 = le32_to_cpu(p->des3);
+	bool desc_valid, ts_valid;
+
+	desc_valid = !(rdes3 & XGMAC_RDES3_OWN) && (rdes3 & XGMAC_RDES3_CTXT);
+	ts_valid = !(rdes3 & XGMAC_RDES3_TSD) && (rdes3 & XGMAC_RDES3_TSA);
+
+	if (likely(desc_valid && ts_valid))
+		return 0;
+	return -EINVAL;
+}
+
+static int dwxgmac2_get_rx_timestamp_status(void *desc, void *next_desc,
+					    u32 ats)
+{
+	struct dma_desc *p = (struct dma_desc *)desc;
+	unsigned int rdes3 = le32_to_cpu(p->des3);
+	int ret = -EBUSY;
+
+	if (likely(rdes3 & XGMAC_RDES3_CDA)) {
+		ret = dwxgmac2_rx_check_timestamp(next_desc);
+		if (ret)
+			return ret;
+	}
+
+	return ret;
+}
+
+static void dwxgmac2_init_rx_desc(struct dma_desc *p, int disable_rx_ic,
+				  int mode, int end)
+{
+	dwxgmac2_set_rx_owner(p, disable_rx_ic);
+}
+
+static void dwxgmac2_init_tx_desc(struct dma_desc *p, int mode, int end)
+{
+	p->des0 = 0;
+	p->des1 = 0;
+	p->des2 = 0;
+	p->des3 = 0;
+}
+
+static void dwxgmac2_prepare_tx_desc(struct dma_desc *p, int is_fs, int len,
+				     bool csum_flag, int mode, bool tx_own,
+				     bool ls, unsigned int tot_pkt_len)
+{
+	unsigned int tdes3 = le32_to_cpu(p->des3);
+
+	p->des2 |= cpu_to_le32(len & XGMAC_TDES2_B1L);
+
+	tdes3 = tot_pkt_len & XGMAC_TDES3_FL;
+	if (is_fs)
+		tdes3 |= XGMAC_TDES3_FD;
+	else
+		tdes3 &= ~XGMAC_TDES3_FD;
+
+	if (csum_flag)
+		tdes3 |= 0x3 << XGMAC_TDES3_CIC_SHIFT;
+	else
+		tdes3 &= ~XGMAC_TDES3_CIC;
+
+	if (ls)
+		tdes3 |= XGMAC_TDES3_LD;
+	else
+		tdes3 &= ~XGMAC_TDES3_LD;
+
+	/* Finally set the OWN bit. Later the DMA will start! */
+	if (tx_own)
+		tdes3 |= XGMAC_TDES3_OWN;
+
+	if (is_fs && tx_own)
+		/* When the own bit, for the first frame, has to be set, all
+		 * descriptors for the same frame has to be set before, to
+		 * avoid race condition.
+		 */
+		dma_wmb();
+
+	p->des3 = cpu_to_le32(tdes3);
+}
+
+static void dwxgmac2_prepare_tso_tx_desc(struct dma_desc *p, int is_fs,
+					 int len1, int len2, bool tx_own,
+					 bool ls, unsigned int tcphdrlen,
+					 unsigned int tcppayloadlen)
+{
+	unsigned int tdes3 = le32_to_cpu(p->des3);
+
+	if (len1)
+		p->des2 |= cpu_to_le32(len1 & XGMAC_TDES2_B1L);
+	if (len2)
+		p->des2 |= cpu_to_le32((len2 << XGMAC_TDES2_B2L_SHIFT) &
+				XGMAC_TDES2_B2L);
+	if (is_fs) {
+		tdes3 |= XGMAC_TDES3_FD | XGMAC_TDES3_TSE;
+		tdes3 |= (tcphdrlen << XGMAC_TDES3_THL_SHIFT) &
+			XGMAC_TDES3_THL;
+		tdes3 |= tcppayloadlen & XGMAC_TDES3_TPL;
+	} else {
+		tdes3 &= ~XGMAC_TDES3_FD;
+	}
+
+	if (ls)
+		tdes3 |= XGMAC_TDES3_LD;
+	else
+		tdes3 &= ~XGMAC_TDES3_LD;
+
+	/* Finally set the OWN bit. Later the DMA will start! */
+	if (tx_own)
+		tdes3 |= XGMAC_TDES3_OWN;
+
+	if (is_fs && tx_own)
+		/* When the own bit, for the first frame, has to be set, all
+		 * descriptors for the same frame has to be set before, to
+		 * avoid race condition.
+		 */
+		dma_wmb();
+
+	p->des3 = cpu_to_le32(tdes3);
+}
+
+static void dwxgmac2_release_tx_desc(struct dma_desc *p, int mode)
+{
+	p->des0 = 0;
+	p->des1 = 0;
+	p->des2 = 0;
+	p->des3 = 0;
+}
+
+static void dwxgmac2_set_tx_ic(struct dma_desc *p)
+{
+	p->des2 |= cpu_to_le32(XGMAC_TDES2_IOC);
+}
+
+static void dwxgmac2_set_mss(struct dma_desc *p, unsigned int mss)
+{
+	p->des0 = 0;
+	p->des1 = 0;
+	p->des2 = cpu_to_le32(mss);
+	p->des3 = cpu_to_le32(XGMAC_TDES3_CTXT | XGMAC_TDES3_TCMSSV);
+}
+
+static void dwxgmac2_get_addr(struct dma_desc *p, unsigned int *addr)
+{
+	*addr = le32_to_cpu(p->des0);
+}
+
+static void dwxgmac2_set_addr(struct dma_desc *p, dma_addr_t addr)
+{
+	p->des0 = cpu_to_le32(addr);
+	p->des1 = 0;
+}
+
+static void dwxgmac2_clear(struct dma_desc *p)
+{
+	p->des0 = 0;
+	p->des1 = 0;
+	p->des2 = 0;
+	p->des3 = 0;
+}
+
+const struct stmmac_desc_ops dwxgmac210_desc_ops = {
+	.tx_status = dwxgmac2_get_tx_status,
+	.rx_status = dwxgmac2_get_rx_status,
+	.get_tx_len = dwxgmac2_get_tx_len,
+	.get_tx_owner = dwxgmac2_get_tx_owner,
+	.set_tx_owner = dwxgmac2_set_tx_owner,
+	.set_rx_owner = dwxgmac2_set_rx_owner,
+	.get_tx_ls = dwxgmac2_get_tx_ls,
+	.get_rx_frame_len = dwxgmac2_get_rx_frame_len,
+	.enable_tx_timestamp = dwxgmac2_enable_tx_timestamp,
+	.get_tx_timestamp_status = dwxgmac2_get_tx_timestamp_status,
+	.get_rx_timestamp_status = dwxgmac2_get_rx_timestamp_status,
+	.get_timestamp = dwxgmac2_get_timestamp,
+	.set_tx_ic = dwxgmac2_set_tx_ic,
+	.prepare_tx_desc = dwxgmac2_prepare_tx_desc,
+	.prepare_tso_tx_desc = dwxgmac2_prepare_tso_tx_desc,
+	.release_tx_desc = dwxgmac2_release_tx_desc,
+	.init_rx_desc = dwxgmac2_init_rx_desc,
+	.init_tx_desc = dwxgmac2_init_tx_desc,
+	.set_mss = dwxgmac2_set_mss,
+	.get_addr = dwxgmac2_get_addr,
+	.set_addr = dwxgmac2_set_addr,
+	.clear = dwxgmac2_clear,
+};
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.c b/drivers/net/ethernet/stmicro/stmmac/hwif.c
index 4030199aee7b..4b4ba1c8bad5 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.c
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.c
@@ -196,7 +196,7 @@ static const struct stmmac_hwif_entry {
 			.ptp_off = 0,
 			.mmc_off = 0,
 		},
-		.desc = NULL,
+		.desc = &dwxgmac210_desc_ops,
 		.dma = &dwxgmac210_dma_ops,
 		.mac = &dwxgmac210_ops,
 		.hwtimestamp = NULL,
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.h b/drivers/net/ethernet/stmicro/stmmac/hwif.h
index 3106eaca60cd..92b8944f26e3 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.h
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.h
@@ -481,6 +481,7 @@ extern const struct stmmac_ops dwmac510_ops;
 extern const struct stmmac_tc_ops dwmac510_tc_ops;
 extern const struct stmmac_ops dwxgmac210_ops;
 extern const struct stmmac_dma_ops dwxgmac210_dma_ops;
+extern const struct stmmac_desc_ops dwxgmac210_desc_ops;
 
 #define GMAC_VERSION		0x00000020	/* GMAC CORE Version */
 #define GMAC4_VERSION		0x00000110	/* GMAC4+ CORE Version */
-- 
2.7.4

^ permalink raw reply related

* [PATCH v2 net-next 3/9] net: stmmac: Add DMA related callbacks for XGMAC2
From: Jose Abreu @ 2018-08-03 14:56 UTC (permalink / raw)
  To: netdev
  Cc: Jose Abreu, David S. Miller, Joao Pinto, Giuseppe Cavallaro,
	Alexandre Torgue
In-Reply-To: <cover.1533307909.git.joabreu@synopsys.com>

Add the DMA related callbacks for the new IP block XGMAC2.

Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Joao Pinto <jpinto@synopsys.com>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Cc: Alexandre Torgue <alexandre.torgue@st.com>
---
 drivers/net/ethernet/stmicro/stmmac/Makefile       |   2 +-
 drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h     |  56 +++
 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c | 410 +++++++++++++++++++++
 drivers/net/ethernet/stmicro/stmmac/hwif.c         |   2 +-
 drivers/net/ethernet/stmicro/stmmac/hwif.h         |   1 +
 5 files changed, 469 insertions(+), 2 deletions(-)
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c

diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile b/drivers/net/ethernet/stmicro/stmmac/Makefile
index a6cf632c9592..da40d3bba037 100644
--- a/drivers/net/ethernet/stmicro/stmmac/Makefile
+++ b/drivers/net/ethernet/stmicro/stmmac/Makefile
@@ -5,7 +5,7 @@ stmmac-objs:= stmmac_main.o stmmac_ethtool.o stmmac_mdio.o ring_mode.o	\
 	      dwmac100_core.o dwmac100_dma.o enh_desc.o norm_desc.o	\
 	      mmc_core.o stmmac_hwtstamp.o stmmac_ptp.o dwmac4_descs.o	\
 	      dwmac4_dma.o dwmac4_lib.o dwmac4_core.o dwmac5.o hwif.o \
-	      stmmac_tc.o dwxgmac2_core.o $(stmmac-y)
+	      stmmac_tc.o dwxgmac2_core.o dwxgmac2_dma.o $(stmmac-y)
 
 # Ordering matters. Generic driver must be last.
 obj-$(CONFIG_STMMAC_PLATFORM)	+= stmmac-platform.o
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
index 7832571f791f..ddd23f8559df 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
@@ -138,4 +138,60 @@
 #define XGMAC_ABPSIS			BIT(1)
 #define XGMAC_TXUNFIS			BIT(0)
 
+/* DMA Registers */
+#define XGMAC_DMA_MODE			0x00003000
+#define XGMAC_SWR			BIT(0)
+#define XGMAC_DMA_SYSBUS_MODE		0x00003004
+#define XGMAC_WR_OSR_LMT		GENMASK(29, 24)
+#define XGMAC_WR_OSR_LMT_SHIFT		24
+#define XGMAC_RD_OSR_LMT		GENMASK(21, 16)
+#define XGMAC_RD_OSR_LMT_SHIFT		16
+#define XGMAC_EN_LPI			BIT(15)
+#define XGMAC_LPI_XIT_PKT		BIT(14)
+#define XGMAC_AAL			BIT(12)
+#define XGMAC_BLEN256			BIT(7)
+#define XGMAC_BLEN128			BIT(6)
+#define XGMAC_BLEN64			BIT(5)
+#define XGMAC_BLEN32			BIT(4)
+#define XGMAC_BLEN16			BIT(3)
+#define XGMAC_BLEN8			BIT(2)
+#define XGMAC_BLEN4			BIT(1)
+#define XGMAC_UNDEF			BIT(0)
+#define XGMAC_DMA_CH_CONTROL(x)		(0x00003100 + (0x80 * (x)))
+#define XGMAC_PBLx8			BIT(16)
+#define XGMAC_DMA_CH_TX_CONTROL(x)	(0x00003104 + (0x80 * (x)))
+#define XGMAC_TxPBL			GENMASK(21, 16)
+#define XGMAC_TxPBL_SHIFT		16
+#define XGMAC_TSE			BIT(12)
+#define XGMAC_OSP			BIT(4)
+#define XGMAC_TXST			BIT(0)
+#define XGMAC_DMA_CH_RX_CONTROL(x)	(0x00003108 + (0x80 * (x)))
+#define XGMAC_RxPBL			GENMASK(21, 16)
+#define XGMAC_RxPBL_SHIFT		16
+#define XGMAC_RXST			BIT(0)
+#define XGMAC_DMA_CH_TxDESC_LADDR(x)	(0x00003114 + (0x80 * (x)))
+#define XGMAC_DMA_CH_RxDESC_LADDR(x)	(0x0000311c + (0x80 * (x)))
+#define XGMAC_DMA_CH_TxDESC_TAIL_LPTR(x)	(0x00003124 + (0x80 * (x)))
+#define XGMAC_DMA_CH_RxDESC_TAIL_LPTR(x)	(0x0000312c + (0x80 * (x)))
+#define XGMAC_DMA_CH_TxDESC_RING_LEN(x)		(0x00003130 + (0x80 * (x)))
+#define XGMAC_DMA_CH_RxDESC_RING_LEN(x)		(0x00003134 + (0x80 * (x)))
+#define XGMAC_DMA_CH_INT_EN(x)		(0x00003138 + (0x80 * (x)))
+#define XGMAC_NIE			BIT(15)
+#define XGMAC_AIE			BIT(14)
+#define XGMAC_RBUE			BIT(7)
+#define XGMAC_RIE			BIT(6)
+#define XGMAC_TIE			BIT(0)
+#define XGMAC_DMA_INT_DEFAULT_EN	(XGMAC_NIE | XGMAC_AIE | XGMAC_RBUE | \
+					XGMAC_RIE | XGMAC_TIE)
+#define XGMAC_DMA_CH_Rx_WATCHDOG(x)	(0x0000313c + (0x80 * (x)))
+#define XGMAC_RWT			GENMASK(7, 0)
+#define XGMAC_DMA_CH_STATUS(x)		(0x00003160 + (0x80 * (x)))
+#define XGMAC_NIS			BIT(15)
+#define XGMAC_AIS			BIT(14)
+#define XGMAC_FBE			BIT(12)
+#define XGMAC_RBU			BIT(7)
+#define XGMAC_RI			BIT(6)
+#define XGMAC_TPS			BIT(1)
+#define XGMAC_TI			BIT(0)
+
 #endif /* __STMMAC_DWXGMAC2_H__ */
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
new file mode 100644
index 000000000000..50d9fffc32b5
--- /dev/null
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
@@ -0,0 +1,410 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2018 Synopsys, Inc. and/or its affiliates.
+ * stmmac XGMAC support.
+ */
+
+#include <linux/iopoll.h>
+#include "stmmac.h"
+#include "dwxgmac2.h"
+
+static int dwxgmac2_dma_reset(void __iomem *ioaddr)
+{
+	u32 value = readl(ioaddr + XGMAC_DMA_MODE);
+
+	/* DMA SW reset */
+	writel(value | XGMAC_SWR, ioaddr + XGMAC_DMA_MODE);
+
+	return readl_poll_timeout(ioaddr + XGMAC_DMA_MODE, value,
+				  !(value & XGMAC_SWR), 0, 100000);
+}
+
+static void dwxgmac2_dma_init(void __iomem *ioaddr,
+			      struct stmmac_dma_cfg *dma_cfg, int atds)
+{
+	u32 value = readl(ioaddr + XGMAC_DMA_SYSBUS_MODE);
+
+	if (dma_cfg->aal)
+		value |= XGMAC_AAL;
+
+	writel(value, ioaddr + XGMAC_DMA_SYSBUS_MODE);
+}
+
+static void dwxgmac2_dma_init_chan(void __iomem *ioaddr,
+				   struct stmmac_dma_cfg *dma_cfg, u32 chan)
+{
+	u32 value = readl(ioaddr + XGMAC_DMA_CH_CONTROL(chan));
+
+	if (dma_cfg->pblx8)
+		value |= XGMAC_PBLx8;
+
+	writel(value, ioaddr + XGMAC_DMA_CH_CONTROL(chan));
+	writel(XGMAC_DMA_INT_DEFAULT_EN, ioaddr + XGMAC_DMA_CH_INT_EN(chan));
+}
+
+static void dwxgmac2_dma_init_rx_chan(void __iomem *ioaddr,
+				      struct stmmac_dma_cfg *dma_cfg,
+				      u32 dma_rx_phy, u32 chan)
+{
+	u32 rxpbl = dma_cfg->rxpbl ?: dma_cfg->pbl;
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
+	value &= ~XGMAC_RxPBL;
+	value |= (rxpbl << XGMAC_RxPBL_SHIFT) & XGMAC_RxPBL;
+	writel(value, ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
+
+	writel(dma_rx_phy, ioaddr + XGMAC_DMA_CH_RxDESC_LADDR(chan));
+}
+
+static void dwxgmac2_dma_init_tx_chan(void __iomem *ioaddr,
+				      struct stmmac_dma_cfg *dma_cfg,
+				      u32 dma_tx_phy, u32 chan)
+{
+	u32 txpbl = dma_cfg->txpbl ?: dma_cfg->pbl;
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
+	value &= ~XGMAC_TxPBL;
+	value |= (txpbl << XGMAC_TxPBL_SHIFT) & XGMAC_TxPBL;
+	value |= XGMAC_OSP;
+	writel(value, ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
+
+	writel(dma_tx_phy, ioaddr + XGMAC_DMA_CH_TxDESC_LADDR(chan));
+}
+
+static void dwxgmac2_dma_axi(void __iomem *ioaddr, struct stmmac_axi *axi)
+{
+	u32 value = readl(ioaddr + XGMAC_DMA_SYSBUS_MODE);
+	int i;
+
+	if (axi->axi_lpi_en)
+		value |= XGMAC_EN_LPI;
+	if (axi->axi_xit_frm)
+		value |= XGMAC_LPI_XIT_PKT;
+
+	value &= ~XGMAC_WR_OSR_LMT;
+	value |= (axi->axi_wr_osr_lmt << XGMAC_WR_OSR_LMT_SHIFT) &
+		XGMAC_WR_OSR_LMT;
+
+	value &= ~XGMAC_RD_OSR_LMT;
+	value |= (axi->axi_rd_osr_lmt << XGMAC_RD_OSR_LMT_SHIFT) &
+		XGMAC_RD_OSR_LMT;
+
+	for (i = 0; i < AXI_BLEN; i++) {
+		if (axi->axi_blen[i])
+			value &= ~XGMAC_UNDEF;
+
+		switch (axi->axi_blen[i]) {
+		case 256:
+			value |= XGMAC_BLEN256;
+			break;
+		case 128:
+			value |= XGMAC_BLEN128;
+			break;
+		case 64:
+			value |= XGMAC_BLEN64;
+			break;
+		case 32:
+			value |= XGMAC_BLEN32;
+			break;
+		case 16:
+			value |= XGMAC_BLEN16;
+			break;
+		case 8:
+			value |= XGMAC_BLEN8;
+			break;
+		case 4:
+			value |= XGMAC_BLEN4;
+			break;
+		}
+	}
+
+	writel(value, ioaddr + XGMAC_DMA_SYSBUS_MODE);
+}
+
+static void dwxgmac2_dma_rx_mode(void __iomem *ioaddr, int mode,
+				 u32 channel, int fifosz, u8 qmode)
+{
+	u32 value = readl(ioaddr + XGMAC_MTL_RXQ_OPMODE(channel));
+	unsigned int rqs = fifosz / 256 - 1;
+
+	if (mode == SF_DMA_MODE) {
+		value |= XGMAC_RSF;
+	} else {
+		value &= ~XGMAC_RSF;
+		value &= ~XGMAC_RTC;
+
+		if (mode <= 64)
+			value |= 0x0 << XGMAC_RTC_SHIFT;
+		else if (mode <= 96)
+			value |= 0x2 << XGMAC_RTC_SHIFT;
+		else
+			value |= 0x3 << XGMAC_RTC_SHIFT;
+	}
+
+	value &= ~XGMAC_RQS;
+	value |= (rqs << XGMAC_RQS_SHIFT) & XGMAC_RQS;
+
+	writel(value, ioaddr + XGMAC_MTL_RXQ_OPMODE(channel));
+
+	/* Enable MTL RX overflow */
+	value = readl(ioaddr + XGMAC_MTL_QINTEN(channel));
+	writel(value | XGMAC_RXOIE, ioaddr + XGMAC_MTL_QINTEN(channel));
+}
+
+static void dwxgmac2_dma_tx_mode(void __iomem *ioaddr, int mode,
+				 u32 channel, int fifosz, u8 qmode)
+{
+	u32 value = readl(ioaddr + XGMAC_MTL_TXQ_OPMODE(channel));
+	unsigned int tqs = fifosz / 256 - 1;
+
+	if (mode == SF_DMA_MODE) {
+		value |= XGMAC_TSF;
+	} else {
+		value &= ~XGMAC_TSF;
+		value &= ~XGMAC_TTC;
+
+		if (mode <= 64)
+			value |= 0x0 << XGMAC_TTC_SHIFT;
+		else if (mode <= 96)
+			value |= 0x2 << XGMAC_TTC_SHIFT;
+		else if (mode <= 128)
+			value |= 0x3 << XGMAC_TTC_SHIFT;
+		else if (mode <= 192)
+			value |= 0x4 << XGMAC_TTC_SHIFT;
+		else if (mode <= 256)
+			value |= 0x5 << XGMAC_TTC_SHIFT;
+		else if (mode <= 384)
+			value |= 0x6 << XGMAC_TTC_SHIFT;
+		else
+			value |= 0x7 << XGMAC_TTC_SHIFT;
+	}
+
+	value &= ~XGMAC_TXQEN;
+	if (qmode != MTL_QUEUE_AVB)
+		value |= 0x2 << XGMAC_TXQEN_SHIFT;
+	else
+		value |= 0x1 << XGMAC_TXQEN_SHIFT;
+
+	value &= ~XGMAC_TQS;
+	value |= (tqs << XGMAC_TQS_SHIFT) & XGMAC_TQS;
+
+	writel(value, ioaddr +  XGMAC_MTL_TXQ_OPMODE(channel));
+}
+
+static void dwxgmac2_enable_dma_irq(void __iomem *ioaddr, u32 chan)
+{
+	writel(XGMAC_DMA_INT_DEFAULT_EN, ioaddr + XGMAC_DMA_CH_INT_EN(chan));
+}
+
+static void dwxgmac2_disable_dma_irq(void __iomem *ioaddr, u32 chan)
+{
+	writel(0, ioaddr + XGMAC_DMA_CH_INT_EN(chan));
+}
+
+static void dwxgmac2_dma_start_tx(void __iomem *ioaddr, u32 chan)
+{
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
+	value |= XGMAC_TXST;
+	writel(value, ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
+
+	value = readl(ioaddr + XGMAC_TX_CONFIG);
+	value |= XGMAC_CONFIG_TE;
+	writel(value, ioaddr + XGMAC_TX_CONFIG);
+}
+
+static void dwxgmac2_dma_stop_tx(void __iomem *ioaddr, u32 chan)
+{
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
+	value &= ~XGMAC_TXST;
+	writel(value, ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
+
+	value = readl(ioaddr + XGMAC_TX_CONFIG);
+	value &= ~XGMAC_CONFIG_TE;
+	writel(value, ioaddr + XGMAC_TX_CONFIG);
+}
+
+static void dwxgmac2_dma_start_rx(void __iomem *ioaddr, u32 chan)
+{
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
+	value |= XGMAC_RXST;
+	writel(value, ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
+
+	value = readl(ioaddr + XGMAC_RX_CONFIG);
+	value |= XGMAC_CONFIG_RE;
+	writel(value, ioaddr + XGMAC_RX_CONFIG);
+}
+
+static void dwxgmac2_dma_stop_rx(void __iomem *ioaddr, u32 chan)
+{
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
+	value &= ~XGMAC_RXST;
+	writel(value, ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
+
+	value = readl(ioaddr + XGMAC_RX_CONFIG);
+	value &= ~XGMAC_CONFIG_RE;
+	writel(value, ioaddr + XGMAC_RX_CONFIG);
+}
+
+static int dwxgmac2_dma_interrupt(void __iomem *ioaddr,
+				  struct stmmac_extra_stats *x, u32 chan)
+{
+	u32 intr_status = readl(ioaddr + XGMAC_DMA_CH_STATUS(chan));
+	int ret = 0;
+
+	/* ABNORMAL interrupts */
+	if (unlikely(intr_status & XGMAC_AIS)) {
+		if (unlikely(intr_status & XGMAC_TPS)) {
+			x->tx_process_stopped_irq++;
+			ret |= tx_hard_error;
+		}
+		if (unlikely(intr_status & XGMAC_FBE)) {
+			x->fatal_bus_error_irq++;
+			ret |= tx_hard_error;
+		}
+	}
+
+	/* TX/RX NORMAL interrupts */
+	if (likely(intr_status & XGMAC_NIS)) {
+		x->normal_irq_n++;
+
+		if (likely(intr_status & XGMAC_RI)) {
+			u32 value = readl(ioaddr + XGMAC_DMA_CH_INT_EN(chan));
+			if (likely(value & XGMAC_RIE)) {
+				x->rx_normal_irq_n++;
+				ret |= handle_rx;
+			}
+		}
+		if (likely(intr_status & XGMAC_TI)) {
+			x->tx_normal_irq_n++;
+			ret |= handle_tx;
+		}
+	}
+
+	/* Clear interrupts */
+	writel(~0x0, ioaddr + XGMAC_DMA_CH_STATUS(chan));
+
+	return ret;
+}
+
+static void dwxgmac2_get_hw_feature(void __iomem *ioaddr,
+				    struct dma_features *dma_cap)
+{
+	u32 hw_cap;
+
+	/*  MAC HW feature 0 */
+	hw_cap = readl(ioaddr + XGMAC_HW_FEATURE0);
+	dma_cap->rx_coe = (hw_cap & XGMAC_HWFEAT_RXCOESEL) >> 16;
+	dma_cap->tx_coe = (hw_cap & XGMAC_HWFEAT_TXCOESEL) >> 14;
+	dma_cap->atime_stamp = (hw_cap & XGMAC_HWFEAT_TSSEL) >> 12;
+	dma_cap->av = (hw_cap & XGMAC_HWFEAT_AVSEL) >> 11;
+	dma_cap->av &= (hw_cap & XGMAC_HWFEAT_RAVSEL) >> 10;
+	dma_cap->pmt_magic_frame = (hw_cap & XGMAC_HWFEAT_MGKSEL) >> 7;
+	dma_cap->pmt_remote_wake_up = (hw_cap & XGMAC_HWFEAT_RWKSEL) >> 6;
+	dma_cap->mbps_1000 = (hw_cap & XGMAC_HWFEAT_GMIISEL) >> 1;
+
+	/* MAC HW feature 1 */
+	hw_cap = readl(ioaddr + XGMAC_HW_FEATURE1);
+	dma_cap->tsoen = (hw_cap & XGMAC_HWFEAT_TSOEN) >> 18;
+	dma_cap->tx_fifo_size =
+		128 << ((hw_cap & XGMAC_HWFEAT_TXFIFOSIZE) >> 6);
+	dma_cap->rx_fifo_size =
+		128 << ((hw_cap & XGMAC_HWFEAT_RXFIFOSIZE) >> 0);
+
+	/* MAC HW feature 2 */
+	hw_cap = readl(ioaddr + XGMAC_HW_FEATURE2);
+	dma_cap->pps_out_num = (hw_cap & XGMAC_HWFEAT_PPSOUTNUM) >> 24;
+	dma_cap->number_tx_channel =
+		((hw_cap & XGMAC_HWFEAT_TXCHCNT) >> 18) + 1;
+	dma_cap->number_rx_channel =
+		((hw_cap & XGMAC_HWFEAT_RXCHCNT) >> 12) + 1;
+	dma_cap->number_tx_queues =
+		((hw_cap & XGMAC_HWFEAT_TXQCNT) >> 6) + 1;
+	dma_cap->number_rx_queues =
+		((hw_cap & XGMAC_HWFEAT_RXQCNT) >> 0) + 1;
+}
+
+static void dwxgmac2_rx_watchdog(void __iomem *ioaddr, u32 riwt, u32 nchan)
+{
+	u32 i;
+
+	for (i = 0; i < nchan; i++)
+		writel(riwt & XGMAC_RWT, ioaddr + XGMAC_DMA_CH_Rx_WATCHDOG(i));
+}
+
+static void dwxgmac2_set_rx_ring_len(void __iomem *ioaddr, u32 len, u32 chan)
+{
+	writel(len, ioaddr + XGMAC_DMA_CH_RxDESC_RING_LEN(chan));
+}
+
+static void dwxgmac2_set_tx_ring_len(void __iomem *ioaddr, u32 len, u32 chan)
+{
+	writel(len, ioaddr + XGMAC_DMA_CH_TxDESC_RING_LEN(chan));
+}
+
+static void dwxgmac2_set_rx_tail_ptr(void __iomem *ioaddr, u32 ptr, u32 chan)
+{
+	writel(ptr, ioaddr + XGMAC_DMA_CH_RxDESC_TAIL_LPTR(chan));
+}
+
+static void dwxgmac2_set_tx_tail_ptr(void __iomem *ioaddr, u32 ptr, u32 chan)
+{
+	writel(ptr, ioaddr + XGMAC_DMA_CH_TxDESC_TAIL_LPTR(chan));
+}
+
+static void dwxgmac2_enable_tso(void __iomem *ioaddr, bool en, u32 chan)
+{
+	u32 value = readl(ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
+
+	if (en)
+		value |= XGMAC_TSE;
+	else 
+		value &= ~XGMAC_TSE;
+
+	writel(value, ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
+}
+
+static void dwxgmac2_set_bfsize(void __iomem *ioaddr, int bfsize, u32 chan)
+{
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
+	value |= bfsize << 1;
+	writel(value, ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
+}
+
+const struct stmmac_dma_ops dwxgmac210_dma_ops = {
+	.reset = dwxgmac2_dma_reset,
+	.init = dwxgmac2_dma_init,
+	.init_chan = dwxgmac2_dma_init_chan,
+	.init_rx_chan = dwxgmac2_dma_init_rx_chan,
+	.init_tx_chan = dwxgmac2_dma_init_tx_chan,
+	.axi = dwxgmac2_dma_axi,
+	.dump_regs = NULL,
+	.dma_rx_mode = dwxgmac2_dma_rx_mode,
+	.dma_tx_mode = dwxgmac2_dma_tx_mode,
+	.enable_dma_irq = dwxgmac2_enable_dma_irq,
+	.disable_dma_irq = dwxgmac2_disable_dma_irq,
+	.start_tx = dwxgmac2_dma_start_tx,
+	.stop_tx = dwxgmac2_dma_stop_tx,
+	.start_rx = dwxgmac2_dma_start_rx,
+	.stop_rx = dwxgmac2_dma_stop_rx,
+	.dma_interrupt = dwxgmac2_dma_interrupt,
+	.get_hw_feature = dwxgmac2_get_hw_feature,
+	.rx_watchdog = dwxgmac2_rx_watchdog,
+	.set_rx_ring_len = dwxgmac2_set_rx_ring_len,
+	.set_tx_ring_len = dwxgmac2_set_tx_ring_len,
+	.set_rx_tail_ptr = dwxgmac2_set_rx_tail_ptr,
+	.set_tx_tail_ptr = dwxgmac2_set_tx_tail_ptr,
+	.enable_tso = dwxgmac2_enable_tso,
+	.set_bfsize = dwxgmac2_set_bfsize,
+};
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.c b/drivers/net/ethernet/stmicro/stmmac/hwif.c
index 4fa46f064720..4030199aee7b 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.c
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.c
@@ -197,7 +197,7 @@ static const struct stmmac_hwif_entry {
 			.mmc_off = 0,
 		},
 		.desc = NULL,
-		.dma = NULL,
+		.dma = &dwxgmac210_dma_ops,
 		.mac = &dwxgmac210_ops,
 		.hwtimestamp = NULL,
 		.mode = NULL,
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.h b/drivers/net/ethernet/stmicro/stmmac/hwif.h
index ff0fd6978260..3106eaca60cd 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.h
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.h
@@ -480,6 +480,7 @@ extern const struct stmmac_dma_ops dwmac410_dma_ops;
 extern const struct stmmac_ops dwmac510_ops;
 extern const struct stmmac_tc_ops dwmac510_tc_ops;
 extern const struct stmmac_ops dwxgmac210_ops;
+extern const struct stmmac_dma_ops dwxgmac210_dma_ops;
 
 #define GMAC_VERSION		0x00000020	/* GMAC CORE Version */
 #define GMAC4_VERSION		0x00000110	/* GMAC4+ CORE Version */
-- 
2.7.4

^ permalink raw reply related

* [PATCH v2 net-next 2/9] net: stmmac: Add MAC related callbacks for XGMAC2
From: Jose Abreu @ 2018-08-03 14:56 UTC (permalink / raw)
  To: netdev
  Cc: Jose Abreu, David S. Miller, Joao Pinto, Giuseppe Cavallaro,
	Alexandre Torgue
In-Reply-To: <cover.1533307909.git.joabreu@synopsys.com>

Add the MAC related callbacks for the new IP block XGMAC2.

Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Joao Pinto <jpinto@synopsys.com>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Cc: Alexandre Torgue <alexandre.torgue@st.com>
---
 drivers/net/ethernet/stmicro/stmmac/Makefile       |   2 +-
 drivers/net/ethernet/stmicro/stmmac/common.h       |   3 +
 drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h     | 141 ++++++++
 .../net/ethernet/stmicro/stmmac/dwxgmac2_core.c    | 371 +++++++++++++++++++++
 drivers/net/ethernet/stmicro/stmmac/hwif.c         |   4 +-
 drivers/net/ethernet/stmicro/stmmac/hwif.h         |   1 +
 6 files changed, 519 insertions(+), 3 deletions(-)
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c

diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile b/drivers/net/ethernet/stmicro/stmmac/Makefile
index 68e9e2640c62..a6cf632c9592 100644
--- a/drivers/net/ethernet/stmicro/stmmac/Makefile
+++ b/drivers/net/ethernet/stmicro/stmmac/Makefile
@@ -5,7 +5,7 @@ stmmac-objs:= stmmac_main.o stmmac_ethtool.o stmmac_mdio.o ring_mode.o	\
 	      dwmac100_core.o dwmac100_dma.o enh_desc.o norm_desc.o	\
 	      mmc_core.o stmmac_hwtstamp.o stmmac_ptp.o dwmac4_descs.o	\
 	      dwmac4_dma.o dwmac4_lib.o dwmac4_core.o dwmac5.o hwif.o \
-	      stmmac_tc.o $(stmmac-y)
+	      stmmac_tc.o dwxgmac2_core.o $(stmmac-y)
 
 # Ordering matters. Generic driver must be last.
 obj-$(CONFIG_STMMAC_PLATFORM)	+= stmmac-platform.o
diff --git a/drivers/net/ethernet/stmicro/stmmac/common.h b/drivers/net/ethernet/stmicro/stmmac/common.h
index 3fb81acbd274..1854f270ad66 100644
--- a/drivers/net/ethernet/stmicro/stmmac/common.h
+++ b/drivers/net/ethernet/stmicro/stmmac/common.h
@@ -400,6 +400,8 @@ struct mac_link {
 	u32 speed10;
 	u32 speed100;
 	u32 speed1000;
+	u32 speed2500;
+	u32 speed10000;
 	u32 duplex;
 };
 
@@ -441,6 +443,7 @@ struct stmmac_rx_routing {
 int dwmac100_setup(struct stmmac_priv *priv);
 int dwmac1000_setup(struct stmmac_priv *priv);
 int dwmac4_setup(struct stmmac_priv *priv);
+int dwxgmac2_setup(struct stmmac_priv *priv);
 
 void stmmac_set_mac_addr(void __iomem *ioaddr, u8 addr[6],
 			 unsigned int high, unsigned int low);
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
new file mode 100644
index 000000000000..7832571f791f
--- /dev/null
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
@@ -0,0 +1,141 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2018 Synopsys, Inc. and/or its affiliates.
+ * stmmac XGMAC definitions.
+ */
+
+#ifndef __STMMAC_DWXGMAC2_H__
+#define __STMMAC_DWXGMAC2_H__
+
+#include "common.h"
+
+/* Misc */
+#define XGMAC_JUMBO_LEN			16368
+
+/* MAC Registers */
+#define XGMAC_TX_CONFIG			0x00000000
+#define XGMAC_CONFIG_SS_OFF		29
+#define XGMAC_CONFIG_SS_MASK		GENMASK(30, 29)
+#define XGMAC_CONFIG_SS_10000		(0x0 << XGMAC_CONFIG_SS_OFF)
+#define XGMAC_CONFIG_SS_2500		(0x2 << XGMAC_CONFIG_SS_OFF)
+#define XGMAC_CONFIG_SS_1000		(0x3 << XGMAC_CONFIG_SS_OFF)
+#define XGMAC_CONFIG_SARC		GENMASK(22, 20)
+#define XGMAC_CONFIG_SARC_SHIFT		20
+#define XGMAC_CONFIG_JD			BIT(16)
+#define XGMAC_CONFIG_TE			BIT(0)
+#define XGMAC_CORE_INIT_TX		(XGMAC_CONFIG_JD)
+#define XGMAC_RX_CONFIG			0x00000004
+#define XGMAC_CONFIG_ARPEN		BIT(31)
+#define XGMAC_CONFIG_GPSL		GENMASK(29, 16)
+#define XGMAC_CONFIG_GPSL_SHIFT		16
+#define XGMAC_CONFIG_S2KP		BIT(11)
+#define XGMAC_CONFIG_IPC		BIT(9)
+#define XGMAC_CONFIG_JE			BIT(8)
+#define XGMAC_CONFIG_WD			BIT(7)
+#define XGMAC_CONFIG_GPSLCE		BIT(6)
+#define XGMAC_CONFIG_CST		BIT(2)
+#define XGMAC_CONFIG_ACS		BIT(1)
+#define XGMAC_CONFIG_RE			BIT(0)
+#define XGMAC_CORE_INIT_RX		0
+#define XGMAC_PACKET_FILTER		0x00000008
+#define XGMAC_FILTER_RA			BIT(31)
+#define XGMAC_FILTER_PM			BIT(4)
+#define XGMAC_FILTER_HMC		BIT(2)
+#define XGMAC_FILTER_PR			BIT(0)
+#define XGMAC_HASH_TABLE(x)		(0x00000010 + (x) * 4)
+#define XGMAC_RXQ_CTRL0			0x000000a0
+#define XGMAC_RXQEN(x)			GENMASK((x) * 2 + 1, (x) * 2)
+#define XGMAC_RXQEN_SHIFT(x)		((x) * 2)
+#define XGMAC_RXQ_CTRL2			0x000000a8
+#define XGMAC_RXQ_CTRL3			0x000000ac
+#define XGMAC_PSRQ(x)			GENMASK((x) * 8 + 7, (x) * 8)
+#define XGMAC_PSRQ_SHIFT(x)		((x) * 8)
+#define XGMAC_INT_STATUS		0x000000b0
+#define XGMAC_PMTIS			BIT(4)
+#define XGMAC_INT_EN			0x000000b4
+#define XGMAC_TSIE			BIT(12)
+#define XGMAC_LPIIE			BIT(5)
+#define XGMAC_PMTIE			BIT(4)
+#define XGMAC_INT_DEFAULT_EN		(XGMAC_LPIIE | XGMAC_PMTIE | XGMAC_TSIE)
+#define XGMAC_Qx_TX_FLOW_CTRL(x)	(0x00000070 + (x) * 4)
+#define XGMAC_PT			GENMASK(31, 16)
+#define XGMAC_PT_SHIFT			16
+#define XGMAC_TFE			BIT(1)
+#define XGMAC_RX_FLOW_CTRL		0x00000090
+#define XGMAC_RFE			BIT(0)
+#define XGMAC_PMT			0x000000c0
+#define XGMAC_GLBLUCAST			BIT(9)
+#define XGMAC_RWKPKTEN			BIT(2)
+#define XGMAC_MGKPKTEN			BIT(1)
+#define XGMAC_PWRDWN			BIT(0)
+#define XGMAC_HW_FEATURE0		0x0000011c
+#define XGMAC_HWFEAT_SAVLANINS		BIT(27)
+#define XGMAC_HWFEAT_RXCOESEL		BIT(16)
+#define XGMAC_HWFEAT_TXCOESEL		BIT(14)
+#define XGMAC_HWFEAT_TSSEL		BIT(12)
+#define XGMAC_HWFEAT_AVSEL		BIT(11)
+#define XGMAC_HWFEAT_RAVSEL		BIT(10)
+#define XGMAC_HWFEAT_ARPOFFSEL		BIT(9)
+#define XGMAC_HWFEAT_MGKSEL		BIT(7)
+#define XGMAC_HWFEAT_RWKSEL		BIT(6)
+#define XGMAC_HWFEAT_GMIISEL		BIT(1)
+#define XGMAC_HW_FEATURE1		0x00000120
+#define XGMAC_HWFEAT_TSOEN		BIT(18)
+#define XGMAC_HWFEAT_TXFIFOSIZE		GENMASK(10, 6)
+#define XGMAC_HWFEAT_RXFIFOSIZE		GENMASK(4, 0)
+#define XGMAC_HW_FEATURE2		0x00000124
+#define XGMAC_HWFEAT_PPSOUTNUM		GENMASK(26, 24)
+#define XGMAC_HWFEAT_TXCHCNT		GENMASK(21, 18)
+#define XGMAC_HWFEAT_RXCHCNT		GENMASK(15, 12)
+#define XGMAC_HWFEAT_TXQCNT		GENMASK(9, 6)
+#define XGMAC_HWFEAT_RXQCNT		GENMASK(3, 0)
+#define XGMAC_MDIO_ADDR			0x00000200
+#define XGMAC_MDIO_DATA			0x00000204
+#define XGMAC_MDIO_C22P			0x00000220
+#define XGMAC_ADDR0_HIGH		0x00000300
+#define XGMAC_AE			BIT(31)
+#define XGMAC_DCS			GENMASK(19, 16)
+#define XGMAC_DCS_SHIFT			16
+#define XGMAC_ADDR0_LOW			0x00000304
+#define XGMAC_ARP_ADDR			0x00000c10
+#define XGMAC_TIMESTAMP_STATUS		0x00000d20
+#define XGMAC_TXTSC			BIT(15)
+#define XGMAC_TXTIMESTAMP_NSEC		0x00000d30
+#define XGMAC_TXTSSTSLO			GENMASK(30, 0)
+#define XGMAC_TXTIMESTAMP_SEC		0x00000d34
+
+/* MTL Registers */
+#define XGMAC_MTL_OPMODE		0x00001000
+#define XGMAC_ETSALG			GENMASK(6, 5)
+#define XGMAC_WRR			(0x0 << 5)
+#define XGMAC_WFQ			(0x1 << 5)
+#define XGMAC_DWRR			(0x2 << 5)
+#define XGMAC_RAA			BIT(2)
+#define XGMAC_MTL_INT_STATUS		0x00001020
+#define XGMAC_MTL_RXQ_DMA_MAP0		0x00001030
+#define XGMAC_MTL_RXQ_DMA_MAP1		0x00001034
+#define XGMAC_QxMDMACH(x)		GENMASK((x) * 8 + 3, (x) * 8)
+#define XGMAC_QxMDMACH_SHIFT(x)		((x) * 8)
+#define XGMAC_MTL_TXQ_OPMODE(x)		(0x00001100 + (0x80 * (x)))
+#define XGMAC_TQS			GENMASK(25, 16)
+#define XGMAC_TQS_SHIFT			16
+#define XGMAC_TTC			GENMASK(6, 4)
+#define XGMAC_TTC_SHIFT			4
+#define XGMAC_TXQEN			GENMASK(3, 2)
+#define XGMAC_TXQEN_SHIFT		2
+#define XGMAC_TSF			BIT(1)
+#define XGMAC_MTL_RXQ_OPMODE(x)		(0x00001140 + (0x80 * (x)))
+#define XGMAC_RQS			GENMASK(25, 16)
+#define XGMAC_RQS_SHIFT			16
+#define XGMAC_EHFC			BIT(7)
+#define XGMAC_RSF			BIT(5)
+#define XGMAC_RTC			GENMASK(1, 0)
+#define XGMAC_RTC_SHIFT			0
+#define XGMAC_MTL_QINTEN(x)		(0x00001170 + (0x80 * (x)))
+#define XGMAC_RXOIE			BIT(16)
+#define XGMAC_MTL_QINT_STATUS(x)	(0x00001174 + (0x80 * (x)))
+#define XGMAC_RXOVFIS			BIT(16)
+#define XGMAC_ABPSIS			BIT(1)
+#define XGMAC_TXUNFIS			BIT(0)
+
+#endif /* __STMMAC_DWXGMAC2_H__ */
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
new file mode 100644
index 000000000000..d182f82f7b58
--- /dev/null
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
@@ -0,0 +1,371 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2018 Synopsys, Inc. and/or its affiliates.
+ * stmmac XGMAC support.
+ */
+
+#include "stmmac.h"
+#include "dwxgmac2.h"
+
+static void dwxgmac2_core_init(struct mac_device_info *hw,
+			       struct net_device *dev)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	int mtu = dev->mtu;
+	u32 tx, rx;
+
+	tx = readl(ioaddr + XGMAC_TX_CONFIG);
+	rx = readl(ioaddr + XGMAC_RX_CONFIG);
+
+	tx |= XGMAC_CORE_INIT_TX;
+	rx |= XGMAC_CORE_INIT_RX;
+
+	if (mtu >= 9000) {
+		rx |= XGMAC_CONFIG_GPSLCE;
+		rx |= XGMAC_JUMBO_LEN << XGMAC_CONFIG_GPSL_SHIFT;
+		rx |= XGMAC_CONFIG_WD;
+	} else if (mtu > 2000) {
+		rx |= XGMAC_CONFIG_JE;
+	} else if (mtu > 1500) {
+		rx |= XGMAC_CONFIG_S2KP;
+	}
+
+	if (hw->ps) {
+		tx |= XGMAC_CONFIG_TE;
+		tx &= ~hw->link.speed_mask;
+
+		switch (hw->ps) {
+		case SPEED_10000:
+			tx |= hw->link.speed10000;
+			break;
+		case SPEED_2500:
+			tx |= hw->link.speed2500;
+			break;
+		case SPEED_1000:
+		default:
+			tx |= hw->link.speed1000;
+			break;
+		}
+	}
+
+	writel(tx, ioaddr + XGMAC_TX_CONFIG);
+	writel(rx, ioaddr + XGMAC_RX_CONFIG);
+	writel(XGMAC_INT_DEFAULT_EN, ioaddr + XGMAC_INT_EN);
+}
+
+static void dwxgmac2_set_mac(void __iomem *ioaddr, bool enable)
+{
+	u32 tx = readl(ioaddr + XGMAC_TX_CONFIG);
+	u32 rx = readl(ioaddr + XGMAC_RX_CONFIG);
+
+	if (enable) {
+		tx |= XGMAC_CONFIG_TE;
+		rx |= XGMAC_CONFIG_RE;
+	} else {
+		tx &= ~XGMAC_CONFIG_TE;
+		rx &= ~XGMAC_CONFIG_RE;
+	}
+
+	writel(tx, ioaddr + XGMAC_TX_CONFIG);
+	writel(rx, ioaddr + XGMAC_RX_CONFIG);
+}
+
+static int dwxgmac2_rx_ipc(struct mac_device_info *hw)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_RX_CONFIG);
+	if (hw->rx_csum)
+		value |= XGMAC_CONFIG_IPC;
+	else
+		value &= ~XGMAC_CONFIG_IPC;
+	writel(value, ioaddr + XGMAC_RX_CONFIG);
+
+	return !!(readl(ioaddr + XGMAC_RX_CONFIG) & XGMAC_CONFIG_IPC);
+}
+
+static void dwxgmac2_rx_queue_enable(struct mac_device_info *hw, u8 mode,
+				     u32 queue)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_RXQ_CTRL0) & ~XGMAC_RXQEN(queue);
+	if (mode == MTL_QUEUE_AVB)
+		value |= 0x1 << XGMAC_RXQEN_SHIFT(queue);
+	else if (mode == MTL_QUEUE_DCB)
+		value |= 0x2 << XGMAC_RXQEN_SHIFT(queue);
+	writel(value, ioaddr + XGMAC_RXQ_CTRL0);
+}
+
+static void dwxgmac2_rx_queue_prio(struct mac_device_info *hw, u32 prio,
+				   u32 queue)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 value, reg;
+
+	reg = (queue < 4) ? XGMAC_RXQ_CTRL2 : XGMAC_RXQ_CTRL3;
+
+	value = readl(ioaddr + reg);
+	value &= ~XGMAC_PSRQ(queue);
+	value |= (prio << XGMAC_PSRQ_SHIFT(queue)) & XGMAC_PSRQ(queue);
+
+	writel(value, ioaddr + reg);
+}
+
+static void dwxgmac2_prog_mtl_rx_algorithms(struct mac_device_info *hw,
+					    u32 rx_alg)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_MTL_OPMODE);
+	value &= ~XGMAC_RAA;
+
+	switch (rx_alg) {
+	case MTL_RX_ALGORITHM_SP:
+		break;
+	case MTL_RX_ALGORITHM_WSP:
+		value |= XGMAC_RAA;
+		break;
+	default:
+		break;
+	}
+
+	writel(value, ioaddr + XGMAC_MTL_OPMODE);
+}
+
+static void dwxgmac2_prog_mtl_tx_algorithms(struct mac_device_info *hw,
+					    u32 tx_alg)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 value;
+
+	value = readl(ioaddr + XGMAC_MTL_OPMODE);
+	value &= ~XGMAC_ETSALG;
+
+	switch (tx_alg) {
+	case MTL_TX_ALGORITHM_WRR:
+		value |= XGMAC_WRR;
+		break;
+	case MTL_TX_ALGORITHM_WFQ:
+		value |= XGMAC_WFQ;
+		break;
+	case MTL_TX_ALGORITHM_DWRR:
+		value |= XGMAC_DWRR;
+		break;
+	default:
+		break;
+	}
+
+	writel(value, ioaddr + XGMAC_MTL_OPMODE);
+}
+
+static void dwxgmac2_map_mtl_to_dma(struct mac_device_info *hw, u32 queue,
+				    u32 chan)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 value, reg;
+
+	reg = (queue < 4) ? XGMAC_MTL_RXQ_DMA_MAP0 : XGMAC_MTL_RXQ_DMA_MAP1;
+
+	value = readl(ioaddr + reg);
+	value &= ~XGMAC_QxMDMACH(queue);
+	value |= (chan << XGMAC_QxMDMACH_SHIFT(queue)) & XGMAC_QxMDMACH(queue);
+
+	writel(value, ioaddr + reg);
+}
+
+static int dwxgmac2_host_irq_status(struct mac_device_info *hw,
+				    struct stmmac_extra_stats *x)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 stat, en;
+
+	en = readl(ioaddr + XGMAC_INT_EN);
+	stat = readl(ioaddr + XGMAC_INT_STATUS);
+
+	stat &= en;
+
+	if (stat & XGMAC_PMTIS) {
+		x->irq_receive_pmt_irq_n++;
+		readl(ioaddr + XGMAC_PMT);
+	}
+
+	return 0;
+}
+
+static int dwxgmac2_host_mtl_irq_status(struct mac_device_info *hw, u32 chan)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	int ret = 0;
+	u32 status;
+
+	status = readl(ioaddr + XGMAC_MTL_INT_STATUS);
+	if (status & BIT(chan)) {
+		u32 chan_status = readl(ioaddr + XGMAC_MTL_QINT_STATUS(chan));
+
+		if (chan_status & XGMAC_RXOVFIS)
+			ret |= CORE_IRQ_MTL_RX_OVERFLOW;
+
+		writel(~0x0, ioaddr + XGMAC_MTL_QINT_STATUS(chan));
+	}
+
+	return ret;
+}
+
+static void dwxgmac2_flow_ctrl(struct mac_device_info *hw, unsigned int duplex,
+			       unsigned int fc, unsigned int pause_time,
+			       u32 tx_cnt)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 i;
+
+	if (fc & FLOW_RX)
+		writel(XGMAC_RFE, ioaddr + XGMAC_RX_FLOW_CTRL);
+	if (fc & FLOW_TX) {
+		for (i = 0; i < tx_cnt; i++) {
+			u32 value = XGMAC_TFE;
+
+			if (duplex)
+				value |= pause_time << XGMAC_PT_SHIFT;
+
+			writel(value, ioaddr + XGMAC_Qx_TX_FLOW_CTRL(i));
+		}
+	}
+}
+
+static void dwxgmac2_pmt(struct mac_device_info *hw, unsigned long mode)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 val = 0x0;
+
+	if (mode & WAKE_MAGIC)
+		val |= XGMAC_PWRDWN | XGMAC_MGKPKTEN;
+	if (mode & WAKE_UCAST)
+		val |= XGMAC_PWRDWN | XGMAC_GLBLUCAST | XGMAC_RWKPKTEN;
+	if (val) {
+		u32 cfg = readl(ioaddr + XGMAC_RX_CONFIG);
+		cfg |= XGMAC_CONFIG_RE;
+		writel(cfg, ioaddr + XGMAC_RX_CONFIG);
+	}
+
+	writel(val, ioaddr + XGMAC_PMT);
+}
+
+static void dwxgmac2_set_umac_addr(struct mac_device_info *hw,
+				   unsigned char *addr, unsigned int reg_n)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 value;
+
+	value = (addr[5] << 8) | addr[4];
+	writel(value | XGMAC_AE, ioaddr + XGMAC_ADDR0_HIGH);
+
+	value = (addr[3] << 24) | (addr[2] << 16) | (addr[1] << 8) | addr[0];
+	writel(value, ioaddr + XGMAC_ADDR0_LOW);
+}
+
+static void dwxgmac2_get_umac_addr(struct mac_device_info *hw,
+				   unsigned char *addr, unsigned int reg_n)
+{
+	void __iomem *ioaddr = hw->pcsr;
+	u32 hi_addr, lo_addr;
+
+	/* Read the MAC address from the hardware */
+	hi_addr = readl(ioaddr + XGMAC_ADDR0_HIGH);
+	lo_addr = readl(ioaddr + XGMAC_ADDR0_LOW);
+
+	/* Extract the MAC address from the high and low words */
+	addr[0] = lo_addr & 0xff;
+	addr[1] = (lo_addr >> 8) & 0xff;
+	addr[2] = (lo_addr >> 16) & 0xff;
+	addr[3] = (lo_addr >> 24) & 0xff;
+	addr[4] = hi_addr & 0xff;
+	addr[5] = (hi_addr >> 8) & 0xff;
+}
+
+static void dwxgmac2_set_filter(struct mac_device_info *hw,
+				struct net_device *dev)
+{
+	void __iomem *ioaddr = (void __iomem *)dev->base_addr;
+	u32 value = XGMAC_FILTER_RA;
+
+	if (dev->flags & IFF_PROMISC) {
+		value |= XGMAC_FILTER_PR;
+	} else if ((dev->flags & IFF_ALLMULTI) ||
+		   (netdev_mc_count(dev) > HASH_TABLE_SIZE)) {
+		value |= XGMAC_FILTER_PM;
+		writel(~0x0, ioaddr + XGMAC_HASH_TABLE(0));
+		writel(~0x0, ioaddr + XGMAC_HASH_TABLE(1));
+	}
+
+	writel(value, ioaddr + XGMAC_PACKET_FILTER);
+}
+
+const struct stmmac_ops dwxgmac210_ops = {
+	.core_init = dwxgmac2_core_init,
+	.set_mac = dwxgmac2_set_mac,
+	.rx_ipc = dwxgmac2_rx_ipc,
+	.rx_queue_enable = dwxgmac2_rx_queue_enable,
+	.rx_queue_prio = dwxgmac2_rx_queue_prio,
+	.tx_queue_prio = NULL,
+	.rx_queue_routing = NULL,
+	.prog_mtl_rx_algorithms = dwxgmac2_prog_mtl_rx_algorithms,
+	.prog_mtl_tx_algorithms = dwxgmac2_prog_mtl_tx_algorithms,
+	.set_mtl_tx_queue_weight = NULL,
+	.map_mtl_to_dma = dwxgmac2_map_mtl_to_dma,
+	.config_cbs = NULL,
+	.dump_regs = NULL,
+	.host_irq_status = dwxgmac2_host_irq_status,
+	.host_mtl_irq_status = dwxgmac2_host_mtl_irq_status,
+	.flow_ctrl = dwxgmac2_flow_ctrl,
+	.pmt = dwxgmac2_pmt,
+	.set_umac_addr = dwxgmac2_set_umac_addr,
+	.get_umac_addr = dwxgmac2_get_umac_addr,
+	.set_eee_mode = NULL,
+	.reset_eee_mode = NULL,
+	.set_eee_timer = NULL,
+	.set_eee_pls = NULL,
+	.pcs_ctrl_ane = NULL,
+	.pcs_rane = NULL,
+	.pcs_get_adv_lp = NULL,
+	.debug = NULL,
+	.set_filter = dwxgmac2_set_filter,
+};
+
+int dwxgmac2_setup(struct stmmac_priv *priv)
+{
+	struct mac_device_info *mac = priv->hw;
+
+	dev_info(priv->device, "\tXGMAC2\n");
+
+	priv->dev->priv_flags |= IFF_UNICAST_FLT;
+	mac->pcsr = priv->ioaddr;
+	mac->multicast_filter_bins = priv->plat->multicast_filter_bins;
+	mac->unicast_filter_entries = priv->plat->unicast_filter_entries;
+	mac->mcast_bits_log2 = 0;
+
+	if (mac->multicast_filter_bins)
+		mac->mcast_bits_log2 = ilog2(mac->multicast_filter_bins);
+
+	mac->link.duplex = 0;
+	mac->link.speed10 = 0;
+	mac->link.speed100 = 0;
+	mac->link.speed1000 = XGMAC_CONFIG_SS_1000;
+	mac->link.speed2500 = XGMAC_CONFIG_SS_2500;
+	mac->link.speed10000 = XGMAC_CONFIG_SS_10000;
+	mac->link.speed_mask = XGMAC_CONFIG_SS_MASK;
+
+	mac->mii.addr = XGMAC_MDIO_ADDR;
+	mac->mii.data = XGMAC_MDIO_DATA;
+	mac->mii.addr_shift = 16;
+	mac->mii.addr_mask = GENMASK(20, 16);
+	mac->mii.reg_shift = 0;
+	mac->mii.reg_mask = GENMASK(15, 0);
+	mac->mii.clk_csr_shift = 19;
+	mac->mii.clk_csr_mask = GENMASK(21, 19);
+
+	return 0;
+}
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.c b/drivers/net/ethernet/stmicro/stmmac/hwif.c
index 24f5ff175aa4..4fa46f064720 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.c
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.c
@@ -198,11 +198,11 @@ static const struct stmmac_hwif_entry {
 		},
 		.desc = NULL,
 		.dma = NULL,
-		.mac = NULL,
+		.mac = &dwxgmac210_ops,
 		.hwtimestamp = NULL,
 		.mode = NULL,
 		.tc = NULL,
-		.setup = NULL,
+		.setup = dwxgmac2_setup,
 		.quirks = NULL,
 	},
 };
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.h b/drivers/net/ethernet/stmicro/stmmac/hwif.h
index 79911eefc2a7..ff0fd6978260 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.h
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.h
@@ -479,6 +479,7 @@ extern const struct stmmac_ops dwmac410_ops;
 extern const struct stmmac_dma_ops dwmac410_dma_ops;
 extern const struct stmmac_ops dwmac510_ops;
 extern const struct stmmac_tc_ops dwmac510_tc_ops;
+extern const struct stmmac_ops dwxgmac210_ops;
 
 #define GMAC_VERSION		0x00000020	/* GMAC CORE Version */
 #define GMAC4_VERSION		0x00000110	/* GMAC4+ CORE Version */
-- 
2.7.4

^ permalink raw reply related

* [PATCH v2 net-next 1/9] net: stmmac: Add XGMAC 2.10 HWIF entry
From: Jose Abreu @ 2018-08-03 14:56 UTC (permalink / raw)
  To: netdev
  Cc: Jose Abreu, David S. Miller, Joao Pinto, Giuseppe Cavallaro,
	Alexandre Torgue
In-Reply-To: <cover.1533307909.git.joabreu@synopsys.com>

Add a new entry to HWIF table for XGMAC 2.10. For now we fill it with
empty callbacks which will be added in posterior patches.

Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Joao Pinto <jpinto@synopsys.com>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Cc: Alexandre Torgue <alexandre.torgue@st.com>
---
 drivers/net/ethernet/stmicro/stmmac/common.h | 14 +++++++------
 drivers/net/ethernet/stmicro/stmmac/hwif.c   | 31 ++++++++++++++++++++++++++--
 include/linux/stmmac.h                       |  1 +
 3 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/common.h b/drivers/net/ethernet/stmicro/stmmac/common.h
index 78fd0f8b8e81..3fb81acbd274 100644
--- a/drivers/net/ethernet/stmicro/stmmac/common.h
+++ b/drivers/net/ethernet/stmicro/stmmac/common.h
@@ -36,12 +36,14 @@
 #include "mmc.h"
 
 /* Synopsys Core versions */
-#define	DWMAC_CORE_3_40	0x34
-#define	DWMAC_CORE_3_50	0x35
-#define	DWMAC_CORE_4_00	0x40
-#define DWMAC_CORE_4_10	0x41
-#define DWMAC_CORE_5_00 0x50
-#define DWMAC_CORE_5_10 0x51
+#define	DWMAC_CORE_3_40		0x34
+#define	DWMAC_CORE_3_50		0x35
+#define	DWMAC_CORE_4_00		0x40
+#define DWMAC_CORE_4_10		0x41
+#define DWMAC_CORE_5_00		0x50
+#define DWMAC_CORE_5_10		0x51
+#define DWXGMAC_CORE_2_10	0x21
+
 #define STMMAC_CHAN0	0	/* Always supported and default for all chips */
 
 /* These need to be power of two, and >= 4 */
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.c b/drivers/net/ethernet/stmicro/stmmac/hwif.c
index 1f50e83cafb2..24f5ff175aa4 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.c
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.c
@@ -72,6 +72,7 @@ static int stmmac_dwmac4_quirks(struct stmmac_priv *priv)
 static const struct stmmac_hwif_entry {
 	bool gmac;
 	bool gmac4;
+	bool xgmac;
 	u32 min_id;
 	const struct stmmac_regs_off regs;
 	const void *desc;
@@ -87,6 +88,7 @@ static const struct stmmac_hwif_entry {
 	{
 		.gmac = false,
 		.gmac4 = false,
+		.xgmac = false,
 		.min_id = 0,
 		.regs = {
 			.ptp_off = PTP_GMAC3_X_OFFSET,
@@ -103,6 +105,7 @@ static const struct stmmac_hwif_entry {
 	}, {
 		.gmac = true,
 		.gmac4 = false,
+		.xgmac = false,
 		.min_id = 0,
 		.regs = {
 			.ptp_off = PTP_GMAC3_X_OFFSET,
@@ -119,6 +122,7 @@ static const struct stmmac_hwif_entry {
 	}, {
 		.gmac = false,
 		.gmac4 = true,
+		.xgmac = false,
 		.min_id = 0,
 		.regs = {
 			.ptp_off = PTP_GMAC4_OFFSET,
@@ -135,6 +139,7 @@ static const struct stmmac_hwif_entry {
 	}, {
 		.gmac = false,
 		.gmac4 = true,
+		.xgmac = false,
 		.min_id = DWMAC_CORE_4_00,
 		.regs = {
 			.ptp_off = PTP_GMAC4_OFFSET,
@@ -151,6 +156,7 @@ static const struct stmmac_hwif_entry {
 	}, {
 		.gmac = false,
 		.gmac4 = true,
+		.xgmac = false,
 		.min_id = DWMAC_CORE_4_10,
 		.regs = {
 			.ptp_off = PTP_GMAC4_OFFSET,
@@ -167,6 +173,7 @@ static const struct stmmac_hwif_entry {
 	}, {
 		.gmac = false,
 		.gmac4 = true,
+		.xgmac = false,
 		.min_id = DWMAC_CORE_5_10,
 		.regs = {
 			.ptp_off = PTP_GMAC4_OFFSET,
@@ -180,11 +187,29 @@ static const struct stmmac_hwif_entry {
 		.tc = &dwmac510_tc_ops,
 		.setup = dwmac4_setup,
 		.quirks = NULL,
-	}
+	}, {
+		.gmac = false,
+		.gmac4 = false,
+		.xgmac = true,
+		.min_id = DWXGMAC_CORE_2_10,
+		.regs = {
+			.ptp_off = 0,
+			.mmc_off = 0,
+		},
+		.desc = NULL,
+		.dma = NULL,
+		.mac = NULL,
+		.hwtimestamp = NULL,
+		.mode = NULL,
+		.tc = NULL,
+		.setup = NULL,
+		.quirks = NULL,
+	},
 };
 
 int stmmac_hwif_init(struct stmmac_priv *priv)
 {
+	bool needs_xgmac = priv->plat->has_xgmac;
 	bool needs_gmac4 = priv->plat->has_gmac4;
 	bool needs_gmac = priv->plat->has_gmac;
 	const struct stmmac_hwif_entry *entry;
@@ -195,7 +220,7 @@ int stmmac_hwif_init(struct stmmac_priv *priv)
 
 	if (needs_gmac) {
 		id = stmmac_get_id(priv, GMAC_VERSION);
-	} else if (needs_gmac4) {
+	} else if (needs_gmac4 || needs_xgmac) {
 		id = stmmac_get_id(priv, GMAC4_VERSION);
 	} else {
 		id = 0;
@@ -229,6 +254,8 @@ int stmmac_hwif_init(struct stmmac_priv *priv)
 			continue;
 		if (needs_gmac4 ^ entry->gmac4)
 			continue;
+		if (needs_xgmac ^ entry->xgmac)
+			continue;
 		/* Use synopsys_id var because some setups can override this */
 		if (priv->synopsys_id < entry->min_id)
 			continue;
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
index 32feac5bbd75..c43e9a01b892 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
@@ -190,5 +190,6 @@ struct plat_stmmacenet_data {
 	bool tso_en;
 	int mac_port_sel_speed;
 	bool en_tx_lpi_clockgating;
+	int has_xgmac;
 };
 #endif
-- 
2.7.4

^ permalink raw reply related

* Re: [PATCH net-next 0/2] Some important fixes for HNS3 driver
From: David Miller @ 2018-08-03 16:53 UTC (permalink / raw)
  To: salil.mehta
  Cc: yisen.zhuang, lipeng321, mehta.salil, netdev, linux-kernel,
	linuxarm
In-Reply-To: <20180803095631.798-1-salil.mehta@huawei.com>

From: Salil Mehta <salil.mehta@huawei.com>
Date: Fri, 3 Aug 2018 10:56:29 +0100

> This patch presents some important fixes related to MSIX allocation
> in HNS3 driver.

Series applied, thanks.

^ permalink raw reply

* [PATCH v2 net-next 0/9] Add support for XGMAC2 in stmmac
From: Jose Abreu @ 2018-08-03 14:56 UTC (permalink / raw)
  To: netdev
  Cc: Jose Abreu, David S. Miller, Joao Pinto, Giuseppe Cavallaro,
	Alexandre Torgue, Andrew Lunn

This series adds support for 10Gigabit IP in stmmac. The IP is called XGMAC2
and has many similarities with GMAC4. Due to this, its relatively easy to
incorporate this new IP into stmmac driver by adding a new block and
filling the necessary callbacks.

The functionality added by this series is still reduced but its only a
starting point which will later be expanded.

I splitted the patches into funcionality and to ease the review. Only the
patch 8/9 really enables the XGMAC2 block by adding a new compatible string.

Version 2 addresses review comments of Andrew Lunn.

NOTE: Although the IP supports 10G, for now it was only possible to test it
at 1G speed due to 10G PHY HW shipping problems. Here follows iperf3
results at 1G:

---
# iperf3 -c 192.168.0.10
Connecting to host 192.168.0.10, port 5201
[  4] local 192.168.0.3 port 39178 connected to 192.168.0.10 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   110 MBytes   920 Mbits/sec    0    482 KBytes
[  4]   1.00-2.00   sec   113 MBytes   946 Mbits/sec    0    482 KBytes
[  4]   2.00-3.00   sec   112 MBytes   937 Mbits/sec    0    482 KBytes
[  4]   3.00-4.00   sec   113 MBytes   946 Mbits/sec    0    482 KBytes
[  4]   4.00-5.00   sec   112 MBytes   935 Mbits/sec    0    482 KBytes
[  4]   5.00-6.00   sec   113 MBytes   946 Mbits/sec    0    482 KBytes
[  4]   6.00-7.00   sec   112 MBytes   937 Mbits/sec    0    482 KBytes
[  4]   7.00-8.00   sec   113 MBytes   946 Mbits/sec    0    482 KBytes
[  4]   8.00-9.00   sec   112 MBytes   937 Mbits/sec    0    482 KBytes
[  4]   9.00-10.00  sec   113 MBytes   946 Mbits/sec    0    482 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.09 GBytes   940 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.09 GBytes   938 Mbits/sec                  receiver
---

Cc: David S. Miller <davem@davemloft.net>
Cc: Joao Pinto <jpinto@synopsys.com>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Cc: Alexandre Torgue <alexandre.torgue@st.com>
Cc: Andrew Lunn <andrew@lunn.ch>

Jose Abreu (9):
  net: stmmac: Add XGMAC 2.10 HWIF entry
  net: stmmac: Add MAC related callbacks for XGMAC2
  net: stmmac: Add DMA related callbacks for XGMAC2
  net: stmmac: Add descriptor related callbacks for XGMAC2
  net: stmmac: Add MDIO related functions for XGMAC2
  net: stmmac: Add PTP support for XGMAC2
  net: stmmac: Integrate XGMAC into main driver flow
  net: stmmac: Add the bindings parsing for XGMAC2
  dt-bindings: net: stmmac: Add the bindings documentation for XGMAC2.

 Documentation/devicetree/bindings/net/stmmac.txt   |   5 +-
 drivers/net/ethernet/stmicro/stmmac/Makefile       |   3 +-
 drivers/net/ethernet/stmicro/stmmac/common.h       |  17 +-
 .../net/ethernet/stmicro/stmmac/dwmac-generic.c    |   2 +
 drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h     | 227 ++++++++++++
 .../net/ethernet/stmicro/stmmac/dwxgmac2_core.c    | 371 +++++++++++++++++++
 .../net/ethernet/stmicro/stmmac/dwxgmac2_descs.c   | 280 ++++++++++++++
 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c | 410 +++++++++++++++++++++
 drivers/net/ethernet/stmicro/stmmac/hwif.c         |  31 +-
 drivers/net/ethernet/stmicro/stmmac/hwif.h         |   3 +
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  |  67 +++-
 drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c  | 101 ++++-
 .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |   6 +
 drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c   |   6 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h   |   1 +
 include/linux/stmmac.h                             |   1 +
 16 files changed, 1497 insertions(+), 34 deletions(-)
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c

-- 
2.7.4

^ permalink raw reply

* Re: [PATCH net-next] rxrpc: Reuse SKCIPHER_REQUEST_ON_STACK buffer
From: David Miller @ 2018-08-03 16:49 UTC (permalink / raw)
  To: dhowells; +Cc: netdev, keescook, arnd, linux-afs, linux-kernel
In-Reply-To: <153328772507.9245.16028483796299905227.stgit@warthog.procyon.org.uk>

From: David Howells <dhowells@redhat.com>
Date: Fri, 03 Aug 2018 10:15:25 +0100

> From: Kees Cook <keescook@chromium.org>
> 
> The use of SKCIPHER_REQUEST_ON_STACK() will trigger FRAME_WARN warnings
> (when less than 2048) once the VLA is no longer hidden from the check:
> 
> net/rxrpc/rxkad.c:398:1: warning: the frame size of 1152 bytes is larger than 1024 bytes [-Wframe-larger-than=]
> net/rxrpc/rxkad.c:242:1: warning: the frame size of 1152 bytes is larger than 1024 bytes [-Wframe-larger-than=]
> 
> This passes the initial SKCIPHER_REQUEST_ON_STACK allocation to the leaf
> functions for reuse. Two requests allocated on the stack is not needed
> when only one is used at a time.
> 
> Signed-off-by: Kees Cook <keescook@chromium.org>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
> Signed-off-by: David Howells <dhowells@redhat.com>

Applied, thank you.

^ permalink raw reply

* Re: [PATCH v2 net-next] bnxt_en: combine 'else if' and 'else' into single branch
From: David Miller @ 2018-08-03 16:45 UTC (permalink / raw)
  To: yuehaibing; +Cc: michael.chan, linux-kernel, netdev, vasundhara-v.volam
In-Reply-To: <20180803084856.22760-1-yuehaibing@huawei.com>

From: YueHaibing <yuehaibing@huawei.com>
Date: Fri, 3 Aug 2018 16:48:56 +0800

> The else-if branch and else branch set mac_ok to true similarly,
> so combine the two into single else branch.
> 
> Also add comments to explain the two conditions, which
> from Michael Chan and Vasundhara Volam.
> 
> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> Acked-by: Michael Chan <michael.chan@broadcom.com>
> ---
> v2: fix typos: 'branche'--> 'branch' , 'Aslo'-->'Also'

Applied.

^ permalink raw reply

* Re: [PATCH net-next] [RFC] dpaa2-eth: Move DPAA2 Ethernet driver from staging to drivers/net
From: Andrew Lunn @ 2018-08-03 16:42 UTC (permalink / raw)
  To: Ioana Radulescu
  Cc: netdev, davem, gregkh, devel, linux-kernel, ioana.ciornei,
	laurentiu.tudor, madalin.bucur, horia.geanta
In-Reply-To: <20180803161221.6322-1-ruxandra.radulescu@nxp.com>

> +static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev)
> +{
> +	struct device *dev;
> +	struct net_device *net_dev = NULL;
> +	struct dpaa2_eth_priv *priv = NULL;
> +	int err = 0;
> +
> +	dev = &dpni_dev->dev;
> +
> +	/* Net device */
> +	net_dev = alloc_etherdev_mq(sizeof(*priv), DPAA2_ETH_MAX_TX_QUEUES);
> +	if (!net_dev) {
> +		dev_err(dev, "alloc_etherdev_mq() failed\n");
> +		return -ENOMEM;
> +	}
> +
> +	SET_NETDEV_DEV(net_dev, dev);
> +	dev_set_drvdata(dev, net_dev);
> +
> +	priv = netdev_priv(net_dev);
> +	priv->net_dev = net_dev;
> +
> +	priv->iommu_domain = iommu_get_domain_for_dev(dev);
> +
> +	/* Obtain a MC portal */
> +	err = fsl_mc_portal_allocate(dpni_dev, FSL_MC_IO_ATOMIC_CONTEXT_PORTAL,
> +				     &priv->mc_io);
> +	if (err) {
> +		if (err == -ENXIO)
> +			err = -EPROBE_DEFER;
> +		else
> +			dev_err(dev, "MC portal allocation failed\n");
> +		goto err_portal_alloc;
> +	}
> +
> +	/* MC objects initialization and configuration */
> +	err = setup_dpni(dpni_dev);
> +	if (err)
> +		goto err_dpni_setup;
> +
> +	err = setup_dpio(priv);
> +	if (err)
> +		goto err_dpio_setup;
> +
> +	setup_fqs(priv);
> +
> +	err = setup_dpbp(priv);
> +	if (err)
> +		goto err_dpbp_setup;
> +
> +	err = bind_dpni(priv);
> +	if (err)
> +		goto err_bind;
> +
> +	/* Add a NAPI context for each channel */
> +	add_ch_napi(priv);
> +
> +	/* Percpu statistics */
> +	priv->percpu_stats = alloc_percpu(*priv->percpu_stats);
> +	if (!priv->percpu_stats) {
> +		dev_err(dev, "alloc_percpu(percpu_stats) failed\n");
> +		err = -ENOMEM;
> +		goto err_alloc_percpu_stats;
> +	}
> +	priv->percpu_extras = alloc_percpu(*priv->percpu_extras);
> +	if (!priv->percpu_extras) {
> +		dev_err(dev, "alloc_percpu(percpu_extras) failed\n");
> +		err = -ENOMEM;
> +		goto err_alloc_percpu_extras;
> +	}
> +
> +	err = netdev_init(net_dev);
> +	if (err)
> +		goto err_netdev_init;

At the end of netdev_init() you call netdev_register(). From that
point on, you device is live. Its .ndo's can be called....

> +
> +	/* Configure checksum offload based on current interface flags */
> +	err = set_rx_csum(priv, !!(net_dev->features & NETIF_F_RXCSUM));
> +	if (err)
> +		goto err_csum;
> +
> +	err = set_tx_csum(priv, !!(net_dev->features &
> +				   (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM)));
> +	if (err)
> +		goto err_csum;
> +
> +	err = alloc_rings(priv);
> +	if (err)
> +		goto err_alloc_rings;

How well does the device work if it has not allocated the rings yet,
when it is asked to do something?

> +
> +	net_dev->ethtool_ops = &dpaa2_ethtool_ops;
> +
> +	err = setup_irqs(dpni_dev);

How well do it work without interrupts being set up?

> +	if (err) {
> +		netdev_warn(net_dev, "Failed to set link interrupt, fall back to polling\n");
> +		priv->poll_thread = kthread_run(poll_link_state, priv,
> +						"%s_poll_link", net_dev->name);
> +		if (IS_ERR(priv->poll_thread)) {
> +			netdev_err(net_dev, "Error starting polling thread\n");
> +			goto err_poll_thread;
> +		}
> +		priv->do_link_poll = true;
> +	}

Probably the correct place to register the netdev is here.

	 Andrew

^ permalink raw reply

* [PATCH net-next] ppp: mppe: Remove VLA usage
From: Kees Cook @ 2018-08-03 16:37 UTC (permalink / raw)
  To: Network Development
  Cc: Paul Mackerras, linux-ppp, David S. Miller, linux-kernel

In the quest to remove all stack VLA usage from the kernel[1], this
removes the discouraged use of AHASH_REQUEST_ON_STACK (and associated
VLA) by switching to shash directly and keeping the associated descriptor
allocated with the regular state on the heap.

[1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com

Signed-off-by: Kees Cook <keescook@chromium.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
---
Paul suggested this go via netdev directly:
https://lkml.kernel.org/r/20180803031315.GA30807@fergus
---
 drivers/net/ppp/ppp_mppe.c | 56 ++++++++++++++++++++------------------
 1 file changed, 30 insertions(+), 26 deletions(-)

diff --git a/drivers/net/ppp/ppp_mppe.c b/drivers/net/ppp/ppp_mppe.c
index 6c7fd98cb00a..a205750b431b 100644
--- a/drivers/net/ppp/ppp_mppe.c
+++ b/drivers/net/ppp/ppp_mppe.c
@@ -96,7 +96,7 @@ static inline void sha_pad_init(struct sha_pad *shapad)
  */
 struct ppp_mppe_state {
 	struct crypto_skcipher *arc4;
-	struct crypto_ahash *sha1;
+	struct shash_desc *sha1;
 	unsigned char *sha1_digest;
 	unsigned char master_key[MPPE_MAX_KEY_LEN];
 	unsigned char session_key[MPPE_MAX_KEY_LEN];
@@ -136,25 +136,16 @@ struct ppp_mppe_state {
  */
 static void get_new_key_from_sha(struct ppp_mppe_state * state)
 {
-	AHASH_REQUEST_ON_STACK(req, state->sha1);
-	struct scatterlist sg[4];
-	unsigned int nbytes;
-
-	sg_init_table(sg, 4);
-
-	nbytes = setup_sg(&sg[0], state->master_key, state->keylen);
-	nbytes += setup_sg(&sg[1], sha_pad->sha_pad1,
-			   sizeof(sha_pad->sha_pad1));
-	nbytes += setup_sg(&sg[2], state->session_key, state->keylen);
-	nbytes += setup_sg(&sg[3], sha_pad->sha_pad2,
-			   sizeof(sha_pad->sha_pad2));
-
-	ahash_request_set_tfm(req, state->sha1);
-	ahash_request_set_callback(req, 0, NULL, NULL);
-	ahash_request_set_crypt(req, sg, state->sha1_digest, nbytes);
-
-	crypto_ahash_digest(req);
-	ahash_request_zero(req);
+	crypto_shash_init(state->sha1);
+	crypto_shash_update(state->sha1, state->master_key,
+			    state->keylen);
+	crypto_shash_update(state->sha1, sha_pad->sha_pad1,
+			    sizeof(sha_pad->sha_pad1));
+	crypto_shash_update(state->sha1, state->session_key,
+			    state->keylen);
+	crypto_shash_update(state->sha1, sha_pad->sha_pad2,
+			    sizeof(sha_pad->sha_pad2));
+	crypto_shash_final(state->sha1, state->sha1_digest);
 }
 
 /*
@@ -200,6 +191,7 @@ static void mppe_rekey(struct ppp_mppe_state * state, int initial_key)
 static void *mppe_alloc(unsigned char *options, int optlen)
 {
 	struct ppp_mppe_state *state;
+	struct crypto_shash *shash;
 	unsigned int digestsize;
 
 	if (optlen != CILEN_MPPE + sizeof(state->master_key) ||
@@ -217,13 +209,21 @@ static void *mppe_alloc(unsigned char *options, int optlen)
 		goto out_free;
 	}
 
-	state->sha1 = crypto_alloc_ahash("sha1", 0, CRYPTO_ALG_ASYNC);
-	if (IS_ERR(state->sha1)) {
-		state->sha1 = NULL;
+	shash = crypto_alloc_shash("sha1", 0, 0);
+	if (IS_ERR(shash))
+		goto out_free;
+
+	state->sha1 = kmalloc(sizeof(*state->sha1) +
+				     crypto_shash_descsize(shash),
+			      GFP_KERNEL);
+	if (!state->sha1) {
+		crypto_free_shash(shash);
 		goto out_free;
 	}
+	state->sha1->tfm = shash;
+	state->sha1->flags = 0;
 
-	digestsize = crypto_ahash_digestsize(state->sha1);
+	digestsize = crypto_shash_digestsize(shash);
 	if (digestsize < MPPE_MAX_KEY_LEN)
 		goto out_free;
 
@@ -246,7 +246,10 @@ static void *mppe_alloc(unsigned char *options, int optlen)
 
 out_free:
 	kfree(state->sha1_digest);
-	crypto_free_ahash(state->sha1);
+	if (state->sha1) {
+		crypto_free_shash(state->sha1->tfm);
+		kzfree(state->sha1);
+	}
 	crypto_free_skcipher(state->arc4);
 	kfree(state);
 out:
@@ -261,7 +264,8 @@ static void mppe_free(void *arg)
 	struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg;
 	if (state) {
 		kfree(state->sha1_digest);
-		crypto_free_ahash(state->sha1);
+		crypto_free_shash(state->sha1->tfm);
+		kzfree(state->sha1);
 		crypto_free_skcipher(state->arc4);
 		kfree(state);
 	}
-- 
2.17.1


-- 
Kees Cook
Pixel Security

^ permalink raw reply related

* Re: UDP packets arriving on wrong sockets
From: Willem de Bruijn @ 2018-08-03 14:20 UTC (permalink / raw)
  To: shum; +Cc: Network Development
In-Reply-To: <20180803041911.GA30724@canndrew.org>

On Fri, Aug 3, 2018 at 12:20 AM Andrew Cann <shum@canndrew.org> wrote:
>
> On Thu, Aug 02, 2018 at 11:21:41AM -0400, Willem de Bruijn wrote:
> > You have two sockets bound to the same address and port? Is this using
> > SO_REUSEPORT?
>
> Yes, this is using SO_REUSEPORT.

Then this is working as intended.

Without SO_REUSEPORT it would not be possible to bind two sockets to
the same address and port. See documentation, e.g., at
https://lwn.net/Articles/542629/

^ permalink raw reply

* [PATCH net-next] [RFC] dpaa2-eth: Move DPAA2 Ethernet driver from staging to drivers/net
From: Ioana Radulescu @ 2018-08-03 16:12 UTC (permalink / raw)
  To: netdev, davem
  Cc: gregkh, devel, linux-kernel, ioana.ciornei, laurentiu.tudor,
	madalin.bucur, horia.geanta

The DPAA2 Ethernet driver supports Freescale/NXP SoCs with DPAA2
(DataPath Acceleration Architecture v2). The driver manages
network objects discovered on the fsl-mc bus.

Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
---
The Freescale/NXP DPAA2 Ethernet driver was first included in
drivers/staging, due to its dependencies on two components located
there at the time of its initial submission:
* the fsl-mc bus driver, which was moved to drivers/bus in kernel 4.17
* the dpio driver, which is currently being moved to drivers/soc/fsl
(the change has been picked up by the ARM SoC tree and will be merged
on mainline during the upcoming merge window)

This patch depends both on the dpio driver patches in the ARM SoC
tree (https://lkml.org/lkml/2018/7/24/563) and the dpaa2-eth driver
patches added in Greg's staging tree after the 4.17 kernel release.

This patch is marked as a RFC due to above dependencies; I considered
delaying it until after the merge window, which should take care of all
deps, but I'm hoping for an initial round of review before the window
opens. Also for review purposes, I generated this patch without the -M
option, although the driver files are moved without any code changes.

More information on the DPAA2 architecture and the interactions
between the fsl-mc bus and the objects present on it can be found in:
Documentation/networking/dpaa2/overview.rst

Thanks,
Ioana

 Documentation/networking/dpaa2/ethernet-driver.rst |  185 ++
 Documentation/networking/dpaa2/index.rst           |    1 +
 MAINTAINERS                                        |    4 +-
 drivers/net/ethernet/freescale/Kconfig             |    8 +
 drivers/net/ethernet/freescale/Makefile            |    2 +
 drivers/net/ethernet/freescale/dpaa2/Makefile      |   11 +
 .../net/ethernet/freescale/dpaa2/dpaa2-eth-trace.h |  158 ++
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c   | 2661 ++++++++++++++++++++
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h   |  412 +++
 .../net/ethernet/freescale/dpaa2/dpaa2-ethtool.c   |  280 ++
 drivers/net/ethernet/freescale/dpaa2/dpkg.h        |  480 ++++
 drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h    |  518 ++++
 drivers/net/ethernet/freescale/dpaa2/dpni.c        | 1600 ++++++++++++
 drivers/net/ethernet/freescale/dpaa2/dpni.h        |  824 ++++++
 drivers/staging/fsl-dpaa2/Kconfig                  |    8 -
 drivers/staging/fsl-dpaa2/Makefile                 |    1 -
 drivers/staging/fsl-dpaa2/ethernet/Makefile        |   11 -
 drivers/staging/fsl-dpaa2/ethernet/TODO            |   18 -
 .../staging/fsl-dpaa2/ethernet/dpaa2-eth-trace.h   |  158 --
 drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c     | 2661 --------------------
 drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h     |  412 ---
 drivers/staging/fsl-dpaa2/ethernet/dpaa2-ethtool.c |  280 --
 drivers/staging/fsl-dpaa2/ethernet/dpkg.h          |  480 ----
 drivers/staging/fsl-dpaa2/ethernet/dpni-cmd.h      |  518 ----
 drivers/staging/fsl-dpaa2/ethernet/dpni.c          | 1600 ------------
 drivers/staging/fsl-dpaa2/ethernet/dpni.h          |  824 ------
 .../staging/fsl-dpaa2/ethernet/ethernet-driver.rst |  185 --
 27 files changed, 7142 insertions(+), 7158 deletions(-)
 create mode 100644 Documentation/networking/dpaa2/ethernet-driver.rst
 create mode 100644 drivers/net/ethernet/freescale/dpaa2/Makefile
 create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-trace.h
 create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
 create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
 create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c
 create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpkg.h
 create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
 create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpni.c
 create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpni.h
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/Makefile
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/TODO
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth-trace.h
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/dpaa2-ethtool.c
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/dpkg.h
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/dpni-cmd.h
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/dpni.c
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/dpni.h
 delete mode 100644 drivers/staging/fsl-dpaa2/ethernet/ethernet-driver.rst

diff --git a/Documentation/networking/dpaa2/ethernet-driver.rst b/Documentation/networking/dpaa2/ethernet-driver.rst
new file mode 100644
index 0000000..90ec940
--- /dev/null
+++ b/Documentation/networking/dpaa2/ethernet-driver.rst
@@ -0,0 +1,185 @@
+.. SPDX-License-Identifier: GPL-2.0
+.. include:: <isonum.txt>
+
+===============================
+DPAA2 Ethernet driver
+===============================
+
+:Copyright: |copy| 2017-2018 NXP
+
+This file provides documentation for the Freescale DPAA2 Ethernet driver.
+
+Supported Platforms
+===================
+This driver provides networking support for Freescale DPAA2 SoCs, e.g.
+LS2080A, LS2088A, LS1088A.
+
+
+Architecture Overview
+=====================
+Unlike regular NICs, in the DPAA2 architecture there is no single hardware block
+representing network interfaces; instead, several separate hardware resources
+concur to provide the networking functionality:
+
+- network interfaces
+- queues, channels
+- buffer pools
+- MAC/PHY
+
+All hardware resources are allocated and configured through the Management
+Complex (MC) portals. MC abstracts most of these resources as DPAA2 objects
+and exposes ABIs through which they can be configured and controlled. A few
+hardware resources, like queues, do not have a corresponding MC object and
+are treated as internal resources of other objects.
+
+For a more detailed description of the DPAA2 architecture and its object
+abstractions see *Documentation/networking/dpaa2/overview.rst*.
+
+Each Linux net device is built on top of a Datapath Network Interface (DPNI)
+object and uses Buffer Pools (DPBPs), I/O Portals (DPIOs) and Concentrators
+(DPCONs).
+
+Configuration interface::
+
+                 -----------------------
+                | DPAA2 Ethernet Driver |
+                 -----------------------
+                     .      .      .
+                     .      .      .
+             . . . . .      .      . . . . . .
+             .              .                .
+             .              .                .
+         ----------     ----------      -----------
+        | DPBP API |   | DPNI API |    | DPCON API |
+         ----------     ----------      -----------
+             .              .                .             software
+    =======  .  ==========  .  ============  .  ===================
+             .              .                .             hardware
+         ------------------------------------------
+        |            MC hardware portals           |
+         ------------------------------------------
+             .              .                .
+             .              .                .
+          ------         ------            -------
+         | DPBP |       | DPNI |          | DPCON |
+          ------         ------            -------
+
+The DPNIs are network interfaces without a direct one-on-one mapping to PHYs.
+DPBPs represent hardware buffer pools. Packet I/O is performed in the context
+of DPCON objects, using DPIO portals for managing and communicating with the
+hardware resources.
+
+Datapath (I/O) interface::
+
+         -----------------------------------------------
+        |           DPAA2 Ethernet Driver               |
+         -----------------------------------------------
+          |          ^        ^         |            |
+          |          |        |         |            |
+   enqueue|   dequeue|   data |  dequeue|       seed |
+    (Tx)  | (Rx, TxC)|  avail.|  request|     buffers|
+          |          |  notify|         |            |
+          |          |        |         |            |
+          V          |        |         V            V
+         -----------------------------------------------
+        |                 DPIO Driver                   |
+         -----------------------------------------------
+          |          |        |         |            |          software
+          |          |        |         |            |  ================
+          |          |        |         |            |          hardware
+         -----------------------------------------------
+        |               I/O hardware portals            |
+         -----------------------------------------------
+          |          ^        ^         |            |
+          |          |        |         |            |
+          |          |        |         V            |
+          V          |    ================           V
+        ----------------------           |      -------------
+ queues  ----------------------          |     | Buffer pool |
+          ----------------------         |      -------------
+                   =======================
+                                Channel
+
+Datapath I/O (DPIO) portals provide enqueue and dequeue services, data
+availability notifications and buffer pool management. DPIOs are shared between
+all DPAA2 objects (and implicitly all DPAA2 kernel drivers) that work with data
+frames, but must be affine to the CPUs for the purpose of traffic distribution.
+
+Frames are transmitted and received through hardware frame queues, which can be
+grouped in channels for the purpose of hardware scheduling. The Ethernet driver
+enqueues TX frames on egress queues and after transmission is complete a TX
+confirmation frame is sent back to the CPU.
+
+When frames are available on ingress queues, a data availability notification
+is sent to the CPU; notifications are raised per channel, so even if multiple
+queues in the same channel have available frames, only one notification is sent.
+After a channel fires a notification, is must be explicitly rearmed.
+
+Each network interface can have multiple Rx, Tx and confirmation queues affined
+to CPUs, and one channel (DPCON) for each CPU that services at least one queue.
+DPCONs are used to distribute ingress traffic to different CPUs via the cores'
+affine DPIOs.
+
+The role of hardware buffer pools is storage of ingress frame data. Each network
+interface has a privately owned buffer pool which it seeds with kernel allocated
+buffers.
+
+
+DPNIs are decoupled from PHYs; a DPNI can be connected to a PHY through a DPMAC
+object or to another DPNI through an internal link, but the connection is
+managed by MC and completely transparent to the Ethernet driver.
+
+::
+
+     ---------     ---------     ---------
+    | eth if1 |   | eth if2 |   | eth ifn |
+     ---------     ---------     ---------
+          .           .          .
+          .           .          .
+          .           .          .
+         ---------------------------
+        |   DPAA2 Ethernet Driver   |
+         ---------------------------
+          .           .          .
+          .           .          .
+          .           .          .
+       ------      ------      ------            -------
+      | DPNI |    | DPNI |    | DPNI |          | DPMAC |----+
+       ------      ------      ------            -------     |
+         |           |           |                  |        |
+         |           |           |                  |      -----
+          ===========             ==================      | PHY |
+                                                           -----
+
+Creating a Network Interface
+============================
+A net device is created for each DPNI object probed on the MC bus. Each DPNI has
+a number of properties which determine the network interface configuration
+options and associated hardware resources.
+
+DPNI objects (and the other DPAA2 objects needed for a network interface) can be
+added to a container on the MC bus in one of two ways: statically, through a
+Datapath Layout Binary file (DPL) that is parsed by MC at boot time; or created
+dynamically at runtime, via the DPAA2 objects APIs.
+
+
+Features & Offloads
+===================
+Hardware checksum offloading is supported for TCP and UDP over IPv4/6 frames.
+The checksum offloads can be independently configured on RX and TX through
+ethtool.
+
+Hardware offload of unicast and multicast MAC filtering is supported on the
+ingress path and permanently enabled.
+
+Scatter-gather frames are supported on both RX and TX paths. On TX, SG support
+is configurable via ethtool; on RX it is always enabled.
+
+The DPAA2 hardware can process jumbo Ethernet frames of up to 10K bytes.
+
+The Ethernet driver defines a static flow hashing scheme that distributes
+traffic based on a 5-tuple key: src IP, dst IP, IP proto, L4 src port,
+L4 dst port. No user configuration is supported for now.
+
+Hardware specific statistics for the network interface as well as some
+non-standard driver stats can be consulted through ethtool -S option.
diff --git a/Documentation/networking/dpaa2/index.rst b/Documentation/networking/dpaa2/index.rst
index 10bea11..67bd87f 100644
--- a/Documentation/networking/dpaa2/index.rst
+++ b/Documentation/networking/dpaa2/index.rst
@@ -7,3 +7,4 @@ DPAA2 Documentation
 
    overview
    dpio-driver
+   ethernet-driver
diff --git a/MAINTAINERS b/MAINTAINERS
index c261842..8756769 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4437,9 +4437,9 @@ F:	drivers/soc/fsl/dpio
 
 DPAA2 ETHERNET DRIVER
 M:	Ioana Radulescu <ruxandra.radulescu@nxp.com>
-L:	linux-kernel@vger.kernel.org
+L:	netdev@vger.kernel.org
 S:	Maintained
-F:	drivers/staging/fsl-dpaa2/ethernet
+F:	drivers/net/ethernet/freescale/dpaa2
 
 DPAA2 ETHERNET SWITCH DRIVER
 M:	Ioana Radulescu <ruxandra.radulescu@nxp.com>
diff --git a/drivers/net/ethernet/freescale/Kconfig b/drivers/net/ethernet/freescale/Kconfig
index a580a3d..7a30276 100644
--- a/drivers/net/ethernet/freescale/Kconfig
+++ b/drivers/net/ethernet/freescale/Kconfig
@@ -97,4 +97,12 @@ config GIANFAR
 
 source "drivers/net/ethernet/freescale/dpaa/Kconfig"
 
+config FSL_DPAA2_ETH
+	tristate "Freescale DPAA2 Ethernet"
+	depends on FSL_MC_BUS && FSL_MC_DPIO
+	depends on NETDEVICES && ETHERNET
+	---help---
+	  Ethernet driver for Freescale DPAA2 SoCs, using the
+	  Freescale MC bus driver
+
 endif # NET_VENDOR_FREESCALE
diff --git a/drivers/net/ethernet/freescale/Makefile b/drivers/net/ethernet/freescale/Makefile
index 0914a3e..3b4ff08 100644
--- a/drivers/net/ethernet/freescale/Makefile
+++ b/drivers/net/ethernet/freescale/Makefile
@@ -21,3 +21,5 @@ ucc_geth_driver-objs := ucc_geth.o ucc_geth_ethtool.o
 
 obj-$(CONFIG_FSL_FMAN) += fman/
 obj-$(CONFIG_FSL_DPAA_ETH) += dpaa/
+
+obj-$(CONFIG_FSL_DPAA2_ETH) += dpaa2/
diff --git a/drivers/net/ethernet/freescale/dpaa2/Makefile b/drivers/net/ethernet/freescale/dpaa2/Makefile
new file mode 100644
index 0000000..9315ecd
--- /dev/null
+++ b/drivers/net/ethernet/freescale/dpaa2/Makefile
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for the Freescale DPAA2 Ethernet controller
+#
+
+obj-$(CONFIG_FSL_DPAA2_ETH) += fsl-dpaa2-eth.o
+
+fsl-dpaa2-eth-objs    := dpaa2-eth.o dpaa2-ethtool.o dpni.o
+
+# Needed by the tracing framework
+CFLAGS_dpaa2-eth.o := -I$(src)
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-trace.h b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-trace.h
new file mode 100644
index 0000000..9801528
--- /dev/null
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-trace.h
@@ -0,0 +1,158 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/* Copyright 2014-2015 Freescale Semiconductor Inc.
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM	dpaa2_eth
+
+#if !defined(_DPAA2_ETH_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _DPAA2_ETH_TRACE_H
+
+#include <linux/skbuff.h>
+#include <linux/netdevice.h>
+#include "dpaa2-eth.h"
+#include <linux/tracepoint.h>
+
+#define TR_FMT "[%s] fd: addr=0x%llx, len=%u, off=%u"
+/* trace_printk format for raw buffer event class */
+#define TR_BUF_FMT "[%s] vaddr=%p size=%zu dma_addr=%pad map_size=%zu bpid=%d"
+
+/* This is used to declare a class of events.
+ * individual events of this type will be defined below.
+ */
+
+/* Store details about a frame descriptor */
+DECLARE_EVENT_CLASS(dpaa2_eth_fd,
+		    /* Trace function prototype */
+		    TP_PROTO(struct net_device *netdev,
+			     const struct dpaa2_fd *fd),
+
+		    /* Repeat argument list here */
+		    TP_ARGS(netdev, fd),
+
+		    /* A structure containing the relevant information we want
+		     * to record. Declare name and type for each normal element,
+		     * name, type and size for arrays. Use __string for variable
+		     * length strings.
+		     */
+		    TP_STRUCT__entry(
+				     __field(u64, fd_addr)
+				     __field(u32, fd_len)
+				     __field(u16, fd_offset)
+				     __string(name, netdev->name)
+		    ),
+
+		    /* The function that assigns values to the above declared
+		     * fields
+		     */
+		    TP_fast_assign(
+				   __entry->fd_addr = dpaa2_fd_get_addr(fd);
+				   __entry->fd_len = dpaa2_fd_get_len(fd);
+				   __entry->fd_offset = dpaa2_fd_get_offset(fd);
+				   __assign_str(name, netdev->name);
+		    ),
+
+		    /* This is what gets printed when the trace event is
+		     * triggered.
+		     */
+		    TP_printk(TR_FMT,
+			      __get_str(name),
+			      __entry->fd_addr,
+			      __entry->fd_len,
+			      __entry->fd_offset)
+);
+
+/* Now declare events of the above type. Format is:
+ * DEFINE_EVENT(class, name, proto, args), with proto and args same as for class
+ */
+
+/* Tx (egress) fd */
+DEFINE_EVENT(dpaa2_eth_fd, dpaa2_tx_fd,
+	     TP_PROTO(struct net_device *netdev,
+		      const struct dpaa2_fd *fd),
+
+	     TP_ARGS(netdev, fd)
+);
+
+/* Rx fd */
+DEFINE_EVENT(dpaa2_eth_fd, dpaa2_rx_fd,
+	     TP_PROTO(struct net_device *netdev,
+		      const struct dpaa2_fd *fd),
+
+	     TP_ARGS(netdev, fd)
+);
+
+/* Tx confirmation fd */
+DEFINE_EVENT(dpaa2_eth_fd, dpaa2_tx_conf_fd,
+	     TP_PROTO(struct net_device *netdev,
+		      const struct dpaa2_fd *fd),
+
+	     TP_ARGS(netdev, fd)
+);
+
+/* Log data about raw buffers. Useful for tracing DPBP content. */
+TRACE_EVENT(dpaa2_eth_buf_seed,
+	    /* Trace function prototype */
+	    TP_PROTO(struct net_device *netdev,
+		     /* virtual address and size */
+		     void *vaddr,
+		     size_t size,
+		     /* dma map address and size */
+		     dma_addr_t dma_addr,
+		     size_t map_size,
+		     /* buffer pool id, if relevant */
+		     u16 bpid),
+
+	    /* Repeat argument list here */
+	    TP_ARGS(netdev, vaddr, size, dma_addr, map_size, bpid),
+
+	    /* A structure containing the relevant information we want
+	     * to record. Declare name and type for each normal element,
+	     * name, type and size for arrays. Use __string for variable
+	     * length strings.
+	     */
+	    TP_STRUCT__entry(
+			     __field(void *, vaddr)
+			     __field(size_t, size)
+			     __field(dma_addr_t, dma_addr)
+			     __field(size_t, map_size)
+			     __field(u16, bpid)
+			     __string(name, netdev->name)
+	    ),
+
+	    /* The function that assigns values to the above declared
+	     * fields
+	     */
+	    TP_fast_assign(
+			   __entry->vaddr = vaddr;
+			   __entry->size = size;
+			   __entry->dma_addr = dma_addr;
+			   __entry->map_size = map_size;
+			   __entry->bpid = bpid;
+			   __assign_str(name, netdev->name);
+	    ),
+
+	    /* This is what gets printed when the trace event is
+	     * triggered.
+	     */
+	    TP_printk(TR_BUF_FMT,
+		      __get_str(name),
+		      __entry->vaddr,
+		      __entry->size,
+		      &__entry->dma_addr,
+		      __entry->map_size,
+		      __entry->bpid)
+);
+
+/* If only one event of a certain type needs to be declared, use TRACE_EVENT().
+ * The syntax is the same as for DECLARE_EVENT_CLASS().
+ */
+
+#endif /* _DPAA2_ETH_TRACE_H */
+
+/* This must be outside ifdef _DPAA2_ETH_TRACE_H */
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH .
+#undef TRACE_INCLUDE_FILE
+#define TRACE_INCLUDE_FILE	dpaa2-eth-trace
+#include <trace/define_trace.h>
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
new file mode 100644
index 0000000..9329fca
--- /dev/null
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -0,0 +1,2661 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/* Copyright 2014-2016 Freescale Semiconductor Inc.
+ * Copyright 2016-2017 NXP
+ */
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/etherdevice.h>
+#include <linux/of_net.h>
+#include <linux/interrupt.h>
+#include <linux/msi.h>
+#include <linux/kthread.h>
+#include <linux/iommu.h>
+#include <linux/net_tstamp.h>
+#include <linux/fsl/mc.h>
+
+#include <net/sock.h>
+
+#include "dpaa2-eth.h"
+
+/* CREATE_TRACE_POINTS only needs to be defined once. Other dpa files
+ * using trace events only need to #include <trace/events/sched.h>
+ */
+#define CREATE_TRACE_POINTS
+#include "dpaa2-eth-trace.h"
+
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_AUTHOR("Freescale Semiconductor, Inc");
+MODULE_DESCRIPTION("Freescale DPAA2 Ethernet Driver");
+
+static void *dpaa2_iova_to_virt(struct iommu_domain *domain,
+				dma_addr_t iova_addr)
+{
+	phys_addr_t phys_addr;
+
+	phys_addr = domain ? iommu_iova_to_phys(domain, iova_addr) : iova_addr;
+
+	return phys_to_virt(phys_addr);
+}
+
+static void validate_rx_csum(struct dpaa2_eth_priv *priv,
+			     u32 fd_status,
+			     struct sk_buff *skb)
+{
+	skb_checksum_none_assert(skb);
+
+	/* HW checksum validation is disabled, nothing to do here */
+	if (!(priv->net_dev->features & NETIF_F_RXCSUM))
+		return;
+
+	/* Read checksum validation bits */
+	if (!((fd_status & DPAA2_FAS_L3CV) &&
+	      (fd_status & DPAA2_FAS_L4CV)))
+		return;
+
+	/* Inform the stack there's no need to compute L3/L4 csum anymore */
+	skb->ip_summed = CHECKSUM_UNNECESSARY;
+}
+
+/* Free a received FD.
+ * Not to be used for Tx conf FDs or on any other paths.
+ */
+static void free_rx_fd(struct dpaa2_eth_priv *priv,
+		       const struct dpaa2_fd *fd,
+		       void *vaddr)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	dma_addr_t addr = dpaa2_fd_get_addr(fd);
+	u8 fd_format = dpaa2_fd_get_format(fd);
+	struct dpaa2_sg_entry *sgt;
+	void *sg_vaddr;
+	int i;
+
+	/* If single buffer frame, just free the data buffer */
+	if (fd_format == dpaa2_fd_single)
+		goto free_buf;
+	else if (fd_format != dpaa2_fd_sg)
+		/* We don't support any other format */
+		return;
+
+	/* For S/G frames, we first need to free all SG entries
+	 * except the first one, which was taken care of already
+	 */
+	sgt = vaddr + dpaa2_fd_get_offset(fd);
+	for (i = 1; i < DPAA2_ETH_MAX_SG_ENTRIES; i++) {
+		addr = dpaa2_sg_get_addr(&sgt[i]);
+		sg_vaddr = dpaa2_iova_to_virt(priv->iommu_domain, addr);
+		dma_unmap_single(dev, addr, DPAA2_ETH_RX_BUF_SIZE,
+				 DMA_FROM_DEVICE);
+
+		skb_free_frag(sg_vaddr);
+		if (dpaa2_sg_is_final(&sgt[i]))
+			break;
+	}
+
+free_buf:
+	skb_free_frag(vaddr);
+}
+
+/* Build a linear skb based on a single-buffer frame descriptor */
+static struct sk_buff *build_linear_skb(struct dpaa2_eth_priv *priv,
+					struct dpaa2_eth_channel *ch,
+					const struct dpaa2_fd *fd,
+					void *fd_vaddr)
+{
+	struct sk_buff *skb = NULL;
+	u16 fd_offset = dpaa2_fd_get_offset(fd);
+	u32 fd_length = dpaa2_fd_get_len(fd);
+
+	ch->buf_count--;
+
+	skb = build_skb(fd_vaddr, DPAA2_ETH_SKB_SIZE);
+	if (unlikely(!skb))
+		return NULL;
+
+	skb_reserve(skb, fd_offset);
+	skb_put(skb, fd_length);
+
+	return skb;
+}
+
+/* Build a non linear (fragmented) skb based on a S/G table */
+static struct sk_buff *build_frag_skb(struct dpaa2_eth_priv *priv,
+				      struct dpaa2_eth_channel *ch,
+				      struct dpaa2_sg_entry *sgt)
+{
+	struct sk_buff *skb = NULL;
+	struct device *dev = priv->net_dev->dev.parent;
+	void *sg_vaddr;
+	dma_addr_t sg_addr;
+	u16 sg_offset;
+	u32 sg_length;
+	struct page *page, *head_page;
+	int page_offset;
+	int i;
+
+	for (i = 0; i < DPAA2_ETH_MAX_SG_ENTRIES; i++) {
+		struct dpaa2_sg_entry *sge = &sgt[i];
+
+		/* NOTE: We only support SG entries in dpaa2_sg_single format,
+		 * but this is the only format we may receive from HW anyway
+		 */
+
+		/* Get the address and length from the S/G entry */
+		sg_addr = dpaa2_sg_get_addr(sge);
+		sg_vaddr = dpaa2_iova_to_virt(priv->iommu_domain, sg_addr);
+		dma_unmap_single(dev, sg_addr, DPAA2_ETH_RX_BUF_SIZE,
+				 DMA_FROM_DEVICE);
+
+		sg_length = dpaa2_sg_get_len(sge);
+
+		if (i == 0) {
+			/* We build the skb around the first data buffer */
+			skb = build_skb(sg_vaddr, DPAA2_ETH_SKB_SIZE);
+			if (unlikely(!skb)) {
+				/* Free the first SG entry now, since we already
+				 * unmapped it and obtained the virtual address
+				 */
+				skb_free_frag(sg_vaddr);
+
+				/* We still need to subtract the buffers used
+				 * by this FD from our software counter
+				 */
+				while (!dpaa2_sg_is_final(&sgt[i]) &&
+				       i < DPAA2_ETH_MAX_SG_ENTRIES)
+					i++;
+				break;
+			}
+
+			sg_offset = dpaa2_sg_get_offset(sge);
+			skb_reserve(skb, sg_offset);
+			skb_put(skb, sg_length);
+		} else {
+			/* Rest of the data buffers are stored as skb frags */
+			page = virt_to_page(sg_vaddr);
+			head_page = virt_to_head_page(sg_vaddr);
+
+			/* Offset in page (which may be compound).
+			 * Data in subsequent SG entries is stored from the
+			 * beginning of the buffer, so we don't need to add the
+			 * sg_offset.
+			 */
+			page_offset = ((unsigned long)sg_vaddr &
+				(PAGE_SIZE - 1)) +
+				(page_address(page) - page_address(head_page));
+
+			skb_add_rx_frag(skb, i - 1, head_page, page_offset,
+					sg_length, DPAA2_ETH_RX_BUF_SIZE);
+		}
+
+		if (dpaa2_sg_is_final(sge))
+			break;
+	}
+
+	WARN_ONCE(i == DPAA2_ETH_MAX_SG_ENTRIES, "Final bit not set in SGT");
+
+	/* Count all data buffers + SG table buffer */
+	ch->buf_count -= i + 2;
+
+	return skb;
+}
+
+/* Main Rx frame processing routine */
+static void dpaa2_eth_rx(struct dpaa2_eth_priv *priv,
+			 struct dpaa2_eth_channel *ch,
+			 const struct dpaa2_fd *fd,
+			 struct napi_struct *napi,
+			 u16 queue_id)
+{
+	dma_addr_t addr = dpaa2_fd_get_addr(fd);
+	u8 fd_format = dpaa2_fd_get_format(fd);
+	void *vaddr;
+	struct sk_buff *skb;
+	struct rtnl_link_stats64 *percpu_stats;
+	struct dpaa2_eth_drv_stats *percpu_extras;
+	struct device *dev = priv->net_dev->dev.parent;
+	struct dpaa2_fas *fas;
+	void *buf_data;
+	u32 status = 0;
+
+	/* Tracing point */
+	trace_dpaa2_rx_fd(priv->net_dev, fd);
+
+	vaddr = dpaa2_iova_to_virt(priv->iommu_domain, addr);
+	dma_unmap_single(dev, addr, DPAA2_ETH_RX_BUF_SIZE, DMA_FROM_DEVICE);
+
+	fas = dpaa2_get_fas(vaddr, false);
+	prefetch(fas);
+	buf_data = vaddr + dpaa2_fd_get_offset(fd);
+	prefetch(buf_data);
+
+	percpu_stats = this_cpu_ptr(priv->percpu_stats);
+	percpu_extras = this_cpu_ptr(priv->percpu_extras);
+
+	if (fd_format == dpaa2_fd_single) {
+		skb = build_linear_skb(priv, ch, fd, vaddr);
+	} else if (fd_format == dpaa2_fd_sg) {
+		skb = build_frag_skb(priv, ch, buf_data);
+		skb_free_frag(vaddr);
+		percpu_extras->rx_sg_frames++;
+		percpu_extras->rx_sg_bytes += dpaa2_fd_get_len(fd);
+	} else {
+		/* We don't support any other format */
+		goto err_frame_format;
+	}
+
+	if (unlikely(!skb))
+		goto err_build_skb;
+
+	prefetch(skb->data);
+
+	/* Get the timestamp value */
+	if (priv->rx_tstamp) {
+		struct skb_shared_hwtstamps *shhwtstamps = skb_hwtstamps(skb);
+		__le64 *ts = dpaa2_get_ts(vaddr, false);
+		u64 ns;
+
+		memset(shhwtstamps, 0, sizeof(*shhwtstamps));
+
+		ns = DPAA2_PTP_CLK_PERIOD_NS * le64_to_cpup(ts);
+		shhwtstamps->hwtstamp = ns_to_ktime(ns);
+	}
+
+	/* Check if we need to validate the L4 csum */
+	if (likely(dpaa2_fd_get_frc(fd) & DPAA2_FD_FRC_FASV)) {
+		status = le32_to_cpu(fas->status);
+		validate_rx_csum(priv, status, skb);
+	}
+
+	skb->protocol = eth_type_trans(skb, priv->net_dev);
+	skb_record_rx_queue(skb, queue_id);
+
+	percpu_stats->rx_packets++;
+	percpu_stats->rx_bytes += dpaa2_fd_get_len(fd);
+
+	napi_gro_receive(napi, skb);
+
+	return;
+
+err_build_skb:
+	free_rx_fd(priv, fd, vaddr);
+err_frame_format:
+	percpu_stats->rx_dropped++;
+}
+
+/* Consume all frames pull-dequeued into the store. This is the simplest way to
+ * make sure we don't accidentally issue another volatile dequeue which would
+ * overwrite (leak) frames already in the store.
+ *
+ * Observance of NAPI budget is not our concern, leaving that to the caller.
+ */
+static int consume_frames(struct dpaa2_eth_channel *ch)
+{
+	struct dpaa2_eth_priv *priv = ch->priv;
+	struct dpaa2_eth_fq *fq;
+	struct dpaa2_dq *dq;
+	const struct dpaa2_fd *fd;
+	int cleaned = 0;
+	int is_last;
+
+	do {
+		dq = dpaa2_io_store_next(ch->store, &is_last);
+		if (unlikely(!dq)) {
+			/* If we're here, we *must* have placed a
+			 * volatile dequeue comnmand, so keep reading through
+			 * the store until we get some sort of valid response
+			 * token (either a valid frame or an "empty dequeue")
+			 */
+			continue;
+		}
+
+		fd = dpaa2_dq_fd(dq);
+		fq = (struct dpaa2_eth_fq *)(uintptr_t)dpaa2_dq_fqd_ctx(dq);
+		fq->stats.frames++;
+
+		fq->consume(priv, ch, fd, &ch->napi, fq->flowid);
+		cleaned++;
+	} while (!is_last);
+
+	return cleaned;
+}
+
+/* Configure the egress frame annotation for timestamp update */
+static void enable_tx_tstamp(struct dpaa2_fd *fd, void *buf_start)
+{
+	struct dpaa2_faead *faead;
+	u32 ctrl, frc;
+
+	/* Mark the egress frame annotation area as valid */
+	frc = dpaa2_fd_get_frc(fd);
+	dpaa2_fd_set_frc(fd, frc | DPAA2_FD_FRC_FAEADV);
+
+	/* Set hardware annotation size */
+	ctrl = dpaa2_fd_get_ctrl(fd);
+	dpaa2_fd_set_ctrl(fd, ctrl | DPAA2_FD_CTRL_ASAL);
+
+	/* enable UPD (update prepanded data) bit in FAEAD field of
+	 * hardware frame annotation area
+	 */
+	ctrl = DPAA2_FAEAD_A2V | DPAA2_FAEAD_UPDV | DPAA2_FAEAD_UPD;
+	faead = dpaa2_get_faead(buf_start, true);
+	faead->ctrl = cpu_to_le32(ctrl);
+}
+
+/* Create a frame descriptor based on a fragmented skb */
+static int build_sg_fd(struct dpaa2_eth_priv *priv,
+		       struct sk_buff *skb,
+		       struct dpaa2_fd *fd)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	void *sgt_buf = NULL;
+	dma_addr_t addr;
+	int nr_frags = skb_shinfo(skb)->nr_frags;
+	struct dpaa2_sg_entry *sgt;
+	int i, err;
+	int sgt_buf_size;
+	struct scatterlist *scl, *crt_scl;
+	int num_sg;
+	int num_dma_bufs;
+	struct dpaa2_eth_swa *swa;
+
+	/* Create and map scatterlist.
+	 * We don't advertise NETIF_F_FRAGLIST, so skb_to_sgvec() will not have
+	 * to go beyond nr_frags+1.
+	 * Note: We don't support chained scatterlists
+	 */
+	if (unlikely(PAGE_SIZE / sizeof(struct scatterlist) < nr_frags + 1))
+		return -EINVAL;
+
+	scl = kcalloc(nr_frags + 1, sizeof(struct scatterlist), GFP_ATOMIC);
+	if (unlikely(!scl))
+		return -ENOMEM;
+
+	sg_init_table(scl, nr_frags + 1);
+	num_sg = skb_to_sgvec(skb, scl, 0, skb->len);
+	num_dma_bufs = dma_map_sg(dev, scl, num_sg, DMA_BIDIRECTIONAL);
+	if (unlikely(!num_dma_bufs)) {
+		err = -ENOMEM;
+		goto dma_map_sg_failed;
+	}
+
+	/* Prepare the HW SGT structure */
+	sgt_buf_size = priv->tx_data_offset +
+		       sizeof(struct dpaa2_sg_entry) *  num_dma_bufs;
+	sgt_buf = netdev_alloc_frag(sgt_buf_size + DPAA2_ETH_TX_BUF_ALIGN);
+	if (unlikely(!sgt_buf)) {
+		err = -ENOMEM;
+		goto sgt_buf_alloc_failed;
+	}
+	sgt_buf = PTR_ALIGN(sgt_buf, DPAA2_ETH_TX_BUF_ALIGN);
+	memset(sgt_buf, 0, sgt_buf_size);
+
+	sgt = (struct dpaa2_sg_entry *)(sgt_buf + priv->tx_data_offset);
+
+	/* Fill in the HW SGT structure.
+	 *
+	 * sgt_buf is zeroed out, so the following fields are implicit
+	 * in all sgt entries:
+	 *   - offset is 0
+	 *   - format is 'dpaa2_sg_single'
+	 */
+	for_each_sg(scl, crt_scl, num_dma_bufs, i) {
+		dpaa2_sg_set_addr(&sgt[i], sg_dma_address(crt_scl));
+		dpaa2_sg_set_len(&sgt[i], sg_dma_len(crt_scl));
+	}
+	dpaa2_sg_set_final(&sgt[i - 1], true);
+
+	/* Store the skb backpointer in the SGT buffer.
+	 * Fit the scatterlist and the number of buffers alongside the
+	 * skb backpointer in the software annotation area. We'll need
+	 * all of them on Tx Conf.
+	 */
+	swa = (struct dpaa2_eth_swa *)sgt_buf;
+	swa->skb = skb;
+	swa->scl = scl;
+	swa->num_sg = num_sg;
+	swa->sgt_size = sgt_buf_size;
+
+	/* Separately map the SGT buffer */
+	addr = dma_map_single(dev, sgt_buf, sgt_buf_size, DMA_BIDIRECTIONAL);
+	if (unlikely(dma_mapping_error(dev, addr))) {
+		err = -ENOMEM;
+		goto dma_map_single_failed;
+	}
+	dpaa2_fd_set_offset(fd, priv->tx_data_offset);
+	dpaa2_fd_set_format(fd, dpaa2_fd_sg);
+	dpaa2_fd_set_addr(fd, addr);
+	dpaa2_fd_set_len(fd, skb->len);
+	dpaa2_fd_set_ctrl(fd, FD_CTRL_PTA | FD_CTRL_PTV1);
+
+	if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)
+		enable_tx_tstamp(fd, sgt_buf);
+
+	return 0;
+
+dma_map_single_failed:
+	skb_free_frag(sgt_buf);
+sgt_buf_alloc_failed:
+	dma_unmap_sg(dev, scl, num_sg, DMA_BIDIRECTIONAL);
+dma_map_sg_failed:
+	kfree(scl);
+	return err;
+}
+
+/* Create a frame descriptor based on a linear skb */
+static int build_single_fd(struct dpaa2_eth_priv *priv,
+			   struct sk_buff *skb,
+			   struct dpaa2_fd *fd)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	u8 *buffer_start, *aligned_start;
+	struct sk_buff **skbh;
+	dma_addr_t addr;
+
+	buffer_start = skb->data - dpaa2_eth_needed_headroom(priv, skb);
+
+	/* If there's enough room to align the FD address, do it.
+	 * It will help hardware optimize accesses.
+	 */
+	aligned_start = PTR_ALIGN(buffer_start - DPAA2_ETH_TX_BUF_ALIGN,
+				  DPAA2_ETH_TX_BUF_ALIGN);
+	if (aligned_start >= skb->head)
+		buffer_start = aligned_start;
+
+	/* Store a backpointer to the skb at the beginning of the buffer
+	 * (in the private data area) such that we can release it
+	 * on Tx confirm
+	 */
+	skbh = (struct sk_buff **)buffer_start;
+	*skbh = skb;
+
+	addr = dma_map_single(dev, buffer_start,
+			      skb_tail_pointer(skb) - buffer_start,
+			      DMA_BIDIRECTIONAL);
+	if (unlikely(dma_mapping_error(dev, addr)))
+		return -ENOMEM;
+
+	dpaa2_fd_set_addr(fd, addr);
+	dpaa2_fd_set_offset(fd, (u16)(skb->data - buffer_start));
+	dpaa2_fd_set_len(fd, skb->len);
+	dpaa2_fd_set_format(fd, dpaa2_fd_single);
+	dpaa2_fd_set_ctrl(fd, FD_CTRL_PTA | FD_CTRL_PTV1);
+
+	if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)
+		enable_tx_tstamp(fd, buffer_start);
+
+	return 0;
+}
+
+/* FD freeing routine on the Tx path
+ *
+ * DMA-unmap and free FD and possibly SGT buffer allocated on Tx. The skb
+ * back-pointed to is also freed.
+ * This can be called either from dpaa2_eth_tx_conf() or on the error path of
+ * dpaa2_eth_tx().
+ */
+static void free_tx_fd(const struct dpaa2_eth_priv *priv,
+		       const struct dpaa2_fd *fd)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	dma_addr_t fd_addr;
+	struct sk_buff **skbh, *skb;
+	unsigned char *buffer_start;
+	struct dpaa2_eth_swa *swa;
+	u8 fd_format = dpaa2_fd_get_format(fd);
+
+	fd_addr = dpaa2_fd_get_addr(fd);
+	skbh = dpaa2_iova_to_virt(priv->iommu_domain, fd_addr);
+
+	if (fd_format == dpaa2_fd_single) {
+		skb = *skbh;
+		buffer_start = (unsigned char *)skbh;
+		/* Accessing the skb buffer is safe before dma unmap, because
+		 * we didn't map the actual skb shell.
+		 */
+		dma_unmap_single(dev, fd_addr,
+				 skb_tail_pointer(skb) - buffer_start,
+				 DMA_BIDIRECTIONAL);
+	} else if (fd_format == dpaa2_fd_sg) {
+		swa = (struct dpaa2_eth_swa *)skbh;
+		skb = swa->skb;
+
+		/* Unmap the scatterlist */
+		dma_unmap_sg(dev, swa->scl, swa->num_sg, DMA_BIDIRECTIONAL);
+		kfree(swa->scl);
+
+		/* Unmap the SGT buffer */
+		dma_unmap_single(dev, fd_addr, swa->sgt_size,
+				 DMA_BIDIRECTIONAL);
+	} else {
+		netdev_dbg(priv->net_dev, "Invalid FD format\n");
+		return;
+	}
+
+	/* Get the timestamp value */
+	if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) {
+		struct skb_shared_hwtstamps shhwtstamps;
+		__le64 *ts = dpaa2_get_ts(skbh, true);
+		u64 ns;
+
+		memset(&shhwtstamps, 0, sizeof(shhwtstamps));
+
+		ns = DPAA2_PTP_CLK_PERIOD_NS * le64_to_cpup(ts);
+		shhwtstamps.hwtstamp = ns_to_ktime(ns);
+		skb_tstamp_tx(skb, &shhwtstamps);
+	}
+
+	/* Free SGT buffer allocated on tx */
+	if (fd_format != dpaa2_fd_single)
+		skb_free_frag(skbh);
+
+	/* Move on with skb release */
+	dev_kfree_skb(skb);
+}
+
+static netdev_tx_t dpaa2_eth_tx(struct sk_buff *skb, struct net_device *net_dev)
+{
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	struct dpaa2_fd fd;
+	struct rtnl_link_stats64 *percpu_stats;
+	struct dpaa2_eth_drv_stats *percpu_extras;
+	struct dpaa2_eth_fq *fq;
+	u16 queue_mapping;
+	unsigned int needed_headroom;
+	int err, i;
+
+	percpu_stats = this_cpu_ptr(priv->percpu_stats);
+	percpu_extras = this_cpu_ptr(priv->percpu_extras);
+
+	needed_headroom = dpaa2_eth_needed_headroom(priv, skb);
+	if (skb_headroom(skb) < needed_headroom) {
+		struct sk_buff *ns;
+
+		ns = skb_realloc_headroom(skb, needed_headroom);
+		if (unlikely(!ns)) {
+			percpu_stats->tx_dropped++;
+			goto err_alloc_headroom;
+		}
+		percpu_extras->tx_reallocs++;
+
+		if (skb->sk)
+			skb_set_owner_w(ns, skb->sk);
+
+		dev_kfree_skb(skb);
+		skb = ns;
+	}
+
+	/* We'll be holding a back-reference to the skb until Tx Confirmation;
+	 * we don't want that overwritten by a concurrent Tx with a cloned skb.
+	 */
+	skb = skb_unshare(skb, GFP_ATOMIC);
+	if (unlikely(!skb)) {
+		/* skb_unshare() has already freed the skb */
+		percpu_stats->tx_dropped++;
+		return NETDEV_TX_OK;
+	}
+
+	/* Setup the FD fields */
+	memset(&fd, 0, sizeof(fd));
+
+	if (skb_is_nonlinear(skb)) {
+		err = build_sg_fd(priv, skb, &fd);
+		percpu_extras->tx_sg_frames++;
+		percpu_extras->tx_sg_bytes += skb->len;
+	} else {
+		err = build_single_fd(priv, skb, &fd);
+	}
+
+	if (unlikely(err)) {
+		percpu_stats->tx_dropped++;
+		goto err_build_fd;
+	}
+
+	/* Tracing point */
+	trace_dpaa2_tx_fd(net_dev, &fd);
+
+	/* TxConf FQ selection relies on queue id from the stack.
+	 * In case of a forwarded frame from another DPNI interface, we choose
+	 * a queue affined to the same core that processed the Rx frame
+	 */
+	queue_mapping = skb_get_queue_mapping(skb);
+	fq = &priv->fq[queue_mapping];
+	for (i = 0; i < DPAA2_ETH_ENQUEUE_RETRIES; i++) {
+		err = dpaa2_io_service_enqueue_qd(fq->channel->dpio,
+						  priv->tx_qdid, 0,
+						  fq->tx_qdbin, &fd);
+		if (err != -EBUSY)
+			break;
+	}
+	percpu_extras->tx_portal_busy += i;
+	if (unlikely(err < 0)) {
+		percpu_stats->tx_errors++;
+		/* Clean up everything, including freeing the skb */
+		free_tx_fd(priv, &fd);
+	} else {
+		percpu_stats->tx_packets++;
+		percpu_stats->tx_bytes += dpaa2_fd_get_len(&fd);
+	}
+
+	return NETDEV_TX_OK;
+
+err_build_fd:
+err_alloc_headroom:
+	dev_kfree_skb(skb);
+
+	return NETDEV_TX_OK;
+}
+
+/* Tx confirmation frame processing routine */
+static void dpaa2_eth_tx_conf(struct dpaa2_eth_priv *priv,
+			      struct dpaa2_eth_channel *ch,
+			      const struct dpaa2_fd *fd,
+			      struct napi_struct *napi __always_unused,
+			      u16 queue_id __always_unused)
+{
+	struct rtnl_link_stats64 *percpu_stats;
+	struct dpaa2_eth_drv_stats *percpu_extras;
+	u32 fd_errors;
+
+	/* Tracing point */
+	trace_dpaa2_tx_conf_fd(priv->net_dev, fd);
+
+	percpu_extras = this_cpu_ptr(priv->percpu_extras);
+	percpu_extras->tx_conf_frames++;
+	percpu_extras->tx_conf_bytes += dpaa2_fd_get_len(fd);
+
+	/* Check frame errors in the FD field */
+	fd_errors = dpaa2_fd_get_ctrl(fd) & DPAA2_FD_TX_ERR_MASK;
+	free_tx_fd(priv, fd);
+
+	if (likely(!fd_errors))
+		return;
+
+	if (net_ratelimit())
+		netdev_dbg(priv->net_dev, "TX frame FD error: 0x%08x\n",
+			   fd_errors);
+
+	percpu_stats = this_cpu_ptr(priv->percpu_stats);
+	/* Tx-conf logically pertains to the egress path. */
+	percpu_stats->tx_errors++;
+}
+
+static int set_rx_csum(struct dpaa2_eth_priv *priv, bool enable)
+{
+	int err;
+
+	err = dpni_set_offload(priv->mc_io, 0, priv->mc_token,
+			       DPNI_OFF_RX_L3_CSUM, enable);
+	if (err) {
+		netdev_err(priv->net_dev,
+			   "dpni_set_offload(RX_L3_CSUM) failed\n");
+		return err;
+	}
+
+	err = dpni_set_offload(priv->mc_io, 0, priv->mc_token,
+			       DPNI_OFF_RX_L4_CSUM, enable);
+	if (err) {
+		netdev_err(priv->net_dev,
+			   "dpni_set_offload(RX_L4_CSUM) failed\n");
+		return err;
+	}
+
+	return 0;
+}
+
+static int set_tx_csum(struct dpaa2_eth_priv *priv, bool enable)
+{
+	int err;
+
+	err = dpni_set_offload(priv->mc_io, 0, priv->mc_token,
+			       DPNI_OFF_TX_L3_CSUM, enable);
+	if (err) {
+		netdev_err(priv->net_dev, "dpni_set_offload(TX_L3_CSUM) failed\n");
+		return err;
+	}
+
+	err = dpni_set_offload(priv->mc_io, 0, priv->mc_token,
+			       DPNI_OFF_TX_L4_CSUM, enable);
+	if (err) {
+		netdev_err(priv->net_dev, "dpni_set_offload(TX_L4_CSUM) failed\n");
+		return err;
+	}
+
+	return 0;
+}
+
+/* Free buffers acquired from the buffer pool or which were meant to
+ * be released in the pool
+ */
+static void free_bufs(struct dpaa2_eth_priv *priv, u64 *buf_array, int count)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	void *vaddr;
+	int i;
+
+	for (i = 0; i < count; i++) {
+		vaddr = dpaa2_iova_to_virt(priv->iommu_domain, buf_array[i]);
+		dma_unmap_single(dev, buf_array[i], DPAA2_ETH_RX_BUF_SIZE,
+				 DMA_FROM_DEVICE);
+		skb_free_frag(vaddr);
+	}
+}
+
+/* Perform a single release command to add buffers
+ * to the specified buffer pool
+ */
+static int add_bufs(struct dpaa2_eth_priv *priv,
+		    struct dpaa2_eth_channel *ch, u16 bpid)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	u64 buf_array[DPAA2_ETH_BUFS_PER_CMD];
+	void *buf;
+	dma_addr_t addr;
+	int i, err;
+
+	for (i = 0; i < DPAA2_ETH_BUFS_PER_CMD; i++) {
+		/* Allocate buffer visible to WRIOP + skb shared info +
+		 * alignment padding
+		 */
+		buf = napi_alloc_frag(dpaa2_eth_buf_raw_size(priv));
+		if (unlikely(!buf))
+			goto err_alloc;
+
+		buf = PTR_ALIGN(buf, priv->rx_buf_align);
+
+		addr = dma_map_single(dev, buf, DPAA2_ETH_RX_BUF_SIZE,
+				      DMA_FROM_DEVICE);
+		if (unlikely(dma_mapping_error(dev, addr)))
+			goto err_map;
+
+		buf_array[i] = addr;
+
+		/* tracing point */
+		trace_dpaa2_eth_buf_seed(priv->net_dev,
+					 buf, dpaa2_eth_buf_raw_size(priv),
+					 addr, DPAA2_ETH_RX_BUF_SIZE,
+					 bpid);
+	}
+
+release_bufs:
+	/* In case the portal is busy, retry until successful */
+	while ((err = dpaa2_io_service_release(ch->dpio, bpid,
+					       buf_array, i)) == -EBUSY)
+		cpu_relax();
+
+	/* If release command failed, clean up and bail out;
+	 * not much else we can do about it
+	 */
+	if (err) {
+		free_bufs(priv, buf_array, i);
+		return 0;
+	}
+
+	return i;
+
+err_map:
+	skb_free_frag(buf);
+err_alloc:
+	/* If we managed to allocate at least some buffers,
+	 * release them to hardware
+	 */
+	if (i)
+		goto release_bufs;
+
+	return 0;
+}
+
+static int seed_pool(struct dpaa2_eth_priv *priv, u16 bpid)
+{
+	int i, j;
+	int new_count;
+
+	/* This is the lazy seeding of Rx buffer pools.
+	 * dpaa2_add_bufs() is also used on the Rx hotpath and calls
+	 * napi_alloc_frag(). The trouble with that is that it in turn ends up
+	 * calling this_cpu_ptr(), which mandates execution in atomic context.
+	 * Rather than splitting up the code, do a one-off preempt disable.
+	 */
+	preempt_disable();
+	for (j = 0; j < priv->num_channels; j++) {
+		for (i = 0; i < DPAA2_ETH_NUM_BUFS;
+		     i += DPAA2_ETH_BUFS_PER_CMD) {
+			new_count = add_bufs(priv, priv->channel[j], bpid);
+			priv->channel[j]->buf_count += new_count;
+
+			if (new_count < DPAA2_ETH_BUFS_PER_CMD) {
+				preempt_enable();
+				return -ENOMEM;
+			}
+		}
+	}
+	preempt_enable();
+
+	return 0;
+}
+
+/**
+ * Drain the specified number of buffers from the DPNI's private buffer pool.
+ * @count must not exceeed DPAA2_ETH_BUFS_PER_CMD
+ */
+static void drain_bufs(struct dpaa2_eth_priv *priv, int count)
+{
+	u64 buf_array[DPAA2_ETH_BUFS_PER_CMD];
+	int ret;
+
+	do {
+		ret = dpaa2_io_service_acquire(NULL, priv->bpid,
+					       buf_array, count);
+		if (ret < 0) {
+			netdev_err(priv->net_dev, "dpaa2_io_service_acquire() failed\n");
+			return;
+		}
+		free_bufs(priv, buf_array, ret);
+	} while (ret);
+}
+
+static void drain_pool(struct dpaa2_eth_priv *priv)
+{
+	int i;
+
+	drain_bufs(priv, DPAA2_ETH_BUFS_PER_CMD);
+	drain_bufs(priv, 1);
+
+	for (i = 0; i < priv->num_channels; i++)
+		priv->channel[i]->buf_count = 0;
+}
+
+/* Function is called from softirq context only, so we don't need to guard
+ * the access to percpu count
+ */
+static int refill_pool(struct dpaa2_eth_priv *priv,
+		       struct dpaa2_eth_channel *ch,
+		       u16 bpid)
+{
+	int new_count;
+
+	if (likely(ch->buf_count >= DPAA2_ETH_REFILL_THRESH))
+		return 0;
+
+	do {
+		new_count = add_bufs(priv, ch, bpid);
+		if (unlikely(!new_count)) {
+			/* Out of memory; abort for now, we'll try later on */
+			break;
+		}
+		ch->buf_count += new_count;
+	} while (ch->buf_count < DPAA2_ETH_NUM_BUFS);
+
+	if (unlikely(ch->buf_count < DPAA2_ETH_NUM_BUFS))
+		return -ENOMEM;
+
+	return 0;
+}
+
+static int pull_channel(struct dpaa2_eth_channel *ch)
+{
+	int err;
+	int dequeues = -1;
+
+	/* Retry while portal is busy */
+	do {
+		err = dpaa2_io_service_pull_channel(ch->dpio, ch->ch_id,
+						    ch->store);
+		dequeues++;
+		cpu_relax();
+	} while (err == -EBUSY);
+
+	ch->stats.dequeue_portal_busy += dequeues;
+	if (unlikely(err))
+		ch->stats.pull_err++;
+
+	return err;
+}
+
+/* NAPI poll routine
+ *
+ * Frames are dequeued from the QMan channel associated with this NAPI context.
+ * Rx, Tx confirmation and (if configured) Rx error frames all count
+ * towards the NAPI budget.
+ */
+static int dpaa2_eth_poll(struct napi_struct *napi, int budget)
+{
+	struct dpaa2_eth_channel *ch;
+	int cleaned = 0, store_cleaned;
+	struct dpaa2_eth_priv *priv;
+	int err;
+
+	ch = container_of(napi, struct dpaa2_eth_channel, napi);
+	priv = ch->priv;
+
+	while (cleaned < budget) {
+		err = pull_channel(ch);
+		if (unlikely(err))
+			break;
+
+		/* Refill pool if appropriate */
+		refill_pool(priv, ch, priv->bpid);
+
+		store_cleaned = consume_frames(ch);
+		cleaned += store_cleaned;
+
+		/* If we have enough budget left for a full store,
+		 * try a new pull dequeue, otherwise we're done here
+		 */
+		if (store_cleaned == 0 ||
+		    cleaned > budget - DPAA2_ETH_STORE_SIZE)
+			break;
+	}
+
+	if (cleaned < budget && napi_complete_done(napi, cleaned)) {
+		/* Re-enable data available notifications */
+		do {
+			err = dpaa2_io_service_rearm(ch->dpio, &ch->nctx);
+			cpu_relax();
+		} while (err == -EBUSY);
+		WARN_ONCE(err, "CDAN notifications rearm failed on core %d",
+			  ch->nctx.desired_cpu);
+	}
+
+	ch->stats.frames += cleaned;
+
+	return cleaned;
+}
+
+static void enable_ch_napi(struct dpaa2_eth_priv *priv)
+{
+	struct dpaa2_eth_channel *ch;
+	int i;
+
+	for (i = 0; i < priv->num_channels; i++) {
+		ch = priv->channel[i];
+		napi_enable(&ch->napi);
+	}
+}
+
+static void disable_ch_napi(struct dpaa2_eth_priv *priv)
+{
+	struct dpaa2_eth_channel *ch;
+	int i;
+
+	for (i = 0; i < priv->num_channels; i++) {
+		ch = priv->channel[i];
+		napi_disable(&ch->napi);
+	}
+}
+
+static int link_state_update(struct dpaa2_eth_priv *priv)
+{
+	struct dpni_link_state state;
+	int err;
+
+	err = dpni_get_link_state(priv->mc_io, 0, priv->mc_token, &state);
+	if (unlikely(err)) {
+		netdev_err(priv->net_dev,
+			   "dpni_get_link_state() failed\n");
+		return err;
+	}
+
+	/* Chech link state; speed / duplex changes are not treated yet */
+	if (priv->link_state.up == state.up)
+		return 0;
+
+	priv->link_state = state;
+	if (state.up) {
+		netif_carrier_on(priv->net_dev);
+		netif_tx_start_all_queues(priv->net_dev);
+	} else {
+		netif_tx_stop_all_queues(priv->net_dev);
+		netif_carrier_off(priv->net_dev);
+	}
+
+	netdev_info(priv->net_dev, "Link Event: state %s\n",
+		    state.up ? "up" : "down");
+
+	return 0;
+}
+
+static int dpaa2_eth_open(struct net_device *net_dev)
+{
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	int err;
+
+	err = seed_pool(priv, priv->bpid);
+	if (err) {
+		/* Not much to do; the buffer pool, though not filled up,
+		 * may still contain some buffers which would enable us
+		 * to limp on.
+		 */
+		netdev_err(net_dev, "Buffer seeding failed for DPBP %d (bpid=%d)\n",
+			   priv->dpbp_dev->obj_desc.id, priv->bpid);
+	}
+
+	/* We'll only start the txqs when the link is actually ready; make sure
+	 * we don't race against the link up notification, which may come
+	 * immediately after dpni_enable();
+	 */
+	netif_tx_stop_all_queues(net_dev);
+	enable_ch_napi(priv);
+	/* Also, explicitly set carrier off, otherwise netif_carrier_ok() will
+	 * return true and cause 'ip link show' to report the LOWER_UP flag,
+	 * even though the link notification wasn't even received.
+	 */
+	netif_carrier_off(net_dev);
+
+	err = dpni_enable(priv->mc_io, 0, priv->mc_token);
+	if (err < 0) {
+		netdev_err(net_dev, "dpni_enable() failed\n");
+		goto enable_err;
+	}
+
+	/* If the DPMAC object has already processed the link up interrupt,
+	 * we have to learn the link state ourselves.
+	 */
+	err = link_state_update(priv);
+	if (err < 0) {
+		netdev_err(net_dev, "Can't update link state\n");
+		goto link_state_err;
+	}
+
+	return 0;
+
+link_state_err:
+enable_err:
+	disable_ch_napi(priv);
+	drain_pool(priv);
+	return err;
+}
+
+/* The DPIO store must be empty when we call this,
+ * at the end of every NAPI cycle.
+ */
+static u32 drain_channel(struct dpaa2_eth_priv *priv,
+			 struct dpaa2_eth_channel *ch)
+{
+	u32 drained = 0, total = 0;
+
+	do {
+		pull_channel(ch);
+		drained = consume_frames(ch);
+		total += drained;
+	} while (drained);
+
+	return total;
+}
+
+static u32 drain_ingress_frames(struct dpaa2_eth_priv *priv)
+{
+	struct dpaa2_eth_channel *ch;
+	int i;
+	u32 drained = 0;
+
+	for (i = 0; i < priv->num_channels; i++) {
+		ch = priv->channel[i];
+		drained += drain_channel(priv, ch);
+	}
+
+	return drained;
+}
+
+static int dpaa2_eth_stop(struct net_device *net_dev)
+{
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	int dpni_enabled;
+	int retries = 10;
+	u32 drained;
+
+	netif_tx_stop_all_queues(net_dev);
+	netif_carrier_off(net_dev);
+
+	/* Loop while dpni_disable() attempts to drain the egress FQs
+	 * and confirm them back to us.
+	 */
+	do {
+		dpni_disable(priv->mc_io, 0, priv->mc_token);
+		dpni_is_enabled(priv->mc_io, 0, priv->mc_token, &dpni_enabled);
+		if (dpni_enabled)
+			/* Allow the hardware some slack */
+			msleep(100);
+	} while (dpni_enabled && --retries);
+	if (!retries) {
+		netdev_warn(net_dev, "Retry count exceeded disabling DPNI\n");
+		/* Must go on and disable NAPI nonetheless, so we don't crash at
+		 * the next "ifconfig up"
+		 */
+	}
+
+	/* Wait for NAPI to complete on every core and disable it.
+	 * In particular, this will also prevent NAPI from being rescheduled if
+	 * a new CDAN is serviced, effectively discarding the CDAN. We therefore
+	 * don't even need to disarm the channels, except perhaps for the case
+	 * of a huge coalescing value.
+	 */
+	disable_ch_napi(priv);
+
+	 /* Manually drain the Rx and TxConf queues */
+	drained = drain_ingress_frames(priv);
+	if (drained)
+		netdev_dbg(net_dev, "Drained %d frames.\n", drained);
+
+	/* Empty the buffer pool */
+	drain_pool(priv);
+
+	return 0;
+}
+
+static int dpaa2_eth_init(struct net_device *net_dev)
+{
+	u64 supported = 0;
+	u64 not_supported = 0;
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	u32 options = priv->dpni_attrs.options;
+
+	/* Capabilities listing */
+	supported |= IFF_LIVE_ADDR_CHANGE;
+
+	if (options & DPNI_OPT_NO_MAC_FILTER)
+		not_supported |= IFF_UNICAST_FLT;
+	else
+		supported |= IFF_UNICAST_FLT;
+
+	net_dev->priv_flags |= supported;
+	net_dev->priv_flags &= ~not_supported;
+
+	/* Features */
+	net_dev->features = NETIF_F_RXCSUM |
+			    NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
+			    NETIF_F_SG | NETIF_F_HIGHDMA |
+			    NETIF_F_LLTX;
+	net_dev->hw_features = net_dev->features;
+
+	return 0;
+}
+
+static int dpaa2_eth_set_addr(struct net_device *net_dev, void *addr)
+{
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	struct device *dev = net_dev->dev.parent;
+	int err;
+
+	err = eth_mac_addr(net_dev, addr);
+	if (err < 0) {
+		dev_err(dev, "eth_mac_addr() failed (%d)\n", err);
+		return err;
+	}
+
+	err = dpni_set_primary_mac_addr(priv->mc_io, 0, priv->mc_token,
+					net_dev->dev_addr);
+	if (err) {
+		dev_err(dev, "dpni_set_primary_mac_addr() failed (%d)\n", err);
+		return err;
+	}
+
+	return 0;
+}
+
+/** Fill in counters maintained by the GPP driver. These may be different from
+ * the hardware counters obtained by ethtool.
+ */
+static void dpaa2_eth_get_stats(struct net_device *net_dev,
+				struct rtnl_link_stats64 *stats)
+{
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	struct rtnl_link_stats64 *percpu_stats;
+	u64 *cpustats;
+	u64 *netstats = (u64 *)stats;
+	int i, j;
+	int num = sizeof(struct rtnl_link_stats64) / sizeof(u64);
+
+	for_each_possible_cpu(i) {
+		percpu_stats = per_cpu_ptr(priv->percpu_stats, i);
+		cpustats = (u64 *)percpu_stats;
+		for (j = 0; j < num; j++)
+			netstats[j] += cpustats[j];
+	}
+}
+
+/* Copy mac unicast addresses from @net_dev to @priv.
+ * Its sole purpose is to make dpaa2_eth_set_rx_mode() more readable.
+ */
+static void add_uc_hw_addr(const struct net_device *net_dev,
+			   struct dpaa2_eth_priv *priv)
+{
+	struct netdev_hw_addr *ha;
+	int err;
+
+	netdev_for_each_uc_addr(ha, net_dev) {
+		err = dpni_add_mac_addr(priv->mc_io, 0, priv->mc_token,
+					ha->addr);
+		if (err)
+			netdev_warn(priv->net_dev,
+				    "Could not add ucast MAC %pM to the filtering table (err %d)\n",
+				    ha->addr, err);
+	}
+}
+
+/* Copy mac multicast addresses from @net_dev to @priv
+ * Its sole purpose is to make dpaa2_eth_set_rx_mode() more readable.
+ */
+static void add_mc_hw_addr(const struct net_device *net_dev,
+			   struct dpaa2_eth_priv *priv)
+{
+	struct netdev_hw_addr *ha;
+	int err;
+
+	netdev_for_each_mc_addr(ha, net_dev) {
+		err = dpni_add_mac_addr(priv->mc_io, 0, priv->mc_token,
+					ha->addr);
+		if (err)
+			netdev_warn(priv->net_dev,
+				    "Could not add mcast MAC %pM to the filtering table (err %d)\n",
+				    ha->addr, err);
+	}
+}
+
+static void dpaa2_eth_set_rx_mode(struct net_device *net_dev)
+{
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	int uc_count = netdev_uc_count(net_dev);
+	int mc_count = netdev_mc_count(net_dev);
+	u8 max_mac = priv->dpni_attrs.mac_filter_entries;
+	u32 options = priv->dpni_attrs.options;
+	u16 mc_token = priv->mc_token;
+	struct fsl_mc_io *mc_io = priv->mc_io;
+	int err;
+
+	/* Basic sanity checks; these probably indicate a misconfiguration */
+	if (options & DPNI_OPT_NO_MAC_FILTER && max_mac != 0)
+		netdev_info(net_dev,
+			    "mac_filter_entries=%d, DPNI_OPT_NO_MAC_FILTER option must be disabled\n",
+			    max_mac);
+
+	/* Force promiscuous if the uc or mc counts exceed our capabilities. */
+	if (uc_count > max_mac) {
+		netdev_info(net_dev,
+			    "Unicast addr count reached %d, max allowed is %d; forcing promisc\n",
+			    uc_count, max_mac);
+		goto force_promisc;
+	}
+	if (mc_count + uc_count > max_mac) {
+		netdev_info(net_dev,
+			    "Unicast + multicast addr count reached %d, max allowed is %d; forcing promisc\n",
+			    uc_count + mc_count, max_mac);
+		goto force_mc_promisc;
+	}
+
+	/* Adjust promisc settings due to flag combinations */
+	if (net_dev->flags & IFF_PROMISC)
+		goto force_promisc;
+	if (net_dev->flags & IFF_ALLMULTI) {
+		/* First, rebuild unicast filtering table. This should be done
+		 * in promisc mode, in order to avoid frame loss while we
+		 * progressively add entries to the table.
+		 * We don't know whether we had been in promisc already, and
+		 * making an MC call to find out is expensive; so set uc promisc
+		 * nonetheless.
+		 */
+		err = dpni_set_unicast_promisc(mc_io, 0, mc_token, 1);
+		if (err)
+			netdev_warn(net_dev, "Can't set uc promisc\n");
+
+		/* Actual uc table reconstruction. */
+		err = dpni_clear_mac_filters(mc_io, 0, mc_token, 1, 0);
+		if (err)
+			netdev_warn(net_dev, "Can't clear uc filters\n");
+		add_uc_hw_addr(net_dev, priv);
+
+		/* Finally, clear uc promisc and set mc promisc as requested. */
+		err = dpni_set_unicast_promisc(mc_io, 0, mc_token, 0);
+		if (err)
+			netdev_warn(net_dev, "Can't clear uc promisc\n");
+		goto force_mc_promisc;
+	}
+
+	/* Neither unicast, nor multicast promisc will be on... eventually.
+	 * For now, rebuild mac filtering tables while forcing both of them on.
+	 */
+	err = dpni_set_unicast_promisc(mc_io, 0, mc_token, 1);
+	if (err)
+		netdev_warn(net_dev, "Can't set uc promisc (%d)\n", err);
+	err = dpni_set_multicast_promisc(mc_io, 0, mc_token, 1);
+	if (err)
+		netdev_warn(net_dev, "Can't set mc promisc (%d)\n", err);
+
+	/* Actual mac filtering tables reconstruction */
+	err = dpni_clear_mac_filters(mc_io, 0, mc_token, 1, 1);
+	if (err)
+		netdev_warn(net_dev, "Can't clear mac filters\n");
+	add_mc_hw_addr(net_dev, priv);
+	add_uc_hw_addr(net_dev, priv);
+
+	/* Now we can clear both ucast and mcast promisc, without risking
+	 * to drop legitimate frames anymore.
+	 */
+	err = dpni_set_unicast_promisc(mc_io, 0, mc_token, 0);
+	if (err)
+		netdev_warn(net_dev, "Can't clear ucast promisc\n");
+	err = dpni_set_multicast_promisc(mc_io, 0, mc_token, 0);
+	if (err)
+		netdev_warn(net_dev, "Can't clear mcast promisc\n");
+
+	return;
+
+force_promisc:
+	err = dpni_set_unicast_promisc(mc_io, 0, mc_token, 1);
+	if (err)
+		netdev_warn(net_dev, "Can't set ucast promisc\n");
+force_mc_promisc:
+	err = dpni_set_multicast_promisc(mc_io, 0, mc_token, 1);
+	if (err)
+		netdev_warn(net_dev, "Can't set mcast promisc\n");
+}
+
+static int dpaa2_eth_set_features(struct net_device *net_dev,
+				  netdev_features_t features)
+{
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	netdev_features_t changed = features ^ net_dev->features;
+	bool enable;
+	int err;
+
+	if (changed & NETIF_F_RXCSUM) {
+		enable = !!(features & NETIF_F_RXCSUM);
+		err = set_rx_csum(priv, enable);
+		if (err)
+			return err;
+	}
+
+	if (changed & (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM)) {
+		enable = !!(features & (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM));
+		err = set_tx_csum(priv, enable);
+		if (err)
+			return err;
+	}
+
+	return 0;
+}
+
+static int dpaa2_eth_ts_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
+{
+	struct dpaa2_eth_priv *priv = netdev_priv(dev);
+	struct hwtstamp_config config;
+
+	if (copy_from_user(&config, rq->ifr_data, sizeof(config)))
+		return -EFAULT;
+
+	switch (config.tx_type) {
+	case HWTSTAMP_TX_OFF:
+		priv->tx_tstamp = false;
+		break;
+	case HWTSTAMP_TX_ON:
+		priv->tx_tstamp = true;
+		break;
+	default:
+		return -ERANGE;
+	}
+
+	if (config.rx_filter == HWTSTAMP_FILTER_NONE) {
+		priv->rx_tstamp = false;
+	} else {
+		priv->rx_tstamp = true;
+		/* TS is set for all frame types, not only those requested */
+		config.rx_filter = HWTSTAMP_FILTER_ALL;
+	}
+
+	return copy_to_user(rq->ifr_data, &config, sizeof(config)) ?
+			-EFAULT : 0;
+}
+
+static int dpaa2_eth_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
+{
+	if (cmd == SIOCSHWTSTAMP)
+		return dpaa2_eth_ts_ioctl(dev, rq, cmd);
+
+	return -EINVAL;
+}
+
+static const struct net_device_ops dpaa2_eth_ops = {
+	.ndo_open = dpaa2_eth_open,
+	.ndo_start_xmit = dpaa2_eth_tx,
+	.ndo_stop = dpaa2_eth_stop,
+	.ndo_init = dpaa2_eth_init,
+	.ndo_set_mac_address = dpaa2_eth_set_addr,
+	.ndo_get_stats64 = dpaa2_eth_get_stats,
+	.ndo_set_rx_mode = dpaa2_eth_set_rx_mode,
+	.ndo_set_features = dpaa2_eth_set_features,
+	.ndo_do_ioctl = dpaa2_eth_ioctl,
+};
+
+static void cdan_cb(struct dpaa2_io_notification_ctx *ctx)
+{
+	struct dpaa2_eth_channel *ch;
+
+	ch = container_of(ctx, struct dpaa2_eth_channel, nctx);
+
+	/* Update NAPI statistics */
+	ch->stats.cdan++;
+
+	napi_schedule_irqoff(&ch->napi);
+}
+
+/* Allocate and configure a DPCON object */
+static struct fsl_mc_device *setup_dpcon(struct dpaa2_eth_priv *priv)
+{
+	struct fsl_mc_device *dpcon;
+	struct device *dev = priv->net_dev->dev.parent;
+	struct dpcon_attr attrs;
+	int err;
+
+	err = fsl_mc_object_allocate(to_fsl_mc_device(dev),
+				     FSL_MC_POOL_DPCON, &dpcon);
+	if (err) {
+		dev_info(dev, "Not enough DPCONs, will go on as-is\n");
+		return NULL;
+	}
+
+	err = dpcon_open(priv->mc_io, 0, dpcon->obj_desc.id, &dpcon->mc_handle);
+	if (err) {
+		dev_err(dev, "dpcon_open() failed\n");
+		goto free;
+	}
+
+	err = dpcon_reset(priv->mc_io, 0, dpcon->mc_handle);
+	if (err) {
+		dev_err(dev, "dpcon_reset() failed\n");
+		goto close;
+	}
+
+	err = dpcon_get_attributes(priv->mc_io, 0, dpcon->mc_handle, &attrs);
+	if (err) {
+		dev_err(dev, "dpcon_get_attributes() failed\n");
+		goto close;
+	}
+
+	err = dpcon_enable(priv->mc_io, 0, dpcon->mc_handle);
+	if (err) {
+		dev_err(dev, "dpcon_enable() failed\n");
+		goto close;
+	}
+
+	return dpcon;
+
+close:
+	dpcon_close(priv->mc_io, 0, dpcon->mc_handle);
+free:
+	fsl_mc_object_free(dpcon);
+
+	return NULL;
+}
+
+static void free_dpcon(struct dpaa2_eth_priv *priv,
+		       struct fsl_mc_device *dpcon)
+{
+	dpcon_disable(priv->mc_io, 0, dpcon->mc_handle);
+	dpcon_close(priv->mc_io, 0, dpcon->mc_handle);
+	fsl_mc_object_free(dpcon);
+}
+
+static struct dpaa2_eth_channel *
+alloc_channel(struct dpaa2_eth_priv *priv)
+{
+	struct dpaa2_eth_channel *channel;
+	struct dpcon_attr attr;
+	struct device *dev = priv->net_dev->dev.parent;
+	int err;
+
+	channel = kzalloc(sizeof(*channel), GFP_KERNEL);
+	if (!channel)
+		return NULL;
+
+	channel->dpcon = setup_dpcon(priv);
+	if (!channel->dpcon)
+		goto err_setup;
+
+	err = dpcon_get_attributes(priv->mc_io, 0, channel->dpcon->mc_handle,
+				   &attr);
+	if (err) {
+		dev_err(dev, "dpcon_get_attributes() failed\n");
+		goto err_get_attr;
+	}
+
+	channel->dpcon_id = attr.id;
+	channel->ch_id = attr.qbman_ch_id;
+	channel->priv = priv;
+
+	return channel;
+
+err_get_attr:
+	free_dpcon(priv, channel->dpcon);
+err_setup:
+	kfree(channel);
+	return NULL;
+}
+
+static void free_channel(struct dpaa2_eth_priv *priv,
+			 struct dpaa2_eth_channel *channel)
+{
+	free_dpcon(priv, channel->dpcon);
+	kfree(channel);
+}
+
+/* DPIO setup: allocate and configure QBMan channels, setup core affinity
+ * and register data availability notifications
+ */
+static int setup_dpio(struct dpaa2_eth_priv *priv)
+{
+	struct dpaa2_io_notification_ctx *nctx;
+	struct dpaa2_eth_channel *channel;
+	struct dpcon_notification_cfg dpcon_notif_cfg;
+	struct device *dev = priv->net_dev->dev.parent;
+	int i, err;
+
+	/* We want the ability to spread ingress traffic (RX, TX conf) to as
+	 * many cores as possible, so we need one channel for each core
+	 * (unless there's fewer queues than cores, in which case the extra
+	 * channels would be wasted).
+	 * Allocate one channel per core and register it to the core's
+	 * affine DPIO. If not enough channels are available for all cores
+	 * or if some cores don't have an affine DPIO, there will be no
+	 * ingress frame processing on those cores.
+	 */
+	cpumask_clear(&priv->dpio_cpumask);
+	for_each_online_cpu(i) {
+		/* Try to allocate a channel */
+		channel = alloc_channel(priv);
+		if (!channel) {
+			dev_info(dev,
+				 "No affine channel for cpu %d and above\n", i);
+			err = -ENODEV;
+			goto err_alloc_ch;
+		}
+
+		priv->channel[priv->num_channels] = channel;
+
+		nctx = &channel->nctx;
+		nctx->is_cdan = 1;
+		nctx->cb = cdan_cb;
+		nctx->id = channel->ch_id;
+		nctx->desired_cpu = i;
+
+		/* Register the new context */
+		channel->dpio = dpaa2_io_service_select(i);
+		err = dpaa2_io_service_register(channel->dpio, nctx);
+		if (err) {
+			dev_dbg(dev, "No affine DPIO for cpu %d\n", i);
+			/* If no affine DPIO for this core, there's probably
+			 * none available for next cores either. Signal we want
+			 * to retry later, in case the DPIO devices weren't
+			 * probed yet.
+			 */
+			err = -EPROBE_DEFER;
+			goto err_service_reg;
+		}
+
+		/* Register DPCON notification with MC */
+		dpcon_notif_cfg.dpio_id = nctx->dpio_id;
+		dpcon_notif_cfg.priority = 0;
+		dpcon_notif_cfg.user_ctx = nctx->qman64;
+		err = dpcon_set_notification(priv->mc_io, 0,
+					     channel->dpcon->mc_handle,
+					     &dpcon_notif_cfg);
+		if (err) {
+			dev_err(dev, "dpcon_set_notification failed()\n");
+			goto err_set_cdan;
+		}
+
+		/* If we managed to allocate a channel and also found an affine
+		 * DPIO for this core, add it to the final mask
+		 */
+		cpumask_set_cpu(i, &priv->dpio_cpumask);
+		priv->num_channels++;
+
+		/* Stop if we already have enough channels to accommodate all
+		 * RX and TX conf queues
+		 */
+		if (priv->num_channels == dpaa2_eth_queue_count(priv))
+			break;
+	}
+
+	return 0;
+
+err_set_cdan:
+	dpaa2_io_service_deregister(channel->dpio, nctx);
+err_service_reg:
+	free_channel(priv, channel);
+err_alloc_ch:
+	if (cpumask_empty(&priv->dpio_cpumask)) {
+		dev_err(dev, "No cpu with an affine DPIO/DPCON\n");
+		return err;
+	}
+
+	dev_info(dev, "Cores %*pbl available for processing ingress traffic\n",
+		 cpumask_pr_args(&priv->dpio_cpumask));
+
+	return 0;
+}
+
+static void free_dpio(struct dpaa2_eth_priv *priv)
+{
+	int i;
+	struct dpaa2_eth_channel *ch;
+
+	/* deregister CDAN notifications and free channels */
+	for (i = 0; i < priv->num_channels; i++) {
+		ch = priv->channel[i];
+		dpaa2_io_service_deregister(ch->dpio, &ch->nctx);
+		free_channel(priv, ch);
+	}
+}
+
+static struct dpaa2_eth_channel *get_affine_channel(struct dpaa2_eth_priv *priv,
+						    int cpu)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	int i;
+
+	for (i = 0; i < priv->num_channels; i++)
+		if (priv->channel[i]->nctx.desired_cpu == cpu)
+			return priv->channel[i];
+
+	/* We should never get here. Issue a warning and return
+	 * the first channel, because it's still better than nothing
+	 */
+	dev_warn(dev, "No affine channel found for cpu %d\n", cpu);
+
+	return priv->channel[0];
+}
+
+static void set_fq_affinity(struct dpaa2_eth_priv *priv)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	struct cpumask xps_mask;
+	struct dpaa2_eth_fq *fq;
+	int rx_cpu, txc_cpu;
+	int i, err;
+
+	/* For each FQ, pick one channel/CPU to deliver frames to.
+	 * This may well change at runtime, either through irqbalance or
+	 * through direct user intervention.
+	 */
+	rx_cpu = txc_cpu = cpumask_first(&priv->dpio_cpumask);
+
+	for (i = 0; i < priv->num_fqs; i++) {
+		fq = &priv->fq[i];
+		switch (fq->type) {
+		case DPAA2_RX_FQ:
+			fq->target_cpu = rx_cpu;
+			rx_cpu = cpumask_next(rx_cpu, &priv->dpio_cpumask);
+			if (rx_cpu >= nr_cpu_ids)
+				rx_cpu = cpumask_first(&priv->dpio_cpumask);
+			break;
+		case DPAA2_TX_CONF_FQ:
+			fq->target_cpu = txc_cpu;
+
+			/* Tell the stack to affine to txc_cpu the Tx queue
+			 * associated with the confirmation one
+			 */
+			cpumask_clear(&xps_mask);
+			cpumask_set_cpu(txc_cpu, &xps_mask);
+			err = netif_set_xps_queue(priv->net_dev, &xps_mask,
+						  fq->flowid);
+			if (err)
+				dev_err(dev, "Error setting XPS queue\n");
+
+			txc_cpu = cpumask_next(txc_cpu, &priv->dpio_cpumask);
+			if (txc_cpu >= nr_cpu_ids)
+				txc_cpu = cpumask_first(&priv->dpio_cpumask);
+			break;
+		default:
+			dev_err(dev, "Unknown FQ type: %d\n", fq->type);
+		}
+		fq->channel = get_affine_channel(priv, fq->target_cpu);
+	}
+}
+
+static void setup_fqs(struct dpaa2_eth_priv *priv)
+{
+	int i;
+
+	/* We have one TxConf FQ per Tx flow.
+	 * The number of Tx and Rx queues is the same.
+	 * Tx queues come first in the fq array.
+	 */
+	for (i = 0; i < dpaa2_eth_queue_count(priv); i++) {
+		priv->fq[priv->num_fqs].type = DPAA2_TX_CONF_FQ;
+		priv->fq[priv->num_fqs].consume = dpaa2_eth_tx_conf;
+		priv->fq[priv->num_fqs++].flowid = (u16)i;
+	}
+
+	for (i = 0; i < dpaa2_eth_queue_count(priv); i++) {
+		priv->fq[priv->num_fqs].type = DPAA2_RX_FQ;
+		priv->fq[priv->num_fqs].consume = dpaa2_eth_rx;
+		priv->fq[priv->num_fqs++].flowid = (u16)i;
+	}
+
+	/* For each FQ, decide on which core to process incoming frames */
+	set_fq_affinity(priv);
+}
+
+/* Allocate and configure one buffer pool for each interface */
+static int setup_dpbp(struct dpaa2_eth_priv *priv)
+{
+	int err;
+	struct fsl_mc_device *dpbp_dev;
+	struct device *dev = priv->net_dev->dev.parent;
+	struct dpbp_attr dpbp_attrs;
+
+	err = fsl_mc_object_allocate(to_fsl_mc_device(dev), FSL_MC_POOL_DPBP,
+				     &dpbp_dev);
+	if (err) {
+		dev_err(dev, "DPBP device allocation failed\n");
+		return err;
+	}
+
+	priv->dpbp_dev = dpbp_dev;
+
+	err = dpbp_open(priv->mc_io, 0, priv->dpbp_dev->obj_desc.id,
+			&dpbp_dev->mc_handle);
+	if (err) {
+		dev_err(dev, "dpbp_open() failed\n");
+		goto err_open;
+	}
+
+	err = dpbp_reset(priv->mc_io, 0, dpbp_dev->mc_handle);
+	if (err) {
+		dev_err(dev, "dpbp_reset() failed\n");
+		goto err_reset;
+	}
+
+	err = dpbp_enable(priv->mc_io, 0, dpbp_dev->mc_handle);
+	if (err) {
+		dev_err(dev, "dpbp_enable() failed\n");
+		goto err_enable;
+	}
+
+	err = dpbp_get_attributes(priv->mc_io, 0, dpbp_dev->mc_handle,
+				  &dpbp_attrs);
+	if (err) {
+		dev_err(dev, "dpbp_get_attributes() failed\n");
+		goto err_get_attr;
+	}
+	priv->bpid = dpbp_attrs.bpid;
+
+	return 0;
+
+err_get_attr:
+	dpbp_disable(priv->mc_io, 0, dpbp_dev->mc_handle);
+err_enable:
+err_reset:
+	dpbp_close(priv->mc_io, 0, dpbp_dev->mc_handle);
+err_open:
+	fsl_mc_object_free(dpbp_dev);
+
+	return err;
+}
+
+static void free_dpbp(struct dpaa2_eth_priv *priv)
+{
+	drain_pool(priv);
+	dpbp_disable(priv->mc_io, 0, priv->dpbp_dev->mc_handle);
+	dpbp_close(priv->mc_io, 0, priv->dpbp_dev->mc_handle);
+	fsl_mc_object_free(priv->dpbp_dev);
+}
+
+static int set_buffer_layout(struct dpaa2_eth_priv *priv)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	struct dpni_buffer_layout buf_layout = {0};
+	int err;
+
+	/* We need to check for WRIOP version 1.0.0, but depending on the MC
+	 * version, this number is not always provided correctly on rev1.
+	 * We need to check for both alternatives in this situation.
+	 */
+	if (priv->dpni_attrs.wriop_version == DPAA2_WRIOP_VERSION(0, 0, 0) ||
+	    priv->dpni_attrs.wriop_version == DPAA2_WRIOP_VERSION(1, 0, 0))
+		priv->rx_buf_align = DPAA2_ETH_RX_BUF_ALIGN_REV1;
+	else
+		priv->rx_buf_align = DPAA2_ETH_RX_BUF_ALIGN;
+
+	/* tx buffer */
+	buf_layout.private_data_size = DPAA2_ETH_SWA_SIZE;
+	buf_layout.pass_timestamp = true;
+	buf_layout.options = DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE |
+			     DPNI_BUF_LAYOUT_OPT_TIMESTAMP;
+	err = dpni_set_buffer_layout(priv->mc_io, 0, priv->mc_token,
+				     DPNI_QUEUE_TX, &buf_layout);
+	if (err) {
+		dev_err(dev, "dpni_set_buffer_layout(TX) failed\n");
+		return err;
+	}
+
+	/* tx-confirm buffer */
+	buf_layout.options = DPNI_BUF_LAYOUT_OPT_TIMESTAMP;
+	err = dpni_set_buffer_layout(priv->mc_io, 0, priv->mc_token,
+				     DPNI_QUEUE_TX_CONFIRM, &buf_layout);
+	if (err) {
+		dev_err(dev, "dpni_set_buffer_layout(TX_CONF) failed\n");
+		return err;
+	}
+
+	/* Now that we've set our tx buffer layout, retrieve the minimum
+	 * required tx data offset.
+	 */
+	err = dpni_get_tx_data_offset(priv->mc_io, 0, priv->mc_token,
+				      &priv->tx_data_offset);
+	if (err) {
+		dev_err(dev, "dpni_get_tx_data_offset() failed\n");
+		return err;
+	}
+
+	if ((priv->tx_data_offset % 64) != 0)
+		dev_warn(dev, "Tx data offset (%d) not a multiple of 64B\n",
+			 priv->tx_data_offset);
+
+	/* rx buffer */
+	buf_layout.pass_frame_status = true;
+	buf_layout.pass_parser_result = true;
+	buf_layout.data_align = priv->rx_buf_align;
+	buf_layout.data_head_room = dpaa2_eth_rx_head_room(priv);
+	buf_layout.private_data_size = 0;
+	buf_layout.options = DPNI_BUF_LAYOUT_OPT_PARSER_RESULT |
+			     DPNI_BUF_LAYOUT_OPT_FRAME_STATUS |
+			     DPNI_BUF_LAYOUT_OPT_DATA_ALIGN |
+			     DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM |
+			     DPNI_BUF_LAYOUT_OPT_TIMESTAMP;
+	err = dpni_set_buffer_layout(priv->mc_io, 0, priv->mc_token,
+				     DPNI_QUEUE_RX, &buf_layout);
+	if (err) {
+		dev_err(dev, "dpni_set_buffer_layout(RX) failed\n");
+		return err;
+	}
+
+	return 0;
+}
+
+/* Configure the DPNI object this interface is associated with */
+static int setup_dpni(struct fsl_mc_device *ls_dev)
+{
+	struct device *dev = &ls_dev->dev;
+	struct dpaa2_eth_priv *priv;
+	struct net_device *net_dev;
+	int err;
+
+	net_dev = dev_get_drvdata(dev);
+	priv = netdev_priv(net_dev);
+
+	/* get a handle for the DPNI object */
+	err = dpni_open(priv->mc_io, 0, ls_dev->obj_desc.id, &priv->mc_token);
+	if (err) {
+		dev_err(dev, "dpni_open() failed\n");
+		return err;
+	}
+
+	/* Check if we can work with this DPNI object */
+	err = dpni_get_api_version(priv->mc_io, 0, &priv->dpni_ver_major,
+				   &priv->dpni_ver_minor);
+	if (err) {
+		dev_err(dev, "dpni_get_api_version() failed\n");
+		goto close;
+	}
+	if (dpaa2_eth_cmp_dpni_ver(priv, DPNI_VER_MAJOR, DPNI_VER_MINOR) < 0) {
+		dev_err(dev, "DPNI version %u.%u not supported, need >= %u.%u\n",
+			priv->dpni_ver_major, priv->dpni_ver_minor,
+			DPNI_VER_MAJOR, DPNI_VER_MINOR);
+		err = -ENOTSUPP;
+		goto close;
+	}
+
+	ls_dev->mc_io = priv->mc_io;
+	ls_dev->mc_handle = priv->mc_token;
+
+	err = dpni_reset(priv->mc_io, 0, priv->mc_token);
+	if (err) {
+		dev_err(dev, "dpni_reset() failed\n");
+		goto close;
+	}
+
+	err = dpni_get_attributes(priv->mc_io, 0, priv->mc_token,
+				  &priv->dpni_attrs);
+	if (err) {
+		dev_err(dev, "dpni_get_attributes() failed (err=%d)\n", err);
+		goto close;
+	}
+
+	err = set_buffer_layout(priv);
+	if (err)
+		goto close;
+
+	return 0;
+
+close:
+	dpni_close(priv->mc_io, 0, priv->mc_token);
+
+	return err;
+}
+
+static void free_dpni(struct dpaa2_eth_priv *priv)
+{
+	int err;
+
+	err = dpni_reset(priv->mc_io, 0, priv->mc_token);
+	if (err)
+		netdev_warn(priv->net_dev, "dpni_reset() failed (err %d)\n",
+			    err);
+
+	dpni_close(priv->mc_io, 0, priv->mc_token);
+}
+
+static int setup_rx_flow(struct dpaa2_eth_priv *priv,
+			 struct dpaa2_eth_fq *fq)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	struct dpni_queue queue;
+	struct dpni_queue_id qid;
+	struct dpni_taildrop td;
+	int err;
+
+	err = dpni_get_queue(priv->mc_io, 0, priv->mc_token,
+			     DPNI_QUEUE_RX, 0, fq->flowid, &queue, &qid);
+	if (err) {
+		dev_err(dev, "dpni_get_queue(RX) failed\n");
+		return err;
+	}
+
+	fq->fqid = qid.fqid;
+
+	queue.destination.id = fq->channel->dpcon_id;
+	queue.destination.type = DPNI_DEST_DPCON;
+	queue.destination.priority = 1;
+	queue.user_context = (u64)(uintptr_t)fq;
+	err = dpni_set_queue(priv->mc_io, 0, priv->mc_token,
+			     DPNI_QUEUE_RX, 0, fq->flowid,
+			     DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST,
+			     &queue);
+	if (err) {
+		dev_err(dev, "dpni_set_queue(RX) failed\n");
+		return err;
+	}
+
+	td.enable = 1;
+	td.threshold = DPAA2_ETH_TAILDROP_THRESH;
+	err = dpni_set_taildrop(priv->mc_io, 0, priv->mc_token, DPNI_CP_QUEUE,
+				DPNI_QUEUE_RX, 0, fq->flowid, &td);
+	if (err) {
+		dev_err(dev, "dpni_set_threshold() failed\n");
+		return err;
+	}
+
+	return 0;
+}
+
+static int setup_tx_flow(struct dpaa2_eth_priv *priv,
+			 struct dpaa2_eth_fq *fq)
+{
+	struct device *dev = priv->net_dev->dev.parent;
+	struct dpni_queue queue;
+	struct dpni_queue_id qid;
+	int err;
+
+	err = dpni_get_queue(priv->mc_io, 0, priv->mc_token,
+			     DPNI_QUEUE_TX, 0, fq->flowid, &queue, &qid);
+	if (err) {
+		dev_err(dev, "dpni_get_queue(TX) failed\n");
+		return err;
+	}
+
+	fq->tx_qdbin = qid.qdbin;
+
+	err = dpni_get_queue(priv->mc_io, 0, priv->mc_token,
+			     DPNI_QUEUE_TX_CONFIRM, 0, fq->flowid,
+			     &queue, &qid);
+	if (err) {
+		dev_err(dev, "dpni_get_queue(TX_CONF) failed\n");
+		return err;
+	}
+
+	fq->fqid = qid.fqid;
+
+	queue.destination.id = fq->channel->dpcon_id;
+	queue.destination.type = DPNI_DEST_DPCON;
+	queue.destination.priority = 0;
+	queue.user_context = (u64)(uintptr_t)fq;
+	err = dpni_set_queue(priv->mc_io, 0, priv->mc_token,
+			     DPNI_QUEUE_TX_CONFIRM, 0, fq->flowid,
+			     DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST,
+			     &queue);
+	if (err) {
+		dev_err(dev, "dpni_set_queue(TX_CONF) failed\n");
+		return err;
+	}
+
+	return 0;
+}
+
+/* Hash key is a 5-tuple: IPsrc, IPdst, IPnextproto, L4src, L4dst */
+static const struct dpaa2_eth_hash_fields hash_fields[] = {
+	{
+		/* IP header */
+		.rxnfc_field = RXH_IP_SRC,
+		.cls_prot = NET_PROT_IP,
+		.cls_field = NH_FLD_IP_SRC,
+		.size = 4,
+	}, {
+		.rxnfc_field = RXH_IP_DST,
+		.cls_prot = NET_PROT_IP,
+		.cls_field = NH_FLD_IP_DST,
+		.size = 4,
+	}, {
+		.rxnfc_field = RXH_L3_PROTO,
+		.cls_prot = NET_PROT_IP,
+		.cls_field = NH_FLD_IP_PROTO,
+		.size = 1,
+	}, {
+		/* Using UDP ports, this is functionally equivalent to raw
+		 * byte pairs from L4 header.
+		 */
+		.rxnfc_field = RXH_L4_B_0_1,
+		.cls_prot = NET_PROT_UDP,
+		.cls_field = NH_FLD_UDP_PORT_SRC,
+		.size = 2,
+	}, {
+		.rxnfc_field = RXH_L4_B_2_3,
+		.cls_prot = NET_PROT_UDP,
+		.cls_field = NH_FLD_UDP_PORT_DST,
+		.size = 2,
+	},
+};
+
+/* Set RX hash options
+ * flags is a combination of RXH_ bits
+ */
+static int dpaa2_eth_set_hash(struct net_device *net_dev, u64 flags)
+{
+	struct device *dev = net_dev->dev.parent;
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	struct dpkg_profile_cfg cls_cfg;
+	struct dpni_rx_tc_dist_cfg dist_cfg;
+	u8 *dma_mem;
+	int i;
+	int err = 0;
+
+	if (!dpaa2_eth_hash_enabled(priv)) {
+		dev_dbg(dev, "Hashing support is not enabled\n");
+		return 0;
+	}
+
+	memset(&cls_cfg, 0, sizeof(cls_cfg));
+
+	for (i = 0; i < ARRAY_SIZE(hash_fields); i++) {
+		struct dpkg_extract *key =
+			&cls_cfg.extracts[cls_cfg.num_extracts];
+
+		if (!(flags & hash_fields[i].rxnfc_field))
+			continue;
+
+		if (cls_cfg.num_extracts >= DPKG_MAX_NUM_OF_EXTRACTS) {
+			dev_err(dev, "error adding key extraction rule, too many rules?\n");
+			return -E2BIG;
+		}
+
+		key->type = DPKG_EXTRACT_FROM_HDR;
+		key->extract.from_hdr.prot = hash_fields[i].cls_prot;
+		key->extract.from_hdr.type = DPKG_FULL_FIELD;
+		key->extract.from_hdr.field = hash_fields[i].cls_field;
+		cls_cfg.num_extracts++;
+
+		priv->rx_hash_fields |= hash_fields[i].rxnfc_field;
+	}
+
+	dma_mem = kzalloc(DPAA2_CLASSIFIER_DMA_SIZE, GFP_KERNEL);
+	if (!dma_mem)
+		return -ENOMEM;
+
+	err = dpni_prepare_key_cfg(&cls_cfg, dma_mem);
+	if (err) {
+		dev_err(dev, "dpni_prepare_key_cfg error %d\n", err);
+		goto err_prep_key;
+	}
+
+	memset(&dist_cfg, 0, sizeof(dist_cfg));
+
+	/* Prepare for setting the rx dist */
+	dist_cfg.key_cfg_iova = dma_map_single(dev, dma_mem,
+					       DPAA2_CLASSIFIER_DMA_SIZE,
+					       DMA_TO_DEVICE);
+	if (dma_mapping_error(dev, dist_cfg.key_cfg_iova)) {
+		dev_err(dev, "DMA mapping failed\n");
+		err = -ENOMEM;
+		goto err_dma_map;
+	}
+
+	dist_cfg.dist_size = dpaa2_eth_queue_count(priv);
+	dist_cfg.dist_mode = DPNI_DIST_MODE_HASH;
+
+	err = dpni_set_rx_tc_dist(priv->mc_io, 0, priv->mc_token, 0, &dist_cfg);
+	dma_unmap_single(dev, dist_cfg.key_cfg_iova,
+			 DPAA2_CLASSIFIER_DMA_SIZE, DMA_TO_DEVICE);
+	if (err)
+		dev_err(dev, "dpni_set_rx_tc_dist() error %d\n", err);
+
+err_dma_map:
+err_prep_key:
+	kfree(dma_mem);
+	return err;
+}
+
+/* Bind the DPNI to its needed objects and resources: buffer pool, DPIOs,
+ * frame queues and channels
+ */
+static int bind_dpni(struct dpaa2_eth_priv *priv)
+{
+	struct net_device *net_dev = priv->net_dev;
+	struct device *dev = net_dev->dev.parent;
+	struct dpni_pools_cfg pools_params;
+	struct dpni_error_cfg err_cfg;
+	int err = 0;
+	int i;
+
+	pools_params.num_dpbp = 1;
+	pools_params.pools[0].dpbp_id = priv->dpbp_dev->obj_desc.id;
+	pools_params.pools[0].backup_pool = 0;
+	pools_params.pools[0].buffer_size = DPAA2_ETH_RX_BUF_SIZE;
+	err = dpni_set_pools(priv->mc_io, 0, priv->mc_token, &pools_params);
+	if (err) {
+		dev_err(dev, "dpni_set_pools() failed\n");
+		return err;
+	}
+
+	/* have the interface implicitly distribute traffic based on
+	 * the default hash key
+	 */
+	err = dpaa2_eth_set_hash(net_dev, DPAA2_RXH_DEFAULT);
+	if (err)
+		dev_err(dev, "Failed to configure hashing\n");
+
+	/* Configure handling of error frames */
+	err_cfg.errors = DPAA2_FAS_RX_ERR_MASK;
+	err_cfg.set_frame_annotation = 1;
+	err_cfg.error_action = DPNI_ERROR_ACTION_DISCARD;
+	err = dpni_set_errors_behavior(priv->mc_io, 0, priv->mc_token,
+				       &err_cfg);
+	if (err) {
+		dev_err(dev, "dpni_set_errors_behavior failed\n");
+		return err;
+	}
+
+	/* Configure Rx and Tx conf queues to generate CDANs */
+	for (i = 0; i < priv->num_fqs; i++) {
+		switch (priv->fq[i].type) {
+		case DPAA2_RX_FQ:
+			err = setup_rx_flow(priv, &priv->fq[i]);
+			break;
+		case DPAA2_TX_CONF_FQ:
+			err = setup_tx_flow(priv, &priv->fq[i]);
+			break;
+		default:
+			dev_err(dev, "Invalid FQ type %d\n", priv->fq[i].type);
+			return -EINVAL;
+		}
+		if (err)
+			return err;
+	}
+
+	err = dpni_get_qdid(priv->mc_io, 0, priv->mc_token,
+			    DPNI_QUEUE_TX, &priv->tx_qdid);
+	if (err) {
+		dev_err(dev, "dpni_get_qdid() failed\n");
+		return err;
+	}
+
+	return 0;
+}
+
+/* Allocate rings for storing incoming frame descriptors */
+static int alloc_rings(struct dpaa2_eth_priv *priv)
+{
+	struct net_device *net_dev = priv->net_dev;
+	struct device *dev = net_dev->dev.parent;
+	int i;
+
+	for (i = 0; i < priv->num_channels; i++) {
+		priv->channel[i]->store =
+			dpaa2_io_store_create(DPAA2_ETH_STORE_SIZE, dev);
+		if (!priv->channel[i]->store) {
+			netdev_err(net_dev, "dpaa2_io_store_create() failed\n");
+			goto err_ring;
+		}
+	}
+
+	return 0;
+
+err_ring:
+	for (i = 0; i < priv->num_channels; i++) {
+		if (!priv->channel[i]->store)
+			break;
+		dpaa2_io_store_destroy(priv->channel[i]->store);
+	}
+
+	return -ENOMEM;
+}
+
+static void free_rings(struct dpaa2_eth_priv *priv)
+{
+	int i;
+
+	for (i = 0; i < priv->num_channels; i++)
+		dpaa2_io_store_destroy(priv->channel[i]->store);
+}
+
+static int set_mac_addr(struct dpaa2_eth_priv *priv)
+{
+	struct net_device *net_dev = priv->net_dev;
+	struct device *dev = net_dev->dev.parent;
+	u8 mac_addr[ETH_ALEN], dpni_mac_addr[ETH_ALEN];
+	int err;
+
+	/* Get firmware address, if any */
+	err = dpni_get_port_mac_addr(priv->mc_io, 0, priv->mc_token, mac_addr);
+	if (err) {
+		dev_err(dev, "dpni_get_port_mac_addr() failed\n");
+		return err;
+	}
+
+	/* Get DPNI attributes address, if any */
+	err = dpni_get_primary_mac_addr(priv->mc_io, 0, priv->mc_token,
+					dpni_mac_addr);
+	if (err) {
+		dev_err(dev, "dpni_get_primary_mac_addr() failed\n");
+		return err;
+	}
+
+	/* First check if firmware has any address configured by bootloader */
+	if (!is_zero_ether_addr(mac_addr)) {
+		/* If the DPMAC addr != DPNI addr, update it */
+		if (!ether_addr_equal(mac_addr, dpni_mac_addr)) {
+			err = dpni_set_primary_mac_addr(priv->mc_io, 0,
+							priv->mc_token,
+							mac_addr);
+			if (err) {
+				dev_err(dev, "dpni_set_primary_mac_addr() failed\n");
+				return err;
+			}
+		}
+		memcpy(net_dev->dev_addr, mac_addr, net_dev->addr_len);
+	} else if (is_zero_ether_addr(dpni_mac_addr)) {
+		/* No MAC address configured, fill in net_dev->dev_addr
+		 * with a random one
+		 */
+		eth_hw_addr_random(net_dev);
+		dev_dbg_once(dev, "device(s) have all-zero hwaddr, replaced with random\n");
+
+		err = dpni_set_primary_mac_addr(priv->mc_io, 0, priv->mc_token,
+						net_dev->dev_addr);
+		if (err) {
+			dev_err(dev, "dpni_set_primary_mac_addr() failed\n");
+			return err;
+		}
+
+		/* Override NET_ADDR_RANDOM set by eth_hw_addr_random(); for all
+		 * practical purposes, this will be our "permanent" mac address,
+		 * at least until the next reboot. This move will also permit
+		 * register_netdevice() to properly fill up net_dev->perm_addr.
+		 */
+		net_dev->addr_assign_type = NET_ADDR_PERM;
+	} else {
+		/* NET_ADDR_PERM is default, all we have to do is
+		 * fill in the device addr.
+		 */
+		memcpy(net_dev->dev_addr, dpni_mac_addr, net_dev->addr_len);
+	}
+
+	return 0;
+}
+
+static int netdev_init(struct net_device *net_dev)
+{
+	struct device *dev = net_dev->dev.parent;
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	u8 bcast_addr[ETH_ALEN];
+	u8 num_queues;
+	int err;
+
+	net_dev->netdev_ops = &dpaa2_eth_ops;
+
+	err = set_mac_addr(priv);
+	if (err)
+		return err;
+
+	/* Explicitly add the broadcast address to the MAC filtering table */
+	eth_broadcast_addr(bcast_addr);
+	err = dpni_add_mac_addr(priv->mc_io, 0, priv->mc_token, bcast_addr);
+	if (err) {
+		dev_err(dev, "dpni_add_mac_addr() failed\n");
+		return err;
+	}
+
+	/* Set MTU upper limit; lower limit is 68B (default value) */
+	net_dev->max_mtu = DPAA2_ETH_MAX_MTU;
+	err = dpni_set_max_frame_length(priv->mc_io, 0, priv->mc_token,
+					DPAA2_ETH_MFL);
+	if (err) {
+		dev_err(dev, "dpni_set_max_frame_length() failed\n");
+		return err;
+	}
+
+	/* Set actual number of queues in the net device */
+	num_queues = dpaa2_eth_queue_count(priv);
+	err = netif_set_real_num_tx_queues(net_dev, num_queues);
+	if (err) {
+		dev_err(dev, "netif_set_real_num_tx_queues() failed\n");
+		return err;
+	}
+	err = netif_set_real_num_rx_queues(net_dev, num_queues);
+	if (err) {
+		dev_err(dev, "netif_set_real_num_rx_queues() failed\n");
+		return err;
+	}
+
+	/* Our .ndo_init will be called herein */
+	err = register_netdev(net_dev);
+	if (err < 0) {
+		dev_err(dev, "register_netdev() failed\n");
+		return err;
+	}
+
+	return 0;
+}
+
+static int poll_link_state(void *arg)
+{
+	struct dpaa2_eth_priv *priv = (struct dpaa2_eth_priv *)arg;
+	int err;
+
+	while (!kthread_should_stop()) {
+		err = link_state_update(priv);
+		if (unlikely(err))
+			return err;
+
+		msleep(DPAA2_ETH_LINK_STATE_REFRESH);
+	}
+
+	return 0;
+}
+
+static irqreturn_t dpni_irq0_handler_thread(int irq_num, void *arg)
+{
+	u32 status = ~0;
+	struct device *dev = (struct device *)arg;
+	struct fsl_mc_device *dpni_dev = to_fsl_mc_device(dev);
+	struct net_device *net_dev = dev_get_drvdata(dev);
+	int err;
+
+	err = dpni_get_irq_status(dpni_dev->mc_io, 0, dpni_dev->mc_handle,
+				  DPNI_IRQ_INDEX, &status);
+	if (unlikely(err)) {
+		netdev_err(net_dev, "Can't get irq status (err %d)\n", err);
+		return IRQ_HANDLED;
+	}
+
+	if (status & DPNI_IRQ_EVENT_LINK_CHANGED)
+		link_state_update(netdev_priv(net_dev));
+
+	return IRQ_HANDLED;
+}
+
+static int setup_irqs(struct fsl_mc_device *ls_dev)
+{
+	int err = 0;
+	struct fsl_mc_device_irq *irq;
+
+	err = fsl_mc_allocate_irqs(ls_dev);
+	if (err) {
+		dev_err(&ls_dev->dev, "MC irqs allocation failed\n");
+		return err;
+	}
+
+	irq = ls_dev->irqs[0];
+	err = devm_request_threaded_irq(&ls_dev->dev, irq->msi_desc->irq,
+					NULL, dpni_irq0_handler_thread,
+					IRQF_NO_SUSPEND | IRQF_ONESHOT,
+					dev_name(&ls_dev->dev), &ls_dev->dev);
+	if (err < 0) {
+		dev_err(&ls_dev->dev, "devm_request_threaded_irq(): %d\n", err);
+		goto free_mc_irq;
+	}
+
+	err = dpni_set_irq_mask(ls_dev->mc_io, 0, ls_dev->mc_handle,
+				DPNI_IRQ_INDEX, DPNI_IRQ_EVENT_LINK_CHANGED);
+	if (err < 0) {
+		dev_err(&ls_dev->dev, "dpni_set_irq_mask(): %d\n", err);
+		goto free_irq;
+	}
+
+	err = dpni_set_irq_enable(ls_dev->mc_io, 0, ls_dev->mc_handle,
+				  DPNI_IRQ_INDEX, 1);
+	if (err < 0) {
+		dev_err(&ls_dev->dev, "dpni_set_irq_enable(): %d\n", err);
+		goto free_irq;
+	}
+
+	return 0;
+
+free_irq:
+	devm_free_irq(&ls_dev->dev, irq->msi_desc->irq, &ls_dev->dev);
+free_mc_irq:
+	fsl_mc_free_irqs(ls_dev);
+
+	return err;
+}
+
+static void add_ch_napi(struct dpaa2_eth_priv *priv)
+{
+	int i;
+	struct dpaa2_eth_channel *ch;
+
+	for (i = 0; i < priv->num_channels; i++) {
+		ch = priv->channel[i];
+		/* NAPI weight *MUST* be a multiple of DPAA2_ETH_STORE_SIZE */
+		netif_napi_add(priv->net_dev, &ch->napi, dpaa2_eth_poll,
+			       NAPI_POLL_WEIGHT);
+	}
+}
+
+static void del_ch_napi(struct dpaa2_eth_priv *priv)
+{
+	int i;
+	struct dpaa2_eth_channel *ch;
+
+	for (i = 0; i < priv->num_channels; i++) {
+		ch = priv->channel[i];
+		netif_napi_del(&ch->napi);
+	}
+}
+
+static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev)
+{
+	struct device *dev;
+	struct net_device *net_dev = NULL;
+	struct dpaa2_eth_priv *priv = NULL;
+	int err = 0;
+
+	dev = &dpni_dev->dev;
+
+	/* Net device */
+	net_dev = alloc_etherdev_mq(sizeof(*priv), DPAA2_ETH_MAX_TX_QUEUES);
+	if (!net_dev) {
+		dev_err(dev, "alloc_etherdev_mq() failed\n");
+		return -ENOMEM;
+	}
+
+	SET_NETDEV_DEV(net_dev, dev);
+	dev_set_drvdata(dev, net_dev);
+
+	priv = netdev_priv(net_dev);
+	priv->net_dev = net_dev;
+
+	priv->iommu_domain = iommu_get_domain_for_dev(dev);
+
+	/* Obtain a MC portal */
+	err = fsl_mc_portal_allocate(dpni_dev, FSL_MC_IO_ATOMIC_CONTEXT_PORTAL,
+				     &priv->mc_io);
+	if (err) {
+		if (err == -ENXIO)
+			err = -EPROBE_DEFER;
+		else
+			dev_err(dev, "MC portal allocation failed\n");
+		goto err_portal_alloc;
+	}
+
+	/* MC objects initialization and configuration */
+	err = setup_dpni(dpni_dev);
+	if (err)
+		goto err_dpni_setup;
+
+	err = setup_dpio(priv);
+	if (err)
+		goto err_dpio_setup;
+
+	setup_fqs(priv);
+
+	err = setup_dpbp(priv);
+	if (err)
+		goto err_dpbp_setup;
+
+	err = bind_dpni(priv);
+	if (err)
+		goto err_bind;
+
+	/* Add a NAPI context for each channel */
+	add_ch_napi(priv);
+
+	/* Percpu statistics */
+	priv->percpu_stats = alloc_percpu(*priv->percpu_stats);
+	if (!priv->percpu_stats) {
+		dev_err(dev, "alloc_percpu(percpu_stats) failed\n");
+		err = -ENOMEM;
+		goto err_alloc_percpu_stats;
+	}
+	priv->percpu_extras = alloc_percpu(*priv->percpu_extras);
+	if (!priv->percpu_extras) {
+		dev_err(dev, "alloc_percpu(percpu_extras) failed\n");
+		err = -ENOMEM;
+		goto err_alloc_percpu_extras;
+	}
+
+	err = netdev_init(net_dev);
+	if (err)
+		goto err_netdev_init;
+
+	/* Configure checksum offload based on current interface flags */
+	err = set_rx_csum(priv, !!(net_dev->features & NETIF_F_RXCSUM));
+	if (err)
+		goto err_csum;
+
+	err = set_tx_csum(priv, !!(net_dev->features &
+				   (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM)));
+	if (err)
+		goto err_csum;
+
+	err = alloc_rings(priv);
+	if (err)
+		goto err_alloc_rings;
+
+	net_dev->ethtool_ops = &dpaa2_ethtool_ops;
+
+	err = setup_irqs(dpni_dev);
+	if (err) {
+		netdev_warn(net_dev, "Failed to set link interrupt, fall back to polling\n");
+		priv->poll_thread = kthread_run(poll_link_state, priv,
+						"%s_poll_link", net_dev->name);
+		if (IS_ERR(priv->poll_thread)) {
+			netdev_err(net_dev, "Error starting polling thread\n");
+			goto err_poll_thread;
+		}
+		priv->do_link_poll = true;
+	}
+
+	dev_info(dev, "Probed interface %s\n", net_dev->name);
+	return 0;
+
+err_poll_thread:
+	free_rings(priv);
+err_alloc_rings:
+err_csum:
+	unregister_netdev(net_dev);
+err_netdev_init:
+	free_percpu(priv->percpu_extras);
+err_alloc_percpu_extras:
+	free_percpu(priv->percpu_stats);
+err_alloc_percpu_stats:
+	del_ch_napi(priv);
+err_bind:
+	free_dpbp(priv);
+err_dpbp_setup:
+	free_dpio(priv);
+err_dpio_setup:
+	free_dpni(priv);
+err_dpni_setup:
+	fsl_mc_portal_free(priv->mc_io);
+err_portal_alloc:
+	dev_set_drvdata(dev, NULL);
+	free_netdev(net_dev);
+
+	return err;
+}
+
+static int dpaa2_eth_remove(struct fsl_mc_device *ls_dev)
+{
+	struct device *dev;
+	struct net_device *net_dev;
+	struct dpaa2_eth_priv *priv;
+
+	dev = &ls_dev->dev;
+	net_dev = dev_get_drvdata(dev);
+	priv = netdev_priv(net_dev);
+
+	unregister_netdev(net_dev);
+
+	if (priv->do_link_poll)
+		kthread_stop(priv->poll_thread);
+	else
+		fsl_mc_free_irqs(ls_dev);
+
+	free_rings(priv);
+	free_percpu(priv->percpu_stats);
+	free_percpu(priv->percpu_extras);
+
+	del_ch_napi(priv);
+	free_dpbp(priv);
+	free_dpio(priv);
+	free_dpni(priv);
+
+	fsl_mc_portal_free(priv->mc_io);
+
+	free_netdev(net_dev);
+
+	dev_dbg(net_dev->dev.parent, "Removed interface %s\n", net_dev->name);
+
+	return 0;
+}
+
+static const struct fsl_mc_device_id dpaa2_eth_match_id_table[] = {
+	{
+		.vendor = FSL_MC_VENDOR_FREESCALE,
+		.obj_type = "dpni",
+	},
+	{ .vendor = 0x0 }
+};
+MODULE_DEVICE_TABLE(fslmc, dpaa2_eth_match_id_table);
+
+static struct fsl_mc_driver dpaa2_eth_driver = {
+	.driver = {
+		.name = KBUILD_MODNAME,
+		.owner = THIS_MODULE,
+	},
+	.probe = dpaa2_eth_probe,
+	.remove = dpaa2_eth_remove,
+	.match_id_table = dpaa2_eth_match_id_table
+};
+
+module_fsl_mc_driver(dpaa2_eth_driver);
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
new file mode 100644
index 0000000..1f86a78
--- /dev/null
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
@@ -0,0 +1,412 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/* Copyright 2014-2016 Freescale Semiconductor Inc.
+ * Copyright 2016 NXP
+ */
+
+#ifndef __DPAA2_ETH_H
+#define __DPAA2_ETH_H
+
+#include <linux/netdevice.h>
+#include <linux/if_vlan.h>
+#include <linux/fsl/mc.h>
+
+#include <soc/fsl/dpaa2-io.h>
+#include <soc/fsl/dpaa2-fd.h>
+#include "dpni.h"
+#include "dpni-cmd.h"
+
+#include "dpaa2-eth-trace.h"
+
+#define DPAA2_WRIOP_VERSION(x, y, z) ((x) << 10 | (y) << 5 | (z) << 0)
+
+#define DPAA2_ETH_STORE_SIZE		16
+
+/* Maximum number of scatter-gather entries in an ingress frame,
+ * considering the maximum receive frame size is 64K
+ */
+#define DPAA2_ETH_MAX_SG_ENTRIES	((64 * 1024) / DPAA2_ETH_RX_BUF_SIZE)
+
+/* Maximum acceptable MTU value. It is in direct relation with the hardware
+ * enforced Max Frame Length (currently 10k).
+ */
+#define DPAA2_ETH_MFL			(10 * 1024)
+#define DPAA2_ETH_MAX_MTU		(DPAA2_ETH_MFL - VLAN_ETH_HLEN)
+/* Convert L3 MTU to L2 MFL */
+#define DPAA2_ETH_L2_MAX_FRM(mtu)	((mtu) + VLAN_ETH_HLEN)
+
+/* Set the taildrop threshold (in bytes) to allow the enqueue of several jumbo
+ * frames in the Rx queues (length of the current frame is not
+ * taken into account when making the taildrop decision)
+ */
+#define DPAA2_ETH_TAILDROP_THRESH	(64 * 1024)
+
+/* Buffer quota per queue. Must be large enough such that for minimum sized
+ * frames taildrop kicks in before the bpool gets depleted, so we compute
+ * how many 64B frames fit inside the taildrop threshold and add a margin
+ * to accommodate the buffer refill delay.
+ */
+#define DPAA2_ETH_MAX_FRAMES_PER_QUEUE	(DPAA2_ETH_TAILDROP_THRESH / 64)
+#define DPAA2_ETH_NUM_BUFS		(DPAA2_ETH_MAX_FRAMES_PER_QUEUE + 256)
+#define DPAA2_ETH_REFILL_THRESH		DPAA2_ETH_MAX_FRAMES_PER_QUEUE
+
+/* Maximum number of buffers that can be acquired/released through a single
+ * QBMan command
+ */
+#define DPAA2_ETH_BUFS_PER_CMD		7
+
+/* Hardware requires alignment for ingress/egress buffer addresses */
+#define DPAA2_ETH_TX_BUF_ALIGN		64
+
+#define DPAA2_ETH_RX_BUF_SIZE		2048
+#define DPAA2_ETH_SKB_SIZE \
+	(DPAA2_ETH_RX_BUF_SIZE + SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
+
+/* Hardware annotation area in RX/TX buffers */
+#define DPAA2_ETH_RX_HWA_SIZE		64
+#define DPAA2_ETH_TX_HWA_SIZE		128
+
+/* PTP nominal frequency 1GHz */
+#define DPAA2_PTP_CLK_PERIOD_NS		1
+
+/* Due to a limitation in WRIOP 1.0.0, the RX buffer data must be aligned
+ * to 256B. For newer revisions, the requirement is only for 64B alignment
+ */
+#define DPAA2_ETH_RX_BUF_ALIGN_REV1	256
+#define DPAA2_ETH_RX_BUF_ALIGN		64
+
+/* We are accommodating a skb backpointer and some S/G info
+ * in the frame's software annotation. The hardware
+ * options are either 0 or 64, so we choose the latter.
+ */
+#define DPAA2_ETH_SWA_SIZE		64
+
+/* Must keep this struct smaller than DPAA2_ETH_SWA_SIZE */
+struct dpaa2_eth_swa {
+	struct sk_buff *skb;
+	struct scatterlist *scl;
+	int num_sg;
+	int sgt_size;
+};
+
+/* Annotation valid bits in FD FRC */
+#define DPAA2_FD_FRC_FASV		0x8000
+#define DPAA2_FD_FRC_FAEADV		0x4000
+#define DPAA2_FD_FRC_FAPRV		0x2000
+#define DPAA2_FD_FRC_FAIADV		0x1000
+#define DPAA2_FD_FRC_FASWOV		0x0800
+#define DPAA2_FD_FRC_FAICFDV		0x0400
+
+/* Error bits in FD CTRL */
+#define DPAA2_FD_RX_ERR_MASK		(FD_CTRL_SBE | FD_CTRL_FAERR)
+#define DPAA2_FD_TX_ERR_MASK		(FD_CTRL_UFD	| \
+					 FD_CTRL_SBE	| \
+					 FD_CTRL_FSE	| \
+					 FD_CTRL_FAERR)
+
+/* Annotation bits in FD CTRL */
+#define DPAA2_FD_CTRL_ASAL		0x00020000	/* ASAL = 128B */
+
+/* Frame annotation status */
+struct dpaa2_fas {
+	u8 reserved;
+	u8 ppid;
+	__le16 ifpid;
+	__le32 status;
+};
+
+/* Frame annotation status word is located in the first 8 bytes
+ * of the buffer's hardware annoatation area
+ */
+#define DPAA2_FAS_OFFSET		0
+#define DPAA2_FAS_SIZE			(sizeof(struct dpaa2_fas))
+
+/* Timestamp is located in the next 8 bytes of the buffer's
+ * hardware annotation area
+ */
+#define DPAA2_TS_OFFSET			0x8
+
+/* Frame annotation egress action descriptor */
+#define DPAA2_FAEAD_OFFSET		0x58
+
+struct dpaa2_faead {
+	__le32 conf_fqid;
+	__le32 ctrl;
+};
+
+#define DPAA2_FAEAD_A2V			0x20000000
+#define DPAA2_FAEAD_UPDV		0x00001000
+#define DPAA2_FAEAD_UPD			0x00000010
+
+/* Accessors for the hardware annotation fields that we use */
+static inline void *dpaa2_get_hwa(void *buf_addr, bool swa)
+{
+	return buf_addr + (swa ? DPAA2_ETH_SWA_SIZE : 0);
+}
+
+static inline struct dpaa2_fas *dpaa2_get_fas(void *buf_addr, bool swa)
+{
+	return dpaa2_get_hwa(buf_addr, swa) + DPAA2_FAS_OFFSET;
+}
+
+static inline __le64 *dpaa2_get_ts(void *buf_addr, bool swa)
+{
+	return dpaa2_get_hwa(buf_addr, swa) + DPAA2_TS_OFFSET;
+}
+
+static inline struct dpaa2_faead *dpaa2_get_faead(void *buf_addr, bool swa)
+{
+	return dpaa2_get_hwa(buf_addr, swa) + DPAA2_FAEAD_OFFSET;
+}
+
+/* Error and status bits in the frame annotation status word */
+/* Debug frame, otherwise supposed to be discarded */
+#define DPAA2_FAS_DISC			0x80000000
+/* MACSEC frame */
+#define DPAA2_FAS_MS			0x40000000
+#define DPAA2_FAS_PTP			0x08000000
+/* Ethernet multicast frame */
+#define DPAA2_FAS_MC			0x04000000
+/* Ethernet broadcast frame */
+#define DPAA2_FAS_BC			0x02000000
+#define DPAA2_FAS_KSE			0x00040000
+#define DPAA2_FAS_EOFHE			0x00020000
+#define DPAA2_FAS_MNLE			0x00010000
+#define DPAA2_FAS_TIDE			0x00008000
+#define DPAA2_FAS_PIEE			0x00004000
+/* Frame length error */
+#define DPAA2_FAS_FLE			0x00002000
+/* Frame physical error */
+#define DPAA2_FAS_FPE			0x00001000
+#define DPAA2_FAS_PTE			0x00000080
+#define DPAA2_FAS_ISP			0x00000040
+#define DPAA2_FAS_PHE			0x00000020
+#define DPAA2_FAS_BLE			0x00000010
+/* L3 csum validation performed */
+#define DPAA2_FAS_L3CV			0x00000008
+/* L3 csum error */
+#define DPAA2_FAS_L3CE			0x00000004
+/* L4 csum validation performed */
+#define DPAA2_FAS_L4CV			0x00000002
+/* L4 csum error */
+#define DPAA2_FAS_L4CE			0x00000001
+/* Possible errors on the ingress path */
+#define DPAA2_FAS_RX_ERR_MASK		(DPAA2_FAS_KSE		| \
+					 DPAA2_FAS_EOFHE	| \
+					 DPAA2_FAS_MNLE		| \
+					 DPAA2_FAS_TIDE		| \
+					 DPAA2_FAS_PIEE		| \
+					 DPAA2_FAS_FLE		| \
+					 DPAA2_FAS_FPE		| \
+					 DPAA2_FAS_PTE		| \
+					 DPAA2_FAS_ISP		| \
+					 DPAA2_FAS_PHE		| \
+					 DPAA2_FAS_BLE		| \
+					 DPAA2_FAS_L3CE		| \
+					 DPAA2_FAS_L4CE)
+
+/* Time in milliseconds between link state updates */
+#define DPAA2_ETH_LINK_STATE_REFRESH	1000
+
+/* Number of times to retry a frame enqueue before giving up.
+ * Value determined empirically, in order to minimize the number
+ * of frames dropped on Tx
+ */
+#define DPAA2_ETH_ENQUEUE_RETRIES	10
+
+/* Driver statistics, other than those in struct rtnl_link_stats64.
+ * These are usually collected per-CPU and aggregated by ethtool.
+ */
+struct dpaa2_eth_drv_stats {
+	__u64	tx_conf_frames;
+	__u64	tx_conf_bytes;
+	__u64	tx_sg_frames;
+	__u64	tx_sg_bytes;
+	__u64	tx_reallocs;
+	__u64	rx_sg_frames;
+	__u64	rx_sg_bytes;
+	/* Enqueues retried due to portal busy */
+	__u64	tx_portal_busy;
+};
+
+/* Per-FQ statistics */
+struct dpaa2_eth_fq_stats {
+	/* Number of frames received on this queue */
+	__u64 frames;
+};
+
+/* Per-channel statistics */
+struct dpaa2_eth_ch_stats {
+	/* Volatile dequeues retried due to portal busy */
+	__u64 dequeue_portal_busy;
+	/* Number of CDANs; useful to estimate avg NAPI len */
+	__u64 cdan;
+	/* Number of frames received on queues from this channel */
+	__u64 frames;
+	/* Pull errors */
+	__u64 pull_err;
+};
+
+/* Maximum number of queues associated with a DPNI */
+#define DPAA2_ETH_MAX_RX_QUEUES		16
+#define DPAA2_ETH_MAX_TX_QUEUES		16
+#define DPAA2_ETH_MAX_QUEUES		(DPAA2_ETH_MAX_RX_QUEUES + \
+					DPAA2_ETH_MAX_TX_QUEUES)
+
+#define DPAA2_ETH_MAX_DPCONS		16
+
+enum dpaa2_eth_fq_type {
+	DPAA2_RX_FQ = 0,
+	DPAA2_TX_CONF_FQ,
+};
+
+struct dpaa2_eth_priv;
+
+struct dpaa2_eth_fq {
+	u32 fqid;
+	u32 tx_qdbin;
+	u16 flowid;
+	int target_cpu;
+	struct dpaa2_eth_channel *channel;
+	enum dpaa2_eth_fq_type type;
+
+	void (*consume)(struct dpaa2_eth_priv *,
+			struct dpaa2_eth_channel *,
+			const struct dpaa2_fd *,
+			struct napi_struct *,
+			u16 queue_id);
+	struct dpaa2_eth_fq_stats stats;
+};
+
+struct dpaa2_eth_channel {
+	struct dpaa2_io_notification_ctx nctx;
+	struct fsl_mc_device *dpcon;
+	int dpcon_id;
+	int ch_id;
+	struct napi_struct napi;
+	struct dpaa2_io *dpio;
+	struct dpaa2_io_store *store;
+	struct dpaa2_eth_priv *priv;
+	int buf_count;
+	struct dpaa2_eth_ch_stats stats;
+};
+
+struct dpaa2_eth_hash_fields {
+	u64 rxnfc_field;
+	enum net_prot cls_prot;
+	int cls_field;
+	int size;
+};
+
+/* Driver private data */
+struct dpaa2_eth_priv {
+	struct net_device *net_dev;
+
+	u8 num_fqs;
+	struct dpaa2_eth_fq fq[DPAA2_ETH_MAX_QUEUES];
+
+	u8 num_channels;
+	struct dpaa2_eth_channel *channel[DPAA2_ETH_MAX_DPCONS];
+
+	struct dpni_attr dpni_attrs;
+	u16 dpni_ver_major;
+	u16 dpni_ver_minor;
+	u16 tx_data_offset;
+
+	struct fsl_mc_device *dpbp_dev;
+	u16 bpid;
+	struct iommu_domain *iommu_domain;
+
+	bool tx_tstamp; /* Tx timestamping enabled */
+	bool rx_tstamp; /* Rx timestamping enabled */
+
+	u16 tx_qdid;
+	u16 rx_buf_align;
+	struct fsl_mc_io *mc_io;
+	/* Cores which have an affine DPIO/DPCON.
+	 * This is the cpu set on which Rx and Tx conf frames are processed
+	 */
+	struct cpumask dpio_cpumask;
+
+	/* Standard statistics */
+	struct rtnl_link_stats64 __percpu *percpu_stats;
+	/* Extra stats, in addition to the ones known by the kernel */
+	struct dpaa2_eth_drv_stats __percpu *percpu_extras;
+
+	u16 mc_token;
+
+	struct dpni_link_state link_state;
+	bool do_link_poll;
+	struct task_struct *poll_thread;
+
+	/* enabled ethtool hashing bits */
+	u64 rx_hash_fields;
+};
+
+#define DPAA2_RXH_SUPPORTED	(RXH_L2DA | RXH_VLAN | RXH_L3_PROTO \
+				| RXH_IP_SRC | RXH_IP_DST | RXH_L4_B_0_1 \
+				| RXH_L4_B_2_3)
+
+/* default Rx hash options, set during probing */
+#define DPAA2_RXH_DEFAULT	(RXH_L3_PROTO | RXH_IP_SRC | RXH_IP_DST | \
+				 RXH_L4_B_0_1 | RXH_L4_B_2_3)
+
+#define dpaa2_eth_hash_enabled(priv)	\
+	((priv)->dpni_attrs.num_queues > 1)
+
+/* Required by struct dpni_rx_tc_dist_cfg::key_cfg_iova */
+#define DPAA2_CLASSIFIER_DMA_SIZE 256
+
+extern const struct ethtool_ops dpaa2_ethtool_ops;
+extern int dpaa2_phc_index;
+
+static inline int dpaa2_eth_cmp_dpni_ver(struct dpaa2_eth_priv *priv,
+					 u16 ver_major, u16 ver_minor)
+{
+	if (priv->dpni_ver_major == ver_major)
+		return priv->dpni_ver_minor - ver_minor;
+	return priv->dpni_ver_major - ver_major;
+}
+
+/* Hardware only sees DPAA2_ETH_RX_BUF_SIZE, but the skb built around
+ * the buffer also needs space for its shared info struct, and we need
+ * to allocate enough to accommodate hardware alignment restrictions
+ */
+static inline unsigned int dpaa2_eth_buf_raw_size(struct dpaa2_eth_priv *priv)
+{
+	return DPAA2_ETH_SKB_SIZE + priv->rx_buf_align;
+}
+
+static inline
+unsigned int dpaa2_eth_needed_headroom(struct dpaa2_eth_priv *priv,
+				       struct sk_buff *skb)
+{
+	unsigned int headroom = DPAA2_ETH_SWA_SIZE;
+
+	/* For non-linear skbs we have no headroom requirement, as we build a
+	 * SG frame with a newly allocated SGT buffer
+	 */
+	if (skb_is_nonlinear(skb))
+		return 0;
+
+	/* If we have Tx timestamping, need 128B hardware annotation */
+	if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)
+		headroom += DPAA2_ETH_TX_HWA_SIZE;
+
+	return headroom;
+}
+
+/* Extra headroom space requested to hardware, in order to make sure there's
+ * no realloc'ing in forwarding scenarios
+ */
+static inline unsigned int dpaa2_eth_rx_head_room(struct dpaa2_eth_priv *priv)
+{
+	return priv->tx_data_offset + DPAA2_ETH_TX_BUF_ALIGN -
+	       DPAA2_ETH_RX_HWA_SIZE;
+}
+
+static int dpaa2_eth_queue_count(struct dpaa2_eth_priv *priv)
+{
+	return priv->dpni_attrs.num_queues;
+}
+
+#endif	/* __DPAA2_H */
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c
new file mode 100644
index 0000000..8056a95
--- /dev/null
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c
@@ -0,0 +1,280 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/* Copyright 2014-2016 Freescale Semiconductor Inc.
+ * Copyright 2016 NXP
+ */
+
+#include <linux/net_tstamp.h>
+
+#include "dpni.h"	/* DPNI_LINK_OPT_* */
+#include "dpaa2-eth.h"
+
+/* To be kept in sync with DPNI statistics */
+static char dpaa2_ethtool_stats[][ETH_GSTRING_LEN] = {
+	"[hw] rx frames",
+	"[hw] rx bytes",
+	"[hw] rx mcast frames",
+	"[hw] rx mcast bytes",
+	"[hw] rx bcast frames",
+	"[hw] rx bcast bytes",
+	"[hw] tx frames",
+	"[hw] tx bytes",
+	"[hw] tx mcast frames",
+	"[hw] tx mcast bytes",
+	"[hw] tx bcast frames",
+	"[hw] tx bcast bytes",
+	"[hw] rx filtered frames",
+	"[hw] rx discarded frames",
+	"[hw] rx nobuffer discards",
+	"[hw] tx discarded frames",
+	"[hw] tx confirmed frames",
+};
+
+#define DPAA2_ETH_NUM_STATS	ARRAY_SIZE(dpaa2_ethtool_stats)
+
+static char dpaa2_ethtool_extras[][ETH_GSTRING_LEN] = {
+	/* per-cpu stats */
+	"[drv] tx conf frames",
+	"[drv] tx conf bytes",
+	"[drv] tx sg frames",
+	"[drv] tx sg bytes",
+	"[drv] tx realloc frames",
+	"[drv] rx sg frames",
+	"[drv] rx sg bytes",
+	"[drv] enqueue portal busy",
+	/* Channel stats */
+	"[drv] dequeue portal busy",
+	"[drv] channel pull errors",
+	"[drv] cdan",
+};
+
+#define DPAA2_ETH_NUM_EXTRA_STATS	ARRAY_SIZE(dpaa2_ethtool_extras)
+
+static void dpaa2_eth_get_drvinfo(struct net_device *net_dev,
+				  struct ethtool_drvinfo *drvinfo)
+{
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+
+	strlcpy(drvinfo->driver, KBUILD_MODNAME, sizeof(drvinfo->driver));
+
+	snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version),
+		 "%u.%u", priv->dpni_ver_major, priv->dpni_ver_minor);
+
+	strlcpy(drvinfo->bus_info, dev_name(net_dev->dev.parent->parent),
+		sizeof(drvinfo->bus_info));
+}
+
+static int
+dpaa2_eth_get_link_ksettings(struct net_device *net_dev,
+			     struct ethtool_link_ksettings *link_settings)
+{
+	struct dpni_link_state state = {0};
+	int err = 0;
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+
+	err = dpni_get_link_state(priv->mc_io, 0, priv->mc_token, &state);
+	if (err) {
+		netdev_err(net_dev, "ERROR %d getting link state\n", err);
+		goto out;
+	}
+
+	/* At the moment, we have no way of interrogating the DPMAC
+	 * from the DPNI side - and for that matter there may exist
+	 * no DPMAC at all. So for now we just don't report anything
+	 * beyond the DPNI attributes.
+	 */
+	if (state.options & DPNI_LINK_OPT_AUTONEG)
+		link_settings->base.autoneg = AUTONEG_ENABLE;
+	if (!(state.options & DPNI_LINK_OPT_HALF_DUPLEX))
+		link_settings->base.duplex = DUPLEX_FULL;
+	link_settings->base.speed = state.rate;
+
+out:
+	return err;
+}
+
+#define DPNI_DYNAMIC_LINK_SET_VER_MAJOR		7
+#define DPNI_DYNAMIC_LINK_SET_VER_MINOR		1
+static int
+dpaa2_eth_set_link_ksettings(struct net_device *net_dev,
+			     const struct ethtool_link_ksettings *link_settings)
+{
+	struct dpni_link_cfg cfg = {0};
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	int err = 0;
+
+	/* If using an older MC version, the DPNI must be down
+	 * in order to be able to change link settings. Taking steps to let
+	 * the user know that.
+	 */
+	if (dpaa2_eth_cmp_dpni_ver(priv, DPNI_DYNAMIC_LINK_SET_VER_MAJOR,
+				   DPNI_DYNAMIC_LINK_SET_VER_MINOR) < 0) {
+		if (netif_running(net_dev)) {
+			netdev_info(net_dev, "Interface must be brought down first.\n");
+			return -EACCES;
+		}
+	}
+
+	cfg.rate = link_settings->base.speed;
+	if (link_settings->base.autoneg == AUTONEG_ENABLE)
+		cfg.options |= DPNI_LINK_OPT_AUTONEG;
+	else
+		cfg.options &= ~DPNI_LINK_OPT_AUTONEG;
+	if (link_settings->base.duplex  == DUPLEX_HALF)
+		cfg.options |= DPNI_LINK_OPT_HALF_DUPLEX;
+	else
+		cfg.options &= ~DPNI_LINK_OPT_HALF_DUPLEX;
+
+	err = dpni_set_link_cfg(priv->mc_io, 0, priv->mc_token, &cfg);
+	if (err)
+		/* ethtool will be loud enough if we return an error; no point
+		 * in putting our own error message on the console by default
+		 */
+		netdev_dbg(net_dev, "ERROR %d setting link cfg\n", err);
+
+	return err;
+}
+
+static void dpaa2_eth_get_strings(struct net_device *netdev, u32 stringset,
+				  u8 *data)
+{
+	u8 *p = data;
+	int i;
+
+	switch (stringset) {
+	case ETH_SS_STATS:
+		for (i = 0; i < DPAA2_ETH_NUM_STATS; i++) {
+			strlcpy(p, dpaa2_ethtool_stats[i], ETH_GSTRING_LEN);
+			p += ETH_GSTRING_LEN;
+		}
+		for (i = 0; i < DPAA2_ETH_NUM_EXTRA_STATS; i++) {
+			strlcpy(p, dpaa2_ethtool_extras[i], ETH_GSTRING_LEN);
+			p += ETH_GSTRING_LEN;
+		}
+		break;
+	}
+}
+
+static int dpaa2_eth_get_sset_count(struct net_device *net_dev, int sset)
+{
+	switch (sset) {
+	case ETH_SS_STATS: /* ethtool_get_stats(), ethtool_get_drvinfo() */
+		return DPAA2_ETH_NUM_STATS + DPAA2_ETH_NUM_EXTRA_STATS;
+	default:
+		return -EOPNOTSUPP;
+	}
+}
+
+/** Fill in hardware counters, as returned by MC.
+ */
+static void dpaa2_eth_get_ethtool_stats(struct net_device *net_dev,
+					struct ethtool_stats *stats,
+					u64 *data)
+{
+	int i = 0;
+	int j, k, err;
+	int num_cnt;
+	union dpni_statistics dpni_stats;
+	u64 cdan = 0;
+	u64 portal_busy = 0, pull_err = 0;
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+	struct dpaa2_eth_drv_stats *extras;
+	struct dpaa2_eth_ch_stats *ch_stats;
+
+	memset(data, 0,
+	       sizeof(u64) * (DPAA2_ETH_NUM_STATS + DPAA2_ETH_NUM_EXTRA_STATS));
+
+	/* Print standard counters, from DPNI statistics */
+	for (j = 0; j <= 2; j++) {
+		err = dpni_get_statistics(priv->mc_io, 0, priv->mc_token,
+					  j, &dpni_stats);
+		if (err != 0)
+			netdev_warn(net_dev, "dpni_get_stats(%d) failed\n", j);
+		switch (j) {
+		case 0:
+			num_cnt = sizeof(dpni_stats.page_0) / sizeof(u64);
+			break;
+		case 1:
+			num_cnt = sizeof(dpni_stats.page_1) / sizeof(u64);
+			break;
+		case 2:
+			num_cnt = sizeof(dpni_stats.page_2) / sizeof(u64);
+			break;
+		}
+		for (k = 0; k < num_cnt; k++)
+			*(data + i++) = dpni_stats.raw.counter[k];
+	}
+
+	/* Print per-cpu extra stats */
+	for_each_online_cpu(k) {
+		extras = per_cpu_ptr(priv->percpu_extras, k);
+		for (j = 0; j < sizeof(*extras) / sizeof(__u64); j++)
+			*((__u64 *)data + i + j) += *((__u64 *)extras + j);
+	}
+	i += j;
+
+	for (j = 0; j < priv->num_channels; j++) {
+		ch_stats = &priv->channel[j]->stats;
+		cdan += ch_stats->cdan;
+		portal_busy += ch_stats->dequeue_portal_busy;
+		pull_err += ch_stats->pull_err;
+	}
+
+	*(data + i++) = portal_busy;
+	*(data + i++) = pull_err;
+	*(data + i++) = cdan;
+}
+
+static int dpaa2_eth_get_rxnfc(struct net_device *net_dev,
+			       struct ethtool_rxnfc *rxnfc, u32 *rule_locs)
+{
+	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
+
+	switch (rxnfc->cmd) {
+	case ETHTOOL_GRXFH:
+		/* we purposely ignore cmd->flow_type for now, because the
+		 * classifier only supports a single set of fields for all
+		 * protocols
+		 */
+		rxnfc->data = priv->rx_hash_fields;
+		break;
+	case ETHTOOL_GRXRINGS:
+		rxnfc->data = dpaa2_eth_queue_count(priv);
+		break;
+	default:
+		return -EOPNOTSUPP;
+	}
+
+	return 0;
+}
+
+int dpaa2_phc_index = -1;
+EXPORT_SYMBOL(dpaa2_phc_index);
+
+static int dpaa2_eth_get_ts_info(struct net_device *dev,
+				 struct ethtool_ts_info *info)
+{
+	info->so_timestamping = SOF_TIMESTAMPING_TX_HARDWARE |
+				SOF_TIMESTAMPING_RX_HARDWARE |
+				SOF_TIMESTAMPING_RAW_HARDWARE;
+
+	info->phc_index = dpaa2_phc_index;
+
+	info->tx_types = (1 << HWTSTAMP_TX_OFF) |
+			 (1 << HWTSTAMP_TX_ON);
+
+	info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
+			   (1 << HWTSTAMP_FILTER_ALL);
+	return 0;
+}
+
+const struct ethtool_ops dpaa2_ethtool_ops = {
+	.get_drvinfo = dpaa2_eth_get_drvinfo,
+	.get_link = ethtool_op_get_link,
+	.get_link_ksettings = dpaa2_eth_get_link_ksettings,
+	.set_link_ksettings = dpaa2_eth_set_link_ksettings,
+	.get_sset_count = dpaa2_eth_get_sset_count,
+	.get_ethtool_stats = dpaa2_eth_get_ethtool_stats,
+	.get_strings = dpaa2_eth_get_strings,
+	.get_rxnfc = dpaa2_eth_get_rxnfc,
+	.get_ts_info = dpaa2_eth_get_ts_info,
+};
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpkg.h b/drivers/net/ethernet/freescale/dpaa2/dpkg.h
new file mode 100644
index 0000000..6de613b1
--- /dev/null
+++ b/drivers/net/ethernet/freescale/dpaa2/dpkg.h
@@ -0,0 +1,480 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/* Copyright 2013-2015 Freescale Semiconductor Inc.
+ */
+#ifndef __FSL_DPKG_H_
+#define __FSL_DPKG_H_
+
+#include <linux/types.h>
+
+/* Data Path Key Generator API
+ * Contains initialization APIs and runtime APIs for the Key Generator
+ */
+
+/** Key Generator properties */
+
+/**
+ * Number of masks per key extraction
+ */
+#define DPKG_NUM_OF_MASKS		4
+/**
+ * Number of extractions per key profile
+ */
+#define DPKG_MAX_NUM_OF_EXTRACTS	10
+
+/**
+ * enum dpkg_extract_from_hdr_type - Selecting extraction by header types
+ * @DPKG_FROM_HDR: Extract selected bytes from header, by offset
+ * @DPKG_FROM_FIELD: Extract selected bytes from header, by offset from field
+ * @DPKG_FULL_FIELD: Extract a full field
+ */
+enum dpkg_extract_from_hdr_type {
+	DPKG_FROM_HDR = 0,
+	DPKG_FROM_FIELD = 1,
+	DPKG_FULL_FIELD = 2
+};
+
+/**
+ * enum dpkg_extract_type - Enumeration for selecting extraction type
+ * @DPKG_EXTRACT_FROM_HDR: Extract from the header
+ * @DPKG_EXTRACT_FROM_DATA: Extract from data not in specific header
+ * @DPKG_EXTRACT_FROM_PARSE: Extract from parser-result;
+ *	e.g. can be used to extract header existence;
+ *	please refer to 'Parse Result definition' section in the parser BG
+ */
+enum dpkg_extract_type {
+	DPKG_EXTRACT_FROM_HDR = 0,
+	DPKG_EXTRACT_FROM_DATA = 1,
+	DPKG_EXTRACT_FROM_PARSE = 3
+};
+
+/**
+ * struct dpkg_mask - A structure for defining a single extraction mask
+ * @mask: Byte mask for the extracted content
+ * @offset: Offset within the extracted content
+ */
+struct dpkg_mask {
+	u8 mask;
+	u8 offset;
+};
+
+/* Protocol fields */
+
+/* Ethernet fields */
+#define NH_FLD_ETH_DA				BIT(0)
+#define NH_FLD_ETH_SA				BIT(1)
+#define NH_FLD_ETH_LENGTH			BIT(2)
+#define NH_FLD_ETH_TYPE				BIT(3)
+#define NH_FLD_ETH_FINAL_CKSUM			BIT(4)
+#define NH_FLD_ETH_PADDING			BIT(5)
+#define NH_FLD_ETH_ALL_FIELDS			(BIT(6) - 1)
+
+/* VLAN fields */
+#define NH_FLD_VLAN_VPRI			BIT(0)
+#define NH_FLD_VLAN_CFI				BIT(1)
+#define NH_FLD_VLAN_VID				BIT(2)
+#define NH_FLD_VLAN_LENGTH			BIT(3)
+#define NH_FLD_VLAN_TYPE			BIT(4)
+#define NH_FLD_VLAN_ALL_FIELDS			(BIT(5) - 1)
+
+#define NH_FLD_VLAN_TCI				(NH_FLD_VLAN_VPRI | \
+						 NH_FLD_VLAN_CFI | \
+						 NH_FLD_VLAN_VID)
+
+/* IP (generic) fields */
+#define NH_FLD_IP_VER				BIT(0)
+#define NH_FLD_IP_DSCP				BIT(2)
+#define NH_FLD_IP_ECN				BIT(3)
+#define NH_FLD_IP_PROTO				BIT(4)
+#define NH_FLD_IP_SRC				BIT(5)
+#define NH_FLD_IP_DST				BIT(6)
+#define NH_FLD_IP_TOS_TC			BIT(7)
+#define NH_FLD_IP_ID				BIT(8)
+#define NH_FLD_IP_ALL_FIELDS			(BIT(9) - 1)
+
+/* IPV4 fields */
+#define NH_FLD_IPV4_VER				BIT(0)
+#define NH_FLD_IPV4_HDR_LEN			BIT(1)
+#define NH_FLD_IPV4_TOS				BIT(2)
+#define NH_FLD_IPV4_TOTAL_LEN			BIT(3)
+#define NH_FLD_IPV4_ID				BIT(4)
+#define NH_FLD_IPV4_FLAG_D			BIT(5)
+#define NH_FLD_IPV4_FLAG_M			BIT(6)
+#define NH_FLD_IPV4_OFFSET			BIT(7)
+#define NH_FLD_IPV4_TTL				BIT(8)
+#define NH_FLD_IPV4_PROTO			BIT(9)
+#define NH_FLD_IPV4_CKSUM			BIT(10)
+#define NH_FLD_IPV4_SRC_IP			BIT(11)
+#define NH_FLD_IPV4_DST_IP			BIT(12)
+#define NH_FLD_IPV4_OPTS			BIT(13)
+#define NH_FLD_IPV4_OPTS_COUNT			BIT(14)
+#define NH_FLD_IPV4_ALL_FIELDS			(BIT(15) - 1)
+
+/* IPV6 fields */
+#define NH_FLD_IPV6_VER				BIT(0)
+#define NH_FLD_IPV6_TC				BIT(1)
+#define NH_FLD_IPV6_SRC_IP			BIT(2)
+#define NH_FLD_IPV6_DST_IP			BIT(3)
+#define NH_FLD_IPV6_NEXT_HDR			BIT(4)
+#define NH_FLD_IPV6_FL				BIT(5)
+#define NH_FLD_IPV6_HOP_LIMIT			BIT(6)
+#define NH_FLD_IPV6_ID				BIT(7)
+#define NH_FLD_IPV6_ALL_FIELDS			(BIT(8) - 1)
+
+/* ICMP fields */
+#define NH_FLD_ICMP_TYPE			BIT(0)
+#define NH_FLD_ICMP_CODE			BIT(1)
+#define NH_FLD_ICMP_CKSUM			BIT(2)
+#define NH_FLD_ICMP_ID				BIT(3)
+#define NH_FLD_ICMP_SQ_NUM			BIT(4)
+#define NH_FLD_ICMP_ALL_FIELDS			(BIT(5) - 1)
+
+/* IGMP fields */
+#define NH_FLD_IGMP_VERSION			BIT(0)
+#define NH_FLD_IGMP_TYPE			BIT(1)
+#define NH_FLD_IGMP_CKSUM			BIT(2)
+#define NH_FLD_IGMP_DATA			BIT(3)
+#define NH_FLD_IGMP_ALL_FIELDS			(BIT(4) - 1)
+
+/* TCP fields */
+#define NH_FLD_TCP_PORT_SRC			BIT(0)
+#define NH_FLD_TCP_PORT_DST			BIT(1)
+#define NH_FLD_TCP_SEQ				BIT(2)
+#define NH_FLD_TCP_ACK				BIT(3)
+#define NH_FLD_TCP_OFFSET			BIT(4)
+#define NH_FLD_TCP_FLAGS			BIT(5)
+#define NH_FLD_TCP_WINDOW			BIT(6)
+#define NH_FLD_TCP_CKSUM			BIT(7)
+#define NH_FLD_TCP_URGPTR			BIT(8)
+#define NH_FLD_TCP_OPTS				BIT(9)
+#define NH_FLD_TCP_OPTS_COUNT			BIT(10)
+#define NH_FLD_TCP_ALL_FIELDS			(BIT(11) - 1)
+
+/* UDP fields */
+#define NH_FLD_UDP_PORT_SRC			BIT(0)
+#define NH_FLD_UDP_PORT_DST			BIT(1)
+#define NH_FLD_UDP_LEN				BIT(2)
+#define NH_FLD_UDP_CKSUM			BIT(3)
+#define NH_FLD_UDP_ALL_FIELDS			(BIT(4) - 1)
+
+/* UDP-lite fields */
+#define NH_FLD_UDP_LITE_PORT_SRC		BIT(0)
+#define NH_FLD_UDP_LITE_PORT_DST		BIT(1)
+#define NH_FLD_UDP_LITE_ALL_FIELDS		(BIT(2) - 1)
+
+/* UDP-encap-ESP fields */
+#define NH_FLD_UDP_ENC_ESP_PORT_SRC		BIT(0)
+#define NH_FLD_UDP_ENC_ESP_PORT_DST		BIT(1)
+#define NH_FLD_UDP_ENC_ESP_LEN			BIT(2)
+#define NH_FLD_UDP_ENC_ESP_CKSUM		BIT(3)
+#define NH_FLD_UDP_ENC_ESP_SPI			BIT(4)
+#define NH_FLD_UDP_ENC_ESP_SEQUENCE_NUM		BIT(5)
+#define NH_FLD_UDP_ENC_ESP_ALL_FIELDS		(BIT(6) - 1)
+
+/* SCTP fields */
+#define NH_FLD_SCTP_PORT_SRC			BIT(0)
+#define NH_FLD_SCTP_PORT_DST			BIT(1)
+#define NH_FLD_SCTP_VER_TAG			BIT(2)
+#define NH_FLD_SCTP_CKSUM			BIT(3)
+#define NH_FLD_SCTP_ALL_FIELDS			(BIT(4) - 1)
+
+/* DCCP fields */
+#define NH_FLD_DCCP_PORT_SRC			BIT(0)
+#define NH_FLD_DCCP_PORT_DST			BIT(1)
+#define NH_FLD_DCCP_ALL_FIELDS			(BIT(2) - 1)
+
+/* IPHC fields */
+#define NH_FLD_IPHC_CID				BIT(0)
+#define NH_FLD_IPHC_CID_TYPE			BIT(1)
+#define NH_FLD_IPHC_HCINDEX			BIT(2)
+#define NH_FLD_IPHC_GEN				BIT(3)
+#define NH_FLD_IPHC_D_BIT			BIT(4)
+#define NH_FLD_IPHC_ALL_FIELDS			(BIT(5) - 1)
+
+/* SCTP fields */
+#define NH_FLD_SCTP_CHUNK_DATA_TYPE		BIT(0)
+#define NH_FLD_SCTP_CHUNK_DATA_FLAGS		BIT(1)
+#define NH_FLD_SCTP_CHUNK_DATA_LENGTH		BIT(2)
+#define NH_FLD_SCTP_CHUNK_DATA_TSN		BIT(3)
+#define NH_FLD_SCTP_CHUNK_DATA_STREAM_ID	BIT(4)
+#define NH_FLD_SCTP_CHUNK_DATA_STREAM_SQN	BIT(5)
+#define NH_FLD_SCTP_CHUNK_DATA_PAYLOAD_PID	BIT(6)
+#define NH_FLD_SCTP_CHUNK_DATA_UNORDERED	BIT(7)
+#define NH_FLD_SCTP_CHUNK_DATA_BEGGINING	BIT(8)
+#define NH_FLD_SCTP_CHUNK_DATA_END		BIT(9)
+#define NH_FLD_SCTP_CHUNK_DATA_ALL_FIELDS	(BIT(10) - 1)
+
+/* L2TPV2 fields */
+#define NH_FLD_L2TPV2_TYPE_BIT			BIT(0)
+#define NH_FLD_L2TPV2_LENGTH_BIT		BIT(1)
+#define NH_FLD_L2TPV2_SEQUENCE_BIT		BIT(2)
+#define NH_FLD_L2TPV2_OFFSET_BIT		BIT(3)
+#define NH_FLD_L2TPV2_PRIORITY_BIT		BIT(4)
+#define NH_FLD_L2TPV2_VERSION			BIT(5)
+#define NH_FLD_L2TPV2_LEN			BIT(6)
+#define NH_FLD_L2TPV2_TUNNEL_ID			BIT(7)
+#define NH_FLD_L2TPV2_SESSION_ID		BIT(8)
+#define NH_FLD_L2TPV2_NS			BIT(9)
+#define NH_FLD_L2TPV2_NR			BIT(10)
+#define NH_FLD_L2TPV2_OFFSET_SIZE		BIT(11)
+#define NH_FLD_L2TPV2_FIRST_BYTE		BIT(12)
+#define NH_FLD_L2TPV2_ALL_FIELDS		(BIT(13) - 1)
+
+/* L2TPV3 fields */
+#define NH_FLD_L2TPV3_CTRL_TYPE_BIT		BIT(0)
+#define NH_FLD_L2TPV3_CTRL_LENGTH_BIT		BIT(1)
+#define NH_FLD_L2TPV3_CTRL_SEQUENCE_BIT		BIT(2)
+#define NH_FLD_L2TPV3_CTRL_VERSION		BIT(3)
+#define NH_FLD_L2TPV3_CTRL_LENGTH		BIT(4)
+#define NH_FLD_L2TPV3_CTRL_CONTROL		BIT(5)
+#define NH_FLD_L2TPV3_CTRL_SENT			BIT(6)
+#define NH_FLD_L2TPV3_CTRL_RECV			BIT(7)
+#define NH_FLD_L2TPV3_CTRL_FIRST_BYTE		BIT(8)
+#define NH_FLD_L2TPV3_CTRL_ALL_FIELDS		(BIT(9) - 1)
+
+#define NH_FLD_L2TPV3_SESS_TYPE_BIT		BIT(0)
+#define NH_FLD_L2TPV3_SESS_VERSION		BIT(1)
+#define NH_FLD_L2TPV3_SESS_ID			BIT(2)
+#define NH_FLD_L2TPV3_SESS_COOKIE		BIT(3)
+#define NH_FLD_L2TPV3_SESS_ALL_FIELDS		(BIT(4) - 1)
+
+/* PPP fields */
+#define NH_FLD_PPP_PID				BIT(0)
+#define NH_FLD_PPP_COMPRESSED			BIT(1)
+#define NH_FLD_PPP_ALL_FIELDS			(BIT(2) - 1)
+
+/* PPPoE fields */
+#define NH_FLD_PPPOE_VER			BIT(0)
+#define NH_FLD_PPPOE_TYPE			BIT(1)
+#define NH_FLD_PPPOE_CODE			BIT(2)
+#define NH_FLD_PPPOE_SID			BIT(3)
+#define NH_FLD_PPPOE_LEN			BIT(4)
+#define NH_FLD_PPPOE_SESSION			BIT(5)
+#define NH_FLD_PPPOE_PID			BIT(6)
+#define NH_FLD_PPPOE_ALL_FIELDS			(BIT(7) - 1)
+
+/* PPP-Mux fields */
+#define NH_FLD_PPPMUX_PID			BIT(0)
+#define NH_FLD_PPPMUX_CKSUM			BIT(1)
+#define NH_FLD_PPPMUX_COMPRESSED		BIT(2)
+#define NH_FLD_PPPMUX_ALL_FIELDS		(BIT(3) - 1)
+
+/* PPP-Mux sub-frame fields */
+#define NH_FLD_PPPMUX_SUBFRM_PFF		BIT(0)
+#define NH_FLD_PPPMUX_SUBFRM_LXT		BIT(1)
+#define NH_FLD_PPPMUX_SUBFRM_LEN		BIT(2)
+#define NH_FLD_PPPMUX_SUBFRM_PID		BIT(3)
+#define NH_FLD_PPPMUX_SUBFRM_USE_PID		BIT(4)
+#define NH_FLD_PPPMUX_SUBFRM_ALL_FIELDS		(BIT(5) - 1)
+
+/* LLC fields */
+#define NH_FLD_LLC_DSAP				BIT(0)
+#define NH_FLD_LLC_SSAP				BIT(1)
+#define NH_FLD_LLC_CTRL				BIT(2)
+#define NH_FLD_LLC_ALL_FIELDS			(BIT(3) - 1)
+
+/* NLPID fields */
+#define NH_FLD_NLPID_NLPID			BIT(0)
+#define NH_FLD_NLPID_ALL_FIELDS			(BIT(1) - 1)
+
+/* SNAP fields */
+#define NH_FLD_SNAP_OUI				BIT(0)
+#define NH_FLD_SNAP_PID				BIT(1)
+#define NH_FLD_SNAP_ALL_FIELDS			(BIT(2) - 1)
+
+/* LLC SNAP fields */
+#define NH_FLD_LLC_SNAP_TYPE			BIT(0)
+#define NH_FLD_LLC_SNAP_ALL_FIELDS		(BIT(1) - 1)
+
+/* ARP fields */
+#define NH_FLD_ARP_HTYPE			BIT(0)
+#define NH_FLD_ARP_PTYPE			BIT(1)
+#define NH_FLD_ARP_HLEN				BIT(2)
+#define NH_FLD_ARP_PLEN				BIT(3)
+#define NH_FLD_ARP_OPER				BIT(4)
+#define NH_FLD_ARP_SHA				BIT(5)
+#define NH_FLD_ARP_SPA				BIT(6)
+#define NH_FLD_ARP_THA				BIT(7)
+#define NH_FLD_ARP_TPA				BIT(8)
+#define NH_FLD_ARP_ALL_FIELDS			(BIT(9) - 1)
+
+/* RFC2684 fields */
+#define NH_FLD_RFC2684_LLC			BIT(0)
+#define NH_FLD_RFC2684_NLPID			BIT(1)
+#define NH_FLD_RFC2684_OUI			BIT(2)
+#define NH_FLD_RFC2684_PID			BIT(3)
+#define NH_FLD_RFC2684_VPN_OUI			BIT(4)
+#define NH_FLD_RFC2684_VPN_IDX			BIT(5)
+#define NH_FLD_RFC2684_ALL_FIELDS		(BIT(6) - 1)
+
+/* User defined fields */
+#define NH_FLD_USER_DEFINED_SRCPORT		BIT(0)
+#define NH_FLD_USER_DEFINED_PCDID		BIT(1)
+#define NH_FLD_USER_DEFINED_ALL_FIELDS		(BIT(2) - 1)
+
+/* Payload fields */
+#define NH_FLD_PAYLOAD_BUFFER			BIT(0)
+#define NH_FLD_PAYLOAD_SIZE			BIT(1)
+#define NH_FLD_MAX_FRM_SIZE			BIT(2)
+#define NH_FLD_MIN_FRM_SIZE			BIT(3)
+#define NH_FLD_PAYLOAD_TYPE			BIT(4)
+#define NH_FLD_FRAME_SIZE			BIT(5)
+#define NH_FLD_PAYLOAD_ALL_FIELDS		(BIT(6) - 1)
+
+/* GRE fields */
+#define NH_FLD_GRE_TYPE				BIT(0)
+#define NH_FLD_GRE_ALL_FIELDS			(BIT(1) - 1)
+
+/* MINENCAP fields */
+#define NH_FLD_MINENCAP_SRC_IP			BIT(0)
+#define NH_FLD_MINENCAP_DST_IP			BIT(1)
+#define NH_FLD_MINENCAP_TYPE			BIT(2)
+#define NH_FLD_MINENCAP_ALL_FIELDS		(BIT(3) - 1)
+
+/* IPSEC AH fields */
+#define NH_FLD_IPSEC_AH_SPI			BIT(0)
+#define NH_FLD_IPSEC_AH_NH			BIT(1)
+#define NH_FLD_IPSEC_AH_ALL_FIELDS		(BIT(2) - 1)
+
+/* IPSEC ESP fields */
+#define NH_FLD_IPSEC_ESP_SPI			BIT(0)
+#define NH_FLD_IPSEC_ESP_SEQUENCE_NUM		BIT(1)
+#define NH_FLD_IPSEC_ESP_ALL_FIELDS		(BIT(2) - 1)
+
+/* MPLS fields */
+#define NH_FLD_MPLS_LABEL_STACK			BIT(0)
+#define NH_FLD_MPLS_LABEL_STACK_ALL_FIELDS	(BIT(1) - 1)
+
+/* MACSEC fields */
+#define NH_FLD_MACSEC_SECTAG			BIT(0)
+#define NH_FLD_MACSEC_ALL_FIELDS		(BIT(1) - 1)
+
+/* GTP fields */
+#define NH_FLD_GTP_TEID				BIT(0)
+
+/* Supported protocols */
+enum net_prot {
+	NET_PROT_NONE = 0,
+	NET_PROT_PAYLOAD,
+	NET_PROT_ETH,
+	NET_PROT_VLAN,
+	NET_PROT_IPV4,
+	NET_PROT_IPV6,
+	NET_PROT_IP,
+	NET_PROT_TCP,
+	NET_PROT_UDP,
+	NET_PROT_UDP_LITE,
+	NET_PROT_IPHC,
+	NET_PROT_SCTP,
+	NET_PROT_SCTP_CHUNK_DATA,
+	NET_PROT_PPPOE,
+	NET_PROT_PPP,
+	NET_PROT_PPPMUX,
+	NET_PROT_PPPMUX_SUBFRM,
+	NET_PROT_L2TPV2,
+	NET_PROT_L2TPV3_CTRL,
+	NET_PROT_L2TPV3_SESS,
+	NET_PROT_LLC,
+	NET_PROT_LLC_SNAP,
+	NET_PROT_NLPID,
+	NET_PROT_SNAP,
+	NET_PROT_MPLS,
+	NET_PROT_IPSEC_AH,
+	NET_PROT_IPSEC_ESP,
+	NET_PROT_UDP_ENC_ESP, /* RFC 3948 */
+	NET_PROT_MACSEC,
+	NET_PROT_GRE,
+	NET_PROT_MINENCAP,
+	NET_PROT_DCCP,
+	NET_PROT_ICMP,
+	NET_PROT_IGMP,
+	NET_PROT_ARP,
+	NET_PROT_CAPWAP_DATA,
+	NET_PROT_CAPWAP_CTRL,
+	NET_PROT_RFC2684,
+	NET_PROT_ICMPV6,
+	NET_PROT_FCOE,
+	NET_PROT_FIP,
+	NET_PROT_ISCSI,
+	NET_PROT_GTP,
+	NET_PROT_USER_DEFINED_L2,
+	NET_PROT_USER_DEFINED_L3,
+	NET_PROT_USER_DEFINED_L4,
+	NET_PROT_USER_DEFINED_L5,
+	NET_PROT_USER_DEFINED_SHIM1,
+	NET_PROT_USER_DEFINED_SHIM2,
+
+	NET_PROT_DUMMY_LAST
+};
+
+/**
+ * struct dpkg_extract - A structure for defining a single extraction
+ * @type: Determines how the union below is interpreted:
+ *	DPKG_EXTRACT_FROM_HDR: selects 'from_hdr';
+ *	DPKG_EXTRACT_FROM_DATA: selects 'from_data';
+ *	DPKG_EXTRACT_FROM_PARSE: selects 'from_parse'
+ * @extract: Selects extraction method
+ * @extract.from_hdr: Used when 'type = DPKG_EXTRACT_FROM_HDR'
+ * @extract.from_data: Used when 'type = DPKG_EXTRACT_FROM_DATA'
+ * @extract.from_parse:  Used when 'type = DPKG_EXTRACT_FROM_PARSE'
+ * @extract.from_hdr.prot: Any of the supported headers
+ * @extract.from_hdr.type: Defines the type of header extraction:
+ *	DPKG_FROM_HDR: use size & offset below;
+ *	DPKG_FROM_FIELD: use field, size and offset below;
+ *	DPKG_FULL_FIELD: use field below
+ * @extract.from_hdr.field: One of the supported fields (NH_FLD_)
+ * @extract.from_hdr.size: Size in bytes
+ * @extract.from_hdr.offset: Byte offset
+ * @extract.from_hdr.hdr_index: Clear for cases not listed below;
+ *	Used for protocols that may have more than a single
+ *	header, 0 indicates an outer header;
+ *	Supported protocols (possible values):
+ *	NET_PROT_VLAN (0, HDR_INDEX_LAST);
+ *	NET_PROT_MPLS (0, 1, HDR_INDEX_LAST);
+ *	NET_PROT_IP(0, HDR_INDEX_LAST);
+ *	NET_PROT_IPv4(0, HDR_INDEX_LAST);
+ *	NET_PROT_IPv6(0, HDR_INDEX_LAST);
+ * @extract.from_data.size: Size in bytes
+ * @extract.from_data.offset: Byte offset
+ * @extract.from_parse.size: Size in bytes
+ * @extract.from_parse.offset: Byte offset
+ * @num_of_byte_masks: Defines the number of valid entries in the array below;
+ *		This is	also the number of bytes to be used as masks
+ * @masks: Masks parameters
+ */
+struct dpkg_extract {
+	enum dpkg_extract_type type;
+	union {
+		struct {
+			enum net_prot			prot;
+			enum dpkg_extract_from_hdr_type type;
+			u32			field;
+			u8			size;
+			u8			offset;
+			u8			hdr_index;
+		} from_hdr;
+		struct {
+			u8 size;
+			u8 offset;
+		} from_data;
+		struct {
+			u8 size;
+			u8 offset;
+		} from_parse;
+	} extract;
+
+	u8		num_of_byte_masks;
+	struct dpkg_mask	masks[DPKG_NUM_OF_MASKS];
+};
+
+/**
+ * struct dpkg_profile_cfg - A structure for defining a full Key Generation
+ *				profile (rule)
+ * @num_extracts: Defines the number of valid entries in the array below
+ * @extracts: Array of required extractions
+ */
+struct dpkg_profile_cfg {
+	u8 num_extracts;
+	struct dpkg_extract extracts[DPKG_MAX_NUM_OF_EXTRACTS];
+};
+
+#endif /* __FSL_DPKG_H_ */
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h b/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
new file mode 100644
index 0000000..83698ab
--- /dev/null
+++ b/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
@@ -0,0 +1,518 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/* Copyright 2013-2016 Freescale Semiconductor Inc.
+ * Copyright 2016 NXP
+ */
+#ifndef _FSL_DPNI_CMD_H
+#define _FSL_DPNI_CMD_H
+
+#include "dpni.h"
+
+/* DPNI Version */
+#define DPNI_VER_MAJOR				7
+#define DPNI_VER_MINOR				0
+#define DPNI_CMD_BASE_VERSION			1
+#define DPNI_CMD_ID_OFFSET			4
+
+#define DPNI_CMD(id)	(((id) << DPNI_CMD_ID_OFFSET) | DPNI_CMD_BASE_VERSION)
+
+#define DPNI_CMDID_OPEN					DPNI_CMD(0x801)
+#define DPNI_CMDID_CLOSE				DPNI_CMD(0x800)
+#define DPNI_CMDID_CREATE				DPNI_CMD(0x901)
+#define DPNI_CMDID_DESTROY				DPNI_CMD(0x900)
+#define DPNI_CMDID_GET_API_VERSION			DPNI_CMD(0xa01)
+
+#define DPNI_CMDID_ENABLE				DPNI_CMD(0x002)
+#define DPNI_CMDID_DISABLE				DPNI_CMD(0x003)
+#define DPNI_CMDID_GET_ATTR				DPNI_CMD(0x004)
+#define DPNI_CMDID_RESET				DPNI_CMD(0x005)
+#define DPNI_CMDID_IS_ENABLED				DPNI_CMD(0x006)
+
+#define DPNI_CMDID_SET_IRQ				DPNI_CMD(0x010)
+#define DPNI_CMDID_GET_IRQ				DPNI_CMD(0x011)
+#define DPNI_CMDID_SET_IRQ_ENABLE			DPNI_CMD(0x012)
+#define DPNI_CMDID_GET_IRQ_ENABLE			DPNI_CMD(0x013)
+#define DPNI_CMDID_SET_IRQ_MASK				DPNI_CMD(0x014)
+#define DPNI_CMDID_GET_IRQ_MASK				DPNI_CMD(0x015)
+#define DPNI_CMDID_GET_IRQ_STATUS			DPNI_CMD(0x016)
+#define DPNI_CMDID_CLEAR_IRQ_STATUS			DPNI_CMD(0x017)
+
+#define DPNI_CMDID_SET_POOLS				DPNI_CMD(0x200)
+#define DPNI_CMDID_SET_ERRORS_BEHAVIOR			DPNI_CMD(0x20B)
+
+#define DPNI_CMDID_GET_QDID				DPNI_CMD(0x210)
+#define DPNI_CMDID_GET_TX_DATA_OFFSET			DPNI_CMD(0x212)
+#define DPNI_CMDID_GET_LINK_STATE			DPNI_CMD(0x215)
+#define DPNI_CMDID_SET_MAX_FRAME_LENGTH			DPNI_CMD(0x216)
+#define DPNI_CMDID_GET_MAX_FRAME_LENGTH			DPNI_CMD(0x217)
+#define DPNI_CMDID_SET_LINK_CFG				DPNI_CMD(0x21A)
+#define DPNI_CMDID_SET_TX_SHAPING			DPNI_CMD(0x21B)
+
+#define DPNI_CMDID_SET_MCAST_PROMISC			DPNI_CMD(0x220)
+#define DPNI_CMDID_GET_MCAST_PROMISC			DPNI_CMD(0x221)
+#define DPNI_CMDID_SET_UNICAST_PROMISC			DPNI_CMD(0x222)
+#define DPNI_CMDID_GET_UNICAST_PROMISC			DPNI_CMD(0x223)
+#define DPNI_CMDID_SET_PRIM_MAC				DPNI_CMD(0x224)
+#define DPNI_CMDID_GET_PRIM_MAC				DPNI_CMD(0x225)
+#define DPNI_CMDID_ADD_MAC_ADDR				DPNI_CMD(0x226)
+#define DPNI_CMDID_REMOVE_MAC_ADDR			DPNI_CMD(0x227)
+#define DPNI_CMDID_CLR_MAC_FILTERS			DPNI_CMD(0x228)
+
+#define DPNI_CMDID_SET_RX_TC_DIST			DPNI_CMD(0x235)
+
+#define DPNI_CMDID_ADD_FS_ENT				DPNI_CMD(0x244)
+#define DPNI_CMDID_REMOVE_FS_ENT			DPNI_CMD(0x245)
+#define DPNI_CMDID_CLR_FS_ENT				DPNI_CMD(0x246)
+
+#define DPNI_CMDID_GET_STATISTICS			DPNI_CMD(0x25D)
+#define DPNI_CMDID_GET_QUEUE				DPNI_CMD(0x25F)
+#define DPNI_CMDID_SET_QUEUE				DPNI_CMD(0x260)
+#define DPNI_CMDID_GET_TAILDROP				DPNI_CMD(0x261)
+#define DPNI_CMDID_SET_TAILDROP				DPNI_CMD(0x262)
+
+#define DPNI_CMDID_GET_PORT_MAC_ADDR			DPNI_CMD(0x263)
+
+#define DPNI_CMDID_GET_BUFFER_LAYOUT			DPNI_CMD(0x264)
+#define DPNI_CMDID_SET_BUFFER_LAYOUT			DPNI_CMD(0x265)
+
+#define DPNI_CMDID_SET_TX_CONFIRMATION_MODE		DPNI_CMD(0x266)
+#define DPNI_CMDID_SET_CONGESTION_NOTIFICATION		DPNI_CMD(0x267)
+#define DPNI_CMDID_GET_CONGESTION_NOTIFICATION		DPNI_CMD(0x268)
+#define DPNI_CMDID_SET_EARLY_DROP			DPNI_CMD(0x269)
+#define DPNI_CMDID_GET_EARLY_DROP			DPNI_CMD(0x26A)
+#define DPNI_CMDID_GET_OFFLOAD				DPNI_CMD(0x26B)
+#define DPNI_CMDID_SET_OFFLOAD				DPNI_CMD(0x26C)
+
+/* Macros for accessing command fields smaller than 1byte */
+#define DPNI_MASK(field)	\
+	GENMASK(DPNI_##field##_SHIFT + DPNI_##field##_SIZE - 1, \
+		DPNI_##field##_SHIFT)
+
+#define dpni_set_field(var, field, val)	\
+	((var) |= (((val) << DPNI_##field##_SHIFT) & DPNI_MASK(field)))
+#define dpni_get_field(var, field)	\
+	(((var) & DPNI_MASK(field)) >> DPNI_##field##_SHIFT)
+
+struct dpni_cmd_open {
+	__le32 dpni_id;
+};
+
+#define DPNI_BACKUP_POOL(val, order)	(((val) & 0x1) << (order))
+struct dpni_cmd_set_pools {
+	/* cmd word 0 */
+	u8 num_dpbp;
+	u8 backup_pool_mask;
+	__le16 pad;
+	/* cmd word 0..4 */
+	__le32 dpbp_id[DPNI_MAX_DPBP];
+	/* cmd word 4..6 */
+	__le16 buffer_size[DPNI_MAX_DPBP];
+};
+
+/* The enable indication is always the least significant bit */
+#define DPNI_ENABLE_SHIFT		0
+#define DPNI_ENABLE_SIZE		1
+
+struct dpni_rsp_is_enabled {
+	u8 enabled;
+};
+
+struct dpni_rsp_get_irq {
+	/* response word 0 */
+	__le32 irq_val;
+	__le32 pad;
+	/* response word 1 */
+	__le64 irq_addr;
+	/* response word 2 */
+	__le32 irq_num;
+	__le32 type;
+};
+
+struct dpni_cmd_set_irq_enable {
+	u8 enable;
+	u8 pad[3];
+	u8 irq_index;
+};
+
+struct dpni_cmd_get_irq_enable {
+	__le32 pad;
+	u8 irq_index;
+};
+
+struct dpni_rsp_get_irq_enable {
+	u8 enabled;
+};
+
+struct dpni_cmd_set_irq_mask {
+	__le32 mask;
+	u8 irq_index;
+};
+
+struct dpni_cmd_get_irq_mask {
+	__le32 pad;
+	u8 irq_index;
+};
+
+struct dpni_rsp_get_irq_mask {
+	__le32 mask;
+};
+
+struct dpni_cmd_get_irq_status {
+	__le32 status;
+	u8 irq_index;
+};
+
+struct dpni_rsp_get_irq_status {
+	__le32 status;
+};
+
+struct dpni_cmd_clear_irq_status {
+	__le32 status;
+	u8 irq_index;
+};
+
+struct dpni_rsp_get_attr {
+	/* response word 0 */
+	__le32 options;
+	u8 num_queues;
+	u8 num_tcs;
+	u8 mac_filter_entries;
+	u8 pad0;
+	/* response word 1 */
+	u8 vlan_filter_entries;
+	u8 pad1;
+	u8 qos_entries;
+	u8 pad2;
+	__le16 fs_entries;
+	__le16 pad3;
+	/* response word 2 */
+	u8 qos_key_size;
+	u8 fs_key_size;
+	__le16 wriop_version;
+};
+
+#define DPNI_ERROR_ACTION_SHIFT		0
+#define DPNI_ERROR_ACTION_SIZE		4
+#define DPNI_FRAME_ANN_SHIFT		4
+#define DPNI_FRAME_ANN_SIZE		1
+
+struct dpni_cmd_set_errors_behavior {
+	__le32 errors;
+	/* from least significant bit: error_action:4, set_frame_annotation:1 */
+	u8 flags;
+};
+
+/* There are 3 separate commands for configuring Rx, Tx and Tx confirmation
+ * buffer layouts, but they all share the same parameters.
+ * If one of the functions changes, below structure needs to be split.
+ */
+
+#define DPNI_PASS_TS_SHIFT		0
+#define DPNI_PASS_TS_SIZE		1
+#define DPNI_PASS_PR_SHIFT		1
+#define DPNI_PASS_PR_SIZE		1
+#define DPNI_PASS_FS_SHIFT		2
+#define DPNI_PASS_FS_SIZE		1
+
+struct dpni_cmd_get_buffer_layout {
+	u8 qtype;
+};
+
+struct dpni_rsp_get_buffer_layout {
+	/* response word 0 */
+	u8 pad0[6];
+	/* from LSB: pass_timestamp:1, parser_result:1, frame_status:1 */
+	u8 flags;
+	u8 pad1;
+	/* response word 1 */
+	__le16 private_data_size;
+	__le16 data_align;
+	__le16 head_room;
+	__le16 tail_room;
+};
+
+struct dpni_cmd_set_buffer_layout {
+	/* cmd word 0 */
+	u8 qtype;
+	u8 pad0[3];
+	__le16 options;
+	/* from LSB: pass_timestamp:1, parser_result:1, frame_status:1 */
+	u8 flags;
+	u8 pad1;
+	/* cmd word 1 */
+	__le16 private_data_size;
+	__le16 data_align;
+	__le16 head_room;
+	__le16 tail_room;
+};
+
+struct dpni_cmd_set_offload {
+	u8 pad[3];
+	u8 dpni_offload;
+	__le32 config;
+};
+
+struct dpni_cmd_get_offload {
+	u8 pad[3];
+	u8 dpni_offload;
+};
+
+struct dpni_rsp_get_offload {
+	__le32 pad;
+	__le32 config;
+};
+
+struct dpni_cmd_get_qdid {
+	u8 qtype;
+};
+
+struct dpni_rsp_get_qdid {
+	__le16 qdid;
+};
+
+struct dpni_rsp_get_tx_data_offset {
+	__le16 data_offset;
+};
+
+struct dpni_cmd_get_statistics {
+	u8 page_number;
+};
+
+struct dpni_rsp_get_statistics {
+	__le64 counter[DPNI_STATISTICS_CNT];
+};
+
+struct dpni_cmd_set_link_cfg {
+	/* cmd word 0 */
+	__le64 pad0;
+	/* cmd word 1 */
+	__le32 rate;
+	__le32 pad1;
+	/* cmd word 2 */
+	__le64 options;
+};
+
+#define DPNI_LINK_STATE_SHIFT		0
+#define DPNI_LINK_STATE_SIZE		1
+
+struct dpni_rsp_get_link_state {
+	/* response word 0 */
+	__le32 pad0;
+	/* from LSB: up:1 */
+	u8 flags;
+	u8 pad1[3];
+	/* response word 1 */
+	__le32 rate;
+	__le32 pad2;
+	/* response word 2 */
+	__le64 options;
+};
+
+struct dpni_cmd_set_max_frame_length {
+	__le16 max_frame_length;
+};
+
+struct dpni_rsp_get_max_frame_length {
+	__le16 max_frame_length;
+};
+
+struct dpni_cmd_set_multicast_promisc {
+	u8 enable;
+};
+
+struct dpni_rsp_get_multicast_promisc {
+	u8 enabled;
+};
+
+struct dpni_cmd_set_unicast_promisc {
+	u8 enable;
+};
+
+struct dpni_rsp_get_unicast_promisc {
+	u8 enabled;
+};
+
+struct dpni_cmd_set_primary_mac_addr {
+	__le16 pad;
+	u8 mac_addr[6];
+};
+
+struct dpni_rsp_get_primary_mac_addr {
+	__le16 pad;
+	u8 mac_addr[6];
+};
+
+struct dpni_rsp_get_port_mac_addr {
+	__le16 pad;
+	u8 mac_addr[6];
+};
+
+struct dpni_cmd_add_mac_addr {
+	__le16 pad;
+	u8 mac_addr[6];
+};
+
+struct dpni_cmd_remove_mac_addr {
+	__le16 pad;
+	u8 mac_addr[6];
+};
+
+#define DPNI_UNICAST_FILTERS_SHIFT	0
+#define DPNI_UNICAST_FILTERS_SIZE	1
+#define DPNI_MULTICAST_FILTERS_SHIFT	1
+#define DPNI_MULTICAST_FILTERS_SIZE	1
+
+struct dpni_cmd_clear_mac_filters {
+	/* from LSB: unicast:1, multicast:1 */
+	u8 flags;
+};
+
+#define DPNI_DIST_MODE_SHIFT		0
+#define DPNI_DIST_MODE_SIZE		4
+#define DPNI_MISS_ACTION_SHIFT		4
+#define DPNI_MISS_ACTION_SIZE		4
+
+struct dpni_cmd_set_rx_tc_dist {
+	/* cmd word 0 */
+	__le16 dist_size;
+	u8 tc_id;
+	/* from LSB: dist_mode:4, miss_action:4 */
+	u8 flags;
+	__le16 pad0;
+	__le16 default_flow_id;
+	/* cmd word 1..5 */
+	__le64 pad1[5];
+	/* cmd word 6 */
+	__le64 key_cfg_iova;
+};
+
+/* dpni_set_rx_tc_dist extension (structure of the DMA-able memory at
+ * key_cfg_iova)
+ */
+struct dpni_mask_cfg {
+	u8 mask;
+	u8 offset;
+};
+
+#define DPNI_EFH_TYPE_SHIFT		0
+#define DPNI_EFH_TYPE_SIZE		4
+#define DPNI_EXTRACT_TYPE_SHIFT		0
+#define DPNI_EXTRACT_TYPE_SIZE		4
+
+struct dpni_dist_extract {
+	/* word 0 */
+	u8 prot;
+	/* EFH type stored in the 4 least significant bits */
+	u8 efh_type;
+	u8 size;
+	u8 offset;
+	__le32 field;
+	/* word 1 */
+	u8 hdr_index;
+	u8 constant;
+	u8 num_of_repeats;
+	u8 num_of_byte_masks;
+	/* Extraction type is stored in the 4 LSBs */
+	u8 extract_type;
+	u8 pad[3];
+	/* word 2 */
+	struct dpni_mask_cfg masks[4];
+};
+
+struct dpni_ext_set_rx_tc_dist {
+	/* extension word 0 */
+	u8 num_extracts;
+	u8 pad[7];
+	/* words 1..25 */
+	struct dpni_dist_extract extracts[DPKG_MAX_NUM_OF_EXTRACTS];
+};
+
+struct dpni_cmd_get_queue {
+	u8 qtype;
+	u8 tc;
+	u8 index;
+};
+
+#define DPNI_DEST_TYPE_SHIFT		0
+#define DPNI_DEST_TYPE_SIZE		4
+#define DPNI_STASH_CTRL_SHIFT		6
+#define DPNI_STASH_CTRL_SIZE		1
+#define DPNI_HOLD_ACTIVE_SHIFT		7
+#define DPNI_HOLD_ACTIVE_SIZE		1
+
+struct dpni_rsp_get_queue {
+	/* response word 0 */
+	__le64 pad0;
+	/* response word 1 */
+	__le32 dest_id;
+	__le16 pad1;
+	u8 dest_prio;
+	/* From LSB: dest_type:4, pad:2, flc_stash_ctrl:1, hold_active:1 */
+	u8 flags;
+	/* response word 2 */
+	__le64 flc;
+	/* response word 3 */
+	__le64 user_context;
+	/* response word 4 */
+	__le32 fqid;
+	__le16 qdbin;
+};
+
+struct dpni_cmd_set_queue {
+	/* cmd word 0 */
+	u8 qtype;
+	u8 tc;
+	u8 index;
+	u8 options;
+	__le32 pad0;
+	/* cmd word 1 */
+	__le32 dest_id;
+	__le16 pad1;
+	u8 dest_prio;
+	u8 flags;
+	/* cmd word 2 */
+	__le64 flc;
+	/* cmd word 3 */
+	__le64 user_context;
+};
+
+struct dpni_cmd_set_taildrop {
+	/* cmd word 0 */
+	u8 congestion_point;
+	u8 qtype;
+	u8 tc;
+	u8 index;
+	__le32 pad0;
+	/* cmd word 1 */
+	/* Only least significant bit is relevant */
+	u8 enable;
+	u8 pad1;
+	u8 units;
+	u8 pad2;
+	__le32 threshold;
+};
+
+struct dpni_cmd_get_taildrop {
+	u8 congestion_point;
+	u8 qtype;
+	u8 tc;
+	u8 index;
+};
+
+struct dpni_rsp_get_taildrop {
+	/* cmd word 0 */
+	__le64 pad0;
+	/* cmd word 1 */
+	/* only least significant bit is relevant */
+	u8 enable;
+	u8 pad1;
+	u8 units;
+	u8 pad2;
+	__le32 threshold;
+};
+
+struct dpni_rsp_get_api_version {
+	__le16 major;
+	__le16 minor;
+};
+
+#endif /* _FSL_DPNI_CMD_H */
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpni.c b/drivers/net/ethernet/freescale/dpaa2/dpni.c
new file mode 100644
index 0000000..d6ac267
--- /dev/null
+++ b/drivers/net/ethernet/freescale/dpaa2/dpni.c
@@ -0,0 +1,1600 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/* Copyright 2013-2016 Freescale Semiconductor Inc.
+ * Copyright 2016 NXP
+ */
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/fsl/mc.h>
+#include "dpni.h"
+#include "dpni-cmd.h"
+
+/**
+ * dpni_prepare_key_cfg() - function prepare extract parameters
+ * @cfg: defining a full Key Generation profile (rule)
+ * @key_cfg_buf: Zeroed 256 bytes of memory before mapping it to DMA
+ *
+ * This function has to be called before the following functions:
+ *	- dpni_set_rx_tc_dist()
+ *	- dpni_set_qos_table()
+ */
+int dpni_prepare_key_cfg(const struct dpkg_profile_cfg *cfg, u8 *key_cfg_buf)
+{
+	int i, j;
+	struct dpni_ext_set_rx_tc_dist *dpni_ext;
+	struct dpni_dist_extract *extr;
+
+	if (cfg->num_extracts > DPKG_MAX_NUM_OF_EXTRACTS)
+		return -EINVAL;
+
+	dpni_ext = (struct dpni_ext_set_rx_tc_dist *)key_cfg_buf;
+	dpni_ext->num_extracts = cfg->num_extracts;
+
+	for (i = 0; i < cfg->num_extracts; i++) {
+		extr = &dpni_ext->extracts[i];
+
+		switch (cfg->extracts[i].type) {
+		case DPKG_EXTRACT_FROM_HDR:
+			extr->prot = cfg->extracts[i].extract.from_hdr.prot;
+			dpni_set_field(extr->efh_type, EFH_TYPE,
+				       cfg->extracts[i].extract.from_hdr.type);
+			extr->size = cfg->extracts[i].extract.from_hdr.size;
+			extr->offset = cfg->extracts[i].extract.from_hdr.offset;
+			extr->field = cpu_to_le32(
+				cfg->extracts[i].extract.from_hdr.field);
+			extr->hdr_index =
+				cfg->extracts[i].extract.from_hdr.hdr_index;
+			break;
+		case DPKG_EXTRACT_FROM_DATA:
+			extr->size = cfg->extracts[i].extract.from_data.size;
+			extr->offset =
+				cfg->extracts[i].extract.from_data.offset;
+			break;
+		case DPKG_EXTRACT_FROM_PARSE:
+			extr->size = cfg->extracts[i].extract.from_parse.size;
+			extr->offset =
+				cfg->extracts[i].extract.from_parse.offset;
+			break;
+		default:
+			return -EINVAL;
+		}
+
+		extr->num_of_byte_masks = cfg->extracts[i].num_of_byte_masks;
+		dpni_set_field(extr->extract_type, EXTRACT_TYPE,
+			       cfg->extracts[i].type);
+
+		for (j = 0; j < DPKG_NUM_OF_MASKS; j++) {
+			extr->masks[j].mask = cfg->extracts[i].masks[j].mask;
+			extr->masks[j].offset =
+				cfg->extracts[i].masks[j].offset;
+		}
+	}
+
+	return 0;
+}
+
+/**
+ * dpni_open() - Open a control session for the specified object
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @dpni_id:	DPNI unique ID
+ * @token:	Returned token; use in subsequent API calls
+ *
+ * This function can be used to open a control session for an
+ * already created object; an object may have been declared in
+ * the DPL or by calling the dpni_create() function.
+ * This function returns a unique authentication token,
+ * associated with the specific object ID and the specific MC
+ * portal; this token must be used in all subsequent commands for
+ * this specific object.
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_open(struct fsl_mc_io *mc_io,
+	      u32 cmd_flags,
+	      int dpni_id,
+	      u16 *token)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_open *cmd_params;
+
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_OPEN,
+					  cmd_flags,
+					  0);
+	cmd_params = (struct dpni_cmd_open *)cmd.params;
+	cmd_params->dpni_id = cpu_to_le32(dpni_id);
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	*token = mc_cmd_hdr_read_token(&cmd);
+
+	return 0;
+}
+
+/**
+ * dpni_close() - Close the control session of the object
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ *
+ * After this function is called, no further operations are
+ * allowed on the object without opening a new control session.
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_close(struct fsl_mc_io *mc_io,
+	       u32 cmd_flags,
+	       u16 token)
+{
+	struct fsl_mc_command cmd = { 0 };
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_CLOSE,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_set_pools() - Set buffer pools configuration
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @cfg:	Buffer pools configuration
+ *
+ * mandatory for DPNI operation
+ * warning:Allowed only when DPNI is disabled
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_pools(struct fsl_mc_io *mc_io,
+		   u32 cmd_flags,
+		   u16 token,
+		   const struct dpni_pools_cfg *cfg)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_pools *cmd_params;
+	int i;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_POOLS,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_pools *)cmd.params;
+	cmd_params->num_dpbp = cfg->num_dpbp;
+	for (i = 0; i < DPNI_MAX_DPBP; i++) {
+		cmd_params->dpbp_id[i] = cpu_to_le32(cfg->pools[i].dpbp_id);
+		cmd_params->buffer_size[i] =
+			cpu_to_le16(cfg->pools[i].buffer_size);
+		cmd_params->backup_pool_mask |=
+			DPNI_BACKUP_POOL(cfg->pools[i].backup_pool, i);
+	}
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_enable() - Enable the DPNI, allow sending and receiving frames.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:		Token of DPNI object
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_enable(struct fsl_mc_io *mc_io,
+		u32 cmd_flags,
+		u16 token)
+{
+	struct fsl_mc_command cmd = { 0 };
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_ENABLE,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_disable() - Disable the DPNI, stop sending and receiving frames.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_disable(struct fsl_mc_io *mc_io,
+		 u32 cmd_flags,
+		 u16 token)
+{
+	struct fsl_mc_command cmd = { 0 };
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_DISABLE,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_is_enabled() - Check if the DPNI is enabled.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @en:		Returns '1' if object is enabled; '0' otherwise
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_is_enabled(struct fsl_mc_io *mc_io,
+		    u32 cmd_flags,
+		    u16 token,
+		    int *en)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_rsp_is_enabled *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_IS_ENABLED,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_is_enabled *)cmd.params;
+	*en = dpni_get_field(rsp_params->enabled, ENABLE);
+
+	return 0;
+}
+
+/**
+ * dpni_reset() - Reset the DPNI, returns the object to initial state.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_reset(struct fsl_mc_io *mc_io,
+	       u32 cmd_flags,
+	       u16 token)
+{
+	struct fsl_mc_command cmd = { 0 };
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_RESET,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_set_irq_enable() - Set overall interrupt state.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @irq_index:	The interrupt index to configure
+ * @en:		Interrupt state: - enable = 1, disable = 0
+ *
+ * Allows GPP software to control when interrupts are generated.
+ * Each interrupt can have up to 32 causes.  The enable/disable control's the
+ * overall interrupt state. if the interrupt is disabled no causes will cause
+ * an interrupt.
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_irq_enable(struct fsl_mc_io *mc_io,
+			u32 cmd_flags,
+			u16 token,
+			u8 irq_index,
+			u8 en)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_irq_enable *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_IRQ_ENABLE,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_irq_enable *)cmd.params;
+	dpni_set_field(cmd_params->enable, ENABLE, en);
+	cmd_params->irq_index = irq_index;
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_irq_enable() - Get overall interrupt state
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @irq_index:	The interrupt index to configure
+ * @en:		Returned interrupt state - enable = 1, disable = 0
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_irq_enable(struct fsl_mc_io *mc_io,
+			u32 cmd_flags,
+			u16 token,
+			u8 irq_index,
+			u8 *en)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_get_irq_enable *cmd_params;
+	struct dpni_rsp_get_irq_enable *rsp_params;
+
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_IRQ_ENABLE,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_get_irq_enable *)cmd.params;
+	cmd_params->irq_index = irq_index;
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_irq_enable *)cmd.params;
+	*en = dpni_get_field(rsp_params->enabled, ENABLE);
+
+	return 0;
+}
+
+/**
+ * dpni_set_irq_mask() - Set interrupt mask.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @irq_index:	The interrupt index to configure
+ * @mask:	event mask to trigger interrupt;
+ *			each bit:
+ *				0 = ignore event
+ *				1 = consider event for asserting IRQ
+ *
+ * Every interrupt can have up to 32 causes and the interrupt model supports
+ * masking/unmasking each cause independently
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_irq_mask(struct fsl_mc_io *mc_io,
+		      u32 cmd_flags,
+		      u16 token,
+		      u8 irq_index,
+		      u32 mask)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_irq_mask *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_IRQ_MASK,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_irq_mask *)cmd.params;
+	cmd_params->mask = cpu_to_le32(mask);
+	cmd_params->irq_index = irq_index;
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_irq_mask() - Get interrupt mask.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @irq_index:	The interrupt index to configure
+ * @mask:	Returned event mask to trigger interrupt
+ *
+ * Every interrupt can have up to 32 causes and the interrupt model supports
+ * masking/unmasking each cause independently
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_irq_mask(struct fsl_mc_io *mc_io,
+		      u32 cmd_flags,
+		      u16 token,
+		      u8 irq_index,
+		      u32 *mask)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_get_irq_mask *cmd_params;
+	struct dpni_rsp_get_irq_mask *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_IRQ_MASK,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_get_irq_mask *)cmd.params;
+	cmd_params->irq_index = irq_index;
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_irq_mask *)cmd.params;
+	*mask = le32_to_cpu(rsp_params->mask);
+
+	return 0;
+}
+
+/**
+ * dpni_get_irq_status() - Get the current status of any pending interrupts.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @irq_index:	The interrupt index to configure
+ * @status:	Returned interrupts status - one bit per cause:
+ *			0 = no interrupt pending
+ *			1 = interrupt pending
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_irq_status(struct fsl_mc_io *mc_io,
+			u32 cmd_flags,
+			u16 token,
+			u8 irq_index,
+			u32 *status)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_get_irq_status *cmd_params;
+	struct dpni_rsp_get_irq_status *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_IRQ_STATUS,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_get_irq_status *)cmd.params;
+	cmd_params->status = cpu_to_le32(*status);
+	cmd_params->irq_index = irq_index;
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_irq_status *)cmd.params;
+	*status = le32_to_cpu(rsp_params->status);
+
+	return 0;
+}
+
+/**
+ * dpni_clear_irq_status() - Clear a pending interrupt's status
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @irq_index:	The interrupt index to configure
+ * @status:	bits to clear (W1C) - one bit per cause:
+ *			0 = don't change
+ *			1 = clear status bit
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_clear_irq_status(struct fsl_mc_io *mc_io,
+			  u32 cmd_flags,
+			  u16 token,
+			  u8 irq_index,
+			  u32 status)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_clear_irq_status *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_CLEAR_IRQ_STATUS,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_clear_irq_status *)cmd.params;
+	cmd_params->irq_index = irq_index;
+	cmd_params->status = cpu_to_le32(status);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_attributes() - Retrieve DPNI attributes.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @attr:	Object's attributes
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_attributes(struct fsl_mc_io *mc_io,
+			u32 cmd_flags,
+			u16 token,
+			struct dpni_attr *attr)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_rsp_get_attr *rsp_params;
+
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_ATTR,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_attr *)cmd.params;
+	attr->options = le32_to_cpu(rsp_params->options);
+	attr->num_queues = rsp_params->num_queues;
+	attr->num_tcs = rsp_params->num_tcs;
+	attr->mac_filter_entries = rsp_params->mac_filter_entries;
+	attr->vlan_filter_entries = rsp_params->vlan_filter_entries;
+	attr->qos_entries = rsp_params->qos_entries;
+	attr->fs_entries = le16_to_cpu(rsp_params->fs_entries);
+	attr->qos_key_size = rsp_params->qos_key_size;
+	attr->fs_key_size = rsp_params->fs_key_size;
+	attr->wriop_version = le16_to_cpu(rsp_params->wriop_version);
+
+	return 0;
+}
+
+/**
+ * dpni_set_errors_behavior() - Set errors behavior
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @cfg:	Errors configuration
+ *
+ * this function may be called numerous times with different
+ * error masks
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_errors_behavior(struct fsl_mc_io *mc_io,
+			     u32 cmd_flags,
+			     u16 token,
+			     struct dpni_error_cfg *cfg)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_errors_behavior *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_ERRORS_BEHAVIOR,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_errors_behavior *)cmd.params;
+	cmd_params->errors = cpu_to_le32(cfg->errors);
+	dpni_set_field(cmd_params->flags, ERROR_ACTION, cfg->error_action);
+	dpni_set_field(cmd_params->flags, FRAME_ANN, cfg->set_frame_annotation);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_buffer_layout() - Retrieve buffer layout attributes.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @qtype:	Type of queue to retrieve configuration for
+ * @layout:	Returns buffer layout attributes
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_buffer_layout(struct fsl_mc_io *mc_io,
+			   u32 cmd_flags,
+			   u16 token,
+			   enum dpni_queue_type qtype,
+			   struct dpni_buffer_layout *layout)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_get_buffer_layout *cmd_params;
+	struct dpni_rsp_get_buffer_layout *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_BUFFER_LAYOUT,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_get_buffer_layout *)cmd.params;
+	cmd_params->qtype = qtype;
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_buffer_layout *)cmd.params;
+	layout->pass_timestamp = dpni_get_field(rsp_params->flags, PASS_TS);
+	layout->pass_parser_result = dpni_get_field(rsp_params->flags, PASS_PR);
+	layout->pass_frame_status = dpni_get_field(rsp_params->flags, PASS_FS);
+	layout->private_data_size = le16_to_cpu(rsp_params->private_data_size);
+	layout->data_align = le16_to_cpu(rsp_params->data_align);
+	layout->data_head_room = le16_to_cpu(rsp_params->head_room);
+	layout->data_tail_room = le16_to_cpu(rsp_params->tail_room);
+
+	return 0;
+}
+
+/**
+ * dpni_set_buffer_layout() - Set buffer layout configuration.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @qtype:	Type of queue this configuration applies to
+ * @layout:	Buffer layout configuration
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ *
+ * @warning	Allowed only when DPNI is disabled
+ */
+int dpni_set_buffer_layout(struct fsl_mc_io *mc_io,
+			   u32 cmd_flags,
+			   u16 token,
+			   enum dpni_queue_type qtype,
+			   const struct dpni_buffer_layout *layout)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_buffer_layout *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_BUFFER_LAYOUT,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_buffer_layout *)cmd.params;
+	cmd_params->qtype = qtype;
+	cmd_params->options = cpu_to_le16(layout->options);
+	dpni_set_field(cmd_params->flags, PASS_TS, layout->pass_timestamp);
+	dpni_set_field(cmd_params->flags, PASS_PR, layout->pass_parser_result);
+	dpni_set_field(cmd_params->flags, PASS_FS, layout->pass_frame_status);
+	cmd_params->private_data_size = cpu_to_le16(layout->private_data_size);
+	cmd_params->data_align = cpu_to_le16(layout->data_align);
+	cmd_params->head_room = cpu_to_le16(layout->data_head_room);
+	cmd_params->tail_room = cpu_to_le16(layout->data_tail_room);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_set_offload() - Set DPNI offload configuration.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @type:	Type of DPNI offload
+ * @config:	Offload configuration.
+ *		For checksum offloads, non-zero value enables the offload
+ *
+ * Return:     '0' on Success; Error code otherwise.
+ *
+ * @warning    Allowed only when DPNI is disabled
+ */
+
+int dpni_set_offload(struct fsl_mc_io *mc_io,
+		     u32 cmd_flags,
+		     u16 token,
+		     enum dpni_offload type,
+		     u32 config)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_offload *cmd_params;
+
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_OFFLOAD,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_offload *)cmd.params;
+	cmd_params->dpni_offload = type;
+	cmd_params->config = cpu_to_le32(config);
+
+	return mc_send_command(mc_io, &cmd);
+}
+
+int dpni_get_offload(struct fsl_mc_io *mc_io,
+		     u32 cmd_flags,
+		     u16 token,
+		     enum dpni_offload type,
+		     u32 *config)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_get_offload *cmd_params;
+	struct dpni_rsp_get_offload *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_OFFLOAD,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_get_offload *)cmd.params;
+	cmd_params->dpni_offload = type;
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_offload *)cmd.params;
+	*config = le32_to_cpu(rsp_params->config);
+
+	return 0;
+}
+
+/**
+ * dpni_get_qdid() - Get the Queuing Destination ID (QDID) that should be used
+ *			for enqueue operations
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @qtype:	Type of queue to receive QDID for
+ * @qdid:	Returned virtual QDID value that should be used as an argument
+ *			in all enqueue operations
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_qdid(struct fsl_mc_io *mc_io,
+		  u32 cmd_flags,
+		  u16 token,
+		  enum dpni_queue_type qtype,
+		  u16 *qdid)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_get_qdid *cmd_params;
+	struct dpni_rsp_get_qdid *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_QDID,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_get_qdid *)cmd.params;
+	cmd_params->qtype = qtype;
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_qdid *)cmd.params;
+	*qdid = le16_to_cpu(rsp_params->qdid);
+
+	return 0;
+}
+
+/**
+ * dpni_get_tx_data_offset() - Get the Tx data offset (from start of buffer)
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @data_offset: Tx data offset (from start of buffer)
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_tx_data_offset(struct fsl_mc_io *mc_io,
+			    u32 cmd_flags,
+			    u16 token,
+			    u16 *data_offset)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_rsp_get_tx_data_offset *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_TX_DATA_OFFSET,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_tx_data_offset *)cmd.params;
+	*data_offset = le16_to_cpu(rsp_params->data_offset);
+
+	return 0;
+}
+
+/**
+ * dpni_set_link_cfg() - set the link configuration.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @cfg:	Link configuration
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_link_cfg(struct fsl_mc_io *mc_io,
+		      u32 cmd_flags,
+		      u16 token,
+		      const struct dpni_link_cfg *cfg)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_link_cfg *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_LINK_CFG,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_link_cfg *)cmd.params;
+	cmd_params->rate = cpu_to_le32(cfg->rate);
+	cmd_params->options = cpu_to_le64(cfg->options);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_link_state() - Return the link state (either up or down)
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @state:	Returned link state;
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_link_state(struct fsl_mc_io *mc_io,
+			u32 cmd_flags,
+			u16 token,
+			struct dpni_link_state *state)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_rsp_get_link_state *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_LINK_STATE,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_link_state *)cmd.params;
+	state->up = dpni_get_field(rsp_params->flags, LINK_STATE);
+	state->rate = le32_to_cpu(rsp_params->rate);
+	state->options = le64_to_cpu(rsp_params->options);
+
+	return 0;
+}
+
+/**
+ * dpni_set_max_frame_length() - Set the maximum received frame length.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @max_frame_length:	Maximum received frame length (in
+ *				bytes); frame is discarded if its
+ *				length exceeds this value
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_max_frame_length(struct fsl_mc_io *mc_io,
+			      u32 cmd_flags,
+			      u16 token,
+			      u16 max_frame_length)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_max_frame_length *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_MAX_FRAME_LENGTH,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_max_frame_length *)cmd.params;
+	cmd_params->max_frame_length = cpu_to_le16(max_frame_length);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_max_frame_length() - Get the maximum received frame length.
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @max_frame_length:	Maximum received frame length (in
+ *				bytes); frame is discarded if its
+ *				length exceeds this value
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_max_frame_length(struct fsl_mc_io *mc_io,
+			      u32 cmd_flags,
+			      u16 token,
+			      u16 *max_frame_length)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_rsp_get_max_frame_length *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_MAX_FRAME_LENGTH,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_max_frame_length *)cmd.params;
+	*max_frame_length = le16_to_cpu(rsp_params->max_frame_length);
+
+	return 0;
+}
+
+/**
+ * dpni_set_multicast_promisc() - Enable/disable multicast promiscuous mode
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @en:		Set to '1' to enable; '0' to disable
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_multicast_promisc(struct fsl_mc_io *mc_io,
+			       u32 cmd_flags,
+			       u16 token,
+			       int en)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_multicast_promisc *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_MCAST_PROMISC,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_multicast_promisc *)cmd.params;
+	dpni_set_field(cmd_params->enable, ENABLE, en);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_multicast_promisc() - Get multicast promiscuous mode
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @en:		Returns '1' if enabled; '0' otherwise
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_multicast_promisc(struct fsl_mc_io *mc_io,
+			       u32 cmd_flags,
+			       u16 token,
+			       int *en)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_rsp_get_multicast_promisc *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_MCAST_PROMISC,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_multicast_promisc *)cmd.params;
+	*en = dpni_get_field(rsp_params->enabled, ENABLE);
+
+	return 0;
+}
+
+/**
+ * dpni_set_unicast_promisc() - Enable/disable unicast promiscuous mode
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @en:		Set to '1' to enable; '0' to disable
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_unicast_promisc(struct fsl_mc_io *mc_io,
+			     u32 cmd_flags,
+			     u16 token,
+			     int en)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_unicast_promisc *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_UNICAST_PROMISC,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_unicast_promisc *)cmd.params;
+	dpni_set_field(cmd_params->enable, ENABLE, en);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_unicast_promisc() - Get unicast promiscuous mode
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @en:		Returns '1' if enabled; '0' otherwise
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_unicast_promisc(struct fsl_mc_io *mc_io,
+			     u32 cmd_flags,
+			     u16 token,
+			     int *en)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_rsp_get_unicast_promisc *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_UNICAST_PROMISC,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_unicast_promisc *)cmd.params;
+	*en = dpni_get_field(rsp_params->enabled, ENABLE);
+
+	return 0;
+}
+
+/**
+ * dpni_set_primary_mac_addr() - Set the primary MAC address
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @mac_addr:	MAC address to set as primary address
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_primary_mac_addr(struct fsl_mc_io *mc_io,
+			      u32 cmd_flags,
+			      u16 token,
+			      const u8 mac_addr[6])
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_primary_mac_addr *cmd_params;
+	int i;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_PRIM_MAC,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_primary_mac_addr *)cmd.params;
+	for (i = 0; i < 6; i++)
+		cmd_params->mac_addr[i] = mac_addr[5 - i];
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_primary_mac_addr() - Get the primary MAC address
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @mac_addr:	Returned MAC address
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_primary_mac_addr(struct fsl_mc_io *mc_io,
+			      u32 cmd_flags,
+			      u16 token,
+			      u8 mac_addr[6])
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_rsp_get_primary_mac_addr *rsp_params;
+	int i, err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_PRIM_MAC,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_primary_mac_addr *)cmd.params;
+	for (i = 0; i < 6; i++)
+		mac_addr[5 - i] = rsp_params->mac_addr[i];
+
+	return 0;
+}
+
+/**
+ * dpni_get_port_mac_addr() - Retrieve MAC address associated to the physical
+ *			port the DPNI is attached to
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @mac_addr:	MAC address of the physical port, if any, otherwise 0
+ *
+ * The primary MAC address is not cleared by this operation.
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_port_mac_addr(struct fsl_mc_io *mc_io,
+			   u32 cmd_flags,
+			   u16 token,
+			   u8 mac_addr[6])
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_rsp_get_port_mac_addr *rsp_params;
+	int i, err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_PORT_MAC_ADDR,
+					  cmd_flags,
+					  token);
+
+	/* send command to mc*/
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_port_mac_addr *)cmd.params;
+	for (i = 0; i < 6; i++)
+		mac_addr[5 - i] = rsp_params->mac_addr[i];
+
+	return 0;
+}
+
+/**
+ * dpni_add_mac_addr() - Add MAC address filter
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @mac_addr:	MAC address to add
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_add_mac_addr(struct fsl_mc_io *mc_io,
+		      u32 cmd_flags,
+		      u16 token,
+		      const u8 mac_addr[6])
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_add_mac_addr *cmd_params;
+	int i;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_ADD_MAC_ADDR,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_add_mac_addr *)cmd.params;
+	for (i = 0; i < 6; i++)
+		cmd_params->mac_addr[i] = mac_addr[5 - i];
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_remove_mac_addr() - Remove MAC address filter
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @mac_addr:	MAC address to remove
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_remove_mac_addr(struct fsl_mc_io *mc_io,
+			 u32 cmd_flags,
+			 u16 token,
+			 const u8 mac_addr[6])
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_remove_mac_addr *cmd_params;
+	int i;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_REMOVE_MAC_ADDR,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_remove_mac_addr *)cmd.params;
+	for (i = 0; i < 6; i++)
+		cmd_params->mac_addr[i] = mac_addr[5 - i];
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_clear_mac_filters() - Clear all unicast and/or multicast MAC filters
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @unicast:	Set to '1' to clear unicast addresses
+ * @multicast:	Set to '1' to clear multicast addresses
+ *
+ * The primary MAC address is not cleared by this operation.
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_clear_mac_filters(struct fsl_mc_io *mc_io,
+			   u32 cmd_flags,
+			   u16 token,
+			   int unicast,
+			   int multicast)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_clear_mac_filters *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_CLR_MAC_FILTERS,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_clear_mac_filters *)cmd.params;
+	dpni_set_field(cmd_params->flags, UNICAST_FILTERS, unicast);
+	dpni_set_field(cmd_params->flags, MULTICAST_FILTERS, multicast);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_set_rx_tc_dist() - Set Rx traffic class distribution configuration
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @tc_id:	Traffic class selection (0-7)
+ * @cfg:	Traffic class distribution configuration
+ *
+ * warning: if 'dist_mode != DPNI_DIST_MODE_NONE', call dpni_prepare_key_cfg()
+ *			first to prepare the key_cfg_iova parameter
+ *
+ * Return:	'0' on Success; error code otherwise.
+ */
+int dpni_set_rx_tc_dist(struct fsl_mc_io *mc_io,
+			u32 cmd_flags,
+			u16 token,
+			u8 tc_id,
+			const struct dpni_rx_tc_dist_cfg *cfg)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_rx_tc_dist *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_RX_TC_DIST,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_rx_tc_dist *)cmd.params;
+	cmd_params->dist_size = cpu_to_le16(cfg->dist_size);
+	cmd_params->tc_id = tc_id;
+	dpni_set_field(cmd_params->flags, DIST_MODE, cfg->dist_mode);
+	dpni_set_field(cmd_params->flags, MISS_ACTION, cfg->fs_cfg.miss_action);
+	cmd_params->default_flow_id = cpu_to_le16(cfg->fs_cfg.default_flow_id);
+	cmd_params->key_cfg_iova = cpu_to_le64(cfg->key_cfg_iova);
+
+	/* send command to mc*/
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_set_queue() - Set queue parameters
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @qtype:	Type of queue - all queue types are supported, although
+ *		the command is ignored for Tx
+ * @tc:		Traffic class, in range 0 to NUM_TCS - 1
+ * @index:	Selects the specific queue out of the set allocated for the
+ *		same TC. Value must be in range 0 to NUM_QUEUES - 1
+ * @options:	A combination of DPNI_QUEUE_OPT_ values that control what
+ *		configuration options are set on the queue
+ * @queue:	Queue structure
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_queue(struct fsl_mc_io *mc_io,
+		   u32 cmd_flags,
+		   u16 token,
+		   enum dpni_queue_type qtype,
+		   u8 tc,
+		   u8 index,
+		   u8 options,
+		   const struct dpni_queue *queue)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_queue *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_QUEUE,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_queue *)cmd.params;
+	cmd_params->qtype = qtype;
+	cmd_params->tc = tc;
+	cmd_params->index = index;
+	cmd_params->options = options;
+	cmd_params->dest_id = cpu_to_le32(queue->destination.id);
+	cmd_params->dest_prio = queue->destination.priority;
+	dpni_set_field(cmd_params->flags, DEST_TYPE, queue->destination.type);
+	dpni_set_field(cmd_params->flags, STASH_CTRL, queue->flc.stash_control);
+	dpni_set_field(cmd_params->flags, HOLD_ACTIVE,
+		       queue->destination.hold_active);
+	cmd_params->flc = cpu_to_le64(queue->flc.value);
+	cmd_params->user_context = cpu_to_le64(queue->user_context);
+
+	/* send command to mc */
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_queue() - Get queue parameters
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @qtype:	Type of queue - all queue types are supported
+ * @tc:		Traffic class, in range 0 to NUM_TCS - 1
+ * @index:	Selects the specific queue out of the set allocated for the
+ *		same TC. Value must be in range 0 to NUM_QUEUES - 1
+ * @queue:	Queue configuration structure
+ * @qid:	Queue identification
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_queue(struct fsl_mc_io *mc_io,
+		   u32 cmd_flags,
+		   u16 token,
+		   enum dpni_queue_type qtype,
+		   u8 tc,
+		   u8 index,
+		   struct dpni_queue *queue,
+		   struct dpni_queue_id *qid)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_get_queue *cmd_params;
+	struct dpni_rsp_get_queue *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_QUEUE,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_get_queue *)cmd.params;
+	cmd_params->qtype = qtype;
+	cmd_params->tc = tc;
+	cmd_params->index = index;
+
+	/* send command to mc */
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_queue *)cmd.params;
+	queue->destination.id = le32_to_cpu(rsp_params->dest_id);
+	queue->destination.priority = rsp_params->dest_prio;
+	queue->destination.type = dpni_get_field(rsp_params->flags,
+						 DEST_TYPE);
+	queue->flc.stash_control = dpni_get_field(rsp_params->flags,
+						  STASH_CTRL);
+	queue->destination.hold_active = dpni_get_field(rsp_params->flags,
+							HOLD_ACTIVE);
+	queue->flc.value = le64_to_cpu(rsp_params->flc);
+	queue->user_context = le64_to_cpu(rsp_params->user_context);
+	qid->fqid = le32_to_cpu(rsp_params->fqid);
+	qid->qdbin = le16_to_cpu(rsp_params->qdbin);
+
+	return 0;
+}
+
+/**
+ * dpni_get_statistics() - Get DPNI statistics
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @page:	Selects the statistics page to retrieve, see
+ *		DPNI_GET_STATISTICS output. Pages are numbered 0 to 2.
+ * @stat:	Structure containing the statistics
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_statistics(struct fsl_mc_io *mc_io,
+			u32 cmd_flags,
+			u16 token,
+			u8 page,
+			union dpni_statistics *stat)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_get_statistics *cmd_params;
+	struct dpni_rsp_get_statistics *rsp_params;
+	int i, err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_STATISTICS,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_get_statistics *)cmd.params;
+	cmd_params->page_number = page;
+
+	/* send command to mc */
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_statistics *)cmd.params;
+	for (i = 0; i < DPNI_STATISTICS_CNT; i++)
+		stat->raw.counter[i] = le64_to_cpu(rsp_params->counter[i]);
+
+	return 0;
+}
+
+/**
+ * dpni_set_taildrop() - Set taildrop per queue or TC
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @cg_point:	Congestion point
+ * @q_type:	Queue type on which the taildrop is configured.
+ *		Only Rx queues are supported for now
+ * @tc:		Traffic class to apply this taildrop to
+ * @q_index:	Index of the queue if the DPNI supports multiple queues for
+ *		traffic distribution. Ignored if CONGESTION_POINT is not 0.
+ * @taildrop:	Taildrop structure
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_set_taildrop(struct fsl_mc_io *mc_io,
+		      u32 cmd_flags,
+		      u16 token,
+		      enum dpni_congestion_point cg_point,
+		      enum dpni_queue_type qtype,
+		      u8 tc,
+		      u8 index,
+		      struct dpni_taildrop *taildrop)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_set_taildrop *cmd_params;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_TAILDROP,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_set_taildrop *)cmd.params;
+	cmd_params->congestion_point = cg_point;
+	cmd_params->qtype = qtype;
+	cmd_params->tc = tc;
+	cmd_params->index = index;
+	dpni_set_field(cmd_params->enable, ENABLE, taildrop->enable);
+	cmd_params->units = taildrop->units;
+	cmd_params->threshold = cpu_to_le32(taildrop->threshold);
+
+	/* send command to mc */
+	return mc_send_command(mc_io, &cmd);
+}
+
+/**
+ * dpni_get_taildrop() - Get taildrop information
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token:	Token of DPNI object
+ * @cg_point:	Congestion point
+ * @q_type:	Queue type on which the taildrop is configured.
+ *		Only Rx queues are supported for now
+ * @tc:		Traffic class to apply this taildrop to
+ * @q_index:	Index of the queue if the DPNI supports multiple queues for
+ *		traffic distribution. Ignored if CONGESTION_POINT is not 0.
+ * @taildrop:	Taildrop structure
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_taildrop(struct fsl_mc_io *mc_io,
+		      u32 cmd_flags,
+		      u16 token,
+		      enum dpni_congestion_point cg_point,
+		      enum dpni_queue_type qtype,
+		      u8 tc,
+		      u8 index,
+		      struct dpni_taildrop *taildrop)
+{
+	struct fsl_mc_command cmd = { 0 };
+	struct dpni_cmd_get_taildrop *cmd_params;
+	struct dpni_rsp_get_taildrop *rsp_params;
+	int err;
+
+	/* prepare command */
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_TAILDROP,
+					  cmd_flags,
+					  token);
+	cmd_params = (struct dpni_cmd_get_taildrop *)cmd.params;
+	cmd_params->congestion_point = cg_point;
+	cmd_params->qtype = qtype;
+	cmd_params->tc = tc;
+	cmd_params->index = index;
+
+	/* send command to mc */
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	/* retrieve response parameters */
+	rsp_params = (struct dpni_rsp_get_taildrop *)cmd.params;
+	taildrop->enable = dpni_get_field(rsp_params->enable, ENABLE);
+	taildrop->units = rsp_params->units;
+	taildrop->threshold = le32_to_cpu(rsp_params->threshold);
+
+	return 0;
+}
+
+/**
+ * dpni_get_api_version() - Get Data Path Network Interface API version
+ * @mc_io:	Pointer to MC portal's I/O object
+ * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
+ * @major_ver:	Major version of data path network interface API
+ * @minor_ver:	Minor version of data path network interface API
+ *
+ * Return:	'0' on Success; Error code otherwise.
+ */
+int dpni_get_api_version(struct fsl_mc_io *mc_io,
+			 u32 cmd_flags,
+			 u16 *major_ver,
+			 u16 *minor_ver)
+{
+	struct dpni_rsp_get_api_version *rsp_params;
+	struct fsl_mc_command cmd = { 0 };
+	int err;
+
+	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_API_VERSION,
+					  cmd_flags, 0);
+
+	err = mc_send_command(mc_io, &cmd);
+	if (err)
+		return err;
+
+	rsp_params = (struct dpni_rsp_get_api_version *)cmd.params;
+	*major_ver = le16_to_cpu(rsp_params->major);
+	*minor_ver = le16_to_cpu(rsp_params->minor);
+
+	return 0;
+}
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpni.h b/drivers/net/ethernet/freescale/dpaa2/dpni.h
new file mode 100644
index 0000000..b378a00
--- /dev/null
+++ b/drivers/net/ethernet/freescale/dpaa2/dpni.h
@@ -0,0 +1,824 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/* Copyright 2013-2016 Freescale Semiconductor Inc.
+ * Copyright 2016 NXP
+ */
+#ifndef __FSL_DPNI_H
+#define __FSL_DPNI_H
+
+#include "dpkg.h"
+
+struct fsl_mc_io;
+
+/**
+ * Data Path Network Interface API
+ * Contains initialization APIs and runtime control APIs for DPNI
+ */
+
+/** General DPNI macros */
+
+/**
+ * Maximum number of traffic classes
+ */
+#define DPNI_MAX_TC				8
+/**
+ * Maximum number of buffer pools per DPNI
+ */
+#define DPNI_MAX_DPBP				8
+
+/**
+ * All traffic classes considered; see dpni_set_queue()
+ */
+#define DPNI_ALL_TCS				(u8)(-1)
+/**
+ * All flows within traffic class considered; see dpni_set_queue()
+ */
+#define DPNI_ALL_TC_FLOWS			(u16)(-1)
+/**
+ * Generate new flow ID; see dpni_set_queue()
+ */
+#define DPNI_NEW_FLOW_ID			(u16)(-1)
+
+/**
+ * Tx traffic is always released to a buffer pool on transmit, there are no
+ * resources allocated to have the frames confirmed back to the source after
+ * transmission.
+ */
+#define DPNI_OPT_TX_FRM_RELEASE			0x000001
+/**
+ * Disables support for MAC address filtering for addresses other than primary
+ * MAC address. This affects both unicast and multicast. Promiscuous mode can
+ * still be enabled/disabled for both unicast and multicast. If promiscuous mode
+ * is disabled, only traffic matching the primary MAC address will be accepted.
+ */
+#define DPNI_OPT_NO_MAC_FILTER			0x000002
+/**
+ * Allocate policers for this DPNI. They can be used to rate-limit traffic per
+ * traffic class (TC) basis.
+ */
+#define DPNI_OPT_HAS_POLICING			0x000004
+/**
+ * Congestion can be managed in several ways, allowing the buffer pool to
+ * deplete on ingress, taildrop on each queue or use congestion groups for sets
+ * of queues. If set, it configures a single congestion groups across all TCs.
+ * If reset, a congestion group is allocated for each TC. Only relevant if the
+ * DPNI has multiple traffic classes.
+ */
+#define DPNI_OPT_SHARED_CONGESTION		0x000008
+/**
+ * Enables TCAM for Flow Steering and QoS look-ups. If not specified, all
+ * look-ups are exact match. Note that TCAM is not available on LS1088 and its
+ * variants. Setting this bit on these SoCs will trigger an error.
+ */
+#define DPNI_OPT_HAS_KEY_MASKING		0x000010
+/**
+ * Disables the flow steering table.
+ */
+#define DPNI_OPT_NO_FS				0x000020
+
+int dpni_open(struct fsl_mc_io	*mc_io,
+	      u32		cmd_flags,
+	      int		dpni_id,
+	      u16		*token);
+
+int dpni_close(struct fsl_mc_io	*mc_io,
+	       u32		cmd_flags,
+	       u16		token);
+
+/**
+ * struct dpni_pools_cfg - Structure representing buffer pools configuration
+ * @num_dpbp: Number of DPBPs
+ * @pools: Array of buffer pools parameters; The number of valid entries
+ *	must match 'num_dpbp' value
+ * @pools.dpbp_id: DPBP object ID
+ * @pools.buffer_size: Buffer size
+ * @pools.backup_pool: Backup pool
+ */
+struct dpni_pools_cfg {
+	u8		num_dpbp;
+	struct {
+		int	dpbp_id;
+		u16	buffer_size;
+		int	backup_pool;
+	} pools[DPNI_MAX_DPBP];
+};
+
+int dpni_set_pools(struct fsl_mc_io		*mc_io,
+		   u32				cmd_flags,
+		   u16				token,
+		   const struct dpni_pools_cfg	*cfg);
+
+int dpni_enable(struct fsl_mc_io	*mc_io,
+		u32			cmd_flags,
+		u16			token);
+
+int dpni_disable(struct fsl_mc_io	*mc_io,
+		 u32			cmd_flags,
+		 u16			token);
+
+int dpni_is_enabled(struct fsl_mc_io	*mc_io,
+		    u32			cmd_flags,
+		    u16			token,
+		    int			*en);
+
+int dpni_reset(struct fsl_mc_io	*mc_io,
+	       u32		cmd_flags,
+	       u16		token);
+
+/**
+ * DPNI IRQ Index and Events
+ */
+
+/**
+ * IRQ index
+ */
+#define DPNI_IRQ_INDEX				0
+/**
+ * IRQ event - indicates a change in link state
+ */
+#define DPNI_IRQ_EVENT_LINK_CHANGED		0x00000001
+
+int dpni_set_irq_enable(struct fsl_mc_io	*mc_io,
+			u32			cmd_flags,
+			u16			token,
+			u8			irq_index,
+			u8			en);
+
+int dpni_get_irq_enable(struct fsl_mc_io	*mc_io,
+			u32			cmd_flags,
+			u16			token,
+			u8			irq_index,
+			u8			*en);
+
+int dpni_set_irq_mask(struct fsl_mc_io	*mc_io,
+		      u32		cmd_flags,
+		      u16		token,
+		      u8		irq_index,
+		      u32		mask);
+
+int dpni_get_irq_mask(struct fsl_mc_io	*mc_io,
+		      u32		cmd_flags,
+		      u16		token,
+		      u8		irq_index,
+		      u32		*mask);
+
+int dpni_get_irq_status(struct fsl_mc_io	*mc_io,
+			u32			cmd_flags,
+			u16			token,
+			u8			irq_index,
+			u32			*status);
+
+int dpni_clear_irq_status(struct fsl_mc_io	*mc_io,
+			  u32			cmd_flags,
+			  u16			token,
+			  u8			irq_index,
+			  u32			status);
+
+/**
+ * struct dpni_attr - Structure representing DPNI attributes
+ * @options: Any combination of the following options:
+ *		DPNI_OPT_TX_FRM_RELEASE
+ *		DPNI_OPT_NO_MAC_FILTER
+ *		DPNI_OPT_HAS_POLICING
+ *		DPNI_OPT_SHARED_CONGESTION
+ *		DPNI_OPT_HAS_KEY_MASKING
+ *		DPNI_OPT_NO_FS
+ * @num_queues: Number of Tx and Rx queues used for traffic distribution.
+ * @num_tcs: Number of traffic classes (TCs), reserved for the DPNI.
+ * @mac_filter_entries: Number of entries in the MAC address filtering table.
+ * @vlan_filter_entries: Number of entries in the VLAN address filtering table.
+ * @qos_entries: Number of entries in the QoS classification table.
+ * @fs_entries: Number of entries in the flow steering table.
+ * @qos_key_size: Size, in bytes, of the QoS look-up key. Defining a key larger
+ *		than this when adding QoS entries will result in an error.
+ * @fs_key_size: Size, in bytes, of the flow steering look-up key. Defining a
+ *		key larger than this when composing the hash + FS key will
+ *		result in an error.
+ * @wriop_version: Version of WRIOP HW block. The 3 version values are stored
+ *		on 6, 5, 5 bits respectively.
+ */
+struct dpni_attr {
+	u32 options;
+	u8 num_queues;
+	u8 num_tcs;
+	u8 mac_filter_entries;
+	u8 vlan_filter_entries;
+	u8 qos_entries;
+	u16 fs_entries;
+	u8 qos_key_size;
+	u8 fs_key_size;
+	u16 wriop_version;
+};
+
+int dpni_get_attributes(struct fsl_mc_io	*mc_io,
+			u32			cmd_flags,
+			u16			token,
+			struct dpni_attr	*attr);
+
+/**
+ * DPNI errors
+ */
+
+/**
+ * Extract out of frame header error
+ */
+#define DPNI_ERROR_EOFHE	0x00020000
+/**
+ * Frame length error
+ */
+#define DPNI_ERROR_FLE		0x00002000
+/**
+ * Frame physical error
+ */
+#define DPNI_ERROR_FPE		0x00001000
+/**
+ * Parsing header error
+ */
+#define DPNI_ERROR_PHE		0x00000020
+/**
+ * Parser L3 checksum error
+ */
+#define DPNI_ERROR_L3CE		0x00000004
+/**
+ * Parser L3 checksum error
+ */
+#define DPNI_ERROR_L4CE		0x00000001
+
+/**
+ * enum dpni_error_action - Defines DPNI behavior for errors
+ * @DPNI_ERROR_ACTION_DISCARD: Discard the frame
+ * @DPNI_ERROR_ACTION_CONTINUE: Continue with the normal flow
+ * @DPNI_ERROR_ACTION_SEND_TO_ERROR_QUEUE: Send the frame to the error queue
+ */
+enum dpni_error_action {
+	DPNI_ERROR_ACTION_DISCARD = 0,
+	DPNI_ERROR_ACTION_CONTINUE = 1,
+	DPNI_ERROR_ACTION_SEND_TO_ERROR_QUEUE = 2
+};
+
+/**
+ * struct dpni_error_cfg - Structure representing DPNI errors treatment
+ * @errors: Errors mask; use 'DPNI_ERROR__<X>
+ * @error_action: The desired action for the errors mask
+ * @set_frame_annotation: Set to '1' to mark the errors in frame annotation
+ *		status (FAS); relevant only for the non-discard action
+ */
+struct dpni_error_cfg {
+	u32			errors;
+	enum dpni_error_action	error_action;
+	int			set_frame_annotation;
+};
+
+int dpni_set_errors_behavior(struct fsl_mc_io		*mc_io,
+			     u32			cmd_flags,
+			     u16			token,
+			     struct dpni_error_cfg	*cfg);
+
+/**
+ * DPNI buffer layout modification options
+ */
+
+/**
+ * Select to modify the time-stamp setting
+ */
+#define DPNI_BUF_LAYOUT_OPT_TIMESTAMP		0x00000001
+/**
+ * Select to modify the parser-result setting; not applicable for Tx
+ */
+#define DPNI_BUF_LAYOUT_OPT_PARSER_RESULT	0x00000002
+/**
+ * Select to modify the frame-status setting
+ */
+#define DPNI_BUF_LAYOUT_OPT_FRAME_STATUS	0x00000004
+/**
+ * Select to modify the private-data-size setting
+ */
+#define DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE	0x00000008
+/**
+ * Select to modify the data-alignment setting
+ */
+#define DPNI_BUF_LAYOUT_OPT_DATA_ALIGN		0x00000010
+/**
+ * Select to modify the data-head-room setting
+ */
+#define DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM	0x00000020
+/**
+ * Select to modify the data-tail-room setting
+ */
+#define DPNI_BUF_LAYOUT_OPT_DATA_TAIL_ROOM	0x00000040
+
+/**
+ * struct dpni_buffer_layout - Structure representing DPNI buffer layout
+ * @options: Flags representing the suggested modifications to the buffer
+ *		layout; Use any combination of 'DPNI_BUF_LAYOUT_OPT_<X>' flags
+ * @pass_timestamp: Pass timestamp value
+ * @pass_parser_result: Pass parser results
+ * @pass_frame_status: Pass frame status
+ * @private_data_size: Size kept for private data (in bytes)
+ * @data_align: Data alignment
+ * @data_head_room: Data head room
+ * @data_tail_room: Data tail room
+ */
+struct dpni_buffer_layout {
+	u32	options;
+	int	pass_timestamp;
+	int	pass_parser_result;
+	int	pass_frame_status;
+	u16	private_data_size;
+	u16	data_align;
+	u16	data_head_room;
+	u16	data_tail_room;
+};
+
+/**
+ * enum dpni_queue_type - Identifies a type of queue targeted by the command
+ * @DPNI_QUEUE_RX: Rx queue
+ * @DPNI_QUEUE_TX: Tx queue
+ * @DPNI_QUEUE_TX_CONFIRM: Tx confirmation queue
+ * @DPNI_QUEUE_RX_ERR: Rx error queue
+ */enum dpni_queue_type {
+	DPNI_QUEUE_RX,
+	DPNI_QUEUE_TX,
+	DPNI_QUEUE_TX_CONFIRM,
+	DPNI_QUEUE_RX_ERR,
+};
+
+int dpni_get_buffer_layout(struct fsl_mc_io		*mc_io,
+			   u32				cmd_flags,
+			   u16				token,
+			   enum dpni_queue_type		qtype,
+			   struct dpni_buffer_layout	*layout);
+
+int dpni_set_buffer_layout(struct fsl_mc_io		   *mc_io,
+			   u32				   cmd_flags,
+			   u16				   token,
+			   enum dpni_queue_type		   qtype,
+			   const struct dpni_buffer_layout *layout);
+
+/**
+ * enum dpni_offload - Identifies a type of offload targeted by the command
+ * @DPNI_OFF_RX_L3_CSUM: Rx L3 checksum validation
+ * @DPNI_OFF_RX_L4_CSUM: Rx L4 checksum validation
+ * @DPNI_OFF_TX_L3_CSUM: Tx L3 checksum generation
+ * @DPNI_OFF_TX_L4_CSUM: Tx L4 checksum generation
+ */
+enum dpni_offload {
+	DPNI_OFF_RX_L3_CSUM,
+	DPNI_OFF_RX_L4_CSUM,
+	DPNI_OFF_TX_L3_CSUM,
+	DPNI_OFF_TX_L4_CSUM,
+};
+
+int dpni_set_offload(struct fsl_mc_io	*mc_io,
+		     u32		cmd_flags,
+		     u16		token,
+		     enum dpni_offload	type,
+		     u32		config);
+
+int dpni_get_offload(struct fsl_mc_io	*mc_io,
+		     u32		cmd_flags,
+		     u16		token,
+		     enum dpni_offload	type,
+		     u32		*config);
+
+int dpni_get_qdid(struct fsl_mc_io	*mc_io,
+		  u32			cmd_flags,
+		  u16			token,
+		  enum dpni_queue_type	qtype,
+		  u16			*qdid);
+
+int dpni_get_tx_data_offset(struct fsl_mc_io	*mc_io,
+			    u32			cmd_flags,
+			    u16			token,
+			    u16			*data_offset);
+
+#define DPNI_STATISTICS_CNT		7
+
+/**
+ * union dpni_statistics - Union describing the DPNI statistics
+ * @page_0: Page_0 statistics structure
+ * @page_0.ingress_all_frames: Ingress frame count
+ * @page_0.ingress_all_bytes: Ingress byte count
+ * @page_0.ingress_multicast_frames: Ingress multicast frame count
+ * @page_0.ingress_multicast_bytes: Ingress multicast byte count
+ * @page_0.ingress_broadcast_frames: Ingress broadcast frame count
+ * @page_0.ingress_broadcast_bytes: Ingress broadcast byte count
+ * @page_1: Page_1 statistics structure
+ * @page_1.egress_all_frames: Egress frame count
+ * @page_1.egress_all_bytes: Egress byte count
+ * @page_1.egress_multicast_frames: Egress multicast frame count
+ * @page_1.egress_multicast_bytes: Egress multicast byte count
+ * @page_1.egress_broadcast_frames: Egress broadcast frame count
+ * @page_1.egress_broadcast_bytes: Egress broadcast byte count
+ * @page_2: Page_2 statistics structure
+ * @page_2.ingress_filtered_frames: Ingress filtered frame count
+ * @page_2.ingress_discarded_frames: Ingress discarded frame count
+ * @page_2.ingress_nobuffer_discards: Ingress discarded frame count due to
+ *	lack of buffers
+ * @page_2.egress_discarded_frames: Egress discarded frame count
+ * @page_2.egress_confirmed_frames: Egress confirmed frame count
+ * @raw: raw statistics structure, used to index counters
+ */
+union dpni_statistics {
+	struct {
+		u64 ingress_all_frames;
+		u64 ingress_all_bytes;
+		u64 ingress_multicast_frames;
+		u64 ingress_multicast_bytes;
+		u64 ingress_broadcast_frames;
+		u64 ingress_broadcast_bytes;
+	} page_0;
+	struct {
+		u64 egress_all_frames;
+		u64 egress_all_bytes;
+		u64 egress_multicast_frames;
+		u64 egress_multicast_bytes;
+		u64 egress_broadcast_frames;
+		u64 egress_broadcast_bytes;
+	} page_1;
+	struct {
+		u64 ingress_filtered_frames;
+		u64 ingress_discarded_frames;
+		u64 ingress_nobuffer_discards;
+		u64 egress_discarded_frames;
+		u64 egress_confirmed_frames;
+	} page_2;
+	struct {
+		u64 counter[DPNI_STATISTICS_CNT];
+	} raw;
+};
+
+int dpni_get_statistics(struct fsl_mc_io	*mc_io,
+			u32			cmd_flags,
+			u16			token,
+			u8			page,
+			union dpni_statistics	*stat);
+
+/**
+ * Enable auto-negotiation
+ */
+#define DPNI_LINK_OPT_AUTONEG		0x0000000000000001ULL
+/**
+ * Enable half-duplex mode
+ */
+#define DPNI_LINK_OPT_HALF_DUPLEX	0x0000000000000002ULL
+/**
+ * Enable pause frames
+ */
+#define DPNI_LINK_OPT_PAUSE		0x0000000000000004ULL
+/**
+ * Enable a-symmetric pause frames
+ */
+#define DPNI_LINK_OPT_ASYM_PAUSE	0x0000000000000008ULL
+
+/**
+ * struct - Structure representing DPNI link configuration
+ * @rate: Rate
+ * @options: Mask of available options; use 'DPNI_LINK_OPT_<X>' values
+ */
+struct dpni_link_cfg {
+	u32 rate;
+	u64 options;
+};
+
+int dpni_set_link_cfg(struct fsl_mc_io			*mc_io,
+		      u32				cmd_flags,
+		      u16				token,
+		      const struct dpni_link_cfg	*cfg);
+
+/**
+ * struct dpni_link_state - Structure representing DPNI link state
+ * @rate: Rate
+ * @options: Mask of available options; use 'DPNI_LINK_OPT_<X>' values
+ * @up: Link state; '0' for down, '1' for up
+ */
+struct dpni_link_state {
+	u32	rate;
+	u64	options;
+	int	up;
+};
+
+int dpni_get_link_state(struct fsl_mc_io	*mc_io,
+			u32			cmd_flags,
+			u16			token,
+			struct dpni_link_state	*state);
+
+int dpni_set_max_frame_length(struct fsl_mc_io	*mc_io,
+			      u32		cmd_flags,
+			      u16		token,
+			      u16		max_frame_length);
+
+int dpni_get_max_frame_length(struct fsl_mc_io	*mc_io,
+			      u32		cmd_flags,
+			      u16		token,
+			      u16		*max_frame_length);
+
+int dpni_set_multicast_promisc(struct fsl_mc_io *mc_io,
+			       u32		cmd_flags,
+			       u16		token,
+			       int		en);
+
+int dpni_get_multicast_promisc(struct fsl_mc_io *mc_io,
+			       u32		cmd_flags,
+			       u16		token,
+			       int		*en);
+
+int dpni_set_unicast_promisc(struct fsl_mc_io	*mc_io,
+			     u32		cmd_flags,
+			     u16		token,
+			     int		en);
+
+int dpni_get_unicast_promisc(struct fsl_mc_io	*mc_io,
+			     u32		cmd_flags,
+			     u16		token,
+			     int		*en);
+
+int dpni_set_primary_mac_addr(struct fsl_mc_io *mc_io,
+			      u32		cmd_flags,
+			      u16		token,
+			      const u8		mac_addr[6]);
+
+int dpni_get_primary_mac_addr(struct fsl_mc_io	*mc_io,
+			      u32		cmd_flags,
+			      u16		token,
+			      u8		mac_addr[6]);
+
+int dpni_get_port_mac_addr(struct fsl_mc_io	*mc_io,
+			   u32			cm_flags,
+			   u16			token,
+			   u8			mac_addr[6]);
+
+int dpni_add_mac_addr(struct fsl_mc_io	*mc_io,
+		      u32		cmd_flags,
+		      u16		token,
+		      const u8		mac_addr[6]);
+
+int dpni_remove_mac_addr(struct fsl_mc_io	*mc_io,
+			 u32			cmd_flags,
+			 u16			token,
+			 const u8		mac_addr[6]);
+
+int dpni_clear_mac_filters(struct fsl_mc_io	*mc_io,
+			   u32			cmd_flags,
+			   u16			token,
+			   int			unicast,
+			   int			multicast);
+
+/**
+ * enum dpni_dist_mode - DPNI distribution mode
+ * @DPNI_DIST_MODE_NONE: No distribution
+ * @DPNI_DIST_MODE_HASH: Use hash distribution; only relevant if
+ *		the 'DPNI_OPT_DIST_HASH' option was set at DPNI creation
+ * @DPNI_DIST_MODE_FS:  Use explicit flow steering; only relevant if
+ *	 the 'DPNI_OPT_DIST_FS' option was set at DPNI creation
+ */
+enum dpni_dist_mode {
+	DPNI_DIST_MODE_NONE = 0,
+	DPNI_DIST_MODE_HASH = 1,
+	DPNI_DIST_MODE_FS = 2
+};
+
+/**
+ * enum dpni_fs_miss_action -   DPNI Flow Steering miss action
+ * @DPNI_FS_MISS_DROP: In case of no-match, drop the frame
+ * @DPNI_FS_MISS_EXPLICIT_FLOWID: In case of no-match, use explicit flow-id
+ * @DPNI_FS_MISS_HASH: In case of no-match, distribute using hash
+ */
+enum dpni_fs_miss_action {
+	DPNI_FS_MISS_DROP = 0,
+	DPNI_FS_MISS_EXPLICIT_FLOWID = 1,
+	DPNI_FS_MISS_HASH = 2
+};
+
+/**
+ * struct dpni_fs_tbl_cfg - Flow Steering table configuration
+ * @miss_action: Miss action selection
+ * @default_flow_id: Used when 'miss_action = DPNI_FS_MISS_EXPLICIT_FLOWID'
+ */
+struct dpni_fs_tbl_cfg {
+	enum dpni_fs_miss_action	miss_action;
+	u16				default_flow_id;
+};
+
+int dpni_prepare_key_cfg(const struct dpkg_profile_cfg *cfg,
+			 u8 *key_cfg_buf);
+
+/**
+ * struct dpni_rx_tc_dist_cfg - Rx traffic class distribution configuration
+ * @dist_size: Set the distribution size;
+ *	supported values: 1,2,3,4,6,7,8,12,14,16,24,28,32,48,56,64,96,
+ *	112,128,192,224,256,384,448,512,768,896,1024
+ * @dist_mode: Distribution mode
+ * @key_cfg_iova: I/O virtual address of 256 bytes DMA-able memory filled with
+ *		the extractions to be used for the distribution key by calling
+ *		dpni_prepare_key_cfg() relevant only when
+ *		'dist_mode != DPNI_DIST_MODE_NONE', otherwise it can be '0'
+ * @fs_cfg: Flow Steering table configuration; only relevant if
+ *		'dist_mode = DPNI_DIST_MODE_FS'
+ */
+struct dpni_rx_tc_dist_cfg {
+	u16			dist_size;
+	enum dpni_dist_mode	dist_mode;
+	u64			key_cfg_iova;
+	struct dpni_fs_tbl_cfg	fs_cfg;
+};
+
+int dpni_set_rx_tc_dist(struct fsl_mc_io			*mc_io,
+			u32					cmd_flags,
+			u16					token,
+			u8					tc_id,
+			const struct dpni_rx_tc_dist_cfg	*cfg);
+
+/**
+ * enum dpni_dest - DPNI destination types
+ * @DPNI_DEST_NONE: Unassigned destination; The queue is set in parked mode and
+ *		does not generate FQDAN notifications; user is expected to
+ *		dequeue from the queue based on polling or other user-defined
+ *		method
+ * @DPNI_DEST_DPIO: The queue is set in schedule mode and generates FQDAN
+ *		notifications to the specified DPIO; user is expected to dequeue
+ *		from the queue only after notification is received
+ * @DPNI_DEST_DPCON: The queue is set in schedule mode and does not generate
+ *		FQDAN notifications, but is connected to the specified DPCON
+ *		object; user is expected to dequeue from the DPCON channel
+ */
+enum dpni_dest {
+	DPNI_DEST_NONE = 0,
+	DPNI_DEST_DPIO = 1,
+	DPNI_DEST_DPCON = 2
+};
+
+/**
+ * struct dpni_queue - Queue structure
+ * @destination - Destination structure
+ * @destination.id: ID of the destination, only relevant if DEST_TYPE is > 0.
+ *	Identifies either a DPIO or a DPCON object.
+ *	Not relevant for Tx queues.
+ * @destination.type:	May be one of the following:
+ *	0 - No destination, queue can be manually
+ *		queried, but will not push traffic or
+ *		notifications to a DPIO;
+ *	1 - The destination is a DPIO. When traffic
+ *		becomes available in the queue a FQDAN
+ *		(FQ data available notification) will be
+ *		generated to selected DPIO;
+ *	2 - The destination is a DPCON. The queue is
+ *		associated with a DPCON object for the
+ *		purpose of scheduling between multiple
+ *		queues. The DPCON may be independently
+ *		configured to generate notifications.
+ *		Not relevant for Tx queues.
+ * @destination.hold_active: Hold active, maintains a queue scheduled for longer
+ *	in a DPIO during dequeue to reduce spread of traffic.
+ *	Only relevant if queues are
+ *	not affined to a single DPIO.
+ * @user_context: User data, presented to the user along with any frames
+ *	from this queue. Not relevant for Tx queues.
+ * @flc: FD FLow Context structure
+ * @flc.value: Default FLC value for traffic dequeued from
+ *      this queue.  Please check description of FD
+ *      structure for more information.
+ *      Note that FLC values set using dpni_add_fs_entry,
+ *      if any, take precedence over values per queue.
+ * @flc.stash_control: Boolean, indicates whether the 6 lowest
+ *      - significant bits are used for stash control.
+ *      significant bits are used for stash control.  If set, the 6
+ *      least significant bits in value are interpreted as follows:
+ *      - bits 0-1: indicates the number of 64 byte units of context
+ *      that are stashed.  FLC value is interpreted as a memory address
+ *      in this case, excluding the 6 LS bits.
+ *      - bits 2-3: indicates the number of 64 byte units of frame
+ *      annotation to be stashed.  Annotation is placed at FD[ADDR].
+ *      - bits 4-5: indicates the number of 64 byte units of frame
+ *      data to be stashed.  Frame data is placed at FD[ADDR] +
+ *      FD[OFFSET].
+ *      For more details check the Frame Descriptor section in the
+ *      hardware documentation.
+ */
+struct dpni_queue {
+	struct {
+		u16 id;
+		enum dpni_dest type;
+		char hold_active;
+		u8 priority;
+	} destination;
+	u64 user_context;
+	struct {
+		u64 value;
+		char stash_control;
+	} flc;
+};
+
+/**
+ * struct dpni_queue_id - Queue identification, used for enqueue commands
+ *			or queue control
+ * @fqid: FQID used for enqueueing to and/or configuration of this specific FQ
+ * @qdbin: Queueing bin, used to enqueue using QDID, DQBIN, QPRI. Only relevant
+ *		for Tx queues.
+ */
+struct dpni_queue_id {
+	u32 fqid;
+	u16 qdbin;
+};
+
+/**
+ * Set User Context
+ */
+#define DPNI_QUEUE_OPT_USER_CTX		0x00000001
+#define DPNI_QUEUE_OPT_DEST		0x00000002
+#define DPNI_QUEUE_OPT_FLC		0x00000004
+#define DPNI_QUEUE_OPT_HOLD_ACTIVE	0x00000008
+
+int dpni_set_queue(struct fsl_mc_io	*mc_io,
+		   u32			cmd_flags,
+		   u16			token,
+		   enum dpni_queue_type	qtype,
+		   u8			tc,
+		   u8			index,
+		   u8			options,
+		   const struct dpni_queue *queue);
+
+int dpni_get_queue(struct fsl_mc_io	*mc_io,
+		   u32			cmd_flags,
+		   u16			token,
+		   enum dpni_queue_type	qtype,
+		   u8			tc,
+		   u8			index,
+		   struct dpni_queue	*queue,
+		   struct dpni_queue_id	*qid);
+
+/**
+ * enum dpni_congestion_unit - DPNI congestion units
+ * @DPNI_CONGESTION_UNIT_BYTES: bytes units
+ * @DPNI_CONGESTION_UNIT_FRAMES: frames units
+ */
+enum dpni_congestion_unit {
+	DPNI_CONGESTION_UNIT_BYTES = 0,
+	DPNI_CONGESTION_UNIT_FRAMES
+};
+
+/**
+ * enum dpni_congestion_point - Structure representing congestion point
+ * @DPNI_CP_QUEUE: Set taildrop per queue, identified by QUEUE_TYPE, TC and
+ *		QUEUE_INDEX
+ * @DPNI_CP_GROUP: Set taildrop per queue group. Depending on options used to
+ *		define the DPNI this can be either per TC (default) or per
+ *		interface (DPNI_OPT_SHARED_CONGESTION set at DPNI create).
+ *		QUEUE_INDEX is ignored if this type is used.
+ */
+enum dpni_congestion_point {
+	DPNI_CP_QUEUE,
+	DPNI_CP_GROUP,
+};
+
+/**
+ * struct dpni_taildrop - Structure representing the taildrop
+ * @enable:	Indicates whether the taildrop is active or not.
+ * @units:	Indicates the unit of THRESHOLD. Queue taildrop only supports
+ *		byte units, this field is ignored and assumed = 0 if
+ *		CONGESTION_POINT is 0.
+ * @threshold:	Threshold value, in units identified by UNITS field. Value 0
+ *		cannot be used as a valid taildrop threshold, THRESHOLD must
+ *		be > 0 if the taildrop is enabled.
+ */
+struct dpni_taildrop {
+	char enable;
+	enum dpni_congestion_unit units;
+	u32 threshold;
+};
+
+int dpni_set_taildrop(struct fsl_mc_io *mc_io,
+		      u32 cmd_flags,
+		      u16 token,
+		      enum dpni_congestion_point cg_point,
+		      enum dpni_queue_type q_type,
+		      u8 tc,
+		      u8 q_index,
+		      struct dpni_taildrop *taildrop);
+
+int dpni_get_taildrop(struct fsl_mc_io *mc_io,
+		      u32 cmd_flags,
+		      u16 token,
+		      enum dpni_congestion_point cg_point,
+		      enum dpni_queue_type q_type,
+		      u8 tc,
+		      u8 q_index,
+		      struct dpni_taildrop *taildrop);
+
+/**
+ * struct dpni_rule_cfg - Rule configuration for table lookup
+ * @key_iova: I/O virtual address of the key (must be in DMA-able memory)
+ * @mask_iova: I/O virtual address of the mask (must be in DMA-able memory)
+ * @key_size: key and mask size (in bytes)
+ */
+struct dpni_rule_cfg {
+	u64	key_iova;
+	u64	mask_iova;
+	u8	key_size;
+};
+
+int dpni_get_api_version(struct fsl_mc_io *mc_io,
+			 u32 cmd_flags,
+			 u16 *major_ver,
+			 u16 *minor_ver);
+
+#endif /* __FSL_DPNI_H */
diff --git a/drivers/staging/fsl-dpaa2/Kconfig b/drivers/staging/fsl-dpaa2/Kconfig
index a4c4b83..59aaae7 100644
--- a/drivers/staging/fsl-dpaa2/Kconfig
+++ b/drivers/staging/fsl-dpaa2/Kconfig
@@ -9,14 +9,6 @@ config FSL_DPAA2
 	  Build drivers for Freescale DataPath Acceleration
 	  Architecture (DPAA2) family of SoCs.
 
-config FSL_DPAA2_ETH
-	tristate "Freescale DPAA2 Ethernet"
-	depends on FSL_DPAA2 && FSL_MC_DPIO
-	depends on NETDEVICES && ETHERNET
-	---help---
-	  Ethernet driver for Freescale DPAA2 SoCs, using the
-	  Freescale MC bus driver
-
 config FSL_DPAA2_ETHSW
 	tristate "Freescale DPAA2 Ethernet Switch"
 	depends on FSL_DPAA2
diff --git a/drivers/staging/fsl-dpaa2/Makefile b/drivers/staging/fsl-dpaa2/Makefile
index 9c70629..464f242 100644
--- a/drivers/staging/fsl-dpaa2/Makefile
+++ b/drivers/staging/fsl-dpaa2/Makefile
@@ -2,6 +2,5 @@
 # Freescale DataPath Acceleration Architecture Gen2 (DPAA2) drivers
 #
 
-obj-$(CONFIG_FSL_DPAA2_ETH)		+= ethernet/
 obj-$(CONFIG_FSL_DPAA2_ETHSW)		+= ethsw/
 obj-$(CONFIG_FSL_DPAA2_PTP_CLOCK)	+= rtc/
diff --git a/drivers/staging/fsl-dpaa2/ethernet/Makefile b/drivers/staging/fsl-dpaa2/ethernet/Makefile
deleted file mode 100644
index 9315ecd..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-#
-# Makefile for the Freescale DPAA2 Ethernet controller
-#
-
-obj-$(CONFIG_FSL_DPAA2_ETH) += fsl-dpaa2-eth.o
-
-fsl-dpaa2-eth-objs    := dpaa2-eth.o dpaa2-ethtool.o dpni.o
-
-# Needed by the tracing framework
-CFLAGS_dpaa2-eth.o := -I$(src)
diff --git a/drivers/staging/fsl-dpaa2/ethernet/TODO b/drivers/staging/fsl-dpaa2/ethernet/TODO
deleted file mode 100644
index e400a5e..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/TODO
+++ /dev/null
@@ -1,18 +0,0 @@
-* Add a DPAA2 MAC kernel driver in order to allow PHY management; currently
-  the DPMAC objects and their link to DPNIs are handled by MC internally
-  and all PHYs are seen as fixed-link
-* add more debug support: decide how to expose detailed debug statistics,
-  add ingress error queue support
-* MC firmware uprev; the DPAA2 objects used by the Ethernet driver need to
-  be kept in sync with binary interface changes in MC
-* refine README file
-* cleanup
-
-NOTE: None of the above is must-have before getting the DPAA2 Ethernet driver
-out of staging. The main requirement for that is to have the drivers it
-depends on, fsl-mc bus and DPIO driver, moved to drivers/bus and drivers/soc
-respectively.
-
- Please send any patches to Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
- ruxandra.radulescu@nxp.com, devel@driverdev.osuosl.org,
- linux-kernel@vger.kernel.org
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth-trace.h b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth-trace.h
deleted file mode 100644
index 9801528..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth-trace.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
-/* Copyright 2014-2015 Freescale Semiconductor Inc.
- */
-
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM	dpaa2_eth
-
-#if !defined(_DPAA2_ETH_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _DPAA2_ETH_TRACE_H
-
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-#include "dpaa2-eth.h"
-#include <linux/tracepoint.h>
-
-#define TR_FMT "[%s] fd: addr=0x%llx, len=%u, off=%u"
-/* trace_printk format for raw buffer event class */
-#define TR_BUF_FMT "[%s] vaddr=%p size=%zu dma_addr=%pad map_size=%zu bpid=%d"
-
-/* This is used to declare a class of events.
- * individual events of this type will be defined below.
- */
-
-/* Store details about a frame descriptor */
-DECLARE_EVENT_CLASS(dpaa2_eth_fd,
-		    /* Trace function prototype */
-		    TP_PROTO(struct net_device *netdev,
-			     const struct dpaa2_fd *fd),
-
-		    /* Repeat argument list here */
-		    TP_ARGS(netdev, fd),
-
-		    /* A structure containing the relevant information we want
-		     * to record. Declare name and type for each normal element,
-		     * name, type and size for arrays. Use __string for variable
-		     * length strings.
-		     */
-		    TP_STRUCT__entry(
-				     __field(u64, fd_addr)
-				     __field(u32, fd_len)
-				     __field(u16, fd_offset)
-				     __string(name, netdev->name)
-		    ),
-
-		    /* The function that assigns values to the above declared
-		     * fields
-		     */
-		    TP_fast_assign(
-				   __entry->fd_addr = dpaa2_fd_get_addr(fd);
-				   __entry->fd_len = dpaa2_fd_get_len(fd);
-				   __entry->fd_offset = dpaa2_fd_get_offset(fd);
-				   __assign_str(name, netdev->name);
-		    ),
-
-		    /* This is what gets printed when the trace event is
-		     * triggered.
-		     */
-		    TP_printk(TR_FMT,
-			      __get_str(name),
-			      __entry->fd_addr,
-			      __entry->fd_len,
-			      __entry->fd_offset)
-);
-
-/* Now declare events of the above type. Format is:
- * DEFINE_EVENT(class, name, proto, args), with proto and args same as for class
- */
-
-/* Tx (egress) fd */
-DEFINE_EVENT(dpaa2_eth_fd, dpaa2_tx_fd,
-	     TP_PROTO(struct net_device *netdev,
-		      const struct dpaa2_fd *fd),
-
-	     TP_ARGS(netdev, fd)
-);
-
-/* Rx fd */
-DEFINE_EVENT(dpaa2_eth_fd, dpaa2_rx_fd,
-	     TP_PROTO(struct net_device *netdev,
-		      const struct dpaa2_fd *fd),
-
-	     TP_ARGS(netdev, fd)
-);
-
-/* Tx confirmation fd */
-DEFINE_EVENT(dpaa2_eth_fd, dpaa2_tx_conf_fd,
-	     TP_PROTO(struct net_device *netdev,
-		      const struct dpaa2_fd *fd),
-
-	     TP_ARGS(netdev, fd)
-);
-
-/* Log data about raw buffers. Useful for tracing DPBP content. */
-TRACE_EVENT(dpaa2_eth_buf_seed,
-	    /* Trace function prototype */
-	    TP_PROTO(struct net_device *netdev,
-		     /* virtual address and size */
-		     void *vaddr,
-		     size_t size,
-		     /* dma map address and size */
-		     dma_addr_t dma_addr,
-		     size_t map_size,
-		     /* buffer pool id, if relevant */
-		     u16 bpid),
-
-	    /* Repeat argument list here */
-	    TP_ARGS(netdev, vaddr, size, dma_addr, map_size, bpid),
-
-	    /* A structure containing the relevant information we want
-	     * to record. Declare name and type for each normal element,
-	     * name, type and size for arrays. Use __string for variable
-	     * length strings.
-	     */
-	    TP_STRUCT__entry(
-			     __field(void *, vaddr)
-			     __field(size_t, size)
-			     __field(dma_addr_t, dma_addr)
-			     __field(size_t, map_size)
-			     __field(u16, bpid)
-			     __string(name, netdev->name)
-	    ),
-
-	    /* The function that assigns values to the above declared
-	     * fields
-	     */
-	    TP_fast_assign(
-			   __entry->vaddr = vaddr;
-			   __entry->size = size;
-			   __entry->dma_addr = dma_addr;
-			   __entry->map_size = map_size;
-			   __entry->bpid = bpid;
-			   __assign_str(name, netdev->name);
-	    ),
-
-	    /* This is what gets printed when the trace event is
-	     * triggered.
-	     */
-	    TP_printk(TR_BUF_FMT,
-		      __get_str(name),
-		      __entry->vaddr,
-		      __entry->size,
-		      &__entry->dma_addr,
-		      __entry->map_size,
-		      __entry->bpid)
-);
-
-/* If only one event of a certain type needs to be declared, use TRACE_EVENT().
- * The syntax is the same as for DECLARE_EVENT_CLASS().
- */
-
-#endif /* _DPAA2_ETH_TRACE_H */
-
-/* This must be outside ifdef _DPAA2_ETH_TRACE_H */
-#undef TRACE_INCLUDE_PATH
-#define TRACE_INCLUDE_PATH .
-#undef TRACE_INCLUDE_FILE
-#define TRACE_INCLUDE_FILE	dpaa2-eth-trace
-#include <trace/define_trace.h>
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
deleted file mode 100644
index 9329fca..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
+++ /dev/null
@@ -1,2661 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
-/* Copyright 2014-2016 Freescale Semiconductor Inc.
- * Copyright 2016-2017 NXP
- */
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/etherdevice.h>
-#include <linux/of_net.h>
-#include <linux/interrupt.h>
-#include <linux/msi.h>
-#include <linux/kthread.h>
-#include <linux/iommu.h>
-#include <linux/net_tstamp.h>
-#include <linux/fsl/mc.h>
-
-#include <net/sock.h>
-
-#include "dpaa2-eth.h"
-
-/* CREATE_TRACE_POINTS only needs to be defined once. Other dpa files
- * using trace events only need to #include <trace/events/sched.h>
- */
-#define CREATE_TRACE_POINTS
-#include "dpaa2-eth-trace.h"
-
-MODULE_LICENSE("Dual BSD/GPL");
-MODULE_AUTHOR("Freescale Semiconductor, Inc");
-MODULE_DESCRIPTION("Freescale DPAA2 Ethernet Driver");
-
-static void *dpaa2_iova_to_virt(struct iommu_domain *domain,
-				dma_addr_t iova_addr)
-{
-	phys_addr_t phys_addr;
-
-	phys_addr = domain ? iommu_iova_to_phys(domain, iova_addr) : iova_addr;
-
-	return phys_to_virt(phys_addr);
-}
-
-static void validate_rx_csum(struct dpaa2_eth_priv *priv,
-			     u32 fd_status,
-			     struct sk_buff *skb)
-{
-	skb_checksum_none_assert(skb);
-
-	/* HW checksum validation is disabled, nothing to do here */
-	if (!(priv->net_dev->features & NETIF_F_RXCSUM))
-		return;
-
-	/* Read checksum validation bits */
-	if (!((fd_status & DPAA2_FAS_L3CV) &&
-	      (fd_status & DPAA2_FAS_L4CV)))
-		return;
-
-	/* Inform the stack there's no need to compute L3/L4 csum anymore */
-	skb->ip_summed = CHECKSUM_UNNECESSARY;
-}
-
-/* Free a received FD.
- * Not to be used for Tx conf FDs or on any other paths.
- */
-static void free_rx_fd(struct dpaa2_eth_priv *priv,
-		       const struct dpaa2_fd *fd,
-		       void *vaddr)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	dma_addr_t addr = dpaa2_fd_get_addr(fd);
-	u8 fd_format = dpaa2_fd_get_format(fd);
-	struct dpaa2_sg_entry *sgt;
-	void *sg_vaddr;
-	int i;
-
-	/* If single buffer frame, just free the data buffer */
-	if (fd_format == dpaa2_fd_single)
-		goto free_buf;
-	else if (fd_format != dpaa2_fd_sg)
-		/* We don't support any other format */
-		return;
-
-	/* For S/G frames, we first need to free all SG entries
-	 * except the first one, which was taken care of already
-	 */
-	sgt = vaddr + dpaa2_fd_get_offset(fd);
-	for (i = 1; i < DPAA2_ETH_MAX_SG_ENTRIES; i++) {
-		addr = dpaa2_sg_get_addr(&sgt[i]);
-		sg_vaddr = dpaa2_iova_to_virt(priv->iommu_domain, addr);
-		dma_unmap_single(dev, addr, DPAA2_ETH_RX_BUF_SIZE,
-				 DMA_FROM_DEVICE);
-
-		skb_free_frag(sg_vaddr);
-		if (dpaa2_sg_is_final(&sgt[i]))
-			break;
-	}
-
-free_buf:
-	skb_free_frag(vaddr);
-}
-
-/* Build a linear skb based on a single-buffer frame descriptor */
-static struct sk_buff *build_linear_skb(struct dpaa2_eth_priv *priv,
-					struct dpaa2_eth_channel *ch,
-					const struct dpaa2_fd *fd,
-					void *fd_vaddr)
-{
-	struct sk_buff *skb = NULL;
-	u16 fd_offset = dpaa2_fd_get_offset(fd);
-	u32 fd_length = dpaa2_fd_get_len(fd);
-
-	ch->buf_count--;
-
-	skb = build_skb(fd_vaddr, DPAA2_ETH_SKB_SIZE);
-	if (unlikely(!skb))
-		return NULL;
-
-	skb_reserve(skb, fd_offset);
-	skb_put(skb, fd_length);
-
-	return skb;
-}
-
-/* Build a non linear (fragmented) skb based on a S/G table */
-static struct sk_buff *build_frag_skb(struct dpaa2_eth_priv *priv,
-				      struct dpaa2_eth_channel *ch,
-				      struct dpaa2_sg_entry *sgt)
-{
-	struct sk_buff *skb = NULL;
-	struct device *dev = priv->net_dev->dev.parent;
-	void *sg_vaddr;
-	dma_addr_t sg_addr;
-	u16 sg_offset;
-	u32 sg_length;
-	struct page *page, *head_page;
-	int page_offset;
-	int i;
-
-	for (i = 0; i < DPAA2_ETH_MAX_SG_ENTRIES; i++) {
-		struct dpaa2_sg_entry *sge = &sgt[i];
-
-		/* NOTE: We only support SG entries in dpaa2_sg_single format,
-		 * but this is the only format we may receive from HW anyway
-		 */
-
-		/* Get the address and length from the S/G entry */
-		sg_addr = dpaa2_sg_get_addr(sge);
-		sg_vaddr = dpaa2_iova_to_virt(priv->iommu_domain, sg_addr);
-		dma_unmap_single(dev, sg_addr, DPAA2_ETH_RX_BUF_SIZE,
-				 DMA_FROM_DEVICE);
-
-		sg_length = dpaa2_sg_get_len(sge);
-
-		if (i == 0) {
-			/* We build the skb around the first data buffer */
-			skb = build_skb(sg_vaddr, DPAA2_ETH_SKB_SIZE);
-			if (unlikely(!skb)) {
-				/* Free the first SG entry now, since we already
-				 * unmapped it and obtained the virtual address
-				 */
-				skb_free_frag(sg_vaddr);
-
-				/* We still need to subtract the buffers used
-				 * by this FD from our software counter
-				 */
-				while (!dpaa2_sg_is_final(&sgt[i]) &&
-				       i < DPAA2_ETH_MAX_SG_ENTRIES)
-					i++;
-				break;
-			}
-
-			sg_offset = dpaa2_sg_get_offset(sge);
-			skb_reserve(skb, sg_offset);
-			skb_put(skb, sg_length);
-		} else {
-			/* Rest of the data buffers are stored as skb frags */
-			page = virt_to_page(sg_vaddr);
-			head_page = virt_to_head_page(sg_vaddr);
-
-			/* Offset in page (which may be compound).
-			 * Data in subsequent SG entries is stored from the
-			 * beginning of the buffer, so we don't need to add the
-			 * sg_offset.
-			 */
-			page_offset = ((unsigned long)sg_vaddr &
-				(PAGE_SIZE - 1)) +
-				(page_address(page) - page_address(head_page));
-
-			skb_add_rx_frag(skb, i - 1, head_page, page_offset,
-					sg_length, DPAA2_ETH_RX_BUF_SIZE);
-		}
-
-		if (dpaa2_sg_is_final(sge))
-			break;
-	}
-
-	WARN_ONCE(i == DPAA2_ETH_MAX_SG_ENTRIES, "Final bit not set in SGT");
-
-	/* Count all data buffers + SG table buffer */
-	ch->buf_count -= i + 2;
-
-	return skb;
-}
-
-/* Main Rx frame processing routine */
-static void dpaa2_eth_rx(struct dpaa2_eth_priv *priv,
-			 struct dpaa2_eth_channel *ch,
-			 const struct dpaa2_fd *fd,
-			 struct napi_struct *napi,
-			 u16 queue_id)
-{
-	dma_addr_t addr = dpaa2_fd_get_addr(fd);
-	u8 fd_format = dpaa2_fd_get_format(fd);
-	void *vaddr;
-	struct sk_buff *skb;
-	struct rtnl_link_stats64 *percpu_stats;
-	struct dpaa2_eth_drv_stats *percpu_extras;
-	struct device *dev = priv->net_dev->dev.parent;
-	struct dpaa2_fas *fas;
-	void *buf_data;
-	u32 status = 0;
-
-	/* Tracing point */
-	trace_dpaa2_rx_fd(priv->net_dev, fd);
-
-	vaddr = dpaa2_iova_to_virt(priv->iommu_domain, addr);
-	dma_unmap_single(dev, addr, DPAA2_ETH_RX_BUF_SIZE, DMA_FROM_DEVICE);
-
-	fas = dpaa2_get_fas(vaddr, false);
-	prefetch(fas);
-	buf_data = vaddr + dpaa2_fd_get_offset(fd);
-	prefetch(buf_data);
-
-	percpu_stats = this_cpu_ptr(priv->percpu_stats);
-	percpu_extras = this_cpu_ptr(priv->percpu_extras);
-
-	if (fd_format == dpaa2_fd_single) {
-		skb = build_linear_skb(priv, ch, fd, vaddr);
-	} else if (fd_format == dpaa2_fd_sg) {
-		skb = build_frag_skb(priv, ch, buf_data);
-		skb_free_frag(vaddr);
-		percpu_extras->rx_sg_frames++;
-		percpu_extras->rx_sg_bytes += dpaa2_fd_get_len(fd);
-	} else {
-		/* We don't support any other format */
-		goto err_frame_format;
-	}
-
-	if (unlikely(!skb))
-		goto err_build_skb;
-
-	prefetch(skb->data);
-
-	/* Get the timestamp value */
-	if (priv->rx_tstamp) {
-		struct skb_shared_hwtstamps *shhwtstamps = skb_hwtstamps(skb);
-		__le64 *ts = dpaa2_get_ts(vaddr, false);
-		u64 ns;
-
-		memset(shhwtstamps, 0, sizeof(*shhwtstamps));
-
-		ns = DPAA2_PTP_CLK_PERIOD_NS * le64_to_cpup(ts);
-		shhwtstamps->hwtstamp = ns_to_ktime(ns);
-	}
-
-	/* Check if we need to validate the L4 csum */
-	if (likely(dpaa2_fd_get_frc(fd) & DPAA2_FD_FRC_FASV)) {
-		status = le32_to_cpu(fas->status);
-		validate_rx_csum(priv, status, skb);
-	}
-
-	skb->protocol = eth_type_trans(skb, priv->net_dev);
-	skb_record_rx_queue(skb, queue_id);
-
-	percpu_stats->rx_packets++;
-	percpu_stats->rx_bytes += dpaa2_fd_get_len(fd);
-
-	napi_gro_receive(napi, skb);
-
-	return;
-
-err_build_skb:
-	free_rx_fd(priv, fd, vaddr);
-err_frame_format:
-	percpu_stats->rx_dropped++;
-}
-
-/* Consume all frames pull-dequeued into the store. This is the simplest way to
- * make sure we don't accidentally issue another volatile dequeue which would
- * overwrite (leak) frames already in the store.
- *
- * Observance of NAPI budget is not our concern, leaving that to the caller.
- */
-static int consume_frames(struct dpaa2_eth_channel *ch)
-{
-	struct dpaa2_eth_priv *priv = ch->priv;
-	struct dpaa2_eth_fq *fq;
-	struct dpaa2_dq *dq;
-	const struct dpaa2_fd *fd;
-	int cleaned = 0;
-	int is_last;
-
-	do {
-		dq = dpaa2_io_store_next(ch->store, &is_last);
-		if (unlikely(!dq)) {
-			/* If we're here, we *must* have placed a
-			 * volatile dequeue comnmand, so keep reading through
-			 * the store until we get some sort of valid response
-			 * token (either a valid frame or an "empty dequeue")
-			 */
-			continue;
-		}
-
-		fd = dpaa2_dq_fd(dq);
-		fq = (struct dpaa2_eth_fq *)(uintptr_t)dpaa2_dq_fqd_ctx(dq);
-		fq->stats.frames++;
-
-		fq->consume(priv, ch, fd, &ch->napi, fq->flowid);
-		cleaned++;
-	} while (!is_last);
-
-	return cleaned;
-}
-
-/* Configure the egress frame annotation for timestamp update */
-static void enable_tx_tstamp(struct dpaa2_fd *fd, void *buf_start)
-{
-	struct dpaa2_faead *faead;
-	u32 ctrl, frc;
-
-	/* Mark the egress frame annotation area as valid */
-	frc = dpaa2_fd_get_frc(fd);
-	dpaa2_fd_set_frc(fd, frc | DPAA2_FD_FRC_FAEADV);
-
-	/* Set hardware annotation size */
-	ctrl = dpaa2_fd_get_ctrl(fd);
-	dpaa2_fd_set_ctrl(fd, ctrl | DPAA2_FD_CTRL_ASAL);
-
-	/* enable UPD (update prepanded data) bit in FAEAD field of
-	 * hardware frame annotation area
-	 */
-	ctrl = DPAA2_FAEAD_A2V | DPAA2_FAEAD_UPDV | DPAA2_FAEAD_UPD;
-	faead = dpaa2_get_faead(buf_start, true);
-	faead->ctrl = cpu_to_le32(ctrl);
-}
-
-/* Create a frame descriptor based on a fragmented skb */
-static int build_sg_fd(struct dpaa2_eth_priv *priv,
-		       struct sk_buff *skb,
-		       struct dpaa2_fd *fd)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	void *sgt_buf = NULL;
-	dma_addr_t addr;
-	int nr_frags = skb_shinfo(skb)->nr_frags;
-	struct dpaa2_sg_entry *sgt;
-	int i, err;
-	int sgt_buf_size;
-	struct scatterlist *scl, *crt_scl;
-	int num_sg;
-	int num_dma_bufs;
-	struct dpaa2_eth_swa *swa;
-
-	/* Create and map scatterlist.
-	 * We don't advertise NETIF_F_FRAGLIST, so skb_to_sgvec() will not have
-	 * to go beyond nr_frags+1.
-	 * Note: We don't support chained scatterlists
-	 */
-	if (unlikely(PAGE_SIZE / sizeof(struct scatterlist) < nr_frags + 1))
-		return -EINVAL;
-
-	scl = kcalloc(nr_frags + 1, sizeof(struct scatterlist), GFP_ATOMIC);
-	if (unlikely(!scl))
-		return -ENOMEM;
-
-	sg_init_table(scl, nr_frags + 1);
-	num_sg = skb_to_sgvec(skb, scl, 0, skb->len);
-	num_dma_bufs = dma_map_sg(dev, scl, num_sg, DMA_BIDIRECTIONAL);
-	if (unlikely(!num_dma_bufs)) {
-		err = -ENOMEM;
-		goto dma_map_sg_failed;
-	}
-
-	/* Prepare the HW SGT structure */
-	sgt_buf_size = priv->tx_data_offset +
-		       sizeof(struct dpaa2_sg_entry) *  num_dma_bufs;
-	sgt_buf = netdev_alloc_frag(sgt_buf_size + DPAA2_ETH_TX_BUF_ALIGN);
-	if (unlikely(!sgt_buf)) {
-		err = -ENOMEM;
-		goto sgt_buf_alloc_failed;
-	}
-	sgt_buf = PTR_ALIGN(sgt_buf, DPAA2_ETH_TX_BUF_ALIGN);
-	memset(sgt_buf, 0, sgt_buf_size);
-
-	sgt = (struct dpaa2_sg_entry *)(sgt_buf + priv->tx_data_offset);
-
-	/* Fill in the HW SGT structure.
-	 *
-	 * sgt_buf is zeroed out, so the following fields are implicit
-	 * in all sgt entries:
-	 *   - offset is 0
-	 *   - format is 'dpaa2_sg_single'
-	 */
-	for_each_sg(scl, crt_scl, num_dma_bufs, i) {
-		dpaa2_sg_set_addr(&sgt[i], sg_dma_address(crt_scl));
-		dpaa2_sg_set_len(&sgt[i], sg_dma_len(crt_scl));
-	}
-	dpaa2_sg_set_final(&sgt[i - 1], true);
-
-	/* Store the skb backpointer in the SGT buffer.
-	 * Fit the scatterlist and the number of buffers alongside the
-	 * skb backpointer in the software annotation area. We'll need
-	 * all of them on Tx Conf.
-	 */
-	swa = (struct dpaa2_eth_swa *)sgt_buf;
-	swa->skb = skb;
-	swa->scl = scl;
-	swa->num_sg = num_sg;
-	swa->sgt_size = sgt_buf_size;
-
-	/* Separately map the SGT buffer */
-	addr = dma_map_single(dev, sgt_buf, sgt_buf_size, DMA_BIDIRECTIONAL);
-	if (unlikely(dma_mapping_error(dev, addr))) {
-		err = -ENOMEM;
-		goto dma_map_single_failed;
-	}
-	dpaa2_fd_set_offset(fd, priv->tx_data_offset);
-	dpaa2_fd_set_format(fd, dpaa2_fd_sg);
-	dpaa2_fd_set_addr(fd, addr);
-	dpaa2_fd_set_len(fd, skb->len);
-	dpaa2_fd_set_ctrl(fd, FD_CTRL_PTA | FD_CTRL_PTV1);
-
-	if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)
-		enable_tx_tstamp(fd, sgt_buf);
-
-	return 0;
-
-dma_map_single_failed:
-	skb_free_frag(sgt_buf);
-sgt_buf_alloc_failed:
-	dma_unmap_sg(dev, scl, num_sg, DMA_BIDIRECTIONAL);
-dma_map_sg_failed:
-	kfree(scl);
-	return err;
-}
-
-/* Create a frame descriptor based on a linear skb */
-static int build_single_fd(struct dpaa2_eth_priv *priv,
-			   struct sk_buff *skb,
-			   struct dpaa2_fd *fd)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	u8 *buffer_start, *aligned_start;
-	struct sk_buff **skbh;
-	dma_addr_t addr;
-
-	buffer_start = skb->data - dpaa2_eth_needed_headroom(priv, skb);
-
-	/* If there's enough room to align the FD address, do it.
-	 * It will help hardware optimize accesses.
-	 */
-	aligned_start = PTR_ALIGN(buffer_start - DPAA2_ETH_TX_BUF_ALIGN,
-				  DPAA2_ETH_TX_BUF_ALIGN);
-	if (aligned_start >= skb->head)
-		buffer_start = aligned_start;
-
-	/* Store a backpointer to the skb at the beginning of the buffer
-	 * (in the private data area) such that we can release it
-	 * on Tx confirm
-	 */
-	skbh = (struct sk_buff **)buffer_start;
-	*skbh = skb;
-
-	addr = dma_map_single(dev, buffer_start,
-			      skb_tail_pointer(skb) - buffer_start,
-			      DMA_BIDIRECTIONAL);
-	if (unlikely(dma_mapping_error(dev, addr)))
-		return -ENOMEM;
-
-	dpaa2_fd_set_addr(fd, addr);
-	dpaa2_fd_set_offset(fd, (u16)(skb->data - buffer_start));
-	dpaa2_fd_set_len(fd, skb->len);
-	dpaa2_fd_set_format(fd, dpaa2_fd_single);
-	dpaa2_fd_set_ctrl(fd, FD_CTRL_PTA | FD_CTRL_PTV1);
-
-	if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)
-		enable_tx_tstamp(fd, buffer_start);
-
-	return 0;
-}
-
-/* FD freeing routine on the Tx path
- *
- * DMA-unmap and free FD and possibly SGT buffer allocated on Tx. The skb
- * back-pointed to is also freed.
- * This can be called either from dpaa2_eth_tx_conf() or on the error path of
- * dpaa2_eth_tx().
- */
-static void free_tx_fd(const struct dpaa2_eth_priv *priv,
-		       const struct dpaa2_fd *fd)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	dma_addr_t fd_addr;
-	struct sk_buff **skbh, *skb;
-	unsigned char *buffer_start;
-	struct dpaa2_eth_swa *swa;
-	u8 fd_format = dpaa2_fd_get_format(fd);
-
-	fd_addr = dpaa2_fd_get_addr(fd);
-	skbh = dpaa2_iova_to_virt(priv->iommu_domain, fd_addr);
-
-	if (fd_format == dpaa2_fd_single) {
-		skb = *skbh;
-		buffer_start = (unsigned char *)skbh;
-		/* Accessing the skb buffer is safe before dma unmap, because
-		 * we didn't map the actual skb shell.
-		 */
-		dma_unmap_single(dev, fd_addr,
-				 skb_tail_pointer(skb) - buffer_start,
-				 DMA_BIDIRECTIONAL);
-	} else if (fd_format == dpaa2_fd_sg) {
-		swa = (struct dpaa2_eth_swa *)skbh;
-		skb = swa->skb;
-
-		/* Unmap the scatterlist */
-		dma_unmap_sg(dev, swa->scl, swa->num_sg, DMA_BIDIRECTIONAL);
-		kfree(swa->scl);
-
-		/* Unmap the SGT buffer */
-		dma_unmap_single(dev, fd_addr, swa->sgt_size,
-				 DMA_BIDIRECTIONAL);
-	} else {
-		netdev_dbg(priv->net_dev, "Invalid FD format\n");
-		return;
-	}
-
-	/* Get the timestamp value */
-	if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) {
-		struct skb_shared_hwtstamps shhwtstamps;
-		__le64 *ts = dpaa2_get_ts(skbh, true);
-		u64 ns;
-
-		memset(&shhwtstamps, 0, sizeof(shhwtstamps));
-
-		ns = DPAA2_PTP_CLK_PERIOD_NS * le64_to_cpup(ts);
-		shhwtstamps.hwtstamp = ns_to_ktime(ns);
-		skb_tstamp_tx(skb, &shhwtstamps);
-	}
-
-	/* Free SGT buffer allocated on tx */
-	if (fd_format != dpaa2_fd_single)
-		skb_free_frag(skbh);
-
-	/* Move on with skb release */
-	dev_kfree_skb(skb);
-}
-
-static netdev_tx_t dpaa2_eth_tx(struct sk_buff *skb, struct net_device *net_dev)
-{
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	struct dpaa2_fd fd;
-	struct rtnl_link_stats64 *percpu_stats;
-	struct dpaa2_eth_drv_stats *percpu_extras;
-	struct dpaa2_eth_fq *fq;
-	u16 queue_mapping;
-	unsigned int needed_headroom;
-	int err, i;
-
-	percpu_stats = this_cpu_ptr(priv->percpu_stats);
-	percpu_extras = this_cpu_ptr(priv->percpu_extras);
-
-	needed_headroom = dpaa2_eth_needed_headroom(priv, skb);
-	if (skb_headroom(skb) < needed_headroom) {
-		struct sk_buff *ns;
-
-		ns = skb_realloc_headroom(skb, needed_headroom);
-		if (unlikely(!ns)) {
-			percpu_stats->tx_dropped++;
-			goto err_alloc_headroom;
-		}
-		percpu_extras->tx_reallocs++;
-
-		if (skb->sk)
-			skb_set_owner_w(ns, skb->sk);
-
-		dev_kfree_skb(skb);
-		skb = ns;
-	}
-
-	/* We'll be holding a back-reference to the skb until Tx Confirmation;
-	 * we don't want that overwritten by a concurrent Tx with a cloned skb.
-	 */
-	skb = skb_unshare(skb, GFP_ATOMIC);
-	if (unlikely(!skb)) {
-		/* skb_unshare() has already freed the skb */
-		percpu_stats->tx_dropped++;
-		return NETDEV_TX_OK;
-	}
-
-	/* Setup the FD fields */
-	memset(&fd, 0, sizeof(fd));
-
-	if (skb_is_nonlinear(skb)) {
-		err = build_sg_fd(priv, skb, &fd);
-		percpu_extras->tx_sg_frames++;
-		percpu_extras->tx_sg_bytes += skb->len;
-	} else {
-		err = build_single_fd(priv, skb, &fd);
-	}
-
-	if (unlikely(err)) {
-		percpu_stats->tx_dropped++;
-		goto err_build_fd;
-	}
-
-	/* Tracing point */
-	trace_dpaa2_tx_fd(net_dev, &fd);
-
-	/* TxConf FQ selection relies on queue id from the stack.
-	 * In case of a forwarded frame from another DPNI interface, we choose
-	 * a queue affined to the same core that processed the Rx frame
-	 */
-	queue_mapping = skb_get_queue_mapping(skb);
-	fq = &priv->fq[queue_mapping];
-	for (i = 0; i < DPAA2_ETH_ENQUEUE_RETRIES; i++) {
-		err = dpaa2_io_service_enqueue_qd(fq->channel->dpio,
-						  priv->tx_qdid, 0,
-						  fq->tx_qdbin, &fd);
-		if (err != -EBUSY)
-			break;
-	}
-	percpu_extras->tx_portal_busy += i;
-	if (unlikely(err < 0)) {
-		percpu_stats->tx_errors++;
-		/* Clean up everything, including freeing the skb */
-		free_tx_fd(priv, &fd);
-	} else {
-		percpu_stats->tx_packets++;
-		percpu_stats->tx_bytes += dpaa2_fd_get_len(&fd);
-	}
-
-	return NETDEV_TX_OK;
-
-err_build_fd:
-err_alloc_headroom:
-	dev_kfree_skb(skb);
-
-	return NETDEV_TX_OK;
-}
-
-/* Tx confirmation frame processing routine */
-static void dpaa2_eth_tx_conf(struct dpaa2_eth_priv *priv,
-			      struct dpaa2_eth_channel *ch,
-			      const struct dpaa2_fd *fd,
-			      struct napi_struct *napi __always_unused,
-			      u16 queue_id __always_unused)
-{
-	struct rtnl_link_stats64 *percpu_stats;
-	struct dpaa2_eth_drv_stats *percpu_extras;
-	u32 fd_errors;
-
-	/* Tracing point */
-	trace_dpaa2_tx_conf_fd(priv->net_dev, fd);
-
-	percpu_extras = this_cpu_ptr(priv->percpu_extras);
-	percpu_extras->tx_conf_frames++;
-	percpu_extras->tx_conf_bytes += dpaa2_fd_get_len(fd);
-
-	/* Check frame errors in the FD field */
-	fd_errors = dpaa2_fd_get_ctrl(fd) & DPAA2_FD_TX_ERR_MASK;
-	free_tx_fd(priv, fd);
-
-	if (likely(!fd_errors))
-		return;
-
-	if (net_ratelimit())
-		netdev_dbg(priv->net_dev, "TX frame FD error: 0x%08x\n",
-			   fd_errors);
-
-	percpu_stats = this_cpu_ptr(priv->percpu_stats);
-	/* Tx-conf logically pertains to the egress path. */
-	percpu_stats->tx_errors++;
-}
-
-static int set_rx_csum(struct dpaa2_eth_priv *priv, bool enable)
-{
-	int err;
-
-	err = dpni_set_offload(priv->mc_io, 0, priv->mc_token,
-			       DPNI_OFF_RX_L3_CSUM, enable);
-	if (err) {
-		netdev_err(priv->net_dev,
-			   "dpni_set_offload(RX_L3_CSUM) failed\n");
-		return err;
-	}
-
-	err = dpni_set_offload(priv->mc_io, 0, priv->mc_token,
-			       DPNI_OFF_RX_L4_CSUM, enable);
-	if (err) {
-		netdev_err(priv->net_dev,
-			   "dpni_set_offload(RX_L4_CSUM) failed\n");
-		return err;
-	}
-
-	return 0;
-}
-
-static int set_tx_csum(struct dpaa2_eth_priv *priv, bool enable)
-{
-	int err;
-
-	err = dpni_set_offload(priv->mc_io, 0, priv->mc_token,
-			       DPNI_OFF_TX_L3_CSUM, enable);
-	if (err) {
-		netdev_err(priv->net_dev, "dpni_set_offload(TX_L3_CSUM) failed\n");
-		return err;
-	}
-
-	err = dpni_set_offload(priv->mc_io, 0, priv->mc_token,
-			       DPNI_OFF_TX_L4_CSUM, enable);
-	if (err) {
-		netdev_err(priv->net_dev, "dpni_set_offload(TX_L4_CSUM) failed\n");
-		return err;
-	}
-
-	return 0;
-}
-
-/* Free buffers acquired from the buffer pool or which were meant to
- * be released in the pool
- */
-static void free_bufs(struct dpaa2_eth_priv *priv, u64 *buf_array, int count)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	void *vaddr;
-	int i;
-
-	for (i = 0; i < count; i++) {
-		vaddr = dpaa2_iova_to_virt(priv->iommu_domain, buf_array[i]);
-		dma_unmap_single(dev, buf_array[i], DPAA2_ETH_RX_BUF_SIZE,
-				 DMA_FROM_DEVICE);
-		skb_free_frag(vaddr);
-	}
-}
-
-/* Perform a single release command to add buffers
- * to the specified buffer pool
- */
-static int add_bufs(struct dpaa2_eth_priv *priv,
-		    struct dpaa2_eth_channel *ch, u16 bpid)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	u64 buf_array[DPAA2_ETH_BUFS_PER_CMD];
-	void *buf;
-	dma_addr_t addr;
-	int i, err;
-
-	for (i = 0; i < DPAA2_ETH_BUFS_PER_CMD; i++) {
-		/* Allocate buffer visible to WRIOP + skb shared info +
-		 * alignment padding
-		 */
-		buf = napi_alloc_frag(dpaa2_eth_buf_raw_size(priv));
-		if (unlikely(!buf))
-			goto err_alloc;
-
-		buf = PTR_ALIGN(buf, priv->rx_buf_align);
-
-		addr = dma_map_single(dev, buf, DPAA2_ETH_RX_BUF_SIZE,
-				      DMA_FROM_DEVICE);
-		if (unlikely(dma_mapping_error(dev, addr)))
-			goto err_map;
-
-		buf_array[i] = addr;
-
-		/* tracing point */
-		trace_dpaa2_eth_buf_seed(priv->net_dev,
-					 buf, dpaa2_eth_buf_raw_size(priv),
-					 addr, DPAA2_ETH_RX_BUF_SIZE,
-					 bpid);
-	}
-
-release_bufs:
-	/* In case the portal is busy, retry until successful */
-	while ((err = dpaa2_io_service_release(ch->dpio, bpid,
-					       buf_array, i)) == -EBUSY)
-		cpu_relax();
-
-	/* If release command failed, clean up and bail out;
-	 * not much else we can do about it
-	 */
-	if (err) {
-		free_bufs(priv, buf_array, i);
-		return 0;
-	}
-
-	return i;
-
-err_map:
-	skb_free_frag(buf);
-err_alloc:
-	/* If we managed to allocate at least some buffers,
-	 * release them to hardware
-	 */
-	if (i)
-		goto release_bufs;
-
-	return 0;
-}
-
-static int seed_pool(struct dpaa2_eth_priv *priv, u16 bpid)
-{
-	int i, j;
-	int new_count;
-
-	/* This is the lazy seeding of Rx buffer pools.
-	 * dpaa2_add_bufs() is also used on the Rx hotpath and calls
-	 * napi_alloc_frag(). The trouble with that is that it in turn ends up
-	 * calling this_cpu_ptr(), which mandates execution in atomic context.
-	 * Rather than splitting up the code, do a one-off preempt disable.
-	 */
-	preempt_disable();
-	for (j = 0; j < priv->num_channels; j++) {
-		for (i = 0; i < DPAA2_ETH_NUM_BUFS;
-		     i += DPAA2_ETH_BUFS_PER_CMD) {
-			new_count = add_bufs(priv, priv->channel[j], bpid);
-			priv->channel[j]->buf_count += new_count;
-
-			if (new_count < DPAA2_ETH_BUFS_PER_CMD) {
-				preempt_enable();
-				return -ENOMEM;
-			}
-		}
-	}
-	preempt_enable();
-
-	return 0;
-}
-
-/**
- * Drain the specified number of buffers from the DPNI's private buffer pool.
- * @count must not exceeed DPAA2_ETH_BUFS_PER_CMD
- */
-static void drain_bufs(struct dpaa2_eth_priv *priv, int count)
-{
-	u64 buf_array[DPAA2_ETH_BUFS_PER_CMD];
-	int ret;
-
-	do {
-		ret = dpaa2_io_service_acquire(NULL, priv->bpid,
-					       buf_array, count);
-		if (ret < 0) {
-			netdev_err(priv->net_dev, "dpaa2_io_service_acquire() failed\n");
-			return;
-		}
-		free_bufs(priv, buf_array, ret);
-	} while (ret);
-}
-
-static void drain_pool(struct dpaa2_eth_priv *priv)
-{
-	int i;
-
-	drain_bufs(priv, DPAA2_ETH_BUFS_PER_CMD);
-	drain_bufs(priv, 1);
-
-	for (i = 0; i < priv->num_channels; i++)
-		priv->channel[i]->buf_count = 0;
-}
-
-/* Function is called from softirq context only, so we don't need to guard
- * the access to percpu count
- */
-static int refill_pool(struct dpaa2_eth_priv *priv,
-		       struct dpaa2_eth_channel *ch,
-		       u16 bpid)
-{
-	int new_count;
-
-	if (likely(ch->buf_count >= DPAA2_ETH_REFILL_THRESH))
-		return 0;
-
-	do {
-		new_count = add_bufs(priv, ch, bpid);
-		if (unlikely(!new_count)) {
-			/* Out of memory; abort for now, we'll try later on */
-			break;
-		}
-		ch->buf_count += new_count;
-	} while (ch->buf_count < DPAA2_ETH_NUM_BUFS);
-
-	if (unlikely(ch->buf_count < DPAA2_ETH_NUM_BUFS))
-		return -ENOMEM;
-
-	return 0;
-}
-
-static int pull_channel(struct dpaa2_eth_channel *ch)
-{
-	int err;
-	int dequeues = -1;
-
-	/* Retry while portal is busy */
-	do {
-		err = dpaa2_io_service_pull_channel(ch->dpio, ch->ch_id,
-						    ch->store);
-		dequeues++;
-		cpu_relax();
-	} while (err == -EBUSY);
-
-	ch->stats.dequeue_portal_busy += dequeues;
-	if (unlikely(err))
-		ch->stats.pull_err++;
-
-	return err;
-}
-
-/* NAPI poll routine
- *
- * Frames are dequeued from the QMan channel associated with this NAPI context.
- * Rx, Tx confirmation and (if configured) Rx error frames all count
- * towards the NAPI budget.
- */
-static int dpaa2_eth_poll(struct napi_struct *napi, int budget)
-{
-	struct dpaa2_eth_channel *ch;
-	int cleaned = 0, store_cleaned;
-	struct dpaa2_eth_priv *priv;
-	int err;
-
-	ch = container_of(napi, struct dpaa2_eth_channel, napi);
-	priv = ch->priv;
-
-	while (cleaned < budget) {
-		err = pull_channel(ch);
-		if (unlikely(err))
-			break;
-
-		/* Refill pool if appropriate */
-		refill_pool(priv, ch, priv->bpid);
-
-		store_cleaned = consume_frames(ch);
-		cleaned += store_cleaned;
-
-		/* If we have enough budget left for a full store,
-		 * try a new pull dequeue, otherwise we're done here
-		 */
-		if (store_cleaned == 0 ||
-		    cleaned > budget - DPAA2_ETH_STORE_SIZE)
-			break;
-	}
-
-	if (cleaned < budget && napi_complete_done(napi, cleaned)) {
-		/* Re-enable data available notifications */
-		do {
-			err = dpaa2_io_service_rearm(ch->dpio, &ch->nctx);
-			cpu_relax();
-		} while (err == -EBUSY);
-		WARN_ONCE(err, "CDAN notifications rearm failed on core %d",
-			  ch->nctx.desired_cpu);
-	}
-
-	ch->stats.frames += cleaned;
-
-	return cleaned;
-}
-
-static void enable_ch_napi(struct dpaa2_eth_priv *priv)
-{
-	struct dpaa2_eth_channel *ch;
-	int i;
-
-	for (i = 0; i < priv->num_channels; i++) {
-		ch = priv->channel[i];
-		napi_enable(&ch->napi);
-	}
-}
-
-static void disable_ch_napi(struct dpaa2_eth_priv *priv)
-{
-	struct dpaa2_eth_channel *ch;
-	int i;
-
-	for (i = 0; i < priv->num_channels; i++) {
-		ch = priv->channel[i];
-		napi_disable(&ch->napi);
-	}
-}
-
-static int link_state_update(struct dpaa2_eth_priv *priv)
-{
-	struct dpni_link_state state;
-	int err;
-
-	err = dpni_get_link_state(priv->mc_io, 0, priv->mc_token, &state);
-	if (unlikely(err)) {
-		netdev_err(priv->net_dev,
-			   "dpni_get_link_state() failed\n");
-		return err;
-	}
-
-	/* Chech link state; speed / duplex changes are not treated yet */
-	if (priv->link_state.up == state.up)
-		return 0;
-
-	priv->link_state = state;
-	if (state.up) {
-		netif_carrier_on(priv->net_dev);
-		netif_tx_start_all_queues(priv->net_dev);
-	} else {
-		netif_tx_stop_all_queues(priv->net_dev);
-		netif_carrier_off(priv->net_dev);
-	}
-
-	netdev_info(priv->net_dev, "Link Event: state %s\n",
-		    state.up ? "up" : "down");
-
-	return 0;
-}
-
-static int dpaa2_eth_open(struct net_device *net_dev)
-{
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	int err;
-
-	err = seed_pool(priv, priv->bpid);
-	if (err) {
-		/* Not much to do; the buffer pool, though not filled up,
-		 * may still contain some buffers which would enable us
-		 * to limp on.
-		 */
-		netdev_err(net_dev, "Buffer seeding failed for DPBP %d (bpid=%d)\n",
-			   priv->dpbp_dev->obj_desc.id, priv->bpid);
-	}
-
-	/* We'll only start the txqs when the link is actually ready; make sure
-	 * we don't race against the link up notification, which may come
-	 * immediately after dpni_enable();
-	 */
-	netif_tx_stop_all_queues(net_dev);
-	enable_ch_napi(priv);
-	/* Also, explicitly set carrier off, otherwise netif_carrier_ok() will
-	 * return true and cause 'ip link show' to report the LOWER_UP flag,
-	 * even though the link notification wasn't even received.
-	 */
-	netif_carrier_off(net_dev);
-
-	err = dpni_enable(priv->mc_io, 0, priv->mc_token);
-	if (err < 0) {
-		netdev_err(net_dev, "dpni_enable() failed\n");
-		goto enable_err;
-	}
-
-	/* If the DPMAC object has already processed the link up interrupt,
-	 * we have to learn the link state ourselves.
-	 */
-	err = link_state_update(priv);
-	if (err < 0) {
-		netdev_err(net_dev, "Can't update link state\n");
-		goto link_state_err;
-	}
-
-	return 0;
-
-link_state_err:
-enable_err:
-	disable_ch_napi(priv);
-	drain_pool(priv);
-	return err;
-}
-
-/* The DPIO store must be empty when we call this,
- * at the end of every NAPI cycle.
- */
-static u32 drain_channel(struct dpaa2_eth_priv *priv,
-			 struct dpaa2_eth_channel *ch)
-{
-	u32 drained = 0, total = 0;
-
-	do {
-		pull_channel(ch);
-		drained = consume_frames(ch);
-		total += drained;
-	} while (drained);
-
-	return total;
-}
-
-static u32 drain_ingress_frames(struct dpaa2_eth_priv *priv)
-{
-	struct dpaa2_eth_channel *ch;
-	int i;
-	u32 drained = 0;
-
-	for (i = 0; i < priv->num_channels; i++) {
-		ch = priv->channel[i];
-		drained += drain_channel(priv, ch);
-	}
-
-	return drained;
-}
-
-static int dpaa2_eth_stop(struct net_device *net_dev)
-{
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	int dpni_enabled;
-	int retries = 10;
-	u32 drained;
-
-	netif_tx_stop_all_queues(net_dev);
-	netif_carrier_off(net_dev);
-
-	/* Loop while dpni_disable() attempts to drain the egress FQs
-	 * and confirm them back to us.
-	 */
-	do {
-		dpni_disable(priv->mc_io, 0, priv->mc_token);
-		dpni_is_enabled(priv->mc_io, 0, priv->mc_token, &dpni_enabled);
-		if (dpni_enabled)
-			/* Allow the hardware some slack */
-			msleep(100);
-	} while (dpni_enabled && --retries);
-	if (!retries) {
-		netdev_warn(net_dev, "Retry count exceeded disabling DPNI\n");
-		/* Must go on and disable NAPI nonetheless, so we don't crash at
-		 * the next "ifconfig up"
-		 */
-	}
-
-	/* Wait for NAPI to complete on every core and disable it.
-	 * In particular, this will also prevent NAPI from being rescheduled if
-	 * a new CDAN is serviced, effectively discarding the CDAN. We therefore
-	 * don't even need to disarm the channels, except perhaps for the case
-	 * of a huge coalescing value.
-	 */
-	disable_ch_napi(priv);
-
-	 /* Manually drain the Rx and TxConf queues */
-	drained = drain_ingress_frames(priv);
-	if (drained)
-		netdev_dbg(net_dev, "Drained %d frames.\n", drained);
-
-	/* Empty the buffer pool */
-	drain_pool(priv);
-
-	return 0;
-}
-
-static int dpaa2_eth_init(struct net_device *net_dev)
-{
-	u64 supported = 0;
-	u64 not_supported = 0;
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	u32 options = priv->dpni_attrs.options;
-
-	/* Capabilities listing */
-	supported |= IFF_LIVE_ADDR_CHANGE;
-
-	if (options & DPNI_OPT_NO_MAC_FILTER)
-		not_supported |= IFF_UNICAST_FLT;
-	else
-		supported |= IFF_UNICAST_FLT;
-
-	net_dev->priv_flags |= supported;
-	net_dev->priv_flags &= ~not_supported;
-
-	/* Features */
-	net_dev->features = NETIF_F_RXCSUM |
-			    NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
-			    NETIF_F_SG | NETIF_F_HIGHDMA |
-			    NETIF_F_LLTX;
-	net_dev->hw_features = net_dev->features;
-
-	return 0;
-}
-
-static int dpaa2_eth_set_addr(struct net_device *net_dev, void *addr)
-{
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	struct device *dev = net_dev->dev.parent;
-	int err;
-
-	err = eth_mac_addr(net_dev, addr);
-	if (err < 0) {
-		dev_err(dev, "eth_mac_addr() failed (%d)\n", err);
-		return err;
-	}
-
-	err = dpni_set_primary_mac_addr(priv->mc_io, 0, priv->mc_token,
-					net_dev->dev_addr);
-	if (err) {
-		dev_err(dev, "dpni_set_primary_mac_addr() failed (%d)\n", err);
-		return err;
-	}
-
-	return 0;
-}
-
-/** Fill in counters maintained by the GPP driver. These may be different from
- * the hardware counters obtained by ethtool.
- */
-static void dpaa2_eth_get_stats(struct net_device *net_dev,
-				struct rtnl_link_stats64 *stats)
-{
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	struct rtnl_link_stats64 *percpu_stats;
-	u64 *cpustats;
-	u64 *netstats = (u64 *)stats;
-	int i, j;
-	int num = sizeof(struct rtnl_link_stats64) / sizeof(u64);
-
-	for_each_possible_cpu(i) {
-		percpu_stats = per_cpu_ptr(priv->percpu_stats, i);
-		cpustats = (u64 *)percpu_stats;
-		for (j = 0; j < num; j++)
-			netstats[j] += cpustats[j];
-	}
-}
-
-/* Copy mac unicast addresses from @net_dev to @priv.
- * Its sole purpose is to make dpaa2_eth_set_rx_mode() more readable.
- */
-static void add_uc_hw_addr(const struct net_device *net_dev,
-			   struct dpaa2_eth_priv *priv)
-{
-	struct netdev_hw_addr *ha;
-	int err;
-
-	netdev_for_each_uc_addr(ha, net_dev) {
-		err = dpni_add_mac_addr(priv->mc_io, 0, priv->mc_token,
-					ha->addr);
-		if (err)
-			netdev_warn(priv->net_dev,
-				    "Could not add ucast MAC %pM to the filtering table (err %d)\n",
-				    ha->addr, err);
-	}
-}
-
-/* Copy mac multicast addresses from @net_dev to @priv
- * Its sole purpose is to make dpaa2_eth_set_rx_mode() more readable.
- */
-static void add_mc_hw_addr(const struct net_device *net_dev,
-			   struct dpaa2_eth_priv *priv)
-{
-	struct netdev_hw_addr *ha;
-	int err;
-
-	netdev_for_each_mc_addr(ha, net_dev) {
-		err = dpni_add_mac_addr(priv->mc_io, 0, priv->mc_token,
-					ha->addr);
-		if (err)
-			netdev_warn(priv->net_dev,
-				    "Could not add mcast MAC %pM to the filtering table (err %d)\n",
-				    ha->addr, err);
-	}
-}
-
-static void dpaa2_eth_set_rx_mode(struct net_device *net_dev)
-{
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	int uc_count = netdev_uc_count(net_dev);
-	int mc_count = netdev_mc_count(net_dev);
-	u8 max_mac = priv->dpni_attrs.mac_filter_entries;
-	u32 options = priv->dpni_attrs.options;
-	u16 mc_token = priv->mc_token;
-	struct fsl_mc_io *mc_io = priv->mc_io;
-	int err;
-
-	/* Basic sanity checks; these probably indicate a misconfiguration */
-	if (options & DPNI_OPT_NO_MAC_FILTER && max_mac != 0)
-		netdev_info(net_dev,
-			    "mac_filter_entries=%d, DPNI_OPT_NO_MAC_FILTER option must be disabled\n",
-			    max_mac);
-
-	/* Force promiscuous if the uc or mc counts exceed our capabilities. */
-	if (uc_count > max_mac) {
-		netdev_info(net_dev,
-			    "Unicast addr count reached %d, max allowed is %d; forcing promisc\n",
-			    uc_count, max_mac);
-		goto force_promisc;
-	}
-	if (mc_count + uc_count > max_mac) {
-		netdev_info(net_dev,
-			    "Unicast + multicast addr count reached %d, max allowed is %d; forcing promisc\n",
-			    uc_count + mc_count, max_mac);
-		goto force_mc_promisc;
-	}
-
-	/* Adjust promisc settings due to flag combinations */
-	if (net_dev->flags & IFF_PROMISC)
-		goto force_promisc;
-	if (net_dev->flags & IFF_ALLMULTI) {
-		/* First, rebuild unicast filtering table. This should be done
-		 * in promisc mode, in order to avoid frame loss while we
-		 * progressively add entries to the table.
-		 * We don't know whether we had been in promisc already, and
-		 * making an MC call to find out is expensive; so set uc promisc
-		 * nonetheless.
-		 */
-		err = dpni_set_unicast_promisc(mc_io, 0, mc_token, 1);
-		if (err)
-			netdev_warn(net_dev, "Can't set uc promisc\n");
-
-		/* Actual uc table reconstruction. */
-		err = dpni_clear_mac_filters(mc_io, 0, mc_token, 1, 0);
-		if (err)
-			netdev_warn(net_dev, "Can't clear uc filters\n");
-		add_uc_hw_addr(net_dev, priv);
-
-		/* Finally, clear uc promisc and set mc promisc as requested. */
-		err = dpni_set_unicast_promisc(mc_io, 0, mc_token, 0);
-		if (err)
-			netdev_warn(net_dev, "Can't clear uc promisc\n");
-		goto force_mc_promisc;
-	}
-
-	/* Neither unicast, nor multicast promisc will be on... eventually.
-	 * For now, rebuild mac filtering tables while forcing both of them on.
-	 */
-	err = dpni_set_unicast_promisc(mc_io, 0, mc_token, 1);
-	if (err)
-		netdev_warn(net_dev, "Can't set uc promisc (%d)\n", err);
-	err = dpni_set_multicast_promisc(mc_io, 0, mc_token, 1);
-	if (err)
-		netdev_warn(net_dev, "Can't set mc promisc (%d)\n", err);
-
-	/* Actual mac filtering tables reconstruction */
-	err = dpni_clear_mac_filters(mc_io, 0, mc_token, 1, 1);
-	if (err)
-		netdev_warn(net_dev, "Can't clear mac filters\n");
-	add_mc_hw_addr(net_dev, priv);
-	add_uc_hw_addr(net_dev, priv);
-
-	/* Now we can clear both ucast and mcast promisc, without risking
-	 * to drop legitimate frames anymore.
-	 */
-	err = dpni_set_unicast_promisc(mc_io, 0, mc_token, 0);
-	if (err)
-		netdev_warn(net_dev, "Can't clear ucast promisc\n");
-	err = dpni_set_multicast_promisc(mc_io, 0, mc_token, 0);
-	if (err)
-		netdev_warn(net_dev, "Can't clear mcast promisc\n");
-
-	return;
-
-force_promisc:
-	err = dpni_set_unicast_promisc(mc_io, 0, mc_token, 1);
-	if (err)
-		netdev_warn(net_dev, "Can't set ucast promisc\n");
-force_mc_promisc:
-	err = dpni_set_multicast_promisc(mc_io, 0, mc_token, 1);
-	if (err)
-		netdev_warn(net_dev, "Can't set mcast promisc\n");
-}
-
-static int dpaa2_eth_set_features(struct net_device *net_dev,
-				  netdev_features_t features)
-{
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	netdev_features_t changed = features ^ net_dev->features;
-	bool enable;
-	int err;
-
-	if (changed & NETIF_F_RXCSUM) {
-		enable = !!(features & NETIF_F_RXCSUM);
-		err = set_rx_csum(priv, enable);
-		if (err)
-			return err;
-	}
-
-	if (changed & (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM)) {
-		enable = !!(features & (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM));
-		err = set_tx_csum(priv, enable);
-		if (err)
-			return err;
-	}
-
-	return 0;
-}
-
-static int dpaa2_eth_ts_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
-{
-	struct dpaa2_eth_priv *priv = netdev_priv(dev);
-	struct hwtstamp_config config;
-
-	if (copy_from_user(&config, rq->ifr_data, sizeof(config)))
-		return -EFAULT;
-
-	switch (config.tx_type) {
-	case HWTSTAMP_TX_OFF:
-		priv->tx_tstamp = false;
-		break;
-	case HWTSTAMP_TX_ON:
-		priv->tx_tstamp = true;
-		break;
-	default:
-		return -ERANGE;
-	}
-
-	if (config.rx_filter == HWTSTAMP_FILTER_NONE) {
-		priv->rx_tstamp = false;
-	} else {
-		priv->rx_tstamp = true;
-		/* TS is set for all frame types, not only those requested */
-		config.rx_filter = HWTSTAMP_FILTER_ALL;
-	}
-
-	return copy_to_user(rq->ifr_data, &config, sizeof(config)) ?
-			-EFAULT : 0;
-}
-
-static int dpaa2_eth_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
-{
-	if (cmd == SIOCSHWTSTAMP)
-		return dpaa2_eth_ts_ioctl(dev, rq, cmd);
-
-	return -EINVAL;
-}
-
-static const struct net_device_ops dpaa2_eth_ops = {
-	.ndo_open = dpaa2_eth_open,
-	.ndo_start_xmit = dpaa2_eth_tx,
-	.ndo_stop = dpaa2_eth_stop,
-	.ndo_init = dpaa2_eth_init,
-	.ndo_set_mac_address = dpaa2_eth_set_addr,
-	.ndo_get_stats64 = dpaa2_eth_get_stats,
-	.ndo_set_rx_mode = dpaa2_eth_set_rx_mode,
-	.ndo_set_features = dpaa2_eth_set_features,
-	.ndo_do_ioctl = dpaa2_eth_ioctl,
-};
-
-static void cdan_cb(struct dpaa2_io_notification_ctx *ctx)
-{
-	struct dpaa2_eth_channel *ch;
-
-	ch = container_of(ctx, struct dpaa2_eth_channel, nctx);
-
-	/* Update NAPI statistics */
-	ch->stats.cdan++;
-
-	napi_schedule_irqoff(&ch->napi);
-}
-
-/* Allocate and configure a DPCON object */
-static struct fsl_mc_device *setup_dpcon(struct dpaa2_eth_priv *priv)
-{
-	struct fsl_mc_device *dpcon;
-	struct device *dev = priv->net_dev->dev.parent;
-	struct dpcon_attr attrs;
-	int err;
-
-	err = fsl_mc_object_allocate(to_fsl_mc_device(dev),
-				     FSL_MC_POOL_DPCON, &dpcon);
-	if (err) {
-		dev_info(dev, "Not enough DPCONs, will go on as-is\n");
-		return NULL;
-	}
-
-	err = dpcon_open(priv->mc_io, 0, dpcon->obj_desc.id, &dpcon->mc_handle);
-	if (err) {
-		dev_err(dev, "dpcon_open() failed\n");
-		goto free;
-	}
-
-	err = dpcon_reset(priv->mc_io, 0, dpcon->mc_handle);
-	if (err) {
-		dev_err(dev, "dpcon_reset() failed\n");
-		goto close;
-	}
-
-	err = dpcon_get_attributes(priv->mc_io, 0, dpcon->mc_handle, &attrs);
-	if (err) {
-		dev_err(dev, "dpcon_get_attributes() failed\n");
-		goto close;
-	}
-
-	err = dpcon_enable(priv->mc_io, 0, dpcon->mc_handle);
-	if (err) {
-		dev_err(dev, "dpcon_enable() failed\n");
-		goto close;
-	}
-
-	return dpcon;
-
-close:
-	dpcon_close(priv->mc_io, 0, dpcon->mc_handle);
-free:
-	fsl_mc_object_free(dpcon);
-
-	return NULL;
-}
-
-static void free_dpcon(struct dpaa2_eth_priv *priv,
-		       struct fsl_mc_device *dpcon)
-{
-	dpcon_disable(priv->mc_io, 0, dpcon->mc_handle);
-	dpcon_close(priv->mc_io, 0, dpcon->mc_handle);
-	fsl_mc_object_free(dpcon);
-}
-
-static struct dpaa2_eth_channel *
-alloc_channel(struct dpaa2_eth_priv *priv)
-{
-	struct dpaa2_eth_channel *channel;
-	struct dpcon_attr attr;
-	struct device *dev = priv->net_dev->dev.parent;
-	int err;
-
-	channel = kzalloc(sizeof(*channel), GFP_KERNEL);
-	if (!channel)
-		return NULL;
-
-	channel->dpcon = setup_dpcon(priv);
-	if (!channel->dpcon)
-		goto err_setup;
-
-	err = dpcon_get_attributes(priv->mc_io, 0, channel->dpcon->mc_handle,
-				   &attr);
-	if (err) {
-		dev_err(dev, "dpcon_get_attributes() failed\n");
-		goto err_get_attr;
-	}
-
-	channel->dpcon_id = attr.id;
-	channel->ch_id = attr.qbman_ch_id;
-	channel->priv = priv;
-
-	return channel;
-
-err_get_attr:
-	free_dpcon(priv, channel->dpcon);
-err_setup:
-	kfree(channel);
-	return NULL;
-}
-
-static void free_channel(struct dpaa2_eth_priv *priv,
-			 struct dpaa2_eth_channel *channel)
-{
-	free_dpcon(priv, channel->dpcon);
-	kfree(channel);
-}
-
-/* DPIO setup: allocate and configure QBMan channels, setup core affinity
- * and register data availability notifications
- */
-static int setup_dpio(struct dpaa2_eth_priv *priv)
-{
-	struct dpaa2_io_notification_ctx *nctx;
-	struct dpaa2_eth_channel *channel;
-	struct dpcon_notification_cfg dpcon_notif_cfg;
-	struct device *dev = priv->net_dev->dev.parent;
-	int i, err;
-
-	/* We want the ability to spread ingress traffic (RX, TX conf) to as
-	 * many cores as possible, so we need one channel for each core
-	 * (unless there's fewer queues than cores, in which case the extra
-	 * channels would be wasted).
-	 * Allocate one channel per core and register it to the core's
-	 * affine DPIO. If not enough channels are available for all cores
-	 * or if some cores don't have an affine DPIO, there will be no
-	 * ingress frame processing on those cores.
-	 */
-	cpumask_clear(&priv->dpio_cpumask);
-	for_each_online_cpu(i) {
-		/* Try to allocate a channel */
-		channel = alloc_channel(priv);
-		if (!channel) {
-			dev_info(dev,
-				 "No affine channel for cpu %d and above\n", i);
-			err = -ENODEV;
-			goto err_alloc_ch;
-		}
-
-		priv->channel[priv->num_channels] = channel;
-
-		nctx = &channel->nctx;
-		nctx->is_cdan = 1;
-		nctx->cb = cdan_cb;
-		nctx->id = channel->ch_id;
-		nctx->desired_cpu = i;
-
-		/* Register the new context */
-		channel->dpio = dpaa2_io_service_select(i);
-		err = dpaa2_io_service_register(channel->dpio, nctx);
-		if (err) {
-			dev_dbg(dev, "No affine DPIO for cpu %d\n", i);
-			/* If no affine DPIO for this core, there's probably
-			 * none available for next cores either. Signal we want
-			 * to retry later, in case the DPIO devices weren't
-			 * probed yet.
-			 */
-			err = -EPROBE_DEFER;
-			goto err_service_reg;
-		}
-
-		/* Register DPCON notification with MC */
-		dpcon_notif_cfg.dpio_id = nctx->dpio_id;
-		dpcon_notif_cfg.priority = 0;
-		dpcon_notif_cfg.user_ctx = nctx->qman64;
-		err = dpcon_set_notification(priv->mc_io, 0,
-					     channel->dpcon->mc_handle,
-					     &dpcon_notif_cfg);
-		if (err) {
-			dev_err(dev, "dpcon_set_notification failed()\n");
-			goto err_set_cdan;
-		}
-
-		/* If we managed to allocate a channel and also found an affine
-		 * DPIO for this core, add it to the final mask
-		 */
-		cpumask_set_cpu(i, &priv->dpio_cpumask);
-		priv->num_channels++;
-
-		/* Stop if we already have enough channels to accommodate all
-		 * RX and TX conf queues
-		 */
-		if (priv->num_channels == dpaa2_eth_queue_count(priv))
-			break;
-	}
-
-	return 0;
-
-err_set_cdan:
-	dpaa2_io_service_deregister(channel->dpio, nctx);
-err_service_reg:
-	free_channel(priv, channel);
-err_alloc_ch:
-	if (cpumask_empty(&priv->dpio_cpumask)) {
-		dev_err(dev, "No cpu with an affine DPIO/DPCON\n");
-		return err;
-	}
-
-	dev_info(dev, "Cores %*pbl available for processing ingress traffic\n",
-		 cpumask_pr_args(&priv->dpio_cpumask));
-
-	return 0;
-}
-
-static void free_dpio(struct dpaa2_eth_priv *priv)
-{
-	int i;
-	struct dpaa2_eth_channel *ch;
-
-	/* deregister CDAN notifications and free channels */
-	for (i = 0; i < priv->num_channels; i++) {
-		ch = priv->channel[i];
-		dpaa2_io_service_deregister(ch->dpio, &ch->nctx);
-		free_channel(priv, ch);
-	}
-}
-
-static struct dpaa2_eth_channel *get_affine_channel(struct dpaa2_eth_priv *priv,
-						    int cpu)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	int i;
-
-	for (i = 0; i < priv->num_channels; i++)
-		if (priv->channel[i]->nctx.desired_cpu == cpu)
-			return priv->channel[i];
-
-	/* We should never get here. Issue a warning and return
-	 * the first channel, because it's still better than nothing
-	 */
-	dev_warn(dev, "No affine channel found for cpu %d\n", cpu);
-
-	return priv->channel[0];
-}
-
-static void set_fq_affinity(struct dpaa2_eth_priv *priv)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	struct cpumask xps_mask;
-	struct dpaa2_eth_fq *fq;
-	int rx_cpu, txc_cpu;
-	int i, err;
-
-	/* For each FQ, pick one channel/CPU to deliver frames to.
-	 * This may well change at runtime, either through irqbalance or
-	 * through direct user intervention.
-	 */
-	rx_cpu = txc_cpu = cpumask_first(&priv->dpio_cpumask);
-
-	for (i = 0; i < priv->num_fqs; i++) {
-		fq = &priv->fq[i];
-		switch (fq->type) {
-		case DPAA2_RX_FQ:
-			fq->target_cpu = rx_cpu;
-			rx_cpu = cpumask_next(rx_cpu, &priv->dpio_cpumask);
-			if (rx_cpu >= nr_cpu_ids)
-				rx_cpu = cpumask_first(&priv->dpio_cpumask);
-			break;
-		case DPAA2_TX_CONF_FQ:
-			fq->target_cpu = txc_cpu;
-
-			/* Tell the stack to affine to txc_cpu the Tx queue
-			 * associated with the confirmation one
-			 */
-			cpumask_clear(&xps_mask);
-			cpumask_set_cpu(txc_cpu, &xps_mask);
-			err = netif_set_xps_queue(priv->net_dev, &xps_mask,
-						  fq->flowid);
-			if (err)
-				dev_err(dev, "Error setting XPS queue\n");
-
-			txc_cpu = cpumask_next(txc_cpu, &priv->dpio_cpumask);
-			if (txc_cpu >= nr_cpu_ids)
-				txc_cpu = cpumask_first(&priv->dpio_cpumask);
-			break;
-		default:
-			dev_err(dev, "Unknown FQ type: %d\n", fq->type);
-		}
-		fq->channel = get_affine_channel(priv, fq->target_cpu);
-	}
-}
-
-static void setup_fqs(struct dpaa2_eth_priv *priv)
-{
-	int i;
-
-	/* We have one TxConf FQ per Tx flow.
-	 * The number of Tx and Rx queues is the same.
-	 * Tx queues come first in the fq array.
-	 */
-	for (i = 0; i < dpaa2_eth_queue_count(priv); i++) {
-		priv->fq[priv->num_fqs].type = DPAA2_TX_CONF_FQ;
-		priv->fq[priv->num_fqs].consume = dpaa2_eth_tx_conf;
-		priv->fq[priv->num_fqs++].flowid = (u16)i;
-	}
-
-	for (i = 0; i < dpaa2_eth_queue_count(priv); i++) {
-		priv->fq[priv->num_fqs].type = DPAA2_RX_FQ;
-		priv->fq[priv->num_fqs].consume = dpaa2_eth_rx;
-		priv->fq[priv->num_fqs++].flowid = (u16)i;
-	}
-
-	/* For each FQ, decide on which core to process incoming frames */
-	set_fq_affinity(priv);
-}
-
-/* Allocate and configure one buffer pool for each interface */
-static int setup_dpbp(struct dpaa2_eth_priv *priv)
-{
-	int err;
-	struct fsl_mc_device *dpbp_dev;
-	struct device *dev = priv->net_dev->dev.parent;
-	struct dpbp_attr dpbp_attrs;
-
-	err = fsl_mc_object_allocate(to_fsl_mc_device(dev), FSL_MC_POOL_DPBP,
-				     &dpbp_dev);
-	if (err) {
-		dev_err(dev, "DPBP device allocation failed\n");
-		return err;
-	}
-
-	priv->dpbp_dev = dpbp_dev;
-
-	err = dpbp_open(priv->mc_io, 0, priv->dpbp_dev->obj_desc.id,
-			&dpbp_dev->mc_handle);
-	if (err) {
-		dev_err(dev, "dpbp_open() failed\n");
-		goto err_open;
-	}
-
-	err = dpbp_reset(priv->mc_io, 0, dpbp_dev->mc_handle);
-	if (err) {
-		dev_err(dev, "dpbp_reset() failed\n");
-		goto err_reset;
-	}
-
-	err = dpbp_enable(priv->mc_io, 0, dpbp_dev->mc_handle);
-	if (err) {
-		dev_err(dev, "dpbp_enable() failed\n");
-		goto err_enable;
-	}
-
-	err = dpbp_get_attributes(priv->mc_io, 0, dpbp_dev->mc_handle,
-				  &dpbp_attrs);
-	if (err) {
-		dev_err(dev, "dpbp_get_attributes() failed\n");
-		goto err_get_attr;
-	}
-	priv->bpid = dpbp_attrs.bpid;
-
-	return 0;
-
-err_get_attr:
-	dpbp_disable(priv->mc_io, 0, dpbp_dev->mc_handle);
-err_enable:
-err_reset:
-	dpbp_close(priv->mc_io, 0, dpbp_dev->mc_handle);
-err_open:
-	fsl_mc_object_free(dpbp_dev);
-
-	return err;
-}
-
-static void free_dpbp(struct dpaa2_eth_priv *priv)
-{
-	drain_pool(priv);
-	dpbp_disable(priv->mc_io, 0, priv->dpbp_dev->mc_handle);
-	dpbp_close(priv->mc_io, 0, priv->dpbp_dev->mc_handle);
-	fsl_mc_object_free(priv->dpbp_dev);
-}
-
-static int set_buffer_layout(struct dpaa2_eth_priv *priv)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	struct dpni_buffer_layout buf_layout = {0};
-	int err;
-
-	/* We need to check for WRIOP version 1.0.0, but depending on the MC
-	 * version, this number is not always provided correctly on rev1.
-	 * We need to check for both alternatives in this situation.
-	 */
-	if (priv->dpni_attrs.wriop_version == DPAA2_WRIOP_VERSION(0, 0, 0) ||
-	    priv->dpni_attrs.wriop_version == DPAA2_WRIOP_VERSION(1, 0, 0))
-		priv->rx_buf_align = DPAA2_ETH_RX_BUF_ALIGN_REV1;
-	else
-		priv->rx_buf_align = DPAA2_ETH_RX_BUF_ALIGN;
-
-	/* tx buffer */
-	buf_layout.private_data_size = DPAA2_ETH_SWA_SIZE;
-	buf_layout.pass_timestamp = true;
-	buf_layout.options = DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE |
-			     DPNI_BUF_LAYOUT_OPT_TIMESTAMP;
-	err = dpni_set_buffer_layout(priv->mc_io, 0, priv->mc_token,
-				     DPNI_QUEUE_TX, &buf_layout);
-	if (err) {
-		dev_err(dev, "dpni_set_buffer_layout(TX) failed\n");
-		return err;
-	}
-
-	/* tx-confirm buffer */
-	buf_layout.options = DPNI_BUF_LAYOUT_OPT_TIMESTAMP;
-	err = dpni_set_buffer_layout(priv->mc_io, 0, priv->mc_token,
-				     DPNI_QUEUE_TX_CONFIRM, &buf_layout);
-	if (err) {
-		dev_err(dev, "dpni_set_buffer_layout(TX_CONF) failed\n");
-		return err;
-	}
-
-	/* Now that we've set our tx buffer layout, retrieve the minimum
-	 * required tx data offset.
-	 */
-	err = dpni_get_tx_data_offset(priv->mc_io, 0, priv->mc_token,
-				      &priv->tx_data_offset);
-	if (err) {
-		dev_err(dev, "dpni_get_tx_data_offset() failed\n");
-		return err;
-	}
-
-	if ((priv->tx_data_offset % 64) != 0)
-		dev_warn(dev, "Tx data offset (%d) not a multiple of 64B\n",
-			 priv->tx_data_offset);
-
-	/* rx buffer */
-	buf_layout.pass_frame_status = true;
-	buf_layout.pass_parser_result = true;
-	buf_layout.data_align = priv->rx_buf_align;
-	buf_layout.data_head_room = dpaa2_eth_rx_head_room(priv);
-	buf_layout.private_data_size = 0;
-	buf_layout.options = DPNI_BUF_LAYOUT_OPT_PARSER_RESULT |
-			     DPNI_BUF_LAYOUT_OPT_FRAME_STATUS |
-			     DPNI_BUF_LAYOUT_OPT_DATA_ALIGN |
-			     DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM |
-			     DPNI_BUF_LAYOUT_OPT_TIMESTAMP;
-	err = dpni_set_buffer_layout(priv->mc_io, 0, priv->mc_token,
-				     DPNI_QUEUE_RX, &buf_layout);
-	if (err) {
-		dev_err(dev, "dpni_set_buffer_layout(RX) failed\n");
-		return err;
-	}
-
-	return 0;
-}
-
-/* Configure the DPNI object this interface is associated with */
-static int setup_dpni(struct fsl_mc_device *ls_dev)
-{
-	struct device *dev = &ls_dev->dev;
-	struct dpaa2_eth_priv *priv;
-	struct net_device *net_dev;
-	int err;
-
-	net_dev = dev_get_drvdata(dev);
-	priv = netdev_priv(net_dev);
-
-	/* get a handle for the DPNI object */
-	err = dpni_open(priv->mc_io, 0, ls_dev->obj_desc.id, &priv->mc_token);
-	if (err) {
-		dev_err(dev, "dpni_open() failed\n");
-		return err;
-	}
-
-	/* Check if we can work with this DPNI object */
-	err = dpni_get_api_version(priv->mc_io, 0, &priv->dpni_ver_major,
-				   &priv->dpni_ver_minor);
-	if (err) {
-		dev_err(dev, "dpni_get_api_version() failed\n");
-		goto close;
-	}
-	if (dpaa2_eth_cmp_dpni_ver(priv, DPNI_VER_MAJOR, DPNI_VER_MINOR) < 0) {
-		dev_err(dev, "DPNI version %u.%u not supported, need >= %u.%u\n",
-			priv->dpni_ver_major, priv->dpni_ver_minor,
-			DPNI_VER_MAJOR, DPNI_VER_MINOR);
-		err = -ENOTSUPP;
-		goto close;
-	}
-
-	ls_dev->mc_io = priv->mc_io;
-	ls_dev->mc_handle = priv->mc_token;
-
-	err = dpni_reset(priv->mc_io, 0, priv->mc_token);
-	if (err) {
-		dev_err(dev, "dpni_reset() failed\n");
-		goto close;
-	}
-
-	err = dpni_get_attributes(priv->mc_io, 0, priv->mc_token,
-				  &priv->dpni_attrs);
-	if (err) {
-		dev_err(dev, "dpni_get_attributes() failed (err=%d)\n", err);
-		goto close;
-	}
-
-	err = set_buffer_layout(priv);
-	if (err)
-		goto close;
-
-	return 0;
-
-close:
-	dpni_close(priv->mc_io, 0, priv->mc_token);
-
-	return err;
-}
-
-static void free_dpni(struct dpaa2_eth_priv *priv)
-{
-	int err;
-
-	err = dpni_reset(priv->mc_io, 0, priv->mc_token);
-	if (err)
-		netdev_warn(priv->net_dev, "dpni_reset() failed (err %d)\n",
-			    err);
-
-	dpni_close(priv->mc_io, 0, priv->mc_token);
-}
-
-static int setup_rx_flow(struct dpaa2_eth_priv *priv,
-			 struct dpaa2_eth_fq *fq)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	struct dpni_queue queue;
-	struct dpni_queue_id qid;
-	struct dpni_taildrop td;
-	int err;
-
-	err = dpni_get_queue(priv->mc_io, 0, priv->mc_token,
-			     DPNI_QUEUE_RX, 0, fq->flowid, &queue, &qid);
-	if (err) {
-		dev_err(dev, "dpni_get_queue(RX) failed\n");
-		return err;
-	}
-
-	fq->fqid = qid.fqid;
-
-	queue.destination.id = fq->channel->dpcon_id;
-	queue.destination.type = DPNI_DEST_DPCON;
-	queue.destination.priority = 1;
-	queue.user_context = (u64)(uintptr_t)fq;
-	err = dpni_set_queue(priv->mc_io, 0, priv->mc_token,
-			     DPNI_QUEUE_RX, 0, fq->flowid,
-			     DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST,
-			     &queue);
-	if (err) {
-		dev_err(dev, "dpni_set_queue(RX) failed\n");
-		return err;
-	}
-
-	td.enable = 1;
-	td.threshold = DPAA2_ETH_TAILDROP_THRESH;
-	err = dpni_set_taildrop(priv->mc_io, 0, priv->mc_token, DPNI_CP_QUEUE,
-				DPNI_QUEUE_RX, 0, fq->flowid, &td);
-	if (err) {
-		dev_err(dev, "dpni_set_threshold() failed\n");
-		return err;
-	}
-
-	return 0;
-}
-
-static int setup_tx_flow(struct dpaa2_eth_priv *priv,
-			 struct dpaa2_eth_fq *fq)
-{
-	struct device *dev = priv->net_dev->dev.parent;
-	struct dpni_queue queue;
-	struct dpni_queue_id qid;
-	int err;
-
-	err = dpni_get_queue(priv->mc_io, 0, priv->mc_token,
-			     DPNI_QUEUE_TX, 0, fq->flowid, &queue, &qid);
-	if (err) {
-		dev_err(dev, "dpni_get_queue(TX) failed\n");
-		return err;
-	}
-
-	fq->tx_qdbin = qid.qdbin;
-
-	err = dpni_get_queue(priv->mc_io, 0, priv->mc_token,
-			     DPNI_QUEUE_TX_CONFIRM, 0, fq->flowid,
-			     &queue, &qid);
-	if (err) {
-		dev_err(dev, "dpni_get_queue(TX_CONF) failed\n");
-		return err;
-	}
-
-	fq->fqid = qid.fqid;
-
-	queue.destination.id = fq->channel->dpcon_id;
-	queue.destination.type = DPNI_DEST_DPCON;
-	queue.destination.priority = 0;
-	queue.user_context = (u64)(uintptr_t)fq;
-	err = dpni_set_queue(priv->mc_io, 0, priv->mc_token,
-			     DPNI_QUEUE_TX_CONFIRM, 0, fq->flowid,
-			     DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST,
-			     &queue);
-	if (err) {
-		dev_err(dev, "dpni_set_queue(TX_CONF) failed\n");
-		return err;
-	}
-
-	return 0;
-}
-
-/* Hash key is a 5-tuple: IPsrc, IPdst, IPnextproto, L4src, L4dst */
-static const struct dpaa2_eth_hash_fields hash_fields[] = {
-	{
-		/* IP header */
-		.rxnfc_field = RXH_IP_SRC,
-		.cls_prot = NET_PROT_IP,
-		.cls_field = NH_FLD_IP_SRC,
-		.size = 4,
-	}, {
-		.rxnfc_field = RXH_IP_DST,
-		.cls_prot = NET_PROT_IP,
-		.cls_field = NH_FLD_IP_DST,
-		.size = 4,
-	}, {
-		.rxnfc_field = RXH_L3_PROTO,
-		.cls_prot = NET_PROT_IP,
-		.cls_field = NH_FLD_IP_PROTO,
-		.size = 1,
-	}, {
-		/* Using UDP ports, this is functionally equivalent to raw
-		 * byte pairs from L4 header.
-		 */
-		.rxnfc_field = RXH_L4_B_0_1,
-		.cls_prot = NET_PROT_UDP,
-		.cls_field = NH_FLD_UDP_PORT_SRC,
-		.size = 2,
-	}, {
-		.rxnfc_field = RXH_L4_B_2_3,
-		.cls_prot = NET_PROT_UDP,
-		.cls_field = NH_FLD_UDP_PORT_DST,
-		.size = 2,
-	},
-};
-
-/* Set RX hash options
- * flags is a combination of RXH_ bits
- */
-static int dpaa2_eth_set_hash(struct net_device *net_dev, u64 flags)
-{
-	struct device *dev = net_dev->dev.parent;
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	struct dpkg_profile_cfg cls_cfg;
-	struct dpni_rx_tc_dist_cfg dist_cfg;
-	u8 *dma_mem;
-	int i;
-	int err = 0;
-
-	if (!dpaa2_eth_hash_enabled(priv)) {
-		dev_dbg(dev, "Hashing support is not enabled\n");
-		return 0;
-	}
-
-	memset(&cls_cfg, 0, sizeof(cls_cfg));
-
-	for (i = 0; i < ARRAY_SIZE(hash_fields); i++) {
-		struct dpkg_extract *key =
-			&cls_cfg.extracts[cls_cfg.num_extracts];
-
-		if (!(flags & hash_fields[i].rxnfc_field))
-			continue;
-
-		if (cls_cfg.num_extracts >= DPKG_MAX_NUM_OF_EXTRACTS) {
-			dev_err(dev, "error adding key extraction rule, too many rules?\n");
-			return -E2BIG;
-		}
-
-		key->type = DPKG_EXTRACT_FROM_HDR;
-		key->extract.from_hdr.prot = hash_fields[i].cls_prot;
-		key->extract.from_hdr.type = DPKG_FULL_FIELD;
-		key->extract.from_hdr.field = hash_fields[i].cls_field;
-		cls_cfg.num_extracts++;
-
-		priv->rx_hash_fields |= hash_fields[i].rxnfc_field;
-	}
-
-	dma_mem = kzalloc(DPAA2_CLASSIFIER_DMA_SIZE, GFP_KERNEL);
-	if (!dma_mem)
-		return -ENOMEM;
-
-	err = dpni_prepare_key_cfg(&cls_cfg, dma_mem);
-	if (err) {
-		dev_err(dev, "dpni_prepare_key_cfg error %d\n", err);
-		goto err_prep_key;
-	}
-
-	memset(&dist_cfg, 0, sizeof(dist_cfg));
-
-	/* Prepare for setting the rx dist */
-	dist_cfg.key_cfg_iova = dma_map_single(dev, dma_mem,
-					       DPAA2_CLASSIFIER_DMA_SIZE,
-					       DMA_TO_DEVICE);
-	if (dma_mapping_error(dev, dist_cfg.key_cfg_iova)) {
-		dev_err(dev, "DMA mapping failed\n");
-		err = -ENOMEM;
-		goto err_dma_map;
-	}
-
-	dist_cfg.dist_size = dpaa2_eth_queue_count(priv);
-	dist_cfg.dist_mode = DPNI_DIST_MODE_HASH;
-
-	err = dpni_set_rx_tc_dist(priv->mc_io, 0, priv->mc_token, 0, &dist_cfg);
-	dma_unmap_single(dev, dist_cfg.key_cfg_iova,
-			 DPAA2_CLASSIFIER_DMA_SIZE, DMA_TO_DEVICE);
-	if (err)
-		dev_err(dev, "dpni_set_rx_tc_dist() error %d\n", err);
-
-err_dma_map:
-err_prep_key:
-	kfree(dma_mem);
-	return err;
-}
-
-/* Bind the DPNI to its needed objects and resources: buffer pool, DPIOs,
- * frame queues and channels
- */
-static int bind_dpni(struct dpaa2_eth_priv *priv)
-{
-	struct net_device *net_dev = priv->net_dev;
-	struct device *dev = net_dev->dev.parent;
-	struct dpni_pools_cfg pools_params;
-	struct dpni_error_cfg err_cfg;
-	int err = 0;
-	int i;
-
-	pools_params.num_dpbp = 1;
-	pools_params.pools[0].dpbp_id = priv->dpbp_dev->obj_desc.id;
-	pools_params.pools[0].backup_pool = 0;
-	pools_params.pools[0].buffer_size = DPAA2_ETH_RX_BUF_SIZE;
-	err = dpni_set_pools(priv->mc_io, 0, priv->mc_token, &pools_params);
-	if (err) {
-		dev_err(dev, "dpni_set_pools() failed\n");
-		return err;
-	}
-
-	/* have the interface implicitly distribute traffic based on
-	 * the default hash key
-	 */
-	err = dpaa2_eth_set_hash(net_dev, DPAA2_RXH_DEFAULT);
-	if (err)
-		dev_err(dev, "Failed to configure hashing\n");
-
-	/* Configure handling of error frames */
-	err_cfg.errors = DPAA2_FAS_RX_ERR_MASK;
-	err_cfg.set_frame_annotation = 1;
-	err_cfg.error_action = DPNI_ERROR_ACTION_DISCARD;
-	err = dpni_set_errors_behavior(priv->mc_io, 0, priv->mc_token,
-				       &err_cfg);
-	if (err) {
-		dev_err(dev, "dpni_set_errors_behavior failed\n");
-		return err;
-	}
-
-	/* Configure Rx and Tx conf queues to generate CDANs */
-	for (i = 0; i < priv->num_fqs; i++) {
-		switch (priv->fq[i].type) {
-		case DPAA2_RX_FQ:
-			err = setup_rx_flow(priv, &priv->fq[i]);
-			break;
-		case DPAA2_TX_CONF_FQ:
-			err = setup_tx_flow(priv, &priv->fq[i]);
-			break;
-		default:
-			dev_err(dev, "Invalid FQ type %d\n", priv->fq[i].type);
-			return -EINVAL;
-		}
-		if (err)
-			return err;
-	}
-
-	err = dpni_get_qdid(priv->mc_io, 0, priv->mc_token,
-			    DPNI_QUEUE_TX, &priv->tx_qdid);
-	if (err) {
-		dev_err(dev, "dpni_get_qdid() failed\n");
-		return err;
-	}
-
-	return 0;
-}
-
-/* Allocate rings for storing incoming frame descriptors */
-static int alloc_rings(struct dpaa2_eth_priv *priv)
-{
-	struct net_device *net_dev = priv->net_dev;
-	struct device *dev = net_dev->dev.parent;
-	int i;
-
-	for (i = 0; i < priv->num_channels; i++) {
-		priv->channel[i]->store =
-			dpaa2_io_store_create(DPAA2_ETH_STORE_SIZE, dev);
-		if (!priv->channel[i]->store) {
-			netdev_err(net_dev, "dpaa2_io_store_create() failed\n");
-			goto err_ring;
-		}
-	}
-
-	return 0;
-
-err_ring:
-	for (i = 0; i < priv->num_channels; i++) {
-		if (!priv->channel[i]->store)
-			break;
-		dpaa2_io_store_destroy(priv->channel[i]->store);
-	}
-
-	return -ENOMEM;
-}
-
-static void free_rings(struct dpaa2_eth_priv *priv)
-{
-	int i;
-
-	for (i = 0; i < priv->num_channels; i++)
-		dpaa2_io_store_destroy(priv->channel[i]->store);
-}
-
-static int set_mac_addr(struct dpaa2_eth_priv *priv)
-{
-	struct net_device *net_dev = priv->net_dev;
-	struct device *dev = net_dev->dev.parent;
-	u8 mac_addr[ETH_ALEN], dpni_mac_addr[ETH_ALEN];
-	int err;
-
-	/* Get firmware address, if any */
-	err = dpni_get_port_mac_addr(priv->mc_io, 0, priv->mc_token, mac_addr);
-	if (err) {
-		dev_err(dev, "dpni_get_port_mac_addr() failed\n");
-		return err;
-	}
-
-	/* Get DPNI attributes address, if any */
-	err = dpni_get_primary_mac_addr(priv->mc_io, 0, priv->mc_token,
-					dpni_mac_addr);
-	if (err) {
-		dev_err(dev, "dpni_get_primary_mac_addr() failed\n");
-		return err;
-	}
-
-	/* First check if firmware has any address configured by bootloader */
-	if (!is_zero_ether_addr(mac_addr)) {
-		/* If the DPMAC addr != DPNI addr, update it */
-		if (!ether_addr_equal(mac_addr, dpni_mac_addr)) {
-			err = dpni_set_primary_mac_addr(priv->mc_io, 0,
-							priv->mc_token,
-							mac_addr);
-			if (err) {
-				dev_err(dev, "dpni_set_primary_mac_addr() failed\n");
-				return err;
-			}
-		}
-		memcpy(net_dev->dev_addr, mac_addr, net_dev->addr_len);
-	} else if (is_zero_ether_addr(dpni_mac_addr)) {
-		/* No MAC address configured, fill in net_dev->dev_addr
-		 * with a random one
-		 */
-		eth_hw_addr_random(net_dev);
-		dev_dbg_once(dev, "device(s) have all-zero hwaddr, replaced with random\n");
-
-		err = dpni_set_primary_mac_addr(priv->mc_io, 0, priv->mc_token,
-						net_dev->dev_addr);
-		if (err) {
-			dev_err(dev, "dpni_set_primary_mac_addr() failed\n");
-			return err;
-		}
-
-		/* Override NET_ADDR_RANDOM set by eth_hw_addr_random(); for all
-		 * practical purposes, this will be our "permanent" mac address,
-		 * at least until the next reboot. This move will also permit
-		 * register_netdevice() to properly fill up net_dev->perm_addr.
-		 */
-		net_dev->addr_assign_type = NET_ADDR_PERM;
-	} else {
-		/* NET_ADDR_PERM is default, all we have to do is
-		 * fill in the device addr.
-		 */
-		memcpy(net_dev->dev_addr, dpni_mac_addr, net_dev->addr_len);
-	}
-
-	return 0;
-}
-
-static int netdev_init(struct net_device *net_dev)
-{
-	struct device *dev = net_dev->dev.parent;
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	u8 bcast_addr[ETH_ALEN];
-	u8 num_queues;
-	int err;
-
-	net_dev->netdev_ops = &dpaa2_eth_ops;
-
-	err = set_mac_addr(priv);
-	if (err)
-		return err;
-
-	/* Explicitly add the broadcast address to the MAC filtering table */
-	eth_broadcast_addr(bcast_addr);
-	err = dpni_add_mac_addr(priv->mc_io, 0, priv->mc_token, bcast_addr);
-	if (err) {
-		dev_err(dev, "dpni_add_mac_addr() failed\n");
-		return err;
-	}
-
-	/* Set MTU upper limit; lower limit is 68B (default value) */
-	net_dev->max_mtu = DPAA2_ETH_MAX_MTU;
-	err = dpni_set_max_frame_length(priv->mc_io, 0, priv->mc_token,
-					DPAA2_ETH_MFL);
-	if (err) {
-		dev_err(dev, "dpni_set_max_frame_length() failed\n");
-		return err;
-	}
-
-	/* Set actual number of queues in the net device */
-	num_queues = dpaa2_eth_queue_count(priv);
-	err = netif_set_real_num_tx_queues(net_dev, num_queues);
-	if (err) {
-		dev_err(dev, "netif_set_real_num_tx_queues() failed\n");
-		return err;
-	}
-	err = netif_set_real_num_rx_queues(net_dev, num_queues);
-	if (err) {
-		dev_err(dev, "netif_set_real_num_rx_queues() failed\n");
-		return err;
-	}
-
-	/* Our .ndo_init will be called herein */
-	err = register_netdev(net_dev);
-	if (err < 0) {
-		dev_err(dev, "register_netdev() failed\n");
-		return err;
-	}
-
-	return 0;
-}
-
-static int poll_link_state(void *arg)
-{
-	struct dpaa2_eth_priv *priv = (struct dpaa2_eth_priv *)arg;
-	int err;
-
-	while (!kthread_should_stop()) {
-		err = link_state_update(priv);
-		if (unlikely(err))
-			return err;
-
-		msleep(DPAA2_ETH_LINK_STATE_REFRESH);
-	}
-
-	return 0;
-}
-
-static irqreturn_t dpni_irq0_handler_thread(int irq_num, void *arg)
-{
-	u32 status = ~0;
-	struct device *dev = (struct device *)arg;
-	struct fsl_mc_device *dpni_dev = to_fsl_mc_device(dev);
-	struct net_device *net_dev = dev_get_drvdata(dev);
-	int err;
-
-	err = dpni_get_irq_status(dpni_dev->mc_io, 0, dpni_dev->mc_handle,
-				  DPNI_IRQ_INDEX, &status);
-	if (unlikely(err)) {
-		netdev_err(net_dev, "Can't get irq status (err %d)\n", err);
-		return IRQ_HANDLED;
-	}
-
-	if (status & DPNI_IRQ_EVENT_LINK_CHANGED)
-		link_state_update(netdev_priv(net_dev));
-
-	return IRQ_HANDLED;
-}
-
-static int setup_irqs(struct fsl_mc_device *ls_dev)
-{
-	int err = 0;
-	struct fsl_mc_device_irq *irq;
-
-	err = fsl_mc_allocate_irqs(ls_dev);
-	if (err) {
-		dev_err(&ls_dev->dev, "MC irqs allocation failed\n");
-		return err;
-	}
-
-	irq = ls_dev->irqs[0];
-	err = devm_request_threaded_irq(&ls_dev->dev, irq->msi_desc->irq,
-					NULL, dpni_irq0_handler_thread,
-					IRQF_NO_SUSPEND | IRQF_ONESHOT,
-					dev_name(&ls_dev->dev), &ls_dev->dev);
-	if (err < 0) {
-		dev_err(&ls_dev->dev, "devm_request_threaded_irq(): %d\n", err);
-		goto free_mc_irq;
-	}
-
-	err = dpni_set_irq_mask(ls_dev->mc_io, 0, ls_dev->mc_handle,
-				DPNI_IRQ_INDEX, DPNI_IRQ_EVENT_LINK_CHANGED);
-	if (err < 0) {
-		dev_err(&ls_dev->dev, "dpni_set_irq_mask(): %d\n", err);
-		goto free_irq;
-	}
-
-	err = dpni_set_irq_enable(ls_dev->mc_io, 0, ls_dev->mc_handle,
-				  DPNI_IRQ_INDEX, 1);
-	if (err < 0) {
-		dev_err(&ls_dev->dev, "dpni_set_irq_enable(): %d\n", err);
-		goto free_irq;
-	}
-
-	return 0;
-
-free_irq:
-	devm_free_irq(&ls_dev->dev, irq->msi_desc->irq, &ls_dev->dev);
-free_mc_irq:
-	fsl_mc_free_irqs(ls_dev);
-
-	return err;
-}
-
-static void add_ch_napi(struct dpaa2_eth_priv *priv)
-{
-	int i;
-	struct dpaa2_eth_channel *ch;
-
-	for (i = 0; i < priv->num_channels; i++) {
-		ch = priv->channel[i];
-		/* NAPI weight *MUST* be a multiple of DPAA2_ETH_STORE_SIZE */
-		netif_napi_add(priv->net_dev, &ch->napi, dpaa2_eth_poll,
-			       NAPI_POLL_WEIGHT);
-	}
-}
-
-static void del_ch_napi(struct dpaa2_eth_priv *priv)
-{
-	int i;
-	struct dpaa2_eth_channel *ch;
-
-	for (i = 0; i < priv->num_channels; i++) {
-		ch = priv->channel[i];
-		netif_napi_del(&ch->napi);
-	}
-}
-
-static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev)
-{
-	struct device *dev;
-	struct net_device *net_dev = NULL;
-	struct dpaa2_eth_priv *priv = NULL;
-	int err = 0;
-
-	dev = &dpni_dev->dev;
-
-	/* Net device */
-	net_dev = alloc_etherdev_mq(sizeof(*priv), DPAA2_ETH_MAX_TX_QUEUES);
-	if (!net_dev) {
-		dev_err(dev, "alloc_etherdev_mq() failed\n");
-		return -ENOMEM;
-	}
-
-	SET_NETDEV_DEV(net_dev, dev);
-	dev_set_drvdata(dev, net_dev);
-
-	priv = netdev_priv(net_dev);
-	priv->net_dev = net_dev;
-
-	priv->iommu_domain = iommu_get_domain_for_dev(dev);
-
-	/* Obtain a MC portal */
-	err = fsl_mc_portal_allocate(dpni_dev, FSL_MC_IO_ATOMIC_CONTEXT_PORTAL,
-				     &priv->mc_io);
-	if (err) {
-		if (err == -ENXIO)
-			err = -EPROBE_DEFER;
-		else
-			dev_err(dev, "MC portal allocation failed\n");
-		goto err_portal_alloc;
-	}
-
-	/* MC objects initialization and configuration */
-	err = setup_dpni(dpni_dev);
-	if (err)
-		goto err_dpni_setup;
-
-	err = setup_dpio(priv);
-	if (err)
-		goto err_dpio_setup;
-
-	setup_fqs(priv);
-
-	err = setup_dpbp(priv);
-	if (err)
-		goto err_dpbp_setup;
-
-	err = bind_dpni(priv);
-	if (err)
-		goto err_bind;
-
-	/* Add a NAPI context for each channel */
-	add_ch_napi(priv);
-
-	/* Percpu statistics */
-	priv->percpu_stats = alloc_percpu(*priv->percpu_stats);
-	if (!priv->percpu_stats) {
-		dev_err(dev, "alloc_percpu(percpu_stats) failed\n");
-		err = -ENOMEM;
-		goto err_alloc_percpu_stats;
-	}
-	priv->percpu_extras = alloc_percpu(*priv->percpu_extras);
-	if (!priv->percpu_extras) {
-		dev_err(dev, "alloc_percpu(percpu_extras) failed\n");
-		err = -ENOMEM;
-		goto err_alloc_percpu_extras;
-	}
-
-	err = netdev_init(net_dev);
-	if (err)
-		goto err_netdev_init;
-
-	/* Configure checksum offload based on current interface flags */
-	err = set_rx_csum(priv, !!(net_dev->features & NETIF_F_RXCSUM));
-	if (err)
-		goto err_csum;
-
-	err = set_tx_csum(priv, !!(net_dev->features &
-				   (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM)));
-	if (err)
-		goto err_csum;
-
-	err = alloc_rings(priv);
-	if (err)
-		goto err_alloc_rings;
-
-	net_dev->ethtool_ops = &dpaa2_ethtool_ops;
-
-	err = setup_irqs(dpni_dev);
-	if (err) {
-		netdev_warn(net_dev, "Failed to set link interrupt, fall back to polling\n");
-		priv->poll_thread = kthread_run(poll_link_state, priv,
-						"%s_poll_link", net_dev->name);
-		if (IS_ERR(priv->poll_thread)) {
-			netdev_err(net_dev, "Error starting polling thread\n");
-			goto err_poll_thread;
-		}
-		priv->do_link_poll = true;
-	}
-
-	dev_info(dev, "Probed interface %s\n", net_dev->name);
-	return 0;
-
-err_poll_thread:
-	free_rings(priv);
-err_alloc_rings:
-err_csum:
-	unregister_netdev(net_dev);
-err_netdev_init:
-	free_percpu(priv->percpu_extras);
-err_alloc_percpu_extras:
-	free_percpu(priv->percpu_stats);
-err_alloc_percpu_stats:
-	del_ch_napi(priv);
-err_bind:
-	free_dpbp(priv);
-err_dpbp_setup:
-	free_dpio(priv);
-err_dpio_setup:
-	free_dpni(priv);
-err_dpni_setup:
-	fsl_mc_portal_free(priv->mc_io);
-err_portal_alloc:
-	dev_set_drvdata(dev, NULL);
-	free_netdev(net_dev);
-
-	return err;
-}
-
-static int dpaa2_eth_remove(struct fsl_mc_device *ls_dev)
-{
-	struct device *dev;
-	struct net_device *net_dev;
-	struct dpaa2_eth_priv *priv;
-
-	dev = &ls_dev->dev;
-	net_dev = dev_get_drvdata(dev);
-	priv = netdev_priv(net_dev);
-
-	unregister_netdev(net_dev);
-
-	if (priv->do_link_poll)
-		kthread_stop(priv->poll_thread);
-	else
-		fsl_mc_free_irqs(ls_dev);
-
-	free_rings(priv);
-	free_percpu(priv->percpu_stats);
-	free_percpu(priv->percpu_extras);
-
-	del_ch_napi(priv);
-	free_dpbp(priv);
-	free_dpio(priv);
-	free_dpni(priv);
-
-	fsl_mc_portal_free(priv->mc_io);
-
-	free_netdev(net_dev);
-
-	dev_dbg(net_dev->dev.parent, "Removed interface %s\n", net_dev->name);
-
-	return 0;
-}
-
-static const struct fsl_mc_device_id dpaa2_eth_match_id_table[] = {
-	{
-		.vendor = FSL_MC_VENDOR_FREESCALE,
-		.obj_type = "dpni",
-	},
-	{ .vendor = 0x0 }
-};
-MODULE_DEVICE_TABLE(fslmc, dpaa2_eth_match_id_table);
-
-static struct fsl_mc_driver dpaa2_eth_driver = {
-	.driver = {
-		.name = KBUILD_MODNAME,
-		.owner = THIS_MODULE,
-	},
-	.probe = dpaa2_eth_probe,
-	.remove = dpaa2_eth_remove,
-	.match_id_table = dpaa2_eth_match_id_table
-};
-
-module_fsl_mc_driver(dpaa2_eth_driver);
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h
deleted file mode 100644
index 1f86a78..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
-/* Copyright 2014-2016 Freescale Semiconductor Inc.
- * Copyright 2016 NXP
- */
-
-#ifndef __DPAA2_ETH_H
-#define __DPAA2_ETH_H
-
-#include <linux/netdevice.h>
-#include <linux/if_vlan.h>
-#include <linux/fsl/mc.h>
-
-#include <soc/fsl/dpaa2-io.h>
-#include <soc/fsl/dpaa2-fd.h>
-#include "dpni.h"
-#include "dpni-cmd.h"
-
-#include "dpaa2-eth-trace.h"
-
-#define DPAA2_WRIOP_VERSION(x, y, z) ((x) << 10 | (y) << 5 | (z) << 0)
-
-#define DPAA2_ETH_STORE_SIZE		16
-
-/* Maximum number of scatter-gather entries in an ingress frame,
- * considering the maximum receive frame size is 64K
- */
-#define DPAA2_ETH_MAX_SG_ENTRIES	((64 * 1024) / DPAA2_ETH_RX_BUF_SIZE)
-
-/* Maximum acceptable MTU value. It is in direct relation with the hardware
- * enforced Max Frame Length (currently 10k).
- */
-#define DPAA2_ETH_MFL			(10 * 1024)
-#define DPAA2_ETH_MAX_MTU		(DPAA2_ETH_MFL - VLAN_ETH_HLEN)
-/* Convert L3 MTU to L2 MFL */
-#define DPAA2_ETH_L2_MAX_FRM(mtu)	((mtu) + VLAN_ETH_HLEN)
-
-/* Set the taildrop threshold (in bytes) to allow the enqueue of several jumbo
- * frames in the Rx queues (length of the current frame is not
- * taken into account when making the taildrop decision)
- */
-#define DPAA2_ETH_TAILDROP_THRESH	(64 * 1024)
-
-/* Buffer quota per queue. Must be large enough such that for minimum sized
- * frames taildrop kicks in before the bpool gets depleted, so we compute
- * how many 64B frames fit inside the taildrop threshold and add a margin
- * to accommodate the buffer refill delay.
- */
-#define DPAA2_ETH_MAX_FRAMES_PER_QUEUE	(DPAA2_ETH_TAILDROP_THRESH / 64)
-#define DPAA2_ETH_NUM_BUFS		(DPAA2_ETH_MAX_FRAMES_PER_QUEUE + 256)
-#define DPAA2_ETH_REFILL_THRESH		DPAA2_ETH_MAX_FRAMES_PER_QUEUE
-
-/* Maximum number of buffers that can be acquired/released through a single
- * QBMan command
- */
-#define DPAA2_ETH_BUFS_PER_CMD		7
-
-/* Hardware requires alignment for ingress/egress buffer addresses */
-#define DPAA2_ETH_TX_BUF_ALIGN		64
-
-#define DPAA2_ETH_RX_BUF_SIZE		2048
-#define DPAA2_ETH_SKB_SIZE \
-	(DPAA2_ETH_RX_BUF_SIZE + SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
-
-/* Hardware annotation area in RX/TX buffers */
-#define DPAA2_ETH_RX_HWA_SIZE		64
-#define DPAA2_ETH_TX_HWA_SIZE		128
-
-/* PTP nominal frequency 1GHz */
-#define DPAA2_PTP_CLK_PERIOD_NS		1
-
-/* Due to a limitation in WRIOP 1.0.0, the RX buffer data must be aligned
- * to 256B. For newer revisions, the requirement is only for 64B alignment
- */
-#define DPAA2_ETH_RX_BUF_ALIGN_REV1	256
-#define DPAA2_ETH_RX_BUF_ALIGN		64
-
-/* We are accommodating a skb backpointer and some S/G info
- * in the frame's software annotation. The hardware
- * options are either 0 or 64, so we choose the latter.
- */
-#define DPAA2_ETH_SWA_SIZE		64
-
-/* Must keep this struct smaller than DPAA2_ETH_SWA_SIZE */
-struct dpaa2_eth_swa {
-	struct sk_buff *skb;
-	struct scatterlist *scl;
-	int num_sg;
-	int sgt_size;
-};
-
-/* Annotation valid bits in FD FRC */
-#define DPAA2_FD_FRC_FASV		0x8000
-#define DPAA2_FD_FRC_FAEADV		0x4000
-#define DPAA2_FD_FRC_FAPRV		0x2000
-#define DPAA2_FD_FRC_FAIADV		0x1000
-#define DPAA2_FD_FRC_FASWOV		0x0800
-#define DPAA2_FD_FRC_FAICFDV		0x0400
-
-/* Error bits in FD CTRL */
-#define DPAA2_FD_RX_ERR_MASK		(FD_CTRL_SBE | FD_CTRL_FAERR)
-#define DPAA2_FD_TX_ERR_MASK		(FD_CTRL_UFD	| \
-					 FD_CTRL_SBE	| \
-					 FD_CTRL_FSE	| \
-					 FD_CTRL_FAERR)
-
-/* Annotation bits in FD CTRL */
-#define DPAA2_FD_CTRL_ASAL		0x00020000	/* ASAL = 128B */
-
-/* Frame annotation status */
-struct dpaa2_fas {
-	u8 reserved;
-	u8 ppid;
-	__le16 ifpid;
-	__le32 status;
-};
-
-/* Frame annotation status word is located in the first 8 bytes
- * of the buffer's hardware annoatation area
- */
-#define DPAA2_FAS_OFFSET		0
-#define DPAA2_FAS_SIZE			(sizeof(struct dpaa2_fas))
-
-/* Timestamp is located in the next 8 bytes of the buffer's
- * hardware annotation area
- */
-#define DPAA2_TS_OFFSET			0x8
-
-/* Frame annotation egress action descriptor */
-#define DPAA2_FAEAD_OFFSET		0x58
-
-struct dpaa2_faead {
-	__le32 conf_fqid;
-	__le32 ctrl;
-};
-
-#define DPAA2_FAEAD_A2V			0x20000000
-#define DPAA2_FAEAD_UPDV		0x00001000
-#define DPAA2_FAEAD_UPD			0x00000010
-
-/* Accessors for the hardware annotation fields that we use */
-static inline void *dpaa2_get_hwa(void *buf_addr, bool swa)
-{
-	return buf_addr + (swa ? DPAA2_ETH_SWA_SIZE : 0);
-}
-
-static inline struct dpaa2_fas *dpaa2_get_fas(void *buf_addr, bool swa)
-{
-	return dpaa2_get_hwa(buf_addr, swa) + DPAA2_FAS_OFFSET;
-}
-
-static inline __le64 *dpaa2_get_ts(void *buf_addr, bool swa)
-{
-	return dpaa2_get_hwa(buf_addr, swa) + DPAA2_TS_OFFSET;
-}
-
-static inline struct dpaa2_faead *dpaa2_get_faead(void *buf_addr, bool swa)
-{
-	return dpaa2_get_hwa(buf_addr, swa) + DPAA2_FAEAD_OFFSET;
-}
-
-/* Error and status bits in the frame annotation status word */
-/* Debug frame, otherwise supposed to be discarded */
-#define DPAA2_FAS_DISC			0x80000000
-/* MACSEC frame */
-#define DPAA2_FAS_MS			0x40000000
-#define DPAA2_FAS_PTP			0x08000000
-/* Ethernet multicast frame */
-#define DPAA2_FAS_MC			0x04000000
-/* Ethernet broadcast frame */
-#define DPAA2_FAS_BC			0x02000000
-#define DPAA2_FAS_KSE			0x00040000
-#define DPAA2_FAS_EOFHE			0x00020000
-#define DPAA2_FAS_MNLE			0x00010000
-#define DPAA2_FAS_TIDE			0x00008000
-#define DPAA2_FAS_PIEE			0x00004000
-/* Frame length error */
-#define DPAA2_FAS_FLE			0x00002000
-/* Frame physical error */
-#define DPAA2_FAS_FPE			0x00001000
-#define DPAA2_FAS_PTE			0x00000080
-#define DPAA2_FAS_ISP			0x00000040
-#define DPAA2_FAS_PHE			0x00000020
-#define DPAA2_FAS_BLE			0x00000010
-/* L3 csum validation performed */
-#define DPAA2_FAS_L3CV			0x00000008
-/* L3 csum error */
-#define DPAA2_FAS_L3CE			0x00000004
-/* L4 csum validation performed */
-#define DPAA2_FAS_L4CV			0x00000002
-/* L4 csum error */
-#define DPAA2_FAS_L4CE			0x00000001
-/* Possible errors on the ingress path */
-#define DPAA2_FAS_RX_ERR_MASK		(DPAA2_FAS_KSE		| \
-					 DPAA2_FAS_EOFHE	| \
-					 DPAA2_FAS_MNLE		| \
-					 DPAA2_FAS_TIDE		| \
-					 DPAA2_FAS_PIEE		| \
-					 DPAA2_FAS_FLE		| \
-					 DPAA2_FAS_FPE		| \
-					 DPAA2_FAS_PTE		| \
-					 DPAA2_FAS_ISP		| \
-					 DPAA2_FAS_PHE		| \
-					 DPAA2_FAS_BLE		| \
-					 DPAA2_FAS_L3CE		| \
-					 DPAA2_FAS_L4CE)
-
-/* Time in milliseconds between link state updates */
-#define DPAA2_ETH_LINK_STATE_REFRESH	1000
-
-/* Number of times to retry a frame enqueue before giving up.
- * Value determined empirically, in order to minimize the number
- * of frames dropped on Tx
- */
-#define DPAA2_ETH_ENQUEUE_RETRIES	10
-
-/* Driver statistics, other than those in struct rtnl_link_stats64.
- * These are usually collected per-CPU and aggregated by ethtool.
- */
-struct dpaa2_eth_drv_stats {
-	__u64	tx_conf_frames;
-	__u64	tx_conf_bytes;
-	__u64	tx_sg_frames;
-	__u64	tx_sg_bytes;
-	__u64	tx_reallocs;
-	__u64	rx_sg_frames;
-	__u64	rx_sg_bytes;
-	/* Enqueues retried due to portal busy */
-	__u64	tx_portal_busy;
-};
-
-/* Per-FQ statistics */
-struct dpaa2_eth_fq_stats {
-	/* Number of frames received on this queue */
-	__u64 frames;
-};
-
-/* Per-channel statistics */
-struct dpaa2_eth_ch_stats {
-	/* Volatile dequeues retried due to portal busy */
-	__u64 dequeue_portal_busy;
-	/* Number of CDANs; useful to estimate avg NAPI len */
-	__u64 cdan;
-	/* Number of frames received on queues from this channel */
-	__u64 frames;
-	/* Pull errors */
-	__u64 pull_err;
-};
-
-/* Maximum number of queues associated with a DPNI */
-#define DPAA2_ETH_MAX_RX_QUEUES		16
-#define DPAA2_ETH_MAX_TX_QUEUES		16
-#define DPAA2_ETH_MAX_QUEUES		(DPAA2_ETH_MAX_RX_QUEUES + \
-					DPAA2_ETH_MAX_TX_QUEUES)
-
-#define DPAA2_ETH_MAX_DPCONS		16
-
-enum dpaa2_eth_fq_type {
-	DPAA2_RX_FQ = 0,
-	DPAA2_TX_CONF_FQ,
-};
-
-struct dpaa2_eth_priv;
-
-struct dpaa2_eth_fq {
-	u32 fqid;
-	u32 tx_qdbin;
-	u16 flowid;
-	int target_cpu;
-	struct dpaa2_eth_channel *channel;
-	enum dpaa2_eth_fq_type type;
-
-	void (*consume)(struct dpaa2_eth_priv *,
-			struct dpaa2_eth_channel *,
-			const struct dpaa2_fd *,
-			struct napi_struct *,
-			u16 queue_id);
-	struct dpaa2_eth_fq_stats stats;
-};
-
-struct dpaa2_eth_channel {
-	struct dpaa2_io_notification_ctx nctx;
-	struct fsl_mc_device *dpcon;
-	int dpcon_id;
-	int ch_id;
-	struct napi_struct napi;
-	struct dpaa2_io *dpio;
-	struct dpaa2_io_store *store;
-	struct dpaa2_eth_priv *priv;
-	int buf_count;
-	struct dpaa2_eth_ch_stats stats;
-};
-
-struct dpaa2_eth_hash_fields {
-	u64 rxnfc_field;
-	enum net_prot cls_prot;
-	int cls_field;
-	int size;
-};
-
-/* Driver private data */
-struct dpaa2_eth_priv {
-	struct net_device *net_dev;
-
-	u8 num_fqs;
-	struct dpaa2_eth_fq fq[DPAA2_ETH_MAX_QUEUES];
-
-	u8 num_channels;
-	struct dpaa2_eth_channel *channel[DPAA2_ETH_MAX_DPCONS];
-
-	struct dpni_attr dpni_attrs;
-	u16 dpni_ver_major;
-	u16 dpni_ver_minor;
-	u16 tx_data_offset;
-
-	struct fsl_mc_device *dpbp_dev;
-	u16 bpid;
-	struct iommu_domain *iommu_domain;
-
-	bool tx_tstamp; /* Tx timestamping enabled */
-	bool rx_tstamp; /* Rx timestamping enabled */
-
-	u16 tx_qdid;
-	u16 rx_buf_align;
-	struct fsl_mc_io *mc_io;
-	/* Cores which have an affine DPIO/DPCON.
-	 * This is the cpu set on which Rx and Tx conf frames are processed
-	 */
-	struct cpumask dpio_cpumask;
-
-	/* Standard statistics */
-	struct rtnl_link_stats64 __percpu *percpu_stats;
-	/* Extra stats, in addition to the ones known by the kernel */
-	struct dpaa2_eth_drv_stats __percpu *percpu_extras;
-
-	u16 mc_token;
-
-	struct dpni_link_state link_state;
-	bool do_link_poll;
-	struct task_struct *poll_thread;
-
-	/* enabled ethtool hashing bits */
-	u64 rx_hash_fields;
-};
-
-#define DPAA2_RXH_SUPPORTED	(RXH_L2DA | RXH_VLAN | RXH_L3_PROTO \
-				| RXH_IP_SRC | RXH_IP_DST | RXH_L4_B_0_1 \
-				| RXH_L4_B_2_3)
-
-/* default Rx hash options, set during probing */
-#define DPAA2_RXH_DEFAULT	(RXH_L3_PROTO | RXH_IP_SRC | RXH_IP_DST | \
-				 RXH_L4_B_0_1 | RXH_L4_B_2_3)
-
-#define dpaa2_eth_hash_enabled(priv)	\
-	((priv)->dpni_attrs.num_queues > 1)
-
-/* Required by struct dpni_rx_tc_dist_cfg::key_cfg_iova */
-#define DPAA2_CLASSIFIER_DMA_SIZE 256
-
-extern const struct ethtool_ops dpaa2_ethtool_ops;
-extern int dpaa2_phc_index;
-
-static inline int dpaa2_eth_cmp_dpni_ver(struct dpaa2_eth_priv *priv,
-					 u16 ver_major, u16 ver_minor)
-{
-	if (priv->dpni_ver_major == ver_major)
-		return priv->dpni_ver_minor - ver_minor;
-	return priv->dpni_ver_major - ver_major;
-}
-
-/* Hardware only sees DPAA2_ETH_RX_BUF_SIZE, but the skb built around
- * the buffer also needs space for its shared info struct, and we need
- * to allocate enough to accommodate hardware alignment restrictions
- */
-static inline unsigned int dpaa2_eth_buf_raw_size(struct dpaa2_eth_priv *priv)
-{
-	return DPAA2_ETH_SKB_SIZE + priv->rx_buf_align;
-}
-
-static inline
-unsigned int dpaa2_eth_needed_headroom(struct dpaa2_eth_priv *priv,
-				       struct sk_buff *skb)
-{
-	unsigned int headroom = DPAA2_ETH_SWA_SIZE;
-
-	/* For non-linear skbs we have no headroom requirement, as we build a
-	 * SG frame with a newly allocated SGT buffer
-	 */
-	if (skb_is_nonlinear(skb))
-		return 0;
-
-	/* If we have Tx timestamping, need 128B hardware annotation */
-	if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)
-		headroom += DPAA2_ETH_TX_HWA_SIZE;
-
-	return headroom;
-}
-
-/* Extra headroom space requested to hardware, in order to make sure there's
- * no realloc'ing in forwarding scenarios
- */
-static inline unsigned int dpaa2_eth_rx_head_room(struct dpaa2_eth_priv *priv)
-{
-	return priv->tx_data_offset + DPAA2_ETH_TX_BUF_ALIGN -
-	       DPAA2_ETH_RX_HWA_SIZE;
-}
-
-static int dpaa2_eth_queue_count(struct dpaa2_eth_priv *priv)
-{
-	return priv->dpni_attrs.num_queues;
-}
-
-#endif	/* __DPAA2_H */
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-ethtool.c b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-ethtool.c
deleted file mode 100644
index 8056a95..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-ethtool.c
+++ /dev/null
@@ -1,280 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
-/* Copyright 2014-2016 Freescale Semiconductor Inc.
- * Copyright 2016 NXP
- */
-
-#include <linux/net_tstamp.h>
-
-#include "dpni.h"	/* DPNI_LINK_OPT_* */
-#include "dpaa2-eth.h"
-
-/* To be kept in sync with DPNI statistics */
-static char dpaa2_ethtool_stats[][ETH_GSTRING_LEN] = {
-	"[hw] rx frames",
-	"[hw] rx bytes",
-	"[hw] rx mcast frames",
-	"[hw] rx mcast bytes",
-	"[hw] rx bcast frames",
-	"[hw] rx bcast bytes",
-	"[hw] tx frames",
-	"[hw] tx bytes",
-	"[hw] tx mcast frames",
-	"[hw] tx mcast bytes",
-	"[hw] tx bcast frames",
-	"[hw] tx bcast bytes",
-	"[hw] rx filtered frames",
-	"[hw] rx discarded frames",
-	"[hw] rx nobuffer discards",
-	"[hw] tx discarded frames",
-	"[hw] tx confirmed frames",
-};
-
-#define DPAA2_ETH_NUM_STATS	ARRAY_SIZE(dpaa2_ethtool_stats)
-
-static char dpaa2_ethtool_extras[][ETH_GSTRING_LEN] = {
-	/* per-cpu stats */
-	"[drv] tx conf frames",
-	"[drv] tx conf bytes",
-	"[drv] tx sg frames",
-	"[drv] tx sg bytes",
-	"[drv] tx realloc frames",
-	"[drv] rx sg frames",
-	"[drv] rx sg bytes",
-	"[drv] enqueue portal busy",
-	/* Channel stats */
-	"[drv] dequeue portal busy",
-	"[drv] channel pull errors",
-	"[drv] cdan",
-};
-
-#define DPAA2_ETH_NUM_EXTRA_STATS	ARRAY_SIZE(dpaa2_ethtool_extras)
-
-static void dpaa2_eth_get_drvinfo(struct net_device *net_dev,
-				  struct ethtool_drvinfo *drvinfo)
-{
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-
-	strlcpy(drvinfo->driver, KBUILD_MODNAME, sizeof(drvinfo->driver));
-
-	snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version),
-		 "%u.%u", priv->dpni_ver_major, priv->dpni_ver_minor);
-
-	strlcpy(drvinfo->bus_info, dev_name(net_dev->dev.parent->parent),
-		sizeof(drvinfo->bus_info));
-}
-
-static int
-dpaa2_eth_get_link_ksettings(struct net_device *net_dev,
-			     struct ethtool_link_ksettings *link_settings)
-{
-	struct dpni_link_state state = {0};
-	int err = 0;
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-
-	err = dpni_get_link_state(priv->mc_io, 0, priv->mc_token, &state);
-	if (err) {
-		netdev_err(net_dev, "ERROR %d getting link state\n", err);
-		goto out;
-	}
-
-	/* At the moment, we have no way of interrogating the DPMAC
-	 * from the DPNI side - and for that matter there may exist
-	 * no DPMAC at all. So for now we just don't report anything
-	 * beyond the DPNI attributes.
-	 */
-	if (state.options & DPNI_LINK_OPT_AUTONEG)
-		link_settings->base.autoneg = AUTONEG_ENABLE;
-	if (!(state.options & DPNI_LINK_OPT_HALF_DUPLEX))
-		link_settings->base.duplex = DUPLEX_FULL;
-	link_settings->base.speed = state.rate;
-
-out:
-	return err;
-}
-
-#define DPNI_DYNAMIC_LINK_SET_VER_MAJOR		7
-#define DPNI_DYNAMIC_LINK_SET_VER_MINOR		1
-static int
-dpaa2_eth_set_link_ksettings(struct net_device *net_dev,
-			     const struct ethtool_link_ksettings *link_settings)
-{
-	struct dpni_link_cfg cfg = {0};
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	int err = 0;
-
-	/* If using an older MC version, the DPNI must be down
-	 * in order to be able to change link settings. Taking steps to let
-	 * the user know that.
-	 */
-	if (dpaa2_eth_cmp_dpni_ver(priv, DPNI_DYNAMIC_LINK_SET_VER_MAJOR,
-				   DPNI_DYNAMIC_LINK_SET_VER_MINOR) < 0) {
-		if (netif_running(net_dev)) {
-			netdev_info(net_dev, "Interface must be brought down first.\n");
-			return -EACCES;
-		}
-	}
-
-	cfg.rate = link_settings->base.speed;
-	if (link_settings->base.autoneg == AUTONEG_ENABLE)
-		cfg.options |= DPNI_LINK_OPT_AUTONEG;
-	else
-		cfg.options &= ~DPNI_LINK_OPT_AUTONEG;
-	if (link_settings->base.duplex  == DUPLEX_HALF)
-		cfg.options |= DPNI_LINK_OPT_HALF_DUPLEX;
-	else
-		cfg.options &= ~DPNI_LINK_OPT_HALF_DUPLEX;
-
-	err = dpni_set_link_cfg(priv->mc_io, 0, priv->mc_token, &cfg);
-	if (err)
-		/* ethtool will be loud enough if we return an error; no point
-		 * in putting our own error message on the console by default
-		 */
-		netdev_dbg(net_dev, "ERROR %d setting link cfg\n", err);
-
-	return err;
-}
-
-static void dpaa2_eth_get_strings(struct net_device *netdev, u32 stringset,
-				  u8 *data)
-{
-	u8 *p = data;
-	int i;
-
-	switch (stringset) {
-	case ETH_SS_STATS:
-		for (i = 0; i < DPAA2_ETH_NUM_STATS; i++) {
-			strlcpy(p, dpaa2_ethtool_stats[i], ETH_GSTRING_LEN);
-			p += ETH_GSTRING_LEN;
-		}
-		for (i = 0; i < DPAA2_ETH_NUM_EXTRA_STATS; i++) {
-			strlcpy(p, dpaa2_ethtool_extras[i], ETH_GSTRING_LEN);
-			p += ETH_GSTRING_LEN;
-		}
-		break;
-	}
-}
-
-static int dpaa2_eth_get_sset_count(struct net_device *net_dev, int sset)
-{
-	switch (sset) {
-	case ETH_SS_STATS: /* ethtool_get_stats(), ethtool_get_drvinfo() */
-		return DPAA2_ETH_NUM_STATS + DPAA2_ETH_NUM_EXTRA_STATS;
-	default:
-		return -EOPNOTSUPP;
-	}
-}
-
-/** Fill in hardware counters, as returned by MC.
- */
-static void dpaa2_eth_get_ethtool_stats(struct net_device *net_dev,
-					struct ethtool_stats *stats,
-					u64 *data)
-{
-	int i = 0;
-	int j, k, err;
-	int num_cnt;
-	union dpni_statistics dpni_stats;
-	u64 cdan = 0;
-	u64 portal_busy = 0, pull_err = 0;
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-	struct dpaa2_eth_drv_stats *extras;
-	struct dpaa2_eth_ch_stats *ch_stats;
-
-	memset(data, 0,
-	       sizeof(u64) * (DPAA2_ETH_NUM_STATS + DPAA2_ETH_NUM_EXTRA_STATS));
-
-	/* Print standard counters, from DPNI statistics */
-	for (j = 0; j <= 2; j++) {
-		err = dpni_get_statistics(priv->mc_io, 0, priv->mc_token,
-					  j, &dpni_stats);
-		if (err != 0)
-			netdev_warn(net_dev, "dpni_get_stats(%d) failed\n", j);
-		switch (j) {
-		case 0:
-			num_cnt = sizeof(dpni_stats.page_0) / sizeof(u64);
-			break;
-		case 1:
-			num_cnt = sizeof(dpni_stats.page_1) / sizeof(u64);
-			break;
-		case 2:
-			num_cnt = sizeof(dpni_stats.page_2) / sizeof(u64);
-			break;
-		}
-		for (k = 0; k < num_cnt; k++)
-			*(data + i++) = dpni_stats.raw.counter[k];
-	}
-
-	/* Print per-cpu extra stats */
-	for_each_online_cpu(k) {
-		extras = per_cpu_ptr(priv->percpu_extras, k);
-		for (j = 0; j < sizeof(*extras) / sizeof(__u64); j++)
-			*((__u64 *)data + i + j) += *((__u64 *)extras + j);
-	}
-	i += j;
-
-	for (j = 0; j < priv->num_channels; j++) {
-		ch_stats = &priv->channel[j]->stats;
-		cdan += ch_stats->cdan;
-		portal_busy += ch_stats->dequeue_portal_busy;
-		pull_err += ch_stats->pull_err;
-	}
-
-	*(data + i++) = portal_busy;
-	*(data + i++) = pull_err;
-	*(data + i++) = cdan;
-}
-
-static int dpaa2_eth_get_rxnfc(struct net_device *net_dev,
-			       struct ethtool_rxnfc *rxnfc, u32 *rule_locs)
-{
-	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-
-	switch (rxnfc->cmd) {
-	case ETHTOOL_GRXFH:
-		/* we purposely ignore cmd->flow_type for now, because the
-		 * classifier only supports a single set of fields for all
-		 * protocols
-		 */
-		rxnfc->data = priv->rx_hash_fields;
-		break;
-	case ETHTOOL_GRXRINGS:
-		rxnfc->data = dpaa2_eth_queue_count(priv);
-		break;
-	default:
-		return -EOPNOTSUPP;
-	}
-
-	return 0;
-}
-
-int dpaa2_phc_index = -1;
-EXPORT_SYMBOL(dpaa2_phc_index);
-
-static int dpaa2_eth_get_ts_info(struct net_device *dev,
-				 struct ethtool_ts_info *info)
-{
-	info->so_timestamping = SOF_TIMESTAMPING_TX_HARDWARE |
-				SOF_TIMESTAMPING_RX_HARDWARE |
-				SOF_TIMESTAMPING_RAW_HARDWARE;
-
-	info->phc_index = dpaa2_phc_index;
-
-	info->tx_types = (1 << HWTSTAMP_TX_OFF) |
-			 (1 << HWTSTAMP_TX_ON);
-
-	info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
-			   (1 << HWTSTAMP_FILTER_ALL);
-	return 0;
-}
-
-const struct ethtool_ops dpaa2_ethtool_ops = {
-	.get_drvinfo = dpaa2_eth_get_drvinfo,
-	.get_link = ethtool_op_get_link,
-	.get_link_ksettings = dpaa2_eth_get_link_ksettings,
-	.set_link_ksettings = dpaa2_eth_set_link_ksettings,
-	.get_sset_count = dpaa2_eth_get_sset_count,
-	.get_ethtool_stats = dpaa2_eth_get_ethtool_stats,
-	.get_strings = dpaa2_eth_get_strings,
-	.get_rxnfc = dpaa2_eth_get_rxnfc,
-	.get_ts_info = dpaa2_eth_get_ts_info,
-};
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpkg.h b/drivers/staging/fsl-dpaa2/ethernet/dpkg.h
deleted file mode 100644
index 6de613b1..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/dpkg.h
+++ /dev/null
@@ -1,480 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
-/* Copyright 2013-2015 Freescale Semiconductor Inc.
- */
-#ifndef __FSL_DPKG_H_
-#define __FSL_DPKG_H_
-
-#include <linux/types.h>
-
-/* Data Path Key Generator API
- * Contains initialization APIs and runtime APIs for the Key Generator
- */
-
-/** Key Generator properties */
-
-/**
- * Number of masks per key extraction
- */
-#define DPKG_NUM_OF_MASKS		4
-/**
- * Number of extractions per key profile
- */
-#define DPKG_MAX_NUM_OF_EXTRACTS	10
-
-/**
- * enum dpkg_extract_from_hdr_type - Selecting extraction by header types
- * @DPKG_FROM_HDR: Extract selected bytes from header, by offset
- * @DPKG_FROM_FIELD: Extract selected bytes from header, by offset from field
- * @DPKG_FULL_FIELD: Extract a full field
- */
-enum dpkg_extract_from_hdr_type {
-	DPKG_FROM_HDR = 0,
-	DPKG_FROM_FIELD = 1,
-	DPKG_FULL_FIELD = 2
-};
-
-/**
- * enum dpkg_extract_type - Enumeration for selecting extraction type
- * @DPKG_EXTRACT_FROM_HDR: Extract from the header
- * @DPKG_EXTRACT_FROM_DATA: Extract from data not in specific header
- * @DPKG_EXTRACT_FROM_PARSE: Extract from parser-result;
- *	e.g. can be used to extract header existence;
- *	please refer to 'Parse Result definition' section in the parser BG
- */
-enum dpkg_extract_type {
-	DPKG_EXTRACT_FROM_HDR = 0,
-	DPKG_EXTRACT_FROM_DATA = 1,
-	DPKG_EXTRACT_FROM_PARSE = 3
-};
-
-/**
- * struct dpkg_mask - A structure for defining a single extraction mask
- * @mask: Byte mask for the extracted content
- * @offset: Offset within the extracted content
- */
-struct dpkg_mask {
-	u8 mask;
-	u8 offset;
-};
-
-/* Protocol fields */
-
-/* Ethernet fields */
-#define NH_FLD_ETH_DA				BIT(0)
-#define NH_FLD_ETH_SA				BIT(1)
-#define NH_FLD_ETH_LENGTH			BIT(2)
-#define NH_FLD_ETH_TYPE				BIT(3)
-#define NH_FLD_ETH_FINAL_CKSUM			BIT(4)
-#define NH_FLD_ETH_PADDING			BIT(5)
-#define NH_FLD_ETH_ALL_FIELDS			(BIT(6) - 1)
-
-/* VLAN fields */
-#define NH_FLD_VLAN_VPRI			BIT(0)
-#define NH_FLD_VLAN_CFI				BIT(1)
-#define NH_FLD_VLAN_VID				BIT(2)
-#define NH_FLD_VLAN_LENGTH			BIT(3)
-#define NH_FLD_VLAN_TYPE			BIT(4)
-#define NH_FLD_VLAN_ALL_FIELDS			(BIT(5) - 1)
-
-#define NH_FLD_VLAN_TCI				(NH_FLD_VLAN_VPRI | \
-						 NH_FLD_VLAN_CFI | \
-						 NH_FLD_VLAN_VID)
-
-/* IP (generic) fields */
-#define NH_FLD_IP_VER				BIT(0)
-#define NH_FLD_IP_DSCP				BIT(2)
-#define NH_FLD_IP_ECN				BIT(3)
-#define NH_FLD_IP_PROTO				BIT(4)
-#define NH_FLD_IP_SRC				BIT(5)
-#define NH_FLD_IP_DST				BIT(6)
-#define NH_FLD_IP_TOS_TC			BIT(7)
-#define NH_FLD_IP_ID				BIT(8)
-#define NH_FLD_IP_ALL_FIELDS			(BIT(9) - 1)
-
-/* IPV4 fields */
-#define NH_FLD_IPV4_VER				BIT(0)
-#define NH_FLD_IPV4_HDR_LEN			BIT(1)
-#define NH_FLD_IPV4_TOS				BIT(2)
-#define NH_FLD_IPV4_TOTAL_LEN			BIT(3)
-#define NH_FLD_IPV4_ID				BIT(4)
-#define NH_FLD_IPV4_FLAG_D			BIT(5)
-#define NH_FLD_IPV4_FLAG_M			BIT(6)
-#define NH_FLD_IPV4_OFFSET			BIT(7)
-#define NH_FLD_IPV4_TTL				BIT(8)
-#define NH_FLD_IPV4_PROTO			BIT(9)
-#define NH_FLD_IPV4_CKSUM			BIT(10)
-#define NH_FLD_IPV4_SRC_IP			BIT(11)
-#define NH_FLD_IPV4_DST_IP			BIT(12)
-#define NH_FLD_IPV4_OPTS			BIT(13)
-#define NH_FLD_IPV4_OPTS_COUNT			BIT(14)
-#define NH_FLD_IPV4_ALL_FIELDS			(BIT(15) - 1)
-
-/* IPV6 fields */
-#define NH_FLD_IPV6_VER				BIT(0)
-#define NH_FLD_IPV6_TC				BIT(1)
-#define NH_FLD_IPV6_SRC_IP			BIT(2)
-#define NH_FLD_IPV6_DST_IP			BIT(3)
-#define NH_FLD_IPV6_NEXT_HDR			BIT(4)
-#define NH_FLD_IPV6_FL				BIT(5)
-#define NH_FLD_IPV6_HOP_LIMIT			BIT(6)
-#define NH_FLD_IPV6_ID				BIT(7)
-#define NH_FLD_IPV6_ALL_FIELDS			(BIT(8) - 1)
-
-/* ICMP fields */
-#define NH_FLD_ICMP_TYPE			BIT(0)
-#define NH_FLD_ICMP_CODE			BIT(1)
-#define NH_FLD_ICMP_CKSUM			BIT(2)
-#define NH_FLD_ICMP_ID				BIT(3)
-#define NH_FLD_ICMP_SQ_NUM			BIT(4)
-#define NH_FLD_ICMP_ALL_FIELDS			(BIT(5) - 1)
-
-/* IGMP fields */
-#define NH_FLD_IGMP_VERSION			BIT(0)
-#define NH_FLD_IGMP_TYPE			BIT(1)
-#define NH_FLD_IGMP_CKSUM			BIT(2)
-#define NH_FLD_IGMP_DATA			BIT(3)
-#define NH_FLD_IGMP_ALL_FIELDS			(BIT(4) - 1)
-
-/* TCP fields */
-#define NH_FLD_TCP_PORT_SRC			BIT(0)
-#define NH_FLD_TCP_PORT_DST			BIT(1)
-#define NH_FLD_TCP_SEQ				BIT(2)
-#define NH_FLD_TCP_ACK				BIT(3)
-#define NH_FLD_TCP_OFFSET			BIT(4)
-#define NH_FLD_TCP_FLAGS			BIT(5)
-#define NH_FLD_TCP_WINDOW			BIT(6)
-#define NH_FLD_TCP_CKSUM			BIT(7)
-#define NH_FLD_TCP_URGPTR			BIT(8)
-#define NH_FLD_TCP_OPTS				BIT(9)
-#define NH_FLD_TCP_OPTS_COUNT			BIT(10)
-#define NH_FLD_TCP_ALL_FIELDS			(BIT(11) - 1)
-
-/* UDP fields */
-#define NH_FLD_UDP_PORT_SRC			BIT(0)
-#define NH_FLD_UDP_PORT_DST			BIT(1)
-#define NH_FLD_UDP_LEN				BIT(2)
-#define NH_FLD_UDP_CKSUM			BIT(3)
-#define NH_FLD_UDP_ALL_FIELDS			(BIT(4) - 1)
-
-/* UDP-lite fields */
-#define NH_FLD_UDP_LITE_PORT_SRC		BIT(0)
-#define NH_FLD_UDP_LITE_PORT_DST		BIT(1)
-#define NH_FLD_UDP_LITE_ALL_FIELDS		(BIT(2) - 1)
-
-/* UDP-encap-ESP fields */
-#define NH_FLD_UDP_ENC_ESP_PORT_SRC		BIT(0)
-#define NH_FLD_UDP_ENC_ESP_PORT_DST		BIT(1)
-#define NH_FLD_UDP_ENC_ESP_LEN			BIT(2)
-#define NH_FLD_UDP_ENC_ESP_CKSUM		BIT(3)
-#define NH_FLD_UDP_ENC_ESP_SPI			BIT(4)
-#define NH_FLD_UDP_ENC_ESP_SEQUENCE_NUM		BIT(5)
-#define NH_FLD_UDP_ENC_ESP_ALL_FIELDS		(BIT(6) - 1)
-
-/* SCTP fields */
-#define NH_FLD_SCTP_PORT_SRC			BIT(0)
-#define NH_FLD_SCTP_PORT_DST			BIT(1)
-#define NH_FLD_SCTP_VER_TAG			BIT(2)
-#define NH_FLD_SCTP_CKSUM			BIT(3)
-#define NH_FLD_SCTP_ALL_FIELDS			(BIT(4) - 1)
-
-/* DCCP fields */
-#define NH_FLD_DCCP_PORT_SRC			BIT(0)
-#define NH_FLD_DCCP_PORT_DST			BIT(1)
-#define NH_FLD_DCCP_ALL_FIELDS			(BIT(2) - 1)
-
-/* IPHC fields */
-#define NH_FLD_IPHC_CID				BIT(0)
-#define NH_FLD_IPHC_CID_TYPE			BIT(1)
-#define NH_FLD_IPHC_HCINDEX			BIT(2)
-#define NH_FLD_IPHC_GEN				BIT(3)
-#define NH_FLD_IPHC_D_BIT			BIT(4)
-#define NH_FLD_IPHC_ALL_FIELDS			(BIT(5) - 1)
-
-/* SCTP fields */
-#define NH_FLD_SCTP_CHUNK_DATA_TYPE		BIT(0)
-#define NH_FLD_SCTP_CHUNK_DATA_FLAGS		BIT(1)
-#define NH_FLD_SCTP_CHUNK_DATA_LENGTH		BIT(2)
-#define NH_FLD_SCTP_CHUNK_DATA_TSN		BIT(3)
-#define NH_FLD_SCTP_CHUNK_DATA_STREAM_ID	BIT(4)
-#define NH_FLD_SCTP_CHUNK_DATA_STREAM_SQN	BIT(5)
-#define NH_FLD_SCTP_CHUNK_DATA_PAYLOAD_PID	BIT(6)
-#define NH_FLD_SCTP_CHUNK_DATA_UNORDERED	BIT(7)
-#define NH_FLD_SCTP_CHUNK_DATA_BEGGINING	BIT(8)
-#define NH_FLD_SCTP_CHUNK_DATA_END		BIT(9)
-#define NH_FLD_SCTP_CHUNK_DATA_ALL_FIELDS	(BIT(10) - 1)
-
-/* L2TPV2 fields */
-#define NH_FLD_L2TPV2_TYPE_BIT			BIT(0)
-#define NH_FLD_L2TPV2_LENGTH_BIT		BIT(1)
-#define NH_FLD_L2TPV2_SEQUENCE_BIT		BIT(2)
-#define NH_FLD_L2TPV2_OFFSET_BIT		BIT(3)
-#define NH_FLD_L2TPV2_PRIORITY_BIT		BIT(4)
-#define NH_FLD_L2TPV2_VERSION			BIT(5)
-#define NH_FLD_L2TPV2_LEN			BIT(6)
-#define NH_FLD_L2TPV2_TUNNEL_ID			BIT(7)
-#define NH_FLD_L2TPV2_SESSION_ID		BIT(8)
-#define NH_FLD_L2TPV2_NS			BIT(9)
-#define NH_FLD_L2TPV2_NR			BIT(10)
-#define NH_FLD_L2TPV2_OFFSET_SIZE		BIT(11)
-#define NH_FLD_L2TPV2_FIRST_BYTE		BIT(12)
-#define NH_FLD_L2TPV2_ALL_FIELDS		(BIT(13) - 1)
-
-/* L2TPV3 fields */
-#define NH_FLD_L2TPV3_CTRL_TYPE_BIT		BIT(0)
-#define NH_FLD_L2TPV3_CTRL_LENGTH_BIT		BIT(1)
-#define NH_FLD_L2TPV3_CTRL_SEQUENCE_BIT		BIT(2)
-#define NH_FLD_L2TPV3_CTRL_VERSION		BIT(3)
-#define NH_FLD_L2TPV3_CTRL_LENGTH		BIT(4)
-#define NH_FLD_L2TPV3_CTRL_CONTROL		BIT(5)
-#define NH_FLD_L2TPV3_CTRL_SENT			BIT(6)
-#define NH_FLD_L2TPV3_CTRL_RECV			BIT(7)
-#define NH_FLD_L2TPV3_CTRL_FIRST_BYTE		BIT(8)
-#define NH_FLD_L2TPV3_CTRL_ALL_FIELDS		(BIT(9) - 1)
-
-#define NH_FLD_L2TPV3_SESS_TYPE_BIT		BIT(0)
-#define NH_FLD_L2TPV3_SESS_VERSION		BIT(1)
-#define NH_FLD_L2TPV3_SESS_ID			BIT(2)
-#define NH_FLD_L2TPV3_SESS_COOKIE		BIT(3)
-#define NH_FLD_L2TPV3_SESS_ALL_FIELDS		(BIT(4) - 1)
-
-/* PPP fields */
-#define NH_FLD_PPP_PID				BIT(0)
-#define NH_FLD_PPP_COMPRESSED			BIT(1)
-#define NH_FLD_PPP_ALL_FIELDS			(BIT(2) - 1)
-
-/* PPPoE fields */
-#define NH_FLD_PPPOE_VER			BIT(0)
-#define NH_FLD_PPPOE_TYPE			BIT(1)
-#define NH_FLD_PPPOE_CODE			BIT(2)
-#define NH_FLD_PPPOE_SID			BIT(3)
-#define NH_FLD_PPPOE_LEN			BIT(4)
-#define NH_FLD_PPPOE_SESSION			BIT(5)
-#define NH_FLD_PPPOE_PID			BIT(6)
-#define NH_FLD_PPPOE_ALL_FIELDS			(BIT(7) - 1)
-
-/* PPP-Mux fields */
-#define NH_FLD_PPPMUX_PID			BIT(0)
-#define NH_FLD_PPPMUX_CKSUM			BIT(1)
-#define NH_FLD_PPPMUX_COMPRESSED		BIT(2)
-#define NH_FLD_PPPMUX_ALL_FIELDS		(BIT(3) - 1)
-
-/* PPP-Mux sub-frame fields */
-#define NH_FLD_PPPMUX_SUBFRM_PFF		BIT(0)
-#define NH_FLD_PPPMUX_SUBFRM_LXT		BIT(1)
-#define NH_FLD_PPPMUX_SUBFRM_LEN		BIT(2)
-#define NH_FLD_PPPMUX_SUBFRM_PID		BIT(3)
-#define NH_FLD_PPPMUX_SUBFRM_USE_PID		BIT(4)
-#define NH_FLD_PPPMUX_SUBFRM_ALL_FIELDS		(BIT(5) - 1)
-
-/* LLC fields */
-#define NH_FLD_LLC_DSAP				BIT(0)
-#define NH_FLD_LLC_SSAP				BIT(1)
-#define NH_FLD_LLC_CTRL				BIT(2)
-#define NH_FLD_LLC_ALL_FIELDS			(BIT(3) - 1)
-
-/* NLPID fields */
-#define NH_FLD_NLPID_NLPID			BIT(0)
-#define NH_FLD_NLPID_ALL_FIELDS			(BIT(1) - 1)
-
-/* SNAP fields */
-#define NH_FLD_SNAP_OUI				BIT(0)
-#define NH_FLD_SNAP_PID				BIT(1)
-#define NH_FLD_SNAP_ALL_FIELDS			(BIT(2) - 1)
-
-/* LLC SNAP fields */
-#define NH_FLD_LLC_SNAP_TYPE			BIT(0)
-#define NH_FLD_LLC_SNAP_ALL_FIELDS		(BIT(1) - 1)
-
-/* ARP fields */
-#define NH_FLD_ARP_HTYPE			BIT(0)
-#define NH_FLD_ARP_PTYPE			BIT(1)
-#define NH_FLD_ARP_HLEN				BIT(2)
-#define NH_FLD_ARP_PLEN				BIT(3)
-#define NH_FLD_ARP_OPER				BIT(4)
-#define NH_FLD_ARP_SHA				BIT(5)
-#define NH_FLD_ARP_SPA				BIT(6)
-#define NH_FLD_ARP_THA				BIT(7)
-#define NH_FLD_ARP_TPA				BIT(8)
-#define NH_FLD_ARP_ALL_FIELDS			(BIT(9) - 1)
-
-/* RFC2684 fields */
-#define NH_FLD_RFC2684_LLC			BIT(0)
-#define NH_FLD_RFC2684_NLPID			BIT(1)
-#define NH_FLD_RFC2684_OUI			BIT(2)
-#define NH_FLD_RFC2684_PID			BIT(3)
-#define NH_FLD_RFC2684_VPN_OUI			BIT(4)
-#define NH_FLD_RFC2684_VPN_IDX			BIT(5)
-#define NH_FLD_RFC2684_ALL_FIELDS		(BIT(6) - 1)
-
-/* User defined fields */
-#define NH_FLD_USER_DEFINED_SRCPORT		BIT(0)
-#define NH_FLD_USER_DEFINED_PCDID		BIT(1)
-#define NH_FLD_USER_DEFINED_ALL_FIELDS		(BIT(2) - 1)
-
-/* Payload fields */
-#define NH_FLD_PAYLOAD_BUFFER			BIT(0)
-#define NH_FLD_PAYLOAD_SIZE			BIT(1)
-#define NH_FLD_MAX_FRM_SIZE			BIT(2)
-#define NH_FLD_MIN_FRM_SIZE			BIT(3)
-#define NH_FLD_PAYLOAD_TYPE			BIT(4)
-#define NH_FLD_FRAME_SIZE			BIT(5)
-#define NH_FLD_PAYLOAD_ALL_FIELDS		(BIT(6) - 1)
-
-/* GRE fields */
-#define NH_FLD_GRE_TYPE				BIT(0)
-#define NH_FLD_GRE_ALL_FIELDS			(BIT(1) - 1)
-
-/* MINENCAP fields */
-#define NH_FLD_MINENCAP_SRC_IP			BIT(0)
-#define NH_FLD_MINENCAP_DST_IP			BIT(1)
-#define NH_FLD_MINENCAP_TYPE			BIT(2)
-#define NH_FLD_MINENCAP_ALL_FIELDS		(BIT(3) - 1)
-
-/* IPSEC AH fields */
-#define NH_FLD_IPSEC_AH_SPI			BIT(0)
-#define NH_FLD_IPSEC_AH_NH			BIT(1)
-#define NH_FLD_IPSEC_AH_ALL_FIELDS		(BIT(2) - 1)
-
-/* IPSEC ESP fields */
-#define NH_FLD_IPSEC_ESP_SPI			BIT(0)
-#define NH_FLD_IPSEC_ESP_SEQUENCE_NUM		BIT(1)
-#define NH_FLD_IPSEC_ESP_ALL_FIELDS		(BIT(2) - 1)
-
-/* MPLS fields */
-#define NH_FLD_MPLS_LABEL_STACK			BIT(0)
-#define NH_FLD_MPLS_LABEL_STACK_ALL_FIELDS	(BIT(1) - 1)
-
-/* MACSEC fields */
-#define NH_FLD_MACSEC_SECTAG			BIT(0)
-#define NH_FLD_MACSEC_ALL_FIELDS		(BIT(1) - 1)
-
-/* GTP fields */
-#define NH_FLD_GTP_TEID				BIT(0)
-
-/* Supported protocols */
-enum net_prot {
-	NET_PROT_NONE = 0,
-	NET_PROT_PAYLOAD,
-	NET_PROT_ETH,
-	NET_PROT_VLAN,
-	NET_PROT_IPV4,
-	NET_PROT_IPV6,
-	NET_PROT_IP,
-	NET_PROT_TCP,
-	NET_PROT_UDP,
-	NET_PROT_UDP_LITE,
-	NET_PROT_IPHC,
-	NET_PROT_SCTP,
-	NET_PROT_SCTP_CHUNK_DATA,
-	NET_PROT_PPPOE,
-	NET_PROT_PPP,
-	NET_PROT_PPPMUX,
-	NET_PROT_PPPMUX_SUBFRM,
-	NET_PROT_L2TPV2,
-	NET_PROT_L2TPV3_CTRL,
-	NET_PROT_L2TPV3_SESS,
-	NET_PROT_LLC,
-	NET_PROT_LLC_SNAP,
-	NET_PROT_NLPID,
-	NET_PROT_SNAP,
-	NET_PROT_MPLS,
-	NET_PROT_IPSEC_AH,
-	NET_PROT_IPSEC_ESP,
-	NET_PROT_UDP_ENC_ESP, /* RFC 3948 */
-	NET_PROT_MACSEC,
-	NET_PROT_GRE,
-	NET_PROT_MINENCAP,
-	NET_PROT_DCCP,
-	NET_PROT_ICMP,
-	NET_PROT_IGMP,
-	NET_PROT_ARP,
-	NET_PROT_CAPWAP_DATA,
-	NET_PROT_CAPWAP_CTRL,
-	NET_PROT_RFC2684,
-	NET_PROT_ICMPV6,
-	NET_PROT_FCOE,
-	NET_PROT_FIP,
-	NET_PROT_ISCSI,
-	NET_PROT_GTP,
-	NET_PROT_USER_DEFINED_L2,
-	NET_PROT_USER_DEFINED_L3,
-	NET_PROT_USER_DEFINED_L4,
-	NET_PROT_USER_DEFINED_L5,
-	NET_PROT_USER_DEFINED_SHIM1,
-	NET_PROT_USER_DEFINED_SHIM2,
-
-	NET_PROT_DUMMY_LAST
-};
-
-/**
- * struct dpkg_extract - A structure for defining a single extraction
- * @type: Determines how the union below is interpreted:
- *	DPKG_EXTRACT_FROM_HDR: selects 'from_hdr';
- *	DPKG_EXTRACT_FROM_DATA: selects 'from_data';
- *	DPKG_EXTRACT_FROM_PARSE: selects 'from_parse'
- * @extract: Selects extraction method
- * @extract.from_hdr: Used when 'type = DPKG_EXTRACT_FROM_HDR'
- * @extract.from_data: Used when 'type = DPKG_EXTRACT_FROM_DATA'
- * @extract.from_parse:  Used when 'type = DPKG_EXTRACT_FROM_PARSE'
- * @extract.from_hdr.prot: Any of the supported headers
- * @extract.from_hdr.type: Defines the type of header extraction:
- *	DPKG_FROM_HDR: use size & offset below;
- *	DPKG_FROM_FIELD: use field, size and offset below;
- *	DPKG_FULL_FIELD: use field below
- * @extract.from_hdr.field: One of the supported fields (NH_FLD_)
- * @extract.from_hdr.size: Size in bytes
- * @extract.from_hdr.offset: Byte offset
- * @extract.from_hdr.hdr_index: Clear for cases not listed below;
- *	Used for protocols that may have more than a single
- *	header, 0 indicates an outer header;
- *	Supported protocols (possible values):
- *	NET_PROT_VLAN (0, HDR_INDEX_LAST);
- *	NET_PROT_MPLS (0, 1, HDR_INDEX_LAST);
- *	NET_PROT_IP(0, HDR_INDEX_LAST);
- *	NET_PROT_IPv4(0, HDR_INDEX_LAST);
- *	NET_PROT_IPv6(0, HDR_INDEX_LAST);
- * @extract.from_data.size: Size in bytes
- * @extract.from_data.offset: Byte offset
- * @extract.from_parse.size: Size in bytes
- * @extract.from_parse.offset: Byte offset
- * @num_of_byte_masks: Defines the number of valid entries in the array below;
- *		This is	also the number of bytes to be used as masks
- * @masks: Masks parameters
- */
-struct dpkg_extract {
-	enum dpkg_extract_type type;
-	union {
-		struct {
-			enum net_prot			prot;
-			enum dpkg_extract_from_hdr_type type;
-			u32			field;
-			u8			size;
-			u8			offset;
-			u8			hdr_index;
-		} from_hdr;
-		struct {
-			u8 size;
-			u8 offset;
-		} from_data;
-		struct {
-			u8 size;
-			u8 offset;
-		} from_parse;
-	} extract;
-
-	u8		num_of_byte_masks;
-	struct dpkg_mask	masks[DPKG_NUM_OF_MASKS];
-};
-
-/**
- * struct dpkg_profile_cfg - A structure for defining a full Key Generation
- *				profile (rule)
- * @num_extracts: Defines the number of valid entries in the array below
- * @extracts: Array of required extractions
- */
-struct dpkg_profile_cfg {
-	u8 num_extracts;
-	struct dpkg_extract extracts[DPKG_MAX_NUM_OF_EXTRACTS];
-};
-
-#endif /* __FSL_DPKG_H_ */
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpni-cmd.h b/drivers/staging/fsl-dpaa2/ethernet/dpni-cmd.h
deleted file mode 100644
index 83698ab..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/dpni-cmd.h
+++ /dev/null
@@ -1,518 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
-/* Copyright 2013-2016 Freescale Semiconductor Inc.
- * Copyright 2016 NXP
- */
-#ifndef _FSL_DPNI_CMD_H
-#define _FSL_DPNI_CMD_H
-
-#include "dpni.h"
-
-/* DPNI Version */
-#define DPNI_VER_MAJOR				7
-#define DPNI_VER_MINOR				0
-#define DPNI_CMD_BASE_VERSION			1
-#define DPNI_CMD_ID_OFFSET			4
-
-#define DPNI_CMD(id)	(((id) << DPNI_CMD_ID_OFFSET) | DPNI_CMD_BASE_VERSION)
-
-#define DPNI_CMDID_OPEN					DPNI_CMD(0x801)
-#define DPNI_CMDID_CLOSE				DPNI_CMD(0x800)
-#define DPNI_CMDID_CREATE				DPNI_CMD(0x901)
-#define DPNI_CMDID_DESTROY				DPNI_CMD(0x900)
-#define DPNI_CMDID_GET_API_VERSION			DPNI_CMD(0xa01)
-
-#define DPNI_CMDID_ENABLE				DPNI_CMD(0x002)
-#define DPNI_CMDID_DISABLE				DPNI_CMD(0x003)
-#define DPNI_CMDID_GET_ATTR				DPNI_CMD(0x004)
-#define DPNI_CMDID_RESET				DPNI_CMD(0x005)
-#define DPNI_CMDID_IS_ENABLED				DPNI_CMD(0x006)
-
-#define DPNI_CMDID_SET_IRQ				DPNI_CMD(0x010)
-#define DPNI_CMDID_GET_IRQ				DPNI_CMD(0x011)
-#define DPNI_CMDID_SET_IRQ_ENABLE			DPNI_CMD(0x012)
-#define DPNI_CMDID_GET_IRQ_ENABLE			DPNI_CMD(0x013)
-#define DPNI_CMDID_SET_IRQ_MASK				DPNI_CMD(0x014)
-#define DPNI_CMDID_GET_IRQ_MASK				DPNI_CMD(0x015)
-#define DPNI_CMDID_GET_IRQ_STATUS			DPNI_CMD(0x016)
-#define DPNI_CMDID_CLEAR_IRQ_STATUS			DPNI_CMD(0x017)
-
-#define DPNI_CMDID_SET_POOLS				DPNI_CMD(0x200)
-#define DPNI_CMDID_SET_ERRORS_BEHAVIOR			DPNI_CMD(0x20B)
-
-#define DPNI_CMDID_GET_QDID				DPNI_CMD(0x210)
-#define DPNI_CMDID_GET_TX_DATA_OFFSET			DPNI_CMD(0x212)
-#define DPNI_CMDID_GET_LINK_STATE			DPNI_CMD(0x215)
-#define DPNI_CMDID_SET_MAX_FRAME_LENGTH			DPNI_CMD(0x216)
-#define DPNI_CMDID_GET_MAX_FRAME_LENGTH			DPNI_CMD(0x217)
-#define DPNI_CMDID_SET_LINK_CFG				DPNI_CMD(0x21A)
-#define DPNI_CMDID_SET_TX_SHAPING			DPNI_CMD(0x21B)
-
-#define DPNI_CMDID_SET_MCAST_PROMISC			DPNI_CMD(0x220)
-#define DPNI_CMDID_GET_MCAST_PROMISC			DPNI_CMD(0x221)
-#define DPNI_CMDID_SET_UNICAST_PROMISC			DPNI_CMD(0x222)
-#define DPNI_CMDID_GET_UNICAST_PROMISC			DPNI_CMD(0x223)
-#define DPNI_CMDID_SET_PRIM_MAC				DPNI_CMD(0x224)
-#define DPNI_CMDID_GET_PRIM_MAC				DPNI_CMD(0x225)
-#define DPNI_CMDID_ADD_MAC_ADDR				DPNI_CMD(0x226)
-#define DPNI_CMDID_REMOVE_MAC_ADDR			DPNI_CMD(0x227)
-#define DPNI_CMDID_CLR_MAC_FILTERS			DPNI_CMD(0x228)
-
-#define DPNI_CMDID_SET_RX_TC_DIST			DPNI_CMD(0x235)
-
-#define DPNI_CMDID_ADD_FS_ENT				DPNI_CMD(0x244)
-#define DPNI_CMDID_REMOVE_FS_ENT			DPNI_CMD(0x245)
-#define DPNI_CMDID_CLR_FS_ENT				DPNI_CMD(0x246)
-
-#define DPNI_CMDID_GET_STATISTICS			DPNI_CMD(0x25D)
-#define DPNI_CMDID_GET_QUEUE				DPNI_CMD(0x25F)
-#define DPNI_CMDID_SET_QUEUE				DPNI_CMD(0x260)
-#define DPNI_CMDID_GET_TAILDROP				DPNI_CMD(0x261)
-#define DPNI_CMDID_SET_TAILDROP				DPNI_CMD(0x262)
-
-#define DPNI_CMDID_GET_PORT_MAC_ADDR			DPNI_CMD(0x263)
-
-#define DPNI_CMDID_GET_BUFFER_LAYOUT			DPNI_CMD(0x264)
-#define DPNI_CMDID_SET_BUFFER_LAYOUT			DPNI_CMD(0x265)
-
-#define DPNI_CMDID_SET_TX_CONFIRMATION_MODE		DPNI_CMD(0x266)
-#define DPNI_CMDID_SET_CONGESTION_NOTIFICATION		DPNI_CMD(0x267)
-#define DPNI_CMDID_GET_CONGESTION_NOTIFICATION		DPNI_CMD(0x268)
-#define DPNI_CMDID_SET_EARLY_DROP			DPNI_CMD(0x269)
-#define DPNI_CMDID_GET_EARLY_DROP			DPNI_CMD(0x26A)
-#define DPNI_CMDID_GET_OFFLOAD				DPNI_CMD(0x26B)
-#define DPNI_CMDID_SET_OFFLOAD				DPNI_CMD(0x26C)
-
-/* Macros for accessing command fields smaller than 1byte */
-#define DPNI_MASK(field)	\
-	GENMASK(DPNI_##field##_SHIFT + DPNI_##field##_SIZE - 1, \
-		DPNI_##field##_SHIFT)
-
-#define dpni_set_field(var, field, val)	\
-	((var) |= (((val) << DPNI_##field##_SHIFT) & DPNI_MASK(field)))
-#define dpni_get_field(var, field)	\
-	(((var) & DPNI_MASK(field)) >> DPNI_##field##_SHIFT)
-
-struct dpni_cmd_open {
-	__le32 dpni_id;
-};
-
-#define DPNI_BACKUP_POOL(val, order)	(((val) & 0x1) << (order))
-struct dpni_cmd_set_pools {
-	/* cmd word 0 */
-	u8 num_dpbp;
-	u8 backup_pool_mask;
-	__le16 pad;
-	/* cmd word 0..4 */
-	__le32 dpbp_id[DPNI_MAX_DPBP];
-	/* cmd word 4..6 */
-	__le16 buffer_size[DPNI_MAX_DPBP];
-};
-
-/* The enable indication is always the least significant bit */
-#define DPNI_ENABLE_SHIFT		0
-#define DPNI_ENABLE_SIZE		1
-
-struct dpni_rsp_is_enabled {
-	u8 enabled;
-};
-
-struct dpni_rsp_get_irq {
-	/* response word 0 */
-	__le32 irq_val;
-	__le32 pad;
-	/* response word 1 */
-	__le64 irq_addr;
-	/* response word 2 */
-	__le32 irq_num;
-	__le32 type;
-};
-
-struct dpni_cmd_set_irq_enable {
-	u8 enable;
-	u8 pad[3];
-	u8 irq_index;
-};
-
-struct dpni_cmd_get_irq_enable {
-	__le32 pad;
-	u8 irq_index;
-};
-
-struct dpni_rsp_get_irq_enable {
-	u8 enabled;
-};
-
-struct dpni_cmd_set_irq_mask {
-	__le32 mask;
-	u8 irq_index;
-};
-
-struct dpni_cmd_get_irq_mask {
-	__le32 pad;
-	u8 irq_index;
-};
-
-struct dpni_rsp_get_irq_mask {
-	__le32 mask;
-};
-
-struct dpni_cmd_get_irq_status {
-	__le32 status;
-	u8 irq_index;
-};
-
-struct dpni_rsp_get_irq_status {
-	__le32 status;
-};
-
-struct dpni_cmd_clear_irq_status {
-	__le32 status;
-	u8 irq_index;
-};
-
-struct dpni_rsp_get_attr {
-	/* response word 0 */
-	__le32 options;
-	u8 num_queues;
-	u8 num_tcs;
-	u8 mac_filter_entries;
-	u8 pad0;
-	/* response word 1 */
-	u8 vlan_filter_entries;
-	u8 pad1;
-	u8 qos_entries;
-	u8 pad2;
-	__le16 fs_entries;
-	__le16 pad3;
-	/* response word 2 */
-	u8 qos_key_size;
-	u8 fs_key_size;
-	__le16 wriop_version;
-};
-
-#define DPNI_ERROR_ACTION_SHIFT		0
-#define DPNI_ERROR_ACTION_SIZE		4
-#define DPNI_FRAME_ANN_SHIFT		4
-#define DPNI_FRAME_ANN_SIZE		1
-
-struct dpni_cmd_set_errors_behavior {
-	__le32 errors;
-	/* from least significant bit: error_action:4, set_frame_annotation:1 */
-	u8 flags;
-};
-
-/* There are 3 separate commands for configuring Rx, Tx and Tx confirmation
- * buffer layouts, but they all share the same parameters.
- * If one of the functions changes, below structure needs to be split.
- */
-
-#define DPNI_PASS_TS_SHIFT		0
-#define DPNI_PASS_TS_SIZE		1
-#define DPNI_PASS_PR_SHIFT		1
-#define DPNI_PASS_PR_SIZE		1
-#define DPNI_PASS_FS_SHIFT		2
-#define DPNI_PASS_FS_SIZE		1
-
-struct dpni_cmd_get_buffer_layout {
-	u8 qtype;
-};
-
-struct dpni_rsp_get_buffer_layout {
-	/* response word 0 */
-	u8 pad0[6];
-	/* from LSB: pass_timestamp:1, parser_result:1, frame_status:1 */
-	u8 flags;
-	u8 pad1;
-	/* response word 1 */
-	__le16 private_data_size;
-	__le16 data_align;
-	__le16 head_room;
-	__le16 tail_room;
-};
-
-struct dpni_cmd_set_buffer_layout {
-	/* cmd word 0 */
-	u8 qtype;
-	u8 pad0[3];
-	__le16 options;
-	/* from LSB: pass_timestamp:1, parser_result:1, frame_status:1 */
-	u8 flags;
-	u8 pad1;
-	/* cmd word 1 */
-	__le16 private_data_size;
-	__le16 data_align;
-	__le16 head_room;
-	__le16 tail_room;
-};
-
-struct dpni_cmd_set_offload {
-	u8 pad[3];
-	u8 dpni_offload;
-	__le32 config;
-};
-
-struct dpni_cmd_get_offload {
-	u8 pad[3];
-	u8 dpni_offload;
-};
-
-struct dpni_rsp_get_offload {
-	__le32 pad;
-	__le32 config;
-};
-
-struct dpni_cmd_get_qdid {
-	u8 qtype;
-};
-
-struct dpni_rsp_get_qdid {
-	__le16 qdid;
-};
-
-struct dpni_rsp_get_tx_data_offset {
-	__le16 data_offset;
-};
-
-struct dpni_cmd_get_statistics {
-	u8 page_number;
-};
-
-struct dpni_rsp_get_statistics {
-	__le64 counter[DPNI_STATISTICS_CNT];
-};
-
-struct dpni_cmd_set_link_cfg {
-	/* cmd word 0 */
-	__le64 pad0;
-	/* cmd word 1 */
-	__le32 rate;
-	__le32 pad1;
-	/* cmd word 2 */
-	__le64 options;
-};
-
-#define DPNI_LINK_STATE_SHIFT		0
-#define DPNI_LINK_STATE_SIZE		1
-
-struct dpni_rsp_get_link_state {
-	/* response word 0 */
-	__le32 pad0;
-	/* from LSB: up:1 */
-	u8 flags;
-	u8 pad1[3];
-	/* response word 1 */
-	__le32 rate;
-	__le32 pad2;
-	/* response word 2 */
-	__le64 options;
-};
-
-struct dpni_cmd_set_max_frame_length {
-	__le16 max_frame_length;
-};
-
-struct dpni_rsp_get_max_frame_length {
-	__le16 max_frame_length;
-};
-
-struct dpni_cmd_set_multicast_promisc {
-	u8 enable;
-};
-
-struct dpni_rsp_get_multicast_promisc {
-	u8 enabled;
-};
-
-struct dpni_cmd_set_unicast_promisc {
-	u8 enable;
-};
-
-struct dpni_rsp_get_unicast_promisc {
-	u8 enabled;
-};
-
-struct dpni_cmd_set_primary_mac_addr {
-	__le16 pad;
-	u8 mac_addr[6];
-};
-
-struct dpni_rsp_get_primary_mac_addr {
-	__le16 pad;
-	u8 mac_addr[6];
-};
-
-struct dpni_rsp_get_port_mac_addr {
-	__le16 pad;
-	u8 mac_addr[6];
-};
-
-struct dpni_cmd_add_mac_addr {
-	__le16 pad;
-	u8 mac_addr[6];
-};
-
-struct dpni_cmd_remove_mac_addr {
-	__le16 pad;
-	u8 mac_addr[6];
-};
-
-#define DPNI_UNICAST_FILTERS_SHIFT	0
-#define DPNI_UNICAST_FILTERS_SIZE	1
-#define DPNI_MULTICAST_FILTERS_SHIFT	1
-#define DPNI_MULTICAST_FILTERS_SIZE	1
-
-struct dpni_cmd_clear_mac_filters {
-	/* from LSB: unicast:1, multicast:1 */
-	u8 flags;
-};
-
-#define DPNI_DIST_MODE_SHIFT		0
-#define DPNI_DIST_MODE_SIZE		4
-#define DPNI_MISS_ACTION_SHIFT		4
-#define DPNI_MISS_ACTION_SIZE		4
-
-struct dpni_cmd_set_rx_tc_dist {
-	/* cmd word 0 */
-	__le16 dist_size;
-	u8 tc_id;
-	/* from LSB: dist_mode:4, miss_action:4 */
-	u8 flags;
-	__le16 pad0;
-	__le16 default_flow_id;
-	/* cmd word 1..5 */
-	__le64 pad1[5];
-	/* cmd word 6 */
-	__le64 key_cfg_iova;
-};
-
-/* dpni_set_rx_tc_dist extension (structure of the DMA-able memory at
- * key_cfg_iova)
- */
-struct dpni_mask_cfg {
-	u8 mask;
-	u8 offset;
-};
-
-#define DPNI_EFH_TYPE_SHIFT		0
-#define DPNI_EFH_TYPE_SIZE		4
-#define DPNI_EXTRACT_TYPE_SHIFT		0
-#define DPNI_EXTRACT_TYPE_SIZE		4
-
-struct dpni_dist_extract {
-	/* word 0 */
-	u8 prot;
-	/* EFH type stored in the 4 least significant bits */
-	u8 efh_type;
-	u8 size;
-	u8 offset;
-	__le32 field;
-	/* word 1 */
-	u8 hdr_index;
-	u8 constant;
-	u8 num_of_repeats;
-	u8 num_of_byte_masks;
-	/* Extraction type is stored in the 4 LSBs */
-	u8 extract_type;
-	u8 pad[3];
-	/* word 2 */
-	struct dpni_mask_cfg masks[4];
-};
-
-struct dpni_ext_set_rx_tc_dist {
-	/* extension word 0 */
-	u8 num_extracts;
-	u8 pad[7];
-	/* words 1..25 */
-	struct dpni_dist_extract extracts[DPKG_MAX_NUM_OF_EXTRACTS];
-};
-
-struct dpni_cmd_get_queue {
-	u8 qtype;
-	u8 tc;
-	u8 index;
-};
-
-#define DPNI_DEST_TYPE_SHIFT		0
-#define DPNI_DEST_TYPE_SIZE		4
-#define DPNI_STASH_CTRL_SHIFT		6
-#define DPNI_STASH_CTRL_SIZE		1
-#define DPNI_HOLD_ACTIVE_SHIFT		7
-#define DPNI_HOLD_ACTIVE_SIZE		1
-
-struct dpni_rsp_get_queue {
-	/* response word 0 */
-	__le64 pad0;
-	/* response word 1 */
-	__le32 dest_id;
-	__le16 pad1;
-	u8 dest_prio;
-	/* From LSB: dest_type:4, pad:2, flc_stash_ctrl:1, hold_active:1 */
-	u8 flags;
-	/* response word 2 */
-	__le64 flc;
-	/* response word 3 */
-	__le64 user_context;
-	/* response word 4 */
-	__le32 fqid;
-	__le16 qdbin;
-};
-
-struct dpni_cmd_set_queue {
-	/* cmd word 0 */
-	u8 qtype;
-	u8 tc;
-	u8 index;
-	u8 options;
-	__le32 pad0;
-	/* cmd word 1 */
-	__le32 dest_id;
-	__le16 pad1;
-	u8 dest_prio;
-	u8 flags;
-	/* cmd word 2 */
-	__le64 flc;
-	/* cmd word 3 */
-	__le64 user_context;
-};
-
-struct dpni_cmd_set_taildrop {
-	/* cmd word 0 */
-	u8 congestion_point;
-	u8 qtype;
-	u8 tc;
-	u8 index;
-	__le32 pad0;
-	/* cmd word 1 */
-	/* Only least significant bit is relevant */
-	u8 enable;
-	u8 pad1;
-	u8 units;
-	u8 pad2;
-	__le32 threshold;
-};
-
-struct dpni_cmd_get_taildrop {
-	u8 congestion_point;
-	u8 qtype;
-	u8 tc;
-	u8 index;
-};
-
-struct dpni_rsp_get_taildrop {
-	/* cmd word 0 */
-	__le64 pad0;
-	/* cmd word 1 */
-	/* only least significant bit is relevant */
-	u8 enable;
-	u8 pad1;
-	u8 units;
-	u8 pad2;
-	__le32 threshold;
-};
-
-struct dpni_rsp_get_api_version {
-	__le16 major;
-	__le16 minor;
-};
-
-#endif /* _FSL_DPNI_CMD_H */
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpni.c b/drivers/staging/fsl-dpaa2/ethernet/dpni.c
deleted file mode 100644
index d6ac267..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/dpni.c
+++ /dev/null
@@ -1,1600 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
-/* Copyright 2013-2016 Freescale Semiconductor Inc.
- * Copyright 2016 NXP
- */
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/fsl/mc.h>
-#include "dpni.h"
-#include "dpni-cmd.h"
-
-/**
- * dpni_prepare_key_cfg() - function prepare extract parameters
- * @cfg: defining a full Key Generation profile (rule)
- * @key_cfg_buf: Zeroed 256 bytes of memory before mapping it to DMA
- *
- * This function has to be called before the following functions:
- *	- dpni_set_rx_tc_dist()
- *	- dpni_set_qos_table()
- */
-int dpni_prepare_key_cfg(const struct dpkg_profile_cfg *cfg, u8 *key_cfg_buf)
-{
-	int i, j;
-	struct dpni_ext_set_rx_tc_dist *dpni_ext;
-	struct dpni_dist_extract *extr;
-
-	if (cfg->num_extracts > DPKG_MAX_NUM_OF_EXTRACTS)
-		return -EINVAL;
-
-	dpni_ext = (struct dpni_ext_set_rx_tc_dist *)key_cfg_buf;
-	dpni_ext->num_extracts = cfg->num_extracts;
-
-	for (i = 0; i < cfg->num_extracts; i++) {
-		extr = &dpni_ext->extracts[i];
-
-		switch (cfg->extracts[i].type) {
-		case DPKG_EXTRACT_FROM_HDR:
-			extr->prot = cfg->extracts[i].extract.from_hdr.prot;
-			dpni_set_field(extr->efh_type, EFH_TYPE,
-				       cfg->extracts[i].extract.from_hdr.type);
-			extr->size = cfg->extracts[i].extract.from_hdr.size;
-			extr->offset = cfg->extracts[i].extract.from_hdr.offset;
-			extr->field = cpu_to_le32(
-				cfg->extracts[i].extract.from_hdr.field);
-			extr->hdr_index =
-				cfg->extracts[i].extract.from_hdr.hdr_index;
-			break;
-		case DPKG_EXTRACT_FROM_DATA:
-			extr->size = cfg->extracts[i].extract.from_data.size;
-			extr->offset =
-				cfg->extracts[i].extract.from_data.offset;
-			break;
-		case DPKG_EXTRACT_FROM_PARSE:
-			extr->size = cfg->extracts[i].extract.from_parse.size;
-			extr->offset =
-				cfg->extracts[i].extract.from_parse.offset;
-			break;
-		default:
-			return -EINVAL;
-		}
-
-		extr->num_of_byte_masks = cfg->extracts[i].num_of_byte_masks;
-		dpni_set_field(extr->extract_type, EXTRACT_TYPE,
-			       cfg->extracts[i].type);
-
-		for (j = 0; j < DPKG_NUM_OF_MASKS; j++) {
-			extr->masks[j].mask = cfg->extracts[i].masks[j].mask;
-			extr->masks[j].offset =
-				cfg->extracts[i].masks[j].offset;
-		}
-	}
-
-	return 0;
-}
-
-/**
- * dpni_open() - Open a control session for the specified object
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @dpni_id:	DPNI unique ID
- * @token:	Returned token; use in subsequent API calls
- *
- * This function can be used to open a control session for an
- * already created object; an object may have been declared in
- * the DPL or by calling the dpni_create() function.
- * This function returns a unique authentication token,
- * associated with the specific object ID and the specific MC
- * portal; this token must be used in all subsequent commands for
- * this specific object.
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_open(struct fsl_mc_io *mc_io,
-	      u32 cmd_flags,
-	      int dpni_id,
-	      u16 *token)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_open *cmd_params;
-
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_OPEN,
-					  cmd_flags,
-					  0);
-	cmd_params = (struct dpni_cmd_open *)cmd.params;
-	cmd_params->dpni_id = cpu_to_le32(dpni_id);
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	*token = mc_cmd_hdr_read_token(&cmd);
-
-	return 0;
-}
-
-/**
- * dpni_close() - Close the control session of the object
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- *
- * After this function is called, no further operations are
- * allowed on the object without opening a new control session.
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_close(struct fsl_mc_io *mc_io,
-	       u32 cmd_flags,
-	       u16 token)
-{
-	struct fsl_mc_command cmd = { 0 };
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_CLOSE,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_set_pools() - Set buffer pools configuration
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @cfg:	Buffer pools configuration
- *
- * mandatory for DPNI operation
- * warning:Allowed only when DPNI is disabled
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_pools(struct fsl_mc_io *mc_io,
-		   u32 cmd_flags,
-		   u16 token,
-		   const struct dpni_pools_cfg *cfg)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_pools *cmd_params;
-	int i;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_POOLS,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_pools *)cmd.params;
-	cmd_params->num_dpbp = cfg->num_dpbp;
-	for (i = 0; i < DPNI_MAX_DPBP; i++) {
-		cmd_params->dpbp_id[i] = cpu_to_le32(cfg->pools[i].dpbp_id);
-		cmd_params->buffer_size[i] =
-			cpu_to_le16(cfg->pools[i].buffer_size);
-		cmd_params->backup_pool_mask |=
-			DPNI_BACKUP_POOL(cfg->pools[i].backup_pool, i);
-	}
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_enable() - Enable the DPNI, allow sending and receiving frames.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:		Token of DPNI object
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_enable(struct fsl_mc_io *mc_io,
-		u32 cmd_flags,
-		u16 token)
-{
-	struct fsl_mc_command cmd = { 0 };
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_ENABLE,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_disable() - Disable the DPNI, stop sending and receiving frames.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_disable(struct fsl_mc_io *mc_io,
-		 u32 cmd_flags,
-		 u16 token)
-{
-	struct fsl_mc_command cmd = { 0 };
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_DISABLE,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_is_enabled() - Check if the DPNI is enabled.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @en:		Returns '1' if object is enabled; '0' otherwise
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_is_enabled(struct fsl_mc_io *mc_io,
-		    u32 cmd_flags,
-		    u16 token,
-		    int *en)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_rsp_is_enabled *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_IS_ENABLED,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_is_enabled *)cmd.params;
-	*en = dpni_get_field(rsp_params->enabled, ENABLE);
-
-	return 0;
-}
-
-/**
- * dpni_reset() - Reset the DPNI, returns the object to initial state.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_reset(struct fsl_mc_io *mc_io,
-	       u32 cmd_flags,
-	       u16 token)
-{
-	struct fsl_mc_command cmd = { 0 };
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_RESET,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_set_irq_enable() - Set overall interrupt state.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @irq_index:	The interrupt index to configure
- * @en:		Interrupt state: - enable = 1, disable = 0
- *
- * Allows GPP software to control when interrupts are generated.
- * Each interrupt can have up to 32 causes.  The enable/disable control's the
- * overall interrupt state. if the interrupt is disabled no causes will cause
- * an interrupt.
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_irq_enable(struct fsl_mc_io *mc_io,
-			u32 cmd_flags,
-			u16 token,
-			u8 irq_index,
-			u8 en)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_irq_enable *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_IRQ_ENABLE,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_irq_enable *)cmd.params;
-	dpni_set_field(cmd_params->enable, ENABLE, en);
-	cmd_params->irq_index = irq_index;
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_irq_enable() - Get overall interrupt state
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @irq_index:	The interrupt index to configure
- * @en:		Returned interrupt state - enable = 1, disable = 0
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_irq_enable(struct fsl_mc_io *mc_io,
-			u32 cmd_flags,
-			u16 token,
-			u8 irq_index,
-			u8 *en)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_get_irq_enable *cmd_params;
-	struct dpni_rsp_get_irq_enable *rsp_params;
-
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_IRQ_ENABLE,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_get_irq_enable *)cmd.params;
-	cmd_params->irq_index = irq_index;
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_irq_enable *)cmd.params;
-	*en = dpni_get_field(rsp_params->enabled, ENABLE);
-
-	return 0;
-}
-
-/**
- * dpni_set_irq_mask() - Set interrupt mask.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @irq_index:	The interrupt index to configure
- * @mask:	event mask to trigger interrupt;
- *			each bit:
- *				0 = ignore event
- *				1 = consider event for asserting IRQ
- *
- * Every interrupt can have up to 32 causes and the interrupt model supports
- * masking/unmasking each cause independently
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_irq_mask(struct fsl_mc_io *mc_io,
-		      u32 cmd_flags,
-		      u16 token,
-		      u8 irq_index,
-		      u32 mask)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_irq_mask *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_IRQ_MASK,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_irq_mask *)cmd.params;
-	cmd_params->mask = cpu_to_le32(mask);
-	cmd_params->irq_index = irq_index;
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_irq_mask() - Get interrupt mask.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @irq_index:	The interrupt index to configure
- * @mask:	Returned event mask to trigger interrupt
- *
- * Every interrupt can have up to 32 causes and the interrupt model supports
- * masking/unmasking each cause independently
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_irq_mask(struct fsl_mc_io *mc_io,
-		      u32 cmd_flags,
-		      u16 token,
-		      u8 irq_index,
-		      u32 *mask)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_get_irq_mask *cmd_params;
-	struct dpni_rsp_get_irq_mask *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_IRQ_MASK,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_get_irq_mask *)cmd.params;
-	cmd_params->irq_index = irq_index;
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_irq_mask *)cmd.params;
-	*mask = le32_to_cpu(rsp_params->mask);
-
-	return 0;
-}
-
-/**
- * dpni_get_irq_status() - Get the current status of any pending interrupts.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @irq_index:	The interrupt index to configure
- * @status:	Returned interrupts status - one bit per cause:
- *			0 = no interrupt pending
- *			1 = interrupt pending
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_irq_status(struct fsl_mc_io *mc_io,
-			u32 cmd_flags,
-			u16 token,
-			u8 irq_index,
-			u32 *status)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_get_irq_status *cmd_params;
-	struct dpni_rsp_get_irq_status *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_IRQ_STATUS,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_get_irq_status *)cmd.params;
-	cmd_params->status = cpu_to_le32(*status);
-	cmd_params->irq_index = irq_index;
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_irq_status *)cmd.params;
-	*status = le32_to_cpu(rsp_params->status);
-
-	return 0;
-}
-
-/**
- * dpni_clear_irq_status() - Clear a pending interrupt's status
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @irq_index:	The interrupt index to configure
- * @status:	bits to clear (W1C) - one bit per cause:
- *			0 = don't change
- *			1 = clear status bit
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_clear_irq_status(struct fsl_mc_io *mc_io,
-			  u32 cmd_flags,
-			  u16 token,
-			  u8 irq_index,
-			  u32 status)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_clear_irq_status *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_CLEAR_IRQ_STATUS,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_clear_irq_status *)cmd.params;
-	cmd_params->irq_index = irq_index;
-	cmd_params->status = cpu_to_le32(status);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_attributes() - Retrieve DPNI attributes.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @attr:	Object's attributes
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_attributes(struct fsl_mc_io *mc_io,
-			u32 cmd_flags,
-			u16 token,
-			struct dpni_attr *attr)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_rsp_get_attr *rsp_params;
-
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_ATTR,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_attr *)cmd.params;
-	attr->options = le32_to_cpu(rsp_params->options);
-	attr->num_queues = rsp_params->num_queues;
-	attr->num_tcs = rsp_params->num_tcs;
-	attr->mac_filter_entries = rsp_params->mac_filter_entries;
-	attr->vlan_filter_entries = rsp_params->vlan_filter_entries;
-	attr->qos_entries = rsp_params->qos_entries;
-	attr->fs_entries = le16_to_cpu(rsp_params->fs_entries);
-	attr->qos_key_size = rsp_params->qos_key_size;
-	attr->fs_key_size = rsp_params->fs_key_size;
-	attr->wriop_version = le16_to_cpu(rsp_params->wriop_version);
-
-	return 0;
-}
-
-/**
- * dpni_set_errors_behavior() - Set errors behavior
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @cfg:	Errors configuration
- *
- * this function may be called numerous times with different
- * error masks
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_errors_behavior(struct fsl_mc_io *mc_io,
-			     u32 cmd_flags,
-			     u16 token,
-			     struct dpni_error_cfg *cfg)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_errors_behavior *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_ERRORS_BEHAVIOR,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_errors_behavior *)cmd.params;
-	cmd_params->errors = cpu_to_le32(cfg->errors);
-	dpni_set_field(cmd_params->flags, ERROR_ACTION, cfg->error_action);
-	dpni_set_field(cmd_params->flags, FRAME_ANN, cfg->set_frame_annotation);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_buffer_layout() - Retrieve buffer layout attributes.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @qtype:	Type of queue to retrieve configuration for
- * @layout:	Returns buffer layout attributes
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_buffer_layout(struct fsl_mc_io *mc_io,
-			   u32 cmd_flags,
-			   u16 token,
-			   enum dpni_queue_type qtype,
-			   struct dpni_buffer_layout *layout)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_get_buffer_layout *cmd_params;
-	struct dpni_rsp_get_buffer_layout *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_BUFFER_LAYOUT,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_get_buffer_layout *)cmd.params;
-	cmd_params->qtype = qtype;
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_buffer_layout *)cmd.params;
-	layout->pass_timestamp = dpni_get_field(rsp_params->flags, PASS_TS);
-	layout->pass_parser_result = dpni_get_field(rsp_params->flags, PASS_PR);
-	layout->pass_frame_status = dpni_get_field(rsp_params->flags, PASS_FS);
-	layout->private_data_size = le16_to_cpu(rsp_params->private_data_size);
-	layout->data_align = le16_to_cpu(rsp_params->data_align);
-	layout->data_head_room = le16_to_cpu(rsp_params->head_room);
-	layout->data_tail_room = le16_to_cpu(rsp_params->tail_room);
-
-	return 0;
-}
-
-/**
- * dpni_set_buffer_layout() - Set buffer layout configuration.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @qtype:	Type of queue this configuration applies to
- * @layout:	Buffer layout configuration
- *
- * Return:	'0' on Success; Error code otherwise.
- *
- * @warning	Allowed only when DPNI is disabled
- */
-int dpni_set_buffer_layout(struct fsl_mc_io *mc_io,
-			   u32 cmd_flags,
-			   u16 token,
-			   enum dpni_queue_type qtype,
-			   const struct dpni_buffer_layout *layout)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_buffer_layout *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_BUFFER_LAYOUT,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_buffer_layout *)cmd.params;
-	cmd_params->qtype = qtype;
-	cmd_params->options = cpu_to_le16(layout->options);
-	dpni_set_field(cmd_params->flags, PASS_TS, layout->pass_timestamp);
-	dpni_set_field(cmd_params->flags, PASS_PR, layout->pass_parser_result);
-	dpni_set_field(cmd_params->flags, PASS_FS, layout->pass_frame_status);
-	cmd_params->private_data_size = cpu_to_le16(layout->private_data_size);
-	cmd_params->data_align = cpu_to_le16(layout->data_align);
-	cmd_params->head_room = cpu_to_le16(layout->data_head_room);
-	cmd_params->tail_room = cpu_to_le16(layout->data_tail_room);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_set_offload() - Set DPNI offload configuration.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @type:	Type of DPNI offload
- * @config:	Offload configuration.
- *		For checksum offloads, non-zero value enables the offload
- *
- * Return:     '0' on Success; Error code otherwise.
- *
- * @warning    Allowed only when DPNI is disabled
- */
-
-int dpni_set_offload(struct fsl_mc_io *mc_io,
-		     u32 cmd_flags,
-		     u16 token,
-		     enum dpni_offload type,
-		     u32 config)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_offload *cmd_params;
-
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_OFFLOAD,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_offload *)cmd.params;
-	cmd_params->dpni_offload = type;
-	cmd_params->config = cpu_to_le32(config);
-
-	return mc_send_command(mc_io, &cmd);
-}
-
-int dpni_get_offload(struct fsl_mc_io *mc_io,
-		     u32 cmd_flags,
-		     u16 token,
-		     enum dpni_offload type,
-		     u32 *config)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_get_offload *cmd_params;
-	struct dpni_rsp_get_offload *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_OFFLOAD,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_get_offload *)cmd.params;
-	cmd_params->dpni_offload = type;
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_offload *)cmd.params;
-	*config = le32_to_cpu(rsp_params->config);
-
-	return 0;
-}
-
-/**
- * dpni_get_qdid() - Get the Queuing Destination ID (QDID) that should be used
- *			for enqueue operations
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @qtype:	Type of queue to receive QDID for
- * @qdid:	Returned virtual QDID value that should be used as an argument
- *			in all enqueue operations
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_qdid(struct fsl_mc_io *mc_io,
-		  u32 cmd_flags,
-		  u16 token,
-		  enum dpni_queue_type qtype,
-		  u16 *qdid)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_get_qdid *cmd_params;
-	struct dpni_rsp_get_qdid *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_QDID,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_get_qdid *)cmd.params;
-	cmd_params->qtype = qtype;
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_qdid *)cmd.params;
-	*qdid = le16_to_cpu(rsp_params->qdid);
-
-	return 0;
-}
-
-/**
- * dpni_get_tx_data_offset() - Get the Tx data offset (from start of buffer)
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @data_offset: Tx data offset (from start of buffer)
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_tx_data_offset(struct fsl_mc_io *mc_io,
-			    u32 cmd_flags,
-			    u16 token,
-			    u16 *data_offset)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_rsp_get_tx_data_offset *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_TX_DATA_OFFSET,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_tx_data_offset *)cmd.params;
-	*data_offset = le16_to_cpu(rsp_params->data_offset);
-
-	return 0;
-}
-
-/**
- * dpni_set_link_cfg() - set the link configuration.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @cfg:	Link configuration
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_link_cfg(struct fsl_mc_io *mc_io,
-		      u32 cmd_flags,
-		      u16 token,
-		      const struct dpni_link_cfg *cfg)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_link_cfg *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_LINK_CFG,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_link_cfg *)cmd.params;
-	cmd_params->rate = cpu_to_le32(cfg->rate);
-	cmd_params->options = cpu_to_le64(cfg->options);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_link_state() - Return the link state (either up or down)
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @state:	Returned link state;
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_link_state(struct fsl_mc_io *mc_io,
-			u32 cmd_flags,
-			u16 token,
-			struct dpni_link_state *state)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_rsp_get_link_state *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_LINK_STATE,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_link_state *)cmd.params;
-	state->up = dpni_get_field(rsp_params->flags, LINK_STATE);
-	state->rate = le32_to_cpu(rsp_params->rate);
-	state->options = le64_to_cpu(rsp_params->options);
-
-	return 0;
-}
-
-/**
- * dpni_set_max_frame_length() - Set the maximum received frame length.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @max_frame_length:	Maximum received frame length (in
- *				bytes); frame is discarded if its
- *				length exceeds this value
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_max_frame_length(struct fsl_mc_io *mc_io,
-			      u32 cmd_flags,
-			      u16 token,
-			      u16 max_frame_length)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_max_frame_length *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_MAX_FRAME_LENGTH,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_max_frame_length *)cmd.params;
-	cmd_params->max_frame_length = cpu_to_le16(max_frame_length);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_max_frame_length() - Get the maximum received frame length.
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @max_frame_length:	Maximum received frame length (in
- *				bytes); frame is discarded if its
- *				length exceeds this value
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_max_frame_length(struct fsl_mc_io *mc_io,
-			      u32 cmd_flags,
-			      u16 token,
-			      u16 *max_frame_length)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_rsp_get_max_frame_length *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_MAX_FRAME_LENGTH,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_max_frame_length *)cmd.params;
-	*max_frame_length = le16_to_cpu(rsp_params->max_frame_length);
-
-	return 0;
-}
-
-/**
- * dpni_set_multicast_promisc() - Enable/disable multicast promiscuous mode
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @en:		Set to '1' to enable; '0' to disable
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_multicast_promisc(struct fsl_mc_io *mc_io,
-			       u32 cmd_flags,
-			       u16 token,
-			       int en)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_multicast_promisc *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_MCAST_PROMISC,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_multicast_promisc *)cmd.params;
-	dpni_set_field(cmd_params->enable, ENABLE, en);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_multicast_promisc() - Get multicast promiscuous mode
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @en:		Returns '1' if enabled; '0' otherwise
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_multicast_promisc(struct fsl_mc_io *mc_io,
-			       u32 cmd_flags,
-			       u16 token,
-			       int *en)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_rsp_get_multicast_promisc *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_MCAST_PROMISC,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_multicast_promisc *)cmd.params;
-	*en = dpni_get_field(rsp_params->enabled, ENABLE);
-
-	return 0;
-}
-
-/**
- * dpni_set_unicast_promisc() - Enable/disable unicast promiscuous mode
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @en:		Set to '1' to enable; '0' to disable
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_unicast_promisc(struct fsl_mc_io *mc_io,
-			     u32 cmd_flags,
-			     u16 token,
-			     int en)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_unicast_promisc *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_UNICAST_PROMISC,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_unicast_promisc *)cmd.params;
-	dpni_set_field(cmd_params->enable, ENABLE, en);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_unicast_promisc() - Get unicast promiscuous mode
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @en:		Returns '1' if enabled; '0' otherwise
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_unicast_promisc(struct fsl_mc_io *mc_io,
-			     u32 cmd_flags,
-			     u16 token,
-			     int *en)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_rsp_get_unicast_promisc *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_UNICAST_PROMISC,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_unicast_promisc *)cmd.params;
-	*en = dpni_get_field(rsp_params->enabled, ENABLE);
-
-	return 0;
-}
-
-/**
- * dpni_set_primary_mac_addr() - Set the primary MAC address
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @mac_addr:	MAC address to set as primary address
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_primary_mac_addr(struct fsl_mc_io *mc_io,
-			      u32 cmd_flags,
-			      u16 token,
-			      const u8 mac_addr[6])
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_primary_mac_addr *cmd_params;
-	int i;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_PRIM_MAC,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_primary_mac_addr *)cmd.params;
-	for (i = 0; i < 6; i++)
-		cmd_params->mac_addr[i] = mac_addr[5 - i];
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_primary_mac_addr() - Get the primary MAC address
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @mac_addr:	Returned MAC address
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_primary_mac_addr(struct fsl_mc_io *mc_io,
-			      u32 cmd_flags,
-			      u16 token,
-			      u8 mac_addr[6])
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_rsp_get_primary_mac_addr *rsp_params;
-	int i, err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_PRIM_MAC,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_primary_mac_addr *)cmd.params;
-	for (i = 0; i < 6; i++)
-		mac_addr[5 - i] = rsp_params->mac_addr[i];
-
-	return 0;
-}
-
-/**
- * dpni_get_port_mac_addr() - Retrieve MAC address associated to the physical
- *			port the DPNI is attached to
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @mac_addr:	MAC address of the physical port, if any, otherwise 0
- *
- * The primary MAC address is not cleared by this operation.
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_port_mac_addr(struct fsl_mc_io *mc_io,
-			   u32 cmd_flags,
-			   u16 token,
-			   u8 mac_addr[6])
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_rsp_get_port_mac_addr *rsp_params;
-	int i, err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_PORT_MAC_ADDR,
-					  cmd_flags,
-					  token);
-
-	/* send command to mc*/
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_port_mac_addr *)cmd.params;
-	for (i = 0; i < 6; i++)
-		mac_addr[5 - i] = rsp_params->mac_addr[i];
-
-	return 0;
-}
-
-/**
- * dpni_add_mac_addr() - Add MAC address filter
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @mac_addr:	MAC address to add
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_add_mac_addr(struct fsl_mc_io *mc_io,
-		      u32 cmd_flags,
-		      u16 token,
-		      const u8 mac_addr[6])
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_add_mac_addr *cmd_params;
-	int i;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_ADD_MAC_ADDR,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_add_mac_addr *)cmd.params;
-	for (i = 0; i < 6; i++)
-		cmd_params->mac_addr[i] = mac_addr[5 - i];
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_remove_mac_addr() - Remove MAC address filter
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @mac_addr:	MAC address to remove
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_remove_mac_addr(struct fsl_mc_io *mc_io,
-			 u32 cmd_flags,
-			 u16 token,
-			 const u8 mac_addr[6])
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_remove_mac_addr *cmd_params;
-	int i;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_REMOVE_MAC_ADDR,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_remove_mac_addr *)cmd.params;
-	for (i = 0; i < 6; i++)
-		cmd_params->mac_addr[i] = mac_addr[5 - i];
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_clear_mac_filters() - Clear all unicast and/or multicast MAC filters
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @unicast:	Set to '1' to clear unicast addresses
- * @multicast:	Set to '1' to clear multicast addresses
- *
- * The primary MAC address is not cleared by this operation.
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_clear_mac_filters(struct fsl_mc_io *mc_io,
-			   u32 cmd_flags,
-			   u16 token,
-			   int unicast,
-			   int multicast)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_clear_mac_filters *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_CLR_MAC_FILTERS,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_clear_mac_filters *)cmd.params;
-	dpni_set_field(cmd_params->flags, UNICAST_FILTERS, unicast);
-	dpni_set_field(cmd_params->flags, MULTICAST_FILTERS, multicast);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_set_rx_tc_dist() - Set Rx traffic class distribution configuration
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @tc_id:	Traffic class selection (0-7)
- * @cfg:	Traffic class distribution configuration
- *
- * warning: if 'dist_mode != DPNI_DIST_MODE_NONE', call dpni_prepare_key_cfg()
- *			first to prepare the key_cfg_iova parameter
- *
- * Return:	'0' on Success; error code otherwise.
- */
-int dpni_set_rx_tc_dist(struct fsl_mc_io *mc_io,
-			u32 cmd_flags,
-			u16 token,
-			u8 tc_id,
-			const struct dpni_rx_tc_dist_cfg *cfg)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_rx_tc_dist *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_RX_TC_DIST,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_rx_tc_dist *)cmd.params;
-	cmd_params->dist_size = cpu_to_le16(cfg->dist_size);
-	cmd_params->tc_id = tc_id;
-	dpni_set_field(cmd_params->flags, DIST_MODE, cfg->dist_mode);
-	dpni_set_field(cmd_params->flags, MISS_ACTION, cfg->fs_cfg.miss_action);
-	cmd_params->default_flow_id = cpu_to_le16(cfg->fs_cfg.default_flow_id);
-	cmd_params->key_cfg_iova = cpu_to_le64(cfg->key_cfg_iova);
-
-	/* send command to mc*/
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_set_queue() - Set queue parameters
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @qtype:	Type of queue - all queue types are supported, although
- *		the command is ignored for Tx
- * @tc:		Traffic class, in range 0 to NUM_TCS - 1
- * @index:	Selects the specific queue out of the set allocated for the
- *		same TC. Value must be in range 0 to NUM_QUEUES - 1
- * @options:	A combination of DPNI_QUEUE_OPT_ values that control what
- *		configuration options are set on the queue
- * @queue:	Queue structure
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_queue(struct fsl_mc_io *mc_io,
-		   u32 cmd_flags,
-		   u16 token,
-		   enum dpni_queue_type qtype,
-		   u8 tc,
-		   u8 index,
-		   u8 options,
-		   const struct dpni_queue *queue)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_queue *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_QUEUE,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_queue *)cmd.params;
-	cmd_params->qtype = qtype;
-	cmd_params->tc = tc;
-	cmd_params->index = index;
-	cmd_params->options = options;
-	cmd_params->dest_id = cpu_to_le32(queue->destination.id);
-	cmd_params->dest_prio = queue->destination.priority;
-	dpni_set_field(cmd_params->flags, DEST_TYPE, queue->destination.type);
-	dpni_set_field(cmd_params->flags, STASH_CTRL, queue->flc.stash_control);
-	dpni_set_field(cmd_params->flags, HOLD_ACTIVE,
-		       queue->destination.hold_active);
-	cmd_params->flc = cpu_to_le64(queue->flc.value);
-	cmd_params->user_context = cpu_to_le64(queue->user_context);
-
-	/* send command to mc */
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_queue() - Get queue parameters
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @qtype:	Type of queue - all queue types are supported
- * @tc:		Traffic class, in range 0 to NUM_TCS - 1
- * @index:	Selects the specific queue out of the set allocated for the
- *		same TC. Value must be in range 0 to NUM_QUEUES - 1
- * @queue:	Queue configuration structure
- * @qid:	Queue identification
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_queue(struct fsl_mc_io *mc_io,
-		   u32 cmd_flags,
-		   u16 token,
-		   enum dpni_queue_type qtype,
-		   u8 tc,
-		   u8 index,
-		   struct dpni_queue *queue,
-		   struct dpni_queue_id *qid)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_get_queue *cmd_params;
-	struct dpni_rsp_get_queue *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_QUEUE,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_get_queue *)cmd.params;
-	cmd_params->qtype = qtype;
-	cmd_params->tc = tc;
-	cmd_params->index = index;
-
-	/* send command to mc */
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_queue *)cmd.params;
-	queue->destination.id = le32_to_cpu(rsp_params->dest_id);
-	queue->destination.priority = rsp_params->dest_prio;
-	queue->destination.type = dpni_get_field(rsp_params->flags,
-						 DEST_TYPE);
-	queue->flc.stash_control = dpni_get_field(rsp_params->flags,
-						  STASH_CTRL);
-	queue->destination.hold_active = dpni_get_field(rsp_params->flags,
-							HOLD_ACTIVE);
-	queue->flc.value = le64_to_cpu(rsp_params->flc);
-	queue->user_context = le64_to_cpu(rsp_params->user_context);
-	qid->fqid = le32_to_cpu(rsp_params->fqid);
-	qid->qdbin = le16_to_cpu(rsp_params->qdbin);
-
-	return 0;
-}
-
-/**
- * dpni_get_statistics() - Get DPNI statistics
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @page:	Selects the statistics page to retrieve, see
- *		DPNI_GET_STATISTICS output. Pages are numbered 0 to 2.
- * @stat:	Structure containing the statistics
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_statistics(struct fsl_mc_io *mc_io,
-			u32 cmd_flags,
-			u16 token,
-			u8 page,
-			union dpni_statistics *stat)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_get_statistics *cmd_params;
-	struct dpni_rsp_get_statistics *rsp_params;
-	int i, err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_STATISTICS,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_get_statistics *)cmd.params;
-	cmd_params->page_number = page;
-
-	/* send command to mc */
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_statistics *)cmd.params;
-	for (i = 0; i < DPNI_STATISTICS_CNT; i++)
-		stat->raw.counter[i] = le64_to_cpu(rsp_params->counter[i]);
-
-	return 0;
-}
-
-/**
- * dpni_set_taildrop() - Set taildrop per queue or TC
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @cg_point:	Congestion point
- * @q_type:	Queue type on which the taildrop is configured.
- *		Only Rx queues are supported for now
- * @tc:		Traffic class to apply this taildrop to
- * @q_index:	Index of the queue if the DPNI supports multiple queues for
- *		traffic distribution. Ignored if CONGESTION_POINT is not 0.
- * @taildrop:	Taildrop structure
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_set_taildrop(struct fsl_mc_io *mc_io,
-		      u32 cmd_flags,
-		      u16 token,
-		      enum dpni_congestion_point cg_point,
-		      enum dpni_queue_type qtype,
-		      u8 tc,
-		      u8 index,
-		      struct dpni_taildrop *taildrop)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_set_taildrop *cmd_params;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_TAILDROP,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_set_taildrop *)cmd.params;
-	cmd_params->congestion_point = cg_point;
-	cmd_params->qtype = qtype;
-	cmd_params->tc = tc;
-	cmd_params->index = index;
-	dpni_set_field(cmd_params->enable, ENABLE, taildrop->enable);
-	cmd_params->units = taildrop->units;
-	cmd_params->threshold = cpu_to_le32(taildrop->threshold);
-
-	/* send command to mc */
-	return mc_send_command(mc_io, &cmd);
-}
-
-/**
- * dpni_get_taildrop() - Get taildrop information
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @token:	Token of DPNI object
- * @cg_point:	Congestion point
- * @q_type:	Queue type on which the taildrop is configured.
- *		Only Rx queues are supported for now
- * @tc:		Traffic class to apply this taildrop to
- * @q_index:	Index of the queue if the DPNI supports multiple queues for
- *		traffic distribution. Ignored if CONGESTION_POINT is not 0.
- * @taildrop:	Taildrop structure
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_taildrop(struct fsl_mc_io *mc_io,
-		      u32 cmd_flags,
-		      u16 token,
-		      enum dpni_congestion_point cg_point,
-		      enum dpni_queue_type qtype,
-		      u8 tc,
-		      u8 index,
-		      struct dpni_taildrop *taildrop)
-{
-	struct fsl_mc_command cmd = { 0 };
-	struct dpni_cmd_get_taildrop *cmd_params;
-	struct dpni_rsp_get_taildrop *rsp_params;
-	int err;
-
-	/* prepare command */
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_TAILDROP,
-					  cmd_flags,
-					  token);
-	cmd_params = (struct dpni_cmd_get_taildrop *)cmd.params;
-	cmd_params->congestion_point = cg_point;
-	cmd_params->qtype = qtype;
-	cmd_params->tc = tc;
-	cmd_params->index = index;
-
-	/* send command to mc */
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	/* retrieve response parameters */
-	rsp_params = (struct dpni_rsp_get_taildrop *)cmd.params;
-	taildrop->enable = dpni_get_field(rsp_params->enable, ENABLE);
-	taildrop->units = rsp_params->units;
-	taildrop->threshold = le32_to_cpu(rsp_params->threshold);
-
-	return 0;
-}
-
-/**
- * dpni_get_api_version() - Get Data Path Network Interface API version
- * @mc_io:	Pointer to MC portal's I/O object
- * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
- * @major_ver:	Major version of data path network interface API
- * @minor_ver:	Minor version of data path network interface API
- *
- * Return:	'0' on Success; Error code otherwise.
- */
-int dpni_get_api_version(struct fsl_mc_io *mc_io,
-			 u32 cmd_flags,
-			 u16 *major_ver,
-			 u16 *minor_ver)
-{
-	struct dpni_rsp_get_api_version *rsp_params;
-	struct fsl_mc_command cmd = { 0 };
-	int err;
-
-	cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_API_VERSION,
-					  cmd_flags, 0);
-
-	err = mc_send_command(mc_io, &cmd);
-	if (err)
-		return err;
-
-	rsp_params = (struct dpni_rsp_get_api_version *)cmd.params;
-	*major_ver = le16_to_cpu(rsp_params->major);
-	*minor_ver = le16_to_cpu(rsp_params->minor);
-
-	return 0;
-}
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpni.h b/drivers/staging/fsl-dpaa2/ethernet/dpni.h
deleted file mode 100644
index b378a00..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/dpni.h
+++ /dev/null
@@ -1,824 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
-/* Copyright 2013-2016 Freescale Semiconductor Inc.
- * Copyright 2016 NXP
- */
-#ifndef __FSL_DPNI_H
-#define __FSL_DPNI_H
-
-#include "dpkg.h"
-
-struct fsl_mc_io;
-
-/**
- * Data Path Network Interface API
- * Contains initialization APIs and runtime control APIs for DPNI
- */
-
-/** General DPNI macros */
-
-/**
- * Maximum number of traffic classes
- */
-#define DPNI_MAX_TC				8
-/**
- * Maximum number of buffer pools per DPNI
- */
-#define DPNI_MAX_DPBP				8
-
-/**
- * All traffic classes considered; see dpni_set_queue()
- */
-#define DPNI_ALL_TCS				(u8)(-1)
-/**
- * All flows within traffic class considered; see dpni_set_queue()
- */
-#define DPNI_ALL_TC_FLOWS			(u16)(-1)
-/**
- * Generate new flow ID; see dpni_set_queue()
- */
-#define DPNI_NEW_FLOW_ID			(u16)(-1)
-
-/**
- * Tx traffic is always released to a buffer pool on transmit, there are no
- * resources allocated to have the frames confirmed back to the source after
- * transmission.
- */
-#define DPNI_OPT_TX_FRM_RELEASE			0x000001
-/**
- * Disables support for MAC address filtering for addresses other than primary
- * MAC address. This affects both unicast and multicast. Promiscuous mode can
- * still be enabled/disabled for both unicast and multicast. If promiscuous mode
- * is disabled, only traffic matching the primary MAC address will be accepted.
- */
-#define DPNI_OPT_NO_MAC_FILTER			0x000002
-/**
- * Allocate policers for this DPNI. They can be used to rate-limit traffic per
- * traffic class (TC) basis.
- */
-#define DPNI_OPT_HAS_POLICING			0x000004
-/**
- * Congestion can be managed in several ways, allowing the buffer pool to
- * deplete on ingress, taildrop on each queue or use congestion groups for sets
- * of queues. If set, it configures a single congestion groups across all TCs.
- * If reset, a congestion group is allocated for each TC. Only relevant if the
- * DPNI has multiple traffic classes.
- */
-#define DPNI_OPT_SHARED_CONGESTION		0x000008
-/**
- * Enables TCAM for Flow Steering and QoS look-ups. If not specified, all
- * look-ups are exact match. Note that TCAM is not available on LS1088 and its
- * variants. Setting this bit on these SoCs will trigger an error.
- */
-#define DPNI_OPT_HAS_KEY_MASKING		0x000010
-/**
- * Disables the flow steering table.
- */
-#define DPNI_OPT_NO_FS				0x000020
-
-int dpni_open(struct fsl_mc_io	*mc_io,
-	      u32		cmd_flags,
-	      int		dpni_id,
-	      u16		*token);
-
-int dpni_close(struct fsl_mc_io	*mc_io,
-	       u32		cmd_flags,
-	       u16		token);
-
-/**
- * struct dpni_pools_cfg - Structure representing buffer pools configuration
- * @num_dpbp: Number of DPBPs
- * @pools: Array of buffer pools parameters; The number of valid entries
- *	must match 'num_dpbp' value
- * @pools.dpbp_id: DPBP object ID
- * @pools.buffer_size: Buffer size
- * @pools.backup_pool: Backup pool
- */
-struct dpni_pools_cfg {
-	u8		num_dpbp;
-	struct {
-		int	dpbp_id;
-		u16	buffer_size;
-		int	backup_pool;
-	} pools[DPNI_MAX_DPBP];
-};
-
-int dpni_set_pools(struct fsl_mc_io		*mc_io,
-		   u32				cmd_flags,
-		   u16				token,
-		   const struct dpni_pools_cfg	*cfg);
-
-int dpni_enable(struct fsl_mc_io	*mc_io,
-		u32			cmd_flags,
-		u16			token);
-
-int dpni_disable(struct fsl_mc_io	*mc_io,
-		 u32			cmd_flags,
-		 u16			token);
-
-int dpni_is_enabled(struct fsl_mc_io	*mc_io,
-		    u32			cmd_flags,
-		    u16			token,
-		    int			*en);
-
-int dpni_reset(struct fsl_mc_io	*mc_io,
-	       u32		cmd_flags,
-	       u16		token);
-
-/**
- * DPNI IRQ Index and Events
- */
-
-/**
- * IRQ index
- */
-#define DPNI_IRQ_INDEX				0
-/**
- * IRQ event - indicates a change in link state
- */
-#define DPNI_IRQ_EVENT_LINK_CHANGED		0x00000001
-
-int dpni_set_irq_enable(struct fsl_mc_io	*mc_io,
-			u32			cmd_flags,
-			u16			token,
-			u8			irq_index,
-			u8			en);
-
-int dpni_get_irq_enable(struct fsl_mc_io	*mc_io,
-			u32			cmd_flags,
-			u16			token,
-			u8			irq_index,
-			u8			*en);
-
-int dpni_set_irq_mask(struct fsl_mc_io	*mc_io,
-		      u32		cmd_flags,
-		      u16		token,
-		      u8		irq_index,
-		      u32		mask);
-
-int dpni_get_irq_mask(struct fsl_mc_io	*mc_io,
-		      u32		cmd_flags,
-		      u16		token,
-		      u8		irq_index,
-		      u32		*mask);
-
-int dpni_get_irq_status(struct fsl_mc_io	*mc_io,
-			u32			cmd_flags,
-			u16			token,
-			u8			irq_index,
-			u32			*status);
-
-int dpni_clear_irq_status(struct fsl_mc_io	*mc_io,
-			  u32			cmd_flags,
-			  u16			token,
-			  u8			irq_index,
-			  u32			status);
-
-/**
- * struct dpni_attr - Structure representing DPNI attributes
- * @options: Any combination of the following options:
- *		DPNI_OPT_TX_FRM_RELEASE
- *		DPNI_OPT_NO_MAC_FILTER
- *		DPNI_OPT_HAS_POLICING
- *		DPNI_OPT_SHARED_CONGESTION
- *		DPNI_OPT_HAS_KEY_MASKING
- *		DPNI_OPT_NO_FS
- * @num_queues: Number of Tx and Rx queues used for traffic distribution.
- * @num_tcs: Number of traffic classes (TCs), reserved for the DPNI.
- * @mac_filter_entries: Number of entries in the MAC address filtering table.
- * @vlan_filter_entries: Number of entries in the VLAN address filtering table.
- * @qos_entries: Number of entries in the QoS classification table.
- * @fs_entries: Number of entries in the flow steering table.
- * @qos_key_size: Size, in bytes, of the QoS look-up key. Defining a key larger
- *		than this when adding QoS entries will result in an error.
- * @fs_key_size: Size, in bytes, of the flow steering look-up key. Defining a
- *		key larger than this when composing the hash + FS key will
- *		result in an error.
- * @wriop_version: Version of WRIOP HW block. The 3 version values are stored
- *		on 6, 5, 5 bits respectively.
- */
-struct dpni_attr {
-	u32 options;
-	u8 num_queues;
-	u8 num_tcs;
-	u8 mac_filter_entries;
-	u8 vlan_filter_entries;
-	u8 qos_entries;
-	u16 fs_entries;
-	u8 qos_key_size;
-	u8 fs_key_size;
-	u16 wriop_version;
-};
-
-int dpni_get_attributes(struct fsl_mc_io	*mc_io,
-			u32			cmd_flags,
-			u16			token,
-			struct dpni_attr	*attr);
-
-/**
- * DPNI errors
- */
-
-/**
- * Extract out of frame header error
- */
-#define DPNI_ERROR_EOFHE	0x00020000
-/**
- * Frame length error
- */
-#define DPNI_ERROR_FLE		0x00002000
-/**
- * Frame physical error
- */
-#define DPNI_ERROR_FPE		0x00001000
-/**
- * Parsing header error
- */
-#define DPNI_ERROR_PHE		0x00000020
-/**
- * Parser L3 checksum error
- */
-#define DPNI_ERROR_L3CE		0x00000004
-/**
- * Parser L3 checksum error
- */
-#define DPNI_ERROR_L4CE		0x00000001
-
-/**
- * enum dpni_error_action - Defines DPNI behavior for errors
- * @DPNI_ERROR_ACTION_DISCARD: Discard the frame
- * @DPNI_ERROR_ACTION_CONTINUE: Continue with the normal flow
- * @DPNI_ERROR_ACTION_SEND_TO_ERROR_QUEUE: Send the frame to the error queue
- */
-enum dpni_error_action {
-	DPNI_ERROR_ACTION_DISCARD = 0,
-	DPNI_ERROR_ACTION_CONTINUE = 1,
-	DPNI_ERROR_ACTION_SEND_TO_ERROR_QUEUE = 2
-};
-
-/**
- * struct dpni_error_cfg - Structure representing DPNI errors treatment
- * @errors: Errors mask; use 'DPNI_ERROR__<X>
- * @error_action: The desired action for the errors mask
- * @set_frame_annotation: Set to '1' to mark the errors in frame annotation
- *		status (FAS); relevant only for the non-discard action
- */
-struct dpni_error_cfg {
-	u32			errors;
-	enum dpni_error_action	error_action;
-	int			set_frame_annotation;
-};
-
-int dpni_set_errors_behavior(struct fsl_mc_io		*mc_io,
-			     u32			cmd_flags,
-			     u16			token,
-			     struct dpni_error_cfg	*cfg);
-
-/**
- * DPNI buffer layout modification options
- */
-
-/**
- * Select to modify the time-stamp setting
- */
-#define DPNI_BUF_LAYOUT_OPT_TIMESTAMP		0x00000001
-/**
- * Select to modify the parser-result setting; not applicable for Tx
- */
-#define DPNI_BUF_LAYOUT_OPT_PARSER_RESULT	0x00000002
-/**
- * Select to modify the frame-status setting
- */
-#define DPNI_BUF_LAYOUT_OPT_FRAME_STATUS	0x00000004
-/**
- * Select to modify the private-data-size setting
- */
-#define DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE	0x00000008
-/**
- * Select to modify the data-alignment setting
- */
-#define DPNI_BUF_LAYOUT_OPT_DATA_ALIGN		0x00000010
-/**
- * Select to modify the data-head-room setting
- */
-#define DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM	0x00000020
-/**
- * Select to modify the data-tail-room setting
- */
-#define DPNI_BUF_LAYOUT_OPT_DATA_TAIL_ROOM	0x00000040
-
-/**
- * struct dpni_buffer_layout - Structure representing DPNI buffer layout
- * @options: Flags representing the suggested modifications to the buffer
- *		layout; Use any combination of 'DPNI_BUF_LAYOUT_OPT_<X>' flags
- * @pass_timestamp: Pass timestamp value
- * @pass_parser_result: Pass parser results
- * @pass_frame_status: Pass frame status
- * @private_data_size: Size kept for private data (in bytes)
- * @data_align: Data alignment
- * @data_head_room: Data head room
- * @data_tail_room: Data tail room
- */
-struct dpni_buffer_layout {
-	u32	options;
-	int	pass_timestamp;
-	int	pass_parser_result;
-	int	pass_frame_status;
-	u16	private_data_size;
-	u16	data_align;
-	u16	data_head_room;
-	u16	data_tail_room;
-};
-
-/**
- * enum dpni_queue_type - Identifies a type of queue targeted by the command
- * @DPNI_QUEUE_RX: Rx queue
- * @DPNI_QUEUE_TX: Tx queue
- * @DPNI_QUEUE_TX_CONFIRM: Tx confirmation queue
- * @DPNI_QUEUE_RX_ERR: Rx error queue
- */enum dpni_queue_type {
-	DPNI_QUEUE_RX,
-	DPNI_QUEUE_TX,
-	DPNI_QUEUE_TX_CONFIRM,
-	DPNI_QUEUE_RX_ERR,
-};
-
-int dpni_get_buffer_layout(struct fsl_mc_io		*mc_io,
-			   u32				cmd_flags,
-			   u16				token,
-			   enum dpni_queue_type		qtype,
-			   struct dpni_buffer_layout	*layout);
-
-int dpni_set_buffer_layout(struct fsl_mc_io		   *mc_io,
-			   u32				   cmd_flags,
-			   u16				   token,
-			   enum dpni_queue_type		   qtype,
-			   const struct dpni_buffer_layout *layout);
-
-/**
- * enum dpni_offload - Identifies a type of offload targeted by the command
- * @DPNI_OFF_RX_L3_CSUM: Rx L3 checksum validation
- * @DPNI_OFF_RX_L4_CSUM: Rx L4 checksum validation
- * @DPNI_OFF_TX_L3_CSUM: Tx L3 checksum generation
- * @DPNI_OFF_TX_L4_CSUM: Tx L4 checksum generation
- */
-enum dpni_offload {
-	DPNI_OFF_RX_L3_CSUM,
-	DPNI_OFF_RX_L4_CSUM,
-	DPNI_OFF_TX_L3_CSUM,
-	DPNI_OFF_TX_L4_CSUM,
-};
-
-int dpni_set_offload(struct fsl_mc_io	*mc_io,
-		     u32		cmd_flags,
-		     u16		token,
-		     enum dpni_offload	type,
-		     u32		config);
-
-int dpni_get_offload(struct fsl_mc_io	*mc_io,
-		     u32		cmd_flags,
-		     u16		token,
-		     enum dpni_offload	type,
-		     u32		*config);
-
-int dpni_get_qdid(struct fsl_mc_io	*mc_io,
-		  u32			cmd_flags,
-		  u16			token,
-		  enum dpni_queue_type	qtype,
-		  u16			*qdid);
-
-int dpni_get_tx_data_offset(struct fsl_mc_io	*mc_io,
-			    u32			cmd_flags,
-			    u16			token,
-			    u16			*data_offset);
-
-#define DPNI_STATISTICS_CNT		7
-
-/**
- * union dpni_statistics - Union describing the DPNI statistics
- * @page_0: Page_0 statistics structure
- * @page_0.ingress_all_frames: Ingress frame count
- * @page_0.ingress_all_bytes: Ingress byte count
- * @page_0.ingress_multicast_frames: Ingress multicast frame count
- * @page_0.ingress_multicast_bytes: Ingress multicast byte count
- * @page_0.ingress_broadcast_frames: Ingress broadcast frame count
- * @page_0.ingress_broadcast_bytes: Ingress broadcast byte count
- * @page_1: Page_1 statistics structure
- * @page_1.egress_all_frames: Egress frame count
- * @page_1.egress_all_bytes: Egress byte count
- * @page_1.egress_multicast_frames: Egress multicast frame count
- * @page_1.egress_multicast_bytes: Egress multicast byte count
- * @page_1.egress_broadcast_frames: Egress broadcast frame count
- * @page_1.egress_broadcast_bytes: Egress broadcast byte count
- * @page_2: Page_2 statistics structure
- * @page_2.ingress_filtered_frames: Ingress filtered frame count
- * @page_2.ingress_discarded_frames: Ingress discarded frame count
- * @page_2.ingress_nobuffer_discards: Ingress discarded frame count due to
- *	lack of buffers
- * @page_2.egress_discarded_frames: Egress discarded frame count
- * @page_2.egress_confirmed_frames: Egress confirmed frame count
- * @raw: raw statistics structure, used to index counters
- */
-union dpni_statistics {
-	struct {
-		u64 ingress_all_frames;
-		u64 ingress_all_bytes;
-		u64 ingress_multicast_frames;
-		u64 ingress_multicast_bytes;
-		u64 ingress_broadcast_frames;
-		u64 ingress_broadcast_bytes;
-	} page_0;
-	struct {
-		u64 egress_all_frames;
-		u64 egress_all_bytes;
-		u64 egress_multicast_frames;
-		u64 egress_multicast_bytes;
-		u64 egress_broadcast_frames;
-		u64 egress_broadcast_bytes;
-	} page_1;
-	struct {
-		u64 ingress_filtered_frames;
-		u64 ingress_discarded_frames;
-		u64 ingress_nobuffer_discards;
-		u64 egress_discarded_frames;
-		u64 egress_confirmed_frames;
-	} page_2;
-	struct {
-		u64 counter[DPNI_STATISTICS_CNT];
-	} raw;
-};
-
-int dpni_get_statistics(struct fsl_mc_io	*mc_io,
-			u32			cmd_flags,
-			u16			token,
-			u8			page,
-			union dpni_statistics	*stat);
-
-/**
- * Enable auto-negotiation
- */
-#define DPNI_LINK_OPT_AUTONEG		0x0000000000000001ULL
-/**
- * Enable half-duplex mode
- */
-#define DPNI_LINK_OPT_HALF_DUPLEX	0x0000000000000002ULL
-/**
- * Enable pause frames
- */
-#define DPNI_LINK_OPT_PAUSE		0x0000000000000004ULL
-/**
- * Enable a-symmetric pause frames
- */
-#define DPNI_LINK_OPT_ASYM_PAUSE	0x0000000000000008ULL
-
-/**
- * struct - Structure representing DPNI link configuration
- * @rate: Rate
- * @options: Mask of available options; use 'DPNI_LINK_OPT_<X>' values
- */
-struct dpni_link_cfg {
-	u32 rate;
-	u64 options;
-};
-
-int dpni_set_link_cfg(struct fsl_mc_io			*mc_io,
-		      u32				cmd_flags,
-		      u16				token,
-		      const struct dpni_link_cfg	*cfg);
-
-/**
- * struct dpni_link_state - Structure representing DPNI link state
- * @rate: Rate
- * @options: Mask of available options; use 'DPNI_LINK_OPT_<X>' values
- * @up: Link state; '0' for down, '1' for up
- */
-struct dpni_link_state {
-	u32	rate;
-	u64	options;
-	int	up;
-};
-
-int dpni_get_link_state(struct fsl_mc_io	*mc_io,
-			u32			cmd_flags,
-			u16			token,
-			struct dpni_link_state	*state);
-
-int dpni_set_max_frame_length(struct fsl_mc_io	*mc_io,
-			      u32		cmd_flags,
-			      u16		token,
-			      u16		max_frame_length);
-
-int dpni_get_max_frame_length(struct fsl_mc_io	*mc_io,
-			      u32		cmd_flags,
-			      u16		token,
-			      u16		*max_frame_length);
-
-int dpni_set_multicast_promisc(struct fsl_mc_io *mc_io,
-			       u32		cmd_flags,
-			       u16		token,
-			       int		en);
-
-int dpni_get_multicast_promisc(struct fsl_mc_io *mc_io,
-			       u32		cmd_flags,
-			       u16		token,
-			       int		*en);
-
-int dpni_set_unicast_promisc(struct fsl_mc_io	*mc_io,
-			     u32		cmd_flags,
-			     u16		token,
-			     int		en);
-
-int dpni_get_unicast_promisc(struct fsl_mc_io	*mc_io,
-			     u32		cmd_flags,
-			     u16		token,
-			     int		*en);
-
-int dpni_set_primary_mac_addr(struct fsl_mc_io *mc_io,
-			      u32		cmd_flags,
-			      u16		token,
-			      const u8		mac_addr[6]);
-
-int dpni_get_primary_mac_addr(struct fsl_mc_io	*mc_io,
-			      u32		cmd_flags,
-			      u16		token,
-			      u8		mac_addr[6]);
-
-int dpni_get_port_mac_addr(struct fsl_mc_io	*mc_io,
-			   u32			cm_flags,
-			   u16			token,
-			   u8			mac_addr[6]);
-
-int dpni_add_mac_addr(struct fsl_mc_io	*mc_io,
-		      u32		cmd_flags,
-		      u16		token,
-		      const u8		mac_addr[6]);
-
-int dpni_remove_mac_addr(struct fsl_mc_io	*mc_io,
-			 u32			cmd_flags,
-			 u16			token,
-			 const u8		mac_addr[6]);
-
-int dpni_clear_mac_filters(struct fsl_mc_io	*mc_io,
-			   u32			cmd_flags,
-			   u16			token,
-			   int			unicast,
-			   int			multicast);
-
-/**
- * enum dpni_dist_mode - DPNI distribution mode
- * @DPNI_DIST_MODE_NONE: No distribution
- * @DPNI_DIST_MODE_HASH: Use hash distribution; only relevant if
- *		the 'DPNI_OPT_DIST_HASH' option was set at DPNI creation
- * @DPNI_DIST_MODE_FS:  Use explicit flow steering; only relevant if
- *	 the 'DPNI_OPT_DIST_FS' option was set at DPNI creation
- */
-enum dpni_dist_mode {
-	DPNI_DIST_MODE_NONE = 0,
-	DPNI_DIST_MODE_HASH = 1,
-	DPNI_DIST_MODE_FS = 2
-};
-
-/**
- * enum dpni_fs_miss_action -   DPNI Flow Steering miss action
- * @DPNI_FS_MISS_DROP: In case of no-match, drop the frame
- * @DPNI_FS_MISS_EXPLICIT_FLOWID: In case of no-match, use explicit flow-id
- * @DPNI_FS_MISS_HASH: In case of no-match, distribute using hash
- */
-enum dpni_fs_miss_action {
-	DPNI_FS_MISS_DROP = 0,
-	DPNI_FS_MISS_EXPLICIT_FLOWID = 1,
-	DPNI_FS_MISS_HASH = 2
-};
-
-/**
- * struct dpni_fs_tbl_cfg - Flow Steering table configuration
- * @miss_action: Miss action selection
- * @default_flow_id: Used when 'miss_action = DPNI_FS_MISS_EXPLICIT_FLOWID'
- */
-struct dpni_fs_tbl_cfg {
-	enum dpni_fs_miss_action	miss_action;
-	u16				default_flow_id;
-};
-
-int dpni_prepare_key_cfg(const struct dpkg_profile_cfg *cfg,
-			 u8 *key_cfg_buf);
-
-/**
- * struct dpni_rx_tc_dist_cfg - Rx traffic class distribution configuration
- * @dist_size: Set the distribution size;
- *	supported values: 1,2,3,4,6,7,8,12,14,16,24,28,32,48,56,64,96,
- *	112,128,192,224,256,384,448,512,768,896,1024
- * @dist_mode: Distribution mode
- * @key_cfg_iova: I/O virtual address of 256 bytes DMA-able memory filled with
- *		the extractions to be used for the distribution key by calling
- *		dpni_prepare_key_cfg() relevant only when
- *		'dist_mode != DPNI_DIST_MODE_NONE', otherwise it can be '0'
- * @fs_cfg: Flow Steering table configuration; only relevant if
- *		'dist_mode = DPNI_DIST_MODE_FS'
- */
-struct dpni_rx_tc_dist_cfg {
-	u16			dist_size;
-	enum dpni_dist_mode	dist_mode;
-	u64			key_cfg_iova;
-	struct dpni_fs_tbl_cfg	fs_cfg;
-};
-
-int dpni_set_rx_tc_dist(struct fsl_mc_io			*mc_io,
-			u32					cmd_flags,
-			u16					token,
-			u8					tc_id,
-			const struct dpni_rx_tc_dist_cfg	*cfg);
-
-/**
- * enum dpni_dest - DPNI destination types
- * @DPNI_DEST_NONE: Unassigned destination; The queue is set in parked mode and
- *		does not generate FQDAN notifications; user is expected to
- *		dequeue from the queue based on polling or other user-defined
- *		method
- * @DPNI_DEST_DPIO: The queue is set in schedule mode and generates FQDAN
- *		notifications to the specified DPIO; user is expected to dequeue
- *		from the queue only after notification is received
- * @DPNI_DEST_DPCON: The queue is set in schedule mode and does not generate
- *		FQDAN notifications, but is connected to the specified DPCON
- *		object; user is expected to dequeue from the DPCON channel
- */
-enum dpni_dest {
-	DPNI_DEST_NONE = 0,
-	DPNI_DEST_DPIO = 1,
-	DPNI_DEST_DPCON = 2
-};
-
-/**
- * struct dpni_queue - Queue structure
- * @destination - Destination structure
- * @destination.id: ID of the destination, only relevant if DEST_TYPE is > 0.
- *	Identifies either a DPIO or a DPCON object.
- *	Not relevant for Tx queues.
- * @destination.type:	May be one of the following:
- *	0 - No destination, queue can be manually
- *		queried, but will not push traffic or
- *		notifications to a DPIO;
- *	1 - The destination is a DPIO. When traffic
- *		becomes available in the queue a FQDAN
- *		(FQ data available notification) will be
- *		generated to selected DPIO;
- *	2 - The destination is a DPCON. The queue is
- *		associated with a DPCON object for the
- *		purpose of scheduling between multiple
- *		queues. The DPCON may be independently
- *		configured to generate notifications.
- *		Not relevant for Tx queues.
- * @destination.hold_active: Hold active, maintains a queue scheduled for longer
- *	in a DPIO during dequeue to reduce spread of traffic.
- *	Only relevant if queues are
- *	not affined to a single DPIO.
- * @user_context: User data, presented to the user along with any frames
- *	from this queue. Not relevant for Tx queues.
- * @flc: FD FLow Context structure
- * @flc.value: Default FLC value for traffic dequeued from
- *      this queue.  Please check description of FD
- *      structure for more information.
- *      Note that FLC values set using dpni_add_fs_entry,
- *      if any, take precedence over values per queue.
- * @flc.stash_control: Boolean, indicates whether the 6 lowest
- *      - significant bits are used for stash control.
- *      significant bits are used for stash control.  If set, the 6
- *      least significant bits in value are interpreted as follows:
- *      - bits 0-1: indicates the number of 64 byte units of context
- *      that are stashed.  FLC value is interpreted as a memory address
- *      in this case, excluding the 6 LS bits.
- *      - bits 2-3: indicates the number of 64 byte units of frame
- *      annotation to be stashed.  Annotation is placed at FD[ADDR].
- *      - bits 4-5: indicates the number of 64 byte units of frame
- *      data to be stashed.  Frame data is placed at FD[ADDR] +
- *      FD[OFFSET].
- *      For more details check the Frame Descriptor section in the
- *      hardware documentation.
- */
-struct dpni_queue {
-	struct {
-		u16 id;
-		enum dpni_dest type;
-		char hold_active;
-		u8 priority;
-	} destination;
-	u64 user_context;
-	struct {
-		u64 value;
-		char stash_control;
-	} flc;
-};
-
-/**
- * struct dpni_queue_id - Queue identification, used for enqueue commands
- *			or queue control
- * @fqid: FQID used for enqueueing to and/or configuration of this specific FQ
- * @qdbin: Queueing bin, used to enqueue using QDID, DQBIN, QPRI. Only relevant
- *		for Tx queues.
- */
-struct dpni_queue_id {
-	u32 fqid;
-	u16 qdbin;
-};
-
-/**
- * Set User Context
- */
-#define DPNI_QUEUE_OPT_USER_CTX		0x00000001
-#define DPNI_QUEUE_OPT_DEST		0x00000002
-#define DPNI_QUEUE_OPT_FLC		0x00000004
-#define DPNI_QUEUE_OPT_HOLD_ACTIVE	0x00000008
-
-int dpni_set_queue(struct fsl_mc_io	*mc_io,
-		   u32			cmd_flags,
-		   u16			token,
-		   enum dpni_queue_type	qtype,
-		   u8			tc,
-		   u8			index,
-		   u8			options,
-		   const struct dpni_queue *queue);
-
-int dpni_get_queue(struct fsl_mc_io	*mc_io,
-		   u32			cmd_flags,
-		   u16			token,
-		   enum dpni_queue_type	qtype,
-		   u8			tc,
-		   u8			index,
-		   struct dpni_queue	*queue,
-		   struct dpni_queue_id	*qid);
-
-/**
- * enum dpni_congestion_unit - DPNI congestion units
- * @DPNI_CONGESTION_UNIT_BYTES: bytes units
- * @DPNI_CONGESTION_UNIT_FRAMES: frames units
- */
-enum dpni_congestion_unit {
-	DPNI_CONGESTION_UNIT_BYTES = 0,
-	DPNI_CONGESTION_UNIT_FRAMES
-};
-
-/**
- * enum dpni_congestion_point - Structure representing congestion point
- * @DPNI_CP_QUEUE: Set taildrop per queue, identified by QUEUE_TYPE, TC and
- *		QUEUE_INDEX
- * @DPNI_CP_GROUP: Set taildrop per queue group. Depending on options used to
- *		define the DPNI this can be either per TC (default) or per
- *		interface (DPNI_OPT_SHARED_CONGESTION set at DPNI create).
- *		QUEUE_INDEX is ignored if this type is used.
- */
-enum dpni_congestion_point {
-	DPNI_CP_QUEUE,
-	DPNI_CP_GROUP,
-};
-
-/**
- * struct dpni_taildrop - Structure representing the taildrop
- * @enable:	Indicates whether the taildrop is active or not.
- * @units:	Indicates the unit of THRESHOLD. Queue taildrop only supports
- *		byte units, this field is ignored and assumed = 0 if
- *		CONGESTION_POINT is 0.
- * @threshold:	Threshold value, in units identified by UNITS field. Value 0
- *		cannot be used as a valid taildrop threshold, THRESHOLD must
- *		be > 0 if the taildrop is enabled.
- */
-struct dpni_taildrop {
-	char enable;
-	enum dpni_congestion_unit units;
-	u32 threshold;
-};
-
-int dpni_set_taildrop(struct fsl_mc_io *mc_io,
-		      u32 cmd_flags,
-		      u16 token,
-		      enum dpni_congestion_point cg_point,
-		      enum dpni_queue_type q_type,
-		      u8 tc,
-		      u8 q_index,
-		      struct dpni_taildrop *taildrop);
-
-int dpni_get_taildrop(struct fsl_mc_io *mc_io,
-		      u32 cmd_flags,
-		      u16 token,
-		      enum dpni_congestion_point cg_point,
-		      enum dpni_queue_type q_type,
-		      u8 tc,
-		      u8 q_index,
-		      struct dpni_taildrop *taildrop);
-
-/**
- * struct dpni_rule_cfg - Rule configuration for table lookup
- * @key_iova: I/O virtual address of the key (must be in DMA-able memory)
- * @mask_iova: I/O virtual address of the mask (must be in DMA-able memory)
- * @key_size: key and mask size (in bytes)
- */
-struct dpni_rule_cfg {
-	u64	key_iova;
-	u64	mask_iova;
-	u8	key_size;
-};
-
-int dpni_get_api_version(struct fsl_mc_io *mc_io,
-			 u32 cmd_flags,
-			 u16 *major_ver,
-			 u16 *minor_ver);
-
-#endif /* __FSL_DPNI_H */
diff --git a/drivers/staging/fsl-dpaa2/ethernet/ethernet-driver.rst b/drivers/staging/fsl-dpaa2/ethernet/ethernet-driver.rst
deleted file mode 100644
index 90ec940..0000000
--- a/drivers/staging/fsl-dpaa2/ethernet/ethernet-driver.rst
+++ /dev/null
@@ -1,185 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0
-.. include:: <isonum.txt>
-
-===============================
-DPAA2 Ethernet driver
-===============================
-
-:Copyright: |copy| 2017-2018 NXP
-
-This file provides documentation for the Freescale DPAA2 Ethernet driver.
-
-Supported Platforms
-===================
-This driver provides networking support for Freescale DPAA2 SoCs, e.g.
-LS2080A, LS2088A, LS1088A.
-
-
-Architecture Overview
-=====================
-Unlike regular NICs, in the DPAA2 architecture there is no single hardware block
-representing network interfaces; instead, several separate hardware resources
-concur to provide the networking functionality:
-
-- network interfaces
-- queues, channels
-- buffer pools
-- MAC/PHY
-
-All hardware resources are allocated and configured through the Management
-Complex (MC) portals. MC abstracts most of these resources as DPAA2 objects
-and exposes ABIs through which they can be configured and controlled. A few
-hardware resources, like queues, do not have a corresponding MC object and
-are treated as internal resources of other objects.
-
-For a more detailed description of the DPAA2 architecture and its object
-abstractions see *Documentation/networking/dpaa2/overview.rst*.
-
-Each Linux net device is built on top of a Datapath Network Interface (DPNI)
-object and uses Buffer Pools (DPBPs), I/O Portals (DPIOs) and Concentrators
-(DPCONs).
-
-Configuration interface::
-
-                 -----------------------
-                | DPAA2 Ethernet Driver |
-                 -----------------------
-                     .      .      .
-                     .      .      .
-             . . . . .      .      . . . . . .
-             .              .                .
-             .              .                .
-         ----------     ----------      -----------
-        | DPBP API |   | DPNI API |    | DPCON API |
-         ----------     ----------      -----------
-             .              .                .             software
-    =======  .  ==========  .  ============  .  ===================
-             .              .                .             hardware
-         ------------------------------------------
-        |            MC hardware portals           |
-         ------------------------------------------
-             .              .                .
-             .              .                .
-          ------         ------            -------
-         | DPBP |       | DPNI |          | DPCON |
-          ------         ------            -------
-
-The DPNIs are network interfaces without a direct one-on-one mapping to PHYs.
-DPBPs represent hardware buffer pools. Packet I/O is performed in the context
-of DPCON objects, using DPIO portals for managing and communicating with the
-hardware resources.
-
-Datapath (I/O) interface::
-
-         -----------------------------------------------
-        |           DPAA2 Ethernet Driver               |
-         -----------------------------------------------
-          |          ^        ^         |            |
-          |          |        |         |            |
-   enqueue|   dequeue|   data |  dequeue|       seed |
-    (Tx)  | (Rx, TxC)|  avail.|  request|     buffers|
-          |          |  notify|         |            |
-          |          |        |         |            |
-          V          |        |         V            V
-         -----------------------------------------------
-        |                 DPIO Driver                   |
-         -----------------------------------------------
-          |          |        |         |            |          software
-          |          |        |         |            |  ================
-          |          |        |         |            |          hardware
-         -----------------------------------------------
-        |               I/O hardware portals            |
-         -----------------------------------------------
-          |          ^        ^         |            |
-          |          |        |         |            |
-          |          |        |         V            |
-          V          |    ================           V
-        ----------------------           |      -------------
- queues  ----------------------          |     | Buffer pool |
-          ----------------------         |      -------------
-                   =======================
-                                Channel
-
-Datapath I/O (DPIO) portals provide enqueue and dequeue services, data
-availability notifications and buffer pool management. DPIOs are shared between
-all DPAA2 objects (and implicitly all DPAA2 kernel drivers) that work with data
-frames, but must be affine to the CPUs for the purpose of traffic distribution.
-
-Frames are transmitted and received through hardware frame queues, which can be
-grouped in channels for the purpose of hardware scheduling. The Ethernet driver
-enqueues TX frames on egress queues and after transmission is complete a TX
-confirmation frame is sent back to the CPU.
-
-When frames are available on ingress queues, a data availability notification
-is sent to the CPU; notifications are raised per channel, so even if multiple
-queues in the same channel have available frames, only one notification is sent.
-After a channel fires a notification, is must be explicitly rearmed.
-
-Each network interface can have multiple Rx, Tx and confirmation queues affined
-to CPUs, and one channel (DPCON) for each CPU that services at least one queue.
-DPCONs are used to distribute ingress traffic to different CPUs via the cores'
-affine DPIOs.
-
-The role of hardware buffer pools is storage of ingress frame data. Each network
-interface has a privately owned buffer pool which it seeds with kernel allocated
-buffers.
-
-
-DPNIs are decoupled from PHYs; a DPNI can be connected to a PHY through a DPMAC
-object or to another DPNI through an internal link, but the connection is
-managed by MC and completely transparent to the Ethernet driver.
-
-::
-
-     ---------     ---------     ---------
-    | eth if1 |   | eth if2 |   | eth ifn |
-     ---------     ---------     ---------
-          .           .          .
-          .           .          .
-          .           .          .
-         ---------------------------
-        |   DPAA2 Ethernet Driver   |
-         ---------------------------
-          .           .          .
-          .           .          .
-          .           .          .
-       ------      ------      ------            -------
-      | DPNI |    | DPNI |    | DPNI |          | DPMAC |----+
-       ------      ------      ------            -------     |
-         |           |           |                  |        |
-         |           |           |                  |      -----
-          ===========             ==================      | PHY |
-                                                           -----
-
-Creating a Network Interface
-============================
-A net device is created for each DPNI object probed on the MC bus. Each DPNI has
-a number of properties which determine the network interface configuration
-options and associated hardware resources.
-
-DPNI objects (and the other DPAA2 objects needed for a network interface) can be
-added to a container on the MC bus in one of two ways: statically, through a
-Datapath Layout Binary file (DPL) that is parsed by MC at boot time; or created
-dynamically at runtime, via the DPAA2 objects APIs.
-
-
-Features & Offloads
-===================
-Hardware checksum offloading is supported for TCP and UDP over IPv4/6 frames.
-The checksum offloads can be independently configured on RX and TX through
-ethtool.
-
-Hardware offload of unicast and multicast MAC filtering is supported on the
-ingress path and permanently enabled.
-
-Scatter-gather frames are supported on both RX and TX paths. On TX, SG support
-is configurable via ethtool; on RX it is always enabled.
-
-The DPAA2 hardware can process jumbo Ethernet frames of up to 10K bytes.
-
-The Ethernet driver defines a static flow hashing scheme that distributes
-traffic based on a 5-tuple key: src IP, dst IP, IP proto, L4 src port,
-L4 dst port. No user configuration is supported for now.
-
-Hardware specific statistics for the network interface as well as some
-non-standard driver stats can be consulted through ethtool -S option.
-- 
2.7.4

^ permalink raw reply related

* [PATCH net-next] rxrpc: Push iov_iter up from rxrpc_kernel_recv_data() to caller
From: David Howells @ 2018-08-03 16:06 UTC (permalink / raw)
  To: netdev; +Cc: dhowells, linux-afs, linux-kernel

Push iov_iter up from rxrpc_kernel_recv_data() to its caller to allow
non-contiguous iovs to be passed down, thereby permitting file reading to
be simplified in the AFS filesystem in a future patch.

Signed-off-by: David Howells <dhowells@redhat.com>
---

 fs/afs/rxrpc.c         |   28 +++++++++++++++++-----------
 include/net/af_rxrpc.h |    2 +-
 net/rxrpc/recvmsg.c    |   33 +++++++++++----------------------
 3 files changed, 29 insertions(+), 34 deletions(-)

diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index a1b18082991b..19db5f672a9d 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -346,7 +346,6 @@ long afs_make_call(struct afs_addr_cursor *ac, struct afs_call *call,
 	struct rxrpc_call *rxcall;
 	struct msghdr msg;
 	struct kvec iov[1];
-	size_t offset;
 	s64 tx_total_len;
 	int ret;
 
@@ -433,10 +432,10 @@ long afs_make_call(struct afs_addr_cursor *ac, struct afs_call *call,
 		rxrpc_kernel_abort_call(call->net->socket, rxcall,
 					RX_USER_ABORT, ret, "KSD");
 	} else {
-		offset = 0;
-		rxrpc_kernel_recv_data(call->net->socket, rxcall, NULL,
-				       0, &offset, false, &call->abort_code,
-				       &call->service_id);
+		iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, NULL, 0, 0);
+		rxrpc_kernel_recv_data(call->net->socket, rxcall,
+				       &msg.msg_iter, false,
+				       &call->abort_code, &call->service_id);
 		ac->abort_code = call->abort_code;
 		ac->responded = true;
 	}
@@ -467,13 +466,14 @@ static void afs_deliver_to_call(struct afs_call *call)
 	       state == AFS_CALL_SV_AWAIT_ACK
 	       ) {
 		if (state == AFS_CALL_SV_AWAIT_ACK) {
-			size_t offset = 0;
+			struct iov_iter iter;
+
+			iov_iter_kvec(&iter, READ | ITER_KVEC, NULL, 0, 0);
 			ret = rxrpc_kernel_recv_data(call->net->socket,
-						     call->rxcall,
-						     NULL, 0, &offset, false,
+						     call->rxcall, &iter, false,
 						     &remote_abort,
 						     &call->service_id);
-			trace_afs_recv_data(call, 0, offset, false, ret);
+			trace_afs_recv_data(call, 0, 0, false, ret);
 
 			if (ret == -EINPROGRESS || ret == -EAGAIN)
 				return;
@@ -894,6 +894,8 @@ int afs_extract_data(struct afs_call *call, void *buf, size_t count,
 		     bool want_more)
 {
 	struct afs_net *net = call->net;
+	struct iov_iter iter;
+	struct kvec iov;
 	enum afs_call_state state;
 	u32 remote_abort = 0;
 	int ret;
@@ -903,10 +905,14 @@ int afs_extract_data(struct afs_call *call, void *buf, size_t count,
 
 	ASSERTCMP(call->offset, <=, count);
 
-	ret = rxrpc_kernel_recv_data(net->socket, call->rxcall,
-				     buf, count, &call->offset,
+	iov.iov_base = buf + call->offset;
+	iov.iov_len = count - call->offset;
+	iov_iter_kvec(&iter, ITER_KVEC | READ, &iov, 1, count - call->offset);
+
+	ret = rxrpc_kernel_recv_data(net->socket, call->rxcall, &iter,
 				     want_more, &remote_abort,
 				     &call->service_id);
+	call->offset += (count - call->offset) - iov_iter_count(&iter);
 	trace_afs_recv_data(call, count, call->offset, want_more, ret);
 	if (ret == 0 || ret == -EAGAIN)
 		return ret;
diff --git a/include/net/af_rxrpc.h b/include/net/af_rxrpc.h
index 8ae8ee004258..f53edb3754bc 100644
--- a/include/net/af_rxrpc.h
+++ b/include/net/af_rxrpc.h
@@ -61,7 +61,7 @@ int rxrpc_kernel_send_data(struct socket *, struct rxrpc_call *,
 			   struct msghdr *, size_t,
 			   rxrpc_notify_end_tx_t);
 int rxrpc_kernel_recv_data(struct socket *, struct rxrpc_call *,
-			   void *, size_t, size_t *, bool, u32 *, u16 *);
+			   struct iov_iter *, bool, u32 *, u16 *);
 bool rxrpc_kernel_abort_call(struct socket *, struct rxrpc_call *,
 			     u32, int, const char *);
 void rxrpc_kernel_end_call(struct socket *, struct rxrpc_call *);
diff --git a/net/rxrpc/recvmsg.c b/net/rxrpc/recvmsg.c
index a57ea96c84ea..816b19a78809 100644
--- a/net/rxrpc/recvmsg.c
+++ b/net/rxrpc/recvmsg.c
@@ -611,9 +611,7 @@ int rxrpc_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
  * rxrpc_kernel_recv_data - Allow a kernel service to receive data/info
  * @sock: The socket that the call exists on
  * @call: The call to send data through
- * @buf: The buffer to receive into
- * @size: The size of the buffer, including data already read
- * @_offset: The running offset into the buffer.
+ * @iter: The buffer to receive into
  * @want_more: True if more data is expected to be read
  * @_abort: Where the abort code is stored if -ECONNABORTED is returned
  * @_service: Where to store the actual service ID (may be upgraded)
@@ -626,39 +624,30 @@ int rxrpc_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
  * Note that we may return -EAGAIN to drain empty packets at the end of the
  * data, even if we've already copied over the requested data.
  *
- * This function adds the amount it transfers to *_offset, so this should be
- * precleared as appropriate.  Note that the amount remaining in the buffer is
- * taken to be size - *_offset.
- *
  * *_abort should also be initialised to 0.
  */
 int rxrpc_kernel_recv_data(struct socket *sock, struct rxrpc_call *call,
-			   void *buf, size_t size, size_t *_offset,
+			   struct iov_iter *iter,
 			   bool want_more, u32 *_abort, u16 *_service)
 {
-	struct iov_iter iter;
-	struct kvec iov;
+	size_t offset = 0;
 	int ret;
 
-	_enter("{%d,%s},%zu/%zu,%d",
+	_enter("{%d,%s},%zu,%d",
 	       call->debug_id, rxrpc_call_states[call->state],
-	       *_offset, size, want_more);
+	       iov_iter_count(iter), want_more);
 
-	ASSERTCMP(*_offset, <=, size);
 	ASSERTCMP(call->state, !=, RXRPC_CALL_SERVER_ACCEPTING);
 
-	iov.iov_base = buf + *_offset;
-	iov.iov_len = size - *_offset;
-	iov_iter_kvec(&iter, ITER_KVEC | READ, &iov, 1, size - *_offset);
-
 	mutex_lock(&call->user_mutex);
 
 	switch (READ_ONCE(call->state)) {
 	case RXRPC_CALL_CLIENT_RECV_REPLY:
 	case RXRPC_CALL_SERVER_RECV_REQUEST:
 	case RXRPC_CALL_SERVER_ACK_REQUEST:
-		ret = rxrpc_recvmsg_data(sock, call, NULL, &iter, size, 0,
-					 _offset);
+		ret = rxrpc_recvmsg_data(sock, call, NULL, iter,
+					 iov_iter_count(iter), 0,
+					 &offset);
 		if (ret < 0)
 			goto out;
 
@@ -667,7 +656,7 @@ int rxrpc_kernel_recv_data(struct socket *sock, struct rxrpc_call *call,
 		 * full buffer or have been given -EAGAIN.
 		 */
 		if (ret == 1) {
-			if (*_offset < size)
+			if (iov_iter_count(iter) > 0)
 				goto short_data;
 			if (!want_more)
 				goto read_phase_complete;
@@ -704,7 +693,7 @@ int rxrpc_kernel_recv_data(struct socket *sock, struct rxrpc_call *call,
 	if (_service)
 		*_service = call->service_id;
 	mutex_unlock(&call->user_mutex);
-	_leave(" = %d [%zu,%d]", ret, *_offset, *_abort);
+	_leave(" = %d [%zu,%d]", ret, iov_iter_count(iter), *_abort);
 	return ret;
 
 short_data:
@@ -720,7 +709,7 @@ int rxrpc_kernel_recv_data(struct socket *sock, struct rxrpc_call *call,
 	ret = call->error;
 	if (call->completion == RXRPC_CALL_SUCCEEDED) {
 		ret = 1;
-		if (size > 0)
+		if (iov_iter_count(iter) > 0)
 			ret = -ECONNRESET;
 	}
 	goto out;

^ permalink raw reply related

* Re: [PATCH] iwlegacy: fix spelling mistake "acumulative" -> "accumulative"
From: Stanislaw Gruszka @ 2018-08-03 13:49 UTC (permalink / raw)
  To: Colin King
  Cc: Kalle Valo, David S . Miller, linux-wireless, netdev,
	kernel-janitors, linux-kernel
In-Reply-To: <20180803134224.2609-1-colin.king@canonical.com>

On Fri, Aug 03, 2018 at 02:42:24PM +0100, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> fix spelling mistake in rx stats text
> 
> Signed-off-by: Colin Ian King <colin.king@canonical.com>

Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>

^ permalink raw reply

* about the photos and
From: Sam @ 2018-08-03 11:45 UTC (permalink / raw)
  To: netdev

Do you have photos for editing?
We are image team and we can process 500+ images each day.

We edit ecommerce photo, jewelry photos, and beauty model photos.
also wedding photos.

We do cut out and clipping path for photos, also retouching.

You may send us a test photo to check our quality.

Thanks,
Sam Parker

^ permalink raw reply

* [PATCH 1/1] qed: Add firmware 8.37.7.0
From: Rahul Verma @ 2018-08-03 13:23 UTC (permalink / raw)
  To: kyle, jwboyer
  Cc: netdev, linux-rdma, linux-scsi, linux-firmware, ben, ariel.elior

This patch add a new qed firmware with fixes and added
support for new features.
- Fix a rare case of device crash with iWARP, iSCSI or FCoE offload.
- Fix GRE tunneled traffic when iWARP offload is enabled.
- Fix RoCE failure in ib_send_bw when using inline data.
- Fix latency optimization flow for inline WQEs.
- BigBear 100G fix

Signed-off-by: Rahul Verma <rahul.verma@cavium.com>
Signed-off-by: Ariel Elior <ariel.elior@cavium.com>
---
 WHENCE                                  |   1 +
 qed/qed_init_values_zipped-8.37.7.0.bin | Bin 0 -> 872296 bytes
 2 files changed, 1 insertion(+)
 create mode 100755 qed/qed_init_values_zipped-8.37.7.0.bin

diff --git a/WHENCE b/WHENCE
index 1ec0ae0..af92978 100644
--- a/WHENCE
+++ b/WHENCE
@@ -2253,6 +2253,7 @@ File: qed/qed_init_values_zipped-8.33.1.0.bin
 File: qed/qed_init_values_zipped-8.33.11.0.bin
 File: qed/qed_init_values-8.33.12.0.bin
 File: qed/qed_init_values_zipped-8.37.2.0.bin
+File: qed/qed_init_values_zipped-8.37.7.0.bin
 
 Licence:
   This file contains firmware data derived from proprietary unpublished
diff --git a/qed/qed_init_values_zipped-8.37.7.0.bin b/qed/qed_init_values_zipped-8.37.7.0.bin
new file mode 100755
index 0000000000000000000000000000000000000000..35180a7cf4fbbf6d6d0718b53c5b3e875a8302ad
GIT binary patch
literal 872296
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

literal 0
HcmV?d00001

-- 
1.8.3.1

^ permalink raw reply related

* we look after your photos
From: Sam @ 2018-08-03 12:49 UTC (permalink / raw)
  To: netdev

Do you have photos for editing?
We are image team and we can process 500+ images each day.

We edit ecommerce photo, jewelry photos, and beauty model photos.
also wedding photos.

We do cut out and clipping path for photos, also retouching.

You may send us a test photo to check our quality.

Thanks,
Sam Parker

^ permalink raw reply

* Re: [PATCH net 1/4] mlxsw: core_acl_flex_actions: Return error for conflicting actions
From: Ido Schimmel @ 2018-08-03 13:03 UTC (permalink / raw)
  To: netdev, sfr; +Cc: davem, jiri, petrm, nird, mlxsw
In-Reply-To: <20180803125744.16200-2-idosch@mellanox.com>

+Stephen

On Fri, Aug 03, 2018 at 03:57:41PM +0300, Ido Schimmel wrote:
> From: Nir Dotan <nird@mellanox.com>
> 
> Spectrum switch ACL action set is built in groups of three actions
> which may point to additional actions. A group holds a single record
> which can be set as goto record for pointing at a following group
> or can be set to mark the termination of the lookup. This is perfectly
> adequate for handling a series of actions to be executed on a packet.
> While the SW model allows configuration of conflicting actions
> where it is clear that some actions will never execute, the mlxsw
> driver must block such configurations as it creates a conflict
> over the single terminate/goto record value.
...
> Where it is clear that the last action will never execute, the
> mlxsw driver was issuing a warning instead of returning an error.
> Therefore replace that warning with an error for this specific
> case.
> 
> Fixes: 4cda7d8d7098 ("mlxsw: core: Introduce flexible actions support")
> Signed-off-by: Nir Dotan <nird@mellanox.com>
> Reviewed-by: Jiri Pirko <jiri@mellanox.com>
> Signed-off-by: Ido Schimmel <idosch@mellanox.com>
> ---
>  .../mellanox/mlxsw/core_acl_flex_actions.c    | 42 +++++++++----------

Dave / Stephen, please note that this is going to conflict with recent
extack changes in net-next when you merge net into net-next.

Resolution is available here:
https://github.com/jpirko/linux_mlxsw/blob/combined_queue/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c

Thanks and sorry about the conflict

^ permalink raw reply

* [PATCH net 4/4] mlxsw: core_acl_flex_actions: Remove redundant mirror resource destruction
From: Ido Schimmel @ 2018-08-03 12:57 UTC (permalink / raw)
  To: netdev; +Cc: davem, jiri, petrm, nird, mlxsw, Ido Schimmel
In-Reply-To: <20180803125744.16200-1-idosch@mellanox.com>

From: Nir Dotan <nird@mellanox.com>

In previous patch mlxsw_afa_resource_del() was added to avoid a duplicate
resource detruction scenario.
For mirror actions, such duplicate destruction leads to a crash as in:

 # tc qdisc add dev swp49 ingress
 # tc filter add dev swp49 parent ffff: \
   protocol ip chain 100 pref 10 \
   flower skip_sw dst_ip 192.168.101.1 action drop
 # tc filter add dev swp49 parent ffff: \
   protocol ip pref 10 \
   flower skip_sw dst_ip 192.168.101.1 action goto chain 100 \
   action mirred egress mirror dev swp4

Therefore add a call to mlxsw_afa_resource_del() in
mlxsw_afa_mirror_destroy() in order to clear that resource
from rule's resources.

Fixes: d0d13c1858a1 ("mlxsw: spectrum_acl: Add support for mirror action")
Signed-off-by: Nir Dotan <nird@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
index a54f23f00a5f..f6f6a568d66a 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
@@ -862,6 +862,7 @@ static void
 mlxsw_afa_mirror_destroy(struct mlxsw_afa_block *block,
 			 struct mlxsw_afa_mirror *mirror)
 {
+	mlxsw_afa_resource_del(&mirror->resource);
 	block->afa->ops->mirror_del(block->afa->ops_priv,
 				    mirror->local_in_port,
 				    mirror->span_id,
-- 
2.17.1

^ permalink raw reply related

* [PATCH net 3/4] mlxsw: core_acl_flex_actions: Remove redundant counter destruction
From: Ido Schimmel @ 2018-08-03 12:57 UTC (permalink / raw)
  To: netdev; +Cc: davem, jiri, petrm, nird, mlxsw, Ido Schimmel
In-Reply-To: <20180803125744.16200-1-idosch@mellanox.com>

From: Nir Dotan <nird@mellanox.com>

Each tc flower rule uses a hidden count action. As counter resource may
not be available due to limited HW resources, update _counter_create()
and _counter_destroy() pair to follow previously introduced symmetric
error condition handling, add a call to mlxsw_afa_resource_del() as part
of the counter resource destruction.

Fixes: c18c1e186ba8 ("mlxsw: core: Make counter index allocated inside the action append")
Signed-off-by: Nir Dotan <nird@mellanox.com>
Reviewed-by: Petr Machata <petrm@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
index d664cc0289c2..a54f23f00a5f 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
@@ -584,6 +584,7 @@ static void
 mlxsw_afa_counter_destroy(struct mlxsw_afa_block *block,
 			  struct mlxsw_afa_counter *counter)
 {
+	mlxsw_afa_resource_del(&counter->resource);
 	block->afa->ops->counter_index_put(block->afa->ops_priv,
 					   counter->counter_index);
 	kfree(counter);
-- 
2.17.1

^ permalink raw reply related

* [PATCH net 2/4] mlxsw: core_acl_flex_actions: Remove redundant resource destruction
From: Ido Schimmel @ 2018-08-03 12:57 UTC (permalink / raw)
  To: netdev; +Cc: davem, jiri, petrm, nird, mlxsw, Ido Schimmel
In-Reply-To: <20180803125744.16200-1-idosch@mellanox.com>

From: Nir Dotan <nird@mellanox.com>

Some ACL actions require the allocation of a separate resource
prior to applying the action itself. When facing an error condition
during the setup phase of the action, resource should be destroyed.
For such actions the destruction was done twice which is dangerous
and lead to a potential crash.
The destruction took place first upon error on action setup phase
and then as the rule was destroyed.

The following sequence generated a crash:

 # tc qdisc add dev swp49 ingress
 # tc filter add dev swp49 parent ffff: \
   protocol ip chain 100 pref 10 \
   flower skip_sw dst_ip 192.168.101.1 action drop
 # tc filter add dev swp49 parent ffff: \
   protocol ip pref 10 \
   flower skip_sw dst_ip 192.168.101.1 action goto chain 100 \
   action mirred egress mirror dev swp4

Therefore add mlxsw_afa_resource_del() as a complement of
mlxsw_afa_resource_add() to add symmetry to resource_list membership
handling. Call this from mlxsw_afa_fwd_entry_ref_destroy() to make the
_fwd_entry_ref_create() and _fwd_entry_ref_destroy() pair of calls a
NOP.

Fixes: 140ce421217e ("mlxsw: core: Convert fwd_entry_ref list to be generic per-block resource list")
Signed-off-by: Nir Dotan <nird@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
---
 .../net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
index ce280680258e..d664cc0289c2 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
@@ -327,12 +327,16 @@ static void mlxsw_afa_resource_add(struct mlxsw_afa_block *block,
 	list_add(&resource->list, &block->resource_list);
 }
 
+static void mlxsw_afa_resource_del(struct mlxsw_afa_resource *resource)
+{
+	list_del(&resource->list);
+}
+
 static void mlxsw_afa_resources_destroy(struct mlxsw_afa_block *block)
 {
 	struct mlxsw_afa_resource *resource, *tmp;
 
 	list_for_each_entry_safe(resource, tmp, &block->resource_list, list) {
-		list_del(&resource->list);
 		resource->destructor(block, resource);
 	}
 }
@@ -530,6 +534,7 @@ static void
 mlxsw_afa_fwd_entry_ref_destroy(struct mlxsw_afa_block *block,
 				struct mlxsw_afa_fwd_entry_ref *fwd_entry_ref)
 {
+	mlxsw_afa_resource_del(&fwd_entry_ref->resource);
 	mlxsw_afa_fwd_entry_put(block->afa, fwd_entry_ref->fwd_entry);
 	kfree(fwd_entry_ref);
 }
-- 
2.17.1

^ permalink raw reply related

* [PATCH net 1/4] mlxsw: core_acl_flex_actions: Return error for conflicting actions
From: Ido Schimmel @ 2018-08-03 12:57 UTC (permalink / raw)
  To: netdev; +Cc: davem, jiri, petrm, nird, mlxsw, Ido Schimmel
In-Reply-To: <20180803125744.16200-1-idosch@mellanox.com>

From: Nir Dotan <nird@mellanox.com>

Spectrum switch ACL action set is built in groups of three actions
which may point to additional actions. A group holds a single record
which can be set as goto record for pointing at a following group
or can be set to mark the termination of the lookup. This is perfectly
adequate for handling a series of actions to be executed on a packet.
While the SW model allows configuration of conflicting actions
where it is clear that some actions will never execute, the mlxsw
driver must block such configurations as it creates a conflict
over the single terminate/goto record value.

For a conflicting actions configuration such as:

 # tc filter add dev swp49 parent ffff: \
   protocol ip pref 10 \
   flower skip_sw dst_ip 192.168.101.1 \
   action goto chain 100 \
   action mirred egress mirror dev swp4

Where it is clear that the last action will never execute, the
mlxsw driver was issuing a warning instead of returning an error.
Therefore replace that warning with an error for this specific
case.

Fixes: 4cda7d8d7098 ("mlxsw: core: Introduce flexible actions support")
Signed-off-by: Nir Dotan <nird@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
---
 .../mellanox/mlxsw/core_acl_flex_actions.c    | 42 +++++++++----------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
index 3c0d882ba183..ce280680258e 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
@@ -626,8 +626,8 @@ static char *mlxsw_afa_block_append_action(struct mlxsw_afa_block *block,
 	char *oneact;
 	char *actions;
 
-	if (WARN_ON(block->finished))
-		return NULL;
+	if (block->finished)
+		return ERR_PTR(-EINVAL);
 	if (block->cur_act_index + action_size >
 	    block->afa->max_acts_per_set) {
 		struct mlxsw_afa_set *set;
@@ -637,7 +637,7 @@ static char *mlxsw_afa_block_append_action(struct mlxsw_afa_block *block,
 		 */
 		set = mlxsw_afa_set_create(false);
 		if (!set)
-			return NULL;
+			return ERR_PTR(-ENOBUFS);
 		set->prev = block->cur_set;
 		block->cur_act_index = 0;
 		block->cur_set->next = set;
@@ -724,8 +724,8 @@ int mlxsw_afa_block_append_vlan_modify(struct mlxsw_afa_block *block,
 						  MLXSW_AFA_VLAN_CODE,
 						  MLXSW_AFA_VLAN_SIZE);
 
-	if (!act)
-		return -ENOBUFS;
+	if (IS_ERR(act))
+		return PTR_ERR(act);
 	mlxsw_afa_vlan_pack(act, MLXSW_AFA_VLAN_VLAN_TAG_CMD_NOP,
 			    MLXSW_AFA_VLAN_CMD_SET_OUTER, vid,
 			    MLXSW_AFA_VLAN_CMD_SET_OUTER, pcp,
@@ -806,8 +806,8 @@ int mlxsw_afa_block_append_drop(struct mlxsw_afa_block *block)
 						  MLXSW_AFA_TRAPDISC_CODE,
 						  MLXSW_AFA_TRAPDISC_SIZE);
 
-	if (!act)
-		return -ENOBUFS;
+	if (IS_ERR(act))
+		return PTR_ERR(act);
 	mlxsw_afa_trapdisc_pack(act, MLXSW_AFA_TRAPDISC_TRAP_ACTION_NOP,
 				MLXSW_AFA_TRAPDISC_FORWARD_ACTION_DISCARD, 0);
 	return 0;
@@ -820,8 +820,8 @@ int mlxsw_afa_block_append_trap(struct mlxsw_afa_block *block, u16 trap_id)
 						  MLXSW_AFA_TRAPDISC_CODE,
 						  MLXSW_AFA_TRAPDISC_SIZE);
 
-	if (!act)
-		return -ENOBUFS;
+	if (IS_ERR(act))
+		return PTR_ERR(act);
 	mlxsw_afa_trapdisc_pack(act, MLXSW_AFA_TRAPDISC_TRAP_ACTION_TRAP,
 				MLXSW_AFA_TRAPDISC_FORWARD_ACTION_DISCARD,
 				trap_id);
@@ -836,8 +836,8 @@ int mlxsw_afa_block_append_trap_and_forward(struct mlxsw_afa_block *block,
 						  MLXSW_AFA_TRAPDISC_CODE,
 						  MLXSW_AFA_TRAPDISC_SIZE);
 
-	if (!act)
-		return -ENOBUFS;
+	if (IS_ERR(act))
+		return PTR_ERR(act);
 	mlxsw_afa_trapdisc_pack(act, MLXSW_AFA_TRAPDISC_TRAP_ACTION_TRAP,
 				MLXSW_AFA_TRAPDISC_FORWARD_ACTION_FORWARD,
 				trap_id);
@@ -908,8 +908,8 @@ mlxsw_afa_block_append_allocated_mirror(struct mlxsw_afa_block *block,
 	char *act = mlxsw_afa_block_append_action(block,
 						  MLXSW_AFA_TRAPDISC_CODE,
 						  MLXSW_AFA_TRAPDISC_SIZE);
-	if (!act)
-		return -ENOBUFS;
+	if (IS_ERR(act))
+		return PTR_ERR(act);
 	mlxsw_afa_trapdisc_pack(act, MLXSW_AFA_TRAPDISC_TRAP_ACTION_NOP,
 				MLXSW_AFA_TRAPDISC_FORWARD_ACTION_FORWARD, 0);
 	mlxsw_afa_trapdisc_mirror_pack(act, true, mirror_agent);
@@ -996,8 +996,8 @@ int mlxsw_afa_block_append_fwd(struct mlxsw_afa_block *block,
 
 	act = mlxsw_afa_block_append_action(block, MLXSW_AFA_FORWARD_CODE,
 					    MLXSW_AFA_FORWARD_SIZE);
-	if (!act) {
-		err = -ENOBUFS;
+	if (IS_ERR(act)) {
+		err = PTR_ERR(act);
 		goto err_append_action;
 	}
 	mlxsw_afa_forward_pack(act, MLXSW_AFA_FORWARD_TYPE_PBS,
@@ -1052,8 +1052,8 @@ int mlxsw_afa_block_append_allocated_counter(struct mlxsw_afa_block *block,
 {
 	char *act = mlxsw_afa_block_append_action(block, MLXSW_AFA_POLCNT_CODE,
 						  MLXSW_AFA_POLCNT_SIZE);
-	if (!act)
-		return -ENOBUFS;
+	if (IS_ERR(act))
+		return PTR_ERR(act);
 	mlxsw_afa_polcnt_pack(act, MLXSW_AFA_POLCNT_COUNTER_SET_TYPE_PACKETS_BYTES,
 			      counter_index);
 	return 0;
@@ -1123,8 +1123,8 @@ int mlxsw_afa_block_append_fid_set(struct mlxsw_afa_block *block, u16 fid)
 	char *act = mlxsw_afa_block_append_action(block,
 						  MLXSW_AFA_VIRFWD_CODE,
 						  MLXSW_AFA_VIRFWD_SIZE);
-	if (!act)
-		return -ENOBUFS;
+	if (IS_ERR(act))
+		return PTR_ERR(act);
 	mlxsw_afa_virfwd_pack(act, MLXSW_AFA_VIRFWD_FID_CMD_SET, fid);
 	return 0;
 }
@@ -1193,8 +1193,8 @@ int mlxsw_afa_block_append_mcrouter(struct mlxsw_afa_block *block,
 	char *act = mlxsw_afa_block_append_action(block,
 						  MLXSW_AFA_MCROUTER_CODE,
 						  MLXSW_AFA_MCROUTER_SIZE);
-	if (!act)
-		return -ENOBUFS;
+	if (IS_ERR(act))
+		return PTR_ERR(act);
 	mlxsw_afa_mcrouter_pack(act, MLXSW_AFA_MCROUTER_RPF_ACTION_TRAP,
 				expected_irif, min_mtu, rmid_valid, kvdl_index);
 	return 0;
-- 
2.17.1

^ permalink raw reply related

* [PATCH net 0/4] mlxsw: Fix ACL actions error condition handling
From: Ido Schimmel @ 2018-08-03 12:57 UTC (permalink / raw)
  To: netdev; +Cc: davem, jiri, petrm, nird, mlxsw, Ido Schimmel

Nir says:

Two issues were lately noticed within mlxsw ACL actions error condition
handling. The first patch deals with conflicting actions such as:

 # tc filter add dev swp49 parent ffff: \
   protocol ip pref 10 flower skip_sw dst_ip 192.168.101.1 \
   action goto chain 100 \
   action mirred egress redirect dev swp4

The second action will never execute, however SW model allows this
configuration, while the mlxsw driver cannot allow for it as it
implements actions in sets of up to three actions per set with a single
termination marking. Conflicting actions create a contradiction over
this single marking and thus cannot be configured. The fix replaces a
misplaced warning with an error code to be returned.

Patches 2-4 fix a condition of duplicate destruction of resources. Some
actions require allocation of specific resource prior to setting the
action itself. On error condition this resource was destroyed twice,
leading to a crash when using mirror action, and to a redundant
destruction in other cases, since for error condition rule destruction
also takes care of resource destruction. In order to fix this state a
symmetry in behavior is added and resource destruction also takes care
of removing the resource from rule's resource list.

Nir Dotan (4):
  mlxsw: core_acl_flex_actions: Return error for conflicting actions
  mlxsw: core_acl_flex_actions: Remove redundant resource destruction
  mlxsw: core_acl_flex_actions: Remove redundant counter destruction
  mlxsw: core_acl_flex_actions: Remove redundant mirror resource
    destruction

 .../mellanox/mlxsw/core_acl_flex_actions.c    | 51 +++++++++++--------
 1 file changed, 29 insertions(+), 22 deletions(-)

-- 
2.17.1

^ permalink raw reply

* Re: [PATCH v1 3/3] net: WireGuard secure network tunnel
From: Andrew Lunn @ 2018-08-03 14:39 UTC (permalink / raw)
  To: Jason A. Donenfeld
  Cc: Stephen Hemminger, LKML, Netdev, David Miller, Greg Kroah-Hartman
In-Reply-To: <CAHmME9oWYD7TUSkbqAFRFk9kwSWDfC2h-J72gpdxJiw5i1yrXw@mail.gmail.com>

On Fri, Aug 03, 2018 at 02:35:40AM +0200, Jason A. Donenfeld wrote:
> On Tue, Jul 31, 2018 at 10:02 PM Andrew Lunn <andrew@lunn.ch> wrote:
> > I just gave this patch to checkpatch.pl...
> On Tue, Jul 31, 2018 at 10:22 PM Stephen Hemminger
> <stephen@networkplumber.org> wrote:
> > Please break lines at something reasonable like 100 characters.
> 
> If the long lines really truly are dreadful, I have no problem fixing
> that up for v2.

A very large percentage of the kernel code uses 80 characters maximum.
So anything which does not makes it look different. It makes it not
look like kernel code. It is also not just about styling. If you use
long lines, it makes it easier to use more indentation levels. But
good readable code tends to have lots of little functions with only
one or two levels of indentation, and each function does just one
easily understood thing.

Plus this is pretty much an open invite for kernel newbies to submit
patches fixing up all these warnings. Maybe you would prefer to do it
yourself, so you keep some degree of control over it. Also, such white
space changes make backporting fixes more difficult. So it is better
if you can get this done before it lands in the kernel and backporting
becomes necessary.

> On Tue, Jul 31, 2018 at 10:02 PM Andrew Lunn <andrew@lunn.ch> wrote:
> > > +static __always_inline void swap_endian(u8 *dst, const u8 *src, u8 bits)
> > There is a general preference to not force the compile to
> > inline. Leave it to decide.
> 
> I'm aware this is for the most part the case, and I've read the
> variety of threads and documentation of folks explaining why this is a
> good policy. In the particular instance of that function, inlining is
> in fact always the right thing to do. But I'll give it a double check
> to see if the compiler is already figuring that out on its own.

Well, what compiler are you going to check? I think the minimum
version of GCC is now v4.5. So you probably want to check 8.2, 7.3,
6.4, 5.5, 4.9.3 and 4.8. And you might want to check ARM, MIPs, x86
and amd64. So only 24 versions.

More realistically, if you have a strong argument why a particular
function must be inlined, e.g. to avoid a timing attack, make that
argument.

	Andrew

^ permalink raw reply

* [PATCH] iwlegacy: fix spelling mistake "acumulative" -> "accumulative"
From: Colin King @ 2018-08-03 13:42 UTC (permalink / raw)
  To: Stanislaw Gruszka, Kalle Valo, David S . Miller, linux-wireless,
	netdev
  Cc: kernel-janitors, linux-kernel

From: Colin Ian King <colin.king@canonical.com>

fix spelling mistake in rx stats text

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 drivers/net/wireless/intel/iwlegacy/3945-debug.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/intel/iwlegacy/3945-debug.c b/drivers/net/wireless/intel/iwlegacy/3945-debug.c
index c1b4441fb8b2..a2960032be81 100644
--- a/drivers/net/wireless/intel/iwlegacy/3945-debug.c
+++ b/drivers/net/wireless/intel/iwlegacy/3945-debug.c
@@ -95,7 +95,7 @@ il3945_ucode_rx_stats_read(struct file *file, char __user *user_buf,
 	pos +=
 	    scnprintf(buf + pos, bufsz - pos,
 		      "%-32s     current"
-		      "acumulative       delta         max\n",
+		      "accumulative      delta         max\n",
 		      "Statistics_Rx - OFDM:");
 	pos +=
 	    scnprintf(buf + pos, bufsz - pos,
-- 
2.17.1

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox