Thread (4 messages) 4 messages, 4 authors, 2016-09-12
STALE3568d

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

From: rafael@kernel.org (Rafael J. Wysocki)
Date: 2016-09-06 21:02:08
Also in: linux-acpi, linux-pci

On Tue, Sep 6, 2016 at 7:14 PM, Bjorn Helgaas [off-list ref] wrote:
On Tue, Sep 06, 2016 at 05:51:03PM +0100, Lorenzo Pieralisi wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help