linux/arch/powerpc
Timur Tabi 895d603f94 powerpc/fsl_msi: add support for the fsl, msi property in PCI nodes
On Freescale parts with multiple MSI controllers, the controllers are
combined into one "pool" of interrupts.  Whenever a device requests an MSI
interrupt, the next available interrupt from the pool is selected,
regardless of which MSI controller the interrupt is from.  This works
because each PCI bus has an ATMU to all of CCSR, so any PCI device can
access any MSI interrupt register.

The fsl,msi property is used to specify that a given PCI bus should only
use a specific MSI device.  This is necessary, for example, with the
Freescale hypervisor, because the MSI devices are assigned to specific
partitions.

Ideally, we'd like to be able to assign MSI devices to PCI busses within
the MSI or PCI layers.  However, there does not appear to be a mechanism
to do that.  Whenever the MSI layer wants to allocate an MSI interrupt to
a PCI device, it just calls arch_setup_msi_irqs().  It would be nice if we
could register an MSI device with a specific PCI bus.

So instead we remember the phandles of each MSI device, and we use that to
limit our search for an available interrupt.  Whenever we are asked to
allocate a new interrupt for a PCI device, we check the fsl,msi property
of the PCI bus for that device.  If it exists, then as we are looping over
all MSI devices, we skip the ones that don't have a matching phandle.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2011-11-24 02:01:41 -06:00
..
boot powerpc/85xx: add pixis indirect mode device tree node 2011-11-24 02:01:40 -06:00
configs Merge remote-tracking branch 'agust/next' into merge 2011-11-08 14:53:55 +11:00
include/asm powerpc/85xx: Add lbc suspend support for PM 2011-11-24 02:01:40 -06:00
kernel powerpc/fsl-pci: Don't hide resource for pci/e when configured as Agent/EP 2011-11-24 02:01:40 -06:00
kvm Merge branch 'kvm-updates/3.2' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2011-11-20 14:57:43 -08:00
lib powerpc: Copy down exception vectors after feature fixups 2011-11-16 14:47:54 +11:00
math-emu powerpc/math_emu/efp: Look for errata handler when type mismatches 2011-10-06 23:36:47 -05:00
mm powerpc/numa: NUMA topology support for PowerNV 2011-11-08 14:51:46 +11:00
net net: filter: BPF 'JIT' compiler for PPC64 2011-07-21 12:38:32 -07:00
oprofile powerpc/oprofile: Handle events that raise an exception without overflowing 2011-05-26 13:38:57 +10:00
platforms powerpc/85xx: Renamed mpc85xx_common.c to common.c 2011-11-24 02:01:41 -06:00
sysdev powerpc/fsl_msi: add support for the fsl, msi property in PCI nodes 2011-11-24 02:01:41 -06:00
xmon Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
Kconfig powerpc/4xx: Fix typos in kexec config dependencies 2011-11-16 14:47:54 +11:00
Kconfig.debug powerpc/powernv: Support for OPAL console 2011-09-20 16:09:54 +10:00
Makefile powerpc: Remove buggy 9-year-old test for binutils < 2.12.1 2011-11-17 16:26:07 +11:00
relocs_check.pl