diff mbox series

[net-next,v2,2/2] net: phy: DP83TC811: Fix SGMII enable/disable

Message ID 20180629153546.24107-2-dmurphy@ti.com
State Accepted
Commit 00f553660a7f524a3b913cb5cf6c5f33f9638f09
Headers show
Series [net-next,v2,1/2] net: phy: DP83TC811: Add INT_STAT3 | expand

Commit Message

Dan Murphy June 29, 2018, 3:35 p.m. UTC
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>

---

v2 - Removed erroneous defconfig addtion in the patch.

 drivers/net/phy/dp83tc811.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

-- 
2.17.0.582.gccdcbd54c

Comments

David Miller July 3, 2018, 2:38 a.m. UTC | #1
From: Dan Murphy <dmurphy@ti.com>

Date: Fri, 29 Jun 2018 10:35:46 -0500

> 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>

> ---

> 

> v2 - Removed erroneous defconfig addtion in the patch.


Applied.
diff mbox series

Patch

diff --git a/drivers/net/phy/dp83tc811.c b/drivers/net/phy/dp83tc811.c
index f8653f5d8789..78cad134a79e 100644
--- a/drivers/net/phy/dp83tc811.c
+++ b/drivers/net/phy/dp83tc811.c
@@ -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,