From a17a58e310e41829a634ac507477a0f6457a65d0 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 10 Jul 2014 21:11:02 +0000 Subject: ar8216: disable EEE by default on AR8327 to fix stability issues (#14597) Signed-off-by: Felix Fietkau SVN-Revision: 41577 --- target/linux/generic/files/drivers/net/phy/ar8216.c | 9 +++++++++ target/linux/generic/files/drivers/net/phy/ar8216.h | 3 +++ 2 files changed, 12 insertions(+) (limited to 'target/linux/generic/files') diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c index 3f60878..fe0ddb9 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 00d6d7f..eb553b4 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 -- cgit v1.1