linux/arch/powerpc/sysdev
Anton Vorontsov cccd21027c [POWERPC] QEIC: Implement pluggable handlers, fix MPIC cascading
set_irq_chained_handler overwrites MPIC's handle_irq function
(handle_fasteoi_irq) thus MPIC never gets eoi event from the
cascaded IRQ. This situation hangs MPIC on MPC8568E.

To solve this problem efficiently, QEIC needs pluggable handlers,
specific to the underlaying interrupt controller.

Patch extends qe_ic_init() function to accept low and high interrupt
handlers. To avoid #ifdefs, stack of interrupt handlers specified in
the header file and functions are marked 'static inline', thus
handlers are compiled-in only if actually used (in the board file).
Another option would be to lookup for parent controller and
automatically detect handlers (will waste text size because of
never used handlers, so this option abolished).

qe_ic_init() also changed in regard to support multiplexed high/low
lines as found in MPC8568E-MDS, plus qe_ic_cascade_muxed_mpic()
handler implemented appropriately.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-10-08 08:38:57 -05:00
..
qe_lib [POWERPC] QEIC: Implement pluggable handlers, fix MPIC cascading 2007-10-08 08:38:57 -05:00
axonram.c [POWERPC] axonram: Do not delete gendisks queue in error path 2007-08-25 16:58:27 +10:00
commproc.c [POWERPC] cpm: Describe multi-user ram in its own device node. 2007-10-04 15:47:05 -05:00
commproc.h [POWERPC] 8xx: Infrastructure code cleanup. 2007-10-03 20:36:35 -05:00
cpm2_common.c [POWERPC] cpm: Describe multi-user ram in its own device node. 2007-10-04 15:47:05 -05:00
cpm2_pic.c [POWERPC] cpm2: Infrastructure code cleanup. 2007-10-04 11:02:04 -05:00
cpm2_pic.h [POWERPC] cpm2: CPM2 interrupt controller fix 2007-02-07 14:03:20 +11:00
cpm_common.c [POWERPC] cpm: Describe multi-user ram in its own device node. 2007-10-04 15:47:05 -05:00
dart_iommu.c [POWERPC] Fix section mismatch in dart_iommu.c 2007-08-17 11:02:06 +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] Store the base address in dcr_host_t 2007-10-03 13:25:27 +10:00
fsl_pci.c [POWERPC] FSL: Access PCIe LTSSM register with correct size 2007-10-08 08:38:37 -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] 85xx/86xx: refactor RSTCR reset code 2007-10-08 08:38:47 -05:00
fsl_soc.h [POWERPC] 85xx/86xx: refactor RSTCR reset code 2007-10-08 08:38:47 -05: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] Add an optional device_node pointer to the irq_host 2007-09-14 01:33:20 +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] Add an optional device_node pointer to the irq_host 2007-09-14 01:33:20 +10:00
ipic.h [POWERPC] Add an optional device_node pointer to the irq_host 2007-09-14 01:33:20 +10:00
Makefile [POWERPC] Add early debug console for CPM serial ports. 2007-10-03 20:35:43 -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: Infrastructure code cleanup. 2007-10-03 20:36:35 -05:00
mpc8xx_pic.h [POWERPC] 8xx: mpc885ads pcmcia support 2007-07-10 00:33:51 -05:00
mpic_msi.c [POWERPC] Fix section mismatch in PCI code 2007-09-19 15:25:34 +10:00
mpic_u3msi.c [POWERPC] Inline u3msi_compose_msi_msg() 2007-10-03 09:11:42 +10:00
mpic.c [POWERPC] Update mpic to use dcr_host_t.base 2007-10-03 13:25:27 +10:00
mpic.h [POWERPC] Support setting affinity for U3/U4 MSI sources 2007-09-22 14:49:22 +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] Provide a default irq_host match, which matches on an exact of_node 2007-09-14 01:33:20 +10:00
mv64x60_udbg.c [POWERPC] Add Marvell mv64x60 udbg putc/getc functions 2007-09-22 14:49:21 +10:00
mv64x60.h [POWERPC] Add Marvell mv64x60 udbg putc/getc functions 2007-09-22 14:49:21 +10:00
pmi.c [CELL] pmi: remove support for mutiple devices. 2007-07-20 21:41:34 +02:00
rtc_cmos_setup.c [POWERPC] Add interrupt resource for RTC CMOS driver 2007-08-17 13:18:58 -05: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] Provide a default irq_host match, which matches on an exact of_node 2007-09-14 01:33:20 +10:00
uic.c [POWERPC] Provide a default irq_host match, which matches on an exact of_node 2007-09-14 01:33:20 +10:00
xilinx_intc.c [POWERPC] Virtex: add xilinx interrupt controller driver 2007-10-03 07:23:14 -05:00