Subject: Re: of_mdiobus_register_phy() and deferred probe

From: Sergei Shtylyov <[email-masked]>
Date: Thu, 22 Oct 2015 23:07:30 +0300

Hello.

On 10/22/2015 04:31 PM, Geert Uytterhoeven wrote:

> Due to a probe deferral of an interrupt controller[1], the Micrel
> Ethernet PHY on
> r8a7791/koelsch started failing to get its IRQ:
>
>      no irq domain found for /interrupt-controller@e61c0000 !
>
> However, of_mdiobus_register_phy() uses irq_of_parse_and_map(), which plainly
> ignores EPROBE_DEFER, and it just continues.
>
> Later I get:
>
>      sh-eth ee700000.ethernet eth0: attached PHY 1 (IRQ -1) to driver
> Micrel KSZ8041RNLI
>
> instead of
>
>      sh-eth ee700000.ethernet eth0: attached PHY 1 (IRQ 408) to driver
> Micrel KSZ8041RNLI
>
> Ethernet still works, as the interrupt seems to be unneeded(?).

    Yes, the phylib uses PHY polling anyway, IRQ isn't strictly necessary.

> Has anyone already looked into fixing of_mdio to handle deferred probing?

    It's the first time I hear about that. Will have to look into this...

> Gr{oetje,eeting}s,
>                          Geert

MBR, Sergei