I am trying to use IRQ11 on an LS1023a as an external interrupt source. I am able to hook a handler to interrupt #11 successfully in my driver as shown:
ret = request_irq(11, fpga_irq_handler, IRQF_NO_SUSPEND | IRQF_TRIGGER_HIGH , "video_driver", NULL);
But I fail to see any interrupt actually reaching the handler despite driving the IRQ11 pin with a pulse train.
Table 5-1 in the QorIQ LS1043A Reference Manual states that IRQ11 is mapped to internal interrupt number 183. NR_IRQS is defined as 64 however so request_irq(183,...) fails. What is the relationship between the the IRQ number and the internal interrupt number? What number should I be passing to request_irq()?
- I have confirmed that my RCW is set to configure this pin as an IRQ.
- My pulse is positive going the corresponding bit in my SCFG_INTPCR is set to zero.
- I have tried probe_irq_on()/probe_irq_off()
- I have tried manually probing for all values in the range of 0-NR_IRQS for which request_irq() succeeds
Is there something else require to enable this interrupt that I am missing? Do I need to access the GIC registers manually to enable them or can I count on the GICv2 driver to handler all of that for me?
I'm stuck - any ideas would be greatly appreciated.