From patchwork Thu Jan 8 16:44:20 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nishanth Menon X-Patchwork-Id: 5593911 Return-Path: X-Original-To: patchwork-linux-samsung-soc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 76E639F357 for ; Thu, 8 Jan 2015 16:45:29 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1DBF8203A9 for ; Thu, 8 Jan 2015 16:45:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D75AA20145 for ; Thu, 8 Jan 2015 16:45:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754800AbbAHQpZ (ORCPT ); Thu, 8 Jan 2015 11:45:25 -0500 Received: from bear.ext.ti.com ([192.94.94.41]:50003 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754527AbbAHQpZ (ORCPT ); Thu, 8 Jan 2015 11:45:25 -0500 Received: from dlelxv90.itg.ti.com ([172.17.2.17]) by bear.ext.ti.com (8.13.7/8.13.7) with ESMTP id t08GiMUf007380; Thu, 8 Jan 2015 10:44:22 -0600 Received: from DFLE72.ent.ti.com (dfle72.ent.ti.com [128.247.5.109]) by dlelxv90.itg.ti.com (8.14.3/8.13.8) with ESMTP id t08GiLEV013050; Thu, 8 Jan 2015 10:44:21 -0600 Received: from dlep33.itg.ti.com (157.170.170.75) by DFLE72.ent.ti.com (128.247.5.109) with Microsoft SMTP Server id 14.3.174.1; Thu, 8 Jan 2015 10:44:21 -0600 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by dlep33.itg.ti.com (8.14.3/8.13.8) with ESMTP id t08GiK8D018512; Thu, 8 Jan 2015 10:44:20 -0600 Date: Thu, 8 Jan 2015 10:44:20 -0600 From: Nishanth Menon To: Marc Zyngier CC: Stephen Warren , Thierry Reding , Alexandre Courbot , Benoit Cousson , Tony Lindgren , Santosh Shilimkar , Shawn Guo , Sascha Hauer , Kukjin Kim , Simon Horman , Magnus Damm , Linus Walleij , Michal Simek , Rob Herring , Mark Rutland , Jason Cooper , Thomas Gleixner , , , Subject: Re: [PATCH v2 12/21] ARM: omap: convert wakeupgen to stacked domains Message-ID: <20150108164420.GB25986@kahuna> References: <1420652576-22309-1-git-send-email-marc.zyngier@arm.com> <1420652576-22309-13-git-send-email-marc.zyngier@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1420652576-22309-13-git-send-email-marc.zyngier@arm.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On 17:42-20150107, Marc Zyngier wrote: > OMAP4/5 has been (ab)using the gic_arch_extn to provide > wakeup from suspend, and it makes a lot of sense to convert > this code to use stacked domains instead. > > This patch does just this, updating the DT files to actually > reflect what the HW provides. > > BIG FAT WARNING: because the DTs were so far lying by not > exposing the WUGEN HW block, kernels with this patch applied > won't have any suspend-resume facility when booted with old DTs, > and old kernels with updated DTs won't even boot. > > On a platform with this patch applied, the system looks like > this: > > root@bacon-fat:~# cat /proc/interrupts > CPU0 CPU1 > 16: 0 0 WUGEN 37 gp_timer > 19: 233799 155916 GIC 27 arch_timer > 23: 0 0 WUGEN 9 l3-dbg-irq > 24: 1 0 WUGEN 10 l3-app-irq > 27: 282 0 WUGEN 13 omap-dma-engine > 44: 0 0 4ae10000.gpio 13 DMA > 294: 0 0 WUGEN 20 gpmc > 297: 506 0 WUGEN 56 48070000.i2c > 298: 0 0 WUGEN 57 48072000.i2c > 299: 0 0 WUGEN 61 48060000.i2c > 300: 0 0 WUGEN 62 4807a000.i2c > 301: 8 0 WUGEN 60 4807c000.i2c > 308: 2439 0 WUGEN 74 OMAP UART2 > 312: 362 0 WUGEN 83 mmc2 > 313: 502 0 WUGEN 86 mmc0 > 314: 13 0 WUGEN 94 mmc1 > 350: 0 0 PRCM pinctrl, pinctrl > 406: 35155709 0 GIC 109 ehci_hcd:usb1 > 407: 0 0 WUGEN 7 palmas > 409: 0 0 WUGEN 119 twl6040 > 410: 0 0 twl6040 5 twl6040_irq_ready > 411: 0 0 twl6040 0 twl6040_irq_th > IPI0: 0 1 CPU wakeup interrupts > IPI1: 0 0 Timer broadcast interrupts > IPI2: 95334 902334 Rescheduling interrupts > IPI3: 0 0 Function call interrupts > IPI4: 479 648 Single function call interrupts > IPI5: 0 0 CPU stop interrupts > IPI6: 0 0 IRQ work interrupts > IPI7: 0 0 completion interrupts > Err: 0 > > Signed-off-by: Marc Zyngier > --- > arch/arm/boot/dts/am4372.dtsi | 11 ++- > arch/arm/boot/dts/dra7.dtsi | 12 ++- > arch/arm/boot/dts/dra72x.dtsi | 2 +- > arch/arm/boot/dts/dra74x.dtsi | 2 +- > arch/arm/boot/dts/omap4-duovero.dtsi | 2 - > arch/arm/boot/dts/omap4-panda-common.dtsi | 8 +- > arch/arm/boot/dts/omap4-sdp.dts | 8 +- > arch/arm/boot/dts/omap4-var-som-om44.dtsi | 2 - > arch/arm/boot/dts/omap4.dtsi | 18 ++++- > arch/arm/boot/dts/omap5-cm-t54.dts | 1 - > arch/arm/boot/dts/omap5-uevm.dts | 2 - > arch/arm/boot/dts/omap5.dtsi | 24 ++++-- > arch/arm/mach-omap2/omap-wakeupgen.c | 125 +++++++++++++++++++++++------- > arch/arm/mach-omap2/omap-wakeupgen.h | 1 - > arch/arm/mach-omap2/omap4-common.c | 1 - > 15 files changed, 154 insertions(+), 65 deletions(-) we may need the following changes as well: Also saw the following checkpatch warnings at this point - but, I suppose they were pre-existing. @@ -0,0 +1,26 @@ +WARNING: DT compatible string "ti,omap4-wugen-mpu" appears un-documented -- check ./Documentation/devicetree/bindings/ +#95: FILE: arch/arm/boot/dts/am4372.dtsi:55: ++ compatible = "ti,omap4-wugen-mpu"; +WARNING: DT compatible string "ti,omap5-wugen-mpu" appears un-documented -- check ./Documentation/devicetree/bindings/ +#112: FILE: arch/arm/boot/dts/dra7.dtsi:68: ++ compatible = "ti,omap5-wugen-mpu", "ti,omap4-wugen-mpu"; +WARNING: DT compatible string "ti,omap4-wugen-mpu" appears un-documented -- check ./Documentation/devicetree/bindings/ +#112: FILE: arch/arm/boot/dts/dra7.dtsi:68: ++ compatible = "ti,omap5-wugen-mpu", "ti,omap4-wugen-mpu"; +WARNING: line over 80 characters +#127: FILE: arch/arm/boot/dts/dra7.dtsi:103: ++ <&wakeupgen GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; +WARNING: DT compatible string "ti,omap4-wugen-mpu" appears un-documented -- check ./Documentation/devicetree/bindings/ +#320: FILE: arch/arm/boot/dts/omap4.dtsi:78: ++ compatible = "ti,omap4-wugen-mpu"; +WARNING: DT compatible string "ti,omap5-wugen-mpu" appears un-documented -- check ./Documentation/devicetree/bindings/ +#416: FILE: arch/arm/boot/dts/omap5.dtsi:103: ++ compatible = "ti,omap5-wugen-mpu", "ti,omap4-wugen-mpu"; +WARNING: DT compatible string "ti,omap4-wugen-mpu" appears un-documented -- check ./Documentation/devicetree/bindings/ +#416: FILE: arch/arm/boot/dts/omap5.dtsi:103: ++ compatible = "ti,omap5-wugen-mpu", "ti,omap4-wugen-mpu"; +WARNING: line over 80 characters +#600: FILE: arch/arm/mach-omap2/omap-wakeupgen.c:441: ++ return irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, &parent_args); diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts index 7eaae4cf9f89..69f2313a49d1 100644 --- a/arch/arm/boot/dts/am437x-gp-evm.dts +++ b/arch/arm/boot/dts/am437x-gp-evm.dts @@ -280,7 +280,6 @@ reg = <0x24>; compatible = "ti,tps65218"; interrupts = ; /* NMIn */ - interrupt-parent = <&gic>; interrupt-controller; #interrupt-cells = <2>; diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts index 53bbfc90b26a..029badefad3d 100644 --- a/arch/arm/boot/dts/am437x-sk-evm.dts +++ b/arch/arm/boot/dts/am437x-sk-evm.dts @@ -334,7 +334,6 @@ tps@24 { compatible = "ti,tps65218"; reg = <0x24>; - interrupt-parent = <&gic>; interrupts = ; interrupt-controller; #interrupt-cells = <2>; diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts index 662261d6b2ca..2d26bc11bad6 100644 --- a/arch/arm/boot/dts/am43x-epos-evm.dts +++ b/arch/arm/boot/dts/am43x-epos-evm.dts @@ -333,7 +333,6 @@ reg = <0x24>; compatible = "ti,tps65218"; interrupts = ; /* NMIn */ - interrupt-parent = <&gic>; interrupt-controller; #interrupt-cells = <2>; diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts index 49edbda68cd5..c2241c2e5d9d 100644 --- a/arch/arm/boot/dts/am57xx-beagle-x15.dts +++ b/arch/arm/boot/dts/am57xx-beagle-x15.dts @@ -335,7 +335,6 @@ mcp_rtc: rtc@6f { compatible = "microchip,mcp7941x"; reg = <0x6f>; - interrupt-parent = <&gic>; interrupts = ; /* IRQ_SYS_1N */ pinctrl-names = "default"; @@ -358,7 +357,7 @@ &uart3 { status = "okay"; - interrupts-extended = <&gic GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, + interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, <&dra7_pmx_core 0x248>; pinctrl-names = "default"; diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index f9c75c782c48..b056156e2a7a 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi @@ -893,14 +893,12 @@ usbhsohci: ohci@4a064800 { compatible = "ti,ohci-omap3"; reg = <0x4a064800 0x400>; - interrupt-parent = <&gic>; interrupts = ; }; usbhsehci: ehci@4a064c00 { compatible = "ti,ehci-omap"; reg = <0x4a064c00 0x400>; - interrupt-parent = <&gic>; interrupts = ; }; };