Re: [PATCH v3 06/16] irqchip: add sl28cpld interrupt controller support

From: Thomas Gleixner
Date: Mon Apr 27 2020 - 15:00:40 EST


Michael,

Michael Walle <michael@xxxxxxxx> writes:
> Am 2020-04-27 13:40, schrieb Thomas Gleixner:
>>> +
>>> + ret = devm_regmap_add_irq_chip(&pdev->dev, irqchip->regmap, irq,
>>> + IRQF_SHARED | IRQF_ONESHOT, 0,
>>
>> What's the point of IRQF_SHARED | IRQF_ONESHOT here?
>
> IRQF_SHARED because this interrupt is shared with all the blocks
> which can generate interrupts, i.e. the GPIO contollers.

Why are people still designing hardware with shared interrupts? Shared
interrupts are broken by design and that's well known for decades.

> IRQF_ONESHOT, because its is a threaded interrupt with no primary
> handler. But I just noticed, that regmap-irq will also set the
> IRQF_ONESHOT. But that the commit 09cadf6e088b ("regmap-irq:
> set IRQF_ONESHOT flag to ensure IRQ request") reads like it is
> just there to be sure. So I don't know if it should also be set
> here.

Ok. Wasn't aware of that magic threaded interrupt connection.

Thanks,

tglx