hi Ladislav,
On 03/24/2017 12:33 PM, Grygorii Strashko wrote:
On 03/23/2017 09:49 AM, Tony Lindgren wrote:
* Ladislav Michl <ladis@xxxxxxxxxxxxxx> [170323 05:46]:
Edge triggered interrupts are lost no matter how fast is its source.
It happens even at 10Hz and patch bellow fixes issue. Of course,
it is just a hack showing where problem is and it will need a bit
more debugging.
OK disabling pm_runtime fixes it.. Care to describe which GPIO bank
you're testing with?
For GPIO bank1, context is never lost so wake-ups work without
the wakeirqs handled by pinctrl-single.c. But you should not hit
this unless you've configured the system to hit off mode during
idle by setting /sys/kernel/debug/pm_debug/enable_off_mode and
configuring UART autosuspend.
So it seems the runtime_suspend/resume edge configuration for
wake-up events causes it?
If nothing else helps, I guess one option would be to implement
pm_runtime_use_autosuspend() with the timeout configured to
100ms or something similar. But that seems like a workaround and
won't fix the real issue.
This is really strange as PM runtime will be executed only when
first gpio is requested - all other time gpio bank should stay active.
Only one possibility is deep CPUIdle or Suspend states, but in this case
some QoS setup may require to block these states while IR/App is
running.
Do you have any news here?
a) will it fix your issue if you just disable cpuidle and auto-suspend?
b) will it fix your issue if you disable cpuidle and auto-suspend, and
apply fix in omap_gpio_ack_irq()?
...
--
regards,
-grygorii
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html