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

From: Shaohui Xie Shaohui.Xie@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_FLAG_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@nxp.com --- changes in v2: 1. use PHY_FLAG_BROKEN_RESET instead of PHY_BROKEN_RESET 2. use '&' to check the phydev->flags instead of '=='
drivers/net/phy/phy.c | 3 +++ include/phy.h | 2 ++ 2 files changed, 5 insertions(+)
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 9bf231c..9126d5d 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -741,6 +741,9 @@ int phy_reset(struct phy_device *phydev) int timeout = 500; int devad = MDIO_DEVAD_NONE;
+ if (phydev->flags & PHY_FLAG_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 e030c9f..09bbe48 100644 --- a/include/phy.h +++ b/include/phy.h @@ -17,6 +17,8 @@
#define PHY_MAX_ADDR 32
+#define PHY_FLAG_BROKEN_RESET (1 << 0) /* soft reset not supported */ + #define PHY_DEFAULT_FEATURES (SUPPORTED_Autoneg | \ SUPPORTED_TP | \ SUPPORTED_MII)

On Thu, Jan 28, 2016 at 1:55 AM, shh.xie@gmail.com wrote:
From: Shaohui Xie Shaohui.Xie@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_FLAG_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@nxp.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

participants (3)
-
Joe Hershberger
-
Joe Hershberger
-
shh.xie@gmail.com