diff options
author | Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> | 2013-12-13 04:20:28 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-12-17 14:42:44 -0500 |
commit | 1211ce53077164e0d34641d0ca5fb4d4a7574498 (patch) | |
tree | 0f6f5ff07a99487429ab320a9e21d2743bd9c2b7 /drivers/net/phy/phy_device.c | |
parent | 481b5d938b4a60f052d7e15965a8417125e0d39f (diff) |
net: phy: resume/suspend PHYs on attach/detach
This ensures PHYs are resumed on attach and suspended on detach.
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Acked-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy/phy_device.c')
-rw-r--r-- | drivers/net/phy/phy_device.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index 91f17178f1b3..4eb5bba1db5e 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c | |||
@@ -624,6 +624,8 @@ static int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, | |||
624 | if (err) | 624 | if (err) |
625 | phy_detach(phydev); | 625 | phy_detach(phydev); |
626 | 626 | ||
627 | phy_resume(phydev); | ||
628 | |||
627 | return err; | 629 | return err; |
628 | } | 630 | } |
629 | 631 | ||
@@ -669,6 +671,7 @@ void phy_detach(struct phy_device *phydev) | |||
669 | { | 671 | { |
670 | phydev->attached_dev->phydev = NULL; | 672 | phydev->attached_dev->phydev = NULL; |
671 | phydev->attached_dev = NULL; | 673 | phydev->attached_dev = NULL; |
674 | phy_suspend(phydev); | ||
672 | 675 | ||
673 | /* If the device had no specific driver before (i.e. - it | 676 | /* If the device had no specific driver before (i.e. - it |
674 | * was using the generic driver), we unbind the device | 677 | * was using the generic driver), we unbind the device |