[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