ramips: add 'lwlll' portmap to mt7530 switch
authorKevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Mon, 25 Sep 2017 19:38:18 +0000 (20:38 +0100)
committerMathias Kresin <dev@kresin.me>
Thu, 28 Sep 2017 05:23:18 +0000 (07:23 +0200)
The Xiaomi Mi Router 3G uses this deranged vlan portmap. Add support so
that packets are not leaked across all switch ports when reset.

Fix a whitespace nit while we're here.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
[fix wrong pvids order]
Signed-off-by: Mathias Kresin <dev@kresin.me>
target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mt7530.c

index 74b4a7103c745721e57256ab28be406dd58d2c04..439d8c2661dfccfe10cfaa4db8b6269b8b81de48 100644 (file)
@@ -220,6 +220,12 @@ struct mt7530_mapping {
                .members = { 0, 0x7e, 0x41 },
                .etags = { 0, 0x40, 0x40 },
                .vids = { 0, 1, 2 },
                .members = { 0, 0x7e, 0x41 },
                .etags = { 0, 0x40, 0x40 },
                .vids = { 0, 1, 2 },
+       }, {
+               .name = "lwlll",
+               .pvids = { 1, 2, 1, 1, 1, 1, 1 },
+               .members = { 0, 0x7d, 0x42 },
+               .etags = { 0, 0x40, 0x40 },
+               .vids = { 0, 1, 2 },
        },
 };
 
        },
 };
 
@@ -922,7 +928,7 @@ mt7530_probe(struct device *dev, void __iomem *base, struct mii_bus *bus, int vl
 
        /* magic vodoo */
        if (!IS_ENABLED(CONFIG_SOC_MT7621) && bus && mt7530_r32(mt7530, REG_HWTRAP) !=  0x1117edf) {
 
        /* magic vodoo */
        if (!IS_ENABLED(CONFIG_SOC_MT7621) && bus && mt7530_r32(mt7530, REG_HWTRAP) !=  0x1117edf) {
-               dev_info(dev, "fixing up MHWTRAP register - bootloader probably played with it\n");
+               dev_info(dev, "fixing up MHWTRAP register - bootloader probably played with it\n");
                mt7530_w32(mt7530, REG_HWTRAP, 0x1117edf);
        }
        dev_info(dev, "loaded %s driver\n", swdev->name);
                mt7530_w32(mt7530, REG_HWTRAP, 0x1117edf);
        }
        dev_info(dev, "loaded %s driver\n", swdev->name);