|
@@ -326,6 +326,7 @@ static void b53_get_vlan_entry(struct b53_device *dev, u16 vid,
|
|
|
|
|
|
static void b53_set_forwarding(struct b53_device *dev, int enable)
|
|
|
{
|
|
|
+ struct dsa_switch *ds = dev->ds;
|
|
|
u8 mgmt;
|
|
|
|
|
|
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)
|
|
|
mgmt &= ~SM_SW_FWD_EN;
|
|
|
|
|
|
b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, mgmt);
|
|
|
+
|
|
|
+ /* Include IMP port in dumb forwarding mode when no tagging protocol is
|
|
|
+ * set
|
|
|
+ */
|
|
|
+ if (ds->ops->get_tag_protocol(ds) == DSA_TAG_PROTO_NONE) {
|
|
|
+ b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt);
|
|
|
+ mgmt |= B53_MII_DUMB_FWDG_EN;
|
|
|
+ b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static void b53_enable_vlan(struct b53_device *dev, bool enable)
|