aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-07-10 21:11:02 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-07-10 21:11:02 +0000
commit9cb74f0caaec65f72db2d36d4986d9912f6fe63b (patch)
tree298d7722d2fe48b5292b8a3a555263e62b49de41 /target/linux
parenta55b541f1a9b244fbd74855edbe9bcd79d093015 (diff)
downloadmaster-187ad058-9cb74f0caaec65f72db2d36d4986d9912f6fe63b.tar.gz
master-187ad058-9cb74f0caaec65f72db2d36d4986d9912f6fe63b.tar.bz2
master-187ad058-9cb74f0caaec65f72db2d36d4986d9912f6fe63b.zip
ar8216: disable EEE by default on AR8327 to fix stability issues (#14597)
Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41577 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.c9
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.h3
2 files changed, 12 insertions, 0 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index 3f60878723..fe0ddb9b1b 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -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
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.h b/target/linux/generic/files/drivers/net/phy/ar8216.h
index 00d6d7f749..eb553b489d 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.h
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.h
@@ -366,6 +366,9 @@
#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