Due to the complexity it can be hard to know why DSA fails to probe. Add some debug prints for the common error cases.
Signed-off-by: Andrew Lunn <and...@lunn.ch> Acked-by: Florian Fainelli <f.faine...@gmail.com> --- net/dsa/dsa.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c index 0be85a14a835..9acfbe7c34f7 100644 --- a/net/dsa/dsa.c +++ b/net/dsa/dsa.c @@ -679,6 +679,7 @@ static int dsa_of_probe(struct device *dev, struct dsa_platform_data *pd) ethernet = of_parse_phandle(np, "dsa,ethernet", 0); if (!ethernet) { + dev_dbg(dev, "Missing mandatory dsa,ethernet property\n"); ret = -EINVAL; goto out_put_mdio; } @@ -710,8 +711,10 @@ static int dsa_of_probe(struct device *dev, struct dsa_platform_data *pd) if (chip) { cd->of_chip = chip; } else { - if (!mdio) + if (!mdio) { + dev_dbg(dev, "Missing required dsa,mii-bus property\n"); return -EINVAL; + } mdio_bus = of_mdio_find_bus(mdio); if (!mdio_bus) @@ -1018,14 +1021,18 @@ int dsa_switch_register(struct dsa_switch_tree *dst, struct dsa_switch *ds, struct dsa_platform_data *pd = dst->pd; int index = dsa_find_chip_index(dst, np); - if (index < 0) + if (index < 0) { + netdev_dbg(dst->master_netdev, "Registration for unknown switch\n"); return index; + } netdev_info(dst->master_netdev, "[%d]: detected a %s switch\n", index, name); - if (dst->ds[index]) + if (dst->ds[index]) { + netdev_dbg(dst->master_netdev, "Device already registered\n"); return -EINVAL; + } ds->index = index; ds->pd = &pd->chip[index]; -- 2.7.0