This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM368 IRQ 0 on Mainline Kernel(3.18)

Hello,

I am currently working on getting the mainline 3.18 Linux Kernel running on the DM368 with video capture functionality.  I actually have it almost there, it currently captures from a camera sensor to a file without issue.  I just need to get the CMEM stuff built now to be able to use all the TI gstreamer encoders.  Anyways, one of the big snags i hit was that CCDC VDINT 0 which is used for capture is IRQ 0 and for some reason the newest kernel considers IRQ 0 a bad IRQ?  I had to make this change:

--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -381,7 +381,7 @@ int __handle_domain_irq(struct irq_domain *domain, unsigned int hwirq,
 	 * Some hardware gives randomly wrong interrupts.  Rather
 	 * than crashing, do something sensible.
 	 */
-	if (unlikely(!irq || irq >= nr_irqs)) {
+	if (unlikely(irq >= nr_irqs)) {
 		ack_bad_irq(irq);
 		ret = -EINVAL;
 	} else {

Without it the system locks up as soon as i try to start recording because it just sticks in the interrupt handler.  So my question is is there another way i should handle this rather than modifying the kernel's generic IRQ file?  It feels like the wrong place to make this change.  The 2.6 kernel does not have !irq it only has the nr_irqs comparison, so definitely something that was added.

Thanks,

Jarrod