64bit friendly generic sched_clock() base for 3.12
Subsystems (10)
Hey Thomas, Olof,
Here is the common base changes in Stephen's "64bit friendly
generic sched_clock()" patch series. This common base will be needed so that following patch series can be merged via both the tip/timers/core and arm-soc trees independently.
Please let me know if you have any issues or objections with this set.
thanks
-john
The following changes since commit ad81f0545ef01ea651886dddac4bef6cec930092:
Linux 3.11-rc1 (2013-07-14 15:18:27 -0700)
are available in the git repository at:
git://git.linaro.org/people/jstultz/linux.git
fortglx/3.12/sched-clock64-base
for you to fetch changes up to e7e3ff1bfe9c42ee31172e9afdc0383a9e595e29:
sched_clock: Add support for >32 bit sched_clock (2013-07-30 11:24:21
-0700)
----------------------------------------------------------------
Stephen Boyd (4):
clocksource: Extract max nsec calculation into separate function
sched_clock: Use seqcount instead of rolling our own
sched_clock: Use an hrtimer instead of timer
sched_clock: Add support for >32 bit sched_clock
include/linux/clocksource.h | 2 + include/linux/sched_clock.h | 2 + kernel/time/clocksource.c | 45 ++++++++++++------ kernel/time/sched_clock.c | 111 ++++++++++++++++++++++++-------------------- 4 files changed, 95 insertions(+), 65 deletions(-)
cover Convert arm sched_clock users to sched_clock_register()
This patchset converts all the arm users to sched_clock_register(). It is based on the pull request that this is in reply to. Platform maintainers, please ack/review.
Stephen Boyd (18):
ARM: timer-sp: Switch to sched_clock_register()
ARM: clps711x: Switch to sched_clock_register()
ARM: davinci: Switch to sched_clock_register()
ARM: imx: Switch to sched_clock_register()
ARM: integrator: Switch to sched_clock_register()
ARM: IXP4xx: Switch to sched_clock_register()
ARM: mmp: Switch to sched_clock_register()
ARM: msm: Switch to sched_clock_register()
ARM: OMAP1: Switch to sched_clock_register()
ARM: OMAP2+: Switch to sched_clock_register()
ARM: pxa: Switch to sched_clock_register()
ARM: sa1100: Switch to sched_clock_register()
ARM: u300: Switch to sched_clock_register()
ARM: iop: Switch to sched_clock_register()
ARM: OMAP: Switch to sched_clock_register()
ARM: orion: Switch to sched_clock_register()
ARM: SAMSUNG: Switch to sched_clock_register()
ARM: versatile: Switch to sched_clock_register()
arch/arm/common/timer-sp.c | 4 ++-- arch/arm/mach-clps711x/common.c | 4 ++-- arch/arm/mach-davinci/time.c | 4 ++-- arch/arm/mach-imx/time.c | 4 ++-- arch/arm/mach-integrator/integrator_ap.c | 4 ++-- arch/arm/mach-ixp4xx/common.c | 4 ++-- arch/arm/mach-mmp/time.c | 4 ++-- arch/arm/mach-msm/timer.c | 4 ++-- arch/arm/mach-omap1/time.c | 4 ++-- arch/arm/mach-omap2/timer.c | 4 ++-- arch/arm/mach-pxa/time.c | 4 ++-- arch/arm/mach-sa1100/time.c | 4 ++-- arch/arm/mach-u300/timer.c | 4 ++-- arch/arm/plat-iop/time.c | 4 ++-- arch/arm/plat-omap/counter_32k.c | 4 ++-- arch/arm/plat-orion/time.c | 4 ++-- arch/arm/plat-samsung/samsung-time.c | 4 ++-- arch/arm/plat-versatile/sched-clock.c | 4 ++-- 18 files changed, 36 insertions(+), 36 deletions(-)
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 1/18 ARM: timer-sp: Switch to sched_clock_register()
The 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface. Also mark the read function notrace since we're here and failure to do so would cause ftrace to break.
--- arch/arm/common/timer-sp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/common/timer-sp.c +2 -2
@@ -66,7 +66,7 @@ static long __init sp804_get_clock_rate(struct clk *clk)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 ); }
@@ -104,7 +104,7 @@ void __init __sp804_clocksource_and_sched_clock_init(void __iomem *base,if (use_sched_clock) { sched_clock_base = base; -setup_sched_clock (sp804_read,32 , rate); +sched_clock_register (sp804_read,32 , rate); } }
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 2/18 ARM: clps711x: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-clps711x/common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-clps711x/common.c +2 -2
@@ -259,7 +259,7 @@ asmlinkage void __exception_irq_entry clps711x_handle_irq(struct pt_regs *regs) }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 ); }
@@ -366,7 +366,7 @@ void __init clps711x_timer_init(void) tmp =clps_readl (SYSCON1 ) & ~(SYSCON1_TC1S |SYSCON1_TC1M );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, "clps711x_clocksource", timl, 300, 16,
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 3/18 ARM: davinci: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-davinci/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-davinci/time.c +2 -2
@@ -285,7 +285,7 @@ static struct clocksource clocksource_davinci = {/* * 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 ]); }
@@ -392,7 +392,7 @@ void __init davinci_timer_init(void) davinci_clock_tick_rate)) 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);/* setup clockevent */
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 03/18] ARM: davinci: Switch to sched_clock_register()
Quoted 25 lines · Stephen Boyd
The 32 bit
sched_clockinterface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.Cc Sekhar Nori <[email protected]>Cc Kevin Hilman <[email protected]>Signed-off-by Stephen Boyd <[email protected]>--- arch/arm/mach-davinci/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)arch/arm/mach-davinci/time.c +1
-1@@ -285,7 +285,7 @@ static struct clocksource clocksource_davinci = {/* * 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 ]); }
arch/arm/mach-davinci/time.c void __init davinci_timer_init(void) · line 396
Quoted 6 lines
arch/arm/mach-davinci/time.c +1
-1@@ -392,7 +392,7 @@ void __init davinci_timer_init(void) davinci_clock_tick_rate)) 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);
Please fix the line break to align with open parens. Otherwise looks good. I tested it on DA850 EVM as well. With above fixed:
Thanks,
Sekhar
PATCH 4/18 ARM: imx: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-imx/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-imx/time.c +2 -2
@@ -111,7 +111,7 @@ static void gpt_irq_acknowledge(void)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 ; }
@@ -123,7 +123,7 @@ static int __init mxc_clocksource_init(struct clk *timer_clk) 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 , clocksource_mmio_readl_up); }
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 5/18 ARM: integrator: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-integrator/integrator_ap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-integrator/integrator_ap.c +2 -2
@@ -277,7 +277,7 @@ struct amba_pl010_data ap_uart_data = {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 ); }
@@ -298,7 +298,7 @@ static void integrator_clocksource_init(unsigned long inrate,clocksource_mmio_init (base +TIMER_VALUE ,"timer2" , 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;
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 05/18] ARM: integrator: Switch to sched_clock_register()
Quoted 6 lines · Stephen Boyd
The 32 bit
sched_clockinterface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.Cc Linus Walleij <[email protected]>Signed-off-by Stephen Boyd <[email protected]>
For this patch (given the idea is accepted)
Yours,
Linus Walleij
PATCH 6/18 ARM: IXP4xx: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-ixp4xx/common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-ixp4xx/common.c +2 -2
@@ -448,7 +448,7 @@ void __init ixp4xx_sys_init(void)/* * sched_clock() */ -static u32 notrace ixp4xx_read_sched_clock(void) +static u64 notrace ixp4xx_read_sched_clock(void) {return *IXP4XX_OSTS ; }
@@ -466,7 +466,7 @@ unsigned long ixp4xx_timer_freq = IXP4XX_TIMER_FREQ;EXPORT_SYMBOL (ixp4xx_timer_freq);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 , ixp4xx_clocksource_read);
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 06/18] ARM: IXP4xx: Switch to sched_clock_register()
Quoted 3 lines · Stephen Boyd
The 32 bit
sched_clockinterface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
Don't find anything wrong in this.
Quoted 19 lines
+++
b/arch/arm/mach-ixp4xx/common.carch/arm/mach-ixp4xx/common.c +2
-2@@ -448,7 +448,7 @@ void __init ixp4xx_sys_init(void)/* * sched_clock() */ -static u32 notrace ixp4xx_read_sched_clock(void) +static u64 notrace ixp4xx_read_sched_clock(void) {return *IXP4XX_OSTS ; }@@ -466,7 +466,7 @@ unsigned long ixp4xx_timer_freq = IXP4XX_TIMER_FREQ;EXPORT_SYMBOL (ixp4xx_timer_freq);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 , ixp4xx_clocksource_read);
Signature · 1 line
Krzysztof Halasa
PATCH 7/18 ARM: mmp: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-mmp/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-mmp/time.c +2 -2
@@ -61,7 +61,7 @@ static inline uint32_t timer_read(void)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 (); }
@@ -195,7 +195,7 @@ void __init timer_init(int irq) {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 );
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 8/18 ARM: msm: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-msm/timer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-msm/timer.c +2 -2
@@ -170,7 +170,7 @@ static struct local_timer_ops msm_local_timer_ops __cpuinitdata = { };#endif /* CONFIG_LOCAL_TIMERS */ -static notrace u32 msm_sched_clock_read(void) +static u64 notrace msm_sched_clock_read(void) {return msm_clocksource.read (&msm_clocksource); }
@@ -215,7 +215,7 @@ err: res =clocksource_register_hz (cs, dgt_hz);if (res)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
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 08/18] ARM: msm: Switch to sched_clock_register()
Quoted 9 lines · Stephen Boyd
The 32 bit
sched_clockinterface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.Cc David Brown <[email protected]>Signed-off-by Stephen Boyd <[email protected]>---
arch/arm/mach-msm/timer.c| 4 ++--1 file changed, 2 insertions(+), 2 deletions(-)
Signature · 3 lines
sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 9/18 ARM: OMAP1: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-omap1/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-omap1/time.c +2 -2
@@ -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 ); }
@@ -193,7 +193,7 @@ static void __init omap_init_clocksource(unsigned long rate)"%s: can't register clocksource!\n" ;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,300 ,32 , clocksource_mmio_readl_down))
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 10/18 ARM: OMAP2+: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-omap2/timer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-omap2/timer.c +2 -2
@@ -369,7 +369,7 @@ static struct clocksource clocksource_gpt = { .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; -static u32 notrace dmtimer_read_sched_clock(void) +static u64 notrace dmtimer_read_sched_clock(void) {if (clksrc.reserved) return __omap_dm_timer_read_counter(&clksrc,
@@ -461,7 +461,7 @@ static void __init omap2_gptimer_clocksource_init(int gptimer_id,__omap_dm_timer_load_start (&clksrc,OMAP_TIMER_CTRL_ST |OMAP_TIMER_CTRL_AR ,0 ,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)) pr_err("Could not register clocksource %s\n",
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 10/18] ARM: OMAP2+: Switch to sched_clock_register()
Quoted 10 lines · Stephen Boyd
The 32 bit
sched_clockinterface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.Cc Tony Lindgren <[email protected]>Signed-off-by Stephen Boyd <[email protected]>--- arch/arm/mach-omap2/timer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
PATCH 11/18 ARM: pxa: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-pxa/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-pxa/time.c +2 -2
@@ -33,7 +33,7 @@* 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 ); }
@@ -149,7 +149,7 @@ void __init pxa_timer_init(void)writel_relaxed (0 ,OIER );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 );
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 12/18 ARM: sa1100: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-sa1100/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-sa1100/time.c +2 -2
@@ -20,7 +20,7 @@#include <mach/hardware.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 ); }
@@ -122,7 +122,7 @@ void __init sa1100_timer_init(void)writel_relaxed (0 ,OIER );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 );
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 13/18 ARM: u300: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/mach-u300/timer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/mach-u300/timer.c +2 -2
@@ -341,7 +341,7 @@ static struct irqaction u300_timer_irq = {* 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 ); }
@@ -380,7 +380,7 @@ static void __init u300_timer_init_of(struct device_node *np)clk_prepare_enable (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.freq = rate;
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 13/18] ARM: u300: Switch to sched_clock_register()
Quoted 6 lines · Stephen Boyd
The 32 bit
sched_clockinterface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.Cc Linus Walleij <[email protected]>Signed-off-by Stephen Boyd <[email protected]>
Yours,
Linus Walleij
PATCH 14/18 ARM: iop: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/plat-iop/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/plat-iop/time.c +2 -2
@@ -54,7 +54,7 @@ static struct clocksource iop_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 (); }
@@ -142,7 +142,7 @@ void __init iop_init_time(unsigned long tick_rate) {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 ); iop_tick_rate = tick_rate;
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 15/18 ARM: OMAP: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/plat-omap/counter_32k.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/plat-omap/counter_32k.c +2 -2
@@ -38,7 +38,7 @@*/ 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 ; }
@@ -115,7 +115,7 @@ int __init omap_init_clocksource_32k(void __iomem *vbase)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);pr_info ("OMAP clocksource: 32k_counter at 32768 Hz\n" );
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 16/18 ARM: orion: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/plat-orion/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/plat-orion/time.c +2 -2
@@ -60,7 +60,7 @@ static u32 ticks_per_jiffy;* 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 ); }
@@ -201,7 +201,7 @@ orion_time_init(void __iomem *_bridge_base, u32 _bridge_timer1_clr_mask,/* * 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
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 16/18] ARM: orion: Switch to sched_clock_register()
Quoted 10 lines · Stephen Boyd
The 32 bit
sched_clockinterface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.Cc Jason Cooper <[email protected]>Cc Andrew Lunn <[email protected]>Signed-off-by Stephen Boyd <[email protected]>--- arch/arm/plat-orion/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
thx,
Jason.
PATCH 17/18 ARM: SAMSUNG: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/plat-samsung/samsung-time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/plat-samsung/samsung-time.c +2 -2
@@ -312,7 +312,7 @@ static void __iomem *samsung_timer_reg(void)* 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 ();
@@ -337,7 +337,7 @@ static void __init samsung_clocksource_init(void)samsung_time_setup (timer_source.source_id,TCNT_MAX );samsung_time_start (timer_source.source_id,PERIODIC ); -setup_sched_clock (samsung_read_sched_clock,TSIZE , clock_rate); +sched_clock_register (samsung_read_sched_clock,TSIZE , clock_rate);if (clocksource_mmio_init (samsung_timer_reg (),"samsung_clocksource_timer" , clock_rate,250 ,TSIZE , clocksource_mmio_readl_down))
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 17/18] ARM: SAMSUNG: Switch to sched_clock_register()
Quoted 6 lines · Stephen Boyd
The 32 bit
sched_clockinterface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.Cc Ben Dooks<[email protected]>Cc Kukjin Kim<[email protected]>
Thanks,
Kukjin
Quoted 27 lines
Signed-off-by Stephen Boyd<[email protected]>--- arch/arm/plat-samsung/samsung-time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)arch/arm/plat-samsung/samsung-time.c +2
-2@@ -312,7 +312,7 @@ static void __iomem *samsung_timer_reg(void)* 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 ();@@ -337,7 +337,7 @@ static void __init samsung_clocksource_init(void)samsung_time_setup (timer_source.source_id,TCNT_MAX );samsung_time_start (timer_source.source_id,PERIODIC ); -setup_sched_clock (samsung_read_sched_clock,TSIZE , clock_rate); +sched_clock_register (samsung_read_sched_clock,TSIZE , clock_rate);if (clocksource_mmio_init (samsung_timer_reg (),"samsung_clocksource_timer" , clock_rate,250 ,TSIZE , clocksource_mmio_readl_down))
PATCH 18/18 ARM: versatile: Switch to sched_clock_register()
In reply to Stephen BoydThe 32 bit sched_clock interface now supports 64 bits. Upgrade to the 64 bit function to allow us to remove the 32 bit registration interface.
--- arch/arm/plat-versatile/sched-clock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/plat-versatile/sched-clock.c +2 -2
@@ -26,7 +26,7 @@static void __iomem *ctr; -static u32 notrace versatile_read_sched_clock(void) +static u64 notrace versatile_read_sched_clock(void) {if (ctr)return readl (ctr);
@@ -37,5 +37,5 @@ static u32 notrace versatile_read_sched_clock(void)void __init versatile_sched_clock_init (void __iomem *reg,unsigned long rate) { ctr = reg; -setup_sched_clock (versatile_read_sched_clock,32 , rate); +sched_clock_register (versatile_read_sched_clock,32 , rate); }
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Quoted 34 lines · John Stultz
Hey Thomas, Olof,
Here is the common base changes in Stephen's "64bit friendly
genericsched_clock()" patch series. This common base will be needed so that following patch series can be merged via both the tip/timers/core and arm-soc trees independently.Please let me know if you have any issues or objections with this set.
thanks
-johnThe following changes since commit
ad81f0545ef01ea651886dddac4bef6cec930092:Linux 3.11-rc1 (2013-07-14 15:18:27 -0700)
are available in the git repository at:
git://git.linaro.org/people/jstultz/linux.git
fortglx/3.12/sched-clock64-basefor you to fetch changes up to
e7e3ff1bfe9c42ee31172e9afdc0383a9e595e29:
sched_clock: Add support for >32 bitsched_clock(2013-07-30
11:24:21 -0700)----------------------------------------------------------------
Stephen Boyd (4):
clocksource: Extract max nsec calculation into separate function
sched_clock: Use seqcount instead of rolling our own
sched_clock: Use an hrtimer instead of timer
sched_clock: Add support for >32 bitsched_clock
Quoted 6 lines
include/linux/clocksource.h | 2 + include/linux/sched_clock.h | 2 + kernel/time/clocksource.c | 45 ++++++++++++------ kernel/time/sched_clock.c | 111 ++++++++++++++++++++++++-------------------- 4 files changed, 95 insertions(+), 65 deletions(-)
Ping? Thomas?
thanks
-john