OSDN Git Service

net: ethernet: mtk_eth_soc: move wdma_base definitions in mtk register map
authorLorenzo Bianconi <lorenzo@kernel.org>
Tue, 20 Sep 2022 10:11:18 +0000 (12:11 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 22 Sep 2022 13:13:23 +0000 (15:13 +0200)
This is a preliminary patch to introduce mt7986 wed support.

Tested-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/mediatek/mtk_eth_soc.c
drivers/net/ethernet/mediatek/mtk_eth_soc.h

index bbafe55..f289b99 100644 (file)
@@ -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);
        }
 
index 5444879..39a0361 100644 (file)
 #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