ramips: set default vid of each vlan, so it won't need be set explicitly.
authorJohn Crispin <john@openwrt.org>
Tue, 1 Jul 2014 13:18:27 +0000 (13:18 +0000)
committerJohn Crispin <john@openwrt.org>
Tue, 1 Jul 2014 13:18:27 +0000 (13:18 +0000)
Signed-off-by: Xiongfei Guo <xfguo@credosemi.com>
SVN-Revision: 41448

target/linux/ramips/patches-3.10/0118-NET-MIPS-add-ralink-SoC-ethernet-driver.patch

index c5d6623d4c510c03f3d089313c58828b8817df6f..6eb624fb893957e2ebf9f84e9b14375589fbe4b2 100644 (file)
@@ -2814,7 +2814,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +#endif
 --- /dev/null
 +++ 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
 + * 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",
 +              .pvids = { 1, 1, 1, 1, 2, 1, 1 },
-+              .members = { 0x6f, 0x50 },
-+              .etags = { 0x40, 0x40 },
-+              .vids = { 1, 2 },
++              .members = { 0, 0x6f, 0x50 },
++              .etags = { 0, 0x40, 0x40 },
++              .vids = { 0, 1, 2 },
 +      }, {
 +              .name = "wllll",
 +              .pvids = { 2, 1, 1, 1, 1, 1, 1 },
-+              .members = { 0x7e, 0x41 },
-+              .etags = { 0x40, 0x40 },
-+              .vids = { 1, 2 },
++              .members = { 0, 0x7e, 0x41 },
++              .etags = { 0, 0x40, 0x40 },
++              .vids = { 0, 1, 2 },
 +      },
 +};
 +
@@ -2961,10 +2961,18 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +mt7530_reset_switch(struct switch_dev *dev)
 +{
 +      struct mt7530_priv *priv = container_of(dev, struct mt7530_priv, swdev);
++      int i;
 +
 +      memset(priv->port_entries, 0, sizeof(priv->port_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;
 +}
 +
@@ -3158,7 +3166,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +      vid = (u16)val->value.i;
 +
 +      if (vlan < 0 || vlan >= MT7530_NUM_VLANS)
-+          return -EINVAL;
++              return -EINVAL;
 +
 +      if (vid < MT7530_MIN_VID || vid > MT7530_MAX_VID)
 +              return -EINVAL;