]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
net: phy: DP83TC811: Fix SGMII enable/disable
authorDan Murphy <dmurphy@ti.com>
Fri, 29 Jun 2018 15:35:46 +0000 (10:35 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 3 Jul 2018 02:38:07 +0000 (11:38 +0900)
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>
drivers/net/phy/dp83tc811.c

index f8653f5d8789f2750e3484e8ffd5fbaa740a58f8..78cad134a79ea3cff76683ff3d2e951d8792ea7d 100644 (file)
@@ -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,