summaryrefslogtreecommitdiff
path: root/arch/sparc/include/asm
AgeCommit message (Collapse)AuthorFilesLines
2012-05-15sparc32: move smp ipi to method opsSam Ravnborg2-26/+32
I ended up renaming set_cpu_int to send_ipi to be consistent all way around. send_ipi was moved to the *_smp.c files so we could call the relevant method direct, without any _ops indirection. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-15sparc32: Implement hard_smp_processor_id() via instruction patching.David S. Miller2-73/+19
This is the last non-trivial user of btfixup. Like sparc64, use a special patch section to resolve the various implementations of how to read the current CPU's ID when we don't have current_thread_info()->cpu necessarily available. Signed-off-by: David S. Miller <davem@davemloft.net> Tested-by: Sam Ravnborg <sam@ravnborg.org>
2012-05-14sparc32: Move cache and TLB flushes over to method ops.David S. Miller3-101/+57
This eliminated most of the remaining users of btfixup. There are some complications because of the special cases we have for sun4d, leon, and some flavors of viking. It was found that there are no cases where a flush_page_for_dma method was not hooked up to something, so the "noflush" iommu methods were removed. Add some documentation to the viking_sun4d_smp_ops to describe exactly the hardware bug which causes us to need special TLB flushing on sun4d. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-14sparc32: Convert mmu_* interfaces from btfixup to method ops.David S. Miller1-14/+25
This set of changes displays one major danger of btfixup, interface signatures are not always type checked fully. As seen here the iounit variant of the map_dma_area routine had an incorrect type for one of it's arguments. It turns out to be harmless in this case, but just imagine trying to debug something involving this kind of problem. No thanks. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-14sparc: Kill mmu_{un,}lockarea().David S. Miller4-20/+3
These were used on sun4c during floppy data transfers since on that chip we had to lock the cpu mappings into the TLB because we cannot take a TLB miss during the assembler floppy interrupt handler that does the data transfer. That is no longer necessary since we've removed sun4c support, thus this stuff can disappear completely. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-14sparc32: Un-btfixup update_mmu_cache().David S. Miller1-3/+1
The magic Swift SRMMU code in question has not been enabled for something on the order of a decade, and it as well as it's comment is there in the history in case we ever need it again. Therefore all implementations are NOPs and we can kill this stuff off. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-14sparc32: Kill btfixup for xchg()'s 'swap' instruction.David S. Miller1-25/+0
We always have this instruction available, so no need to use btfixup for it any more. This also eradicates the whole of atomic_32.S and thus the __atomic_begin and __atomic_end symbols completely. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13sparc32: drop btfixup in page_32.hSam Ravnborg1-4/+1
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13sparc32: drop unused prototype from timer_32.hSam Ravnborg1-5/+0
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13sparc32: drop btfixup in mmu_context_32.hSam Ravnborg1-3/+1
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13sparc32: drop btfixup in pgtable_32.hSam Ravnborg1-24/+36
Only one function left using btfixup. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13sparc32: drop btfixup in pgalloc_32.hSam Ravnborg1-24/+49
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13sparc32: Un-btfixup more PTE constants and PTE ops.David S. Miller1-22/+17
pte_{filei,wrprotecti,mkcleani,mkoldi} pte_{mkwrite,mkdirty,mkyoung} Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13sparc32: Un-btfixup pte_{write,dirty,young}iDavid S. Miller1-10/+3
And we can certainly get rid of the const function attributes, there is no way that's needed any longer and no other arch uses this kind of annotation here. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13sparc32: Un-btfixup set_pte, pte_present, mk_pte{_phys,_io}().David S. Miller1-23/+27
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13sparc32: Un-btfixup pmd_{bad,present}().David S. Miller1-5/+9
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13sparc32: Un-btfixup pgd_{none,bad,present}.David S. Miller1-6/+13
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Un-btfixup PAGE_{NONE,COPY,READONLY,SHARED,KERNEL}.David S. Miller1-39/+23
That lets us also get rid of the run-time initialization of protection_map[] and all the ugly module workarounds for PAGE_KERNEL and PAGE_SHARED to deal with the fact that we can't do btfixups for modular code. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Un-btfixup pmd_page and pte_pfn.David S. Miller1-6/+25
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Un-btfixup {pte,pmd,pgd}_clear().David S. Miller2-7/+38
Also we can remove BTFIXUPCALL_SWAPO0G0 as that is no longer used. This was rather amusing, we were setting the btfixup vectors based upon cpu type but all to the same exact generic srmmu routines. Furthermore, we were inconsistently marking the fixup as either BTFIXUPCALL_SWAPO0G0 or BTFIXUPCALL_NORM. What a mess, glad we could untangle this stuff. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Un-btfixup PGDIR_{SHIFT,SIZE,MASK} {USER_,}PTRS_PER_{PGD,PMD}David S. Miller1-14/+6
Only one set of values exist, the SRMMU ones. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: drop unused type/externSam Ravnborg2-14/+0
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: drop btfixup for check_pgt_cacheSam Ravnborg1-3/+1
It is a noop for srmmu - so use a define as sparc64 does. And drop all sparc callers - no need to confuse our-self be calling a noop function. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: drop btfixup for switch_mmSam Ravnborg1-3/+2
This revealed that the implementation of switch_mm had a bogus extra argument. No harm as said argument was never used - but confusing. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: code cleanup in floppy glueSam Ravnborg1-9/+8
Small cleanup to improve readability. Dropped one test for sparc_cpu_model - we already know that only sun4m support floppy. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: fix warning in floopy glueSam Ravnborg1-0/+1
Fix following warning: arch/sparc/include/asm/floppy_32.h:342:5: warning: 'op' may be used uninitialized in this function The warning are legitimite and we can end up using op uninitialized. This fixes build with my gcc on UP. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Trivial removal of sun4c references in comments.David S. Miller3-8/+3
I left some around, like the ones in the openprom headers, since we need to think about which pieces of those datastructures and code we can completely toss now. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Remove sun4 and sun4c from enum sparc_cpu.David S. Miller2-12/+8
All the remaining references are trivially removed since we've just eliminated the final reference to sparc_cpu_model from assembler code in commit b7d96ce189564e661909fbf8df39d7358149885b ("sparc32: Remove sparc_cpu_model read from floppy interrupt handler.") Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Kill unused defines from asm/head_32.hDavid S. Miller1-7/+0
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Remove some more sun4c code from floppy glue.David S. Miller1-14/+2
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Remove ldXa and stXa defines, unused.David S. Miller1-6/+0
These were for sharing some MMU code between sun4 and sun4c. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Remove sun4{,c} control reg definitions from contregs.h.David S. Miller1-22/+0
No longer used. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Kill asm/vac-ops.hDavid S. Miller3-129/+0
All sun4/sun4c stuff and unused. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Put back SPARC_BRANCH.David S. Miller1-0/+7
It's needed for the floppy interrupt trap table patching. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Kill SUN4C_LOCK_{VADDR,END} and associated comment.David S. Miller1-16/+0
No longer used. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc: Clear out unused asm/machines.h values.David S. Miller2-25/+1
Remove sun4 and sun4c machine ID values from asm/machines.h Also kill NUM_SUN_MACHINES, use ARRAY_SIZE instead. Kill asm/machines.h include and sun4c checks from asm/floppy_32.h Remove asm/machines.h include from setup_32.c and time_32.c, unused. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: Remove inline strncmp "optimization" for constant counts.David S. Miller1-62/+1
Let the compiler do stuff like this. Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: use inline versions of pgprot_noncached, pte_to_pgoff and pgoff_to_pteSam Ravnborg1-6/+14
We no longer have different versions of these so use a few simple static inline functions. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: drop btfixup for alloc_thread_info_node/free_thread_infoSam Ravnborg1-5/+2
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: drop sun4c user stack checking routineSam Ravnborg1-7/+0
With this we no longer do any run-time patchings of traps. So drop the function + macro to support this. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: delete pgtsun4c.hSam Ravnborg2-181/+2
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: remove all uses of ARCH_SUN4CSam Ravnborg2-7/+2
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: remove sun4c trapsSam Ravnborg2-54/+1
We used to runtime patch the trap table for srmmu. With the removal of sun4c support this is no longer required. With the sun4c trap removed we can remove all the referenced trap handling which is sun4c specific. This also allows us to get rid of the nosun4c.c file that contained only dummy functions/data. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12sparc32: drop sun4c supportSam Ravnborg2-18/+0
Machines with sun4c support are very rare these days, and noone is using them for any practical purposes. The sun4c support has been know broken for quite some time too. So rather than trying to keep it up-to-date, lets get rid of it. This allows us to do some very welcome cleanup of sparc32 support. Updated the former sun4c specifc nmi (which was also used for sun4m UP) to be a generic UP NMI. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-12gpiolib/arches: Centralise bolierplate asm/gpio.hMark Brown1-36/+4
Rather than requiring architectures that use gpiolib but don't have any need to define anything custom to copy an asm/gpio.h provide a Kconfig symbol which architectures must select in order to include gpio.h and for other architectures just provide the trivial implementation directly. This makes it much easier to do gpiolib updates and is also a step towards making gpiolib APIs available on every architecture. For architectures with existing boilerplate code leave a stub header in place which warns on direct inclusion of asm/gpio.h and includes linux/gpio.h to catch code that's doing this. Direct inclusion of asm/gpio.h has long been deprecated. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jonas Bonn <jonas@southpole.se> Acked-by: Tony Luck <tony.luck@intel.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2012-05-09sched/numa: Rewrite the CONFIG_NUMA sched domain supportPeter Zijlstra1-19/+0
The current code groups up to 16 nodes in a level and then puts an ALLNODES domain spanning the entire tree on top of that. This doesn't reflect the numa topology and esp for the smaller not-fully-connected machines out there today this might make a difference. Therefore, build a proper numa topology based on node_distance(). Since there's no fixed numa layers anymore, the static SD_NODE_INIT and SD_ALLNODES_INIT aren't usable anymore, the new code tries to construct something similar and scales some values either on the number of cpus in the domain and/or the node_distance() ratio. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Anton Blanchard <anton@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Chris Metcalf <cmetcalf@tilera.com> Cc: David Howells <dhowells@redhat.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: linux-alpha@vger.kernel.org Cc: linux-ia64@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-sh@vger.kernel.org Cc: Matt Turner <mattst88@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Richard Henderson <rth@twiddle.net> Cc: sparclinux@vger.kernel.org Cc: Tony Luck <tony.luck@intel.com> Cc: x86@kernel.org Cc: Dimitri Sivanich <sivanich@sgi.com> Cc: Greg Pearson <greg.pearson@hp.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: bob.picco@oracle.com Cc: chris.mason@oracle.com Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Link: http://lkml.kernel.org/n/tip-r74n3n8hhuc2ynbrnp3vt954@git.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
2012-05-08task_allocator: Use config switches instead of magic definesThomas Gleixner1-2/+0
Replace __HAVE_ARCH_TASK_ALLOCATOR and __HAVE_ARCH_THREAD_ALLOCATOR with proper config switches. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Tony Luck <tony.luck@intel.com> Link: http://lkml.kernel.org/r/20120505150142.371309416@linutronix.de
2012-05-08sparc: Use common threadinfo allocatorThomas Gleixner1-23/+2
Exaclty the same as the core code. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: David S. Miller <davem@davemloft.net> Link: http://lkml.kernel.org/r/20120505150142.252861878@linutronix.de
2012-04-26sparc: Use generic idle thread allocationThomas Gleixner1-2/+3
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> Tested-by: David S. Miller <davem@davemloft.net> Link: http://lkml.kernel.org/r/20120420124558.055198736@linutronix.de
2012-04-15sparc32: generic clockevent supportTkhai Kirill4-3/+30
The kernel uses l14 timers as clockevents. l10 timer is used as clocksource if platform master_l10_counter isn't constantly zero. The clocksource is continuous, so it's possible to use high resolution timers. l10 timer is also used as clockevent on UP configurations. This realization is for sun4m, sun4d, sun4c, microsparc-IIep and LEON platforms. The appropriate LEON changes was made by Konrad Eisele. In case of sun4m's oneshot mode, profile irq is zeroed in smp4m_percpu_timer_interrupt(). It is maybe needless (double, triple etc overflow does nothing). sun4d is able to have oneshot mode too, but I haven't any way to test it. So code of its percpu timer handler is made as much equal to the current code as possible. The patch is tested on sun4m box in SMP mode by me, and tested by Konrad on leon in up mode (leon smp is broken atm - due to other reasons). Signed-off-by: Tkhai Kirill <tkhai@yandex.ru> Tested-by: Konrad Eisele <konrad@gaisler.com> [leon up] [sam: revised patch to provide generic support for leon] Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>