irq_create_fwspec_mapping() in 4.8-rc2

Marc Zyngier marc.zyngier at arm.com
Fri Sep 2 07:15:17 PDT 2016


[cc-ing the maintainers of the code usually helps]

On 02/09/16 07:51, Andras Szemzo wrote:
> Hi,
> 
> I try to use 4.8-rc2 on my armv7m board, and I have a problem with GPIO IRQ.
> In my device-tree, I define the ethernet PHY IRQ like this:
> 
>  pioC: gpio at 0x400e1200 {
>     compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
>     reg = <0x400e1200 0x200>;
>     interrupts = <12>;
>     #gpio-cells = <2>;
>     gpio-controller;
>     interrupt-controller;
>     #interrupt-cells = <2>;
>     clocks = <&pioC_clk>;
> };
> ...
> ethernet-phy at 1 {
>      reg = <1>;
>      interrupt-parent = <&pioC>;
>      interrupts = <11 IRQ_TYPE_EDGE_FALLING>;

So this is the interrupt that gets a mismatch.

>      reset-gpios = <&pioC 10 GPIO_ACTIVE_HIGH>;
> };
> 
> with the 4.8-rc2 kernel at boot it fails with error:
> 
> irq: type mismatch, failed to map hwirq-11 for /soc/pinctrl at 0x400e0e00/gpio at 0x400e1200!
> 
> This error comes from kernel/irq/irq_domain.c, irq_create_fwspec_mapping().
> 
> My quick hack was to replace this function from 4.6.0 (where with the same device-tree, same kernel config it works) 
> and everything works as expected.
> 
> Maybe this hack is hiding a problem from somewhere else, but I can’t figure out what I missed.

Is there any other device in your system that uses the same interrupt?
Where can I see your full DT file?

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...



More information about the linux-arm-kernel mailing list