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

Reply via email to