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

Simon Glass sjg at chromium.org
Wed Sep 9 20:07:32 CEST 2015


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()?

>
> +
>  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.

>
>  void mdio_list_devices(void);
>
>  #ifdef CONFIG_BITBANGMII
> --
> 1.8.2.1
>

Regards,
Simon


More information about the U-Boot mailing list