From: Bin Meng Date: Thu, 8 Oct 2015 04:32:37 +0000 (-0700) Subject: net: mdio: Add mdio_free() and mdio_unregister() API X-Git-Tag: v2016.01-rc1~154^2~6 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=cb6baca77bca0ef999203a7ed73bd123e7da062e;p=oweals%2Fu-boot.git net: mdio: Add mdio_free() and mdio_unregister() API Currently there is no API to uninitialize mdio. Add two APIs for this. Signed-off-by: Bin Meng Acked-by: Joe Hershberger --- diff --git a/common/miiphyutil.c b/common/miiphyutil.c index c88c28adbf..e499b58836 100644 --- a/common/miiphyutil.c +++ b/common/miiphyutil.c @@ -152,6 +152,11 @@ struct mii_dev *mdio_alloc(void) return bus; } +void mdio_free(struct mii_dev *bus) +{ + free(bus); +} + int mdio_register(struct mii_dev *bus) { if (!bus || !bus->name || !bus->read || !bus->write) @@ -173,6 +178,20 @@ int mdio_register(struct mii_dev *bus) return 0; } +int mdio_unregister(struct mii_dev *bus) +{ + if (!bus) + return 0; + + /* delete it from the list */ + list_del(&bus->link); + + if (current_mii == bus) + current_mii = NULL; + + return 0; +} + void mdio_list_devices(void) { struct list_head *entry; diff --git a/include/miiphy.h b/include/miiphy.h index 088797e4c6..af12274c81 100644 --- a/include/miiphy.h +++ b/include/miiphy.h @@ -59,7 +59,9 @@ struct phy_device *mdio_phydev_for_ethname(const char *devname); void miiphy_listdev(void); struct mii_dev *mdio_alloc(void); +void mdio_free(struct mii_dev *bus); int mdio_register(struct mii_dev *bus); +int mdio_unregister(struct mii_dev *bus); void mdio_list_devices(void); #ifdef CONFIG_BITBANGMII