Grygorii Strashko
80ac93c274
gpio: omap: Fix lost edge interrupts
...
Now acking of edge irqs happens the following way:
- omap_gpio_irq_handler
- "isr" = read irq status
- omap_clear_gpio_irqbank(bank, isr_saved & ~level_mask);
^ clear edge status, so irq can be accepted
- loop while "isr"
generic_handle_irq()
- handle_edge_irq()
- desc->irq_data.chip->irq_ack(&desc->irq_data);
- omap_gpio_ack_irq()
it might be that at this moment edge IRQ was triggered again and it will be
cleared and IRQ will be lost.
Use handle_simple_irq and clear edge interrupts early without disabling them in
omap_gpio_irq_handler to avoid loosing interrupts.
[1] https://marc.info/?l=linux-omap&m=149004465313534&w=2
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2017-10-07 13:17:07 +02:00
..
2017-08-14 15:01:13 +02:00
2017-08-14 16:24:02 +02:00
2016-02-23 20:19:42 +05:30
2017-05-10 19:13:03 -07:00
2017-05-10 19:13:03 -07:00
2017-05-10 19:13:03 -07:00
2016-11-25 15:12:27 +01:00
2016-02-23 20:34:06 +05:30
2017-05-29 13:36:45 +02:00
2017-08-14 15:01:12 +02:00
2017-08-14 15:01:12 +02:00
2016-02-16 00:19:52 +01:00
2016-03-30 10:38:51 +02:00
2017-05-29 11:09:01 +02:00
2017-08-15 11:26:08 +02:00
2017-03-16 21:52:08 +01:00
2016-11-24 16:19:02 +01:00
2017-03-16 21:52:07 +01:00
2017-04-28 09:47:46 +02:00
2017-08-22 15:10:10 +02:00
2016-01-05 11:21:03 +01:00
2016-06-08 10:49:58 +02:00
2017-05-23 10:02:01 +02:00
2016-02-23 20:35:28 +05:30
2016-09-13 10:35:56 +02:00
2016-09-13 10:35:56 +02:00
2017-08-14 15:03:39 +02:00
2017-01-26 15:27:37 +01:00
2017-06-21 09:36:46 +02:00
2016-01-05 11:21:05 +01:00
2017-01-26 15:27:37 +01:00
2017-03-16 21:52:08 +01:00
2017-08-01 13:43:55 +02:00
2017-04-28 10:09:16 +02:00
2017-03-22 09:40:55 +01:00
2017-08-14 15:01:12 +02:00
2017-04-20 12:02:32 +01:00
2017-08-14 15:01:12 +02:00
2016-11-13 11:50:22 +01:00
2016-02-16 00:19:53 +01:00
2017-05-22 17:18:19 +02:00
2017-01-26 10:00:20 +01:00
2016-09-12 15:28:18 +02:00
2017-08-14 15:03:38 +02:00
2016-02-23 20:35:33 +05:30
2016-02-23 20:35:34 +05:30
2016-02-19 00:20:30 +01:00
2016-09-23 15:10:00 +02:00
2016-01-05 11:21:20 +01:00
2017-01-26 15:27:37 +01:00
2016-03-09 22:00:27 +07:00
2017-07-31 15:26:57 +02:00
2016-09-13 10:35:56 +02:00
2016-09-12 14:23:37 +02:00
2016-06-23 11:07:14 +02:00
2016-08-10 15:40:44 +02:00
2017-05-23 11:33:59 +02:00
2015-11-30 09:31:00 +01:00
2015-10-28 10:30:17 +09:00
2017-08-14 16:06:24 +02:00
2017-08-14 15:03:38 +02:00
2016-03-31 15:02:09 +02:00
2016-01-05 11:21:07 +01:00
2017-01-26 15:27:37 +01:00
2017-06-16 11:13:11 +02:00
2017-08-21 00:06:35 +02:00
2016-12-30 09:18:10 +01:00
2017-03-23 09:49:06 +01:00
2017-08-31 15:21:07 +02:00
2017-08-14 15:01:12 +02:00
2016-02-16 00:20:03 +01:00
2017-08-14 15:03:38 +02:00
2017-08-14 15:00:43 +02:00
2017-08-21 00:09:33 +02:00
2017-08-21 00:10:00 +02:00
2016-03-30 10:38:51 +02:00
2017-10-07 13:17:07 +02:00
2016-09-15 13:57:43 +02:00
2017-08-14 15:01:12 +02:00
2017-05-23 11:35:02 +02:00
2017-08-21 00:08:52 +02:00
2017-03-28 11:13:59 +02:00
2016-09-13 10:35:56 +02:00
2017-08-31 13:57:57 +02:00
2017-08-14 15:01:12 +02:00
2016-04-05 17:02:35 +02:00
2017-08-14 15:01:12 +02:00
2016-06-07 09:35:16 +02:00
2017-03-24 14:05:00 +01:00
2017-03-24 14:04:37 +01:00
2016-06-07 09:35:16 +02:00
2016-09-13 10:35:56 +02:00
2017-03-15 11:16:36 +01:00
2016-08-23 11:23:41 +02:00
2017-08-21 00:06:04 +02:00
2016-12-13 07:54:57 -08:00
2016-12-30 09:18:10 +01:00
2016-06-08 10:48:17 +02:00
2017-08-14 15:01:12 +02:00
2017-01-26 15:27:37 +01:00
2017-08-14 15:03:38 +02:00
2017-08-22 14:28:22 +02:00
2016-05-11 13:49:11 +02:00
2016-09-13 10:35:56 +02:00
2016-06-07 09:35:16 +02:00
2016-09-13 10:35:56 +02:00
2017-01-26 15:27:37 +01:00
2016-06-07 09:35:16 +02:00
2016-09-13 10:35:56 +02:00
2017-08-14 15:37:38 +02:00
2016-10-21 14:55:07 +02:00
2016-09-13 10:35:56 +02:00
2016-02-23 20:35:49 +05:30
2017-09-04 14:41:02 +01:00
2017-08-23 10:20:16 +02:00
2016-01-05 11:21:16 +01:00
2017-08-14 15:01:12 +02:00
2016-02-23 20:35:50 +05:30
2017-08-14 15:03:39 +02:00
2016-06-07 09:35:16 +02:00
2016-01-05 11:21:20 +01:00
2017-01-26 15:27:37 +01:00
2017-07-07 13:30:05 -07:00
2017-03-23 11:45:55 +00:00
2016-09-13 10:35:56 +02:00
2017-01-26 15:27:37 +01:00
2017-05-10 19:13:03 -07:00
2016-03-31 10:22:53 +02:00
2017-03-06 14:35:22 +01:00
2017-08-14 15:01:12 +02:00
2017-03-16 21:52:10 +01:00
2017-05-22 17:48:41 +02:00
2016-01-05 11:21:20 +01:00
2017-08-23 09:21:54 +02:00
2017-03-16 21:52:10 +01:00
2017-08-14 16:01:06 +02:00
2017-09-19 09:39:10 +02:00
2016-10-25 20:23:19 +02:00
2016-07-04 16:51:29 +02:00
2017-08-14 15:01:13 +02:00
2017-09-05 11:49:48 -07:00
2017-08-31 09:05:30 +02:00
2017-08-14 15:01:12 +02:00
2017-09-19 09:39:10 +02:00
2017-08-22 14:28:22 +02:00