[U-Boot] [PATCH 1/5] net: mdio: Add mdio_free() and mdio_unregister() API
Bin Meng
bmeng.cn at gmail.com
Thu Sep 10 08:52:25 CEST 2015
Hi Simon,
On Thu, Sep 10, 2015 at 2:07 AM, Simon Glass <sjg at chromium.org> wrote:
> Hi Bin,
>
> On Friday, 4 September 2015, Bin Meng <bmeng.cn at gmail.com> wrote:
>>
>> 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);
>> +}
>
>
> 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
More information about the U-Boot
mailing list