mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-04 16:25:34 +00:00
net: phy: DP83TC811: Fix SGMII enable/disable
If SGMII was selected in the DT then the device should write the SGMII enable bit. If SGMII is not selected in the DT then the SGMII bit should be disabled. Signed-off-by: Dan Murphy <dmurphy@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4203638359
commit
00f553660a
1 changed files with 9 additions and 11 deletions
|
@ -284,21 +284,19 @@ static int dp83811_config_init(struct phy_device *phydev)
|
|||
if (err < 0)
|
||||
return err;
|
||||
|
||||
value = phy_read(phydev, MII_DP83811_SGMII_CTRL);
|
||||
if (phydev->interface == PHY_INTERFACE_MODE_SGMII) {
|
||||
value = phy_read(phydev, MII_DP83811_SGMII_CTRL);
|
||||
if (!(value & DP83811_SGMII_EN)) {
|
||||
err = phy_write(phydev, MII_DP83811_SGMII_CTRL,
|
||||
err = phy_write(phydev, MII_DP83811_SGMII_CTRL,
|
||||
(DP83811_SGMII_EN | value));
|
||||
if (err < 0)
|
||||
return err;
|
||||
} else {
|
||||
err = phy_write(phydev, MII_DP83811_SGMII_CTRL,
|
||||
(~DP83811_SGMII_EN & value));
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
} else {
|
||||
err = phy_write(phydev, MII_DP83811_SGMII_CTRL,
|
||||
(~DP83811_SGMII_EN & value));
|
||||
}
|
||||
|
||||
if (err < 0)
|
||||
|
||||
return err;
|
||||
|
||||
value = DP83811_WOL_MAGIC_EN | DP83811_WOL_SECURE_ON | DP83811_WOL_EN;
|
||||
|
||||
return phy_write_mmd(phydev, DP83811_DEVADDR, MII_DP83811_WOL_CFG,
|
||||
|
|
Loading…
Add table
Reference in a new issue