linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] irqdomain, gic-v3-its: Implement late irq domain initialization
@ 2018-11-07 22:03 Robert Richter
  2018-11-07 22:03 ` [PATCH 01/10] irqdomain: Add interface to request an irq domain Robert Richter
                   ` (10 more replies)
  0 siblings, 11 replies; 21+ messages in thread
From: Robert Richter @ 2018-11-07 22:03 UTC (permalink / raw)
  To: Marc Zyngier, Thomas Gleixner, Jason Cooper
  Cc: linux-arm-kernel, linux-kernel, Stuart Yoder, Laurentiu Tudor,
	Matthias Brugger, Will Deacon, Lorenzo Pieralisi, Richter,
	Robert

This patch series is a rework of the gic-v3-its initialization. It is
in preparation of a further series that uses CMA memory allocation for
ITS tables. For this the CMA framework must be available and thus ITS
needs to be initialized after the arch_initcalls. This requires two
major reworks.

First we must remove all irq domain init order dependencies (patches
#1-#5), second the ITS initialization must be split into an early
probe and a later init part (patches #6-#10).

Patch #1 introduces a new interface to request an irq domain, see the
patch description for details. In patches #2-#5 all ITS related irq
domains are converted to use the new interface. There are no order
dependencies for parent and client irq domain initialization anymore
which allows us to initialize all ITS irq domains in the same initcall
(moving to the later subsys_initcall). Note that I do not have fsl
hardware available, the code should work, but is only carefully
reviewed and compile tested, please test on that hardware.

The remaining patches #6-#10 are an incremental rework of the ITS
initialization, basically splitting probe and init (patch #7) and
separating it from gic-v3 code (patch #8). Patches #9 and #10 change
initcall levels for various drivers.

Patches have been tested with Cavium ThunderX and ThunderX2. I have an
implementation of CMA ITS table allocation on top of this series
available, I will send out patches for this in a couple of days.

Robert Richter (10):
  irqdomain: Add interface to request an irq domain
  irqchip/gic-v3-its-platform-msi: Remove domain init order dependencies
  irqchip/irq-gic-v3-its-pci-msi: Remove domain init order dependencies
  irqchip/irq-gic-v3-its-fsl-mc-msi: Remove domain init order
    dependencies
  fsl-mc/dprc-driver: Remove domain init order dependencies
  irqchip/gic-v3-its: Initialize its nodes in probe order
  irqchip/gic-v3-its: Split probing from its node initialization
  irqchip/gic-v3-its: Decouple its initialization from gic
  irqchip/gic-v3-its: Initialize its nodes later
  irqchip/gic-v3-its: Initialize MSIs with subsys_initcalls

 drivers/bus/fsl-mc/dprc-driver.c              |  41 +++++++
 drivers/bus/fsl-mc/fsl-mc-msi.c               |   6 +-
 drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c   |  49 +++++---
 drivers/irqchip/irq-gic-v3-its-pci-msi.c      |  68 ++++++-----
 drivers/irqchip/irq-gic-v3-its-platform-msi.c |  56 ++++++---
 drivers/irqchip/irq-gic-v3-its.c              | 160 +++++++++++++++++---------
 drivers/irqchip/irq-gic-v3.c                  |  12 +-
 include/linux/cpuhotplug.h                    |   1 +
 include/linux/irqchip/arm-gic-v3.h            |   5 +-
 include/linux/irqdomain.h                     |  15 +++
 kernel/irq/irqdomain.c                        | 158 +++++++++++++++++++++++++
 11 files changed, 441 insertions(+), 130 deletions(-)

-- 
2.11.0


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2018-11-12  8:54 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-07 22:03 [PATCH 00/10] irqdomain, gic-v3-its: Implement late irq domain initialization Robert Richter
2018-11-07 22:03 ` [PATCH 01/10] irqdomain: Add interface to request an irq domain Robert Richter
2018-11-08 10:19   ` Julien Thierry
2018-11-08 15:05     ` Richter, Robert
2018-11-09  9:05       ` Julien Thierry
2018-11-12  8:54         ` Richter, Robert
2018-11-07 22:03 ` [PATCH 02/10] irqchip/gic-v3-its-platform-msi: Remove domain init order dependencies Robert Richter
2018-11-07 22:03 ` [PATCH 03/10] irqchip/irq-gic-v3-its-pci-msi: " Robert Richter
2018-11-07 22:03 ` [PATCH 04/10] irqchip/irq-gic-v3-its-fsl-mc-msi: " Robert Richter
2018-11-07 22:03 ` [PATCH 05/10] fsl-mc/dprc-driver: " Robert Richter
2018-11-07 22:03 ` [PATCH 06/10] irqchip/gic-v3-its: Initialize its nodes in probe order Robert Richter
2018-11-07 22:03 ` [PATCH 07/10] irqchip/gic-v3-its: Split probing from its node initialization Robert Richter
2018-11-08 11:25   ` Julien Thierry
2018-11-09  7:58     ` Richter, Robert
2018-11-07 22:03 ` [PATCH 08/10] irqchip/gic-v3-its: Decouple its initialization from gic Robert Richter
2018-11-08 11:26   ` Julien Thierry
2018-11-09  8:09     ` Richter, Robert
2018-11-07 22:03 ` [PATCH 09/10] irqchip/gic-v3-its: Initialize its nodes later Robert Richter
2018-11-07 22:03 ` [PATCH 10/10] irqchip/gic-v3-its: Initialize MSIs with subsys_initcalls Robert Richter
2018-11-09 17:19 ` [PATCH 00/10] irqdomain, gic-v3-its: Implement late irq domain initialization John Garry
2018-11-11  9:42   ` Richter, Robert

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).