Re: [PATCH v2 2/2] of: property: Add fw_devlink support for interrupts
From: Geert Uytterhoeven
Date: Fri Feb 05 2021 - 03:13:38 EST
Hi Marek,
On Fri, Feb 5, 2021 at 8:38 AM Marek Szyprowski
<m.szyprowski@xxxxxxxxxxx> wrote:
> On 04.02.2021 22:31, Saravana Kannan wrote:
> > On Thu, Feb 4, 2021 at 3:52 AM Marek Szyprowski
> > <m.szyprowski@xxxxxxxxxxx> wrote:
> >> On 21.01.2021 23:57, Saravana Kannan wrote:
> >>> This allows fw_devlink to create device links between consumers of an
> >>> interrupt and the supplier of the interrupt.
> >>>
> >>> Cc: Marc Zyngier <maz@xxxxxxxxxx>
> >>> Cc: Kevin Hilman <khilman@xxxxxxxxxxxx>
> >>> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> >>> Reviewed-by: Rob Herring <robh@xxxxxxxxxx>
> >>> Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>
> >>> Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> >>> Signed-off-by: Saravana Kannan <saravanak@xxxxxxxxxx>
> >> This patch landed some time ago in linux-next as commit 4104ca776ba3
> >> ("of: property: Add fw_devlink support for interrupts"). It breaks MMC
> >> host controller operation on ARM Juno R1 board (the mmci@50000 device
> >> defined in arch/arm64/boot/dts/arm/juno-motherboard.dtsi). I didn't
> > I grepped around and it looks like the final board file is this or
> > whatever includes it?
> > arch/arm64/boot/dts/arm/juno-base.dtsi
> The final board file is arch/arm64/boot/dts/arm/juno-r1.dts
> > This patch just finds the interrupt-parent and then tries to use that
> > as a supplier if "interrupts" property is listed. But the only
> > interrupt parent I can see is:
> > gic: interrupt-controller@2c010000 {
> > compatible = "arm,gic-400", "arm,cortex-a15-gic";
> >
> > And the driver uses IRQCHIP_DECLARE() and hence should be pretty much
> > a NOP since those suppliers are never devices and are ignored.
> > $ git grep "arm,gic-400" -- drivers/
> > drivers/irqchip/irq-gic.c:IRQCHIP_DECLARE(gic_400, "arm,gic-400", gic_of_init);
> >
> > This doesn't make any sense. Am I looking at the right files? Am I
> > missing something?
>
> Okay, I've added displaying a list of deferred devices when mounting
> rootfs fails and got following items:
>
> Deferred devices:
> 18000000.ethernet platform: probe deferral - supplier
> bus@8000000:motherboard-bus not ready
> 1c050000.mmci amba: probe deferral - supplier
> bus@8000000:motherboard-bus not ready
> 1c1d0000.gpio amba: probe deferral - supplier
> bus@8000000:motherboard-bus not ready
> 2b600000.iommu platform: probe deferral - wait for supplier
> scpi-power-domains
> 7ff50000.hdlcd platform: probe deferral - wait for supplier scpi-clk
> 7ff60000.hdlcd platform: probe deferral - wait for supplier scpi-clk
> 1c060000.kmi amba: probe deferral - supplier
> bus@8000000:motherboard-bus not ready
> 1c070000.kmi amba: probe deferral - supplier
> bus@8000000:motherboard-bus not ready
> 1c170000.rtc amba: probe deferral - supplier
> bus@8000000:motherboard-bus not ready
> 1c0f0000.wdt amba: probe deferral - supplier
> bus@8000000:motherboard-bus not ready
> gpio-keys
> Kernel panic - not syncing: VFS: Unable to mount root fs on
> unknown-block(0,0)
>
> I don't see the 'bus@8000000:motherboard-bus' on the deferred devices
> list, so it looks that device core added a link to something that is not
> a platform device...
Lemme guess: bus@8000000 is a simple bus, but it has an
interrupt-map, and the devlink code doesn't follow the mapping?
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