Thread (103 messages) 103 messages, 10 authors, 2013-03-11

Re: [RFC PATCH v1 12/31] ARC: Interrupt Handling

From: Thomas Gleixner <hidden>
Date: 2012-11-12 20:08:11
Also in: lkml

On Wed, 7 Nov 2012, Vineet Gupta wrote:
+void __init init_IRQ(void)
+{
+	const int irq = TIMER0_IRQ;
+
+	/*
+	 * Each CPU needs to register irq of it's private TIMER0.
+	 * The APIs request_percpu_irq()/enable_percpu_irq() will not be
+	 * functional, if we don't "prep" the generic IRQ sub-system with
+	 * the following:
+	 * -Ensure that devid passed to request_percpu_irq() is indeed per cpu
+	 * -disable NOAUTOEN, w/o which the device handler never gets called
What sets NOAUTOEN in the first place? The core code definitely does
not.
+	 */
+	irq_set_percpu_devid(irq);
+	irq_modify_status(irq, IRQ_NOAUTOEN, 0);
Aside of that we have irq_clear_status_flags() for this.
+	plat_init_IRQ();
+}
+int __init get_hw_config_num_irq(void)
How is that function used ?
+{
+	uint32_t val = read_aux_reg(ARC_REG_VECBASE_BCR);
+
+	switch (val & 0x03) {
+	case 0:
+		return 16;
+	case 1:
+		return 32;
+	case 2:
+		return 8;
+	default:
+		return 0;
+	}
+
+	return 0;
+}
Thanks,

	tglx
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help