From patchwork Thu Oct 8 15:46:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 11823407 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8B9E21592 for ; Thu, 8 Oct 2020 15:49:22 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5001120578 for ; Thu, 8 Oct 2020 15:49:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="V32KFfMN" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5001120578 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arndb.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=DmRcuVnLvjTR6f5mPP3jGy2xWAfdk9MzEtG4IJR3p8w=; b=V32KFfMNvVi3oJrFF9+YPRs9/ Qgcdlhh5us8wNknwp21yrqCsYI7VdLGRsP6hTLcoYXJicg5Q3cspttIiRZ76WguGGo3djP1ZKmbCc yeRSrRT3zLytZ2sEkm8MkIiOB4cQx6VyG1Hg7U+UTj68zjQt97ZE81IRtz74V6ePVWhiPcXy5VHxv cMMYxLNNPJLUYxBEkQBIFquZkqJNtFKX+19mF/LAHWiw3HKh/Y38cHJYYYMlWkz3BTlGyYIhPn8Q+ 0YrkLNjrIXXD3azMWvm2irSlv9HUxZ7oRws9ariEag2QLsmIxQW3nYCnE2dL5897kDuy/fMPb7s9f QK0elLZMw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQYA9-0002sE-RK; Thu, 08 Oct 2020 15:49:01 +0000 Received: from mout.kundenserver.de ([217.72.192.73]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQY9i-0002dY-47 for linux-arm-kernel@lists.infradead.org; Thu, 08 Oct 2020 15:48:40 +0000 Received: from localhost.localdomain ([192.30.34.233]) by mrelayeu.kundenserver.de (mreue107 [212.227.15.145]) with ESMTPA (Nemesis) id 1MKszj-1k5RzS1wE9-00LIxa; Thu, 08 Oct 2020 17:47:56 +0200 From: Arnd Bergmann To: linux-kernel@vger.kernel.org Subject: [PATCH 06/13] m68k: split heartbeat out of timer function Date: Thu, 8 Oct 2020 17:46:44 +0200 Message-Id: <20201008154651.1901126-7-arnd@arndb.de> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201008154651.1901126-1-arnd@arndb.de> References: <20201008154651.1901126-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:9dogH0lDmXqhgYFQOL+Lk++oX4XbAfHtinaTN1FAILEIwJoSYcs pje8LKNSkxCKC5N1sfRTrZt8nMFibpgxf4gKtYgeqJhRsr/OynkyP4UPBYjvOIKNqXCDCC+ Y0eQu9eKxYSjwdOyRVU/Q5f9w6wdQwp46ymRa2lFz8XVhRomdRno5TH4QSSzp/T1utLIFJ5 nWi+bDjRgN6b2fPTyH1Tw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:wZhxtDxgXMc=:JIQdvfkU6OFN7EDBUpldhF 7V0CvcuadwYYx4Fxt2DRivlaxinpNO4PE0TWApAsyUYWaGYrKt53c5d3l7hyOo+9HM9+UIcp3 9tXl7Ufj/C/qTgOHutXvpdiaEIJhslMHhJns6dY3lyV5uWuUAN8VN1Mjf5JNq0qitYgujTJU5 lL81eqhTEvsypDHLZvCHtwgrnt7kKtyqC3VO2DrIoBm23a/b64jP6LETV9p9Kdse7MKoK69qD cKar03XFgTVA32zQLHOk9ir4k5O7cZU4mdTqXymI9kmXX+5XzTbheUxuZSli32DNNOXN283Sh 0fG3BnuIjJBELM6vWFKsC2acdiAgzcc09FOKd8C5UEORdC43CCxdUfMsJf4mqumGu/a/Hdy6h eqHI66EEWGITc/lwHnzxdvLu3nJLH9mLFEsjL//sCcQaCTjKeSHWwrJOvebjn65Dgtlz1V72k 0uGssMoBRpeKa/88XZqaNuhLgtmWY8gwrnNf6ol2JhpF1QVe2PuOHotuKkQ6o9ZcIHD1wm71g wXnnVTXTPI+VraEWagxYwdVdXwg+zvUyhu0gBjyGijHRMl4BGw9A07ON41D6WXc/+FGsQHZdv tMwoGiNEynykFTX9Xqm75GjJl3UI+kF3QsfI0YBNYpECdvsKcU0AUPpn7SRhWft++iSsXC8um x4ONqnM7Y+EzUzstNc7Zikx3L+j94Hu7ARXFob+RNlvFqwK5mQRdJIDB3ggggpG0vkIg39D7X USSsOqT6O6YOcNwwyY9J/vU/zhHNndNf6JUkN69e8ngFcFTSXHt6Dlf2VoJDrhV6re7oMl/Fp n5a7+A+wRl7LPU4l9mxRyxOkBjOaxd3vBpJouZEpPokQLqrOadk7ZWpafHk+1eRQyhAw3ZB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201008_114834_409595_CC09EE4D X-CRM114-Status: GOOD ( 21.21 ) X-Spam-Score: 0.0 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [217.72.192.73 listed in list.dnswl.org] 0.0 SPF_NONE SPF: sender does not publish an SPF Record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [217.72.192.73 listed in wl.mailspike.net] X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sam Creasey , Fenghua Yu , Linus Walleij , Tony Luck , Thomas Gleixner , linux-parisc@vger.kernel.org, Arnd Bergmann , linux-ia64@vger.kernel.org, Stephen Boyd , Helge Deller , Daniel Lezcano , Russell King , Finn Thain , "James E.J. Bottomley" , linux-m68k@lists.linux-m68k.org, Geert Uytterhoeven , linux-arm-kernel@lists.infradead.org, John Stultz , Philip Blundell , Greg Ungerer , Joshua Thompson Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org The heartbeat functionality is mostly separate from the actual timer interrupt handling, and it is only used on five platforms. Split it out into a separate function and call that directly from the timer irq on those platforms. Signed-off-by: Arnd Bergmann Reviewed-by: Geert Uytterhoeven Acked-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven --- arch/m68k/amiga/config.c | 1 + arch/m68k/apollo/config.c | 1 + arch/m68k/atari/time.c | 2 ++ arch/m68k/hp300/time.c | 1 + arch/m68k/include/asm/machdep.h | 7 +++++++ arch/m68k/kernel/time.c | 7 +++++-- arch/m68k/q40/q40ints.c | 2 ++ 7 files changed, 19 insertions(+), 2 deletions(-) diff --git a/arch/m68k/amiga/config.c b/arch/m68k/amiga/config.c index bee9f240f35d..29f92333119e 100644 --- a/arch/m68k/amiga/config.c +++ b/arch/m68k/amiga/config.c @@ -480,6 +480,7 @@ static irqreturn_t ciab_timer_handler(int irq, void *dev_id) clk_total += jiffy_ticks; clk_offset = 0; timer_routine(0, NULL); + timer_heartbeat(); return IRQ_HANDLED; } diff --git a/arch/m68k/apollo/config.c b/arch/m68k/apollo/config.c index 762da5d7a415..30915f1a8760 100644 --- a/arch/m68k/apollo/config.c +++ b/arch/m68k/apollo/config.c @@ -173,6 +173,7 @@ irqreturn_t dn_timer_int(int irq, void *dev_id) volatile unsigned char x; timer_handler(irq, dev_id); + timer_heartbeat(); x = *(volatile unsigned char *)(apollo_timer + 3); x = *(volatile unsigned char *)(apollo_timer + 5); diff --git a/arch/m68k/atari/time.c b/arch/m68k/atari/time.c index ce923a523695..ce4a5961ca93 100644 --- a/arch/m68k/atari/time.c +++ b/arch/m68k/atari/time.c @@ -21,6 +21,7 @@ #include #include +#include DEFINE_SPINLOCK(rtc_lock); EXPORT_SYMBOL_GPL(rtc_lock); @@ -49,6 +50,7 @@ static irqreturn_t mfp_timer_c_handler(int irq, void *dev_id) } while (last_timer_count == 1); clk_total += INT_TICKS; timer_routine(0, NULL); + timer_heartbeat(); local_irq_restore(flags); return IRQ_HANDLED; diff --git a/arch/m68k/hp300/time.c b/arch/m68k/hp300/time.c index bfee13e1d0fe..e3cd938de0f9 100644 --- a/arch/m68k/hp300/time.c +++ b/arch/m68k/hp300/time.c @@ -65,6 +65,7 @@ static irqreturn_t hp300_tick(int irq, void *dev_id) clk_total += INTVAL; clk_offset = 0; timer_routine(0, NULL); + timer_heartbeat(); local_irq_restore(flags); /* Turn off the network and SCSI leds */ diff --git a/arch/m68k/include/asm/machdep.h b/arch/m68k/include/asm/machdep.h index 49bd3266b4b1..e62a39d01ae4 100644 --- a/arch/m68k/include/asm/machdep.h +++ b/arch/m68k/include/asm/machdep.h @@ -35,6 +35,13 @@ extern void (*mach_beep) (unsigned int, unsigned int); /* Hardware clock functions */ extern void hw_timer_init(irq_handler_t handler); extern unsigned long hw_timer_offset(void); +#ifdef CONFIG_HEARTBEAT +extern void timer_heartbeat(void); +#else +static inline void timer_heartbeat(void) +{ +} +#endif extern void config_BSP(char *command, int len); diff --git a/arch/m68k/kernel/time.c b/arch/m68k/kernel/time.c index c2697a4d4ddd..c05cec21b05f 100644 --- a/arch/m68k/kernel/time.c +++ b/arch/m68k/kernel/time.c @@ -45,8 +45,12 @@ static irqreturn_t timer_interrupt(int irq, void *dummy) xtime_update(1); update_process_times(user_mode(get_irq_regs())); profile_tick(CPU_PROFILING); + return IRQ_HANDLED; +} #ifdef CONFIG_HEARTBEAT +void timer_heartbeat(void) +{ /* use power LED as a heartbeat instead -- much more useful for debugging -- based on the version for PReP by Cort */ /* acts like an actual heart beat -- ie thump-thump-pause... */ @@ -68,9 +72,8 @@ static irqreturn_t timer_interrupt(int irq, void *dummy) dist = period / 4; } } -#endif /* CONFIG_HEARTBEAT */ - return IRQ_HANDLED; } +#endif /* CONFIG_HEARTBEAT */ #ifdef CONFIG_M68KCLASSIC #if !IS_BUILTIN(CONFIG_RTC_DRV_GENERIC) diff --git a/arch/m68k/q40/q40ints.c b/arch/m68k/q40/q40ints.c index 1c696906c159..b01b545a2db0 100644 --- a/arch/m68k/q40/q40ints.c +++ b/arch/m68k/q40/q40ints.c @@ -17,6 +17,7 @@ #include #include +#include #include #include @@ -144,6 +145,7 @@ static irqreturn_t q40_timer_int(int irq, void *dev_id) local_irq_save(flags); timer_routine(0, NULL); + timer_heartbeat(); local_irq_restore(flags); } return IRQ_HANDLED;