stmmac: dwmac-loongson: fix invalid mdio_node
authorLiu Peibao <liupeibao@loongson.cn>
Tue, 1 Nov 2022 06:02:18 +0000 (14:02 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 3 Nov 2022 03:30:51 +0000 (20:30 -0700)
In current code "plat->mdio_node" is always NULL, the mdio
support is lost as there is no "mdio_bus_data". The original
driver could work as the "mdio" variable is never set to
false, which is described in commit <b0e03950dd71> ("stmmac:
dwmac-loongson: fix uninitialized variable ......"). And
after this commit merged, the "mdio" variable is always
false, causing the mdio supoort logic lost.

Fixes: 30bba69d7db4 ("stmmac: pci: Add dwmac support for Loongson")
Signed-off-by: Liu Peibao <liupeibao@loongson.cn>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20221101060218.16453-1-liupeibao@loongson.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c

index 017dbbd..79fa787 100644 (file)
@@ -51,7 +51,6 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
        struct stmmac_resources res;
        struct device_node *np;
        int ret, i, phy_mode;
-       bool mdio = false;
 
        np = dev_of_node(&pdev->dev);
 
@@ -69,12 +68,10 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
        if (!plat)
                return -ENOMEM;
 
+       plat->mdio_node = of_get_child_by_name(np, "mdio");
        if (plat->mdio_node) {
-               dev_err(&pdev->dev, "Found MDIO subnode\n");
-               mdio = true;
-       }
+               dev_info(&pdev->dev, "Found MDIO subnode\n");
 
-       if (mdio) {
                plat->mdio_bus_data = devm_kzalloc(&pdev->dev,
                                                   sizeof(*plat->mdio_bus_data),
                                                   GFP_KERNEL);