123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- --- a/arch/arm/mach-cns3xxx/core.c
- +++ b/arch/arm/mach-cns3xxx/core.c
- @@ -17,6 +17,7 @@
- #include <linux/platform_device.h>
- #include <linux/usb/ehci_pdriver.h>
- #include <linux/usb/ohci_pdriver.h>
- +#include <asm/smp_twd.h>
- #include <asm/mach/arch.h>
- #include <asm/mach/map.h>
- #include <asm/mach/time.h>
- @@ -26,6 +27,8 @@
- #include "core.h"
- #include "pm.h"
-
- +#define IRQ_LOCALTIMER 29
- +
- static struct map_desc cns3xxx_io_desc[] __initdata = {
- {
- .virtual = CNS3XXX_TC11MP_SCU_BASE_VIRT,
- @@ -191,6 +194,17 @@ static struct irqaction cns3xxx_timer_ir
- .handler = cns3xxx_timer_interrupt,
- };
-
- +static void __init cns3xxx_init_twd(void)
- +{
- +#ifdef CONFIG_LOCAL_TIMERS
- + static DEFINE_TWD_LOCAL_TIMER(cns3xx_twd_local_timer,
- + CNS3XXX_TC11MP_TWD_BASE,
- + IRQ_LOCALTIMER);
- +
- + twd_local_timer_register(&cns3xx_twd_local_timer);
- +#endif
- +}
- +
- /*
- * Set up the clock source and clock events devices
- */
- @@ -244,6 +258,7 @@ static void __init __cns3xxx_timer_init(
- setup_irq(timer_irq, &cns3xxx_timer_irq);
-
- cns3xxx_clockevents_init(timer_irq);
- + cns3xxx_init_twd();
- }
-
- void __init cns3xxx_timer_init(void)
|