Commit b8969ef5 authored by Kevin Hilman's avatar Kevin Hilman

Merge branch 'soc/sched_clock' into next/soc

From Stephen Boyd:
* soc/sched_clock:
  ARM: versatile: Switch to sched_clock_register()
  ARM: orion: Switch to sched_clock_register()
  ARM: OMAP: Switch to sched_clock_register()
  ARM: iop: Switch to sched_clock_register()
  ARM: u300: Switch to sched_clock_register()
  ARM: sa1100: Switch to sched_clock_register()
  ARM: pxa: Switch to sched_clock_register()
  ARM: OMAP2+: Switch to sched_clock_register()
  ARM: OMAP1: Switch to sched_clock_register()
  ARM: msm: Switch to sched_clock_register()
  ARM: mmp: Switch to sched_clock_register()
  ARM: IXP4xx: Switch to sched_clock_register()
  ARM: integrator: Switch to sched_clock_register()
  ARM: imx: Switch to sched_clock_register()
  ARM: davinci: Switch to sched_clock_register()
  ARM: clps711x: Switch to sched_clock_register()
  ARM: timer-sp: Switch to sched_clock_register()
Signed-off-by: default avatarKevin Hilman <khilman@linaro.org>
parents b19e11fb d25f1d5a
...@@ -66,7 +66,7 @@ static long __init sp804_get_clock_rate(struct clk *clk) ...@@ -66,7 +66,7 @@ static long __init sp804_get_clock_rate(struct clk *clk)
static void __iomem *sched_clock_base; static void __iomem *sched_clock_base;
static u32 sp804_read(void) static u64 notrace sp804_read(void)
{ {
return ~readl_relaxed(sched_clock_base + TIMER_VALUE); return ~readl_relaxed(sched_clock_base + TIMER_VALUE);
} }
...@@ -104,7 +104,7 @@ void __init __sp804_clocksource_and_sched_clock_init(void __iomem *base, ...@@ -104,7 +104,7 @@ void __init __sp804_clocksource_and_sched_clock_init(void __iomem *base,
if (use_sched_clock) { if (use_sched_clock) {
sched_clock_base = base; sched_clock_base = base;
setup_sched_clock(sp804_read, 32, rate); sched_clock_register(sp804_read, 32, rate);
} }
} }
......
...@@ -259,7 +259,7 @@ asmlinkage void __exception_irq_entry clps711x_handle_irq(struct pt_regs *regs) ...@@ -259,7 +259,7 @@ asmlinkage void __exception_irq_entry clps711x_handle_irq(struct pt_regs *regs)
} while (1); } while (1);
} }
static u32 notrace clps711x_sched_clock_read(void) static u64 notrace clps711x_sched_clock_read(void)
{ {
return ~readw_relaxed(CLPS711X_VIRT_BASE + TC1D); return ~readw_relaxed(CLPS711X_VIRT_BASE + TC1D);
} }
...@@ -366,7 +366,7 @@ void __init clps711x_timer_init(void) ...@@ -366,7 +366,7 @@ void __init clps711x_timer_init(void)
tmp = clps_readl(SYSCON1) & ~(SYSCON1_TC1S | SYSCON1_TC1M); tmp = clps_readl(SYSCON1) & ~(SYSCON1_TC1S | SYSCON1_TC1M);
clps_writel(tmp, SYSCON1); clps_writel(tmp, SYSCON1);
setup_sched_clock(clps711x_sched_clock_read, 16, timl); sched_clock_register(clps711x_sched_clock_read, 16, timl);
clocksource_mmio_init(CLPS711X_VIRT_BASE + TC1D, clocksource_mmio_init(CLPS711X_VIRT_BASE + TC1D,
"clps711x_clocksource", timl, 300, 16, "clps711x_clocksource", timl, 300, 16,
......
...@@ -285,7 +285,7 @@ static struct clocksource clocksource_davinci = { ...@@ -285,7 +285,7 @@ static struct clocksource clocksource_davinci = {
/* /*
* Overwrite weak default sched_clock with something more precise * Overwrite weak default sched_clock with something more precise
*/ */
static u32 notrace davinci_read_sched_clock(void) static u64 notrace davinci_read_sched_clock(void)
{ {
return timer32_read(&timers[TID_CLOCKSOURCE]); return timer32_read(&timers[TID_CLOCKSOURCE]);
} }
...@@ -391,7 +391,7 @@ void __init davinci_timer_init(void) ...@@ -391,7 +391,7 @@ void __init davinci_timer_init(void)
davinci_clock_tick_rate)) davinci_clock_tick_rate))
printk(err, clocksource_davinci.name); printk(err, clocksource_davinci.name);
setup_sched_clock(davinci_read_sched_clock, 32, sched_clock_register(davinci_read_sched_clock, 32,
davinci_clock_tick_rate); davinci_clock_tick_rate);
/* setup clockevent */ /* setup clockevent */
......
...@@ -111,7 +111,7 @@ static void gpt_irq_acknowledge(void) ...@@ -111,7 +111,7 @@ static void gpt_irq_acknowledge(void)
static void __iomem *sched_clock_reg; static void __iomem *sched_clock_reg;
static u32 notrace mxc_read_sched_clock(void) static u64 notrace mxc_read_sched_clock(void)
{ {
return sched_clock_reg ? __raw_readl(sched_clock_reg) : 0; return sched_clock_reg ? __raw_readl(sched_clock_reg) : 0;
} }
...@@ -123,7 +123,7 @@ static int __init mxc_clocksource_init(struct clk *timer_clk) ...@@ -123,7 +123,7 @@ static int __init mxc_clocksource_init(struct clk *timer_clk)
sched_clock_reg = reg; sched_clock_reg = reg;
setup_sched_clock(mxc_read_sched_clock, 32, c); sched_clock_register(mxc_read_sched_clock, 32, c);
return clocksource_mmio_init(reg, "mxc_timer1", c, 200, 32, return clocksource_mmio_init(reg, "mxc_timer1", c, 200, 32,
clocksource_mmio_readl_up); clocksource_mmio_readl_up);
} }
......
...@@ -277,7 +277,7 @@ struct amba_pl010_data ap_uart_data = { ...@@ -277,7 +277,7 @@ struct amba_pl010_data ap_uart_data = {
static unsigned long timer_reload; static unsigned long timer_reload;
static u32 notrace integrator_read_sched_clock(void) static u64 notrace integrator_read_sched_clock(void)
{ {
return -readl((void __iomem *) TIMER2_VA_BASE + TIMER_VALUE); return -readl((void __iomem *) TIMER2_VA_BASE + TIMER_VALUE);
} }
...@@ -298,7 +298,7 @@ static void integrator_clocksource_init(unsigned long inrate, ...@@ -298,7 +298,7 @@ static void integrator_clocksource_init(unsigned long inrate,
clocksource_mmio_init(base + TIMER_VALUE, "timer2", clocksource_mmio_init(base + TIMER_VALUE, "timer2",
rate, 200, 16, clocksource_mmio_readl_down); rate, 200, 16, clocksource_mmio_readl_down);
setup_sched_clock(integrator_read_sched_clock, 16, rate); sched_clock_register(integrator_read_sched_clock, 16, rate);
} }
static void __iomem * clkevt_base; static void __iomem * clkevt_base;
......
...@@ -475,7 +475,7 @@ void __init ixp4xx_sys_init(void) ...@@ -475,7 +475,7 @@ void __init ixp4xx_sys_init(void)
/* /*
* sched_clock() * sched_clock()
*/ */
static u32 notrace ixp4xx_read_sched_clock(void) static u64 notrace ixp4xx_read_sched_clock(void)
{ {
return *IXP4XX_OSTS; return *IXP4XX_OSTS;
} }
...@@ -493,7 +493,7 @@ unsigned long ixp4xx_timer_freq = IXP4XX_TIMER_FREQ; ...@@ -493,7 +493,7 @@ unsigned long ixp4xx_timer_freq = IXP4XX_TIMER_FREQ;
EXPORT_SYMBOL(ixp4xx_timer_freq); EXPORT_SYMBOL(ixp4xx_timer_freq);
static void __init ixp4xx_clocksource_init(void) static void __init ixp4xx_clocksource_init(void)
{ {
setup_sched_clock(ixp4xx_read_sched_clock, 32, ixp4xx_timer_freq); sched_clock_register(ixp4xx_read_sched_clock, 32, ixp4xx_timer_freq);
clocksource_mmio_init(NULL, "OSTS", ixp4xx_timer_freq, 200, 32, clocksource_mmio_init(NULL, "OSTS", ixp4xx_timer_freq, 200, 32,
ixp4xx_clocksource_read); ixp4xx_clocksource_read);
......
...@@ -61,7 +61,7 @@ static inline uint32_t timer_read(void) ...@@ -61,7 +61,7 @@ static inline uint32_t timer_read(void)
return __raw_readl(mmp_timer_base + TMR_CVWR(1)); return __raw_readl(mmp_timer_base + TMR_CVWR(1));
} }
static u32 notrace mmp_read_sched_clock(void) static u64 notrace mmp_read_sched_clock(void)
{ {
return timer_read(); return timer_read();
} }
...@@ -195,7 +195,7 @@ void __init timer_init(int irq) ...@@ -195,7 +195,7 @@ void __init timer_init(int irq)
{ {
timer_config(); timer_config();
setup_sched_clock(mmp_read_sched_clock, 32, CLOCK_TICK_RATE); sched_clock_register(mmp_read_sched_clock, 32, CLOCK_TICK_RATE);
ckevt.cpumask = cpumask_of(0); ckevt.cpumask = cpumask_of(0);
......
...@@ -187,7 +187,7 @@ static struct notifier_block msm_timer_cpu_nb = { ...@@ -187,7 +187,7 @@ static struct notifier_block msm_timer_cpu_nb = {
.notifier_call = msm_timer_cpu_notify, .notifier_call = msm_timer_cpu_notify,
}; };
static notrace u32 msm_sched_clock_read(void) static u64 notrace msm_sched_clock_read(void)
{ {
return msm_clocksource.read(&msm_clocksource); return msm_clocksource.read(&msm_clocksource);
} }
...@@ -229,7 +229,7 @@ static void __init msm_timer_init(u32 dgt_hz, int sched_bits, int irq, ...@@ -229,7 +229,7 @@ static void __init msm_timer_init(u32 dgt_hz, int sched_bits, int irq,
res = clocksource_register_hz(cs, dgt_hz); res = clocksource_register_hz(cs, dgt_hz);
if (res) if (res)
pr_err("clocksource_register failed\n"); pr_err("clocksource_register failed\n");
setup_sched_clock(msm_sched_clock_read, sched_bits, dgt_hz); sched_clock_register(msm_sched_clock_read, sched_bits, dgt_hz);
} }
#ifdef CONFIG_OF #ifdef CONFIG_OF
......
...@@ -181,7 +181,7 @@ static __init void omap_init_mpu_timer(unsigned long rate) ...@@ -181,7 +181,7 @@ static __init void omap_init_mpu_timer(unsigned long rate)
* --------------------------------------------------------------------------- * ---------------------------------------------------------------------------
*/ */
static u32 notrace omap_mpu_read_sched_clock(void) static u64 notrace omap_mpu_read_sched_clock(void)
{ {
return ~omap_mpu_timer_read(1); return ~omap_mpu_timer_read(1);
} }
...@@ -193,7 +193,7 @@ static void __init omap_init_clocksource(unsigned long rate) ...@@ -193,7 +193,7 @@ static void __init omap_init_clocksource(unsigned long rate)
"%s: can't register clocksource!\n"; "%s: can't register clocksource!\n";
omap_mpu_timer_start(1, ~0, 1); omap_mpu_timer_start(1, ~0, 1);
setup_sched_clock(omap_mpu_read_sched_clock, 32, rate); sched_clock_register(omap_mpu_read_sched_clock, 32, rate);
if (clocksource_mmio_init(&timer->read_tim, "mpu_timer2", rate, if (clocksource_mmio_init(&timer->read_tim, "mpu_timer2", rate,
300, 32, clocksource_mmio_readl_down)) 300, 32, clocksource_mmio_readl_down))
......
...@@ -379,7 +379,7 @@ static struct clocksource clocksource_gpt = { ...@@ -379,7 +379,7 @@ static struct clocksource clocksource_gpt = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS, .flags = CLOCK_SOURCE_IS_CONTINUOUS,
}; };
static u32 notrace dmtimer_read_sched_clock(void) static u64 notrace dmtimer_read_sched_clock(void)
{ {
if (clksrc.reserved) if (clksrc.reserved)
return __omap_dm_timer_read_counter(&clksrc, return __omap_dm_timer_read_counter(&clksrc,
...@@ -471,7 +471,7 @@ static void __init omap2_gptimer_clocksource_init(int gptimer_id, ...@@ -471,7 +471,7 @@ static void __init omap2_gptimer_clocksource_init(int gptimer_id,
__omap_dm_timer_load_start(&clksrc, __omap_dm_timer_load_start(&clksrc,
OMAP_TIMER_CTRL_ST | OMAP_TIMER_CTRL_AR, 0, OMAP_TIMER_CTRL_ST | OMAP_TIMER_CTRL_AR, 0,
OMAP_TIMER_NONPOSTED); OMAP_TIMER_NONPOSTED);
setup_sched_clock(dmtimer_read_sched_clock, 32, clksrc.rate); sched_clock_register(dmtimer_read_sched_clock, 32, clksrc.rate);
if (clocksource_register_hz(&clocksource_gpt, clksrc.rate)) if (clocksource_register_hz(&clocksource_gpt, clksrc.rate))
pr_err("Could not register clocksource %s\n", pr_err("Could not register clocksource %s\n",
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
* calls to sched_clock() which should always be the case in practice. * calls to sched_clock() which should always be the case in practice.
*/ */
static u32 notrace pxa_read_sched_clock(void) static u64 notrace pxa_read_sched_clock(void)
{ {
return readl_relaxed(OSCR); return readl_relaxed(OSCR);
} }
...@@ -149,7 +149,7 @@ void __init pxa_timer_init(void) ...@@ -149,7 +149,7 @@ void __init pxa_timer_init(void)
writel_relaxed(0, OIER); writel_relaxed(0, OIER);
writel_relaxed(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR); writel_relaxed(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR);
setup_sched_clock(pxa_read_sched_clock, 32, clock_tick_rate); sched_clock_register(pxa_read_sched_clock, 32, clock_tick_rate);
ckevt_pxa_osmr0.cpumask = cpumask_of(0); ckevt_pxa_osmr0.cpumask = cpumask_of(0);
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/irqs.h> #include <mach/irqs.h>
static u32 notrace sa1100_read_sched_clock(void) static u64 notrace sa1100_read_sched_clock(void)
{ {
return readl_relaxed(OSCR); return readl_relaxed(OSCR);
} }
...@@ -122,7 +122,7 @@ void __init sa1100_timer_init(void) ...@@ -122,7 +122,7 @@ void __init sa1100_timer_init(void)
writel_relaxed(0, OIER); writel_relaxed(0, OIER);
writel_relaxed(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR); writel_relaxed(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR);
setup_sched_clock(sa1100_read_sched_clock, 32, 3686400); sched_clock_register(sa1100_read_sched_clock, 32, 3686400);
ckevt_sa1100_osmr0.cpumask = cpumask_of(0); ckevt_sa1100_osmr0.cpumask = cpumask_of(0);
......
...@@ -341,7 +341,7 @@ static struct irqaction u300_timer_irq = { ...@@ -341,7 +341,7 @@ static struct irqaction u300_timer_irq = {
* stamp. (Inspired by OMAP implementation.) * stamp. (Inspired by OMAP implementation.)
*/ */
static u32 notrace u300_read_sched_clock(void) static u64 notrace u300_read_sched_clock(void)
{ {
return readl(u300_timer_base + U300_TIMER_APP_GPT2CC); return readl(u300_timer_base + U300_TIMER_APP_GPT2CC);
} }
...@@ -379,7 +379,7 @@ static void __init u300_timer_init_of(struct device_node *np) ...@@ -379,7 +379,7 @@ static void __init u300_timer_init_of(struct device_node *np)
clk_prepare_enable(clk); clk_prepare_enable(clk);
rate = clk_get_rate(clk); rate = clk_get_rate(clk);
setup_sched_clock(u300_read_sched_clock, 32, rate); sched_clock_register(u300_read_sched_clock, 32, rate);
u300_delay_timer.read_current_timer = &u300_read_current_timer; u300_delay_timer.read_current_timer = &u300_read_current_timer;
u300_delay_timer.freq = rate; u300_delay_timer.freq = rate;
......
...@@ -54,7 +54,7 @@ static struct clocksource iop_clocksource = { ...@@ -54,7 +54,7 @@ static struct clocksource iop_clocksource = {
/* /*
* IOP sched_clock() implementation via its clocksource. * IOP sched_clock() implementation via its clocksource.
*/ */
static u32 notrace iop_read_sched_clock(void) static u64 notrace iop_read_sched_clock(void)
{ {
return 0xffffffffu - read_tcr1(); return 0xffffffffu - read_tcr1();
} }
...@@ -142,7 +142,7 @@ void __init iop_init_time(unsigned long tick_rate) ...@@ -142,7 +142,7 @@ void __init iop_init_time(unsigned long tick_rate)
{ {
u32 timer_ctl; u32 timer_ctl;
setup_sched_clock(iop_read_sched_clock, 32, tick_rate); sched_clock_register(iop_read_sched_clock, 32, tick_rate);
ticks_per_jiffy = DIV_ROUND_CLOSEST(tick_rate, HZ); ticks_per_jiffy = DIV_ROUND_CLOSEST(tick_rate, HZ);
iop_tick_rate = tick_rate; iop_tick_rate = tick_rate;
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
*/ */
static void __iomem *sync32k_cnt_reg; static void __iomem *sync32k_cnt_reg;
static u32 notrace omap_32k_read_sched_clock(void) static u64 notrace omap_32k_read_sched_clock(void)
{ {
return sync32k_cnt_reg ? __raw_readl(sync32k_cnt_reg) : 0; return sync32k_cnt_reg ? __raw_readl(sync32k_cnt_reg) : 0;
} }
...@@ -115,7 +115,7 @@ int __init omap_init_clocksource_32k(void __iomem *vbase) ...@@ -115,7 +115,7 @@ int __init omap_init_clocksource_32k(void __iomem *vbase)
return ret; return ret;
} }
setup_sched_clock(omap_32k_read_sched_clock, 32, 32768); sched_clock_register(omap_32k_read_sched_clock, 32, 32768);
register_persistent_clock(NULL, omap_read_persistent_clock); register_persistent_clock(NULL, omap_read_persistent_clock);
pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n"); pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n");
......
...@@ -60,7 +60,7 @@ static u32 ticks_per_jiffy; ...@@ -60,7 +60,7 @@ static u32 ticks_per_jiffy;
* at least 7.5ns (133MHz TCLK). * at least 7.5ns (133MHz TCLK).
*/ */
static u32 notrace orion_read_sched_clock(void) static u64 notrace orion_read_sched_clock(void)
{ {
return ~readl(timer_base + TIMER0_VAL_OFF); return ~readl(timer_base + TIMER0_VAL_OFF);
} }
...@@ -201,7 +201,7 @@ orion_time_init(void __iomem *_bridge_base, u32 _bridge_timer1_clr_mask, ...@@ -201,7 +201,7 @@ orion_time_init(void __iomem *_bridge_base, u32 _bridge_timer1_clr_mask,
/* /*
* Set scale and timer for sched_clock. * Set scale and timer for sched_clock.
*/ */
setup_sched_clock(orion_read_sched_clock, 32, tclk); sched_clock_register(orion_read_sched_clock, 32, tclk);
/* /*
* Setup free-running clocksource timer (interrupts * Setup free-running clocksource timer (interrupts
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
static void __iomem *ctr; static void __iomem *ctr;
static u32 notrace versatile_read_sched_clock(void) static u64 notrace versatile_read_sched_clock(void)
{ {
if (ctr) if (ctr)
return readl(ctr); return readl(ctr);
...@@ -37,5 +37,5 @@ static u32 notrace versatile_read_sched_clock(void) ...@@ -37,5 +37,5 @@ static u32 notrace versatile_read_sched_clock(void)
void __init versatile_sched_clock_init(void __iomem *reg, unsigned long rate) void __init versatile_sched_clock_init(void __iomem *reg, unsigned long rate)
{ {
ctr = reg; ctr = reg;
setup_sched_clock(versatile_read_sched_clock, 32, rate); sched_clock_register(versatile_read_sched_clock, 32, rate);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment