From: John Stultz Date: Thu, 26 Sep 2013 19:05:54 +0000 (-0700) Subject: Merge remote-tracking branch 'tip/timers/core' into fordlezcano/3.13/sched-clock64... X-Git-Tag: v3.13-rc1~147^2~11^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=17deb9c2db01c7813611291d251d8c7dbdfd3c9d;p=platform%2Fkernel%2Flinux-stable.git Merge remote-tracking branch 'tip/timers/core' into fordlezcano/3.13/sched-clock64-conversion Update to tip/timers/core and resolve minor conflict. Conflicts: drivers/clocksource/samsung_pwm_timer.c Signed-off-by: John Stultz --- 17deb9c2db01c7813611291d251d8c7dbdfd3c9d diff --cc drivers/clocksource/samsung_pwm_timer.c index 09e8bc7,ab29476..85082e8 --- a/drivers/clocksource/samsung_pwm_timer.c +++ b/drivers/clocksource/samsung_pwm_timer.c @@@ -310,14 -331,9 +331,9 @@@ static struct clocksource samsung_clock * this wraps around for now, since it is just a relative time * stamp. (Inspired by U300 implementation.) */ -static u32 notrace samsung_read_sched_clock(void) +static u64 notrace samsung_read_sched_clock(void) { - void __iomem *reg = samsung_timer_reg(); - - if (!reg) - return 0; - - return ~__raw_readl(reg); + return samsung_clocksource_read(NULL); } static void __init samsung_clocksource_init(void) @@@ -337,12 -352,16 +352,16 @@@ samsung_time_setup(pwm.source_id, pwm.tcnt_max); samsung_time_start(pwm.source_id, true); + if (pwm.source_id == 4) + pwm.source_reg = pwm.base + 0x40; + else + pwm.source_reg = pwm.base + pwm.source_id * 0x0c + 0x14; + - setup_sched_clock(samsung_read_sched_clock, + sched_clock_register(samsung_read_sched_clock, pwm.variant.bits, clock_rate); - ret = clocksource_mmio_init(reg, "samsung_clocksource_timer", - clock_rate, 250, pwm.variant.bits, - clocksource_mmio_readl_down); + samsung_clocksource.mask = CLOCKSOURCE_MASK(pwm.variant.bits); + ret = clocksource_register_hz(&samsung_clocksource, clock_rate); if (ret) panic("samsung_clocksource_timer: can't register clocksource\n"); } diff --cc drivers/clocksource/time-armada-370-xp.c index 2bec8dc,0198504..d8e47e5 --- a/drivers/clocksource/time-armada-370-xp.c +++ b/drivers/clocksource/time-armada-370-xp.c @@@ -69,9 -82,21 +82,21 @@@ static bool timer25Mhz = true */ static u32 ticks_per_jiffy; - static struct clock_event_device __percpu **percpu_armada_370_xp_evt; + static struct clock_event_device __percpu *armada_370_xp_evt; + + static void timer_ctrl_clrset(u32 clr, u32 set) + { + writel((readl(timer_base + TIMER_CTRL_OFF) & ~clr) | set, + timer_base + TIMER_CTRL_OFF); + } + + static void local_timer_ctrl_clrset(u32 clr, u32 set) + { + writel((readl(local_base + TIMER_CTRL_OFF) & ~clr) | set, + local_base + TIMER_CTRL_OFF); + } -static u32 notrace armada_370_xp_read_sched_clock(void) +static u64 notrace armada_370_xp_read_sched_clock(void) { return ~readl(timer_base + TIMER0_VAL_OFF); }