diff mbox series

clocksource/drivers/ixp4xx: Implement delay timer

Message ID 20190523181602.3284-1-linus.walleij@linaro.org
State Superseded
Headers show
Series clocksource/drivers/ixp4xx: Implement delay timer | expand

Commit Message

Linus Walleij May 23, 2019, 6:16 p.m. UTC
This adds delay timer functionality to the IXP4xx
timer driver.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

---
 drivers/clocksource/timer-ixp4xx.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

-- 
2.20.1

Comments

Daniel Lezcano May 23, 2019, 7:21 p.m. UTC | #1
Hi Linus,


On 23/05/2019 20:16, Linus Walleij wrote:
> This adds delay timer functionality to the IXP4xx

> timer driver.

> 

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>


The patch does not apply on tip/timers/core





-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
Linus Walleij May 23, 2019, 7:34 p.m. UTC | #2
On Thu, May 23, 2019 at 9:21 PM Daniel Lezcano
<daniel.lezcano@linaro.org> wrote:
> On 23/05/2019 20:16, Linus Walleij wrote:


> > This adds delay timer functionality to the IXP4xx

> > timer driver.

> >

> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

>

> The patch does not apply on tip/timers/core


This seems to be because tip/timers/core is not yet containing
the commits from v5.2-rc1.

Maybe I just send my patches too early after the merge window :)

Yours,
Linus Walleij
Daniel Lezcano May 23, 2019, 7:38 p.m. UTC | #3
On 23/05/2019 21:34, Linus Walleij wrote:
> On Thu, May 23, 2019 at 9:21 PM Daniel Lezcano

> <daniel.lezcano@linaro.org> wrote:

>> On 23/05/2019 20:16, Linus Walleij wrote:

> 

>>> This adds delay timer functionality to the IXP4xx

>>> timer driver.

>>>

>>> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

>>

>> The patch does not apply on tip/timers/core

> 

> This seems to be because tip/timers/core is not yet containing

> the commits from v5.2-rc1.

> 

> Maybe I just send my patches too early after the merge window :)


Ok, I see thanks!


-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
diff mbox series

Patch

diff --git a/drivers/clocksource/timer-ixp4xx.c b/drivers/clocksource/timer-ixp4xx.c
index 5c2190b654cd..9396745e1c17 100644
--- a/drivers/clocksource/timer-ixp4xx.c
+++ b/drivers/clocksource/timer-ixp4xx.c
@@ -75,14 +75,19 @@  to_ixp4xx_timer(struct clock_event_device *evt)
 	return container_of(evt, struct ixp4xx_timer, clkevt);
 }
 
-static u64 notrace ixp4xx_read_sched_clock(void)
+static unsigned long ixp4xx_read_timer(void)
 {
 	return __raw_readl(local_ixp4xx_timer->base + IXP4XX_OSTS_OFFSET);
 }
 
+static u64 notrace ixp4xx_read_sched_clock(void)
+{
+	return ixp4xx_read_timer();
+}
+
 static u64 ixp4xx_clocksource_read(struct clocksource *c)
 {
-	return __raw_readl(local_ixp4xx_timer->base + IXP4XX_OSTS_OFFSET);
+	return ixp4xx_read_timer();
 }
 
 static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id)
@@ -224,6 +229,13 @@  static __init int ixp4xx_timer_register(void __iomem *base,
 
 	sched_clock_register(ixp4xx_read_sched_clock, 32, timer_freq);
 
+#ifdef CONFIG_ARM
+	/* Also use this timer for delays */
+	tmr->delay_timer.read_current_timer = ixp4xx_read_timer;
+	tmr->delay_timer.freq = timer_freq;
+	register_current_timer_delay(&tmr->delay_timer);
+#endif
+
 	return 0;
 }