diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2013-09-15 13:29:14 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2013-09-15 13:29:14 +0000 |
commit | 49d7c57fd131168517ac04cc6ed29f19e275f074 (patch) | |
tree | fbff1984c2443537471d235c16a7d4927878a1ca /target/linux/generic/files/drivers/net/phy/b53/b53_common.c | |
parent | c9399a1c81f7c9811fbc1812421f1886ee101cf5 (diff) | |
download | master-31e0f0ae-49d7c57fd131168517ac04cc6ed29f19e275f074.tar.gz master-31e0f0ae-49d7c57fd131168517ac04cc6ed29f19e275f074.tar.bz2 master-31e0f0ae-49d7c57fd131168517ac04cc6ed29f19e275f074.zip |
kernel: b53: fix vlan write for BCM5325 revison 3+
These switches are integrated in some recent BCM53XX and BCM47XX SoCs
like the BCM53572.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 37994
Diffstat (limited to 'target/linux/generic/files/drivers/net/phy/b53/b53_common.c')
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/b53/b53_common.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c index d1fc930f27..4d1e0ee4ba 100644 --- a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c +++ b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c @@ -188,8 +188,13 @@ static void b53_set_vlan_entry(struct b53_device *dev, u16 vid, u16 members, if (is5325(dev)) { u32 entry = 0; - if (members) - entry = (untag << VA_UNTAG_S) | members | VA_VALID_25; + if (members) { + entry = (untag << VA_UNTAG_S) | members; + if (dev->core_rev >= 3) + entry |= VA_VALID_25_R4 | vid << VA_VID_HIGH_S; + else + entry |= VA_VALID_25; + } b53_write32(dev, B53_VLAN_PAGE, B53_VLAN_WRITE_25, entry); b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, vid | |