[PATCH 1/1] phy: fix force mode
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Sun Feb 24 04:34:12 EST 2013
do not try to read the status in force mode
the link is up
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
drivers/net/phy/mdio_bus.c | 4 ++++
drivers/net/phy/phy.c | 4 ++++
include/linux/phy.h | 1 +
3 files changed, 9 insertions(+)
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index d1d802b..e1bb7b1 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -167,10 +167,14 @@ static int mdio_bus_probe(struct device_d *_dev)
dev->speed = SPEED_10;
dev->duplex = DUPLEX_FULL;
dev->autoneg = !AUTONEG_ENABLE;
+ dev->force = 1;
+ dev->link = 1;
} else if (dev->dev_flags & PHYLIB_FORCE_100) {
dev->speed = SPEED_100;
dev->duplex = DUPLEX_FULL;
dev->autoneg = !AUTONEG_ENABLE;
+ dev->force = 1;
+ dev->link = 1;
}
}
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 1cf2cb9..12739ff 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -549,6 +549,10 @@ int genphy_read_status(struct phy_device *phydev)
int lpa;
int lpagb = 0;
+ /* if force the status and link are set */
+ if (phydev->force)
+ return 0;
+
/* Update the link, but return if there
* was an error */
err = genphy_update_link(phydev);
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 6c9cac9..99c9639 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -158,6 +158,7 @@ struct phy_device {
u32 advertising;
int autoneg;
+ int force;
/* private data pointer */
--
1.7.10.4
More information about the barebox
mailing list