@@ -1345,7 +1345,7 @@ static int
mt7530_probe(struct mdio_device *mdiodev)
{
struct mt7530_priv *priv;
- struct device_node *dn;
+ struct device_node *dn, *mdio;
dn = mdiodev->dev.of_node;
@@ -1392,8 +1392,14 @@ mt7530_probe(struct mdio_device *mdiodev)
return PTR_ERR(priv->reset);
}
}
+ mdio = of_get_parent(dn);
+ if (!mdio)
+ return -EINVAL;
+
+ priv->bus = of_mdio_find_bus(mdio);
+ if (!priv->bus)
+ return -EPROBE_DEFER;
- priv->bus = mdiodev->bus;
priv->dev = &mdiodev->dev;
priv->ds->priv = priv;
priv->ds->ops = &mt7530_switch_ops;
based on https://github.com/openwrt/openwrt/blob/master/target/linux/mediatek/patches-4.14/0045-net-dsa-mediatek-turn-into-platform-driver.patch Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- drivers/net/dsa/mt7530.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)