[SPARC64]: Kill PBM ranges software state.

It is only used in one spot and we can just fetch the
OF property right there.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Kill pci_controller->resource_adjust()

All the implementations can be identical and generic, so
no need for controller specific methods.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Kill pci_controller->base_address_update().

Implemented but never actually used.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Kill pci_controller->pbms_same_domain

We don't do the "Simba APB is a PBM" bogosity for Sabre
controllers any longer, so this pbms_same_domain thing
is no longer necessary.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Kill pbm->pci_first_slot.

Set but never used.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Const'ify pci_iommu_ops.

Based upon a similar patch for x86_64 written by
Stephen Hemminger.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Add dummy host controller to root of all PCI domains.

We fake up a dummy one in all cases because that is the simplest
thing to do and it happens to be necessary for hypervisor systems.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Force dummy host controller onto bus zero.

This helps deal with the invisible bridge that sits between
the host controller and the top-most visisble PCI devices
on hypervisor systems.

For example, on T1000 the bus-range property says 2 --> 4
and so there is a PCI express bridge at bus 2, devfn 0, etc.

So if we don't force the dummy host controller to bus zero,
we'll try to create two devices with the same domain/bus/devfn
triplet.

Also, add some more log diagnostics to make debugging stuff like this
easyer.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Use DECLARE_BITMAP in struct pci_iommu.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Use SPARSEMEM_STATIC

Decrease the SECTION_SIZE_BITS --> MAX_PHYSADDR_BITS
range a little bit.

The cost of going to SPARSEMEM_STATIC becomes 8K of BSS space, and in
return we save a pointer dereferences on every page struct lookup.
Even better we hit the main kernel image for the base address which is
in a hugepage locked TLB entry.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Simplify read_obp_memory().

Kick out empty entries as soon as we spot them, and use memmove()
instead of a silly loop to make the operation more clear.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: MAX_PHYSADDR_BITS et al. really need to be 42 bits not 41.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Kill _start[]/_end[] declarations in mm/init.c

We already get those from asm/sections.h

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Privatize sun4u_get_pte() and fix name.

__get_phys is only called from init.c as is prom_virt_to_phys(),
__get_iospace() is not called at all, and sun4u_get_pte() is largely
misnamed.

Privatize the implementation and helper functions of
sun4u_get_phys() to mm/init.c, and rename to
kvaddr_to_paddr().

The only used of this thing is flush_icache_range(), and thus
things can be considerably further simplified.  For example,
we should only see module or PAGE_OFFSET kernel addresses here,
so we don't need the OBP firmware range handling at all.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Kill kvaddr_to_phys() and friends.

Just inline it into flush_icache_range() which is the only
user.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Mark show_mem() printk's with KERN_INFO.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Give move verbose show_mem() output just like i386.

We now report everything i386 does except for highmem which
doesn't apply.

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Use DECLARE_BITMAP and BITS_TO_LONGS in mm/init.c

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Kill sparc_ultra_dump_{i,d}tlb()

While useful in odd circumstances to debug something, they are
normally totally unused and anyone can fetch this code out of the
history if they really need it.

And in any event, the person who needs this kind of code is usually me
:-)

Signed-off-by: David S. Miller <davem@davemloft.net>
[SPARC64]: Add proper header file extern for cmdline_memory_size.

Signed-off-by: David S. Miller <davem@davemloft.net>