linux/arch/powerpc/kernel
Benjamin Herrenschmidt dae4828d66 [POWERPC] Fix irq routing on some 32-bit PowerMacs
The changes to use pci_read_irq_line() broke interrupt parsing
on some 32-bit powermacs (oops).  The reason is a bit obscure.
The code to parse interrupts happens earlier now, during
pcibios_fixup() as the PCI bus is being probed.  However, the
current implementation pci_device_to_OF_node() for 32-bit
powerpc relies, on machines like PowerMac which renumber PCI buses,
on a table called pci_OF_bus_map containing a map of bus numbers
between the kernel and the firmware which is setup only later.
Thus, it fails to match the device node.  In addition, some of
Apple internal PCI devices lack a proper PCI_INTERRUPT_PIN, thus
preventing the fallback mapping code to work.

This patch fixes it by making pci_device_to_OF_node() 32-bit
implementation use a different algorithm that works without
using the pci_OF_bus_map thing (which I intend to deprecate
anyway). It's a bit slower but that function isn't called in
any hot path hopefully.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-11 14:45:53 +11:00
..
vdso32 [POWERPC] Support feature fixups in vdso's 2006-10-25 11:54:07 +10:00
vdso64 [POWERPC] Cell timebase bug workaround 2006-10-25 11:54:18 +10:00
align.c
asm-offsets.c [POWERPC] Lazy interrupt disabling for 64-bit machines 2006-10-16 16:31:36 +10:00
audit.c [PATCH] audit: AUDIT_PERM support 2006-09-11 13:32:30 -04:00
binfmt_elf32.c
btext.c [POWERPC] Fix various offb issues 2006-11-01 14:52:48 +11:00
compat_audit.c [PATCH] audit: AUDIT_PERM support 2006-09-11 13:32:30 -04:00
cpu_setup_6xx.S
cpu_setup_ppc970.S [POWERPC] powerpc: Enable DEEPNAP power savings mode on 970MP 2006-10-16 16:32:25 +10:00
cputable.c [POWERPC] Add the e300c3 core to the CPU table. 2006-12-04 20:42:06 +11:00
crash_dump.c [POWERPC] Make doc comments extractable 2006-08-08 17:07:04 +10:00
crash.c [PATCH] Kexec / Kdump: Unify elf note code 2006-12-07 08:39:46 -08:00
dma_64.c [POWERPC] Make direct DMA use node local allocations 2006-12-04 20:38:59 +11:00
entry_32.S
entry_64.S [POWERPC] iSeries: Eliminate "exceeds stub group size" warnings 2006-12-04 20:41:31 +11:00
firmware.c
fpu.S [POWERPC] Restore copyright notice in arch/powerpc/kernel/fpu.S 2006-08-30 14:45:35 +10:00
head_4xx.S
head_8xx.S
head_32.S
head_44x.S
head_64.S [POWERPC] iSeries: Eliminate "exceeds stub group size" warnings 2006-12-04 20:41:31 +11:00
head_booke.h
head_fsl_booke.S
ibmebus.c [POWERPC] Replace kmalloc+memset with kzalloc 2006-12-04 20:42:09 +11:00
idle_6xx.S
idle_power4.S [POWERPC] Lazy interrupt disabling for 64-bit machines 2006-10-16 16:31:36 +10:00
idle.c [POWERPC] cell: use ppc_md->power_save instead of cbe_idle_loop 2006-10-25 14:20:22 +10:00
init_task.c [PATCH] nsproxy: move init_nsproxy into kernel/nsproxy.c 2006-10-02 07:57:20 -07:00
io.c [POWERPC] Merge 32 and 64 bits asm-powerpc/io.h 2006-12-04 20:39:05 +11:00
iomap.c [POWERPC] Merge 32 and 64 bits asm-powerpc/io.h 2006-12-04 20:39:05 +11:00
iommu.c [POWERPC] Refactor 64 bits DMA operations 2006-12-04 20:38:40 +11:00
irq.c [POWERPC] Make soft_enabled irqs preempt safe 2006-12-04 20:39:20 +11:00
kprobes.c [PATCH] kprobes: enable booster on the preemptible kernel 2006-12-07 08:39:38 -08:00
l2cr_6xx.S
legacy_serial.c Merge branch 'merge' 2006-08-25 14:56:07 +10:00
lparcfg.c
lparmap.c
machine_kexec_32.c
machine_kexec_64.c Merge branch 'merge' 2006-08-25 14:56:07 +10:00
machine_kexec.c [POWERPC] Move some kexec logic into machine_kexec.c 2006-08-17 16:41:10 +10:00
Makefile [POWERPC] iSeries: head_64.o needs to depend on lparmap.s 2006-12-08 17:21:06 +11:00
misc_32.S [POWERPC] Consolidate feature fixup code 2006-10-25 11:42:10 +10:00
misc_64.S [POWERPC] Consolidate feature fixup code 2006-10-25 11:42:10 +10:00
misc.S [POWERPC] convert string i/o operations to C 2006-09-20 14:06:18 +10:00
module_32.c [POWERPC] Support feature fixups in modules 2006-10-25 11:54:13 +10:00
module_64.c [POWERPC] Support feature fixups in modules 2006-10-25 11:54:13 +10:00
nvram_64.c
of_device.c [POWERPC] Add missing EXPORTS for mpc52xx support 2006-12-05 11:34:37 +11:00
of_platform.c [POWERPC] of_platform_make_bus_id(): make `magic' int 2006-12-08 17:10:22 +11:00
paca.c [POWERPC] Implement SLB shadow buffer 2006-08-08 17:08:56 +10:00
pci_32.c [POWERPC] Fix irq routing on some 32-bit PowerMacs 2006-12-11 14:45:53 +11:00
pci_64.c [POWERPC] Fix mmap of PCI resource with hack for X 2006-12-08 17:21:06 +11:00
pci_dn.c
pmc.c [POWERPC] Fix oprofile support for e500 in arch/powerpc 2006-11-01 14:52:48 +11:00
ppc32.h
ppc_ksyms.c [POWERPC] Lazy interrupt disabling for 64-bit machines 2006-10-16 16:31:36 +10:00
proc_ppc64.c
process.c [POWERPC] Better check in show_instructions 2006-10-16 15:53:30 +10:00
prom_init.c [POWERPC] Support ibm,dynamic-reconfiguration-memory nodes 2006-12-11 13:49:49 +11:00
prom_parse.c [POWERPC] Fix OF pci flags parsing 2006-12-04 20:41:49 +11:00
prom.c [POWERPC] Support ibm,dynamic-reconfiguration-memory nodes 2006-12-11 13:49:49 +11:00
ptrace32.c
ptrace-common.h
ptrace.c [POWERPC] Fix PPC32 SECCOMP, unexport do_syscall_trace_{enter,leave} 2006-09-26 15:24:34 +10:00
rtas_flash.c [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
rtas_pci.c [POWERPC] Merge 32 and 64 bits asm-powerpc/io.h 2006-12-04 20:39:05 +11:00
rtas-proc.c
rtas-rtc.c
rtas.c [POWERPC] Add rtas_service_present() helper 2006-12-08 17:10:22 +11:00
semaphore.c
setup_32.c [POWERPC] Distinguish POWER6 partition modes and tell userspace 2006-12-04 20:40:16 +11:00
setup_64.c [POWERPC] Distinguish POWER6 partition modes and tell userspace 2006-12-04 20:40:16 +11:00
setup-common.c [POWERPC] Fix xmon=off and cleanup xmon initialisation 2006-10-04 14:52:22 +10:00
setup.h
signal_32.c [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
signal_64.c
smp-tbsync.c [POWERPC] Replace kmalloc+memset with kzalloc 2006-12-04 20:42:09 +11:00
smp.c [POWERPC] cell: add cpufreq driver for Cell BE processor 2006-10-25 14:20:22 +10:00
swsusp_32.S [PATCH] Change the name of pagedir_nosave 2006-09-26 08:49:01 -07:00
sys_ppc32.c [POWERPC] fix missing #include in sys_ppc32.c 2006-12-04 20:41:19 +11:00
syscalls.c [PATCH] namespaces: utsname: switch to using uts namespaces 2006-10-02 07:57:21 -07:00
sysfs.c [POWERPC] Add SPURR SPR to sysfs 2006-12-09 11:39:06 +11:00
systbl.S
tau_6xx.c
time.c [POWERPC] iSeries: fix time.c for combined build 2006-12-04 20:39:15 +11:00
traps.c [POWERPC] Merge 32 and 64 bits asm-powerpc/io.h 2006-12-04 20:39:05 +11:00
udbg_16550.c
udbg.c
vdso.c [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
vecemu.c
vector.S
vio.c [POWERPC] Refactor 64 bits DMA operations 2006-12-04 20:38:40 +11:00
vmlinux.lds.S [PATCH] relocatable kernel: Kallsyms generate relocatable symbols 2006-12-07 02:14:04 +01:00