aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/drivers
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-11-19 20:18:01 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-11-19 20:18:01 +0000
commit43e3e88379e688de4c2165116722d99abaeeeffe (patch)
tree8088e2fb721fba16adc8f5b3a128d890b812ede9 /target/linux/generic/files/drivers
parent898712f43f30f464e0a31f8d3f1e9e272eafb6aa (diff)
downloadupstream-43e3e88379e688de4c2165116722d99abaeeeffe.tar.gz
upstream-43e3e88379e688de4c2165116722d99abaeeeffe.tar.bz2
upstream-43e3e88379e688de4c2165116722d99abaeeeffe.zip
ar8216: use genphy_config_aneg also for PHY 0
Kernel 3.14 introduced a switch reset in phy_init_hw in drivers/net/phy causing BMCR_ANENABLE to get cleared. Due to the fact that ar8xxx_phy_config_aneg does nothing for PHY 0 autonegatiation support remains disabled. This can cause ports to operate at 10MBit/half-duplex only. Fix this by calling genphy_config_aneg for PHY 0 too as genphy_config_aneg sets BMCR_ANENABLE if it's not yet set. Fixes: ticket 17800 Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> SVN-Revision: 43332
Diffstat (limited to 'target/linux/generic/files/drivers')
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index b2c87db09d..147d21b57a 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -2863,15 +2863,6 @@ ar8xxx_phy_read_status(struct phy_device *phydev)
return ret;
}
-static int
-ar8xxx_phy_config_aneg(struct phy_device *phydev)
-{
- if (phydev->addr == 0)
- return 0;
-
- return genphy_config_aneg(phydev);
-}
-
static const u32 ar8xxx_phy_ids[] = {
0x004dd033,
0x004dd034, /* AR8327 */
@@ -3043,7 +3034,7 @@ static struct phy_driver ar8xxx_phy_driver = {
.remove = ar8xxx_phy_remove,
.detach = ar8xxx_phy_detach,
.config_init = ar8xxx_phy_config_init,
- .config_aneg = ar8xxx_phy_config_aneg,
+ .config_aneg = genphy_config_aneg,
.read_status = ar8xxx_phy_read_status,
.driver = { .owner = THIS_MODULE },
};