@@ -74,18 +74,12 @@ static int mv88e6131_setup_global(struct dsa_switch *ds)
if (ret)
return ret;
- /* Disable cascade port functionality unless this device
- * is used in a cascade configuration, and set the switch's
- * DSA device number.
+ /* Set the switch's DSA device number and enable the use of
+ * the routing table.
*/
- if (ds->dst->pd->nr_chips > 1)
- ret = mv88e6xxx_reg_write(ps, REG_GLOBAL, GLOBAL_CONTROL_2,
- GLOBAL_CONTROL_2_MULTIPLE_CASCADE |
- (ds->index & 0x1f));
- else
- ret = mv88e6xxx_reg_write(ps, REG_GLOBAL, GLOBAL_CONTROL_2,
- GLOBAL_CONTROL_2_NO_CASCADE |
- (ds->index & 0x1f));
+ ret = mv88e6xxx_reg_write(ps, REG_GLOBAL, GLOBAL_CONTROL_2,
+ GLOBAL_CONTROL_2_MULTIPLE_CASCADE |
+ (ds->index & 0x1f));
if (ret)
return ret;
When multiple switches are interconnected in a tree, a routing table is used for directing packets out the correct port towards a remote destination. This works equally well for a single switch, since the routing table is empty. So don't special case for a single switch. This makes the mv88e6131 behave like the other drivers. Signed-off-by: Andrew Lunn <andrew@lunn.ch> --- drivers/net/dsa/mv88e6131.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-)