mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 06:10:56 +00:00
ad3aedfbb0
It is not uncommon (at least with the ARM stuff) to have a piece of hardware that implements different flavours of "interrupts". A typical example of this is the GICv3 ITS, which implements standard PCI/MSI support, but also some form of "generic MSI". So far, the PCI/MSI domain is registered using the ITS device_node, so that irq_find_host can return it. On the contrary, the raw MSI domain is not registered with an device_node, making it impossible to be looked up by another subsystem (obviously, using the same device_node twice would only result in confusion, as it is not defined which one irq_find_host would return). A solution to this is to "type" domains that may be aliasing, and to be able to lookup an device_node that matches a given type. For this, we introduce irq_find_matching_host() as a superset of irq_find_host: struct irq_domain *irq_find_matching_host(struct device_node *node, enum irq_domain_bus_token bus_token); where bus_token is the "type" we want to match the domain against (so far, only DOMAIN_BUS_ANY is defined). This result in some moderately invasive changes on the PPC side (which is the only user of the .match method). This has otherwise no functionnal change. Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Cc: <linux-arm-kernel@lists.infradead.org> Cc: Yijing Wang <wangyijing@huawei.com> Cc: Ma Jun <majun258@huawei.com> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Duc Dang <dhdang@apm.com> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Jiang Liu <jiang.liu@linux.intel.com> Cc: Jason Cooper <jason@lakedaemon.net> Link: http://lkml.kernel.org/r/1438091186-10244-2-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
||
---|---|---|
.. | ||
ge | ||
qe_lib | ||
xics | ||
6xx-suspend.S | ||
axonram.c | ||
cpm1.c | ||
cpm2.c | ||
cpm2_pic.c | ||
cpm2_pic.h | ||
cpm_common.c | ||
dart.h | ||
dart_iommu.c | ||
dcr-low.S | ||
dcr.c | ||
ehv_pic.c | ||
fsl_85xx_cache_ctlr.h | ||
fsl_85xx_cache_sram.c | ||
fsl_85xx_l2ctlr.c | ||
fsl_gtm.c | ||
fsl_lbc.c | ||
fsl_mpic_err.c | ||
fsl_mpic_timer_wakeup.c | ||
fsl_msi.c | ||
fsl_msi.h | ||
fsl_pci.c | ||
fsl_pci.h | ||
fsl_pmc.c | ||
fsl_rio.c | ||
fsl_rio.h | ||
fsl_rmu.c | ||
fsl_soc.c | ||
fsl_soc.h | ||
grackle.c | ||
i8259.c | ||
indirect_pci.c | ||
ipic.c | ||
ipic.h | ||
Kconfig | ||
Makefile | ||
micropatch.c | ||
mmio_nvram.c | ||
mpc5xxx_clocks.c | ||
mpc8xx_pic.c | ||
mpc8xx_pic.h | ||
mpic.c | ||
mpic.h | ||
mpic_msgr.c | ||
mpic_msi.c | ||
mpic_timer.c | ||
mpic_u3msi.c | ||
msi_bitmap.c | ||
mv64x60.h | ||
mv64x60_dev.c | ||
mv64x60_pci.c | ||
mv64x60_pic.c | ||
mv64x60_udbg.c | ||
of_rtc.c | ||
pmi.c | ||
ppc4xx_cpm.c | ||
ppc4xx_gpio.c | ||
ppc4xx_hsta_msi.c | ||
ppc4xx_msi.c | ||
ppc4xx_ocm.c | ||
ppc4xx_pci.c | ||
ppc4xx_pci.h | ||
ppc4xx_soc.c | ||
rtc_cmos_setup.c | ||
scom.c | ||
simple_gpio.c | ||
simple_gpio.h | ||
tsi108_dev.c | ||
tsi108_pci.c | ||
udbg_memcons.c | ||
uic.c | ||
xilinx_intc.c | ||
xilinx_pci.c |