I spent hours finding a bug in my GPIO kernel driver (blocking the system) until I found the reason:
While the system has to process a lot of data (interrupts), i.e. streaming of music, video, or handling signals from a GPIO.
the kernel hangs showing an I2C controller timeout in the journal.
This always happens when the CPU frequency is atomatically switched by the cpu governor.
I am using this commands to disable frequency switching:
cpufreq-set -c 0 -g performance
cpufreq-set -d 1GHz
cpufreq-set -u 1GHz
to check if it worked: cpufreq-info
this must print the line:
current policy: frequency should be within 1000 MHz and 1000 MHz.
If somebody knows a better way to disable thew cpu governor, please tell us.
Is there any plan to solve the conflict between the cpu governor and the I2C causing I2C contoller timeouts ?
Regards
Harry