Skip to content

Commit f48256e

Browse files
wangweidongdavem330
authored andcommitted
phy: make some bits preserved while setup forced mode
When tested the PHY SGMII Loopback: 1.set the LOOPBACK bit, 2.set the autoneg to AUTONEG_DISABLE, it calls the genphy_setup_forced which will clear the bit. The BMCR_LOOPBACK bit should be preserved. As Florian pointed out that other bits should be preserved too. So I make the BMCR_ISOLATE and BMCR_PDOWN as well. Signed-off-by: Weidong Wang <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 4e811b1 commit f48256e

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/net/phy/phy_device.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1123,8 +1123,9 @@ static int genphy_config_advert(struct phy_device *phydev)
11231123
*/
11241124
int genphy_setup_forced(struct phy_device *phydev)
11251125
{
1126-
int ctl = 0;
1126+
int ctl = phy_read(phydev, MII_BMCR);
11271127

1128+
ctl &= BMCR_LOOPBACK | BMCR_ISOLATE | BMCR_PDOWN;
11281129
phydev->pause = 0;
11291130
phydev->asym_pause = 0;
11301131

0 commit comments

Comments
 (0)