Re: gpio-omap: Edge interrupts stall

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Grygorii,

On Mon, Apr 03, 2017 at 03:20:47PM -0500, Grygorii Strashko wrote:
> 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()?
> ...

a) almost fixes issue, rarely interrupt is lost.
b) fixes issue (most likely, I'd need to build test equipment to detect
   interrupt misses and run test over weekend)

And as omap_gpio_ack_irq fix is obviously correct, I'm sending it as proper
patch. According to Tony, the rest could be optimized somehow :-)

	ladis
--
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



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux