summaryrefslogtreecommitdiffstats
path: root/drivers/clocksource/arm_arch_timer.c
diff options
context:
space:
mode:
authorDaniel Lezcano <daniel.lezcano@linaro.org>2014-05-16 16:08:32 +0200
committerDaniel Lezcano <daniel.lezcano@linaro.org>2014-05-16 16:08:32 +0200
commit3f04e3d3eb77ac9df70619b9c87da71b0eeddc36 (patch)
treecf1cbadc390888d1910a81ffc40161f783363075 /drivers/clocksource/arm_arch_timer.c
parentARM: sun6i: a31: Add support for the High Speed Timers (diff)
parenttimer_stats/doc: Fix /proc/timer_stats documentation (diff)
downloadlinux-3f04e3d3eb77ac9df70619b9c87da71b0eeddc36.tar.xz
linux-3f04e3d3eb77ac9df70619b9c87da71b0eeddc36.zip
Merge remote-tracking branch 'tip/timers/core/timers/core' into clockevents/3.16
Diffstat (limited to 'drivers/clocksource/arm_arch_timer.c')
-rw-r--r--drivers/clocksource/arm_arch_timer.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index 57e823c44d2a..5163ec13429d 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -66,6 +66,7 @@ static int arch_timer_ppi[MAX_TIMER_PPI];
static struct clock_event_device __percpu *arch_timer_evt;
static bool arch_timer_use_virtual = true;
+static bool arch_timer_c3stop;
static bool arch_timer_mem_use_virtual;
/*
@@ -263,7 +264,8 @@ static void __arch_timer_setup(unsigned type,
clk->features = CLOCK_EVT_FEAT_ONESHOT;
if (type == ARCH_CP15_TIMER) {
- clk->features |= CLOCK_EVT_FEAT_C3STOP;
+ if (arch_timer_c3stop)
+ clk->features |= CLOCK_EVT_FEAT_C3STOP;
clk->name = "arch_sys_timer";
clk->rating = 450;
clk->cpumask = cpumask_of(smp_processor_id());
@@ -665,6 +667,8 @@ static void __init arch_timer_init(struct device_node *np)
}
}
+ arch_timer_c3stop = !of_property_read_bool(np, "always-on");
+
arch_timer_register();
arch_timer_common_init();
}