From: Stephen Warren <swarren@wwwdotorg.org>
To: Russell King <linux@arm.linux.org.uk>,
Olof Johansson <olof@lixom.net>, Arnd Bergmann <arnd@arndb.de>,
John Stultz <johnstul@us.ibm.com>,
Thomas Gleixner <tglx@linutronix.de>
Cc: linux-arch@vger.kernel.org, Stephen Warren <swarren@nvidia.com>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 00/11] arch_gettimeoffset and ARM timer rework
Date: Thu, 8 Nov 2012 14:01:44 -0700 [thread overview]
Message-ID: <1352408516-21988-1-git-send-email-swarren@wwwdotorg.org> (raw)
From: Stephen Warren <swarren@nvidia.com>
The overall aim of this series is to allow ARM (or indeed any) timer
drivers to be moved into drivers/clocksource without requiring a
struct or function prototype for each individual driver in include/linux.
The intent is eventually to create a single e.g. of_clocksource_init()
function that determines which timer driver to initialize by scanning
the device dtree, much like the proposed irqchip_init() at:
http://www.spinics.net/lists/arm-kernel/msg203686.html
This requires some rework prior to implementing of_clocksource_init():
ARM uses struct sys_timer to represent the individual machine's timer
driver. Many of the patches in this series are ARM-specific changes to
get rid of this struct, leaving just a single init function instead.
One function pointer in the struct provides the implementation of
arch_gettimeoffset(). Removing the struct and moving drivers into the
generic drivers/clocksource directory requires an arch-agnostic way of
registering the implementation of this function. The first few patches
in the series provide that, and rework various architectures to make use
of this facility rather than implementing the same thing themselves.
It would probably be easiest to merge this whole series through the
arm-soc tree. Anything else would require some co-ordination.
Stephen Warren (11):
cris: move usec/nsec conversion to do_slow_gettimeoffset
time: convert arch_gettimeoffset to a pointer
m68k: set arch_gettimeoffset directly
ARM: set arch_gettimeoffset directly
ARM: at91: convert timer suspend/resume to clock_event_device
ARM: pxa: convert timer suspend/resume to clock_event_device
ARM: sa1100: convert timer suspend/resume to clock_event_device
ARM: ux500: convert timer suspend/resume to clock_event_device
ARM: samsung: register syscore_ops for timer resume directly
ARM: remove struct sys_timer suspend and resume fields
ARM: delete struct sys_timer
arch/arm/include/asm/mach/arch.h | 3 +-
arch/arm/include/asm/mach/time.h | 30 ------------
arch/arm/kernel/time.c | 53 +----------------------
arch/arm/mach-at91/at91sam926x_time.c | 47 +++++++++++---------
arch/arm/mach-at91/at91x40_time.c | 8 ++-
arch/arm/mach-ebsa110/core.c | 7 ++-
arch/arm/mach-ep93xx/core.c | 23 +++++-----
arch/arm/mach-h720x/common.c | 6 +-
arch/arm/mach-h720x/common.h | 2 +-
arch/arm/mach-h720x/cpu-h7201.c | 3 +-
arch/arm/mach-h720x/cpu-h7202.c | 3 +-
arch/arm/mach-pxa/time.c | 76 ++++++++++++++++----------------
arch/arm/mach-rpc/time.c | 6 +-
arch/arm/mach-sa1100/time.c | 66 ++++++++++++++--------------
arch/arm/mach-tegra/board-dt-tegra20.c | 2 +-
arch/arm/mach-tegra/board-dt-tegra30.c | 2 +-
arch/arm/mach-tegra/board.h | 2 +-
arch/arm/mach-tegra/timer.c | 6 +--
arch/arm/mach-ux500/timer.c | 7 ---
arch/arm/plat-samsung/time.c | 14 ++++--
arch/blackfin/kernel/time.c | 6 ++-
arch/cris/arch-v10/kernel/time.c | 10 +++--
arch/cris/kernel/time.c | 11 -----
arch/m32r/kernel/time.c | 4 +-
arch/m68k/amiga/config.c | 10 ++--
arch/m68k/apollo/config.c | 9 ++--
arch/m68k/atari/config.c | 4 +-
arch/m68k/atari/time.c | 6 +-
arch/m68k/bvme6000/config.c | 10 ++--
arch/m68k/hp300/config.c | 2 +-
arch/m68k/hp300/time.c | 4 +-
arch/m68k/hp300/time.h | 2 +-
arch/m68k/include/asm/machdep.h | 2 +-
arch/m68k/kernel/setup_mm.c | 1 -
arch/m68k/kernel/time.c | 15 ++----
arch/m68k/mac/config.c | 4 +-
arch/m68k/mac/via.c | 4 +-
arch/m68k/mvme147/config.c | 8 ++--
arch/m68k/mvme16x/config.c | 8 ++--
arch/m68k/q40/config.c | 8 ++--
arch/m68k/sun3/config.c | 4 +-
arch/m68k/sun3/intersil.c | 4 +-
arch/m68k/sun3x/config.c | 2 +-
arch/m68k/sun3x/time.c | 2 +-
arch/m68k/sun3x/time.h | 2 +-
drivers/clocksource/nomadik-mtu.c | 33 ++++++++-----
include/linux/time.h | 4 +-
kernel/time/timekeeping.c | 20 +++++++-
48 files changed, 249 insertions(+), 316 deletions(-)
WARNING: multiple messages have this Message-ID (diff)
From: Stephen Warren <swarren@wwwdotorg.org>
To: Russell King <linux@arm.linux.org.uk>,
Olof Johansson <olof@lixom.net>, Arnd Bergmann <arnd@arndb.de>,
John Stultz <johnstul@us.ibm.com>,
Thomas Gleixner <tglx@linutronix.de>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
Stephen Warren <swarren@nvidia.com>
Subject: [RFC PATCH 00/11] arch_gettimeoffset and ARM timer rework
Date: Thu, 8 Nov 2012 14:01:44 -0700 [thread overview]
Message-ID: <1352408516-21988-1-git-send-email-swarren@wwwdotorg.org> (raw)
Message-ID: <20121108210144.kshQcEFzpv6OsMvQehtKYwIXL7BmoCEC88DGu_5wW2E@z> (raw)
From: Stephen Warren <swarren@nvidia.com>
The overall aim of this series is to allow ARM (or indeed any) timer
drivers to be moved into drivers/clocksource without requiring a
struct or function prototype for each individual driver in include/linux.
The intent is eventually to create a single e.g. of_clocksource_init()
function that determines which timer driver to initialize by scanning
the device dtree, much like the proposed irqchip_init() at:
http://www.spinics.net/lists/arm-kernel/msg203686.html
This requires some rework prior to implementing of_clocksource_init():
ARM uses struct sys_timer to represent the individual machine's timer
driver. Many of the patches in this series are ARM-specific changes to
get rid of this struct, leaving just a single init function instead.
One function pointer in the struct provides the implementation of
arch_gettimeoffset(). Removing the struct and moving drivers into the
generic drivers/clocksource directory requires an arch-agnostic way of
registering the implementation of this function. The first few patches
in the series provide that, and rework various architectures to make use
of this facility rather than implementing the same thing themselves.
It would probably be easiest to merge this whole series through the
arm-soc tree. Anything else would require some co-ordination.
Stephen Warren (11):
cris: move usec/nsec conversion to do_slow_gettimeoffset
time: convert arch_gettimeoffset to a pointer
m68k: set arch_gettimeoffset directly
ARM: set arch_gettimeoffset directly
ARM: at91: convert timer suspend/resume to clock_event_device
ARM: pxa: convert timer suspend/resume to clock_event_device
ARM: sa1100: convert timer suspend/resume to clock_event_device
ARM: ux500: convert timer suspend/resume to clock_event_device
ARM: samsung: register syscore_ops for timer resume directly
ARM: remove struct sys_timer suspend and resume fields
ARM: delete struct sys_timer
arch/arm/include/asm/mach/arch.h | 3 +-
arch/arm/include/asm/mach/time.h | 30 ------------
arch/arm/kernel/time.c | 53 +----------------------
arch/arm/mach-at91/at91sam926x_time.c | 47 +++++++++++---------
arch/arm/mach-at91/at91x40_time.c | 8 ++-
arch/arm/mach-ebsa110/core.c | 7 ++-
arch/arm/mach-ep93xx/core.c | 23 +++++-----
arch/arm/mach-h720x/common.c | 6 +-
arch/arm/mach-h720x/common.h | 2 +-
arch/arm/mach-h720x/cpu-h7201.c | 3 +-
arch/arm/mach-h720x/cpu-h7202.c | 3 +-
arch/arm/mach-pxa/time.c | 76 ++++++++++++++++----------------
arch/arm/mach-rpc/time.c | 6 +-
arch/arm/mach-sa1100/time.c | 66 ++++++++++++++--------------
arch/arm/mach-tegra/board-dt-tegra20.c | 2 +-
arch/arm/mach-tegra/board-dt-tegra30.c | 2 +-
arch/arm/mach-tegra/board.h | 2 +-
arch/arm/mach-tegra/timer.c | 6 +--
arch/arm/mach-ux500/timer.c | 7 ---
arch/arm/plat-samsung/time.c | 14 ++++--
arch/blackfin/kernel/time.c | 6 ++-
arch/cris/arch-v10/kernel/time.c | 10 +++--
arch/cris/kernel/time.c | 11 -----
arch/m32r/kernel/time.c | 4 +-
arch/m68k/amiga/config.c | 10 ++--
arch/m68k/apollo/config.c | 9 ++--
arch/m68k/atari/config.c | 4 +-
arch/m68k/atari/time.c | 6 +-
arch/m68k/bvme6000/config.c | 10 ++--
arch/m68k/hp300/config.c | 2 +-
arch/m68k/hp300/time.c | 4 +-
arch/m68k/hp300/time.h | 2 +-
arch/m68k/include/asm/machdep.h | 2 +-
arch/m68k/kernel/setup_mm.c | 1 -
arch/m68k/kernel/time.c | 15 ++----
arch/m68k/mac/config.c | 4 +-
arch/m68k/mac/via.c | 4 +-
arch/m68k/mvme147/config.c | 8 ++--
arch/m68k/mvme16x/config.c | 8 ++--
arch/m68k/q40/config.c | 8 ++--
arch/m68k/sun3/config.c | 4 +-
arch/m68k/sun3/intersil.c | 4 +-
arch/m68k/sun3x/config.c | 2 +-
arch/m68k/sun3x/time.c | 2 +-
arch/m68k/sun3x/time.h | 2 +-
drivers/clocksource/nomadik-mtu.c | 33 ++++++++-----
include/linux/time.h | 4 +-
kernel/time/timekeeping.c | 20 +++++++-
48 files changed, 249 insertions(+), 316 deletions(-)
next reply other threads:[~2012-11-08 21:01 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-08 21:01 Stephen Warren [this message]
2012-11-08 21:01 ` [RFC PATCH 00/11] arch_gettimeoffset and ARM timer rework Stephen Warren
2012-11-08 21:01 ` [PATCH] ARM: delete struct sys_timer Stephen Warren
2012-11-08 21:01 ` Stephen Warren
2012-11-08 21:04 ` Stephen Warren
2012-11-08 21:04 ` Stephen Warren
2012-11-08 21:01 ` [PATCH 01/11] cris: move usec/nsec conversion to do_slow_gettimeoffset Stephen Warren
2012-11-08 21:01 ` Stephen Warren
2012-11-12 10:44 ` Jesper Nilsson
2012-11-12 10:44 ` Jesper Nilsson
2012-11-08 21:01 ` [PATCH 02/11] time: convert arch_gettimeoffset to a pointer Stephen Warren
2012-11-08 21:01 ` Stephen Warren
2012-11-09 23:02 ` John Stultz
2012-11-09 23:02 ` John Stultz
2012-11-11 9:45 ` Geert Uytterhoeven
2012-11-12 10:46 ` Jesper Nilsson
2012-11-12 10:46 ` Jesper Nilsson
2012-11-08 21:01 ` [PATCH 03/11] m68k: set arch_gettimeoffset directly Stephen Warren
2012-11-08 21:01 ` Stephen Warren
2012-11-11 9:50 ` Geert Uytterhoeven
2012-11-11 9:50 ` Geert Uytterhoeven
2012-11-11 11:47 ` Phil Blundell
2012-11-11 11:47 ` Phil Blundell
2012-11-08 21:01 ` [PATCH 04/11] ARM: " Stephen Warren
2012-11-08 21:01 ` Stephen Warren
2012-11-08 23:06 ` Ryan Mallon
2012-11-09 21:07 ` Stephen Warren
2012-11-10 3:39 ` Ryan Mallon
2012-11-08 21:01 ` [PATCH 05/11] ARM: at91: convert timer suspend/resume to clock_event_device Stephen Warren
2012-11-08 21:01 ` Stephen Warren
2012-11-12 14:49 ` Jean-Christophe PLAGNIOL-VILLARD
2012-11-12 14:49 ` Jean-Christophe PLAGNIOL-VILLARD
2012-11-08 21:01 ` [PATCH 06/11] ARM: pxa: " Stephen Warren
2012-11-08 21:01 ` Stephen Warren
2012-11-09 2:05 ` Eric Miao
2012-11-08 21:01 ` [PATCH 07/11] ARM: sa1100: " Stephen Warren
2012-11-08 21:01 ` Stephen Warren
2012-11-08 21:01 ` [PATCH 08/11] ARM: ux500: " Stephen Warren
2012-11-08 21:01 ` Stephen Warren
2012-11-08 21:01 ` [PATCH 09/11] ARM: samsung: register syscore_ops for timer resume directly Stephen Warren
2012-11-08 21:01 ` [PATCH 10/11] ARM: remove struct sys_timer suspend and resume fields Stephen Warren
2012-11-08 21:01 ` [RFC PATCH 11/11] ARM: delete struct sys_timer Stephen Warren
2012-11-09 20:55 ` [PATCH V2 " Stephen Warren
2012-11-12 14:17 ` [RFC PATCH 00/11] arch_gettimeoffset and ARM timer rework Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1352408516-21988-1-git-send-email-swarren@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--cc=arnd@arndb.de \
--cc=johnstul@us.ibm.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=olof@lixom.net \
--cc=swarren@nvidia.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).