Re: [PATCH V4 0/9] Add support for Tegra210 AGIC

From: Jon Hunter
Date: Fri May 20 2016 - 05:07:58 EST


Hi Marc,

Let me know if you have any thoughts on this.

Cheers
Jon

On 12/05/16 16:19, Jon Hunter wrote:
> The Tegra210 has a 2nd level interrupt controller located in a separate
> power domain to the main GIC interrupt controller and hence requires
> runtime-pm support.
>
> Add a platform driver for the GICs that require runtime-pm and make the
> necessary changes to the genirq and irqdomain core to support IRQ chips
> that require runtime-pm.
>
> This series is based upon Marc Z's irq/irqchip-v4.7 branch [0].
>
> Changes since V3:
> - Split the series into two, placing the clean-up/fixes patches into
> another series [1]. The remaining patches in this series are for
> adding runtime-pm support for irqchips and adding a platform driver
> of second level GICs.
> - Dropped the patch to prevent early init of GICs if 'clocks' or
> 'power-domains' properties are present and re-added the patch to add
> the compatibilty string for the Tegra210 AGIC.
>
> Changes since V2:
> - Corrected RPM support for irqchips in genirq core as pointed out by
> Kevin Hilman.
> - Corrected patch to save the irq type when mapping the interrupt.
> - Dropped changes to DT binding documentation and added patch to prevent
> early init of GICs if the 'clocks' and/or 'power-domains' DT
> properties are present (as we have discussed).
> - Moved platform driver code into it's own source file.
> - Separate changes for preparing for the platform driver into 3 patches
> in an attempt to make it more readable!
> - Added fix for checking an interrupt descriptor is valid during IRQ
> setup.
>
> Changes since V1:
> - Updated GIC to only WARN and not return an error if configuring a PPI
> fails but will still return an error if an SPI fails (per discussion
> with Marc).
> - Dropped change to mask sense bits for GIC-v3 (as this is not
> necessary)
> - Split patch to avoid setting interrupt type when mapping the IRQ into
> two patches per TGLX's feedback.
> - Changed name of irqchip device structure to "parent_device"
> - Moved call to irq_chip_pm_get() outside of chip_bus_lock().
> - Dropped patch to remove clock names from GIC DT documentation and
> added AGIC clock names.
> - Update GIC platform driver to look-up clocks names from static list.
>
> [0] http://git.kernel.org/cgit/linux/kernel/git/maz/arm-platforms.git/log/?h=irq/irqchip-4.7
> [1] http://marc.info/?l=linux-tegra&m=146289329915585&w=2
>
> Jon Hunter (9):
> irqdomain: Fix handling of type settings for existing mappings
> genirq: Look-up trigger type if not specified by caller
> irqdomain: Don't set type when mapping an IRQ
> genirq: Add runtime power management support for IRQ chips
> irqchip/gic: Isolate early GIC initialisation code
> irqchip/gic: Add helper function for chip initialisation
> irqchip/gic: Prepare for adding platform driver
> dt-bindings: arm-gic: Add documentation for Tegra210 AGIC
> irqchip/gic: Add platform driver for non-root GICs that require RPM
>
> .../bindings/interrupt-controller/arm,gic.txt | 3 +-
> drivers/irqchip/Kconfig | 6 +
> drivers/irqchip/Makefile | 1 +
> drivers/irqchip/irq-gic-common.c | 4 +-
> drivers/irqchip/irq-gic-pm.c | 187 +++++++++++++++++++++
> drivers/irqchip/irq-gic.c | 136 ++++++++++-----
> drivers/irqchip/irq-gic.h | 30 ++++
> include/linux/irq.h | 4 +
> include/linux/irqdomain.h | 3 +
> kernel/irq/chip.c | 35 ++++
> kernel/irq/internals.h | 1 +
> kernel/irq/irqdomain.c | 58 ++++++-
> kernel/irq/manage.c | 38 ++++-
> 13 files changed, 451 insertions(+), 55 deletions(-)
> create mode 100644 drivers/irqchip/irq-gic-pm.c
> create mode 100644 drivers/irqchip/irq-gic.h
>

--
nvpublic