Loading arch/arm/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -1127,6 +1127,7 @@ config PLAT_VERSATILE config ARM_TIMER_SP804 bool select CLKSRC_MMIO select HAVE_SCHED_CLOCK source arch/arm/mm/Kconfig Loading arch/arm/common/timer-sp.c +16 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include <linux/irq.h> #include <linux/io.h> #include <asm/sched_clock.h> #include <asm/hardware/arm_timer.h> static long __init sp804_get_clock_rate(const char *name) Loading Loading @@ -67,7 +68,16 @@ static long __init sp804_get_clock_rate(const char *name) return rate; } void __init sp804_clocksource_init(void __iomem *base, const char *name) static void __iomem *sched_clock_base; static u32 sp804_read(void) { return ~readl_relaxed(sched_clock_base + TIMER_VALUE); } void __init __sp804_clocksource_and_sched_clock_init(void __iomem *base, const char *name, int use_sched_clock) { long rate = sp804_get_clock_rate(name); Loading @@ -83,6 +93,11 @@ void __init sp804_clocksource_init(void __iomem *base, const char *name) clocksource_mmio_init(base + TIMER_VALUE, name, rate, 200, 32, clocksource_mmio_readl_down); if (use_sched_clock) { sched_clock_base = base; setup_sched_clock(sp804_read, 32, rate); } } Loading arch/arm/include/asm/hardware/timer-sp.h +14 −1 Original line number Diff line number Diff line void sp804_clocksource_init(void __iomem *, const char *); void __sp804_clocksource_and_sched_clock_init(void __iomem *, const char *, int); static inline void sp804_clocksource_init(void __iomem *base, const char *name) { __sp804_clocksource_and_sched_clock_init(base, name, 0); } static inline void sp804_clocksource_and_sched_clock_init(void __iomem *base, const char *name) { __sp804_clocksource_and_sched_clock_init(base, name, 1); } void sp804_clockevents_init(void __iomem *, unsigned int, const char *); Loading
arch/arm/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -1127,6 +1127,7 @@ config PLAT_VERSATILE config ARM_TIMER_SP804 bool select CLKSRC_MMIO select HAVE_SCHED_CLOCK source arch/arm/mm/Kconfig Loading
arch/arm/common/timer-sp.c +16 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include <linux/irq.h> #include <linux/io.h> #include <asm/sched_clock.h> #include <asm/hardware/arm_timer.h> static long __init sp804_get_clock_rate(const char *name) Loading Loading @@ -67,7 +68,16 @@ static long __init sp804_get_clock_rate(const char *name) return rate; } void __init sp804_clocksource_init(void __iomem *base, const char *name) static void __iomem *sched_clock_base; static u32 sp804_read(void) { return ~readl_relaxed(sched_clock_base + TIMER_VALUE); } void __init __sp804_clocksource_and_sched_clock_init(void __iomem *base, const char *name, int use_sched_clock) { long rate = sp804_get_clock_rate(name); Loading @@ -83,6 +93,11 @@ void __init sp804_clocksource_init(void __iomem *base, const char *name) clocksource_mmio_init(base + TIMER_VALUE, name, rate, 200, 32, clocksource_mmio_readl_down); if (use_sched_clock) { sched_clock_base = base; setup_sched_clock(sp804_read, 32, rate); } } Loading
arch/arm/include/asm/hardware/timer-sp.h +14 −1 Original line number Diff line number Diff line void sp804_clocksource_init(void __iomem *, const char *); void __sp804_clocksource_and_sched_clock_init(void __iomem *, const char *, int); static inline void sp804_clocksource_init(void __iomem *base, const char *name) { __sp804_clocksource_and_sched_clock_init(base, name, 0); } static inline void sp804_clocksource_and_sched_clock_init(void __iomem *base, const char *name) { __sp804_clocksource_and_sched_clock_init(base, name, 1); } void sp804_clockevents_init(void __iomem *, unsigned int, const char *);