diff options
author | Dan Willemsen <dwillemsen@nvidia.com> | 2013-08-19 21:35:31 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-08-30 19:34:35 -0700 |
commit | ddb49eadadb47df43a5cec0bc3a39cd5ee718121 (patch) | |
tree | c20462f5a8683c02db64a24e7ff20f4ca7a8b76d /arch | |
parent | 5c26a8baf534001b612f9f39f1fa5075e36b6aa9 (diff) |
Revert "ARM: smp_twd: convert to use CLKSRC_OF init"
This reverts commit da4a686a2cfb077a8bfc1697f597e7f86235b822.
Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/smp_twd.h | 8 | ||||
-rw-r--r-- | arch/arm/kernel/smp_twd.c | 17 | ||||
-rw-r--r-- | arch/arm/mach-omap2/timer.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ux500/timer.c | 3 |
5 files changed, 23 insertions, 8 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 18a9f5ef643a..ebfd11546516 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1509,7 +1509,6 @@ config HAVE_ARM_ARCH_TIMER config HAVE_ARM_TWD bool depends on SMP - select CLKSRC_OF if OF help This options enables support for the ARM timer and watchdog unit diff --git a/arch/arm/include/asm/smp_twd.h b/arch/arm/include/asm/smp_twd.h index 7b2899c2f7fc..0f01f4677bd2 100644 --- a/arch/arm/include/asm/smp_twd.h +++ b/arch/arm/include/asm/smp_twd.h @@ -34,4 +34,12 @@ struct twd_local_timer name __initdata = { \ int twd_local_timer_register(struct twd_local_timer *); +#ifdef CONFIG_HAVE_ARM_TWD +void twd_local_timer_of_register(void); +#else +static inline void twd_local_timer_of_register(void) +{ +} +#endif + #endif diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c index f6fd1d4398c6..325d4b1f0fa6 100644 --- a/arch/arm/kernel/smp_twd.c +++ b/arch/arm/kernel/smp_twd.c @@ -362,13 +362,25 @@ int __init twd_local_timer_register(struct twd_local_timer *tlt) } #ifdef CONFIG_OF -static void __init twd_local_timer_of_register(struct device_node *np) +const static struct of_device_id twd_of_match[] __initconst = { + { .compatible = "arm,cortex-a9-twd-timer", }, + { .compatible = "arm,cortex-a5-twd-timer", }, + { .compatible = "arm,arm11mp-twd-timer", }, + { }, +}; + +void __init twd_local_timer_of_register(void) { + struct device_node *np; int err; if (!is_smp() || !setup_max_cpus) return; + np = of_find_matching_node(NULL, twd_of_match); + if (!np) + return; + twd_ppi = irq_of_parse_and_map(np, 0); if (!twd_ppi) { err = -EINVAL; @@ -386,7 +398,4 @@ static void __init twd_local_timer_of_register(struct device_node *np) out: WARN(err, "twd_local_timer_of_register failed (%d)\n", err); } -CLOCKSOURCE_OF_DECLARE(arm_twd_a9, "arm,cortex-a9-twd-timer", twd_local_timer_of_register); -CLOCKSOURCE_OF_DECLARE(arm_twd_a5, "arm,cortex-a5-twd-timer", twd_local_timer_of_register); -CLOCKSOURCE_OF_DECLARE(arm_twd_11mp, "arm,arm11mp-twd-timer", twd_local_timer_of_register); #endif diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index f8b23b8040d9..427980efa1b1 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c @@ -610,7 +610,7 @@ void __init omap4_local_timer_init(void) int err; if (of_have_populated_dt()) { - clocksource_of_init(); + twd_local_timer_of_register(); return; } diff --git a/arch/arm/mach-ux500/timer.c b/arch/arm/mach-ux500/timer.c index b6bd0efcbe64..290b9c5e5e28 100644 --- a/arch/arm/mach-ux500/timer.c +++ b/arch/arm/mach-ux500/timer.c @@ -7,7 +7,6 @@ #include <linux/io.h> #include <linux/errno.h> #include <linux/clksrc-dbx500-prcmu.h> -#include <linux/clocksource.h> #include <linux/of.h> #include <linux/of_address.h> #include <linux/platform_data/clocksource-nomadik-mtu.h> @@ -33,7 +32,7 @@ static void __init ux500_twd_init(void) twd_local_timer = &u8500_twd_local_timer; if (of_have_populated_dt()) - clocksource_of_init(); + twd_local_timer_of_register(); else { err = twd_local_timer_register(twd_local_timer); if (err) |