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
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 */
.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 },
};