diff -rupN utilite-a/arch/arm/mach-mx6/board-cm-fx6.c utilite-b/arch/arm/mach-mx6/board-cm-fx6.c --- utilite-a/arch/arm/mach-mx6/board-cm-fx6.c 2014-02-24 21:35:41.000000000 +0000 +++ utilite-b/arch/arm/mach-mx6/board-cm-fx6.c 2014-04-16 20:33:04.473660149 +0000 @@ -200,6 +200,16 @@ static int cm_fx6_fec_phy_init(struct ph { unsigned short val; + /* Ar8031 phy SmartEEE feature cause link status generates glitch, + * which cause ethernet link down/up issue, so disable SmartEEE + */ + phy_write(phydev, 0xd, 0x3); + phy_write(phydev, 0xe, 0x805d); + phy_write(phydev, 0xd, 0x4003); + val = phy_read(phydev, 0xe); + val &= ~(0x1 << 8); + phy_write(phydev, 0xe, val); + /* To enable AR8031 ouput a 125MHz clk from CLK_25M */ phy_write(phydev, 0xd, 0x7); phy_write(phydev, 0xe, 0x8016);