From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933209AbcETJHx (ORCPT ); Fri, 20 May 2016 05:07:53 -0400 Received: from hqemgate14.nvidia.com ([216.228.121.143]:15798 "EHLO hqemgate14.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754763AbcETJHt (ORCPT ); Fri, 20 May 2016 05:07:49 -0400 X-PGP-Universal: processed; by hqnvupgp07.nvidia.com on Fri, 20 May 2016 02:05:39 -0700 Subject: Re: [PATCH V4 0/9] Add support for Tegra210 AGIC To: Thomas Gleixner , Jason Cooper , Marc Zyngier , Rob Herring , "Pawel Moll" , Mark Rutland , Ian Campbell , Kumar Gala , "Stephen Warren" , Thierry Reding References: <1463066372-13115-1-git-send-email-jonathanh@nvidia.com> CC: Kevin Hilman , Geert Uytterhoeven , Grygorii Strashko , Lars-Peter Clausen , Linus Walleij , , , From: Jon Hunter Message-ID: <573ED3DC.6010900@nvidia.com> Date: Fri, 20 May 2016 10:07:40 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <1463066372-13115-1-git-send-email-jonathanh@nvidia.com> X-Originating-IP: [10.21.132.103] X-ClientProxiedBy: UKMAIL102.nvidia.com (10.26.138.15) To UKMAIL102.nvidia.com (10.26.138.15) Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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