diff options
Diffstat (limited to 'arch/arm/mach-u300')
| -rw-r--r-- | arch/arm/mach-u300/Kconfig | 2 | ||||
| -rw-r--r-- | arch/arm/mach-u300/clock.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-u300/include/mach/coh901318.h | 4 | ||||
| -rw-r--r-- | arch/arm/mach-u300/timer.c | 22 | 
4 files changed, 19 insertions, 11 deletions
| diff --git a/arch/arm/mach-u300/Kconfig b/arch/arm/mach-u300/Kconfig index 801b21e7f677..32a7b0f7e9f7 100644 --- a/arch/arm/mach-u300/Kconfig +++ b/arch/arm/mach-u300/Kconfig @@ -64,7 +64,7 @@ config MACH_U300_DUAL_RAM  	bool "Dual RAM"  	help  		Select this if you want support for Dual RAM phones. -		This is two RAM memorys on different EMIFs. +		This is two RAM memories on different EMIFs.  endchoice  config U300_DEBUG diff --git a/arch/arm/mach-u300/clock.c b/arch/arm/mach-u300/clock.c index 7458fc6df5c6..fabcc49abe80 100644 --- a/arch/arm/mach-u300/clock.c +++ b/arch/arm/mach-u300/clock.c @@ -25,8 +25,8 @@  #include <linux/timer.h>  #include <linux/io.h>  #include <linux/seq_file.h> +#include <linux/clkdev.h> -#include <asm/clkdev.h>  #include <mach/hardware.h>  #include <mach/syscon.h> diff --git a/arch/arm/mach-u300/include/mach/coh901318.h b/arch/arm/mach-u300/include/mach/coh901318.h index 193da2df732c..6193aaa47794 100644 --- a/arch/arm/mach-u300/include/mach/coh901318.h +++ b/arch/arm/mach-u300/include/mach/coh901318.h @@ -24,7 +24,7 @@   * @src_addr: transfer source address   * @dst_addr: transfer destination address   * @link_addr:  physical address to next lli - * @virt_link_addr: virtual addres of next lli (only used by pool_free) + * @virt_link_addr: virtual address of next lli (only used by pool_free)   * @phy_this: physical address of current lli (only used by pool_free)   */  struct coh901318_lli { @@ -90,7 +90,7 @@ struct powersave {   * struct coh901318_platform - platform arch structure   * @chans_slave: specifying dma slave channels   * @chans_memcpy: specifying dma memcpy channels - * @access_memory_state: requesting DMA memeory access (on / off) + * @access_memory_state: requesting DMA memory access (on / off)   * @chan_conf: dma channel configurations   * @max_channels: max number of dma chanenls   */ diff --git a/arch/arm/mach-u300/timer.c b/arch/arm/mach-u300/timer.c index 3fc4472719be..3ec58bd2d6e4 100644 --- a/arch/arm/mach-u300/timer.c +++ b/arch/arm/mach-u300/timer.c @@ -9,6 +9,7 @@   * Author: Linus Walleij <linus.walleij@stericsson.com>   */  #include <linux/interrupt.h> +#include <linux/sched.h>  #include <linux/time.h>  #include <linux/timex.h>  #include <linux/clockchips.h> @@ -21,6 +22,7 @@  #include <mach/hardware.h>  /* Generic stuff */ +#include <asm/sched_clock.h>  #include <asm/mach/map.h>  #include <asm/mach/time.h>  #include <asm/mach/irq.h> @@ -352,12 +354,18 @@ static struct clocksource clocksource_u300_1mhz = {   * this wraps around for now, since it is just a relative time   * stamp. (Inspired by OMAP implementation.)   */ +static DEFINE_CLOCK_DATA(cd); +  unsigned long long notrace sched_clock(void)  { -	return clocksource_cyc2ns(clocksource_u300_1mhz.read( -				  &clocksource_u300_1mhz), -				  clocksource_u300_1mhz.mult, -				  clocksource_u300_1mhz.shift); +	u32 cyc = readl(U300_TIMER_APP_VBASE + U300_TIMER_APP_GPT2CC); +	return cyc_to_sched_clock(&cd, cyc, (u32)~0); +} + +static void notrace u300_update_sched_clock(void) +{ +	u32 cyc = readl(U300_TIMER_APP_VBASE + U300_TIMER_APP_GPT2CC); +	update_sched_clock(&cd, cyc, (u32)~0);  } @@ -375,6 +383,8 @@ static void __init u300_timer_init(void)  	clk_enable(clk);  	rate = clk_get_rate(clk); +	init_sched_clock(&cd, u300_update_sched_clock, 32, rate); +  	/*  	 * Disable the "OS" and "DD" timers - these are designed for Symbian!  	 * Example usage in cnh1601578 cpu subsystem pd_timer_app.c @@ -412,9 +422,7 @@ static void __init u300_timer_init(void)  	writel(U300_TIMER_APP_EGPT2_TIMER_ENABLE,  		U300_TIMER_APP_VBASE + U300_TIMER_APP_EGPT2); -	clocksource_calc_mult_shift(&clocksource_u300_1mhz, -				    rate, APPTIMER_MIN_RANGE); -	if (clocksource_register(&clocksource_u300_1mhz)) +	if (clocksource_register_hz(&clocksource_u300_1mhz, rate))  		printk(KERN_ERR "timer: failed to initialize clock "  		       "source %s\n", clocksource_u300_1mhz.name); | 
