diff options
Diffstat (limited to 'net/dsa')
-rw-r--r-- | net/dsa/mv88e6131.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/dsa/mv88e6131.c b/net/dsa/mv88e6131.c index 45f7411e90ba..9bd1061fa4ee 100644 --- a/net/dsa/mv88e6131.c +++ b/net/dsa/mv88e6131.c | |||
@@ -118,10 +118,14 @@ static int mv88e6131_setup_global(struct dsa_switch *ds) | |||
118 | REG_WRITE(REG_GLOBAL, 0x1a, (dsa_upstream_port(ds) * 0x1100) | 0x00f0); | 118 | REG_WRITE(REG_GLOBAL, 0x1a, (dsa_upstream_port(ds) * 0x1100) | 0x00f0); |
119 | 119 | ||
120 | /* | 120 | /* |
121 | * Disable cascade port functionality, and set the switch's | 121 | * Disable cascade port functionality unless this device |
122 | * is used in a cascade configuration, and set the switch's | ||
122 | * DSA device number. | 123 | * DSA device number. |
123 | */ | 124 | */ |
124 | REG_WRITE(REG_GLOBAL, 0x1c, 0xe000 | (ds->index & 0x1f)); | 125 | if (ds->dst->pd->nr_chips > 1) |
126 | REG_WRITE(REG_GLOBAL, 0x1c, 0xf000 | (ds->index & 0x1f)); | ||
127 | else | ||
128 | REG_WRITE(REG_GLOBAL, 0x1c, 0xe000 | (ds->index & 0x1f)); | ||
125 | 129 | ||
126 | /* | 130 | /* |
127 | * Send all frames with destination addresses matching | 131 | * Send all frames with destination addresses matching |