aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVineet Gupta2015-12-11 19:31:23 +0530
committerVineet Gupta2015-12-12 16:04:12 +0530
commitc512c6ba7ac41b8bc196f17a85ee52099a109146 (patch)
treefa24af29e592db31b906db48bbe7dfbcb07d7a73
parentc6317bc7c5ab87ba0672a5fab8ef94829f78be02 (diff)
ARC: intc: Document arc_request_percpu_irq() better
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
-rw-r--r--arch/arc/kernel/irq.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arc/kernel/irq.c b/arch/arc/kernel/irq.c
index d736678d2724..b1f75937f0e1 100644
--- a/arch/arc/kernel/irq.c
+++ b/arch/arc/kernel/irq.c
@@ -51,6 +51,18 @@ void arch_do_IRQ(unsigned int irq, struct pt_regs *regs)
set_irq_regs(old_regs);
}
+/*
+ * API called for requesting percpu interrupts - called by each CPU
+ * - For boot CPU, actually request the IRQ with genirq core + enables
+ * - For subsequent callers only enable called locally
+ *
+ * Relies on being called by boot cpu first (i.e. request called ahead) of
+ * any enable as expected by genirq. Hence Suitable only for TIMER, IPI
+ * which are guaranteed to be setup on boot core first.
+ * Late probed peripherals such as perf can't use this as there no guarantee
+ * of being called on boot CPU first.
+ */
+
void arc_request_percpu_irq(int irq, int cpu,
irqreturn_t (*isr)(int irq, void *dev),
const char *irq_nm,