Message ID | 20201020191249.756832-1-robert.hancock@calian.com |
---|---|
State | Superseded |
Headers | show |
Series | net: phylink: disable BMCR_ISOLATE in phylink_mii_c22_pcs_config | expand |
On Tue, Oct 20, 2020 at 01:12:49PM -0600, Robert Hancock wrote: > 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@calian.com> Reviewed-by: Russell King <rmk+kernel@armlinux.org.uk> Please re-send when netdev is open, thanks.
On Wed, 21 Oct 2020 10:27:36 +0100 Russell King - ARM Linux admin wrote: > On Tue, Oct 20, 2020 at 01:12:49PM -0600, Robert Hancock wrote: > > 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@calian.com> > > Reviewed-by: Russell King <rmk+kernel@armlinux.org.uk> > > Please re-send when netdev is open, thanks. And please mark it as [PATCH net-next] when you resend next week - just to be sure I don't get confused and apply this as a fix.
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;
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@calian.com> --- drivers/net/phy/phylink.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)