[PATCH] [v3] powerpc/fsl_msi: add support for the fsl, msi property in PCI nodes

Kumar Gala kumar.gala at freescale.com
Thu Nov 24 19:25:42 EST 2011


On Oct 31, 2011, at 5:06 PM, Timur Tabi wrote:

> 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 at freescale.com>
> ---
> 
> v3: added check for invalid fsl,msi phandles
> 
> arch/powerpc/sysdev/fsl_msi.c |   39 +++++++++++++++++++++++++++++++++++++++
> arch/powerpc/sysdev/fsl_msi.h |    3 +++
> 2 files changed, 42 insertions(+), 0 deletions(-)

applied to next

- k


More information about the Linuxppc-dev mailing list