projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kernel: b53: fix untagged shift for BCM5365
[openwrt.git]
/
target
/
linux
/
generic
/
files
/
drivers
/
net
/
phy
/
b53
/
b53_common.c
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 39027c1771066e6eb9cdba0f088e84de7eec9885..f5dd068a1b03b72ca8249e3b46b6744690ee79d5 100644
(file)
--- a/
target/linux/generic/files/drivers/net/phy/b53/b53_common.c
+++ b/
target/linux/generic/files/drivers/net/phy/b53/b53_common.c
@@
-189,7
+189,8
@@
static void b53_set_vlan_entry(struct b53_device *dev, u16 vid, u16 members,
u32 entry = 0;
if (members) {
u32 entry = 0;
if (members) {
- entry = (untag << VA_UNTAG_S) | members;
+ entry = ((untag & VA_UNTAG_MASK_25) << VA_UNTAG_S_25) |
+ members;
if (dev->core_rev >= 3)
entry |= VA_VALID_25_R4 | vid << VA_VID_HIGH_S;
else
if (dev->core_rev >= 3)
entry |= VA_VALID_25_R4 | vid << VA_VID_HIGH_S;
else
@@
-203,7
+204,8
@@
static void b53_set_vlan_entry(struct b53_device *dev, u16 vid, u16 members,
u16 entry = 0;
if (members)
u16 entry = 0;
if (members)
- entry = (untag << VA_UNTAG_S) | members | VA_VALID_65;
+ entry = ((untag & VA_UNTAG_MASK_65) << VA_UNTAG_S_65) |
+ members | VA_VALID_65;
b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_WRITE_65, entry);
b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_65, vid |
b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_WRITE_65, entry);
b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_65, vid |