linux/include/asm-arm
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
..
arch-aaec2000 [PATCH] ARM: 2686/2: AAEC-2000 Core support 2005-06-20 18:51:05 +01:00
arch-cl7500 [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00
arch-clps711x [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00
arch-ebsa110 [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00
arch-ebsa285 [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00
arch-epxa10db [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00
arch-h720x [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00
arch-imx [PATCH] ARM: 2687/1: i.MX framebuffer: make dmacr register platform configurable 2005-07-17 20:15:36 +01:00
arch-integrator [PATCH] ARM SMP: Add missed files from Integrator/CP platform 2005-06-19 09:52:07 +01:00
arch-iop3xx [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00
arch-ixp4xx [ARM] 2869/1: ixp4xx: correct ioread*/iowrite* 2005-08-31 21:45:14 +01:00
arch-ixp2000 [PATCH] ARM: 2793/1: platform serial support for ixp2000 2005-07-10 19:44:53 +01:00
arch-l7200 [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00
arch-lh7a40x [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00
arch-omap [ARM] 2888/1: OMAP 3/4: Update omap include files, take 2 2005-09-07 17:20:27 +01:00
arch-pxa [PATCH] w100fb: Update corgi platform code to match new driver 2005-09-07 16:57:53 -07:00
arch-rpc [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00
arch-s3c2410 [ARM] 2889/1: S3C2410 - Add machine Anubis 2005-09-07 11:49:23 +01:00
arch-sa1100 [MFD] Add SA11x0 MCP platform device support 2005-08-18 10:10:46 +01:00
arch-shark [PATCH] ARM: 2815/1: Shark: new defconfig, fixes with __io and serial ports 2005-07-16 17:17:18 +01:00
arch-versatile [PATCH] ARM: 2693/1: Add PCI support for Versatile/PB 2005-06-20 18:51:06 +01:00
hardware [ARM] 2882/1: pxa2xx_sharpsl: Update PCMCIA driver to support variety of new hardware 2005-09-05 20:49:54 +01:00
mach [ARM] Remove unused DYN_TICK_* macros 2005-09-05 10:21:04 +01:00
a.out.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
apm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
assembler.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
bitops.h [ARM SMP] Fix another ARMv6 bitop problem 2005-07-28 20:36:26 +01:00
bug.h [PATCH] qualifiers in return types - easy cases 2005-08-23 18:43:45 -07:00
bugs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -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 [PATCH] ARM: Add common CACHE_COLOUR macro 2005-06-20 11:31:09 +01:00
checksum.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpu-multi32.h [PATCH] qualifiers in return types - easy cases 2005-08-23 18:43:45 -07:00
cpu-single.h [PATCH] qualifiers in return types - easy cases 2005-08-23 18:43:45 -07:00
cpu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cputime.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
current.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
delay.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
div64.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dma-mapping.h [PATCH] arm: add comment about dma_supported() 2005-04-16 15:23:57 -07:00
dma.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
domain.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ecard.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
elf.h [PATCH] ARM: 2696/1: remove ';' in ELF_DATA define in asm-arm{,26}/elf.h 2005-06-03 20:52:26 +01:00
emergency-restart.h [PATCH] Add emergency_restart() 2005-07-26 14:35:41 -07:00
errno.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcntl.h [PATCH] Clean up struct flock64 definitions 2005-09-07 16:57:38 -07:00
fiq.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
floppy.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fpstate.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
glue.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
hardware.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ide.h [PATCH] ARM: 2758/1: Fix comment in file header to read "ARM" instead i386 2005-06-27 15:58:39 +01:00
io.h [PATCH] ARM: Fix speeling eroor in io.h 2005-06-27 14:23:38 +01:00
ioctl.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ioctls.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipc.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
irq.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kmap_types.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
leds.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
limits.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
linkage.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
local.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
locks.h [PATCH] ARM SMP: Add ARMv6 memory barriers 2005-07-26 19:44:26 +01:00
mc146818rtc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
memory.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mman.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mmu_context.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mmu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mmzone.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
module.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
mtd-xip.h [MTD] XIP cleanup 2005-07-07 16:50:16 +02:00
namei.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
numnodes.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nwflash.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
page.h [PATCH] mm: consolidate get_order 2005-09-05 00:05:39 -07:00
param.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
parport.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci.h [PATCH] Make sparc64 use setup-res.c 2005-09-08 14:57:25 -07:00
percpu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pgalloc.h [PATCH] ARM: Factor out common pmd_populate functionality 2005-06-22 20:58:29 +01:00
pgtable.h [ARM] Control v6 'global' bit via Linux PTE entries 2005-08-10 16:18:35 +01:00
poll.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
proc-fns.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
processor.h [PATCH] ARM: Fix kernel stack offset calculations 2005-05-05 13:11:00 +01:00
procinfo.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ptrace.h [PATCH] ARM: showregs 2005-04-17 15:50:36 +01:00
resource.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rtc.h [PATCH] ARM: RTC: allow driver methods to return error 2005-04-30 12:19:28 +01:00
scatterlist.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07: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-helper.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
sembuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
serial.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
shmbuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
shmparam.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigcontext.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
siginfo.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
signal.h [PATCH] ARM: Generic Dynamic Tick Timer support for ARM, take 4 2005-06-25 19:39:45 +01:00
sizes.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smp.h [PATCH] ARM SMP: Rename cpu_present_mask to cpu_possible_map 2005-07-11 17:38:36 +01:00
socket.h [NET]: Introduce SO_{SND,RCV}BUFFORCE socket options 2005-08-29 15:31:35 -07:00
sockios.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
spinlock.h [PATCH] ARM SMP: Add ARMv6 memory barriers 2005-07-26 19:44:26 +01:00
stat.h [PATCH] ARM: Fix new-ABI layout of struct stat64 2005-07-04 13:02:46 +01:00
statfs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
string.h [PATCH] ARM: 2653/1: Fix memset and memzero macro double-reference of parameters 2005-04-25 23:40:05 +01:00
suspend.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
system.h [PATCH] ARM SMP: Add ARMv6 memory barriers 2005-07-26 19:44:26 +01:00
termbits.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
termios.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
therm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
thread_info.h [PATCH] streamline preempt_count type across archs 2005-06-23 09:45:19 -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 [PATCH] ARM SMP: TLB implementations only affect local CPU 2005-06-28 13:40:39 +01: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
unaligned.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unistd.h [ARM] 2865/2: fix fadvise64_64 syscall argument passing 2005-09-01 12:37:13 +01:00
user.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vfp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vfpmacros.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
xor.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00