Commit 0c1d3fb9 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Paolo Abeni
Browse files

net: ethernet: mtk_eth_soc: move wdma_base definitions in mtk register map



This is a preliminary patch to introduce mt7986 wed support.

Tested-by: default avatarDaniel Golle <daniel@makrotopia.org>
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 4ff1a3fc
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -75,6 +75,10 @@ static const struct mtk_reg_map mtk_reg_map = {
	.gdm1_cnt		= 0x2400,
	.gdma_to_ppe		= 0x4444,
	.ppe_base		= 0x0c00,
	.wdma_base = {
		[0]		= 0x2800,
		[1]		= 0x2c00,
	},
};

static const struct mtk_reg_map mt7628_reg_map = {
@@ -130,6 +134,10 @@ static const struct mtk_reg_map mt7986_reg_map = {
	.gdm1_cnt		= 0x1c00,
	.gdma_to_ppe		= 0x3333,
	.ppe_base		= 0x2000,
	.wdma_base = {
		[0]		= 0x4800,
		[1]		= 0x4c00,
	},
};

/* strings used by ethtool */
@@ -4019,16 +4027,12 @@ static int mtk_probe(struct platform_device *pdev)
	for (i = 0;; i++) {
		struct device_node *np = of_parse_phandle(pdev->dev.of_node,
							  "mediatek,wed", i);
		static const u32 wdma_regs[] = {
			MTK_WDMA0_BASE,
			MTK_WDMA1_BASE
		};
		void __iomem *wdma;

		if (!np || i >= ARRAY_SIZE(wdma_regs))
		if (!np || i >= ARRAY_SIZE(eth->soc->reg_map->wdma_base))
			break;

		wdma = eth->base + wdma_regs[i];
		wdma = eth->base + eth->soc->reg_map->wdma_base[i];
		mtk_wed_add_hw(np, eth, wdma, i);
	}

+1 −3
Original line number Diff line number Diff line
@@ -268,9 +268,6 @@
#define TX_DMA_FPORT_MASK_V2	0xf
#define TX_DMA_SWC_V2		BIT(30)

#define MTK_WDMA0_BASE		0x2800
#define MTK_WDMA1_BASE		0x2c00

/* QDMA descriptor txd4 */
#define TX_DMA_CHKSUM		(0x7 << 29)
#define TX_DMA_TSO		BIT(28)
@@ -956,6 +953,7 @@ struct mtk_reg_map {
	u32	gdm1_cnt;
	u32	gdma_to_ppe;
	u32	ppe_base;
	u32	wdma_base[2];
};

/* struct mtk_eth_data -	This is the structure holding all differences