[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20201020191249.756832-1-robert.hancock@calian.com>
Date: Tue, 20 Oct 2020 13:12:49 -0600
From: Robert Hancock <robert.hancock@...ian.com>
To: linux@...linux.org.uk, andrew@...n.ch, hkallweit1@...il.com
Cc: netdev@...r.kernel.org, Robert Hancock <robert.hancock@...ian.com>
Subject: [PATCH] net: phylink: disable BMCR_ISOLATE in phylink_mii_c22_pcs_config
The Xilinx PCS/PMA PHY requires that BMCR_ISOLATE be disabled for proper
operation in 1000BaseX mode. It should be safe to ensure this bit is
disabled in phylink_mii_c22_pcs_config in all cases.
Signed-off-by: Robert Hancock <robert.hancock@...ian.com>
---
drivers/net/phy/phylink.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
index fe2296fdda19..5d8c015bc9f2 100644
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
@@ -2515,9 +2515,10 @@ int phylink_mii_c22_pcs_config(struct mdio_device *pcs, unsigned int mode,
changed = ret > 0;
+ /* Ensure ISOLATE bit is disabled */
bmcr = mode == MLO_AN_INBAND ? BMCR_ANENABLE : 0;
ret = mdiobus_modify(pcs->bus, pcs->addr, MII_BMCR,
- BMCR_ANENABLE, bmcr);
+ BMCR_ANENABLE | BMCR_ISOLATE, bmcr);
if (ret < 0)
return ret;
--
2.18.4
Powered by blists - more mailing lists