aboutsummaryrefslogtreecommitdiff
path: root/arch/sparc64
AgeCommit message (Collapse)Author
2008-09-16Merge branch 'master' of ↵David S. Miller
master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 Conflicts: arch/sparc64/kernel/pci_psycho.c
2008-09-16sparc64: Fix OOPS in psycho_pcierr_intr_other().David S. Miller
We no longer put the top-level PCI controller device into the PCI layer device list. So pbm->pci_bus->self is always NULL. Therefore, use direct PCI config space accesses to get at the PCI controller's PCI_STATUS register. Tested by Meelis Roos. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc: Fix user_regset 'n' field values.David S. Miller
As noticed by Russell King, we were not setting this properly to the number of entries, but rather the total size. This results in the core dumping code allocating waayyyy too much memory. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Fix PCI error interrupt registry on PSYCHO.David S. Miller
We need to pass IRQF_SHARED, otherwise we get things like: IRQ handler type mismatch for IRQ 33 current handler: PSYCHO_UE Call Trace: [000000000048394c] request_irq+0xac/0x120 [00000000007c5f6c] psycho_scan_bus+0x98/0x158 [00000000007c2bc0] pcibios_init+0xdc/0x12c [0000000000426a5c] do_one_initcall+0x1c/0x160 [00000000007c0180] kernel_init+0x9c/0xfc [0000000000427050] kernel_thread+0x30/0x60 [00000000006ae1d0] rest_init+0x10/0x60 on e3500 and similar systems. On a single board, the UE interrupts of two Psycho nodes are funneled through the same interrupt, from of_debug=3 dump: /pci@b,4000: direct translate 2ee --> 21 ... /pci@b,2000: direct translate 2ee --> 21 Decimal "33" mentioned above is the hex "21" mentioned here. Thanks to Meelis Roos for dumps and testing. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc: Fix user_regset 'n' field values.David S. Miller
As noticed by Russell King, we were not setting this properly to the number of entries, but rather the total size. This results in the core dumping code allocating waayyyy too much memory. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Fix sparse warnings in chmc.cDavid S. Miller
Several constants are larger than 32-bit and need "UL" markers. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Kill sparse warnings in mm/init.hDavid S. Miller
1) Several exported symbols need extern decls, they are exported not for C code but for assembler routines. 2) PAGE_EXEC isn't used, delete 3) Several larger than 32-bit constants need "UL" markers Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Fix sparse warnings in fault.cDavid S. Miller
1) set_brkpt() is referenced by nothing and hasn't been used by anyone to my knowledge for many many years. So just delete it. 2) add extern decl for do_sparc64_fault() in asm/pgtable_64.h Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Remove explicit initialization of mmu_gathersDavid S. Miller
This was just needed to work around an ancient gcc bug that we don't care about any more. It was also causing a sparse warnings: arch/sparc64/mm/tlb.c:22:52: warning: Using plain integer as NULL pointer Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Fix sparse warnings in vio.cDavid S. Miller
Several variables should be marked static. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Fix sparse warnings in pci_sun4v.cDavid S. Miller
'err' variable shadowing in pci_sun4v_probe() Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-11sparc64: Fix sparse warnings in pci.cDavid S. Miller
1) Declare pci_poke_* in pci_impl.h 2) of_create_pci_dev() should be static 3) ->setup_msi_irq() wants an unsigned int pointer not a plain int one 4) void value expression return in arch_teardown_msi_irq() Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-11sparc64: Fix sparse warnings in of_device.cDavid S. Miller
Passing unsigned int pointer where plain int pointer is expected. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-11sparc64: Fix sparse warnings in prom.cDavid S. Miller
1) Testing null with '0' 2) returning void-valued expression Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-11sparc64: Fix sparse warnings in visemul.cDavid S. Miller
1) edge8 tables should be static 2) add vis_emul() extern decl. to asm/visasm.h Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-11sparc64: Fix sparse warnings in kernel/time.cDavid S. Miller
1) Using "clock" as a local variable shadows a global variable of the same name declared in linux/clocksource.h 2) rtc_cmos_resource should be static Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-11sysctl: Use header file for sysctl knob declarations on sparc.David S. Miller
This also takes care of a sparse warning as scons_pwroff's definition point. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-11sparc64: Fix sparse warnings in global reg snapshotting.David S. Miller
Lots of shadowed local variables and global_reg_snapshot[] needs an extern declaration in asm/ptrace_64.h. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-11sparc64: Add __arch64__ to CHECKFLAGSDavid S. Miller
Otherwise sparse doesn't work. The 32 vs. 64 header ifdef used under arch/sparc/include/asm/ is: #if defined(__sparc__) && defined(__arch64__) And that doesn't work for sparse unless we give it __arch64__ Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-10sparc64: Kill hand-crafted I/O accessors in PCI controller drivers.David S. Miller
Use existing upa_{read,write}q() interfaces instead. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-10sparc64: Commonize large portions of PSYCHO error handling.David S. Miller
The IOMMU and streaming cache error interrogation is moved here as well as the PCI error interrupt handler. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-10sparc64: Create and use psycho_pbm_init_common().David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-10sparc64: Start commonizing code common between SABRE and PSYCHO.David S. Miller
These are very similar chips, in fact they are identical in some macro blocks. So start commonizing code which they can share. We begin with the IOMMU initialization sequence. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-10sparc64: Record OF device instead of device node pointer in pci_pbm_info.David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-10sparc64: Get rid of pci_controller_info.David S. Miller
It is just used as a parent to encapsulate two PBM objects. But that layout is only really relevant and necessary for psycho PCI controllers, which unlike all the others share a single IOMMU instance between sibling PCI busses. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-10sparc64: Fix interrupt register calculations on Psycho and Sabre.David S. Miller
Use the IMAP offset calculation for OBIO devices as documented in the programmer's manual. Which is "0x10000 + ((ino & 0x1f) << 3)" Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-10sparc64: Fix return value in update_persistent_clock().David S. Miller
Noticed by Stephen Rothwell. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-08sparc64: Add missing rtc_close() in update_persistent_clock()David S. Miller
Noticed by David Brownell. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-08sparc64: Disable timer interrupts in fixup_irqs().David S. Miller
When a CPU is offlined, we leave the timer interrupts disabled because fixup_irqs() does not explicitly take care of that case. Fix this by invoking tick_ops->disable_irq(). Based upon analysis done by Paul E. McKenney. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-08Merge branch 'master' of ↵David S. Miller
master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 Conflicts: arch/sparc/kernel/of_device.c
2008-09-07sparc64: fix wrong m48t59 RTC yearKrzysztof Helt
Correctly calculate offset to the year register for Mostek RTC. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-03sparc64: Prevent sparc64 from invoking irq handlers on offline CPUsPaul E. McKenney
Make sparc64 refrain from clearing a given to-be-offlined CPU's bit in the cpu_online_mask until it has processed pending irqs. This change prevents other CPUs from being blindsided by an apparently offline CPU nevertheless changing globally visible state. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-03sparc64: Fix IPI call locking.David S. Miller
When I switched sparc64 over to the generic helpers for smp_call_function(), I didn't convert the dinky call_lock we had. Use ipi_call_lock() and ipi_call_unlock(). Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-03sparc: Fix handling of LANCE and ESP parent nodes in of_device.cDavid S. Miller
The device nodes that sit above 'esp' and 'le' on SBUS lack a 'ranges' property, but we should pass the translation up to the parent node so that the SBUS level ranges get applied. Based upon a bug report from Robert Reif. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-02pci_sun4v: Use of_get_property().David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-02pci_schizo: Use of_get_property() and delete spurious local vars.David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-02pci_psycho: Use of_getintprop_default().David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-02sparc64: Implement SSTATE purely using notifiers and initcalls.David S. Miller
Don't clutter up the tree with sstate_blah() scattered all over the place. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-02sparc64: Move reboot handling into seperate file and kill power reg programming.David S. Miller
We should always use prom_power_off(). Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-01sparc64: Pass proper parent device down into root pci_create_bus() call.David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-01sparc64: Kill the scan_bus function pointer in struct pci_pbm_info.David S. Miller
No longer used. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-01sparc64: Use ENTRY/ENDPROC in PCI SUN4V asm.David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-01sparc64: Use ENTRY/ENDPROC in hypervisor asm.David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-01sparc64: Apply const or __initdata to vio_device_id[]David S. Miller
This mirrors the of_device_id[] changes done in fd098316ef533e8441576f020ead4beab93154ce ("sparc: Annotate of_device_id arrays with const or __initdata.") Signed-off-by: David S. Miller <davem@davemloft.net>
2008-08-31sparc64: Clean up CPU chip type probing code.David S. Miller
Three main things: 1) Make prober an arch initcall instead of using hard-coded invocation from paging_init() 2) Shrink table size, the fpu ident stuff was never used. 3) Use named struct initialized in table. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-08-31sparc64: Rewrite central driver.David S. Miller
This driver is now limited to just doing the basic clock board and FHC chip initialization and registering the platform devices for the per-board LEDs, which are driven by the new LEDS_STARFIRE driver. The IRQ register handling is already confined purely to the device tree code. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-08-31sparc64: Delete starfire_cpu_setup().David S. Miller
It does nothing. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-08-31sparc64: Simplify error handling in PCI controller probing.David S. Miller
Based upon suggestions from Stephen Rothwell. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-08-31sparc: Annotate of_device_id arrays with const or __initdata.David S. Miller
As suggested by Stephen Rothwell. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-08-30sparc64: Convert FIRE PCI controller driver into a real driver.David S. Miller
And now all the by-hand PCI controller probing junk in pci.c can die too. Signed-off-by: David S. Miller <davem@davemloft.net>