[PATCH] net: phy: defer PHY reset settle time off the boot path
Sascha Hauer
s.hauer at pengutronix.de
Mon Jul 27 06:03:14 PDT 2026
On Fri, 10 Jul 2026 12:26:38 +0200, Sascha Hauer wrote:
> of_mdiobus_register() reset each PHY by asserting its reset GPIO, waiting
> the full reset-assert and reset-deassert delays inline, and only then
> registering the PHY (which reads its ID over MDIO). Waiting for the
> reset deassert adds to the startup time, so do it asynchronously
>
> Split the reset so the (usually short) assert pulse is still done inline,
> but the potentially long deassert settle time is not waited for at reset
> time. of_mdiobus_reset_phy() now returns the point in time at which the
> PHY becomes usable and the PHY is queued on a per-bus deferred list
> instead of being registered immediately. The actual registration, and
> with it the wait for the remaining settle time, happens on first access
> to the bus via mdiobus_flush_deferred(), hooked into mdiobus_scan() and
> eth_open_all(). This lets the settle time elapse in the background while
> the rest of boot proceeds; by the time the PHY is first accessed the wait
> is usually already over.
>
> [...]
Applied, thanks!
[1/1] net: phy: defer PHY reset settle time off the boot path
https://git.pengutronix.de/cgit/barebox/commit/?id=efdbd65cbfd5 (link may not be stable)
Best regards,
--
Sascha Hauer <s.hauer at pengutronix.de>
More information about the barebox
mailing list