void __cpuinit twd_timer_setup_rate(struct clock_event_device *clk, u32 timer_rate) { if (twd_timer_rate != timer_rate) twd_timer_rate = timer_rate; twd_timer_setup(clk); }
/* * Setup the local clock events for a CPU. */ int __cpuinit local_timer_setup(struct clock_event_device *evt) { /* Local timers are not supprted on OMAP4430 ES1.0 */ if (omap_rev() == OMAP4430_REV_ES1_0) return -ENXIO; evt->irq = OMAP44XX_IRQ_LOCALTIMER; twd_timer_setup(evt); return 0; }
/* * Setup the local clock events for a CPU. */ int __cpuinit local_timer_setup(struct clock_event_device *evt) { struct device_node *np; np = of_find_compatible_node(NULL, NULL, "arm,smp-twd"); if (!twd_base) { twd_base = of_iomap(np, 0); WARN_ON(!twd_base); } evt->irq = irq_of_parse_and_map(np, 0); twd_timer_setup(evt); return 0; }
static int twd_timer_cpu_notify(struct notifier_block *self, unsigned long action, void *hcpu) { switch (action & ~CPU_TASKS_FROZEN) { case CPU_STARTING: twd_timer_setup(); break; case CPU_DYING: twd_timer_stop(); break; } return NOTIFY_OK; }
static int __init twd_local_timer_common_register(struct device_node *np) { int err; twd_evt = alloc_percpu(struct clock_event_device); if (!twd_evt) { err = -ENOMEM; goto out_free; } err = request_percpu_irq(twd_ppi, twd_handler, "twd", twd_evt); if (err) { pr_err("twd: can't register interrupt %d (%d)\n", twd_ppi, err); goto out_free; } err = register_cpu_notifier(&twd_timer_cpu_nb); if (err) goto out_irq; #ifndef CONFIG_ARCH_CNS3XXX twd_get_clock(np); #endif /* * Immediately configure the timer on the boot CPU, unless we need * jiffies to be incrementing to calibrate the rate in which case * setup the timer in late_time_init. */ if (twd_timer_rate) twd_timer_setup(); else late_time_init = twd_timer_setup; return 0; out_irq: free_percpu_irq(twd_ppi, twd_evt); out_free: iounmap(twd_base); twd_base = NULL; free_percpu(twd_evt); return err; }
/* * Setup the local clock events for a CPU. */ int __cpuinit local_timer_setup(struct clock_event_device *evt) { evt->irq = IRQ_LOCALTIMER; twd_timer_setup(evt); return 0; }
/* * Setup the local clock events for a CPU. */ void __cpuinit local_timer_setup(struct clock_event_device *evt) { evt->irq = 29; twd_timer_setup(evt); }
/* * Setup the local clock events for a CPU. */ int local_timer_setup(struct clock_event_device *evt) { evt->irq = 29; twd_timer_setup(evt); return 0; }
void __cpuinit local_timer_setup(struct clock_event_device *evt) { evt->irq = OMAP44XX_IRQ_LOCALTIMER; twd_timer_setup(evt); }