[U-Boot] [PATCH 1/2] net: phy: introduce a quirk PHY_BROKEN_RESET
shh.xie at gmail.com
shh.xie at gmail.com
Tue Jan 12 10:55:19 CET 2016
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)
+ 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 */
#define PHY_BASIC_FEATURES (SUPPORTED_10baseT_Half | \
SUPPORTED_10baseT_Full | \
--
2.1.0.27.g96db324
More information about the U-Boot
mailing list