]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
net: fec: reset fep link status in suspend function
authorNimrod Andy <B38611@freescale.com>
Thu, 11 Dec 2014 01:20:31 +0000 (09:20 +0800)
committerNitin Garg <nitin.garg@freescale.com>
Fri, 16 Jan 2015 03:18:40 +0000 (21:18 -0600)
On some i.MX6 serial boards, phy power and refrence clock are supplied
or controlled by SOC. When do suspend/resume test, the power and clock
are disabled, so phy device link down.

For current driver, fep->link is still up status, which cause extra operation
like below code. To avoid the dumy operation, we set fep->link to down when
phy device is real down.
...
if (fep->link) {
napi_disable(&fep->napi);
netif_tx_lock_bh(ndev);
fec_stop(ndev);
netif_tx_unlock_bh(ndev);
napi_enable(&fep->napi);
fep->link = phy_dev->link;
status_change = 1;
}
...

Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec_main.c

index 3402ade9ddecb84664c5513e745e6527da4ee04c..ba0a702cf864ff367eb17f882e4d6dfa4210564d 100644 (file)
@@ -3419,6 +3419,12 @@ static int __maybe_unused fec_suspend(struct device *dev)
        if (fep->reg_phy)
                regulator_disable(fep->reg_phy);
 
+       /* SOC supply clock to phy, when clock is disabled, phy link down
+        * SOC control phy regulator, when regulator is disabled, phy link down
+        */
+       if (fep->clk_enet_out || fep->reg_phy)
+               fep->link = 0;
+
        return 0;
 }