From 66ecf132afe9e46b7b0ca7b2dd4b2723deccb736 Mon Sep 17 00:00:00 2001 From: Nicolai Buchwitz Date: Tue, 26 May 2026 10:51:50 +0200 Subject: [PATCH] net: bcmgenet: restore PHY power management flags Restore PHY_BRCM_AUTO_PWRDWN_ENABLE, PHY_BRCM_DIS_TXCRXC_NOENRGY and PHY_BRCM_IDDQ_SUSPEND in bcmgenet_mii_probe(), reverting the downstream hunk that snuck into 7dd290a74745 ("xhci: add quirk...") back in March 2022. That hunk worked around raspberrypi/rpi-eeprom#417: on Pi 4B rev 1.1 only, the bootloader couldn't recover the PHY from IDDQ-SR after a kernel reboot. CM4 and newer Pi 4B revs were never affected. The rpi-eeprom fix shipped in April 2022 (release c68f0c06) and the issue was closed a month later. With the bootloader fix ~4 years deployed, drop the kernel-side workaround and get back the "several hundreds of milliwatts" of idle power savings Florian quoted in the issue thread. Signed-off-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/genet/bcmmii.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c index 034f9b35996424..33e3eec31cc9e6 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c @@ -306,7 +306,9 @@ int bcmgenet_mii_probe(struct net_device *dev) struct device_node *dn = kdev->of_node; phy_interface_t phy_iface = priv->phy_interface; struct phy_device *phydev; - u32 phy_flags = 0; + u32 phy_flags = PHY_BRCM_AUTO_PWRDWN_ENABLE | + PHY_BRCM_DIS_TXCRXC_NOENRGY | + PHY_BRCM_IDDQ_SUSPEND; int ret; /* Communicate the integrated PHY revision */