linux-kernel-test/arch/powerpc
David Gibson 868afce21f [POWERPC] Fix irq flow handler for 4xx UIC
At present the driver for the UIC (the embedded interrupt controller
in 4xx chips) uses the handle_level_irq() flow handler.  It turns out
this does not correctly handle level triggered interrupts on the UIC.

Specifically, acknowledging an irq on the UIC (i.e. clearing the
relevant bit in UIC_SR) will have no effect for a level interrupt
which is still asserted by the external device, even if the irq is
already masked.  Therefore, unlike handle_level_irq() we must ack the
interrupt after invoking the ISR (which should cause the device to
stop asserting the irq) instead of acking it when we mask it, before
the ISR.

This patch implements this change, in a new handle_uic_irq(), a
customised irq flow handler for the UIC.  For edge triggered
interrupts, handle_uic_irq() still uses the old flow - we must ack
edge triggered interrupt before the ISR not after, or we could miss a
second event which occurred between invoking the ISR and acking the
irq.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-08-17 11:02:05 +10:00
..
boot [POWERPC] Fixes to allow use of Ebony's flash chips through physmap_of 2007-08-17 11:01:51 +10:00
configs [POWERPC] Fixes to allow use of Ebony's flash chips through physmap_of 2007-08-17 11:01:51 +10:00
kernel [POWERPC] Handle alignment faults on new FP load/store instructions 2007-08-17 11:01:55 +10:00
lib Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
math-emu
mm [POWERPC] Tidy up CONFIG_PPC_MM_SLICES code 2007-08-17 11:01:59 +10:00
oprofile Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
platforms [POWERPC] pseries: Remove dead EEH video code 2007-08-17 11:01:54 +10:00
sysdev [POWERPC] Fix irq flow handler for 4xx UIC 2007-08-17 11:02:05 +10:00
xmon [POWERPC] fix showing xmon help 2007-07-22 21:30:58 +10:00
.gitignore [POWERPC] Add files build to .gitignore 2006-12-04 20:41:29 +11:00
Kconfig [POWERPC] Make endianess of cfg_addr for indirect pci ops runtime 2007-07-23 22:29:09 -05:00
Kconfig.debug Replace CONFIG_SOFTWARE_SUSPEND with CONFIG_HIBERNATION 2007-07-29 16:45:38 -07:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2007-07-19 14:28:19 -07:00