The counterpart of phy_register_device is missing. Add it. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- drivers/net/phy/phy.c | 11 +++++++++++ include/linux/phy.h | 1 + 2 files changed, 12 insertions(+) diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index f3dffca..edf5d03 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; diff --git a/include/linux/phy.h b/include/linux/phy.h index c0fd4ff..9a451a6 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -266,6 +266,7 @@ int phy_init(void); int phy_init_hw(struct phy_device *phydev); int phy_register_device(struct phy_device* dev); +void phy_unregister_device(struct phy_device *phydev); /** * phy_read - Convenience function for reading a given PHY register -- 2.1.4 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox