I have a custom board designed around an Open-Q 410C SOM. The only major addition compared to a Dragonboard 410C is two TI ADC’s daisy-chained, communicating with the SOM over SPI. The SOM is flashed with Linaro 19.01. I have written a kernel module that handles interrupts from one of the ADC’s (when ADC data is ready, falling edge) which reads 54 bytes (27 bytes from each ADC in succession) after an interrupt flag is set.
The kernel module notifies the user space application after adequate number of samples are collected (1024 samples), and the user space application which sees the kernel module as a character device then reads all the collected data. This process repeats every 2048ms.
The problem is, for some reason a fixed number of samples get lost every 10 minutes. At first it looked like a sleep or suspend issue, so I disabled these modes with no avail. Data communication between the kernel module and user space is flawless and tested using synthesized data sent from the kernel module to the user space application.
Any help or assistance is highly appreciated.