static void tegra3_register_wake_timer(unsigned int cpu) { int ret; ret = setup_irq(tegra_lp2wake_irq[cpu].irq, &tegra_lp2wake_irq[cpu]); if (ret) { pr_err("Failed to register LP2 timer IRQ for CPU %d: " "irq=%d, ret=%d\n", cpu, tegra_lp2wake_irq[cpu].irq, ret); goto fail; } #ifdef CONFIG_SMP ret = irq_set_affinity(tegra_lp2wake_irq[cpu].irq, cpumask_of(cpu)); if (ret) { pr_err("Failed to set affinity for LP2 timer IRQ to " "CPU %d: irq=%d, ret=%d\n", cpu, tegra_lp2wake_irq[cpu].irq, ret); goto fail; } #endif test_lp2_wake_timer(cpu); return; fail: tegra_lp2_in_idle(false); }
static void tegra3_register_wake_timer(unsigned int cpu) { int ret; ret = setup_irq(tegra_lp2wake_irq[cpu].irq, &tegra_lp2wake_irq[cpu]); if (ret) { pr_err("Failed to register LP2 timer IRQ for CPU %d: " "irq=%d, ret=%d\n", cpu, tegra_lp2wake_irq[cpu].irq, ret); goto fail; } ret = tegra3_resume_wake_timer(cpu); if (ret) goto fail; test_lp2_wake_timer(cpu); return; fail: tegra_lp2_in_idle(false); }