OpenCloudOS-Kernel/arch/sparc64/kernel
David S. Miller 01f94c4a6c [SPARC64]: Fix sabre pci controllers with new probing scheme.
The SIMBA APB bridge is strange, it is a PCI bridge but it lacks
some standard OF properties, in particular it lacks a 'ranges'
property.

What you have to do is read the IO and MEM range registers in
the APB bridge to determine the ranges handled by each bridge.
So fill in the bus resources by doing that.

Since we now handle this quirk in the generic PCI and OF device
probing layers, we can flat out eliminate all of that code from
the sabre pci controller driver.

In fact we can thus eliminate completely another quirk of the sabre
driver.  It tried to make the two APB bridges look like PBMs but that
makes zero sense now (and it's questionable whether it ever made sense).
So now just use pbm_A and probe the whole PCI hierarchy using that as
the root.

This simplification allows many future cleanups to occur.

Also, I've found yet another quirk that needs to be worked around
while testing this.  You can't use the 'class-code' OF firmware
property, especially for IDE controllers.  We have to read the value
out of PCI config space or else we'll see the value the device was
showing before it was programmed into native mode.

I'm starting to think it might be wise to just read all of the values
out of PCI config space instead of using the OF properties. :-/

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-04-26 01:55:10 -07:00
..
Makefile [SPARC64]: Add irqtrace/stacktrace/lockdep support. 2006-12-10 02:39:09 -08:00
asm-offsets.c kbuild: frv,m32r,sparc64 introduce fake asm-offsets.h file 2005-09-09 22:47:53 +02:00
audit.c [PATCH] sparc64 audit syscall classes hookup 2006-09-12 03:05:05 -04:00
auxio.c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
binfmt_aout32.c [PATCH] struct path: convert sparc64 2006-12-08 08:28:50 -08:00
binfmt_elf32.c [PATCH] elf: Always define elf_addr_t in linux/elf.h 2006-12-07 08:39:38 -08:00
central.c [SPARC64]: constify of_get_property return: arch/sparc64 2007-04-26 01:54:24 -07:00
chmc.c [SPARC64]: constify of_get_property return: arch/sparc64 2007-04-26 01:54:24 -07:00
compat_audit.c [PATCH] sparc64 audit syscall classes hookup 2006-09-12 03:05:05 -04:00
cpu.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
devices.c [SPARC]: Simplify and correct __cpu_find_by() 2006-07-21 14:18:15 -07:00
dtlb_miss.S [SPARC64]: More TLB/TSB handling fixes. 2006-03-20 01:13:34 -08:00
dtlb_prot.S [SPARC64]: Fix boot failures on SunBlade-150 2005-10-12 12:22:46 -07:00
ebus.c [SPARC64] ebus: Convert to use pci_device_to_OF_node(). 2007-04-26 01:55:04 -07:00
entry.S [SPARC64]: Add irqtrace/stacktrace/lockdep support. 2006-12-10 02:39:09 -08:00
etrap.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head.S [SPARC64]: Kill no-remapping-needed code in head.S 2006-12-17 14:06:55 -08:00
idprom.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
init_task.c [PATCH] nsproxy: move init_nsproxy into kernel/nsproxy.c 2006-10-02 07:57:20 -07:00
iommu_common.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iommu_common.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq.c [SPARC64]: constify of_get_property return: arch/sparc64 2007-04-26 01:54:24 -07:00
isa.c [SPARC64] isa: Convert to use pci_device_to_OF_node(). 2007-04-26 01:55:05 -07:00
itlb_miss.S [SPARC64]: Fix _PAGE_EXEC handling. 2006-03-20 01:14:13 -08:00
kprobes.c [SPARC64]: Fix several kprobes bugs. 2006-12-10 02:42:03 -08:00
ktlb.S [SPARC64]: Get DEBUG_PAGEALLOC working again. 2007-03-16 17:20:28 -07:00
module.c [SPARC]: Handle UNWIND_INFO properly. 2006-05-12 12:45:50 -07:00
of_device.c [SPARC64]: Fix sabre pci controllers with new probing scheme. 2007-04-26 01:55:10 -07:00
pci.c [SPARC64]: Fix sabre pci controllers with new probing scheme. 2007-04-26 01:55:10 -07:00
pci_common.c [SPARC64]: Probe PCI bus using OF device tree. 2007-04-26 01:55:06 -07:00
pci_impl.h [SPARC64]: Internalize pci_memspace_mask. 2007-04-26 01:55:07 -07:00
pci_iommu.c [SPARC64]: Probe PCI bus using OF device tree. 2007-04-26 01:55:06 -07:00
pci_psycho.c [SPARC64]: Probe PCI bus using OF device tree. 2007-04-26 01:55:06 -07:00
pci_sabre.c [SPARC64]: Fix sabre pci controllers with new probing scheme. 2007-04-26 01:55:10 -07:00
pci_schizo.c [SPARC64]: Minor cleanups to schizo pci controller driver. 2007-04-26 01:55:08 -07:00
pci_sun4v.c [SPARC64]: Probe PCI bus using OF device tree. 2007-04-26 01:55:06 -07:00
pci_sun4v.h [SPARC64]: Add PCI MSI support on Niagara. 2007-02-10 23:50:37 -08:00
pci_sun4v_asm.S [SPARC64]: Add PCI MSI support on Niagara. 2007-02-10 23:50:37 -08:00
power.c [PATCH] sparc64 pt_regs fixes 2006-10-08 12:32:35 -07:00
process.c [SPARC64]: Add tick_nohz_{stop,restart}_sched_tick() calls to cpu_idle(). 2007-04-26 01:54:13 -07:00
prom.c [SPARC]: Use strcasecmp for OFW property name comparisons. 2007-04-26 01:54:41 -07:00
ptrace.c [SPARC{32,64}]: Propagate ptrace_traceme() return value. 2006-12-10 02:40:27 -08:00
rtrap.S [SPARC64]: Add irqtrace/stacktrace/lockdep support. 2006-12-10 02:39:09 -08:00
sbus.c [SPARC64]: constify of_get_property return: arch/sparc64 2007-04-26 01:54:24 -07:00
semaphore.c [SPARC64]: Avoid membar instructions in delay slots. 2005-06-27 15:42:04 -07:00
setup.c [PATCH] Dynamic kernel command-line: sparc64 2007-02-12 09:48:39 -08:00
signal.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
signal32.c [SPARC64]: Move signal compat bits to new header file. 2006-10-02 14:24:18 -07:00
smp.c [SPARC64]: Add clocksource/clockevents support. 2007-04-26 01:54:15 -07:00
sparc64_ksyms.c [SPARC64]: Internalize pci_memspace_mask. 2007-04-26 01:55:07 -07:00
stacktrace.c [SPARC64]: Add irqtrace/stacktrace/lockdep support. 2006-12-10 02:39:09 -08:00
starfire.c [SPARC64]: Kill starfire_cookie from SBUS/PCI. 2006-06-29 16:37:08 -07:00
sun4v_ivec.S [SPARC64]: Add irqtrace/stacktrace/lockdep support. 2006-12-10 02:39:09 -08:00
sun4v_tlb_miss.S [SPARC64]: Set g4/g5 properly in sun4v dtlb-prot handling. 2007-01-26 18:56:01 -08:00
sunos_ioctl32.c [PATCH] consolidate line discipline number definitions 2007-02-11 10:51:26 -08:00
sys32.S [SPARC64]: Fix arg passing to compat_sys_ipc(). 2007-04-13 13:27:08 -07:00
sys_sparc.c [PATCH] provide kernel_execve on all architectures 2006-10-02 07:57:23 -07:00
sys_sparc32.c [PATCH] Common compat_sys_sysinfo 2007-02-11 10:51:32 -08:00
sys_sunos32.c [SPARC]: avoid CHILD_MAX and OPEN_MAX constants 2007-04-12 13:13:42 -07:00
systbls.S [SPARC64]: Fix arg passing to compat_sys_ipc(). 2007-04-13 13:27:08 -07:00
time.c [SPARC64]: constify of_get_property return: arch/sparc64 2007-04-26 01:54:24 -07:00
trampoline.S [SPARC64]: Get SUN4V SMP working. 2006-03-20 01:13:22 -08:00
traps.c [SPARC64]: Run ctrl-alt-del action for sun4v powerdown request. 2006-12-10 02:39:51 -08:00
tsb.S [SPARC64]: store-init needs trailing membar. 2007-03-19 13:27:33 -07:00
ttable.S [SPARC64]: Unify timer interrupt handler. 2007-04-26 01:54:11 -07:00
una_asm.S [SPARC64]: Mark __ex_table section correctly. 2006-03-04 23:23:56 -08:00
unaligned.c [SPARC64]: Unaligned accesses to userspace are hard errors. 2006-12-10 02:39:39 -08:00
us2e_cpufreq.c [SPARC64]: kzalloc() conversion 2006-03-20 01:14:19 -08:00
us3_cpufreq.c [SPARC64]: kzalloc() conversion 2006-03-20 01:14:19 -08:00
visemul.c [SPARC64]: Call do_mathemu on illegal instruction traps too. 2006-12-10 02:39:32 -08:00
vmlinux.lds.S [PATCH] disable init/initramfs.c: architectures 2007-02-11 10:51:25 -08:00
winfixup.S [SPARC64]: Fix unaligned access winfxup handling on SUN4V. 2006-03-20 01:13:39 -08:00