linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marc Zyngier <marc.zyngier@arm.com>
To: Lokesh Vutla <lokeshvutla@ti.com>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Rob Herring <robh+dt@kernel.org>, Nishanth Menon <nm@ti.com>,
	tglx@linutronix.de, jason@lakedaemon.net
Cc: Linux ARM Mailing List <linux-arm-kernel@lists.infradead.org>,
	linux-kernel@vger.kernel.org, Tero Kristo <t-kristo@ti.com>,
	Sekhar Nori <nsekhar@ti.com>, Tony Lindgren <tony@atomide.com>,
	linus.walleij@linaro.org, Peter Ujfalusi <peter.ujfalusi@ti.com>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	Device Tree Mailing List <devicetree@vger.kernel.org>
Subject: Re: [PATCH v8 00/14] Add support for TISCI Interrupt controller drivers
Date: Wed, 1 May 2019 12:58:43 +0100	[thread overview]
Message-ID: <30f5c877-a4dc-8ad9-0ad0-c172a60dc853@arm.com> (raw)
In-Reply-To: <20190430101230.21794-1-lokeshvutla@ti.com>

On 30/04/2019 11:12, Lokesh Vutla wrote:
> TI AM65x SoC based on K3 architecture introduced support for Events
> which are message based interrupts with minimal latency. These events
> are not compatible with regular interrupts and are valid only through
> an event transport lane. An Interrupt Aggregator(INTA) is introduced
> to convert these events to interrupts. INTA can also group 64 events
> into a single interrupt. Now the SoC has many peripherals and a large
> number of event sources (time sync or DMA), the use of events is
> completely dependent on a user's specific application, which drives a
> need for maximum flexibility in which event sources are used in the
> system. It is also completely up to software control as to how the
> events are serviced.
> 
> Because of the huge flexibility there are certain standard peripherals
> (like GPIO etc)where all interrupts cannot be directly corrected to host
> interrupt controller. For this purpose, Interrupt Router(INTR) is
> introduced in the SoC. INTR just does a classic interrupt redirection.
> 
> So the SoC has 3 types of interrupt controllers:
> - GIC500
> - Interrupt Router
> - Interrupt Aggregator
> 
> Below is a diagrammatic view of how SoC integration of these interrupt
> controllers:(https://pastebin.ubuntu.com/p/9ngV3jdGj2/)
> 
> Device Index-x               Device Index-y
>            |                         |
>            |                         |
>                       ....
>             \                       /
>              \                     /
>               \  (global events)  /
>           +---------------------------+   +---------+
>           |                           |   |         |
>           |             INTA          |   |  GPIO   |
>           |                           |   |         |
>           +---------------------------+   +---------+
>                          |   (vint)            |
>                          |                     |
>                         \|/                    |
>           +---------------------------+        |
>           |                           |<-------+
>           |           INTR            |
>           |                           |
>           +---------------------------+
>                          |
>                          |
>                         \|/ (gic irq)
>           +---------------------------+
>           |                           |
>           |             GIC           |
>           |                           |
>           +---------------------------+
> 
> While at it, TISCI abstracts the handling of all above IRQ routes where
> interrupt sources are not directly connected to host interrupt controller.
> That would be configuration of Interrupt Aggregator and Interrupt Router.
> 
> This series adds support for:
> - TISCI commands needed for IRQ configuration
> - Interrupt Router(INTR) driver.
> - Interrupt Aggregator(INTA) driver.
> - Interrupt Aggregator MSI bus layer.
> 
> Marc,
> 	As discussed offline, the firmware changes are going to come within
> 	a day or so. These changes are tested against local binary which is
> 	bound to release.
> 
> Boot Log: https://pastebin.ubuntu.com/p/YwprMKXdg4/
> 
> Changes since v7:
> - Rebased on top of latest master.
> - Each patch has respective changes mentioned.
> 
> Grygorii Strashko (1):
>   firmware: ti_sci: Add support to get TISCI handle using of_phandle
> 
> Lokesh Vutla (12):
>   firmware: ti_sci: Add support for RM core ops
>   firmware: ti_sci: Add support for IRQ management
>   firmware: ti_sci: Add helper apis to manage resources
>   genirq: Introduce irq_chip_{request,release}_resource_parent() apis
>   gpio: thunderx: Use the default parent apis for
>     {request,release}_resources
>   dt-bindings: irqchip: Introduce TISCI Interrupt router bindings
>   irqchip: ti-sci-intr: Add support for Interrupt Router driver
>   dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings
>   irqchip: ti-sci-inta: Add support for Interrupt Aggregator driver
>   soc: ti: Add MSI domain bus support for Interrupt Aggregator
>   irqchip: ti-sci-inta: Add msi domain support
>   arm64: arch_k3: Enable interrupt controller drivers
> 
> Peter Ujfalusi (1):
>   firmware: ti_sci: Add RM mapping table for am654
> 
>  .../bindings/arm/keystone/ti,sci.txt          |   3 +-
>  .../interrupt-controller/ti,sci-inta.txt      |  66 ++
>  .../interrupt-controller/ti,sci-intr.txt      |  82 +++
>  MAINTAINERS                                   |   6 +
>  arch/arm64/Kconfig.platforms                  |   5 +
>  drivers/firmware/ti_sci.c                     | 651 ++++++++++++++++++
>  drivers/firmware/ti_sci.h                     | 102 +++
>  drivers/gpio/gpio-thunderx.c                  |  16 +-
>  drivers/irqchip/Kconfig                       |  23 +
>  drivers/irqchip/Makefile                      |   2 +
>  drivers/irqchip/irq-ti-sci-inta.c             | 615 +++++++++++++++++
>  drivers/irqchip/irq-ti-sci-intr.c             | 275 ++++++++
>  drivers/soc/ti/Kconfig                        |   6 +
>  drivers/soc/ti/Makefile                       |   1 +
>  drivers/soc/ti/ti_sci_inta_msi.c              | 146 ++++
>  include/linux/irq.h                           |   2 +
>  include/linux/irqdomain.h                     |   1 +
>  include/linux/msi.h                           |  10 +
>  include/linux/soc/ti/ti_sci_inta_msi.h        |  23 +
>  include/linux/soc/ti/ti_sci_protocol.h        | 124 ++++
>  kernel/irq/chip.c                             |  27 +
>  21 files changed, 2173 insertions(+), 13 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt
>  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
>  create mode 100644 drivers/irqchip/irq-ti-sci-inta.c
>  create mode 100644 drivers/irqchip/irq-ti-sci-intr.c
>  create mode 100644 drivers/soc/ti/ti_sci_inta_msi.c
>  create mode 100644 include/linux/soc/ti/ti_sci_inta_msi.h

Lokesh,

Thanks for having respun this quickly.

I've applied the first 13 patches to irqchip-next (after tidying up some
of the commit messages). I've left the last patch for armsoc to take,
unless you guys insist on me taking it.

If nothing horrible appears in -next tomorrow, I'll send the 5.2 PR with
this series.

Hopefully we won't see more of this madness any time soon... :-/

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

  parent reply	other threads:[~2019-05-01 11:58 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-30 10:12 [PATCH v8 00/14] Add support for TISCI Interrupt controller drivers Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 01/14] firmware: ti_sci: Add support to get TISCI handle using of_phandle Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 02/14] firmware: ti_sci: Add support for RM core ops Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 03/14] firmware: ti_sci: Add support for IRQ management Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 04/14] firmware: ti_sci: Add RM mapping table for am654 Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 05/14] firmware: ti_sci: Add helper apis to manage resources Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 06/14] genirq: Introduce irq_chip_{request,release}_resource_parent() apis Lokesh Vutla
2019-05-16 12:40   ` Linus Walleij
2019-04-30 10:12 ` [PATCH v8 07/14] gpio: thunderx: Use the default parent apis for {request,release}_resources Lokesh Vutla
2020-03-10 23:27   ` Tim Harvey
2020-03-11  4:56     ` Lokesh Vutla
2020-03-11 15:43     ` Thomas Gleixner
2020-03-11 16:09       ` Tim Harvey
2019-04-30 10:12 ` [PATCH v8 08/14] dt-bindings: irqchip: Introduce TISCI Interrupt router bindings Lokesh Vutla
2019-04-30 22:24   ` Rob Herring
2019-04-30 10:12 ` [PATCH v8 09/14] irqchip: ti-sci-intr: Add support for Interrupt Router driver Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 10/14] dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings Lokesh Vutla
2019-04-30 22:25   ` Rob Herring
2019-04-30 10:12 ` [PATCH v8 11/14] irqchip: ti-sci-inta: Add support for Interrupt Aggregator driver Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 12/14] soc: ti: Add MSI domain bus support for Interrupt Aggregator Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 13/14] irqchip: ti-sci-inta: Add msi domain support Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 14/14] arm64: arch_k3: Enable interrupt controller drivers Lokesh Vutla
2019-04-30 11:45 ` [PATCH v8 00/14] Add support for TISCI Interrupt " Nishanth Menon
2019-05-01 11:58 ` Marc Zyngier [this message]
2019-05-01 13:23   ` Lokesh Vutla
2019-05-01 13:45     ` Marc Zyngier
2019-05-01 14:04       ` Tony Lindgren
2019-05-01 14:31         ` Marc Zyngier

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=30f5c877-a4dc-8ad9-0ad0-c172a60dc853@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=grygorii.strashko@ti.com \
    --cc=jason@lakedaemon.net \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lokeshvutla@ti.com \
    --cc=nm@ti.com \
    --cc=nsekhar@ti.com \
    --cc=peter.ujfalusi@ti.com \
    --cc=robh+dt@kernel.org \
    --cc=ssantosh@kernel.org \
    --cc=t-kristo@ti.com \
    --cc=tglx@linutronix.de \
    --cc=tony@atomide.com \
    /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).