ramips: set default vid of each vlan, so it won't need be set explicitly.

Signed-off-by: Xiongfei Guo <xfguo@credosemi.com>

SVN-Revision: 41448
v19.07.3_mercusys_ac12_duma
John Crispin 10 years ago
parent 4ddc0f9ff3
commit 9c84f72f85

@ -2814,7 +2814,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+#endif +#endif
--- /dev/null --- /dev/null
+++ b/drivers/net/ethernet/ralink/mt7530.c +++ b/drivers/net/ethernet/ralink/mt7530.c
@@ -0,0 +1,571 @@ @@ -0,0 +1,579 @@
+/* +/*
+ * This program is free software; you can redistribute it and/or + * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License + * modify it under the terms of the GNU General Public License
@ -2912,15 +2912,15 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ { + {
+ .name = "llllw", + .name = "llllw",
+ .pvids = { 1, 1, 1, 1, 2, 1, 1 }, + .pvids = { 1, 1, 1, 1, 2, 1, 1 },
+ .members = { 0x6f, 0x50 }, + .members = { 0, 0x6f, 0x50 },
+ .etags = { 0x40, 0x40 }, + .etags = { 0, 0x40, 0x40 },
+ .vids = { 1, 2 }, + .vids = { 0, 1, 2 },
+ }, { + }, {
+ .name = "wllll", + .name = "wllll",
+ .pvids = { 2, 1, 1, 1, 1, 1, 1 }, + .pvids = { 2, 1, 1, 1, 1, 1, 1 },
+ .members = { 0x7e, 0x41 }, + .members = { 0, 0x7e, 0x41 },
+ .etags = { 0x40, 0x40 }, + .etags = { 0, 0x40, 0x40 },
+ .vids = { 1, 2 }, + .vids = { 0, 1, 2 },
+ }, + },
+}; +};
+ +
@ -2961,10 +2961,18 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+mt7530_reset_switch(struct switch_dev *dev) +mt7530_reset_switch(struct switch_dev *dev)
+{ +{
+ struct mt7530_priv *priv = container_of(dev, struct mt7530_priv, swdev); + struct mt7530_priv *priv = container_of(dev, struct mt7530_priv, swdev);
+ int i;
+ +
+ memset(priv->port_entries, 0, sizeof(priv->port_entries)); + memset(priv->port_entries, 0, sizeof(priv->port_entries));
+ memset(priv->vlan_entries, 0, sizeof(priv->vlan_entries)); + memset(priv->vlan_entries, 0, sizeof(priv->vlan_entries));
+ +
+ /* set default vid of each vlan to the same number of vlan, so the vid
+ * won't need be set explicitly.
+ */
+ for (i = 0; i < MT7530_NUM_VLANS; i++) {
+ priv->vlan_entries[i].vid = i;
+ }
+
+ return 0; + return 0;
+} +}
+ +
@ -3158,7 +3166,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ vid = (u16)val->value.i; + vid = (u16)val->value.i;
+ +
+ if (vlan < 0 || vlan >= MT7530_NUM_VLANS) + if (vlan < 0 || vlan >= MT7530_NUM_VLANS)
+ return -EINVAL; + return -EINVAL;
+ +
+ if (vid < MT7530_MIN_VID || vid > MT7530_MAX_VID) + if (vid < MT7530_MIN_VID || vid > MT7530_MAX_VID)
+ return -EINVAL; + return -EINVAL;

Loading…
Cancel
Save