net: dsa: b53: Disable all ports on setup
authorBenedikt Spranger <b.spranger@linutronix.de>
Fri, 28 Jun 2019 16:58:11 +0000 (18:58 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 Jun 2019 20:34:13 +0000 (13:34 -0700)
A b53 device may configured through an external EEPROM like the switch
device on the Lamobo R1 router board. The configuration of a port may
therefore differ from the reset configuration of the switch.

The switch configuration reported by the DSA subsystem is different until
the port is configured by DSA i.e. a port can be active, while the DSA
subsystem reports the port is inactive. Disable all ports and not only
the unused ones to put all ports into a well defined state.

Signed-off-by: Benedikt Spranger <b.spranger@linutronix.de>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/b53/b53_common.c

index c8040ecf4425bb85c8569d65e91e13dae0bff692..907af62846ba88c01bb745c2f1801d7d37de993f 100644 (file)
@@ -955,13 +955,13 @@ static int b53_setup(struct dsa_switch *ds)
        if (ret)
                dev_err(ds->dev, "failed to apply configuration\n");
 
-       /* Configure IMP/CPU port, disable unused ports. Enabled
+       /* Configure IMP/CPU port, disable all other ports. Enabled
         * ports will be configured with .port_enable
         */
        for (port = 0; port < dev->num_ports; port++) {
                if (dsa_is_cpu_port(ds, port))
                        b53_enable_cpu_port(dev, port);
-               else if (dsa_is_unused_port(ds, port))
+               else
                        b53_disable_port(ds, port);
        }