[PATCH v2] drivers: acpi: fix GIC irq model default PCI IRQ polarity

Rafael J. Wysocki rafael at kernel.org
Tue Sep 6 14:02:08 PDT 2016


On Tue, Sep 6, 2016 at 7:14 PM, Bjorn Helgaas <helgaas at kernel.org> wrote:
> On Tue, Sep 06, 2016 at 05:51:03PM +0100, Lorenzo Pieralisi wrote:
>> On ACPI ARM based systems the GIC interrupt controller
>> and corresponding interrupt model permit only the high
>> polarity for level interrupts.
>>
>> ACPI firmware describes PCI legacy IRQs through entries
>> in the _PRT objects. Entries in the _PRT can be of two types:
>>
>> - Static: not configurable, trigger/polarity default to level-low,
>>   _PRT entry defines the global GSI interrupt number
>> - Configurable: _PRT interrupt entry contains a reference to the
>>   corresponding PCI interrupt link device (that in turn provides the
>>   interrupt descriptor through its _CRS/_PRS methods)
>>
>> Configurable IRQ entries are not currently allowed by the ACPI
>> specification on ARM since they can only be used for interrupt pins that
>> are routable, as per ACPI specifications (version 6.1, 6.2.13):
>>
>> "[...] There are two ways that _PRT can be used. Typically, the
>> interrupt input that a given PCI interrupt is on is configurable. For
>> example, a given PCI interrupt might be configured for either IRQ 10 or
>> 11 on an 8259 interrupt controller. In this model, each interrupt is
>> represented in the ACPI namespace as a PCI Interrupt Link Device. [...]"
>
> Thanks for the reference!  I wouldn't read that as actually
> *disallowing* Interrupt Links for non-configurable interrupts.
>
> But regardless, I do understand that even if we assume Interrupt Links
> are allowed, there is firmware in the field that doesn't use them, and
> I think this patch is really targeted at *them*.

Right.  That's my understanding too.

So, generally speaking, it would be good to make interrupt links work
without _PRS, _SRS under them etc. and use link objects to address
this case in the future.

Thanks,
Rafael



More information about the linux-arm-kernel mailing list