David S. Miller
085ae41f66
[PATCH] Make sparc64 use setup-res.c
...
There were three changes necessary in order to allow
sparc64 to use setup-res.c:
1) Sparc64 roots the PCI I/O and MEM address space using
parent resources contained in the PCI controller structure.
I'm actually surprised no other platforms do this, especially
ones like Alpha and PPC{,64}. These resources get linked into the
iomem/ioport tree when PCI controllers are probed.
So the hierarchy looks like this:
iomem --|
PCI controller 1 MEM space --|
device 1
device 2
etc.
PCI controller 2 MEM space --|
...
ioport --|
PCI controller 1 IO space --|
...
PCI controller 2 IO space --|
...
You get the idea. The drivers/pci/setup-res.c code allocates
using plain iomem_space and ioport_space as the root, so that
wouldn't work with the above setup.
So I added a pcibios_select_root() that is used to handle this.
It uses the PCI controller struct's io_space and mem_space on
sparc64, and io{port,mem}_resource on every other platform to
keep current behavior.
2) quirk_io_region() is buggy. It takes in raw BUS view addresses
and tries to use them as a PCI resource.
pci_claim_resource() expects the resource to be fully formed when
it gets called. The sparc64 implementation would do the translation
but that's absolutely wrong, because if the same resource gets
released then re-claimed we'll adjust things twice.
So I fixed up quirk_io_region() to do the proper pcibios_bus_to_resource()
conversion before passing it on to pci_claim_resource().
3) I was mistakedly __init'ing the function methods the PCI controller
drivers provide on sparc64 to implement some parts of these
routines. This was, of course, easy to fix.
So we end up with the following, and that nasty SPARC64 makefile
ifdef in drivers/pci/Makefile is finally zapped.
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-09-08 14:57:25 -07:00
..
8xx_immap.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
a.out.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
amigahw.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
amigaints.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
amigappc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
amigayle.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
amipcmcia.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ans-lcd.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
atomic.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
auxvec.h
[PATCH] auxiliary vector cleanups
2005-09-07 16:57:21 -07:00
backlight.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
bitops.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
bootinfo.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
bootx.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
bseip.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
btext.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
bug.h
[PATCH] remove all kernel BUGs
2005-05-01 08:59:01 -07:00
byteorder.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
cache.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
cacheflush.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
checksum.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
commproc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
cpm2.h
[PATCH] ppc32: Add proper prototype for cpm2_reset()
2005-07-27 16:25:55 -07:00
cputable.h
[PATCH] ppc32: Support 36-bit physical addressing on e500
2005-04-16 15:24:22 -07:00
current.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
dbdma.h
[PATCH] ppc64: very basic desktop g5 sound support
2005-04-16 15:24:32 -07:00
delay.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
dma-mapping.h
[PATCH] ppc32: fix asm-ppc/dma-mapping.h sparse warning
2005-09-05 00:05:55 -07:00
dma.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
elf.h
[PATCH] auxiliary vector cleanups
2005-09-07 16:57:21 -07:00
floppy.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
futex.h
[PATCH] FUTEX_WAKE_OP: pthread_cond_signal() speedup
2005-09-07 16:57:17 -07:00
gg2.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
gt64260.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
gt64260_defs.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
hardirq.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
harrier.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
hawk.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
hawk_defs.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
heathrow.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
highmem.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
hw_irq.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
hydra.h
[PATCH] ppc trivial iomem annotations: chrp
2005-04-24 14:58:08 -07:00
i8259.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ibm4xx.h
[PATCH] ppc32: Remove board support for REDWOOD
2005-09-05 00:05:54 -07:00
ibm44x.h
[PATCH] ppc32: Fix PPC440SP SRAM controller DCRs
2005-08-18 12:53:58 -07:00
ibm403.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ibm405.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ibm_ocp.h
[PATCH] ppc32: add missing sysfs node for ocp_func_emac_data.phy_feat_exc
2005-09-07 16:57:15 -07:00
ibm_ocp_pci.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ide.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
immap_85xx.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
immap_cpm2.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
io.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ipcbuf.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ipic.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
irq.h
[PATCH] CHECK_IRQ_PER_CPU() to avoid dead code in __do_IRQ()
2005-09-07 16:57:29 -07:00
kexec.h
[PATCH] kexec-ppc: fix for ksysfs crash_notes
2005-07-12 16:01:03 -07:00
keylargo.h
[PATCH] ppc64: very basic desktop g5 sound support
2005-04-16 15:24:32 -07:00
kgdb.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
kmap_types.h
[PATCH] ppc32: Don't sleep in flush_dcache_icache_page()
2005-09-05 00:05:57 -07:00
m48t35.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
m8260_pci.h
[PATCH] ppc32: Support for 82xx PQII on-chip PCI bridge
2005-05-28 16:46:15 -07:00
machdep.h
[PATCH] kexec: kexec ppc support
2005-06-25 16:24:51 -07:00
macio.h
[PATCH] openfirmware: generate device table for userspace
2005-07-06 12:55:20 -07:00
md.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mediabay.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mk48t59.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mmu.h
[PATCH] ppc32: Add support for Freescale e200 (Book-E) core
2005-06-25 16:24:26 -07:00
mmu_context.h
[PATCH] ppc32: fix destroy_context() race condition
2005-07-13 11:25:24 -07:00
mpc8xx.h
[PATCH] ppc32: Remove board support for SPD823TS
2005-09-05 00:05:55 -07:00
mpc10x.h
[PATCH] ppc32: Make the UARTs on MPC824x individual platform devices
2005-07-27 16:25:55 -07:00
mpc52xx.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mpc52xx_psc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mpc83xx.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mpc85xx.h
[PATCH] ppc32: Added support for all MPC8548 internal interrupts
2005-06-21 18:46:24 -07:00
mpc8260.h
[PATCH] ppc32: Add ppc_sys descriptions for PowerQUICC II devices
2005-09-05 00:05:56 -07:00
mpc8260_pci9.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
msgbuf.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mv64x60.h
[PATCH] ppc32: mv64x60 updates & enhancements
2005-09-05 00:06:00 -07:00
mv64x60_defs.h
[PATCH] ppc32: mv64x60 updates & enhancements
2005-09-05 00:06:00 -07:00
nvram.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ocp.h
[PATCH] ppc32: Remove FSL OCP support
2005-06-25 16:24:27 -07:00
ocp_ids.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
of_device.h
[PATCH] openfirmware: generate device table for userspace
2005-07-06 12:55:20 -07:00
ohare.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
open_pic.h
[PATCH] ppc32: Bump PMU interrupt priority
2005-06-27 15:11:42 -07:00
page.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
param.h
[PATCH] ppc32: add CONFIG_HZ
2005-09-05 00:05:58 -07:00
parport.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pc_serial.h
[PATCH] Serial: Split 8250 port table (part 2)
2005-06-29 18:45:19 +01:00
pci-bridge.h
[PATCH] ppc iomem annotations: ->io_base_virt
2005-04-25 07:55:57 -07:00
pci.h
[PATCH] Make sparc64 use setup-res.c
2005-09-08 14:57:25 -07:00
perfmon.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pgalloc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pgtable.h
[PATCH] ppc32: ppc440 pagetable attributes (comments updates)
2005-08-06 09:23:57 -07:00
pmac_feature.h
[PATCH] ppc64: Add missing include
2005-09-06 16:07:35 +10:00
pmac_low_i2c.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pnp.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
posix_types.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ppc4xx_dma.h
[PATCH] ppc32: fix ppc4xx stb03xxx dma build
2005-08-18 12:53:58 -07:00
ppc4xx_pic.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ppc_asm.h
[PATCH] ppc32: add 440ep support
2005-08-01 19:14:01 -07:00
ppc_sys.h
[PATCH] ppc32: ppc_sys system on chip identification additions
2005-09-05 00:05:58 -07:00
ppcboot.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
prep_nvram.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
processor.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
prom.h
[PATCH] ppc32: fix compilation error in include/asm/prom.h
2005-04-16 15:24:28 -07:00
ptrace.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
raven.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
reg.h
[PATCH] ppc32: Add support for Freescale e200 (Book-E) core
2005-06-25 16:24:26 -07:00
reg_booke.h
[PATCH] ppc32: Add support for Freescale e200 (Book-E) core
2005-06-25 16:24:26 -07:00
residual.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
rheap.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
rtc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
rwsem.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
scatterlist.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
seccomp.h
Add missing asm-ppc/seccomp.h. Must learn to use git properly.
2005-05-11 11:36:21 +01:00
sections.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
segment.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
semaphore.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
serial.h
[PATCH] ppc32: Remove board support for MCPN765
2005-09-05 00:05:54 -07:00
setup.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
sigcontext.h
[PATCH] ppc32: add <linux/compiler.h> to <asm/sigcontext.h>
2005-06-06 17:02:02 -07:00
signal.h
[PATCH] asm/signal.h unification
2005-05-04 07:33:15 -07:00
smp.h
[PATCH] smp_processor_id() cleanup
2005-06-21 18:46:13 -07:00
spinlock.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
stat.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
statfs.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
suspend.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
system.h
[PATCH] ppc32: export cacheable_memcpy()
2005-09-05 00:06:00 -07:00
thread_info.h
[PATCH] streamline preempt_count type across archs
2005-06-23 09:45:19 -07:00
time.h
[PATCH] qualifiers in return types - easy cases
2005-08-23 18:43:45 -07:00
timex.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
tlb.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
tlbflush.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
todc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
topology.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
traps.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
types.h
[PATCH] sab: consolidate kmem_bufctl_t
2005-09-05 00:05:48 -07:00
uaccess.h
[PATCH] remove verify_area(): remove verify_area() from various uaccess.h headers
2005-09-07 16:57:35 -07:00
ucontext.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
uninorth.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
unistd.h
[PATCH] ppc32: inotify syscalls
2005-07-30 10:14:46 -07:00
user.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
vga.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
xmon.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
xparameters.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
zorro.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00