kernel-fxtec-pro1x/arch/powerpc/platforms/powermac
Benjamin Herrenschmidt 8e609d5e7b powerpc/pmac: Simplify old pmac PIC interrupt handling
In the old days, we treated all interrupts from the legacy Apple home made
interrupt controllers as level, with a trick reading the "level" register
along with the "event" register to work arounds bugs where it would
occasionally fail to latch some events.

Doing so appeared to work fine for both level and edge interrupts.

Later on, we discovered in Darwin source the magic masks that define which
interrupts are actually level and which are edge, and implemented a
different algorithm, more similar to what Apple does, that treats those
differently.

I recently discovered however that this caused problems (including loss
of interrupts) with an old Wallstreet PowerBook when trying to use the
internal modem (connected to a cascaded controller).

It looks like some interrupts are treated as edge while they are really
level and I'm starting to seriously doubt the correctness of the Darwin
code (which has other obvious bugs when you read it, so ...)

This patch reverts to our original behaviour of treating everything as
a level interrupt. It appears to solve the problems with the modem on
the Wallstreet and everything else seems to be working properly as well.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2011-12-16 11:10:11 +11:00
..
backlight.c powerpc: add export.h to files making use of EXPORT_SYMBOL 2011-10-31 19:30:37 -04:00
bootx_init.c
cache.S
cpufreq_32.c [CPUFREQ] Remove the pm_message_t argument from driver suspend 2011-03-16 17:54:33 -04:00
cpufreq_64.c powerpc/cpumask: Use cpu_online_mask 2010-05-06 17:16:12 +10:00
feature.c powerpc: add export.h to files making use of EXPORT_SYMBOL 2011-10-31 19:30:37 -04:00
Kconfig powerpc: Add kconfig for muxed smp ipi support 2011-05-19 15:31:05 +10:00
low_i2c.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
Makefile Fix common misspellings 2011-03-31 11:26:23 -03:00
nvram.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
pci.c powerpc: Fix device-tree matching for Apple U4 bridge 2011-09-29 19:22:40 -07:00
pfunc_base.c
pfunc_core.c powerpc/powermac/pfunc_core.c: Add of_node_put to avoid memory leak 2010-09-02 14:07:33 +10:00
pic.c powerpc/pmac: Simplify old pmac PIC interrupt handling 2011-12-16 11:10:11 +11:00
pmac.h powerpc/psurge: Create a irq_host for secondary cpus 2011-05-19 15:31:51 +10:00
setup.c powerpc/powermac: Add missing of_node_put 2011-11-25 14:11:27 +11:00
sleep.S
smp.c powerpc: Mark IPI interrupts IRQF_NO_THREAD 2011-11-25 14:14:38 +11:00
time.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
udbg_adb.c
udbg_scc.c