[RFCv1 00/11] MSI support for Marvell EBU PCIe driver

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Tue Mar 26 12:52:15 EDT 2013


Hello,

This set of patches introduces Message Signaled Interrupt support in
the Marvell EBU PCIe driver. It has been successfully tested on the
Armada XP GP platform and the Armada 370 DB platform with an Intel
e1000e PCIe network card that supports MSI.

This is based on work done by Lior Amsalem <alior at marvell.com>.

The patches do the following:

 * Patches 1, 2 and 3 move the IRQ controller driver of Armada 370/XP
   platforms from arch/arm/mach-mvebu/ into drivers/irqchip/ and use
   the proper irqchip infrastructure. Those changes are not strictly
   needed to add MSI interrupts support, but since we will be touching
   the IRQ controller driver anyway, it sounded like the right time to
   do this move.

 * Patches 4 and 5 do some minor cleanups that will help for the
   remainer of the changes.

 * Patch 6 makes the MPIC node a subnode of the interrupt controller
   node, since the MSI interrupt controller will be added as a second
   subnode. The details on why this is needed are given in the commit
   log. It is important to read those details to understand why such a
   Device Tree representation was used.

 * Patch 7 modifies the IRQ controller driver to support MSI.

 * Patch 8 is a patch from Thierry Reding that introduces a small
   infrastructure based on 'struct msi_chip' which makes the MSI
   support usable on multiplatform kernel.

 * Patch 9 adds the MSI support to the Marvell EBU PCIe driver.

 * Patch 10 and 11 respectively update the Device Tree and the
   defconfig of Armada 370/XP platforms to enable MSI.

It is for now sent as a RFC in order to define whether the Device Tree
representation is correct or not. Again, patch 6 gives the rationale
for this choice.

This patch set is meant to be applied on top of the Marvell PCIe
driver. I keep it distinct from the PCIe driver patch set because the
PCIe driver itself is mostly reading for merging (it has gone through
multiple iterations over the last 3 months), while this patch set is
brand new and will most likely need a bunch of iterations as well.

Thanks,

Thomas

Thierry Reding (1):
  PCI: Introduce new MSI chip infrastructure

Thomas Petazzoni (10):
  arm: mvebu: move L2 cache initialization in init_early()
  irqchip: move IRQ driver for Armada 370/XP
  irqchip: armada-370-xp: move IRQ handler to avoid forward declaration
  irqchip: armada-370-xp: slightly cleanup irq controller driver
  arm: mvebu: do not duplicate the mpic alias
  irqchip: armada-370-xp: use a separate mpic node
  irqchip: armada-370-xp: add MSI support to interrupt controller
    driver
  pci: mvebu: add MSI support
  arm: mvebu: enable MSI support in DT
  arm: mvebu: enable PCI MSI support in defconfig

 .../devicetree/bindings/arm/armada-370-xp-mpic.txt |   39 +++-
 .../devicetree/bindings/pci/mvebu-pci.txt          |    5 +
 arch/arm/boot/dts/armada-370-xp.dtsi               |   15 +-
 arch/arm/boot/dts/armada-370.dtsi                  |    3 +-
 arch/arm/boot/dts/armada-xp-mv78230.dtsi           |    1 +
 arch/arm/boot/dts/armada-xp-mv78260.dtsi           |    1 +
 arch/arm/boot/dts/armada-xp-mv78460.dtsi           |    1 +
 arch/arm/boot/dts/armada-xp.dtsi                   |    2 +-
 arch/arm/configs/mvebu_defconfig                   |    1 +
 arch/arm/mach-mvebu/Kconfig                        |    1 +
 arch/arm/mach-mvebu/Makefile                       |    2 +-
 arch/arm/mach-mvebu/armada-370-xp.c                |    9 +-
 drivers/irqchip/Makefile                           |    1 +
 .../irqchip}/irq-armada-370-xp.c                   |  202 ++++++++++++++------
 drivers/pci/host/pci-mvebu.c                       |  128 +++++++++++++
 drivers/pci/msi.c                                  |   35 +++-
 drivers/pci/probe.c                                |    1 +
 include/linux/msi.h                                |   10 +
 include/linux/pci.h                                |    1 +
 19 files changed, 384 insertions(+), 74 deletions(-)
 rename {arch/arm/mach-mvebu => drivers/irqchip}/irq-armada-370-xp.c (68%)

-- 
1.7.9.5




More information about the linux-arm-kernel mailing list