
Hi Simon,
On Thu, Sep 10, 2015 at 2:07 AM, Simon Glass sjg@chromium.org wrote:
Hi Bin,
On Friday, 4 September 2015, Bin Meng bmeng.cn@gmail.com wrote:
Currently there is no API to uninitialize mdio. Add two APIs for this.
Signed-off-by: Bin Meng bmeng.cn@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);
+}
Should this function be exported, or just called from mdio_unregister()?
I created mdio_free() to keep API symmetry - there is an mdio_alloc() API already. IMHO we should remove mdio_alloc() API and move mdio_alloc() to inside mdio_register(), but did not do that way as that change is quite big (a bunch of ethernet drivers need update). What do you think?
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);
Function comments.
OK
void mdio_list_devices(void);
#ifdef CONFIG_BITBANGMII
Regards, Bin