Author: nbd
Date: 2014-11-19 21:18:01 +0100 (Wed, 19 Nov 2014)
New Revision: 43332

Modified:
   trunk/target/linux/generic/files/drivers/net/phy/ar8216.c
Log:
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 <[email protected]>

Modified: trunk/target/linux/generic/files/drivers/net/phy/ar8216.c
===================================================================
--- trunk/target/linux/generic/files/drivers/net/phy/ar8216.c   2014-11-19 
20:17:52 UTC (rev 43331)
+++ trunk/target/linux/generic/files/drivers/net/phy/ar8216.c   2014-11-19 
20:18:01 UTC (rev 43332)
@@ -2863,15 +2863,6 @@
        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 @@
        .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 },
 };
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to