]> git.baikalelectronics.ru Git - kernel.git/commit
PCI: aardvark: Use separate INTA interrupt for emulated root bridge
authorPali Rohár <pali@kernel.org>
Wed, 4 May 2022 16:57:51 +0000 (18:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 May 2022 10:30:33 +0000 (12:30 +0200)
commitc99fac4abcde59bdbd70f421907953a7c3a1f237
treeb76fe8e6e48764f9b576283295b355becc9fbdc8
parent29f647f6313ea1c063e4512b5744860cb5716da8
PCI: aardvark: Use separate INTA interrupt for emulated root bridge

commit 9f3c38745d4d0798ad852d6396a3f21b143e7784 upstream.

Emulated root bridge currently provides only one Legacy INTA interrupt
which is used for reporting PCIe PME and ERR events and handled by kernel
PCIe PME and AER drivers.

Aardvark HW reports these PME and ERR events separately, so there is no
need to mix real INTA interrupt and emulated INTA interrupt for PCIe PME
and AER drivers.

Register a new advk-RP (as in Root Port) irq chip and a new irq domain
for emulated root bridge and use this new separate irq domain for
providing INTA interrupt from emulated root bridge for PME and ERR events.

The real INTA interrupt from real devices is now separate.

A custom map_irq callback function on PCI host bridge structure is used to
allocate IRQ mapping for emulated root bridge from new irq domain. Original
callback of_irq_parse_and_map_pci() is used for all other devices as before.

Link: https://lore.kernel.org/r/20220110015018.26359-19-kabel@kernel.org
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/pci/controller/pci-aardvark.c