ramips: Enable rx of 1536 bytes ethernet frames on MT7621
authorJohn Crispin <john@openwrt.org>
Mon, 5 Oct 2015 10:26:34 +0000 (10:26 +0000)
committerJohn Crispin <john@openwrt.org>
Mon, 5 Oct 2015 10:26:34 +0000 (10:26 +0000)
The default switch frame size (with FCS + header) is 1536 bytes. But the
GMAC only accepted frames up to 1522 bytes. Setting it to 1536 allows to
receive ethernet frames using the full of MTU 1500 + an extra VLAN header +
VLAN header added by the switch.

Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
SVN-Revision: 47117

target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620a.c

index 803970487aff426763ac0a3ca41faeac512faed7..325e2433f10b62c0e1ed7617bd760287adb04a6d 100644 (file)
@@ -602,12 +602,12 @@ static void gsw_hw_init_mt7621(struct mt7620_gsw *gsw, struct device_node *np)
        udelay(10);
 
        if ((rt_sysc_r32(SYSC_REG_CHIP_REV_ID) & 0xFFFF) == 0x0101) {
        udelay(10);
 
        if ((rt_sysc_r32(SYSC_REG_CHIP_REV_ID) & 0xFFFF) == 0x0101) {
-               /* (GE1, Force 1000M/FD, FC ON) */
-               gsw_w32(gsw, 0x2005e30b, 0x100);
+               /* (GE1, Force 1000M/FD, FC ON, MAX_RX_LENGTH 1536) */
+               gsw_w32(gsw, 0x2105e30b, 0x100);
                mt7530_mdio_w32(gsw, 0x3600, 0x5e30b);
        } else {
                mt7530_mdio_w32(gsw, 0x3600, 0x5e30b);
        } else {
-               /* (GE1, Force 1000M/FD, FC ON) */
-               gsw_w32(gsw, 0x2005e33b, 0x100);
+               /* (GE1, Force 1000M/FD, FC ON, MAX_RX_LENGTH 1536) */
+               gsw_w32(gsw, 0x2105e33b, 0x100);
                mt7530_mdio_w32(gsw, 0x3600, 0x5e33b);
        }
 
                mt7530_mdio_w32(gsw, 0x3600, 0x5e33b);
        }