Hi Saravana, On Wed, Jun 1, 2022 at 2:44 PM Saravana Kannan <saravanak@xxxxxxxxxx> wrote: > Now that fw_devlink=on by default and fw_devlink supports interrupt > properties, the execution will never get to the point where > driver_deferred_probe_check_state() is called before the supplier has > probed successfully or before deferred probe timeout has expired. > > So, delete the call and replace it with -ENODEV. > > Signed-off-by: Saravana Kannan <saravanak@xxxxxxxxxx> Thanks for your patch, which is now commit f8217275b57aa48d ("net: mdio: Delete usage of driver_deferred_probe_check_state()") in driver-core/driver-core-next. Seems like I missed something when providing my T-b for this series, sorry for that. arch/arm/boot/dts/r8a7791-koelsch.dts has: ðer { pinctrl-0 = <ðer_pins>, <&phy1_pins>; pinctrl-names = "default"; phy-handle = <&phy1>; renesas,ether-link-active-low; status = "okay"; phy1: ethernet-phy@1 { compatible = "ethernet-phy-id0022.1537", "ethernet-phy-ieee802.3-c22"; reg = <1>; interrupt-parent = <&irqc0>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>; micrel,led-mode = <1>; reset-gpios = <&gpio5 22 GPIO_ACTIVE_LOW>; }; }; Despite the interrupts property, ðer is now probed before irqc0 (interrupt-controller@e61c0000 in arch/arm/boot/dts/r8a7791.dtsi), causing the PHY not finding its interrupt, and resorting to polling: -Micrel KSZ8041RNLI ee700000.ethernet-ffffffff:01: attached PHY driver (mii_bus:phy_addr=ee700000.ethernet-ffffffff:01, irq=185) +Micrel KSZ8041RNLI ee700000.ethernet-ffffffff:01: attached PHY driver (mii_bus:phy_addr=ee700000.ethernet-ffffffff:01, irq=POLL) Reverting this commit, and commit 9cbffc7a59561be9 ("driver core: Delete driver_deferred_probe_check_state()") fixes that. > --- a/drivers/net/mdio/fwnode_mdio.c > +++ b/drivers/net/mdio/fwnode_mdio.c > @@ -47,9 +47,7 @@ int fwnode_mdiobus_phy_device_register(struct mii_bus *mdio, > * just fall back to poll mode > */ > if (rc == -EPROBE_DEFER) > - rc = driver_deferred_probe_check_state(&phy->mdio.dev); > - if (rc == -EPROBE_DEFER) > - return rc; > + rc = -ENODEV; > > if (rc > 0) { > phy->irq = rc; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds