diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-29 16:53:48 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-29 16:53:48 -0700 | 
| commit | 12679a2d7e3bfbdc7586e3e86d1ca90c46659363 (patch) | |
| tree | d9c00f2e599d1c3e04a349229a6a19906d01f99e /arch/arm/mach-davinci/time.c | |
| parent | 1c036588772d01655d851f75dffc27c971e072e2 (diff) | |
| parent | b0df89868006517417251e02cc4ce5d4b0165885 (diff) | |
| download | olio-linux-3.10-12679a2d7e3bfbdc7586e3e86d1ca90c46659363.tar.xz olio-linux-3.10-12679a2d7e3bfbdc7586e3e86d1ca90c46659363.zip  | |
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-davinci/time.c')
| -rw-r--r-- | arch/arm/mach-davinci/time.c | 28 | 
1 files changed, 10 insertions, 18 deletions
diff --git a/arch/arm/mach-davinci/time.c b/arch/arm/mach-davinci/time.c index e1969ce904d..75da315b658 100644 --- a/arch/arm/mach-davinci/time.c +++ b/arch/arm/mach-davinci/time.c @@ -19,11 +19,14 @@  #include <linux/err.h>  #include <linux/platform_device.h> -#include <mach/hardware.h> +#include <asm/sched_clock.h>  #include <asm/mach/irq.h>  #include <asm/mach/time.h> +  #include <mach/cputype.h> +#include <mach/hardware.h>  #include <mach/time.h> +  #include "clock.h"  static struct clock_event_device clockevent_davinci; @@ -272,19 +275,9 @@ static cycle_t read_cycles(struct clocksource *cs)  	return (cycles_t)timer32_read(t);  } -/* - * Kernel assumes that sched_clock can be called early but may not have - * things ready yet. - */ -static cycle_t read_dummy(struct clocksource *cs) -{ -	return 0; -} - -  static struct clocksource clocksource_davinci = {  	.rating		= 300, -	.read		= read_dummy, +	.read		= read_cycles,  	.mask		= CLOCKSOURCE_MASK(32),  	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,  }; @@ -292,12 +285,9 @@ static struct clocksource clocksource_davinci = {  /*   * Overwrite weak default sched_clock with something more precise   */ -unsigned long long notrace sched_clock(void) +static u32 notrace davinci_read_sched_clock(void)  { -	const cycle_t cyc = clocksource_davinci.read(&clocksource_davinci); - -	return clocksource_cyc2ns(cyc, clocksource_davinci.mult, -				clocksource_davinci.shift); +	return timer32_read(&timers[TID_CLOCKSOURCE]);  }  /* @@ -397,12 +387,14 @@ static void __init davinci_timer_init(void)  	davinci_clock_tick_rate = clk_get_rate(timer_clk);  	/* setup clocksource */ -	clocksource_davinci.read = read_cycles;  	clocksource_davinci.name = id_to_name[clocksource_id];  	if (clocksource_register_hz(&clocksource_davinci,  				    davinci_clock_tick_rate))  		printk(err, clocksource_davinci.name); +	setup_sched_clock(davinci_read_sched_clock, 32, +			  davinci_clock_tick_rate); +  	/* setup clockevent */  	clockevent_davinci.name = id_to_name[timers[TID_CLOCKEVENT].id];  	clockevent_davinci.mult = div_sc(davinci_clock_tick_rate, NSEC_PER_SEC,  |