Hello, I'm trying to develop a driver for a PCIe device which utilizes multiple MSIs (up to the full 32 allowable), but I cannot seem to enable more than one when calling pci_enable_msi_range(). The host platform uses a Freescale i.MX 6Quad ARM SoC and is running the "linux-fslc_4.1" kernel (from the Yocto project). With some investigation, I believe that this limitation is stemming from arch_setup_msi_irqs() in drivers/pci/msi.c where there is an early return with the comment "If an architecture wants to support multiple MSI, it needs to override arch_setup_msi_irqs()". There appears to be no such override for ARM. My first question then, is: 1.) Are multiple MSIs simply not yet supported on ARM as of 4.1? Both MSIs and ARM have been around for a while, and I doubt I'm the only person who ever wanted to use multiple MSIs on ARM, so I can't help but think maybe I'm overlooking something. I ran into a similar question (http://lists.infradead.org/pipermail/linux-arm-kernel/2010-May/016858.html), but as that was 5+ years ago, I'm wondering whether the situation has since changed. Unfortunately, even if I work around the arch_setup_msi_irqs() limitation (which I've done by trying out patches 448141 and 448142 from http://patchwork.ozlabs.org/project/linux-pci/list/) and break through to the assign_irq() function in drivers/pci/host/pcie-designware.c, I still cannot allocate all 32 MSIs that my device reports. It appears that one of the bits in the msi_irq_in_use bitmap is already set prior to my driver requesting any MSIs, meaning there aren't enough free slots for the 32 MSIs I am requesting, and causing the function to fail with -ENOSPC. Based on the output from /proc/interrupts, I believe that the PCIe PME service driver is consuming one of the 32 available MSI slots. Thus, my second question is: 2.) Is it possible to leverage all 32 MSIs while still using PCIe PME? I tried using the kernel command line argument pcie_pme=nomsi, but that appeared to disable all MSIs for the device rather than just making the PME service driver use some other mechanism. Thank you. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html