diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-05-12 10:31:13 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-05-23 13:04:53 -0400 |
commit | 57cc4f7de2b896ca79185e337eaf7ff9906c4656 (patch) | |
tree | d572d278dfc7d319518b73103905574f0a4b06e2 | |
parent | 7ff550de99141cbd3be0129d563cc4554fdde9f6 (diff) |
clockevents: ARM sp804: allow clockevent name to be specified
This allows platforms to specify the clcokevent name upon registration.
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/common/timer-sp.c | 9 | ||||
-rw-r--r-- | arch/arm/include/asm/hardware/timer-sp.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-integrator/integrator_cp.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-realview/core.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-versatile/core.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-vexpress/ct-ca9x4.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-vexpress/v2m.c | 3 |
7 files changed, 13 insertions, 10 deletions
diff --git a/arch/arm/common/timer-sp.c b/arch/arm/common/timer-sp.c index 166f892a24d5..5b7e8c9046be 100644 --- a/arch/arm/common/timer-sp.c +++ b/arch/arm/common/timer-sp.c | |||
@@ -139,7 +139,6 @@ static int sp804_set_next_event(unsigned long next, | |||
139 | } | 139 | } |
140 | 140 | ||
141 | static struct clock_event_device sp804_clockevent = { | 141 | static struct clock_event_device sp804_clockevent = { |
142 | .name = "timer0", | ||
143 | .shift = 32, | 142 | .shift = 32, |
144 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, | 143 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, |
145 | .set_mode = sp804_set_mode, | 144 | .set_mode = sp804_set_mode, |
@@ -155,17 +154,19 @@ static struct irqaction sp804_timer_irq = { | |||
155 | .dev_id = &sp804_clockevent, | 154 | .dev_id = &sp804_clockevent, |
156 | }; | 155 | }; |
157 | 156 | ||
158 | void __init sp804_clockevents_init(void __iomem *base, unsigned int timer_irq) | 157 | void __init sp804_clockevents_init(void __iomem *base, unsigned int irq, |
158 | const char *name) | ||
159 | { | 159 | { |
160 | struct clock_event_device *evt = &sp804_clockevent; | 160 | struct clock_event_device *evt = &sp804_clockevent; |
161 | 161 | ||
162 | clkevt_base = base; | 162 | clkevt_base = base; |
163 | 163 | ||
164 | evt->irq = timer_irq; | 164 | evt->name = name; |
165 | evt->irq = irq; | ||
165 | evt->mult = div_sc(TIMER_FREQ_KHZ, NSEC_PER_MSEC, evt->shift); | 166 | evt->mult = div_sc(TIMER_FREQ_KHZ, NSEC_PER_MSEC, evt->shift); |
166 | evt->max_delta_ns = clockevent_delta2ns(0xffffffff, evt); | 167 | evt->max_delta_ns = clockevent_delta2ns(0xffffffff, evt); |
167 | evt->min_delta_ns = clockevent_delta2ns(0xf, evt); | 168 | evt->min_delta_ns = clockevent_delta2ns(0xf, evt); |
168 | 169 | ||
169 | setup_irq(timer_irq, &sp804_timer_irq); | 170 | setup_irq(irq, &sp804_timer_irq); |
170 | clockevents_register_device(evt); | 171 | clockevents_register_device(evt); |
171 | } | 172 | } |
diff --git a/arch/arm/include/asm/hardware/timer-sp.h b/arch/arm/include/asm/hardware/timer-sp.h index 11c386bbbf36..4384d81eee79 100644 --- a/arch/arm/include/asm/hardware/timer-sp.h +++ b/arch/arm/include/asm/hardware/timer-sp.h | |||
@@ -1,2 +1,2 @@ | |||
1 | void sp804_clocksource_init(void __iomem *, const char *); | 1 | void sp804_clocksource_init(void __iomem *, const char *); |
2 | void sp804_clockevents_init(void __iomem *, unsigned int); | 2 | void sp804_clockevents_init(void __iomem *, unsigned int, const char *); |
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 8fb8afb014ef..c4914c69462b 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
@@ -484,7 +484,7 @@ static void __init intcp_timer_init(void) | |||
484 | writel(0, TIMER2_VA_BASE + TIMER_CTRL); | 484 | writel(0, TIMER2_VA_BASE + TIMER_CTRL); |
485 | 485 | ||
486 | sp804_clocksource_init(TIMER2_VA_BASE, "timer2"); | 486 | sp804_clocksource_init(TIMER2_VA_BASE, "timer2"); |
487 | sp804_clockevents_init(TIMER1_VA_BASE, IRQ_TIMERINT1); | 487 | sp804_clockevents_init(TIMER1_VA_BASE, IRQ_TIMERINT1, "timer1"); |
488 | } | 488 | } |
489 | 489 | ||
490 | static struct sys_timer cp_timer = { | 490 | static struct sys_timer cp_timer = { |
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index 6a9cd1eb4c2e..9f5155507d27 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c | |||
@@ -553,7 +553,7 @@ void __init realview_timer_init(unsigned int timer_irq) | |||
553 | writel(0, timer3_va_base + TIMER_CTRL); | 553 | writel(0, timer3_va_base + TIMER_CTRL); |
554 | 554 | ||
555 | sp804_clocksource_init(timer3_va_base, "timer3"); | 555 | sp804_clocksource_init(timer3_va_base, "timer3"); |
556 | sp804_clockevents_init(timer0_va_base, timer_irq); | 556 | sp804_clockevents_init(timer0_va_base, timer_irq, "timer0"); |
557 | } | 557 | } |
558 | 558 | ||
559 | /* | 559 | /* |
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index b0b7de6875ab..4e78c379c5c6 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c | |||
@@ -772,7 +772,7 @@ static void __init versatile_timer_init(void) | |||
772 | writel(0, TIMER3_VA_BASE + TIMER_CTRL); | 772 | writel(0, TIMER3_VA_BASE + TIMER_CTRL); |
773 | 773 | ||
774 | sp804_clocksource_init(TIMER3_VA_BASE, "timer3"); | 774 | sp804_clocksource_init(TIMER3_VA_BASE, "timer3"); |
775 | sp804_clockevents_init(TIMER0_VA_BASE, IRQ_TIMERINT0_1); | 775 | sp804_clockevents_init(TIMER0_VA_BASE, IRQ_TIMERINT0_1, "timer0"); |
776 | } | 776 | } |
777 | 777 | ||
778 | struct sys_timer versatile_timer = { | 778 | struct sys_timer versatile_timer = { |
diff --git a/arch/arm/mach-vexpress/ct-ca9x4.c b/arch/arm/mach-vexpress/ct-ca9x4.c index 6004f06cbde5..271213384203 100644 --- a/arch/arm/mach-vexpress/ct-ca9x4.c +++ b/arch/arm/mach-vexpress/ct-ca9x4.c | |||
@@ -72,7 +72,8 @@ static void __init ct_ca9x4_timer_init(void) | |||
72 | writel(0, MMIO_P2V(CT_CA9X4_TIMER1) + TIMER_CTRL); | 72 | writel(0, MMIO_P2V(CT_CA9X4_TIMER1) + TIMER_CTRL); |
73 | 73 | ||
74 | sp804_clocksource_init(MMIO_P2V(CT_CA9X4_TIMER1), "ct-timer1"); | 74 | sp804_clocksource_init(MMIO_P2V(CT_CA9X4_TIMER1), "ct-timer1"); |
75 | sp804_clockevents_init(MMIO_P2V(CT_CA9X4_TIMER0), IRQ_CT_CA9X4_TIMER0); | 75 | sp804_clockevents_init(MMIO_P2V(CT_CA9X4_TIMER0), IRQ_CT_CA9X4_TIMER0, |
76 | "ct-timer0"); | ||
76 | } | 77 | } |
77 | 78 | ||
78 | static struct sys_timer ct_ca9x4_timer = { | 79 | static struct sys_timer ct_ca9x4_timer = { |
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index 77d5db3d7808..f6fecdd0fbe8 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c | |||
@@ -66,7 +66,8 @@ static void __init v2m_timer_init(void) | |||
66 | writel(0, MMIO_P2V(V2M_TIMER1) + TIMER_CTRL); | 66 | writel(0, MMIO_P2V(V2M_TIMER1) + TIMER_CTRL); |
67 | 67 | ||
68 | sp804_clocksource_init(MMIO_P2V(V2M_TIMER1), "v2m-timer1"); | 68 | sp804_clocksource_init(MMIO_P2V(V2M_TIMER1), "v2m-timer1"); |
69 | sp804_clockevents_init(MMIO_P2V(V2M_TIMER0), IRQ_V2M_TIMER0); | 69 | sp804_clockevents_init(MMIO_P2V(V2M_TIMER0), IRQ_V2M_TIMER0, |
70 | "v2m-timer0"); | ||
70 | } | 71 | } |
71 | 72 | ||
72 | static struct sys_timer v2m_timer = { | 73 | static struct sys_timer v2m_timer = { |