From patchwork Wed Jan 15 19:54:45 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Hesselbarth X-Patchwork-Id: 3493571 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 766E1C02DC for ; Wed, 15 Jan 2014 19:55:27 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1644D20148 for ; Wed, 15 Jan 2014 19:55:26 +0000 (UTC) Received: from casper.infradead.org (casper.infradead.org [85.118.1.10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8C118200E1 for ; Wed, 15 Jan 2014 19:55:24 +0000 (UTC) Received: from merlin.infradead.org ([2001:4978:20e::2]) by casper.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1W3WYa-0004bX-OR; Wed, 15 Jan 2014 19:55:21 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1W3WYY-0001wj-8D; Wed, 15 Jan 2014 19:55:18 +0000 Received: from mail-ee0-x231.google.com ([2a00:1450:4013:c00::231]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1W3WYU-0001w8-8L for linux-arm-kernel@lists.infradead.org; Wed, 15 Jan 2014 19:55:15 +0000 Received: by mail-ee0-f49.google.com with SMTP id d17so1082049eek.22 for ; Wed, 15 Jan 2014 11:54:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:to:cc:subject:references :in-reply-to:content-type; bh=KOllm79LjlWH2qfMQuhyk0iSSPZMuM10xj6UDD1tOsk=; b=ludDuAvQitKfFGnANh4iHMeGyjvk0SJUnNKaewXArnm9l9B0+WOjk8Toz0seZ6e6G1 9dF8RVzBRKkHIO8orqij31D3HDSPp3ryuVw1bu+MrfTe+o5zz2doeqvifmU8Bbiktq2g 5KB34sltFDYPUCPgYvP0jya61k26noDjicfBjON7sP/r8WcEn3Pq+re03swgCPazS8ki xuDTjzvtCs457EwOfm1+riEbhn3SsVFlX4FJB9thY1LkrIwuZTn83zljPLwTvQObXMTj k9yXcXfTXyjoFaYDkHeea8ktJo4Yr+GV9nK+TV3eKfWgNimX4yoXm23gXKhHJacUFgvs jOKA== X-Received: by 10.14.107.3 with SMTP id n3mr6225023eeg.67.1389815688400; Wed, 15 Jan 2014 11:54:48 -0800 (PST) Received: from topkick.lan (dslc-082-083-251-183.pools.arcor-ip.net. [82.83.251.183]) by mx.google.com with ESMTPSA id 4sm12858042eed.14.2014.01.15.11.54.46 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Jan 2014 11:54:47 -0800 (PST) Message-ID: <52D6E785.4000706@gmail.com> Date: Wed, 15 Jan 2014 20:54:45 +0100 From: Sebastian Hesselbarth User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 To: Ian Campbell Subject: Re: v3.12 regression from "ARM: kirkwood: convert to DT irqchip and clocksource" on non-DT kirkwood platforms References: <1389775235.10695.51.camel@dagon.hellion.org.uk> <52D651CD.5020307@gmail.com> <1389777972.12434.115.camel@kazak.uk.xensource.com> In-Reply-To: <1389777972.12434.115.camel@kazak.uk.xensource.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140115_145514_582309_1A0D77A4 X-CRM114-Status: GOOD ( 26.43 ) X-Spam-Score: -1.3 (-) Cc: Gregory CLEMENT , Andrew Lunn , 735172@bugs.debian.org, Jason Cooper , linux-arm-kernel X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,FREEMAIL_FROM,MIME_HEADER_CTYPE_ONLY,RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham 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 01/15/2014 10:26 AM, Ian Campbell wrote: > On Wed, 2014-01-15 at 10:15 +0100, Sebastian Hesselbarth wrote: >> On 01/15/14 09:40, Ian Campbell wrote: >>> The bootlogs are below or in the bug. It stops after "Console: colour >>> dummy device 80x30", I think next would normally be the >>> BogoMIPS/calibrate_delay output. >> >> That would indicate the timer (clocksource) or irq (irqchip) is not >> running correctly. Again, that could be non-DT and DT fighting for it. >> I'll investigate that. > > That seems logical. > >> In the meantime, can you recompile your kernel and set >> CONFIG_ARCH_KIRKWOOD_DT=n ? > > I can confirm that v3.13-rc8 with CONFIG_ARCH_KIRKWOOD_DT=n works. > Ian, please try the following two patches on top of v3.13-rc8 and report back, if it solves the regression. I have tested this on a revived non-DT Kirkwood Dockstar with and without DT support enabled. I also compile tested it for Orion5x and Dove. While I will not send any patches for non-DT mach-dove boards as none of them is really used anymore, Gregory is on Cc for hopefully testing orion5x. For possible -stable patches, I know it is quite a huge patch but I didn't dare to touch arch/arm/kernel/foo for this kind of regression. Sebastian (I hope the fscking Thunderbird inlines both patches correctly) Tested-by: Ian Campbell From 07c46c0d285d2c9d4f0ec4406a80a18f2f65fe0c Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth Date: Wed, 15 Jan 2014 20:34:08 +0100 Subject: [PATCH 2/2] ARM: kirkwood: set C-style handle_irq if MULTI_IRQ_HANDLER is set Compiling with both non-DT and DT support enabled, will break ASM irq handler used by non-DT boards. This fixes a regression for those kernels by installing a corresponding C-style handle_irq callback if MULTI_IRQ_HANDLER is set. Signed-off-by: Sebastian Hesselbarth --- arch/arm/mach-kirkwood/d2net_v2-setup.c | 4 ++++ arch/arm/mach-kirkwood/netxbig_v2-setup.c | 7 +++++++ arch/arm/mach-kirkwood/openrd-setup.c | 10 ++++++++++ arch/arm/mach-kirkwood/rd88f6192-nas-setup.c | 4 ++++ arch/arm/mach-kirkwood/rd88f6281-setup.c | 4 ++++ arch/arm/mach-kirkwood/t5325-setup.c | 4 ++++ arch/arm/mach-kirkwood/ts219-setup.c | 4 ++++ arch/arm/mach-kirkwood/ts41x-setup.c | 4 ++++ 8 files changed, 41 insertions(+) diff --git a/arch/arm/mach-kirkwood/d2net_v2-setup.c b/arch/arm/mach-kirkwood/d2net_v2-setup.c index 453418063c1e..7b475af4f904 100644 --- a/arch/arm/mach-kirkwood/d2net_v2-setup.c +++ b/arch/arm/mach-kirkwood/d2net_v2-setup.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include "common.h" #include "mpp.h" @@ -225,6 +226,9 @@ MACHINE_START(D2NET_V2, "LaCie d2 Network v2") .init_machine = d2net_v2_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, diff --git a/arch/arm/mach-kirkwood/netxbig_v2-setup.c b/arch/arm/mach-kirkwood/netxbig_v2-setup.c index 913d032cdb19..edcd8071a359 100644 --- a/arch/arm/mach-kirkwood/netxbig_v2-setup.c +++ b/arch/arm/mach-kirkwood/netxbig_v2-setup.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include "common.h" #include "mpp.h" @@ -403,6 +404,9 @@ MACHINE_START(NET2BIG_V2, "LaCie 2Big Network v2") .init_machine = netxbig_v2_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, @@ -415,6 +419,9 @@ MACHINE_START(NET5BIG_V2, "LaCie 5Big Network v2") .init_machine = netxbig_v2_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, diff --git a/arch/arm/mach-kirkwood/openrd-setup.c b/arch/arm/mach-kirkwood/openrd-setup.c index e5cf84103583..86a0e77ff695 100644 --- a/arch/arm/mach-kirkwood/openrd-setup.c +++ b/arch/arm/mach-kirkwood/openrd-setup.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include "common.h" #include "mpp.h" @@ -222,6 +223,9 @@ MACHINE_START(OPENRD_BASE, "Marvell OpenRD Base Board") .init_machine = openrd_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, @@ -235,6 +239,9 @@ MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board") .init_machine = openrd_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, @@ -248,6 +255,9 @@ MACHINE_START(OPENRD_ULTIMATE, "Marvell OpenRD Ultimate Board") .init_machine = openrd_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, diff --git a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c index e4fd3129d36f..57c347987ba5 100644 --- a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include "common.h" @@ -83,6 +84,9 @@ MACHINE_START(RD88F6192_NAS, "Marvell RD-88F6192-NAS Development Board") .init_machine = rd88f6192_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, diff --git a/arch/arm/mach-kirkwood/rd88f6281-setup.c b/arch/arm/mach-kirkwood/rd88f6281-setup.c index 5154bd2a3ad3..723d9a64ec0e 100644 --- a/arch/arm/mach-kirkwood/rd88f6281-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6281-setup.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include "common.h" #include "mpp.h" @@ -122,6 +123,9 @@ MACHINE_START(RD88F6281, "Marvell RD-88F6281 Reference Board") .init_machine = rd88f6281_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, diff --git a/arch/arm/mach-kirkwood/t5325-setup.c b/arch/arm/mach-kirkwood/t5325-setup.c index 8736f8c97518..7ffe94403079 100644 --- a/arch/arm/mach-kirkwood/t5325-setup.c +++ b/arch/arm/mach-kirkwood/t5325-setup.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "common.h" #include "mpp.h" @@ -210,6 +211,9 @@ MACHINE_START(T5325, "HP t5325 Thin Client") .init_machine = hp_t5325_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, diff --git a/arch/arm/mach-kirkwood/ts219-setup.c b/arch/arm/mach-kirkwood/ts219-setup.c index e1267d6b468f..5c4772fcbe60 100644 --- a/arch/arm/mach-kirkwood/ts219-setup.c +++ b/arch/arm/mach-kirkwood/ts219-setup.c @@ -22,6 +22,7 @@ #include #include #include +#include #include "common.h" #include "mpp.h" #include "tsx1x-common.h" @@ -136,6 +137,9 @@ MACHINE_START(TS219, "QNAP TS-119/TS-219") .init_machine = qnap_ts219_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, diff --git a/arch/arm/mach-kirkwood/ts41x-setup.c b/arch/arm/mach-kirkwood/ts41x-setup.c index 81d585806b2f..3256a7933c74 100644 --- a/arch/arm/mach-kirkwood/ts41x-setup.c +++ b/arch/arm/mach-kirkwood/ts41x-setup.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "common.h" #include "mpp.h" #include "tsx1x-common.h" @@ -180,6 +181,9 @@ MACHINE_START(TS41X, "QNAP TS-41x") .init_machine = qnap_ts41x_init, .map_io = kirkwood_map_io, .init_early = kirkwood_init_early, +#ifdef CONFIG_MULTI_IRQ_HANDLER + .handle_irq = orion_legacy_handle_irq, +#endif .init_irq = kirkwood_init_irq, .init_time = kirkwood_timer_init, .restart = kirkwood_restart, -- 1.8.5.2