diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-29 19:53:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-29 19:53:48 -0400 |
commit | 12679a2d7e3bfbdc7586e3e86d1ca90c46659363 (patch) | |
tree | d9c00f2e599d1c3e04a349229a6a19906d01f99e /arch/arm/mach-msm | |
parent | 1c036588772d01655d851f75dffc27c971e072e2 (diff) | |
parent | b0df89868006517417251e02cc4ce5d4b0165885 (diff) |
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
Pull more ARM updates from Russell King.
This got a fair number of conflicts with the <asm/system.h> split, but
also with some other sparse-irq and header file include cleanups. They
all looked pretty trivial, though.
* 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (59 commits)
ARM: fix Kconfig warning for HAVE_BPF_JIT
ARM: 7361/1: provide XIP_VIRT_ADDR for no-MMU builds
ARM: 7349/1: integrator: convert to sparse irqs
ARM: 7259/3: net: JIT compiler for packet filters
ARM: 7334/1: add jump label support
ARM: 7333/2: jump label: detect %c support for ARM
ARM: 7338/1: add support for early console output via semihosting
ARM: use set_current_blocked() and block_sigmask()
ARM: exec: remove redundant set_fs(USER_DS)
ARM: 7332/1: extract out code patch function from kprobes
ARM: 7331/1: extract out insn generation code from ftrace
ARM: 7330/1: ftrace: use canonical Thumb-2 wide instruction format
ARM: 7351/1: ftrace: remove useless memory checks
ARM: 7316/1: kexec: EOI active and mask all interrupts in kexec crash path
ARM: Versatile Express: add NO_IOPORT
ARM: get rid of asm/irq.h in asm/prom.h
ARM: 7319/1: Print debug info for SIGBUS in user faults
ARM: 7318/1: gic: refactor irq_start assignment
ARM: 7317/1: irq: avoid NULL check in for_each_irq_desc loop
ARM: 7315/1: perf: add support for the Cortex-A7 PMU
...
Diffstat (limited to 'arch/arm/mach-msm')
-rw-r--r-- | arch/arm/mach-msm/timer.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c index 75f4be40b3e5..812808254936 100644 --- a/arch/arm/mach-msm/timer.c +++ b/arch/arm/mach-msm/timer.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <asm/mach/time.h> | 24 | #include <asm/mach/time.h> |
25 | #include <asm/hardware/gic.h> | 25 | #include <asm/hardware/gic.h> |
26 | #include <asm/localtimer.h> | 26 | #include <asm/localtimer.h> |
27 | #include <asm/sched_clock.h> | ||
27 | 28 | ||
28 | #include <mach/msm_iomap.h> | 29 | #include <mach/msm_iomap.h> |
29 | #include <mach/cpu.h> | 30 | #include <mach/cpu.h> |
@@ -105,12 +106,12 @@ static union { | |||
105 | 106 | ||
106 | static void __iomem *source_base; | 107 | static void __iomem *source_base; |
107 | 108 | ||
108 | static cycle_t msm_read_timer_count(struct clocksource *cs) | 109 | static notrace cycle_t msm_read_timer_count(struct clocksource *cs) |
109 | { | 110 | { |
110 | return readl_relaxed(source_base + TIMER_COUNT_VAL); | 111 | return readl_relaxed(source_base + TIMER_COUNT_VAL); |
111 | } | 112 | } |
112 | 113 | ||
113 | static cycle_t msm_read_timer_count_shift(struct clocksource *cs) | 114 | static notrace cycle_t msm_read_timer_count_shift(struct clocksource *cs) |
114 | { | 115 | { |
115 | /* | 116 | /* |
116 | * Shift timer count down by a constant due to unreliable lower bits | 117 | * Shift timer count down by a constant due to unreliable lower bits |
@@ -166,6 +167,11 @@ static struct local_timer_ops msm_local_timer_ops __cpuinitdata = { | |||
166 | }; | 167 | }; |
167 | #endif /* CONFIG_LOCAL_TIMERS */ | 168 | #endif /* CONFIG_LOCAL_TIMERS */ |
168 | 169 | ||
170 | static notrace u32 msm_sched_clock_read(void) | ||
171 | { | ||
172 | return msm_clocksource.read(&msm_clocksource); | ||
173 | } | ||
174 | |||
169 | static void __init msm_timer_init(void) | 175 | static void __init msm_timer_init(void) |
170 | { | 176 | { |
171 | struct clock_event_device *ce = &msm_clockevent; | 177 | struct clock_event_device *ce = &msm_clockevent; |
@@ -232,6 +238,8 @@ err: | |||
232 | res = clocksource_register_hz(cs, dgt_hz); | 238 | res = clocksource_register_hz(cs, dgt_hz); |
233 | if (res) | 239 | if (res) |
234 | pr_err("clocksource_register failed\n"); | 240 | pr_err("clocksource_register failed\n"); |
241 | setup_sched_clock(msm_sched_clock_read, | ||
242 | cpu_is_msm7x01() ? 32 - MSM_DGT_SHIFT : 32, dgt_hz); | ||
235 | } | 243 | } |
236 | 244 | ||
237 | struct sys_timer msm_timer = { | 245 | struct sys_timer msm_timer = { |