mirror_ubuntu-kernels/arch/powerpc/platforms/pseries
Cédric Le Goater a5f3d2c17b powerpc/pseries/pci: Add MSI domains
Two IRQ domains are added on top of default machine IRQ domain.

First, the top level "pSeries-PCI-MSI" domain deals with the MSI
specificities. In this domain, the HW IRQ numbers are generated by the
PCI MSI layer, they compose a unique ID for an MSI source with the PCI
device identifier and the MSI vector number.

These numbers can be quite large on a pSeries machine running under
the IBM Hypervisor and /sys/kernel/irq/ and /proc/interrupts will
require small fixes to show them correctly.

Second domain is the in-the-middle "pSeries-MSI" domain which acts as
a proxy between the PCI MSI subsystem and the machine IRQ subsystem.
It usually allocate the MSI vector numbers but, on pSeries machines,
this is done by the RTAS FW and RTAS returns IRQ numbers in the IRQ
number space of the machine. This is why the in-the-middle "pSeries-MSI"
domain has the same HW IRQ numbers as its parent domain.

Only the XIVE (P9/P10) parent domain is supported for now. We still
need to add support for IRQ domain hierarchy under XICS.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210701132750.1475580-6-clg@kaod.org
2021-08-10 23:14:57 +10:00
..
cmm.c mm: remove unneeded includes of <asm/pgalloc.h> 2020-08-07 11:33:26 -07:00
dlpar.c powerpc/pseries/dlpar: use rtas_get_sensor() 2021-06-25 14:47:20 +10:00
dtl.c powerpc64: Break asm/percpu.h vs spinlock_types.h dependency 2020-07-10 12:00:01 +02:00
eeh_pseries.c powerpc/pseries/eeh: Make pseries_send_allow_unfreeze() static 2021-01-30 11:39:31 +11:00
event_sources.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
firmware.c powerpc/book3s64/radix: Add kernel command line option to disable radix GTSE 2020-07-29 21:09:37 +10:00
hotplug-cpu.c powerpc/pseries: Prevent free CPU ids being reused on another node 2021-08-10 23:14:55 +10:00
hotplug-memory.c pseries/drmem: update LMBs after LPM 2021-08-10 23:14:55 +10:00
hvCall_inst.c powerpc/pseries: Make symbol '__pcpu_scope_hcall_stats' static 2021-04-14 23:04:17 +10:00
hvCall.S powerpc/64s: avoid reloading (H)SRR registers if they are still valid 2021-06-25 00:06:55 +10:00
hvconsole.c powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
hvcserver.c powerpc: Use fallthrough pseudo-keyword 2020-07-29 21:09:37 +10:00
ibmebus.c powerpc: Add missing linux/{of.h,irqdomain.h} include directives 2021-06-10 13:09:16 +01:00
io_event_irq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
iommu.c powerpc/iommu: Do not immediately panic when failed IOMMU table allocation 2021-04-23 01:38:04 +10:00
Kconfig powerpc/pseries: Implement paravirt qspinlocks for SPLPAR 2020-07-27 00:01:29 +10:00
kexec.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
lpar.c powerpc/kexec: blacklist functions called in real mode for kprobe 2021-07-26 20:38:51 +10:00
lparcfg.c powerpc/pseries: export LPAR security flavor in lparcfg 2021-03-26 23:19:41 +11:00
Makefile powerpc/pseries/vas: Integrate API with open/close windows 2021-06-20 21:58:57 +10:00
mobility.c powerpc/pseries/mobility: handle premature return from H_JOIN 2021-03-23 09:25:12 +11:00
msi.c powerpc/pseries/pci: Add MSI domains 2021-08-10 23:14:57 +10:00
nvram.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
of_helpers.c powerpc/pseries: Fix of_read_drc_info_cell() to point at next record 2020-03-25 12:06:43 +11:00
of_helpers.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
papr_scm.c powerpc/papr_scm: trivial: fix typo in a comment 2021-06-25 14:47:19 +10:00
pci_dlpar.c powerpc/pseries: extract host bridge from pci_bus prior to bus removal 2021-04-16 23:58:04 +10:00
pci.c powerpc/powernv: remove the nvlink support 2021-05-02 23:35:32 +10:00
pmem.c powerpc/pseries/pmem: Make symbol 'drc_pmem_match' static 2021-04-14 23:04:17 +10:00
power.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 167 2019-05-30 11:26:39 -07:00
pseries_energy.c powerpc/pseries: Fix drc-info mappings of logical cpus to drc-index 2019-11-13 16:57:57 +11:00
pseries.h powerpc/pseries/pci: Add MSI domains 2021-08-10 23:14:57 +10:00
ras.c powerpc/64s: avoid reloading (H)SRR registers if they are still valid 2021-06-25 00:06:55 +10:00
reconfig.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
rng.c powerpc/pseries: Fix missing of_node_put() in rng_init() 2020-08-25 01:31:31 +10:00
rtas-fadump.c powerpc/fadump: make symbol 'rtas_fadump_set_regval' static 2021-04-14 23:04:19 +10:00
rtas-fadump.h powerpc/fadump: support holes in kernel boot memory area 2019-09-14 00:04:46 +10:00
scanlog.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
setup.c powerpc/pseries/pci: Add MSI domains 2021-08-10 23:14:57 +10:00
smp.c powerpc/preempt: Don't touch the idle task's preempt_count during hotplug 2021-07-08 23:38:10 +10:00
suspend.c powerpc/pseries/hibernation: remove prepare_late() callback 2020-12-08 21:41:02 +11:00
svm.c powerpc/svm: stop using io_tlb_start 2021-03-17 00:13:52 +00:00
vas.c powerpc/pseries/vas: Include irqdomain.h 2021-06-25 14:53:47 +10:00
vas.h powerpc/pseries/vas: Define VAS/NXGZIP hcalls and structs 2021-06-20 21:58:56 +10:00
vio.c powerpc/pseries: Add shutdown() to vio_driver and vio_bus 2021-04-20 14:22:24 +10:00
vphn.c powerpc/vphn: Check for error from hcall_vphn 2020-03-04 22:44:30 +11:00