Skip to content

Commit de84a09

Browse files
LorenzoBianconiPaolo Abeni
authored andcommitted
net: ethernet: mtk_eth_wed: add wed support for mt7986 chipset
Introduce Wireless Etherne Dispatcher support on transmission side for mt7986 chipset Tested-by: Daniel Golle <daniel@makrotopia.org> Co-developed-by: Bo Jiao <Bo.Jiao@mediatek.com> Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com> Co-developed-by: Sujuan Chen <sujuan.chen@mediatek.com> Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
1 parent cf26df8 commit de84a09

File tree

6 files changed

+401
-97
lines changed

6 files changed

+401
-97
lines changed

drivers/net/ethernet/mediatek/mtk_eth_soc.c

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3944,6 +3944,7 @@ void mtk_eth_set_dma_device(struct mtk_eth *eth, struct device *dma_dev)
39443944

39453945
static int mtk_probe(struct platform_device *pdev)
39463946
{
3947+
struct resource *res = NULL;
39473948
struct device_node *mac_np;
39483949
struct mtk_eth *eth;
39493950
int err, i;
@@ -4024,16 +4025,31 @@ static int mtk_probe(struct platform_device *pdev)
40244025
}
40254026
}
40264027

4027-
for (i = 0;; i++) {
4028-
struct device_node *np = of_parse_phandle(pdev->dev.of_node,
4029-
"mediatek,wed", i);
4030-
void __iomem *wdma;
4031-
4032-
if (!np || i >= ARRAY_SIZE(eth->soc->reg_map->wdma_base))
4033-
break;
4028+
if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
4029+
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
4030+
if (!res)
4031+
return -EINVAL;
4032+
}
40344033

4035-
wdma = eth->base + eth->soc->reg_map->wdma_base[i];
4036-
mtk_wed_add_hw(np, eth, wdma, i);
4034+
if (eth->soc->offload_version) {
4035+
for (i = 0;; i++) {
4036+
struct device_node *np;
4037+
phys_addr_t wdma_phy;
4038+
u32 wdma_base;
4039+
4040+
if (i >= ARRAY_SIZE(eth->soc->reg_map->wdma_base))
4041+
break;
4042+
4043+
np = of_parse_phandle(pdev->dev.of_node,
4044+
"mediatek,wed", i);
4045+
if (!np)
4046+
break;
4047+
4048+
wdma_base = eth->soc->reg_map->wdma_base[i];
4049+
wdma_phy = res ? res->start + wdma_base : 0;
4050+
mtk_wed_add_hw(np, eth, eth->base + wdma_base,
4051+
wdma_phy, i);
4052+
}
40374053
}
40384054

40394055
for (i = 0; i < 3; i++) {

0 commit comments

Comments
 (0)