android_kernel_xiaomi_sdm845/arch/powerpc/sysdev
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
..
qe_lib [POWERPC] qe_lib: export symbols for QE driver to compile as module 2007-07-03 02:04:51 -05:00
axonram.c [CELL] driver for DDR2 memory on AXON 2007-07-20 21:41:42 +02:00
commproc.c [POWERPC] Change rheap functions to use ulongs instead of pointers 2007-05-09 23:01:43 -05:00
cpm2_common.c [POWERPC] Change rheap functions to use ulongs instead of pointers 2007-05-09 23:01:43 -05:00
cpm2_pic.c [POWERPC] cpm2: CPM2 interrupt controller fix 2007-02-07 14:03:20 +11:00
cpm2_pic.h [POWERPC] cpm2: CPM2 interrupt controller fix 2007-02-07 14:03:20 +11:00
dart_iommu.c [POWERPC] DART iommu suspend 2007-05-07 20:31:14 +10:00
dart.h [POWERPC] Use 4kB iommu pages even on 64kB-page systems 2006-11-01 14:52:48 +11:00
dcr-low.S [POWERPC] Generic DCR infrastructure 2006-12-04 16:08:25 +11:00
dcr.c [POWERPC] Export DCR symbols for modules 2007-08-17 11:01:52 +10:00
fsl_pci.c [POWREPC] Fixup a number of modpost warnings on ppc32 2007-07-26 00:16:21 -05:00
fsl_pci.h [POWERPC] Fixup resources on pci_bus for PCIe PHB when no device is connected 2007-07-23 10:27:08 -05:00
fsl_soc.c [POWERPC] Add of_register_i2c_devices() 2007-07-26 16:12:17 +10:00
fsl_soc.h Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/vitb/linux-2.6-PQ 2006-09-28 07:18:28 +10:00
grackle.c [POWERPC] Make endianess of cfg_addr for indirect pci ops runtime 2007-07-23 22:29:09 -05:00
i8259.c [POWERPC] Fix CHRP platforms with only 8259 2006-10-25 13:49:22 +10:00
indirect_pci.c [POWERPC] indirect_pci_ops: Use named structure member initializers 2007-08-17 11:01:54 +10:00
ipic.c [POWERPC] 83xx: Return a point to the struct ipic from ipic_init() 2007-01-26 01:45:32 -06:00
ipic.h [POWERPC] Adapt ipic driver to new host_ops interface, add set_irq_type to set IRQ sense 2006-08-30 10:34:33 +10:00
Makefile [POWERPC] Create common fsl pci/e files based on 86xx platforms 2007-07-23 10:27:07 -05:00
micropatch.c [POWERPC] 8xx: powerpc port of core CPM PIC 2007-02-07 14:03:17 +11:00
mmio_nvram.c [POWERPC] Fix cell's mmio nvram to properly parse device tree 2007-01-22 21:27:35 +11:00
mpc8xx_pic.c [POWERPC] 8xx: powerpc port of core CPM PIC 2007-02-07 14:03:17 +11:00
mpc8xx_pic.h [POWERPC] 8xx: mpc885ads pcmcia support 2007-07-10 00:33:51 -05:00
mpic_msi.c [POWERPC] MPIC MSI allocator 2007-05-08 13:43:48 +10:00
mpic_u3msi.c [POWERPC] MPIC U3/U4 MSI backend 2007-05-08 13:46:48 +10:00
mpic.c [POWERPC] MPIC protected sources 2007-07-22 21:30:59 +10:00
mpic.h [POWERPC] MPIC U3/U4 MSI backend 2007-05-08 13:46:48 +10:00
mv64x60_dev.c [WATCHDOG] mv64x60_wdt: Add arch/powerpc platform support 2007-07-24 21:16:02 +00:00
mv64x60_pci.c [POWERPC] Make endianess of cfg_addr for indirect pci ops runtime 2007-07-23 22:29:09 -05:00
mv64x60_pic.c [POWERPC] Add interrupt support for Marvell mv64x60 chips 2007-05-12 11:32:49 +10:00
mv64x60.h [POWERPC] Add Marvell mv64x60 PCI bridge support 2007-05-12 11:32:50 +10:00
pmi.c [CELL] pmi: remove support for mutiple devices. 2007-07-20 21:41:34 +02:00
rtc_cmos_setup.c [POWERPC] Create add_rtc() function to enable the RTC CMOS driver 2007-07-11 13:24:40 +10:00
timer.c [POWERPC] Use mktime in timer sysdev 2007-06-25 16:56:09 +10:00
tsi108_dev.c [POWERPC] Fix problems with device tree representation of TSI-1xx bridges 2007-06-14 22:30:17 +10:00
tsi108_pci.c [POWERPC] tsi108_direct_pci_ops: Use named structure member initializers 2007-08-17 11:01:54 +10:00
uic.c [POWERPC] Fix irq flow handler for 4xx UIC 2007-08-17 11:02:05 +10:00