diff options
-rw-r--r-- | drivers/net/dsa/b53/b53_common.c | 10 | ||||
-rw-r--r-- | drivers/net/dsa/b53/b53_regs.h | 4 |
2 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index 8cf4801994e8..ca7f3b005a29 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c | |||
@@ -326,6 +326,7 @@ static void b53_get_vlan_entry(struct b53_device *dev, u16 vid, | |||
326 | 326 | ||
327 | static void b53_set_forwarding(struct b53_device *dev, int enable) | 327 | static void b53_set_forwarding(struct b53_device *dev, int enable) |
328 | { | 328 | { |
329 | struct dsa_switch *ds = dev->ds; | ||
329 | u8 mgmt; | 330 | u8 mgmt; |
330 | 331 | ||
331 | b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, &mgmt); | 332 | b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, &mgmt); |
@@ -336,6 +337,15 @@ static void b53_set_forwarding(struct b53_device *dev, int enable) | |||
336 | mgmt &= ~SM_SW_FWD_EN; | 337 | mgmt &= ~SM_SW_FWD_EN; |
337 | 338 | ||
338 | b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, mgmt); | 339 | b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, mgmt); |
340 | |||
341 | /* Include IMP port in dumb forwarding mode when no tagging protocol is | ||
342 | * set | ||
343 | */ | ||
344 | if (ds->ops->get_tag_protocol(ds) == DSA_TAG_PROTO_NONE) { | ||
345 | b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt); | ||
346 | mgmt |= B53_MII_DUMB_FWDG_EN; | ||
347 | b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt); | ||
348 | } | ||
339 | } | 349 | } |
340 | 350 | ||
341 | static void b53_enable_vlan(struct b53_device *dev, bool enable) | 351 | static void b53_enable_vlan(struct b53_device *dev, bool enable) |
diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index 9fd24c418fa4..f2a060e7a637 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h | |||
@@ -104,6 +104,10 @@ | |||
104 | #define B53_UC_FWD_EN BIT(6) | 104 | #define B53_UC_FWD_EN BIT(6) |
105 | #define B53_MC_FWD_EN BIT(7) | 105 | #define B53_MC_FWD_EN BIT(7) |
106 | 106 | ||
107 | /* Switch control (8 bit) */ | ||
108 | #define B53_SWITCH_CTRL 0x22 | ||
109 | #define B53_MII_DUMB_FWDG_EN BIT(6) | ||
110 | |||
107 | /* (16 bit) */ | 111 | /* (16 bit) */ |
108 | #define B53_UC_FLOOD_MASK 0x32 | 112 | #define B53_UC_FLOOD_MASK 0x32 |
109 | #define B53_MC_FLOOD_MASK 0x34 | 113 | #define B53_MC_FLOOD_MASK 0x34 |