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

From: [email-masked] (Tony Lindgren)
Date: Fri, 8 Mar 2013 12:29:47 -0800

* Stephen Boyd <[email-masked]> [130308 12:22]:
> On 03/08/13 12:08, Tony Lindgren wrote:
> > * Stephen Boyd <[email-masked]> [130308 11:54]:
> >> On 03/08/13 11:48, Tony Lindgren wrote:
> >>> * Stephen Boyd <[email-masked]> [130308 10:21]:
> >>>> diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c
> >>>> index 081de6f..4ea3e9d 100644
> >>>> --- a/arch/arm/kernel/smp_twd.c
> >>>> +++ b/arch/arm/kernel/smp_twd.c
> >>>> @@ -227,7 +227,7 @@ static void __cpuinit twd_calibrate_rate(void)
> >>>>  
> >>>>  static irqreturn_t twd_handler(int irq, void *dev_id)
> >>>>  {
> >>>> -       struct clock_event_device *evt = *(struct clock_event_device **)dev_id;
> >>>> +       struct clock_event_device *evt = dev_id;
> >>>>  
> >>>>         if (twd_timer_ack()) {
> >>>>                 evt->event_handler(evt);
> >>>>
> >>> Yup thanks that fixes it, both fixes are needed. So for this patch + the
> >>> two fixes please feel free to add:
> >>>
> >>> Acked-by: Tony Lindgren <[email-masked]>
> >> Great. Thanks for testing.
> > Hmm noticed one more thing: vexpress no longer boots in qemu for
> > me after applying this. Sorry did not get any debug_ll output, but
> > maybe you can take a look at it. I tested with omap2plus_defconfig +
> > linaro-qemu:
> >
> > $ qemu-system-arm -machine vexpress-a9 -m 1024 -curses -net nic -net \
> > user -serial stdio -append console=ttyAMA0,115200n8 rw \
> > root=/dev/mmcblk0p2 rootwait physmap.enabled=0 -kernel zImage \
> > -initrd initrd.img -sd rootfs.img
> >
> >
> 
> I wonder if you're hitting something similar to this issue on versatile
> boards [1]. Can you try that patch? Otherwise I will try to get qemu
> running (something I've never done, do you have instructions?).

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 :)

More info on qemu-linaro at:

https://launchpad.net/qemu-linaro

Regards,

Tony
 
> [1] http://article.gmane.org/gmane.linux.ports.arm.kernel/221539