Merge tag 'swarren-for-3.9-arm-timer-rework' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/cleanup

From Stephen Warren:
ARM/...: timer and clock events cleanup, and remove struct sys_timer

This branch contains a number of cleanups and unifications to various
timer- clock-events- and ARM timer code. The main points are:

1) Convert arch_gettimeoffset to a pointer, so that architectures with
   multiple timer implementations can simply set this standard pointer
   rather than maintaining their own arch-specific pointers for the
   same purpose. Various architectures are converted to using this new
   feature.

2) Conversion of ARM timer implementations to use clock_event_devices's
   suspend/resume operations, rather than the ARM-specific sys_timer
   versions. Thus, the ARM code begins to use more common infra-structure
   rather than arch-specific code.

3) Removal of ARM's struct sys_timer completely, now that everything uses
   common code.

4) Introduction of drivers/clocksource/clksrc-of.c, which allows ARM clock
   source implementations to be moved into drivers/clocksource, with the
   need to add SoC-specific header files for each timer initialization
   function; instead, all enabled implementations are registered into a
   table which a single core function iterates over, and calls the
   relevant initialization functions based on device tree. At least the
   Tegra and BCM2835 clocksource implementations will use this feature in
   the 3.9 kernel cycle.

* tag 'swarren-for-3.9-arm-timer-rework' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
  clocksource: add common of_clksrc_init() function
  ARM: delete struct sys_timer
  ARM: remove struct sys_timer suspend and resume fields
  ARM: samsung: register syscore_ops for timer resume directly
  ARM: ux500: convert timer suspend/resume to clock_event_device
  ARM: sa1100: convert timer suspend/resume to clock_event_device
  ARM: pxa: convert timer suspend/resume to clock_event_device
  ARM: at91: convert timer suspend/resume to clock_event_device
  ARM: set arch_gettimeoffset directly
  m68k: set arch_gettimeoffset directly
  time: convert arch_gettimeoffset to a pointer
  cris: move usec/nsec conversion to do_slow_gettimeoffset

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson
2013-01-08 05:53:33 -08:00
529 changed files with 937 additions and 1508 deletions

View File

@@ -628,6 +628,6 @@ MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)")
.init_irq = omap1_init_irq,
.init_machine = ams_delta_init,
.init_late = ams_delta_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -364,6 +364,6 @@ MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-Sample")
.init_irq = omap1_init_irq,
.init_machine = omap_fsample_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -84,6 +84,6 @@ MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710")
.init_irq = omap1_init_irq,
.init_machine = omap_generic_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -461,6 +461,6 @@ MACHINE_START(OMAP_H2, "TI-H2")
.init_irq = omap1_init_irq,
.init_machine = h2_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -454,6 +454,6 @@ MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board")
.init_irq = omap1_init_irq,
.init_machine = h3_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -603,6 +603,6 @@ MACHINE_START(HERALD, "HTC Herald")
.init_irq = omap1_init_irq,
.init_machine = htcherald_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -458,6 +458,6 @@ MACHINE_START(OMAP_INNOVATOR, "TI-Innovator")
.init_irq = omap1_init_irq,
.init_machine = innovator_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -242,6 +242,6 @@ MACHINE_START(NOKIA770, "Nokia 770")
.init_irq = omap1_init_irq,
.init_machine = omap_nokia770_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -609,6 +609,6 @@ MACHINE_START(OMAP_OSK, "TI-OSK")
.init_irq = omap1_init_irq,
.init_machine = osk_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -268,6 +268,6 @@ MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E")
.init_irq = omap1_init_irq,
.init_machine = omap_palmte_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -314,6 +314,6 @@ MACHINE_START(OMAP_PALMTT, "OMAP1510 based Palm Tungsten|T")
.init_irq = omap1_init_irq,
.init_machine = omap_palmtt_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -330,6 +330,6 @@ MACHINE_START(OMAP_PALMZ71, "OMAP310 based Palm Zire71")
.init_irq = omap1_init_irq,
.init_machine = omap_palmz71_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -326,6 +326,6 @@ MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2")
.init_irq = omap1_init_irq,
.init_machine = omap_perseus2_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -407,6 +407,6 @@ MACHINE_START(SX1, "OMAP310 based Siemens SX1")
.init_irq = omap1_init_irq,
.init_machine = omap_sx1_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = omap1_restart,
MACHINE_END

View File

@@ -289,6 +289,6 @@ MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910")
.init_irq = omap1_init_irq,
.init_machine = voiceblue_init,
.init_late = omap1_init_late,
.timer = &omap1_timer,
.init_time = omap1_timer_init,
.restart = voiceblue_restart,
MACHINE_END

View File

@@ -75,7 +75,7 @@ extern void __init omap_check_revision(void);
extern void omap1_nand_cmd_ctl(struct mtd_info *mtd, int cmd,
unsigned int ctrl);
extern struct sys_timer omap1_timer;
extern void omap1_timer_init(void);
#ifdef CONFIG_OMAP_32K_TIMER
extern int omap_32k_timer_init(void);
#else

View File

@@ -236,12 +236,8 @@ static inline void omap_mpu_timer_init(void)
* Timer initialization
* ---------------------------------------------------------------------------
*/
static void __init omap1_timer_init(void)
void __init omap1_timer_init(void)
{
if (omap_32k_timer_init() != 0)
omap_mpu_timer_init();
}
struct sys_timer omap1_timer = {
.init = omap1_timer_init,
};