I've noticed strange behavior on my H3 (nanopi neo air) and am wondering if anyone has suggestions for further debugging it, as I'm getting stumped.

Specifically, I have configured a device (Invensense MPU9250) to deliver interrupts at 10Hz to PG_EINT11. For some reason, though, the interrupt handler is being called at only about 6 Hz.

Looking at a logic analyzer, I see the hardware is interrupting at 10 Hz as it should, but sometimes the interrupts are just missed from the kernel side. So you might see a 200 ms gap between calls to the IRQ handler, but 100 ms between hardware IRQ events.

Using ftrace, I see that sunxi_pinctrl_irq_handler is being called at about 6 Hz as well. The system load is very low (~0%) on all CPUs, and it doesn't appear that anyone is disabling this interrupt.

I have also verified that the IRQ handlers are exiting in less than 1 ms, and the bottom half of the handler in less than 5 ms; they don't appear to be conflicting with the next IRQ coming in.

The interrupts are rising edges, and are consistently about 50 microseconds in width.

This is the relevant device-tree fragment:

&i2c0 {
        mpu9250@68 {
                model = "Invensense MPU9250";
                compatible = "invensense,mpu9250";
                reg = <0x68>;
                interrupt-parent = <&pio>;
                interrupts = <6 11 IRQ_TYPE_EDGE_RISING>; /* PG11 / PG_EINT11 */

I'm quite stumped as to where to look next and would welcome any suggestions.


You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to