net: dsa: Deal with non-existing PHY/fixed-link
authorFlorian Fainelli <f.fainelli@gmail.com>
Mon, 10 Jun 2019 19:31:49 +0000 (12:31 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Jun 2019 18:01:20 +0000 (11:01 -0700)
We need to specifically deal with phylink_of_phy_connect() returning
-ENODEV, because this can happen when a CPU/DSA port does connect
neither to a PHY, nor has a fixed-link property. This is a valid use
case that is permitted by the binding and indicates to the switch:
auto-configure port with maximum capabilities.

Fixes: 0e27921816ad ("net: dsa: Use PHYLINK for the CPU/DSA ports")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/port.c

index 70744fec9717868ade2ec40e22d29cb1bd42c46a..585b6b9a9433a23d54e6e9951a93314a7d680aa2 100644 (file)
@@ -618,7 +618,7 @@ static int dsa_port_phylink_register(struct dsa_port *dp)
        }
 
        err = phylink_of_phy_connect(dp->pl, port_dn, 0);
-       if (err) {
+       if (err && err != -ENODEV) {
                pr_err("could not attach to PHY: %d\n", err);
                goto err_phy_connect;
        }