1
linux/arch
Imre Deak ea6dedd7fb ARM: OMAP: GPIO IRQ lazy IRQ disable fix
- The current OMAP GPIO IRQ framework doesn't use the do_edge_IRQ,
  do_level_IRQ handlers, but instead calls do_simple_IRQ. This
  doesn't handle disabled interrupts properly, so drivers will
  still get interrupts after calling disable_irq. The patch solves
  this by respecting the irq_desc.disable_depth and irq_desc.running
  counters.  When one of these is non-zero the handler is not called,
  the interrupt is masked and marked as pending. The pending interrupt
  will be serviced when the running handler returns. This is according
  to the same semantics as the standard do_edge_IRQ and do_level_IRQ
  handlers have, so one day we should use them instead of do_simple_IRQ.

- Process only interrupts that are not masked. The ISR may contain
  pending interrupts that are masked these shouldn't be processed.

- Move the bank IRQ unmasking out of the IRQ dispatch loop. If there
  are further iterations we shouldn't unmask it if there are level
  triggered interrupts pending.

Signed-off-by: Imre Deak <imre.deak@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2006-06-26 16:16:00 -07:00
..
alpha [PATCH] oprofile: Fix unnecessary cleverness 2006-06-26 09:58:17 -07:00
arm ARM: OMAP: GPIO IRQ lazy IRQ disable fix 2006-06-26 16:16:00 -07:00
arm26 [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
cris [PATCH] mm: remove VM_LOCKED before remap_pfn_range and drop VM_SHM 2006-06-25 10:00:55 -07:00
frv [PATCH] More BUG_ON conversion 2006-06-23 07:43:08 -07:00
h8300 [PATCH] fix incorrect SA_ONSTACK behaviour for 64-bit processes 2006-06-23 07:43:05 -07:00
i386 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-26 13:33:14 -07:00
ia64 Merge branch 'x86-64' 2006-06-26 10:51:09 -07:00
m32r [PATCH] m32r: update switch_to macro for tuning 2006-04-19 09:13:51 -07:00
m68k [PATCH] arch: use list_move() 2006-06-26 09:58:17 -07:00
m68knommu [PATCH] m68knommu: use configurable RAM setup in start up code 2006-06-26 10:59:07 -07:00
mips Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-26 13:33:14 -07:00
parisc [PATCH] fix incorrect SA_ONSTACK behaviour for 64-bit processes 2006-06-23 07:43:05 -07:00
powerpc Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-26 13:33:14 -07:00
ppc Storage class should be first 2006-06-26 18:57:34 +02:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-26 13:33:14 -07:00
sh Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-26 13:33:14 -07:00
sh64 [PATCH] fix incorrect SA_ONSTACK behaviour for 64-bit processes 2006-06-23 07:43:05 -07:00
sparc [SPARC]: Add iomap interfaces. 2006-06-25 23:24:24 -07:00
sparc64 Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2006-06-26 10:08:32 -07:00
um spelling fixes 2006-06-26 18:35:02 +02:00
v850 [PATCH] fix incorrect SA_ONSTACK behaviour for 64-bit processes 2006-06-23 07:43:05 -07:00
x86_64 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-26 13:33:14 -07:00
xtensa Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2006-06-26 11:05:15 -07:00