Re: [PATCH v2 2/2] of: property: Add fw_devlink support for interrupts

From: Marek Szyprowski
Date: Fri Feb 05 2021 - 02:39:44 EST


Hi Saravana,

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...

Best regards

--
Marek Szyprowski, PhD
Samsung R&D Institute Poland