Re: gpio-omap: Edge interrupts stall

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

 





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.


Regards,

Tony

diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index efc85a279d54..f6398ab7b75a 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -1273,6 +1273,7 @@ static int omap_gpio_runtime_suspend(struct device *dev)
 	unsigned long flags;
 	u32 wake_low, wake_hi;

+	return -EINVAL;
 	raw_spin_lock_irqsave(&bank->lock, flags);

 	/*
@@ -1341,6 +1342,7 @@ static int omap_gpio_runtime_resume(struct device *dev)
 	unsigned long flags;
 	int c;

+	return -EINVAL;
 	raw_spin_lock_irqsave(&bank->lock, flags);

 	/*


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



[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