From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46BDFC00A89 for ; Fri, 30 Oct 2020 15:18:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E50932223F for ; Fri, 30 Oct 2020 15:18:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604071099; bh=taFQ/QYuCiye3DX/lZJhTO25JVRcc0x/wNovA78JpOY=; h=From:To:Cc:Subject:Date:List-ID:From; b=smN7oRBeOT56zMNiYt+i6DT5WXEsDFZIvdz9STow7/GQi2adh423bH2lO0D1jlYjO V9qg+EU939hD9L31kTBEbNUbvzX7ScSk13s1NPGe5IxCTUhQCKtDpLlMoMRsFqHvaz +uutUrhkby8D+zYRQdBfqKlt2Q8i/n6uC6JKadxc= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726844AbgJ3PSS (ORCPT ); Fri, 30 Oct 2020 11:18:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:51668 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726792AbgJ3PSS (ORCPT ); Fri, 30 Oct 2020 11:18:18 -0400 Received: from localhost.localdomain (HSI-KBW-46-223-126-90.hsi.kabel-badenwuerttemberg.de [46.223.126.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 02B1C20791; Fri, 30 Oct 2020 15:18:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604071096; bh=taFQ/QYuCiye3DX/lZJhTO25JVRcc0x/wNovA78JpOY=; h=From:To:Cc:Subject:Date:From; b=ufDt2Ll03VhYHtQFU6xb+wDDadJlHrC4o7pklktL1H164iohO0RVUvApxcyYUf8eT cT6OeHSv9QAgLUSnpRQk706eIF0HPDMkzDFLu+FuAH9hbSDGMubrZsL8T1rHK7HsoM wMfwqnjL+QtSIffHV9go0c9qiksw2jE54yt7dmD4= From: Arnd Bergmann To: linux-kernel@vger.kernel.org Cc: Thomas Gleixner , Arnd Bergmann , Russell King , Tony Luck , Fenghua Yu , Greg Ungerer , Finn Thain , Philip Blundell , Joshua Thompson , Sam Creasey , "James E.J. Bottomley" , Helge Deller , Daniel Lezcano , John Stultz , Stephen Boyd , Linus Walleij , linux-ia64@vger.kernel.org, Parisc List , linux-m68k , Linux ARM Subject: [PATCH v2 00/15] timers: clean up ARCH_GETTIMEOFFSET, LEGACY_TIMER_TICK Date: Fri, 30 Oct 2020 16:17:43 +0100 Message-Id: <20201030151758.1241164-1-arnd@kernel.org> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-parisc@vger.kernel.org From: Arnd Bergmann This is a resend of the combined cleanups for CONFIG_ARCH_GETTIMEOFFSET, which gets removed, and CONFIG_LEGACY_TIMER_TICK, which replaces CONFIG_GENERIC_CLOCKEVENTS, with the reverse meaning. CONFIG_ARCH_GETTIMEOFFSET has been gradually phased out from all platforms, with only ARM EBSA110 recently. As this has no more known users, the first three patches remove EBSA110 along with one platform specific driver and the ARCH_GETTIMEOFFSET infrastructure. When I created the patch removing CONFIG_ARCH_GETTIMEOFFSET, I also had a look at CONFIG_GENERIC_CLOCKEVENTS, which is selected by most, but not all, platforms today, each of the ones that lack it doing the timer tick slightly differently. The cleanups here make the old platforms a bit more consistent, in multiple ways: - rather than selecting GENERIC_CLOCKEVENTS on modern platforms, select LEGACY_TIMER_TICK on the old ones. - Hide some more of the internal implementation and only provide a single common entry point for the timer tick, which also makes the behavior more consistent. - Remove the m68k and arm specific infrastructure pieces and call the common helper directly from each timer interrupt function. I tested the series on m68k with the qemu q800 target platform, both with the legacy_timer_tick() implementation and after converting that to a periodic clockevent driver (not included in v2). Since the patches touch a lot of architecture specific code, I've created a branch in my asm-generic tree[1] and plan to send it for the v5.11 merge window. If any maintainer has conflicting changes or wants to build on top of my work, feel free to merge that into additional subsystem trees. Arnd [1] git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git \ asm-generic-timers Arnd Bergmann (15): ARM: remove ebsa110 platform net: remove am79c961a driver timekeeping: remove arch_gettimeoffset timekeeping: add CONFIG_LEGACY_TIMER_TICK ia64: convert to legacy_timer_tick ARM: rpc: use legacy_timer_tick parisc: use legacy_timer_tick m68k: coldfire: use legacy_timer_tick() m68k: split heartbeat out of timer function m68k: sun3/sun3c: use legacy_timer_tick m68k: m68328: use legacy_timer_tick() m68k: change remaining timers to legacy_timer_tick m68k: remove timer_interrupt() function timekeeping: remove xtime_update timekeeping: default GENERIC_CLOCKEVENTS to enabled .../time/clockevents/arch-support.txt | 8 +- .../time/modern-timekeeping/arch-support.txt | 33 - MAINTAINERS | 8 - arch/alpha/Kconfig | 1 - arch/arc/Kconfig | 1 - arch/arm/Kconfig | 37 +- arch/arm/Kconfig.debug | 6 +- arch/arm/Makefile | 8 - arch/arm/configs/ebsa110_defconfig | 74 -- arch/arm/include/asm/mach/time.h | 2 - arch/arm/kernel/Makefile | 6 +- arch/arm/kernel/time.c | 14 - arch/arm/mach-ebsa110/Makefile | 8 - arch/arm/mach-ebsa110/Makefile.boot | 5 - arch/arm/mach-ebsa110/core.c | 323 -------- arch/arm/mach-ebsa110/core.h | 38 - .../mach-ebsa110/include/mach/entry-macro.S | 33 - arch/arm/mach-ebsa110/include/mach/hardware.h | 21 - arch/arm/mach-ebsa110/include/mach/io.h | 89 -- arch/arm/mach-ebsa110/include/mach/irqs.h | 17 - arch/arm/mach-ebsa110/include/mach/memory.h | 22 - .../mach-ebsa110/include/mach/uncompress.h | 41 - arch/arm/mach-ebsa110/io.c | 440 ---------- arch/arm/mach-ebsa110/leds.c | 71 -- arch/arm/mach-rpc/time.c | 2 +- arch/arm64/Kconfig | 1 - arch/arm64/Kconfig.platforms | 1 - arch/c6x/Kconfig | 1 - arch/csky/Kconfig | 1 - arch/h8300/Kconfig | 1 - arch/hexagon/Kconfig | 1 - arch/ia64/Kconfig | 1 + arch/ia64/kernel/time.c | 36 +- arch/m68k/68000/timers.c | 7 +- arch/m68k/Kconfig.cpu | 37 +- arch/m68k/Kconfig.machine | 11 + arch/m68k/amiga/config.c | 11 +- arch/m68k/apollo/config.c | 11 +- arch/m68k/atari/config.c | 2 +- arch/m68k/atari/time.c | 9 +- arch/m68k/bvme6000/config.c | 9 +- arch/m68k/coldfire/Makefile | 32 +- arch/m68k/coldfire/pit.c | 2 +- arch/m68k/coldfire/sltimers.c | 8 +- arch/m68k/coldfire/timers.c | 8 +- arch/m68k/hp300/time.c | 8 +- arch/m68k/hp300/time.h | 2 +- arch/m68k/include/asm/machdep.h | 12 +- arch/m68k/kernel/setup_mm.c | 2 +- arch/m68k/kernel/setup_no.c | 2 +- arch/m68k/kernel/time.c | 18 +- arch/m68k/mac/config.c | 6 +- arch/m68k/mac/via.c | 8 +- arch/m68k/mvme147/config.c | 9 +- arch/m68k/mvme16x/config.c | 9 +- arch/m68k/q40/config.c | 2 +- arch/m68k/q40/q40ints.c | 10 +- arch/m68k/sun3/config.c | 4 +- arch/m68k/sun3/sun3ints.c | 3 +- arch/m68k/sun3x/time.c | 5 +- arch/m68k/sun3x/time.h | 2 +- arch/microblaze/Kconfig | 1 - arch/mips/Kconfig | 1 - arch/nds32/Kconfig | 1 - arch/nios2/Kconfig | 1 - arch/openrisc/Kconfig | 1 - arch/parisc/Kconfig | 2 +- arch/parisc/kernel/time.c | 9 +- arch/powerpc/Kconfig | 1 - arch/riscv/Kconfig | 1 - arch/s390/Kconfig | 1 - arch/sh/Kconfig | 1 - arch/sparc/Kconfig | 1 - arch/um/Kconfig | 1 - arch/x86/Kconfig | 1 - arch/xtensa/Kconfig | 1 - drivers/Makefile | 2 - drivers/clocksource/Kconfig | 2 +- drivers/net/ethernet/amd/Kconfig | 10 +- drivers/net/ethernet/amd/Makefile | 1 - drivers/net/ethernet/amd/am79c961a.c | 763 ------------------ drivers/net/ethernet/amd/am79c961a.h | 143 ---- drivers/watchdog/Kconfig | 2 +- include/linux/time.h | 13 - include/linux/timekeeping.h | 3 +- kernel/time/Kconfig | 18 +- kernel/time/Makefile | 1 + kernel/time/clocksource.c | 8 - kernel/time/tick-legacy.c | 37 + kernel/time/timekeeping.c | 41 +- kernel/time/timekeeping.h | 1 + kernel/trace/Kconfig | 2 - 92 files changed, 218 insertions(+), 2453 deletions(-) delete mode 100644 Documentation/features/time/modern-timekeeping/arch-support.txt delete mode 100644 arch/arm/configs/ebsa110_defconfig delete mode 100644 arch/arm/mach-ebsa110/Makefile delete mode 100644 arch/arm/mach-ebsa110/Makefile.boot delete mode 100644 arch/arm/mach-ebsa110/core.c delete mode 100644 arch/arm/mach-ebsa110/core.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/entry-macro.S delete mode 100644 arch/arm/mach-ebsa110/include/mach/hardware.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/io.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/irqs.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/memory.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/uncompress.h delete mode 100644 arch/arm/mach-ebsa110/io.c delete mode 100644 arch/arm/mach-ebsa110/leds.c delete mode 100644 drivers/net/ethernet/amd/am79c961a.c delete mode 100644 drivers/net/ethernet/amd/am79c961a.h create mode 100644 kernel/time/tick-legacy.c Cc: Russell King Cc: Tony Luck Cc: Fenghua Yu Cc: Greg Ungerer Cc: Finn Thain Cc: Philip Blundell Cc: Joshua Thompson Cc: Sam Creasey Cc: "James E.J. Bottomley" Cc: Helge Deller Cc: Daniel Lezcano Cc: John Stultz Cc: Stephen Boyd Cc: Linus Walleij Cc: Cc: Parisc List Cc: linux-m68k Cc: Linux ARM -- 2.27.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0B223C55179 for ; Fri, 30 Oct 2020 15:20: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 710842224D for ; Fri, 30 Oct 2020 15:20:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Fzg/WbDy"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="ufDt2Ll0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 710842224D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.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: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:In-Reply-To:References:List-Owner; bh=SHaqJI1E97VF5BL7vOzp8UWRsWv5nHaefSLTeMHXN2Y=; b=Fzg/WbDy4Dc7aHm1vLaU/6C582 GKORswiYIx/FQy2SP1Jd9vE4U+u4FUn9Ud6/mV6CL5mMOlmT2FNqmoEVrh++IB8RzafB5n4TjIRdU bk/QAby2g+/R5B0F5FYt8fkXrp/S72IcH4vmkjg4U7DECM6MHX+QZDCbH9yWRqvAYYFs004ZhI3TD Jd8H7wofegVrq/jnGVQvfm5lPc3+knDkIkNEyhL51d+Baf3IdSl6k6fccraL5WJvXDL8HcNrs03UX Mox//IDEECx2ibiYjO48EPuXGM5dSC5AxeuB3KIucQWQvi+P5IhKU7Oi53Txb9woSYJUpwUNyzu/i NIiP1Pcw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYWAV-0002OV-MB; Fri, 30 Oct 2020 15:18:19 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYWAT-0002Ne-Fi for linux-arm-kernel@lists.infradead.org; Fri, 30 Oct 2020 15:18:18 +0000 Received: from localhost.localdomain (HSI-KBW-46-223-126-90.hsi.kabel-badenwuerttemberg.de [46.223.126.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 02B1C20791; Fri, 30 Oct 2020 15:18:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604071096; bh=taFQ/QYuCiye3DX/lZJhTO25JVRcc0x/wNovA78JpOY=; h=From:To:Cc:Subject:Date:From; b=ufDt2Ll03VhYHtQFU6xb+wDDadJlHrC4o7pklktL1H164iohO0RVUvApxcyYUf8eT cT6OeHSv9QAgLUSnpRQk706eIF0HPDMkzDFLu+FuAH9hbSDGMubrZsL8T1rHK7HsoM wMfwqnjL+QtSIffHV9go0c9qiksw2jE54yt7dmD4= From: Arnd Bergmann To: linux-kernel@vger.kernel.org Subject: [PATCH v2 00/15] timers: clean up ARCH_GETTIMEOFFSET, LEGACY_TIMER_TICK Date: Fri, 30 Oct 2020 16:17:43 +0100 Message-Id: <20201030151758.1241164-1-arnd@kernel.org> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201030_111817_694978_F5021486 X-CRM114-Status: GOOD ( 25.55 ) 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 , linux-ia64@vger.kernel.org, Parisc List , Arnd Bergmann , Stephen Boyd , Philip Blundell , Helge Deller , Daniel Lezcano , Russell King , Finn Thain , "James E.J. Bottomley" , linux-m68k , John Stultz , Linux ARM , Thomas Gleixner , Greg Ungerer , Joshua Thompson Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Arnd Bergmann This is a resend of the combined cleanups for CONFIG_ARCH_GETTIMEOFFSET, which gets removed, and CONFIG_LEGACY_TIMER_TICK, which replaces CONFIG_GENERIC_CLOCKEVENTS, with the reverse meaning. CONFIG_ARCH_GETTIMEOFFSET has been gradually phased out from all platforms, with only ARM EBSA110 recently. As this has no more known users, the first three patches remove EBSA110 along with one platform specific driver and the ARCH_GETTIMEOFFSET infrastructure. When I created the patch removing CONFIG_ARCH_GETTIMEOFFSET, I also had a look at CONFIG_GENERIC_CLOCKEVENTS, which is selected by most, but not all, platforms today, each of the ones that lack it doing the timer tick slightly differently. The cleanups here make the old platforms a bit more consistent, in multiple ways: - rather than selecting GENERIC_CLOCKEVENTS on modern platforms, select LEGACY_TIMER_TICK on the old ones. - Hide some more of the internal implementation and only provide a single common entry point for the timer tick, which also makes the behavior more consistent. - Remove the m68k and arm specific infrastructure pieces and call the common helper directly from each timer interrupt function. I tested the series on m68k with the qemu q800 target platform, both with the legacy_timer_tick() implementation and after converting that to a periodic clockevent driver (not included in v2). Since the patches touch a lot of architecture specific code, I've created a branch in my asm-generic tree[1] and plan to send it for the v5.11 merge window. If any maintainer has conflicting changes or wants to build on top of my work, feel free to merge that into additional subsystem trees. Arnd [1] git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git \ asm-generic-timers Arnd Bergmann (15): ARM: remove ebsa110 platform net: remove am79c961a driver timekeeping: remove arch_gettimeoffset timekeeping: add CONFIG_LEGACY_TIMER_TICK ia64: convert to legacy_timer_tick ARM: rpc: use legacy_timer_tick parisc: use legacy_timer_tick m68k: coldfire: use legacy_timer_tick() m68k: split heartbeat out of timer function m68k: sun3/sun3c: use legacy_timer_tick m68k: m68328: use legacy_timer_tick() m68k: change remaining timers to legacy_timer_tick m68k: remove timer_interrupt() function timekeeping: remove xtime_update timekeeping: default GENERIC_CLOCKEVENTS to enabled .../time/clockevents/arch-support.txt | 8 +- .../time/modern-timekeeping/arch-support.txt | 33 - MAINTAINERS | 8 - arch/alpha/Kconfig | 1 - arch/arc/Kconfig | 1 - arch/arm/Kconfig | 37 +- arch/arm/Kconfig.debug | 6 +- arch/arm/Makefile | 8 - arch/arm/configs/ebsa110_defconfig | 74 -- arch/arm/include/asm/mach/time.h | 2 - arch/arm/kernel/Makefile | 6 +- arch/arm/kernel/time.c | 14 - arch/arm/mach-ebsa110/Makefile | 8 - arch/arm/mach-ebsa110/Makefile.boot | 5 - arch/arm/mach-ebsa110/core.c | 323 -------- arch/arm/mach-ebsa110/core.h | 38 - .../mach-ebsa110/include/mach/entry-macro.S | 33 - arch/arm/mach-ebsa110/include/mach/hardware.h | 21 - arch/arm/mach-ebsa110/include/mach/io.h | 89 -- arch/arm/mach-ebsa110/include/mach/irqs.h | 17 - arch/arm/mach-ebsa110/include/mach/memory.h | 22 - .../mach-ebsa110/include/mach/uncompress.h | 41 - arch/arm/mach-ebsa110/io.c | 440 ---------- arch/arm/mach-ebsa110/leds.c | 71 -- arch/arm/mach-rpc/time.c | 2 +- arch/arm64/Kconfig | 1 - arch/arm64/Kconfig.platforms | 1 - arch/c6x/Kconfig | 1 - arch/csky/Kconfig | 1 - arch/h8300/Kconfig | 1 - arch/hexagon/Kconfig | 1 - arch/ia64/Kconfig | 1 + arch/ia64/kernel/time.c | 36 +- arch/m68k/68000/timers.c | 7 +- arch/m68k/Kconfig.cpu | 37 +- arch/m68k/Kconfig.machine | 11 + arch/m68k/amiga/config.c | 11 +- arch/m68k/apollo/config.c | 11 +- arch/m68k/atari/config.c | 2 +- arch/m68k/atari/time.c | 9 +- arch/m68k/bvme6000/config.c | 9 +- arch/m68k/coldfire/Makefile | 32 +- arch/m68k/coldfire/pit.c | 2 +- arch/m68k/coldfire/sltimers.c | 8 +- arch/m68k/coldfire/timers.c | 8 +- arch/m68k/hp300/time.c | 8 +- arch/m68k/hp300/time.h | 2 +- arch/m68k/include/asm/machdep.h | 12 +- arch/m68k/kernel/setup_mm.c | 2 +- arch/m68k/kernel/setup_no.c | 2 +- arch/m68k/kernel/time.c | 18 +- arch/m68k/mac/config.c | 6 +- arch/m68k/mac/via.c | 8 +- arch/m68k/mvme147/config.c | 9 +- arch/m68k/mvme16x/config.c | 9 +- arch/m68k/q40/config.c | 2 +- arch/m68k/q40/q40ints.c | 10 +- arch/m68k/sun3/config.c | 4 +- arch/m68k/sun3/sun3ints.c | 3 +- arch/m68k/sun3x/time.c | 5 +- arch/m68k/sun3x/time.h | 2 +- arch/microblaze/Kconfig | 1 - arch/mips/Kconfig | 1 - arch/nds32/Kconfig | 1 - arch/nios2/Kconfig | 1 - arch/openrisc/Kconfig | 1 - arch/parisc/Kconfig | 2 +- arch/parisc/kernel/time.c | 9 +- arch/powerpc/Kconfig | 1 - arch/riscv/Kconfig | 1 - arch/s390/Kconfig | 1 - arch/sh/Kconfig | 1 - arch/sparc/Kconfig | 1 - arch/um/Kconfig | 1 - arch/x86/Kconfig | 1 - arch/xtensa/Kconfig | 1 - drivers/Makefile | 2 - drivers/clocksource/Kconfig | 2 +- drivers/net/ethernet/amd/Kconfig | 10 +- drivers/net/ethernet/amd/Makefile | 1 - drivers/net/ethernet/amd/am79c961a.c | 763 ------------------ drivers/net/ethernet/amd/am79c961a.h | 143 ---- drivers/watchdog/Kconfig | 2 +- include/linux/time.h | 13 - include/linux/timekeeping.h | 3 +- kernel/time/Kconfig | 18 +- kernel/time/Makefile | 1 + kernel/time/clocksource.c | 8 - kernel/time/tick-legacy.c | 37 + kernel/time/timekeeping.c | 41 +- kernel/time/timekeeping.h | 1 + kernel/trace/Kconfig | 2 - 92 files changed, 218 insertions(+), 2453 deletions(-) delete mode 100644 Documentation/features/time/modern-timekeeping/arch-support.txt delete mode 100644 arch/arm/configs/ebsa110_defconfig delete mode 100644 arch/arm/mach-ebsa110/Makefile delete mode 100644 arch/arm/mach-ebsa110/Makefile.boot delete mode 100644 arch/arm/mach-ebsa110/core.c delete mode 100644 arch/arm/mach-ebsa110/core.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/entry-macro.S delete mode 100644 arch/arm/mach-ebsa110/include/mach/hardware.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/io.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/irqs.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/memory.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/uncompress.h delete mode 100644 arch/arm/mach-ebsa110/io.c delete mode 100644 arch/arm/mach-ebsa110/leds.c delete mode 100644 drivers/net/ethernet/amd/am79c961a.c delete mode 100644 drivers/net/ethernet/amd/am79c961a.h create mode 100644 kernel/time/tick-legacy.c Cc: Russell King Cc: Tony Luck Cc: Fenghua Yu Cc: Greg Ungerer Cc: Finn Thain Cc: Philip Blundell Cc: Joshua Thompson Cc: Sam Creasey Cc: "James E.J. Bottomley" Cc: Helge Deller Cc: Daniel Lezcano Cc: John Stultz Cc: Stephen Boyd Cc: Linus Walleij Cc: Cc: Parisc List Cc: linux-m68k Cc: Linux ARM -- 2.27.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Date: Fri, 30 Oct 2020 15:17:43 +0000 Subject: [PATCH v2 00/15] timers: clean up ARCH_GETTIMEOFFSET, LEGACY_TIMER_TICK Message-Id: <20201030151758.1241164-1-arnd@kernel.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-kernel@vger.kernel.org Cc: Thomas Gleixner , Arnd Bergmann , Russell King , Tony Luck , Fenghua Yu , Greg Ungerer , Finn Thain , Philip Blundell , Joshua Thompson , Sam Creasey , "James E.J. Bottomley" , Helge Deller , Daniel Lezcano , John Stultz , Stephen Boyd , Linus Walleij , linux-ia64@vger.kernel.org, Parisc List , linux-m68k , Linux ARM From: Arnd Bergmann This is a resend of the combined cleanups for CONFIG_ARCH_GETTIMEOFFSET, which gets removed, and CONFIG_LEGACY_TIMER_TICK, which replaces CONFIG_GENERIC_CLOCKEVENTS, with the reverse meaning. CONFIG_ARCH_GETTIMEOFFSET has been gradually phased out from all platforms, with only ARM EBSA110 recently. As this has no more known users, the first three patches remove EBSA110 along with one platform specific driver and the ARCH_GETTIMEOFFSET infrastructure. When I created the patch removing CONFIG_ARCH_GETTIMEOFFSET, I also had a look at CONFIG_GENERIC_CLOCKEVENTS, which is selected by most, but not all, platforms today, each of the ones that lack it doing the timer tick slightly differently. The cleanups here make the old platforms a bit more consistent, in multiple ways: - rather than selecting GENERIC_CLOCKEVENTS on modern platforms, select LEGACY_TIMER_TICK on the old ones. - Hide some more of the internal implementation and only provide a single common entry point for the timer tick, which also makes the behavior more consistent. - Remove the m68k and arm specific infrastructure pieces and call the common helper directly from each timer interrupt function. I tested the series on m68k with the qemu q800 target platform, both with the legacy_timer_tick() implementation and after converting that to a periodic clockevent driver (not included in v2). Since the patches touch a lot of architecture specific code, I've created a branch in my asm-generic tree[1] and plan to send it for the v5.11 merge window. If any maintainer has conflicting changes or wants to build on top of my work, feel free to merge that into additional subsystem trees. Arnd [1] git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git \ asm-generic-timers Arnd Bergmann (15): ARM: remove ebsa110 platform net: remove am79c961a driver timekeeping: remove arch_gettimeoffset timekeeping: add CONFIG_LEGACY_TIMER_TICK ia64: convert to legacy_timer_tick ARM: rpc: use legacy_timer_tick parisc: use legacy_timer_tick m68k: coldfire: use legacy_timer_tick() m68k: split heartbeat out of timer function m68k: sun3/sun3c: use legacy_timer_tick m68k: m68328: use legacy_timer_tick() m68k: change remaining timers to legacy_timer_tick m68k: remove timer_interrupt() function timekeeping: remove xtime_update timekeeping: default GENERIC_CLOCKEVENTS to enabled .../time/clockevents/arch-support.txt | 8 +- .../time/modern-timekeeping/arch-support.txt | 33 - MAINTAINERS | 8 - arch/alpha/Kconfig | 1 - arch/arc/Kconfig | 1 - arch/arm/Kconfig | 37 +- arch/arm/Kconfig.debug | 6 +- arch/arm/Makefile | 8 - arch/arm/configs/ebsa110_defconfig | 74 -- arch/arm/include/asm/mach/time.h | 2 - arch/arm/kernel/Makefile | 6 +- arch/arm/kernel/time.c | 14 - arch/arm/mach-ebsa110/Makefile | 8 - arch/arm/mach-ebsa110/Makefile.boot | 5 - arch/arm/mach-ebsa110/core.c | 323 -------- arch/arm/mach-ebsa110/core.h | 38 - .../mach-ebsa110/include/mach/entry-macro.S | 33 - arch/arm/mach-ebsa110/include/mach/hardware.h | 21 - arch/arm/mach-ebsa110/include/mach/io.h | 89 -- arch/arm/mach-ebsa110/include/mach/irqs.h | 17 - arch/arm/mach-ebsa110/include/mach/memory.h | 22 - .../mach-ebsa110/include/mach/uncompress.h | 41 - arch/arm/mach-ebsa110/io.c | 440 ---------- arch/arm/mach-ebsa110/leds.c | 71 -- arch/arm/mach-rpc/time.c | 2 +- arch/arm64/Kconfig | 1 - arch/arm64/Kconfig.platforms | 1 - arch/c6x/Kconfig | 1 - arch/csky/Kconfig | 1 - arch/h8300/Kconfig | 1 - arch/hexagon/Kconfig | 1 - arch/ia64/Kconfig | 1 + arch/ia64/kernel/time.c | 36 +- arch/m68k/68000/timers.c | 7 +- arch/m68k/Kconfig.cpu | 37 +- arch/m68k/Kconfig.machine | 11 + arch/m68k/amiga/config.c | 11 +- arch/m68k/apollo/config.c | 11 +- arch/m68k/atari/config.c | 2 +- arch/m68k/atari/time.c | 9 +- arch/m68k/bvme6000/config.c | 9 +- arch/m68k/coldfire/Makefile | 32 +- arch/m68k/coldfire/pit.c | 2 +- arch/m68k/coldfire/sltimers.c | 8 +- arch/m68k/coldfire/timers.c | 8 +- arch/m68k/hp300/time.c | 8 +- arch/m68k/hp300/time.h | 2 +- arch/m68k/include/asm/machdep.h | 12 +- arch/m68k/kernel/setup_mm.c | 2 +- arch/m68k/kernel/setup_no.c | 2 +- arch/m68k/kernel/time.c | 18 +- arch/m68k/mac/config.c | 6 +- arch/m68k/mac/via.c | 8 +- arch/m68k/mvme147/config.c | 9 +- arch/m68k/mvme16x/config.c | 9 +- arch/m68k/q40/config.c | 2 +- arch/m68k/q40/q40ints.c | 10 +- arch/m68k/sun3/config.c | 4 +- arch/m68k/sun3/sun3ints.c | 3 +- arch/m68k/sun3x/time.c | 5 +- arch/m68k/sun3x/time.h | 2 +- arch/microblaze/Kconfig | 1 - arch/mips/Kconfig | 1 - arch/nds32/Kconfig | 1 - arch/nios2/Kconfig | 1 - arch/openrisc/Kconfig | 1 - arch/parisc/Kconfig | 2 +- arch/parisc/kernel/time.c | 9 +- arch/powerpc/Kconfig | 1 - arch/riscv/Kconfig | 1 - arch/s390/Kconfig | 1 - arch/sh/Kconfig | 1 - arch/sparc/Kconfig | 1 - arch/um/Kconfig | 1 - arch/x86/Kconfig | 1 - arch/xtensa/Kconfig | 1 - drivers/Makefile | 2 - drivers/clocksource/Kconfig | 2 +- drivers/net/ethernet/amd/Kconfig | 10 +- drivers/net/ethernet/amd/Makefile | 1 - drivers/net/ethernet/amd/am79c961a.c | 763 ------------------ drivers/net/ethernet/amd/am79c961a.h | 143 ---- drivers/watchdog/Kconfig | 2 +- include/linux/time.h | 13 - include/linux/timekeeping.h | 3 +- kernel/time/Kconfig | 18 +- kernel/time/Makefile | 1 + kernel/time/clocksource.c | 8 - kernel/time/tick-legacy.c | 37 + kernel/time/timekeeping.c | 41 +- kernel/time/timekeeping.h | 1 + kernel/trace/Kconfig | 2 - 92 files changed, 218 insertions(+), 2453 deletions(-) delete mode 100644 Documentation/features/time/modern-timekeeping/arch-support.txt delete mode 100644 arch/arm/configs/ebsa110_defconfig delete mode 100644 arch/arm/mach-ebsa110/Makefile delete mode 100644 arch/arm/mach-ebsa110/Makefile.boot delete mode 100644 arch/arm/mach-ebsa110/core.c delete mode 100644 arch/arm/mach-ebsa110/core.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/entry-macro.S delete mode 100644 arch/arm/mach-ebsa110/include/mach/hardware.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/io.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/irqs.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/memory.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/uncompress.h delete mode 100644 arch/arm/mach-ebsa110/io.c delete mode 100644 arch/arm/mach-ebsa110/leds.c delete mode 100644 drivers/net/ethernet/amd/am79c961a.c delete mode 100644 drivers/net/ethernet/amd/am79c961a.h create mode 100644 kernel/time/tick-legacy.c Cc: Russell King Cc: Tony Luck Cc: Fenghua Yu Cc: Greg Ungerer Cc: Finn Thain Cc: Philip Blundell Cc: Joshua Thompson Cc: Sam Creasey Cc: "James E.J. Bottomley" Cc: Helge Deller Cc: Daniel Lezcano Cc: John Stultz Cc: Stephen Boyd Cc: Linus Walleij Cc: Cc: Parisc List Cc: linux-m68k Cc: Linux ARM -- 2.27.0