diff options
author | Bin Meng <bmeng.cn@gmail.com> | 2015-10-07 21:32:37 -0700 |
---|---|---|
committer | guoyin.chen <guoyin.chen@freescale.com> | 2016-03-04 15:53:36 +0800 |
commit | 4952501ac3a1ee6138d10e7f331928f0cf7e6fa4 (patch) | |
tree | e95ec5deb9da739f731a7d0889f8b7e7e807cce6 | |
parent | d675652038004436ce812fbdc53f61a3fee2b187 (diff) | |
download | u-boot-imx-4952501ac3a1ee6138d10e7f331928f0cf7e6fa4.zip u-boot-imx-4952501ac3a1ee6138d10e7f331928f0cf7e6fa4.tar.gz u-boot-imx-4952501ac3a1ee6138d10e7f331928f0cf7e6fa4.tar.bz2 |
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 <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
(cherry picked from commit cb6baca77bca0ef999203a7ed73bd123e7da062e)
-rw-r--r-- | common/miiphyutil.c | 19 | ||||
-rw-r--r-- | include/miiphy.h | 2 |
2 files changed, 21 insertions, 0 deletions
diff --git a/common/miiphyutil.c b/common/miiphyutil.c index 74812e6..dd05362 100644 --- a/common/miiphyutil.c +++ b/common/miiphyutil.c @@ -151,6 +151,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) @@ -172,6 +177,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 |