From 1a8daf7eef525b8c0c54f6b6274d0bb64f2787cc Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Thu, 20 Feb 2020 17:36:31 +0100 Subject: [PATCH] net: bcmgenet: Don't set ID_MODE_DIS when not using RGMII As per Linux's driver, ID_MODE_DIS is only set when the PHY interface is RGMII. Don't enable it for the rest of setups. This has been seen to misconfigure RPi4's PHY when booting Linux. Upstream submission: https://patchwork.ozlabs.org/patch/1241570/ Fixes: d53e3fa385 ("net: Add support for Broadcom GENETv5 Ethernet controller") Signed-off-by: Nicolas Saenz Julienne Signed-off-by: Matthias Brugger --- drivers/net/bcmgenet.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/bcmgenet.c b/drivers/net/bcmgenet.c index 8f4848aec6..e971b556ac 100644 --- a/drivers/net/bcmgenet.c +++ b/drivers/net/bcmgenet.c @@ -448,7 +448,10 @@ static int bcmgenet_adjust_link(struct bcmgenet_eth_priv *priv) } clrsetbits_32(priv->mac_reg + EXT_RGMII_OOB_CTRL, OOB_DISABLE, - RGMII_LINK | RGMII_MODE_EN | ID_MODE_DIS); + RGMII_LINK | RGMII_MODE_EN); + + if (phy_dev->interface == PHY_INTERFACE_MODE_RGMII) + setbits_32(priv->mac_reg + EXT_RGMII_OOB_CTRL, ID_MODE_DIS); writel(speed << CMD_SPEED_SHIFT, (priv->mac_reg + UMAC_CMD));