forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
acpi/irq: Add stacked IRQ domain support to PCI interrupt link
Some PCIe designs require software to do extra acknowledgements for legacy INTx interrupts. If the driver is written only for device tree, things are simple. In that case, a new driver can be written under driver/pci/controller/ with a DT node of PCIe host written like: pcie { ... interrupt-map = <0 0 0 1 &pcie_intc 0>, <0 0 0 2 &pcie_intc 1>, <0 0 0 3 &pcie_intc 2>, <0 0 0 4 &pcie_intc 3>; pcie_intc: legacy-interrupt-controller { interrupt-controller; #interrupt-cells = <1>; interrupt-parent = <&gic>; interrupts = <0 226 4>; }; }; Similar designs can be found on Aardvark, MediaTek Gen2 and Socionext UniPhier PCIe controller at the moment. Essentially, those designs are supported by inserting an extra interrupt controller between PCIe host and GIC and parse the topology in a DT-based PCI controller driver. As we turn to ACPI, All the PCIe hosts are described the same ID of "PNP0A03" and share driver/acpi/pci_root.c. It comes to be a problem to make this kind of PCI INTx work under ACPI. Therefore, we introduce an stacked IRQ domain support to PCI interrupt link for ACPI. With this support, we can populate the ResourceSource to refer to a device object that describes an interrupt controller. That would allow us to refer to a dedicated driver which implements the logic needed to manage the interrupt state. With this patch, those PCI interrupt links can be supported by describing the INTx in ACPI table as the following example: Device (IXIU) { ... } Device(LINKA) { Name(_HID, EISAID("PNP0C0F")) Name(_PRS, ResourceTemplate(){ Interrupt(ResourceProducer, Level, ActiveHigh, Exclusive, 0, "\\SB.IXIU") { 60 } }) ... } Device(PCI0) { ... Name(_PRT, Package{ Package{ 0x0000FFFF, 0, LINKA, 0 } ... }) } Signed-off-by: Chen Baozi <chenbaozi@phytium.com.cn>
- Loading branch information
1 parent
4e4b3ac
commit 76f0a22
Showing
5 changed files
with
45 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters