ar8216: disable EEE by default on AR8327 to fix stability issues (#14597)
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 10 Jul 2014 21:11:02 +0000 (21:11 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 10 Jul 2014 21:11:02 +0000 (21:11 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41577 3c298f89-4303-0410-b956-a3cf2f4a3e73

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

index 3f60878..fe0ddb9 100644 (file)
@@ -1626,6 +1626,15 @@ ar8327_init_globals(struct ar8xxx_priv *priv)
        /* Enable MIB counters */
        ar8xxx_reg_set(priv, AR8327_REG_MODULE_EN,
                       AR8327_MODULE_EN_MIB);
+
+       /* Disable EEE on all ports due to stability issues */
+       t = priv->read(priv, AR8327_REG_EEE_CTRL);
+       t |= AR8327_EEE_CTRL_DISABLE_PHY(0) |
+            AR8327_EEE_CTRL_DISABLE_PHY(1) |
+            AR8327_EEE_CTRL_DISABLE_PHY(2) |
+            AR8327_EEE_CTRL_DISABLE_PHY(3) |
+            AR8327_EEE_CTRL_DISABLE_PHY(4);
+       priv->write(priv, AR8327_REG_EEE_CTRL, t);
 }
 
 static void
index 00d6d7f..eb553b4 100644 (file)
 #define   AR8327_SGMII_CTRL_EN_RX              BIT(2)
 #define   AR8327_SGMII_CTRL_EN_TX              BIT(3)
 
+#define AR8327_REG_EEE_CTRL                    0x100
+#define   AR8327_EEE_CTRL_DISABLE_PHY(_i)      BIT(4 + (_i) * 2)
+
 #define AR8327_REG_PORT_VLAN0(_i)              (0x420 + (_i) * 0x8)
 #define   AR8327_PORT_VLAN0_DEF_SVID           BITS(0, 12)
 #define   AR8327_PORT_VLAN0_DEF_SVID_S         0