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.

Very high interrupt latency on omap4430

We have ported JB 4.2.p1 with kernel 3.4 onto our custom board having omap4430.  We have connected an interrupt pin of a  device on our board to gpi 80 pin of omap. The device is configured to send out interrupts to the omap gpi 80 at every 10ms i.e 100hz pulse train. We toggled another gpio 3 pin of omap on receiving every interrupt  pulse as mentioned above in the interrupt handler function of our device . We noticed on probing that the gpio 3 did not toggle consistently at 10ms, and it skipped a few pulses, and at times the delay was as high as 200ms.

However on repeating the same experiment we noticed that gpio 3 toggeled consistently at 10ms on ics with kernel 3.0.4 without any issues.

We have to correct this inconsistent behaviour and the interrupt latency. Could someone helkp us on this?

Thank You

Prakash

  • Hi Prakash,

    You might want to take a look at the other interrupts. It might be the case that there is another (higher priority) interrupt handler (possibly OS related) which delays the execution of your own interrupt handler. You could also use the so called FIQ (fast interrupt request) for your application, since a FIQ has always the highest priority.  

    Good luck

    Kind regards,

    Richard. 

  • Hi Richard,

    Thanks for your response!

    I concur with you on the case that there is another (higher priority) interrupt handler which is delaying the execution of my interrupt handler. I'm suspecting the same. Could you guide me on how to go about it ? as in how do i check which interrupt is causing this? How can i change the priority of my interrupt to a higher one?

    Where in the kernel source are the interrupts handled, i mean when the device interrupt pin sends out interrupts to the omap where does it reach in the omap before the interrupt handler is invoked in the device driver?

     

    Regards

    Prakash