mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-27 22:56:49 +08:00
net: phy: do not read configuration register on reset
When doing a software reset, the reset flag should be written without other bits set. Writing the current state will lead to restoring the state of the PHY (e.g. Powerdown), which is not what is expected from a software reset. Signed-off-by: Stefan Agner <stefan@agner.ch> Acked-by: Michael Welling <mwelling@ieee.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
077678eb0c
commit
a058052c35
@ -717,15 +717,7 @@ int phy_reset(struct phy_device *phydev)
|
||||
}
|
||||
#endif
|
||||
|
||||
reg = phy_read(phydev, devad, MII_BMCR);
|
||||
if (reg < 0) {
|
||||
debug("PHY status read failed\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
reg |= BMCR_RESET;
|
||||
|
||||
if (phy_write(phydev, devad, MII_BMCR, reg) < 0) {
|
||||
if (phy_write(phydev, devad, MII_BMCR, BMCR_RESET) < 0) {
|
||||
debug("PHY reset failed\n");
|
||||
return -1;
|
||||
}
|
||||
@ -738,6 +730,7 @@ int phy_reset(struct phy_device *phydev)
|
||||
* auto-clearing). This should happen within 0.5 seconds per the
|
||||
* IEEE spec.
|
||||
*/
|
||||
reg = phy_read(phydev, devad, MII_BMCR);
|
||||
while ((reg & BMCR_RESET) && timeout--) {
|
||||
reg = phy_read(phydev, devad, MII_BMCR);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user