linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: sunxi: stop timer from ticking before enabling interrupts
@ 2013-11-30 12:53 Marc Zyngier
  2013-11-30 14:15 ` Maxime Ripard
  0 siblings, 1 reply; 3+ messages in thread
From: Marc Zyngier @ 2013-11-30 12:53 UTC (permalink / raw)
  To: linux-arm-kernel

The sun4i timer can still be ticking when we enable the interrupt.
If another timer is actually used (A7 architected timer, for example),
odds are that the interrupt will eventually fire with the event_handler
pointer being NULL.

The obvious fix it to stop the timer before registering the interrupt.

Observed and tested on sun7i (cubietruck).

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
---
 drivers/clocksource/sun4i_timer.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/clocksource/sun4i_timer.c b/drivers/clocksource/sun4i_timer.c
index 2fb4695..a4f6119 100644
--- a/drivers/clocksource/sun4i_timer.c
+++ b/drivers/clocksource/sun4i_timer.c
@@ -179,6 +179,9 @@ static void __init sun4i_timer_init(struct device_node *node)
 	writel(TIMER_CTL_CLK_SRC(TIMER_CTL_CLK_SRC_OSC24M),
 	       timer_base + TIMER_CTL_REG(0));
 
+	/* Make sure timer is stopped before playing with interrupts */
+	sun4i_clkevt_time_stop(0);
+
 	ret = setup_irq(irq, &sun4i_timer_irq);
 	if (ret)
 		pr_warn("failed to setup irq %d\n", irq);
-- 
1.8.4.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] ARM: sunxi: stop timer from ticking before enabling interrupts
  2013-11-30 12:53 [PATCH] ARM: sunxi: stop timer from ticking before enabling interrupts Marc Zyngier
@ 2013-11-30 14:15 ` Maxime Ripard
  2013-11-30 14:41   ` Marc Zyngier
  0 siblings, 1 reply; 3+ messages in thread
From: Maxime Ripard @ 2013-11-30 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Marc,

On Sat, Nov 30, 2013 at 12:53:15PM +0000, Marc Zyngier wrote:
> The sun4i timer can still be ticking when we enable the interrupt.
> If another timer is actually used (A7 architected timer, for example),
> odds are that the interrupt will eventually fire with the event_handler
> pointer being NULL.
> 
> The obvious fix it to stop the timer before registering the interrupt.
> 
> Observed and tested on sun7i (cubietruck).
> 
> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>

You can add my Acked-by, but you should rather send this to Daniel
Lezcano, which is the clocksource/clockevent maintainer.

Thanks,
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131130/af58cd59/attachment.sig>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] ARM: sunxi: stop timer from ticking before enabling interrupts
  2013-11-30 14:15 ` Maxime Ripard
@ 2013-11-30 14:41   ` Marc Zyngier
  0 siblings, 0 replies; 3+ messages in thread
From: Marc Zyngier @ 2013-11-30 14:41 UTC (permalink / raw)
  To: linux-arm-kernel

On 2013-11-30 14:15, Maxime Ripard wrote:

Hi Maxime,

> On Sat, Nov 30, 2013 at 12:53:15PM +0000, Marc Zyngier wrote:
>> The sun4i timer can still be ticking when we enable the interrupt.
>> If another timer is actually used (A7 architected timer, for 
>> example),
>> odds are that the interrupt will eventually fire with the 
>> event_handler
>> pointer being NULL.
>>
>> The obvious fix it to stop the timer before registering the 
>> interrupt.
>>
>> Observed and tested on sun7i (cubietruck).
>>
>> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
>
> You can add my Acked-by, but you should rather send this to Daniel
> Lezcano, which is the clocksource/clockevent maintainer.

Thanks. I'll push that to Daniel directly.

Cheers,

         M.
-- 
Fast, cheap, reliable. Pick two.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-11-30 14:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-30 12:53 [PATCH] ARM: sunxi: stop timer from ticking before enabling interrupts Marc Zyngier
2013-11-30 14:15 ` Maxime Ripard
2013-11-30 14:41   ` Marc Zyngier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).