diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-11-19 20:18:01 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-11-19 20:18:01 +0000 |
commit | 43e3e88379e688de4c2165116722d99abaeeeffe (patch) | |
tree | 8088e2fb721fba16adc8f5b3a128d890b812ede9 /target/linux | |
parent | 898712f43f30f464e0a31f8d3f1e9e272eafb6aa (diff) | |
download | mtk-20170518-43e3e88379e688de4c2165116722d99abaeeeffe.zip mtk-20170518-43e3e88379e688de4c2165116722d99abaeeeffe.tar.gz mtk-20170518-43e3e88379e688de4c2165116722d99abaeeeffe.tar.bz2 |
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')
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/ar8216.c | 11 |
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 b2c87db..147d21b 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 }, }; |