summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-04-28 12:40:45 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2015-04-28 12:40:49 +0200
commitefe0fa9e927a699d1d0e09ad56e8ba9eb08a61e2 (patch)
treed761cb56698120a7b95f5ec22f21c38225cbbdc4 /drivers/net
parente8388cbb37e6aecb3e111169bc79e0e0eef2bfeb (diff)
downloadbarebox-efe0fa9e927a699d1d0e09ad56e8ba9eb08a61e2.tar.gz
barebox-efe0fa9e927a699d1d0e09ad56e8ba9eb08a61e2.tar.xz
net: phy: Add missing phy_unregister_device
The counterpart of phy_register_device is missing. Add it. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/phy/phy.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index f3dffca46e..edf5d03d94 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -272,6 +272,17 @@ int phy_register_device(struct phy_device *phydev)
return ret;
}
+void phy_unregister_device(struct phy_device *phydev)
+{
+ if (!phydev->registered)
+ return;
+
+ phydev->bus->phy_map[phydev->addr] = NULL;
+
+ unregister_device(&phydev->dev);
+ phydev->registered = 0;
+}
+
static struct phy_device *of_mdio_find_phy(struct eth_device *edev)
{
struct device_d *dev;