On 1.09.23 г. 17:18 ч., Sean Young wrote:
The ir-rx51 is a pwm-based TX driver specific to the N900. This can be handled entirely by the generic pwm-ir-tx driver, and in fact the pwm-ir-tx driver has been compatible with ir-rx51 from the start.
Unfortunately, pwm-ir-tx does not work on n900. My investigation shows that for some reason usleep_range() sleeps for at least 300-400 us more than what interval it is requested to sleep. I played with cyclictest from rt-tests package and it gives similar results - increasing the priority helps, but I was not able to make it sleep for less that 300 us in average. I tried cpu_latency_qos_add_request() in pwm-ir-tx, but it made no difference.
I get similar results on motorola droid4 (OMAP4), albeit there average sleep is in 200-300 us range, which makes me believe that either OMAPs have issues with hrtimers or the config we use has some issue which leads to scheduler latency. Or, something else...
In either case help is appreciated to dig further trying to find the reason for such a big delay.