From: benh@kernel.crashing.org (Benjamin Herrenschmidt)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv6 00/13] MSI support for Marvell EBU PCIe driver
Date: Wed, 07 Aug 2013 08:39:14 +1000 [thread overview]
Message-ID: <1375828754.12557.70.camel@pasglop> (raw)
In-Reply-To: <20130806201000.3e97c63b@skate>
On Tue, 2013-08-06 at 20:10 +0200, Thomas Petazzoni wrote:
> Benjamin, Thomas,
>
> This patch set has been around for two months now, and I would really
> like to see it merged. Your ACKs are the only ones missing to merge the
> whole thing.
>
> Would you mind having a look at:
>
> * Patches 4, 5, 6, 7 for Benjamin as the irqdomain maintainer.
Ah sorry, I wasn't aware you were actually waiting for my acks, I didn't
read the whole thread, my bad. I'm not irqdomain maintainer btw. I wrote
the original powerpc implementation but since then it has been taken
over by Grant and others. But I can certainly comment :-)
Cheers,
Ben.
> * Patches 8 and 9 for Thomas as the drivers/irqchip maintainer.
>
> Thanks a lot!
>
> Thomas
>
> On Thu, 1 Aug 2013 15:25:03 +0200, Thomas Petazzoni wrote:
> > 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 with an Intel e1000e PCIe network card that
> > supports MSI.
> >
> > This patch set is intended for merging in 3.12, so the respective
> > maintainers of the different areas are invited to review/ack the
> > patches, see below for the details. Note that several of those patches
> > are also needed for the Tegra PCIe driver.
> >
> > There are still missing ACKs from Grant Likely (5, 6, 7), Thomas
> > Gleixner (8, 9) and Bjorn Helgaas (2, 12).
> >
> > The patches do the following:
> >
> > * Patch 1 reworks how the architecture-specific MSI functions can be
> > overriden by architecture-specific code, by using weak
> > functions. It was suggested by Bjorn Helgaas.
> >
> > This patch has been acked by Bjorn Helgaas, the PCI maintainter.
> >
> > * Patch 2 removes the ARCH_SUPPORTS_MSI hidden kconfig boolean which
> > is no longer needed now that we have weak functions for all MSI
> > architecture-specific hooks.
> >
> > This patch needs the Ack from Bjorn Helgaas, and the relevant
> > architecture maintainers.
> >
> > * Patch 3 adds a minimal msi_chip infrastructure, that allows a
> > pci_bus to be connected to a msi_chip, and that provides default
> > implementations of the architecture-specific MSI functions to use
> > msi_chip.
> >
> > This patch has been acked by Bjorn Helgaas, the PCI maintainter.
> >
> > * Patch 4 adds an IRQ domain function that allows to allocate
> > dynamically a free hwirq number from an IRQ domain, and create a
> > virq mapping to it. It was suggested by Grant Likely in order to
> > remove the hwirq allocation code from the IRQ driver itself.
> >
> > Patch has been Acked by Grant Likely, irq_domain maintainer.
> >
> > * Patch 5 refactors the __irq_domain_add() function in the irq_domain
> > code, in preparation for the introduction of MSI support in
> > irq_domain.
> >
> > This patch needs the ACK of Grant Likely.
> >
> > * Patch 6 allows to create an irq_domain associated with a msi_chip,
> > thanks to the new irq_domain_add_msi() function.
> >
> > This patch needs the ACK of Grant Likely.
> >
> > * Patch 7 adds a new function irq_find_msi_host() to find the
> > MSI-type interrupt controller associated to a given DT node, and
> > adjusts irq_find_host() to not match MSI-type interrupt
> > controllers.
> >
> > This patch needs the ACK of Grant Likely.
> >
> > * Patch 8 makes some not very interesting preparation in the Armada
> > 370/XP IRQ controller driver.
> >
> > This patch needs the Ack from Thomas Gleixner.
> >
> > * Patch 9 implements the MSI support in the Armada 370/XP IRQ
> > controller driver. It registers an msi_chip using the
> > msi_chip_add() function added in PATCH 3.
> >
> > This patch needs the Ack from Thomas Gleixner.
> >
> > * Patch 10 extends the ARM PCI core to expose ->add_bus() and
> > ->remove_bus() hooks to PCI drivers. This was suggested by Bjorn
> > Helgaas to allow the PCI driver to connected the PCI busses with
> > the corresponding MSI chip.
> >
> > This patch has been Acked by Russell King, the ARM maintainer.
> >
> > * Patch 11 adjust the Armada 370/XP Device Tree to indicate that the
> > MPIC is not only an interrupt-controller, but also an
> > msi-controller.
> >
> > This patch needs the Ack from Jason Cooper, Gregory Clement
> > and/or Andrew Lunn, the Marvell maintainers.
> >
> > * Patch 12 adds MSI support in the Marvell PCIe host controller
> > driver. The work to do here is minimal: get a reference to the
> > msi-parent controller thanks to msi_chip_find_by_of_node(), and
> > link it to the pci_bus structure before the bus gets enumerated.
> >
> > This patch needs the Ack from Bjorn Helgaas.
> >
> > * Patch 13 adjusts the Armada 370/XP Device Tree to add the msi-parent
> > properties in the PCIe controller nodes.
> >
> > This patch needs the Ack from Jason Cooper, Gregory Clement
> > and/or Andrew Lunn, the Marvell Maintainers.
> >
> > This version 6 follows:
> > * PATCH version 5 sent on July, 15th 2013
> > * PATCH version 4 sent on July, 1st 2013
> > * PATCH version 3 sent on June, 19th 2013
> > * PATCH version 2 sent on June, 6th 2013
> > * RFC version 1 sent on March, 26th 2013
> >
> > Changes since v5:
> >
> > * Rebased on top of 3.11-rc3.
> >
> > * Implemented the suggestions of Grant Likely on "irqdomain: add
> > irq_alloc_mapping() function" and added his Acked-by.
> >
> > * Added Bjorn Helgaas Acked-by on "PCI: use weak functions for MSI
> > arch-specific functions".
> >
> > * Added Bjorn Helgaas Acked-by on "PCI: Introduce new MSI chip
> > infrastructure".
> >
> > * Remove the drivers/of global registry of irq_chip, and as suggested
> > by Grant Likely, create an association between an irq_domain and a
> > msi_chip. This required refactoring the __irq_domain_add()
> > function, adding a 'msi_chip' pointer to 'irq_domain', adding an
> > irq_domain_add_msi() function and a irq_find_msi_host() function.
> >
> > * Added Russell King Acked-by on "ARM: pci: add ->add_bus() and
> > ->remove_bus() hooks to hw_pci"
> >
> > Changes since v4:
> >
> > * Rebased on top of 3.11-rc1.
> >
> > * Slightly rework the implementation of arch_setup_msi_irq(),
> > arch_teardown_msi_irq and arch_msi_check_device() according to the
> > suggestions of Bjorn Helgaas (PATCH 4)
> >
> > * Make a few improvements to the msi_chip registry, according to the
> > suggestion of Bjorn Helgaas and Rob Herring: coding style fixes,
> > usage of mutex while traversing the list of msi_chip, usage of
> > of_pci_msi_* prefix instead of just of_msi_*.
> >
> > Changes since v3:
> >
> > * Keep only a default_teardown_msi_irqs() function needed for the Xen
> > PCI x86 code, and remove all other default_*() function and put the
> > default behavior directly in the weak functions. Suggested by
> > Thierry Redding and Bjorn Helgaas.
> >
> > * Misc small improvements the MSI chip registry code: compiled only
> > under CONFIG_PCI_MSI, functions exported to modules, addition of an
> > of_msi_chip_remove() function, renaming of
> > of_msi_chip_find_by_node() to of_find_msi_chip_by_node(), move the
> > test of the "msi-controller" property to the of_msi_chip_add()
> > function, renamed the list_head field from link to list, added
> > dummy functions in the header files when !CONFIG_PCI_MSI &&
> > !CONFIG_OF. All suggested by Thierry Redding.
> >
> > * Add a patch that entirely removes the ARCH_SUPPORTS_MSI, as we now
> > have weak functions, so even if an arch doesn't actually
> > use/support MSI, the code will build properly. Suggested by Thierry
> > Redding.
> >
> > * Added Device Tree binding documentation updates for the IRQ
> > controller and the PCIe controller.
> >
> > Changes since v2:
> >
> > * Add an IRQ domain function that allows to allocate dynamically a
> > free hwirq number from an IRQ domain, and create a virq mapping to
> > it. It was suggested by Grant Likely in order to remove the hwirq
> > allocation code from the IRQ driver itself. (PATCH 1)
> >
> > * Separate the use of weak functions from the introduction of the
> > msi_chip infrastructure, and use weak functions for all
> > architecture-specific MSI hooks. Suggested by Bjorn Helgaas (PATCH
> > 2).
> >
> > * Move the msi_chip registry to drivers/of. Suggested by Bjorn
> > Helgaas (PATCH 4).
> >
> > * Use pcibios_add_bus() and pcibios_remove_bus() to connect the PCI
> > busses to their msi_chip, as suggested by Bjorn Helgaas. Requires
> > some ARM PCI core changes (PATCH 7), and then changes to the PCI
> > driver itself (PATCH 9).
> >
> > This set of patches applies on top of 3.11-rc3, and is available as a
> > Git branch at
> > https://github.com/MISL-EBU-System-SW/mainline-public/tree/marvell-pcie-msi-v6.
> >
> > Thanks,
> >
> > Thomas
> >
> > Thierry Reding (1):
> > PCI: Introduce new MSI chip infrastructure
> >
> > Thomas Petazzoni (12):
> > PCI: use weak functions for MSI arch-specific functions
> > PCI: remove ARCH_SUPPORTS_MSI kconfig option
> > irqdomain: add irq_alloc_mapping() function
> > irqdomain: refactor __irq_domain_add()
> > irqdomain: add support to associate an irq_domain with a msi_chip
> > irqdomain: add function to find a MSI irq_domain
> > irqchip: armada-370-xp: properly request resources
> > irqchip: armada-370-xp: implement MSI support
> > ARM: pci: add ->add_bus() and ->remove_bus() hooks to hw_pci
> > ARM: mvebu: the MPIC now provides MSI controller features
> > PCI: mvebu: add support for MSI
> > ARM: mvebu: link PCIe controllers to the MSI controller
> >
> > .../devicetree/bindings/arm/armada-370-xp-mpic.txt | 3 +
> > .../devicetree/bindings/pci/mvebu-pci.txt | 3 +
> > arch/arm/Kconfig | 1 -
> > arch/arm/boot/dts/armada-370-xp.dtsi | 1 +
> > arch/arm/boot/dts/armada-370.dtsi | 1 +
> > 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/include/asm/mach/pci.h | 4 +
> > arch/arm/kernel/bios32.c | 16 +++
> > arch/ia64/Kconfig | 1 -
> > arch/mips/Kconfig | 2 -
> > arch/mips/include/asm/pci.h | 5 -
> > arch/powerpc/Kconfig | 1 -
> > arch/powerpc/include/asm/pci.h | 5 -
> > arch/s390/Kconfig | 1 -
> > arch/s390/include/asm/pci.h | 4 -
> > arch/sparc/Kconfig | 1 -
> > arch/tile/Kconfig | 1 -
> > arch/x86/Kconfig | 1 -
> > arch/x86/include/asm/pci.h | 28 ----
> > arch/x86/kernel/x86_init.c | 21 +++
> > drivers/irqchip/irq-armada-370-xp.c | 153 ++++++++++++++++++++-
> > drivers/pci/Kconfig | 4 -
> > drivers/pci/host/pci-mvebu.c | 31 +++++
> > drivers/pci/msi.c | 66 +++++----
> > drivers/pci/probe.c | 1 +
> > include/linux/irqdomain.h | 62 ++++++++-
> > include/linux/msi.h | 18 ++-
> > include/linux/pci.h | 1 +
> > kernel/irq/irqdomain.c | 89 +++++++++---
> > 31 files changed, 422 insertions(+), 106 deletions(-)
> >
>
>
>
next prev parent reply other threads:[~2013-08-06 22:39 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-01 13:25 [PATCHv6 00/13] MSI support for Marvell EBU PCIe driver Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 01/13] PCI: use weak functions for MSI arch-specific functions Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 02/13] PCI: remove ARCH_SUPPORTS_MSI kconfig option Thomas Petazzoni
2013-08-01 16:48 ` Bjorn Helgaas
2013-08-01 13:25 ` [PATCHv6 03/13] PCI: Introduce new MSI chip infrastructure Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 04/13] irqdomain: add irq_alloc_mapping() function Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 05/13] irqdomain: refactor __irq_domain_add() Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 06/13] irqdomain: add support to associate an irq_domain with a msi_chip Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 07/13] irqdomain: add function to find a MSI irq_domain Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 08/13] irqchip: armada-370-xp: properly request resources Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 09/13] irqchip: armada-370-xp: implement MSI support Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 10/13] ARM: pci: add ->add_bus() and ->remove_bus() hooks to hw_pci Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 11/13] ARM: mvebu: the MPIC now provides MSI controller features Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 12/13] PCI: mvebu: add support for MSI Thomas Petazzoni
2013-08-01 13:25 ` [PATCHv6 13/13] ARM: mvebu: link PCIe controllers to the MSI controller Thomas Petazzoni
2013-08-01 16:08 ` [PATCHv6 00/13] MSI support for Marvell EBU PCIe driver Stephen Warren
2013-08-01 16:14 ` Thomas Petazzoni
2013-08-01 16:50 ` Bjorn Helgaas
2013-08-01 17:58 ` Thomas Petazzoni
2013-08-06 18:10 ` Thomas Petazzoni
2013-08-06 22:39 ` Benjamin Herrenschmidt [this message]
2013-08-07 9:03 ` Thomas Petazzoni
2013-09-18 20:23 ` Grant Likely
2013-08-06 18:22 ` Daniel Price
2013-08-06 19:30 ` Jason Cooper
2013-08-06 20:02 ` Jason Cooper
2013-08-06 20:08 ` Stephen Warren
2013-08-07 15:51 ` Jason Cooper
2013-08-07 6:59 ` Thierry Reding
2013-08-07 15:55 ` Jason Cooper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1375828754.12557.70.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).