summaryrefslogtreecommitdiffstats
path: root/arch/sh
Commit message (Collapse)AuthorAgeFilesLines
* sh: missing symbol fix for sh4-202Magnus Damm2007-08-221-0/+5
| | | | | | | | | This patch adds a plat_irq_setup() symbol for sh4-202. Without this fix it is impossible to build a working kernel using the microdev_defconfig. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix DSP opcode regression for SH3-DSP parts.Paul Mundt2007-08-211-1/+16
| | | | | | | | | | | | | | Older versions of binutils do not support -Wa,-isa= tuning, which is something we rely on for enabling DSP opcode support on the newer parts. SH3-DSP parts can still be handled with -Wa,-dsp even if the newer parts require the newer versions of binutils for supporting the new opcodes. This was broken in -rc1 when the SH4AL-DSP support was being reworked, and is needed to get SH3-DSP working with older toolchains again. Reported-by: Markus Brunner <super.firetwister@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: remove extraneous ; on scif_sercon_putc wait loopAndy Whitcroft2007-08-171-1/+1
| | | | | | | | | | It seems we have gained an extraneous trailing ';' on one of the wait loops in scif_sercon_putc(). Although this is completely benign as the apparent payload is also the empty statement, it invites error in the future. Clean it up now. Signed-off-by: Andy Whitcroft <apw@shadowen.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: panic on machvec section misalignment.Paul Mundt2007-08-071-0/+7
| | | | | | | | | | | | | | Now that __initmv references the machvec section unconditionally there have been cases where folks have been mistakenly flagging non-machvec structures with the machvec section attribute (presumably to shut up modpost). This leads to obscure breakage in earlyprintk amongst other places and is rather non-obvious. Add a simple sanity check to try and catch __initmv misuse and panic early. Reported-by: Markus Brunner <super.firetwister@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix PTRACE_PEEKTEXT/PEEKDATA fallout from generic_ptrace_peekdata().Paul Mundt2007-08-041-0/+1
| | | | | | | | | When generic_ptrace_peekdata() was merged, the break for these cases ended up getting dropped, which lead to each PEEKTEXT/PEEKDATA op leaking in to PEEKUSR and get_user_pages() always -EFAULTing. Add the break back in. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: fix defconfigs for sh7751r boardsMagnus Damm2007-08-035-5/+5
| | | | | | | | | | | | | | | | | This patch fixes up the defconfig for various sh7751r based boards by updating them to the single cpu subtype CONFIG_CPU_SUBTYPE_SH7751R. The following sh4 boards are updated: hs7751rvoip, landisk, lboxre2, systemh, titan. The current defconfigs with two subtypes defined trigger a configuration bug which result in kernel configurations with missing board support code. We end up with kernels without board code and with generic machvec only. So we need this patch to make sure the board code gets compiled in. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: fix cf support on r2d boardsMagnus Damm2007-08-031-1/+8
| | | | | | | | This patch makes sure cf support is enabled on R2D-PLUS but disabled on R2D-1. Without this fix R2D-1 boards hang on bootup. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: update r2d defconfigMagnus Damm2007-08-031-4/+4
| | | | | | | | - Disable CONFIG_SH_DMA to avoid boot up freeze on R2D-1 - Disable CONFIG_SH_STANDARD_BIOS to support R2D-PLUS boot loaders Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: update snapgear defconfig.David McCullough2007-08-031-348/+239
| | | | | | | Updated the snapgear defconfig to get a booting kernel. Signed-off-by: David McCullough <david_mccullough@au.securecomputing.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix SH-X3 FPU exception handling.Paul Mundt2007-08-011-0/+5
| | | | | | | | | SH-X3 has the FPU exceptions on different vectors completely, patch in do_fpu_state_restore() to the proper vectors. Results in a much happier userspace. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix pgd mismatch from cached TTB in unhandled fault.Paul Mundt2007-08-011-2/+1
| | | | | | | | | | | When reading the cached TTB value and extracting the pgd, we accidentally applied a __va() to it and bumped it off in to bogus space which ended up causing multiple faults in the error path. Fix it up so unhandled faults don't do strange and highly unorthodox things when oopsing. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Don't include fault-nommu on SH-2/SH-2A.Paul Mundt2007-08-011-1/+3
| | | | | | | | | | fault-nommu defines the page fault handler stubs for SH-3/4 parts, but is not needed on SH-2/SH-2A now that the entry code has been logically separated. Add it in for SH-3 and SH-4 explicitly. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix irqflags tracing for SH-3/4 nommu.Paul Mundt2007-08-011-32/+15
| | | | | | | | | We were missing the trace_hardirqs_on() instrumentation in the nommu case, resync with the MMU version of the page fault handler to have this behaving consistently. Also explicitly re-enable IRQs now that the assembly code isn't doing it for us any more. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix lockdep debugging oops on SH-3/4.Paul Mundt2007-08-011-2/+1
| | | | | | | | | | | | | | In the SH-3/4 TLB access violation path we were enabling IRQs before the call in to trace_hardirqs_on(), which ended up triggering: if (DEBUG_LOCKS_WARN_ON(!irqs_disabled())) return; in kernel/lockdep.c:2031. Fix this up by removing the early re-enable, we were already re-enabling IRQs post-trace_hardirqs_on() already, so the semantics are now as was initially intended. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix fs.h removal from mm.h regressions.Paul Mundt2007-07-315-1/+5
| | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: fix get_wchan() for SH kernels without framepointersDavid McCullough2007-07-261-2/+4
| | | | | | | | Do not follow the frame pointers (/proc/X/task/1/stat) unless we were compiled with them. Signed-off-by: David McCullough <david_mccullough@au.securecomputing.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: arch/sh/boot - fix shell usageDavid McCullough2007-07-262-6/+8
| | | | | | | | Fix the shell call to explicitly use bash, since they are bash specific and not all systems have bash as the default. Signed-off-by: David McCullough <david_mccullough@au.securecomputing.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: remove support for sh7300 and solution engine 7300Magnus Damm2007-07-2615-1161/+17
| | | | | | | | | This patch removes old dead code: - kill off sh7300 cpu support - get rid of broken solution engine 7300 board support Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Kill off virt_to_bus()/bus_to_virt().Paul Mundt2007-07-261-0/+3
| | | | | | | | Wire up ARCH_NO_VIRT_TO_BUS, and kill off the remaining users. The dma-mapping code really wanted virt_to_phys()/phys_to_virt() anyways, there are no inherently special bus addresses. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Restrict DSP support to specific CPUs.Paul Mundt2007-07-262-2/+8
| | | | | | | | | Not all CPUs support the DSP, and this leads to problems when mixing and matching CPU types and DSP opcodes. Fix this up by only allowing CONFIG_SH_DSP to be enabled for the CPUs that explicitly have such a block. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Silence sq compile warning on sh4 nommu.Paul Mundt2007-07-261-6/+12
| | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Kill the rest of the SE73180 cruft.Paul Mundt2007-07-261-1/+0
| | | | | | | There was a stray header, and the mach-type removal was also missed. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: remove support for sh73180 and solution engine 73180Magnus Damm2007-07-2513-1279/+2
| | | | | | | | | This patch removes old dead code: - kill off sh73180 cpu support - get rid of broken solution engine 73180 board support Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: remove old broken pint codeMagnus Damm2007-07-254-227/+0
| | | | | | | | | The code in arch/sh/kernel/cpu/irq/pint.c doesn't compile, so let's get rid of it to make space for a future pint implementation on top of intc. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Reclaim beginning of P3 space for vmalloc area.Paul Mundt2007-07-251-3/+0
| | | | | | | | The first 1MB of P3 space was reserved and used for page colouring, as we've reworked that to use fixmaps, we can reclaim the space and hand it back to VMALLOC_START. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix Dreamcast DMA issues.Adrian McMenamin2007-07-241-3/+4
| | | | | | | | | | | | | The current SH DMA API is somewhat broken, not correctly matching virtual channel to the correct SH DMAC. This wasn't noticeable when using g2 DMA for the sound driver - one channel 0 is as good as any other! - but caused the pvr2 driver to fail. This patch fixes the pvr2 problem and consequently fixes the sound driver to ensure it continues to function. Signed-off by: Adrian McMenamin <adrian@mcmen.demon.co.uk> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Add kmap_coherent()/kunmap_coherent() interface for SH-4.Paul Mundt2007-07-242-52/+34
| | | | | | | | | | | | | This wires up kmap_coherent() and kunmap_coherent() on SH-4, and moves away from the p3map_mutex and reserved P3 space, opting to use fixmaps for colouring instead. The copy_user_page()/clear_user_page() implementations are moved to this, which fixes the nasty blowups with spinlock debugging as a result of having some of these calls nested under the page table lock. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* clockevents: fix resume logicThomas Gleixner2007-07-211-0/+1
| | | | | | | | | | | | | | | | | | | | We need to make sure, that the clockevent devices are resumed, before the tick is resumed. The current resume logic does not guarantee this. Add CLOCK_EVT_MODE_RESUME and call the set mode functions of the clock event devices before resuming the tick / oneshot functionality. Fixup the existing users. Thanks to Nigel Cunningham for tracking down a long standing thinko, which affected the jinxed VAIO. [akpm@linux-foundation.org: xen build fix] Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: john stultz <johnstul@us.ibm.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* sh: intc - add support for SH7750 and its variantsMagnus Damm2007-07-207-74/+205
| | | | | | | | | | | | | This patch converts the cpu specific 7750 setup code to use the new intc controller. Many new vectors are added and multiple processor variants including 7091, 7750, 7750s, 7750r, 7751 and 7751r should all have the correct vectors hooked up. IRLM interrupts can be enabled using ipr_irq_enable_irlm() which now is marked as __init. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Move entry point code to .text.head.Paul Mundt2007-07-202-1/+3
| | | | | | | | | | | Follow Al Viro's m68k change from l-k: i.e. tell modpost that entry point code (that has to be outside of .init.text for external reasons) is OK to refer to .init.* Shuts up some section mismatch warnings from modpost. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: heartbeat: Shut up resource size warning.Paul Mundt2007-07-201-1/+1
| | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: update r2d defconfig and fix SH7751R pci compliationMagnus Damm2007-07-202-3/+4
| | | | | | | | | | | | | | | | | | | | | This patch updates the r2d board support in a few ways: - CPU_SUBTYPE_SH7751R is selected in the defconfig to play well with the r2d board Kconfig entry. Without this the defconfig results in no board enabled. - Enable EARLY_PRINTK. - Enable SH_STANDARD_BIOS - this works well for early printk on the r2d board. - Add "earlyprink=bios" to the cmdline for early serial port output by default. - CONFIG_SUBTYPE_SH7751R support is added to the sh-specific pci makefile. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Many symbol exports for nommu allmodconfig.Paul Mundt2007-07-203-2/+43
| | | | | | | | allmodconfig generates a lot of interesting code, a lot of the generated symbols we've never exported before, so this fixes those up. Verified with both GCC3 and GCC4 toolchains. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: zero terminate 8250 platform data for r2d boardMagnus Damm2007-07-201-1/+2
| | | | | | | struct plat_serial8250_port should contain a terminating zero entry Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: cpufreq: Fix up the build for SH-2.Paul Mundt2007-07-201-5/+0
| | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Make on-chip DMA channel selection explicit.Paul Mundt2007-07-201-1/+1
| | | | | | | | | | | Currently this has a prompt to allow users to change it. There's no reason to do this, and it has caused breakage and confusion in the past, so remove it entirely. We'll get rid of this when the whole driver is tidied for the driver model. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix up CPU dependencies for on-chip DMAC.Paul Mundt2007-07-201-0/+1
| | | | | | | We only handle SH-3 and SH-4 at present, don't expose it to the other CPUs. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* Merge branch 'clkfwk'Paul Mundt2007-07-204-135/+112
|\
| * sh: cpufreq: clock framework support.Paul Mundt2007-07-202-135/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | This gets the SH cpufreq working again. We follow the changes in the AVR32 implementation for wrapping in to the clock framework. CPUs that wish to use this are required to define rate rounding primitives in order to satisfy clk_round_rate(). This works well enough for the common case, though we should look at unifying this driver across all of the platforms that implement clock framework support in one capacity or another. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Support rate rounding for SH7722 FRQCR clocks.Paul Mundt2007-07-201-0/+15
| | | | | | | | | | | | | | Now that the round_rate() op is supported, hook it up on SH7722 for the FRQCR (CPU, PCLK, etc.) clocks. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Implement clk_round_rate() in the clock framework.Paul Mundt2007-07-201-0/+16
| | | | | | | | | | | | | | | | This is an optional component of the clock framework. However, as we're going to be using this in the cpufreq drivers, add support for it to the framework. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Fix up PCI section mismatch warnings.Paul Mundt2007-07-204-4/+4
| | | | | | | | | | | | | | Flag pcibios_setup() and pcibios_fixup_bus() as __devinit. Follows the sh64 change. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Wire up fallocate() syscall.Paul Mundt2007-07-201-0/+1
|/ | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: intc - add support for 7780Magnus Damm2007-07-206-32/+195
| | | | | | | | | | | | | | | | This patch converts the cpu specific 7780 setup code to use the new intc controller. Many new vectors are added and also support for external interrupt sense configuration. So with this patch it is now possible to configure external interrupt pins as edge or level triggered using set_irq_type(). No external interrupts are registered by default. Use plat_irq_setup_pins() to select between IRQ or IRL mode. This patch also fixes the Alarm IRQ for the RTC. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: intc - improve group supportMagnus Damm2007-07-201-20/+73
| | | | | | | | | | | | | This patch improves intc group support, ie it makes it possible to group interrupts together and mask / unmask the entire group. This also works with priorities, so setting a priority for an entire group is also possible. This patch is needed to properly support certain processors such as the 7780. Fixes for NULL pointers in DECLARE_INTC_DESC() are also included. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: push-switch: Correct license string.Paul Mundt2007-07-201-1/+1
| | | | | | | | This was accidentally set as "GPLv2", whereas the kernel expects v2 to be written "GPL v2", this caused complaints regarding the use of the platform device APIs when built as a module. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: cpufreq: Fix driver dependencies and flag as broken.Paul Mundt2007-07-201-1/+1
| | | | | | | | This is only supported on SH-4, so don't expose it for the other CPUs. Additionally, it's suffered some bitrot, so add a BROKEN dependency as well until we fix it up. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: IPR/INTC2 IRQ setup consolidation.Magnus Damm2007-07-2012-24/+13
| | | | | | | | | | This patch unifies the cpu specific interrupt setup functions for interrupt controller blocks such as ipr, intc2 and intc. There is no point in having separate functions for each interrupt controller, so let's clean this up. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: clean up interrupt code for solution engine 7722 boardMagnus Damm2007-07-203-69/+34
| | | | | | | | | | | This patch cleans up solution engine 7722 specific interrupt code. The main purpose is to replace the mux function with use of set_irq_chained_handler() and replace hard coded register poking code with set_irq_type(). The board specific interrupts are also moved to start from SE7722_FPGA_IRQ_BASE. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: intc - add support for 7722 processorMagnus Damm2007-07-202-30/+130
| | | | | | | | | | | This patch converts the cpu specific 7722 setup code to use the new intc controller. Many new vectors are added and also support for external interrupt sense configuration. So with this patch it is now possible to configure external interrupt pins as edge or level triggered using set_irq_type(). Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>