[U-Boot] [PATCH 1/2] net: phy: introduce a quirk PHY_BROKEN_RESET

Joe Hershberger joe.hershberger at gmail.com
Wed Jan 27 16:36:38 CET 2016


On Tue, Jan 12, 2016 at 3:55 AM,  <shh.xie at gmail.com> wrote:
> From: Shaohui Xie <Shaohui.Xie at nxp.com>
>
> Current driver always performs a phy soft reset when connecting the phy
> device, but soft reset is not always supported by a phy device, so
> introduce a quirk PHY_BROKEN_RESET to let such a phy device to skip soft
> reset. This commit uses 'flags' of phy device structure to store the
> quirk.
>
> Signed-off-by: Shaohui Xie <Shaohui.Xie at nxp.com>
> ---
>  drivers/net/phy/phy.c | 3 +++
>  include/phy.h         | 1 +
>  2 files changed, 4 insertions(+)
>
> diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
> index 51b5746..2a36ae7 100644
> --- a/drivers/net/phy/phy.c
> +++ b/drivers/net/phy/phy.c
> @@ -707,6 +707,9 @@ int phy_reset(struct phy_device *phydev)
>         int timeout = 500;
>         int devad = MDIO_DEVAD_NONE;
>
> +       if (phydev->flags == PHY_BROKEN_RESET)

Please mask off this bit so this test still work if someone adds a
different flag.

E.g.: if (phydev->flags & PHY_BROKEN_RESET)

> +               return 0;
> +
>  #ifdef CONFIG_PHYLIB_10G
>         /* If it's 10G, we need to issue reset through one of the MMDs */
>         if (is_10g_interface(phydev->interface)) {
> diff --git a/include/phy.h b/include/phy.h
> index 66cf61b..5f604a1 100644
> --- a/include/phy.h
> +++ b/include/phy.h
> @@ -16,6 +16,7 @@
>  #include <linux/mdio.h>
>
>  #define PHY_MAX_ADDR 32
> +#define PHY_BROKEN_RESET       (1 << 0) /* soft reset not supported */

Please name this something like PHY_FLAG_BROKEN_RESET.

>
>  #define PHY_BASIC_FEATURES     (SUPPORTED_10baseT_Half | \
>                                  SUPPORTED_10baseT_Full | \
> --
> 2.1.0.27.g96db324
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list