irq_create_fwspec_mapping() in 4.8-rc2
Linus Walleij
linus.walleij at linaro.org
Mon Sep 5 05:40:13 PDT 2016
On Fri, Sep 2, 2016 at 5:31 PM, Marc Zyngier <marc.zyngier at arm.com> wrote:
> +Linus, Jean-Christophe, Jon
>
> On 02/09/16 16:15, Andras Szemzo wrote:
>> Hi,
>>
>>> On 02 Sep 2016, at 17:09, Marc Zyngier <marc.zyngier at arm.com> wrote:
>>>
>>> So something has already configured the interrupt to be
>>> IRQ_TYPE_EDGE_BOTH, and this clashes with your
>>> IRQ_TYPE_EDGE_FALLING.
>>>
>>> My bet is on this one:
>>>
>>> diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
>>> index 80daead..9f09041 100644
>>> --- a/drivers/pinctrl/pinctrl-at91.c
>>> +++ b/drivers/pinctrl/pinctrl-at91.c
>>> @@ -1614,7 +1614,7 @@ static int at91_gpio_of_irq_setup(struct platform_device *pdev,
>>> &gpio_irqchip,
>>> 0,
>>> handle_edge_irq,
>>> - IRQ_TYPE_EDGE_BOTH);
>>> + IRQ_TYPE_NONE);
>>> if (ret) {
>>> dev_err(&pdev->dev, "at91_gpio.%d: Couldn't add irqchip to gpiochip.\n",
>>> at91_gpio->pioc_idx);
>>>
>>> Can you give it a go and let me know what happens?
>>
>> yes, this fixed the problem. Thank you, it was fast!
>
> Right. So the at91 pinctlr seems to enforce a default configuration. The
> question is *why*? All interrupts connected to it should provide their
> own trigger coming from DT.
I guess for legacy boardfile usecases or just how it happened to end
up during development.
> As we now actually check that we have some consistency between what is
> configured and what is requested, it is bound to fail, unless you happen
> to match the default.
Which is good!
> What am I missing?
Nothing, I am missing your patch on the mailing list with a Signed-off-by
so I can apply it (unless the Atmel people have complaints).
Yours,
Linus Walleij
More information about the linux-arm-kernel
mailing list