summaryrefslogtreecommitdiffstats
path: root/arch/sh
Commit message (Collapse)AuthorAgeFilesLines
* sh: Fix up ftrace build error when STACK_DEBUG=n.Paul Mundt2009-07-111-3/+4
| | | | | | | | | Presently the closest reference to function_trace_stop is within a CONFIG_STACK_DEBUG block. When this is turned off, the build bails out with a pcrel too far error. Reorder things a bit to handle the various combinations. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Use DECLARE_EXPORT() for mcount symbol export.Paul Mundt2009-07-111-1/+1
| | | | | | | The function prototype for mcount is not defined if we are not building with ftrace support enabled, so use DECLARE_EXPORT() to stub one in. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Replace DEBUG_STACKOVERFLOW with STACK_DEBUG.Paul Mundt2009-07-112-30/+4
| | | | | | | | | | | | | STACK_DEBUG ties in to mcount in order to do function-granular stack overflow checks as opposed to lazily checking from IRQ context. As the default is nohz, the frequency of overflow checking is too irregular to catch much useful information, and so the mcount approach employed by sparc64 is adopted instead. This kills off the old check entirely from the do_IRQ() path and now adopts CONFIG_MCOUNT instead. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Decouple mcount from ftrace.Paul Mundt2009-07-115-4/+12
| | | | | | | | | This adds a general CONFIG_MCOUNT in order to permit mcount generation without ftrace support. This is primarily for allowing platforms to enable aggressive stack overflow checking without having to enable ftrace support. Based on the sparc64 implementation. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
*-. Merge branches 'sh/ftrace' and 'sh/stable-updates'Paul Mundt2009-07-1111-4/+345
|\ \
| | * sched: INIT_PREEMPT_COUNTPeter Zijlstra2009-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull the initial preempt_count value into a single definition site. Maintainers for: alpha, ia64 and m68k, please have a look, your arch code is funny. The header magic is a bit odd, but similar to the KERNEL_DS one, CPP waits with expanding these macros until the INIT_THREAD_INFO macro itself is expanded, which is in arch/*/kernel/init_task.c where we've already included sched.h so we're good. Cc: tony.luck@intel.com Cc: rth@twiddle.net Cc: geert@linux-m68k.org Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Acked-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| * | sh: Mark __switch_to() as __notrace_funcgraphMatt Fleming2009-07-111-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Annotate __switch_to() so that the function graph tracer does not try to trace it. Use __notrace_funcgraph, as opposed to notrace, so that other tracers can continue to trace __switch_to(). The reason that we don't want to trace __switch_to() with the function graph tracer is because of how the return address stack in task_struct is implemented. When we enter __switch_to we store the real return address on prev's ret_stack. When we return from __switch_to() we've patched the return address on the kernel stack to be return_to_handler. Calling return_to_handler we do, -> ftrace_return_to_handler() -> ftrace_pop_return_ftrace() Which tries to pop the real return address from current->ret_stack. The problem being that we stored the return address on prev->ret_stack, but current now points to next, and next->ret_stack doesn't contain the correct return address (and is possibly even empty). Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | sh: Function graph tracer supportMatt Fleming2009-07-117-1/+244
| | | | | | | | | | | | | | | | | | | | | Add both dynamic and static function graph tracer support for sh. Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | sh: Provide diagnostic kernel stack checksMatt Fleming2009-07-113-0/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable kernel stack checking code in both the dynamic ftrace and mcount code paths. Check the stack to see if it's overflowing and make sure that the stack pointer contains an address that's either in init_stack or after the bss. Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: Clean up linker script using new linker script macros.Tim Abbott2009-07-101-76/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch converts the sh architecture to use the new linker script macros in include/asm-generic/vmlinux.lds.h. Signed-off-by: Tim Abbott <tabbott@ksplice.com> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: linux-sh@vger.kernel.org Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | Merge branches 'sh/ftrace' and 'sh/cachetlb'Paul Mundt2009-07-0619-134/+692
|\ \ \ | |/ / |/| |
| * | sh: Tidy up vmalloc fault handling.Paul Mundt2009-07-051-56/+97
| | | | | | | | | | | | | | | | | | | | | This rewrites the vmalloc fault handling as per x86, which subsequently allows for easy future tie-in for vmalloc_sync_all(). Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | sh: use kprobes_built_in() for notify_page_fault().Paul Mundt2009-07-051-3/+1
| | | | | | | | | | | | | | | | | | Kill off the KPROBES ifdef, as per x86. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | |
| | \
| *-. \ Merge branches 'sh/hwblk', 'sh/cpuidle' and 'sh/stable-updates'Paul Mundt2009-07-0513-43/+510
| |\ \ \ | | | |/
| | | * sh: add r8a66597 usb0 host to the se7724 boardMagnus Damm2009-07-051-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add USB host support for port CN27 on the Solution Engine 7724 board. The r8a66597-hcd driver is hooked up as a platform device and some registers are configured to enable the USB host function. The hardware driving the USB port is the on-chip USB0 block in the sh7724 processor configured as USB host controller. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: cpuidle for SuperH Mobile using hwblkMagnus Damm2009-07-054-13/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds cpuidle support for SuperH Mobile. The sleep mode selected by cpuidle is compared with the mode selected by the hwblk sleep code and the best allowed mode is entered. At this point "Sleep mode" and "Sleep mode + SF" are supported. This code can easily be extended to support "Software suspend mode", but the assembly code must first be updated to avoid loosing interrupts. Also, update the code to only copy the assembly snippet into internal memory once at bootup. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: hwblk for sh7722Magnus Damm2009-07-054-29/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains the sh7722 specific hwblk implementation. Hwblk ids are added to the processor specific header file, module stop bits and areas are kept track of as hwblks, clocks are converted to make use of the shared hwblk code. Code to determine allowed sleep modes is also added. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: hwblk base implementationMagnus Damm2009-07-054-1/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is the hwblk base implementation, containing structures and shared functions dealing with hardware blocks. A each processor model should provide a list of hwblks and describe which module stop bit that is associated with each hwblck and how the hwblks are grouped together into areas. The shared code keeps track of the usage count for each hwblk and the areas. Fallback implementations for processor specific code are also kept as weak symbols. The clock framework, the runtime pm code and cpuidle will all tie into this hwblk implementation. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | sh: Use bootmem ontop of lmb for NUMAMatt Fleming2009-07-051-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like the UP case, use lmb as the foundation of memory resource management on NUMA. Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | sh: Use bootmem ontop of lmbMatt Fleming2009-07-033-19/+59
| | |/ | |/| | | | | | | | | | | | | | | | Rework the bootmem allocator to use the lmb framework. Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | sh: define PERF_COUNTER_INDEX_OFFSET.Paul Mundt2009-07-031-0/+2
| |/ | | | | | | | | | | Fixes up recent build breakage. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Add ftrace syscall tracing supportMatt Fleming2009-07-068-10/+100
| | | | | | | | | | | | | | | | | | Now that I've added TIF_SYSCALL_FTRACE the thread flags do not fit into a single byte any more. Code testing them now needs to be aware of the upper and lower bytes. Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Define HAVE_FUNCTION_TRACE_MCOUNT_TESTMatt Fleming2009-07-062-1/+17
| | | | | | | | | | | | | | | | | | Enable HAVE_FUNCTION_TRACE_MCOUNT_TEST and test the value of function_trace_stop from our assembly code as opposed to using the generic C function. This should optimise our mcount/ftrace code path. Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Fix the value of MCOUNT_INSN_OFFSETMatt Fleming2009-07-061-2/+2
|/ | | | | | | | | | It seems that MCOUNT_INSN_OFFSET was calculating the distance between the wrong functions. The value that should have actually been computed is the distance between ftrace_call and ftrace_stub. I discovered this when I added some code to ftrace_caller. Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix compiler error and include the definition of IS_ERR_VALUEMatt Fleming2009-07-021-0/+1
| | | | | | | | | | | | | | | | When arch/sh/include/asm/syscall_32.h is included from a file that doesn't also include linux/err.h the following error is produced, In file included from /home/matt/src/kernels/sh-2.6/arch/sh/include/asm/syscall.h:5, from kernel/trace/trace_syscalls.c:3: /home/matt/src/kernels/sh-2.6/arch/sh/include/asm/syscall_32.h: In function 'syscall_get_error': /home/matt/src/kernels/sh-2.6/arch/sh/include/asm/syscall_32.h:28: error: implicit declaration of function 'IS_ERR_VALUE' make[2]: *** [kernel/trace/trace_syscalls.o] Error 1 make[1]: *** [kernel/trace] Error 2 make: *** [kernel] Error 2 Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: re-add LCDC fbdev support to the Migo-R defconfigMagnus Damm2009-07-011-2/+51
| | | | | | | Re-add LCDC fbdev support to the Migo-R defconfig. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: fix se7724 ceu namesMagnus Damm2009-07-011-2/+2
| | | | | | | | | | | | | Use "ceu0" and "ceu1" as CEU names instead of "ceu". This fixes "memchunk" kernel command line selection on the solution engine 7724 board. With this patch applied use "memchunk.ceu0=1m" or "memchunk.ceu1=1m" on kernel command line to override physically memory size to one meg for CEU0 or CEU1. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: ms7724se: Enable sh_eth in defconfig.Kuninori Morimoto2009-06-291-4/+21
| | | | | Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* arch/sh/boards/mach-se/7206/io.c: Remove unnecessary semicolonsJoe Perches2009-06-291-1/+1
| | | | | Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: ms7724se: Add sh_eth supportKuninori Morimoto2009-06-262-2/+109
| | | | | Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Kill off unused DEBUG_BOOTMEM symbol.Paul Mundt2009-06-251-4/+0
| | | | | | | This was killed off in generic code some time ago, kill off the left over symbol. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh64: Hook up page fault events for software perf counters.Paul Mundt2009-06-251-3/+12
| | | | | | sh64 can use these as well, so tie them up there as well. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Hook up page fault events for software perf counters.Paul Mundt2009-06-251-29/+32
| | | | | | | This adds page fault instrumentation for the software performance counters. Follows the x86 and powerpc changes. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: make set_perf_counter_pending() static inline.Paul Mundt2009-06-241-1/+1
| | | | | | | Fixes up a recently introduced build error. Reported-by: Kyle McMartin <kyle@mcmartin.ca> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix up HAVE_PERF_COUNTERS typo.Paul Mundt2009-06-241-1/+1
| | | | | | | | | That's HAVE_PERF_COUNTERS not HAVE_PERF_COUNTER. This was right initially but I seem to have screwed it up while re-typing it out by hand on another machine when I checked it in. Hmph. Reported-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix up more dma-mapping fallout.Paul Mundt2009-06-231-6/+6
| | | | | | | | | | | commit dbe6f1869188b6e04e38aa861dd198befb08bcd7 ("dma-mapping: mark dma_sync_single and dma_sync_sg as deprecated" conveniently broke every single SH build. In the future it would be great if people could at least bother figuring out how to use grep. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: SH7786 SMP support.Paul Mundt2009-06-233-24/+18
| | | | | | | | | SH7786 is roughly identical to SH-X3 proto SMP, though there are only 2 CPUs. This just wraps in to the existing SH-X3 SMP code with some minor changes for SH7786, including wiring up the IPIs properly, enabling IRQ_PER_CPU, and so forth. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Wire up the uncached fixmap on sh64 as well.Paul Mundt2009-06-231-2/+0
| | | | | | | Now that sh64 also can use the uncached section, wire up the fixmap for it as well. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Use local TLB flush in set_pte_phys().Paul Mundt2009-06-231-1/+1
| | | | | | | | | set_pte_phys() presently uses the global flush_tlb_one(), which locks on SMP trying to do the IPI. As we have not even initialized the other CPUs at this point, switch to the local_ variant so the flush happens on the boot CPU. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Provide cpu_idle_wait() to fix up cpuidle/SMP build.Paul Mundt2009-06-233-1/+26
| | | | | | | Crib the x86 cpu_idle_wait() implementation and shove it in with the idle code, subsequently enabling ARCH_HAS_CPU_IDLE_WAIT. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* Move FAULT_FLAG_xyz into handle_mm_fault() callersLinus Torvalds2009-06-212-2/+2
| | | | | | | | | | This allows the callers to now pass down the full set of FAULT_FLAG_xyz flags to handle_mm_fault(). All callers have been (mechanically) converted to the new calling convention, there's almost certainly room for architectures to clean up their code and then add FAULT_FLAG_RETRY when that support is added. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6Linus Torvalds2009-06-18116-3721/+3805
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (56 commits) sh: Fix declaration of __kernel_sigreturn and __kernel_rt_sigreturn sh: Enable soc-camera in ap325rxa/migor/se7724 defconfigs. sh: remove stray markers. sh: defconfig updates. sh: pci: Initial PCI-Express support for SH7786 Urquell board. sh: Generic HAVE_PERF_COUNTER support. SH: convert migor to soc-camera as platform-device SH: convert ap325rxa to soc-camera as platform-device soc-camera: unify i2c camera device platform data sh: add platform data for r8a66597-hcd in setup-sh7723 sh: add platform data for r8a66597-hcd in setup-sh7366 sh: x3proto: add platform data for r8a66597-hcd sh: highlander: add platform data for r8a66597-hcd sh: sh7785lcr: add platform data for r8a66597-hcd sh: turn off irqs when disabling CMT/TMU timers sh: use kzalloc() for cpg clocks sh: unbreak WARN_ON() sh: Use generic atomic64_t implementation. sh: Revised clock function in highlander sh: Update r7780mp defconfig ...
| * sh: Fix declaration of __kernel_sigreturn and __kernel_rt_sigreturnMatt Fleming2009-06-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 4.5.0 complains about the declaration of variables __kernel_sigreturn and __kernel_rt_sigreturn because they have type void. Correctly declare these symbols as functions to fix the following error, arch/sh/kernel/signal_32.c: In function 'setup_frame': arch/sh/kernel/signal_32.c:368:14: error: taking address of expression of type 'void' arch/sh/kernel/signal_32.c: In function 'setup_rt_frame': arch/sh/kernel/signal_32.c:452:14: error: taking address of expression of type 'void' make[1]: *** [arch/sh/kernel/signal_32.o] Error 1 make: *** [arch/sh/kernel] Error 2 Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Enable soc-camera in ap325rxa/migor/se7724 defconfigs.Paul Mundt2009-06-183-6/+190
| | | | | | | | | | | | | | The MEDIA_SUPPORT option disabled soc-camera support, so re-enable it for the impacted defconfigs. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: remove stray markers.Christoph Hellwig2009-06-184-14/+1
| | | | | | | | | | | | | | | | | | | | arch/sh has a couple of stray markers without any users introduced in commit 3d58695edbfac785161bf282dc11fd42a483d6c9. Remove them in preparation of removing the markers in favour of the TRACE_EVENT macro (and also because we don't keep dead code around). Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: defconfig updates.Paul Mundt2009-06-1845-2375/+2245
| | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: pci: Initial PCI-Express support for SH7786 Urquell board.Paul Mundt2009-06-173-0/+357
| | | | | | | | | | | | | | | | | | | | | | | | | | This adds initial support for the PCI-Express module in the SH7786, particularly as it relates to the urquell platform. Presently it is only supported in root complex mode, with endpoint mode still requiring more debugging. 29/32-bit mode and lane configurations are selectable via board mode pins, and are otherwise fixed. Only 4x and 1x PCI channels are presently handled, the PCI bridge still requires additional debugging and stabilization in hardware. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| *-----. Merge branches 'sh/pci-express-integration', 'sh/rsk-updates', ↵Paul Mundt2009-06-1716-87/+871
| |\ \ \ \ | | | | | | | | | | | | | | | | | | 'sh/platform-updates' and 'sh/perf_counter'
| | | | | * sh: Generic HAVE_PERF_COUNTER support.Paul Mundt2009-06-172-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This enables support for the generic software-based perf counters. Hardware counter support could be added in the future, but the lack of a performance counter IRQ makes this rather dubious. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | | | | * sh: Use generic atomic64_t implementation.Paul Mundt2009-06-172-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
OpenPOWER on IntegriCloud