You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
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>
20 years ago
..
8253pit.h
Linux-2.6.12-rc2
20 years ago
a.out.h
Linux-2.6.12-rc2
20 years ago
agp.h
[PATCH] AGP fix for Xen VMM
20 years ago
agp_backend.h
Linux-2.6.12-rc2
20 years ago
atomic.h
Linux-2.6.12-rc2
20 years ago
auxvec.h
[PATCH] auxiliary vector cleanups
20 years ago
bitops.h
Linux-2.6.12-rc2
20 years ago
bug.h
[PATCH] remove all kernel BUGs
20 years ago
bugs.h
Linux-2.6.12-rc2
20 years ago
byteorder.h
Linux-2.6.12-rc2
20 years ago
cache.h
Linux-2.6.12-rc2
20 years ago
cacheflush.h
Linux-2.6.12-rc2
20 years ago
checksum.h
Linux-2.6.12-rc2
20 years ago
compiler.h
Linux-2.6.12-rc2
20 years ago
console.h
Linux-2.6.12-rc2
20 years ago
core_apecs.h
Linux-2.6.12-rc2
20 years ago
core_cia.h
Linux-2.6.12-rc2
20 years ago
core_irongate.h
Linux-2.6.12-rc2
20 years ago
core_lca.h
Linux-2.6.12-rc2
20 years ago
core_marvel.h
Linux-2.6.12-rc2
20 years ago
core_mcpcia.h
Linux-2.6.12-rc2
20 years ago
core_polaris.h
Linux-2.6.12-rc2
20 years ago
core_t2.h
Linux-2.6.12-rc2
20 years ago
core_titan.h
Linux-2.6.12-rc2
20 years ago
core_tsunami.h
Linux-2.6.12-rc2
20 years ago
core_wildfire.h
Linux-2.6.12-rc2
20 years ago
cputime.h
Linux-2.6.12-rc2
20 years ago
current.h
Linux-2.6.12-rc2
20 years ago
delay.h
Linux-2.6.12-rc2
20 years ago
div64.h
Linux-2.6.12-rc2
20 years ago
dma-mapping.h
Linux-2.6.12-rc2
20 years ago
dma.h
Linux-2.6.12-rc2
20 years ago
elf.h
[PATCH] auxiliary vector cleanups
20 years ago
emergency-restart.h
[PATCH] Add emergency_restart()
20 years ago
err_common.h
Linux-2.6.12-rc2
20 years ago
err_ev6.h
Linux-2.6.12-rc2
20 years ago
err_ev7.h
Linux-2.6.12-rc2
20 years ago
errno.h
[PATCH] add EOWNERDEAD and ENOTRECOVERABLE version 2
20 years ago
fcntl.h
[PATCH] Clean up struct flock definitions
20 years ago
floppy.h
Linux-2.6.12-rc2
20 years ago
fpu.h
Linux-2.6.12-rc2
20 years ago
futex.h
[PATCH] FUTEX_WAKE_OP: pthread_cond_signal() speedup
20 years ago
gct.h
Linux-2.6.12-rc2
20 years ago
gentrap.h
Linux-2.6.12-rc2
20 years ago
hardirq.h
Linux-2.6.12-rc2
20 years ago
hw_irq.h
Linux-2.6.12-rc2
20 years ago
hwrpb.h
Linux-2.6.12-rc2
20 years ago
ide.h
Linux-2.6.12-rc2
20 years ago
io.h
Linux-2.6.12-rc2
20 years ago
io_trivial.h
Linux-2.6.12-rc2
20 years ago
ioctl.h
Linux-2.6.12-rc2
20 years ago
ioctls.h
Linux-2.6.12-rc2
20 years ago
ipcbuf.h
Linux-2.6.12-rc2
20 years ago
irq.h
Linux-2.6.12-rc2
20 years ago
jensen.h
Linux-2.6.12-rc2
20 years ago
kmap_types.h
Linux-2.6.12-rc2
20 years ago
linkage.h
Linux-2.6.12-rc2
20 years ago
local.h
Linux-2.6.12-rc2
20 years ago
machvec.h
Linux-2.6.12-rc2
20 years ago
mc146818rtc.h
Linux-2.6.12-rc2
20 years ago
md.h
Linux-2.6.12-rc2
20 years ago
mman.h
Linux-2.6.12-rc2
20 years ago
mmu.h
Linux-2.6.12-rc2
20 years ago
mmu_context.h
Linux-2.6.12-rc2
20 years ago
mmzone.h
[PATCH] remove non-DISCONTIG use of pgdat->node_mem_map
20 years ago
module.h
Linux-2.6.12-rc2
20 years ago
msgbuf.h
Linux-2.6.12-rc2
20 years ago
namei.h
Linux-2.6.12-rc2
20 years ago
numnodes.h
Linux-2.6.12-rc2
20 years ago
page.h
[PATCH] mm: consolidate get_order
20 years ago
pal.h
Linux-2.6.12-rc2
20 years ago
param.h
Linux-2.6.12-rc2
20 years ago
parport.h
Linux-2.6.12-rc2
20 years ago
pci.h
[PATCH] Make sparc64 use setup-res.c
20 years ago
percpu.h
Linux-2.6.12-rc2
20 years ago
pgalloc.h
Linux-2.6.12-rc2
20 years ago
pgtable.h
[PATCH] alpha: pgprot_uncached() comment
20 years ago
poll.h
Linux-2.6.12-rc2
20 years ago
posix_types.h
Linux-2.6.12-rc2
20 years ago
processor.h
Linux-2.6.12-rc2
20 years ago
ptrace.h
Linux-2.6.12-rc2
20 years ago
reg.h
Linux-2.6.12-rc2
20 years ago
regdef.h
Linux-2.6.12-rc2
20 years ago
resource.h
Linux-2.6.12-rc2
20 years ago
rtc.h
Linux-2.6.12-rc2
20 years ago
rwsem.h
Linux-2.6.12-rc2
20 years ago
scatterlist.h
Linux-2.6.12-rc2
20 years ago
sections.h
Linux-2.6.12-rc2
20 years ago
segment.h
Linux-2.6.12-rc2
20 years ago
semaphore.h
Linux-2.6.12-rc2
20 years ago
sembuf.h
Linux-2.6.12-rc2
20 years ago
serial.h
[PATCH] Serial: Split 8250 port table (part 2)
20 years ago
setup.h
Linux-2.6.12-rc2
20 years ago
sfp-machine.h
Linux-2.6.12-rc2
20 years ago
shmbuf.h
Linux-2.6.12-rc2
20 years ago
shmparam.h
Linux-2.6.12-rc2
20 years ago
sigcontext.h
Linux-2.6.12-rc2
20 years ago
siginfo.h
[PATCH] consolidate SIGEV_PAD_SIZE
20 years ago
signal.h
[PATCH] asm/signal.h unification
20 years ago
smp.h
Revert broken "statement with no effect" warning fix
20 years ago
socket.h
[NET]: Introduce SO_{SND,RCV}BUFFORCE socket options
20 years ago
sockios.h
Linux-2.6.12-rc2
20 years ago
spinlock.h
Linux-2.6.12-rc2
20 years ago
stat.h
Linux-2.6.12-rc2
20 years ago
statfs.h
Linux-2.6.12-rc2
20 years ago
string.h
Linux-2.6.12-rc2
20 years ago
suspend.h
Linux-2.6.12-rc2
20 years ago
sysinfo.h
Linux-2.6.12-rc2
20 years ago
system.h
[PATCH] alpha xchg fix
20 years ago
termbits.h
Linux-2.6.12-rc2
20 years ago
termios.h
Linux-2.6.12-rc2
20 years ago
thread_info.h
Linux-2.6.12-rc2
20 years ago
timex.h
Linux-2.6.12-rc2
20 years ago
tlb.h
Linux-2.6.12-rc2
20 years ago
tlbflush.h
Linux-2.6.12-rc2
20 years ago
topology.h
Linux-2.6.12-rc2
20 years ago
types.h
[PATCH] sab: consolidate kmem_bufctl_t
20 years ago
uaccess.h
[PATCH] remove verify_area(): remove verify_area() from various uaccess.h headers
20 years ago
ucontext.h
Linux-2.6.12-rc2
20 years ago
unaligned.h
Linux-2.6.12-rc2
20 years ago
unistd.h
[PATCH] new alpha syscalls
20 years ago
user.h
Linux-2.6.12-rc2
20 years ago
vga.h
Linux-2.6.12-rc2
20 years ago
xor.h
Linux-2.6.12-rc2
20 years ago