linux/drivers/net/mdio
Florian Fainelli a81649a4ef net: mdio: mdio-bcm-unimac: Correct rate fallback logic
When the parent clock is a gated clock which has multiple parents, the
clock provider (clk-scmi typically) might return a rate of 0 since there
is not one of those particular parent clocks that should be chosen for
returning a rate. Prior to ee975351cf ("net: mdio: mdio-bcm-unimac:
Manage clock around I/O accesses"), we would not always be passing a
clock reference depending upon how mdio-bcm-unimac was instantiated. In
that case, we would take the fallback path where the rate is hard coded
to 250MHz.

Make sure that we still fallback to using a fixed rate for the divider
calculation, otherwise we simply ignore the desired MDIO bus clock
frequency which can prevent us from interfacing with Ethernet PHYs
properly.

Fixes: ee975351cf ("net: mdio: mdio-bcm-unimac: Manage clock around I/O accesses")
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250730202533.3463529-1-florian.fainelli@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-08-01 14:46:50 -07:00
..
acpi_mdio.c
fwnode_mdio.c net: pse-pd: Introduce attached_phydev to pse control 2025-06-18 19:00:15 -07:00
Kconfig net: mdio: Add MDIO bus controller for Airoha AN7583 2025-06-27 10:09:36 +01:00
Makefile net: mdio: Add MDIO bus controller for Airoha AN7583 2025-06-27 10:09:36 +01:00
mdio-airoha.c net: mdio: Add MDIO bus controller for Airoha AN7583 2025-06-27 10:09:36 +01:00
mdio-aspeed.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-bcm-iproc.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-bcm-unimac.c net: mdio: mdio-bcm-unimac: Correct rate fallback logic 2025-08-01 14:46:50 -07:00
mdio-bitbang.c
mdio-cavium.c
mdio-cavium.h
mdio-gpio.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-hisi-femac.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-i2c.c net: mdio: mdio-i2c: Add support for single-byte SMBus operations 2025-03-25 09:10:55 -07:00
mdio-ipq4019.c net: mdio-ipq4019: add missing error check 2024-11-26 11:01:39 +01:00
mdio-ipq8064.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-moxart.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mscc-miim.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-bcm6368.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-bcm-iproc.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-gpio.c net: mdio: mux-gpio: use gpiod_multi_set_value_cansleep 2025-06-12 18:37:51 -07:00
mdio-mux-meson-g12a.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-meson-gxl.c net: mdio: mux-meson-gxl: set reversed bit when using internal phy 2025-04-29 12:01:53 -07:00
mdio-mux-mmioreg.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-multiplexer.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux.c
mdio-mvusb.c
mdio-octeon.c net: simplify resource acquisition + ioremap 2024-12-06 17:28:34 -08:00
mdio-realtek-rtl9300.c net: mdio: Add RTL9300 MDIO driver 2025-04-15 11:00:37 +02:00
mdio-regmap.c
mdio-sun4i.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-thunder.c net: mdio: thunder: Use pure PCI devres API 2025-04-28 16:19:16 -07:00
mdio-xgene.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
of_mdio.c net: phy: fixed_phy: remove irq argument from fixed_phy_register 2025-05-20 18:17:43 -07:00