ar8216: fix transmission of large frames by setting the switch mtu
authorFelix Fietkau <nbd@openwrt.org>
Mon, 29 Jun 2009 21:54:16 +0000 (21:54 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Mon, 29 Jun 2009 21:54:16 +0000 (21:54 +0000)
SVN-Revision: 16629

target/linux/generic-2.6/files/drivers/net/phy/ar8216.c
target/linux/generic-2.6/files/drivers/net/phy/ar8216.h

index f629058ae033c627fdea4fcac953e31295ca95bf..4354be9b0cc3ee3db2ef5f26a98e6371add30043 100644 (file)
@@ -488,6 +488,10 @@ ar8216_reset_switch(struct switch_dev *dev)
        }
        /* XXX: undocumented magic from atheros, required! */
        priv->write(priv, 0x38, 0xc000050e);
+
+       ar8216_rmw(priv, AR8216_REG_GLOBAL_CTRL,
+               AR8216_GCTRL_MTU, 1518 + 8 + 2);
+
        return ar8216_hw_apply(dev);
 }
 
index e0f0452cb8c3ac84ac73e5b24d78d161d4280232..b8a4f23d4597799eab94633e77cf781d8e5fc7c1 100644 (file)
@@ -26,6 +26,9 @@
 #define AR8216_REG_CTRL                        0x0000
 #define   AR8216_CTRL_RESET            BIT(31)
 
+#define AR8216_REG_GLOBAL_CTRL         0x0030
+#define   AR8216_GCTRL_MTU             BITS(0, 10)
+
 #define AR8216_REG_VTU                 0x0040
 #define   AR8216_VTU_OP                        BITS(0, 3)
 #define   AR8216_VTU_OP_NOOP           0x0