Thread (31 messages) flat view 31 messages, 4 authors, 2013-03-12

[PATCH 03/10] ARM: smp_twd: Divorce smp_twd from local timer API

From: tony@atomide.com (Tony Lindgren)
Date: 2013-03-11 22:50:10
Also in: linux-arm-msm, lkml

* Stephen Boyd [off-list ref] [130311 15:22]:
On 03/11/13 10:28, Tony Lindgren wrote:
quoted
* Stephen Boyd [off-list ref] [130308 17:10]:
quoted
On 03/08/13 12:29, Tony Lindgren wrote:
quoted
Applying that does not seem to help, but you might want to get vexpress
running anyways for some multiplatform sanity checks.

I just built and installed qemu-linaro from their git, then ran the
command above. Looks like stock qemu does not work for vexpress for some
reason. You can probably use a dummy initrd and rootfs to debug this
though :)
So my patchset didn't break qemu?
Sorry if that was unclear: Yes your patchset breaks booting vexpress
in qemu.
Ok. qemu works for me before applying my patches. I've added this into
the series before this patch to fix the boot issue.
OK thanks:

Acked-by: Tony Lindgren <tony@atomide.com>

 
quoted hunk ↗ jump to hunk
-----8<-----

Subject: [PATCH] ARM: vexpress: Move smp_twd setup to time_late_init hook

On devices without a clock describing the rate of the twd we
detect the rate at runtime via twd_calibrate_rate(). Currently
this happens when smp_prepare_cpus() calls the localtimer start
callback, after the sp804 timer has been registered and when
jiffies have started incrementing.

In the next patch we're going to make twd_local_timer_register()
register the twd clockevent on the boot CPU. In the case of
vexpress, this will hang the system at boot because jiffies
haven't started incrementing when twd_calibrate_rate() is called.
Register the smp_twd during time_late_init() on vexpress to avoid
this problem.

Based on a patch by Marc Zyngier [off-list ref].

Reported-by: Tony Lindgren <tony@atomide.com>
Cc: Pawel Moll <redacted>
Signed-off-by: Stephen Boyd <redacted>
---
 arch/arm/mach-vexpress/ct-ca9x4.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-vexpress/ct-ca9x4.c b/arch/arm/mach-vexpress/ct-ca9x4.c
index 6f34497..a9f39bf 100644
--- a/arch/arm/mach-vexpress/ct-ca9x4.c
+++ b/arch/arm/mach-vexpress/ct-ca9x4.c
@@ -62,7 +62,7 @@ static void __init ct_ca9x4_init_irq(void)
 {
 	gic_init(0, 29, ioremap(A9_MPCORE_GIC_DIST, SZ_4K),
 		 ioremap(A9_MPCORE_GIC_CPU, SZ_256));
-	ca9x4_twd_init();
+	late_time_init = ca9x4_twd_init;
 }
 
 static int ct_ca9x4_clcd_setup(struct clcd_fb *fb)
-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help