瀏覽代碼

net: phy: fix wrong mask to phy_modify()

When forcing a specific link mode, the PHY driver must clear the
existing speed and duplex bits in BMCR while preserving some other
control bits. This logic was accidentally inverted with the introduction
of phy_modify().

Fixes: fea23fb591cc ("net: phy: convert read-modify-write to phy_modify()")
Signed-off-by: Ingo van Lil <inguin@gmx.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Ingo van Lil 7 年之前
父節點
當前提交
18a5b052bb
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/net/phy/phy_device.c

+ 1 - 1
drivers/net/phy/phy_device.c

@@ -1382,7 +1382,7 @@ int genphy_setup_forced(struct phy_device *phydev)
 		ctl |= BMCR_FULLDPLX;
 		ctl |= BMCR_FULLDPLX;
 
 
 	return phy_modify(phydev, MII_BMCR,
 	return phy_modify(phydev, MII_BMCR,
-			  BMCR_LOOPBACK | BMCR_ISOLATE | BMCR_PDOWN, ctl);
+			  ~(BMCR_LOOPBACK | BMCR_ISOLATE | BMCR_PDOWN), ctl);
 }
 }
 EXPORT_SYMBOL(genphy_setup_forced);
 EXPORT_SYMBOL(genphy_setup_forced);