diff options
author | Florian Fainelli <florian.fainelli@broadcom.com> | 2023-06-22 12:31:07 +0200 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-06-24 03:59:10 +0200 |
commit | 1b5ea7ffb7a3bdfffb4b7f40ce0d20a3372ee405 (patch) | |
tree | 25c69ccbb5858baef36ef7886747bbb3f02301be /drivers/net/ethernet/broadcom/genet | |
parent | Merge tag 'linux-can-fixes-for-6.4-20230622' of git://git.kernel.org/pub/scm/... (diff) | |
download | linux-1b5ea7ffb7a3bdfffb4b7f40ce0d20a3372ee405.tar.xz linux-1b5ea7ffb7a3bdfffb4b7f40ce0d20a3372ee405.zip |
net: bcmgenet: Ensure MDIO unregistration has clocks enabled
With support for Ethernet PHY LEDs having been added, while
unregistering a MDIO bus and its child device liks PHYs there may be
"late" accesses to the MDIO bus. One typical use case is setting the PHY
LEDs brightness to OFF for instance.
We need to ensure that the MDIO bus controller remains entirely
functional since it runs off the main GENET adapter clock.
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/all/20230617155500.4005881-1-andrew@lunn.ch/
Fixes: 9a4e79697009 ("net: bcmgenet: utilize generic Broadcom UniMAC MDIO controller driver")
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20230622103107.1760280-1-florian.fainelli@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/broadcom/genet')
-rw-r--r-- | drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c index c15ed0acdb77..0092e46c46f8 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c @@ -673,5 +673,7 @@ void bcmgenet_mii_exit(struct net_device *dev) if (of_phy_is_fixed_link(dn)) of_phy_deregister_fixed_link(dn); of_node_put(priv->phy_dn); + clk_prepare_enable(priv->clk); platform_device_unregister(priv->mii_pdev); + clk_disable_unprepare(priv->clk); } |