[U-Boot] [PATCH 1/5] net: mdio: Add mdio_free() and mdio_unregister() API

Bin Meng bmeng.cn at gmail.com
Fri Sep 4 16:53:31 CEST 2015


Currently there is no API to uninitialize mdio. Add two APIs for this.

Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
---

 common/miiphyutil.c | 19 +++++++++++++++++++
 include/miiphy.h    |  2 ++
 2 files changed, 21 insertions(+)

diff --git a/common/miiphyutil.c b/common/miiphyutil.c
index c88c28a..e499b58 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 088797e..af12274 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
-- 
1.8.2.1



More information about the U-Boot mailing list