aboutsummaryrefslogtreecommitdiff
path: root/arch/sh
AgeCommit message (Collapse)Author
2008-12-22sh: Migrate necessary libgcc bits in to arch/sh/lib for SUPERH32.Paul Mundt
This moves in the necessary libgcc bits for SUPERH32 and drops the libgcc linking for the regular targets. This in turn allows us to rip out quite a few hacks both in sh_ksyms_32 and arch/sh/Makefile. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: __udivdi3 -> do_div() in softfloat lib.Paul Mundt
Inhibit the generation of __udivdi3 for the softfloat lib, use do_div() outright. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: Fix clock framework compiler warnings.Paul Mundt
CC arch/sh/kernel/cpu/clock.o arch/sh/kernel/cpu/clock.c: In function 'clk_disable': arch/sh/kernel/cpu/clock.c:156: warning: 'return' with a value, in function returning void Introduced by ("sh: enable and disable clocks recursively"). Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: dynamic ftrace support.Matt Fleming
First cut at dynamic ftrace support. Signed-off-by: Matt Fleming <mjf@gentoo.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: remove old sh_mobile mstpc clocksMagnus Damm
Remove the old sh_mobile mstpcr clocks. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile lcdc clock framework supportMagnus Damm
Add clock framework support to the lcdc driver and adjust the board specific code accordingly. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile usb clock framework supportMagnus Damm
Add clock framework support to the usb/r8a66597 driver and adjust the cpu specific code accordingly. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile usbf clock framework supportMagnus Damm
Add clock framework support to the usbf/m66592 driver and adjust the cpu specific code accordingly. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile ceu clock framework supportMagnus Damm
Add clock framework support to the sh_mobile ceu and adjust the board specific code accordingly. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile keysc clock framework supportMagnus Damm
Add clock framework support to the sh_mobile keysc driver and adjust the board specific code accordingly. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile i2c clock framework supportMagnus Damm
Add clock framework support to the sh_mobile i2c driver and adjust the processor specific code accordingly. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile mstpcr clocks for sh7366Magnus Damm
Add sh7366 mstpcr bits and information about their parent clocks. The datasheet is pretty clear about the clocks on this device. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile mstpcr clocks for sh7343Magnus Damm
Add sh7343 mstpcr bits and information about their parent clocks. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile mstpcr clocks for sh7723Magnus Damm
Add sh7723 mstpcr bits and information about their parent clocks. The datasheet is pretty clear about the clocks on this device. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile mstpcr clocks for sh7722Magnus Damm
Add sh7722 mstpcr bits and information about their parent clocks. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: new sh_mobile mstpcr clocks base codeMagnus Damm
Add base code to handle new mstpcr clocks. Make sure clock rates propagate. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: use arch_flags for sh_mobile mstpcr clock bitsMagnus Damm
Use arch_flags to keep track of register and flag number. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: sh_mobile clock divider index fixMagnus Damm
Use divider index value instead of divider value. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: enable and disable clocks recursivelyMagnus Damm
Recurse and make sure parent clocks get enabled/disabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-22sh: Move arch_get_unmapped_area() in to arch/sh/mm/mmap.c.Paul Mundt
Now that arch/sh/mm/mmap.c exists, move arch_get_unmapped_area() there. Follows the ARM change. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-12-16sh: Disable GENERIC_HARDIRQS_NO__DO_IRQ for unconverted platforms.Paul Mundt
Presently limited to Cayman, Dreamcast, Microdev, and SystemH 7751. Re-enable it for everyone once these have been fixed up. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-11-13serial: sh-sci: Reorder the SCxTDR write after the TDxE clear.Paul Mundt
Under qemu there is a race between the TDxE read-and-clear and the SCxTDR write. While on hardware it can be gauranteed that the read-and-clear will happen prior to the character being written out, no such assumption can be made under emulation. As this path happens with IRQs off and the hardware itself doesn't care about the ordering, move the SCxTDR write until after the read-and-clear. Signed-off-by: Vladimir Prus <vladimir@codesourcery.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-11-13sh: __copy_user function can corrupt the stack in case of exceptionStuart MENEFY
The __copy_user function can corrupt the stack in the case of a non-trivial length of data, and either of the first two move instructions cause an exception. This is because the fixup for these two instructions is mapped to the no_pop case, but these instructions execute after the stack is pushed. This change creates an explicit NO_POP exception mapping macro, and uses it for the two instructions executed in the trivial case where no stack pushes occur. More information at ST Linux bugzilla: https://bugzilla.stlinux.com/show_bug.cgi?id=4824 Signed-off-by: Dylan Reid <dylan_reid@bose.com> Signed-off-by: Stuart Menefy <stuart.menefy@st.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-11-13sh: Fixed the TMU0 reload value on resumeFrancesco VIRLINZI
This patch fixes the TMU0 interrupt frequency on suspend/resume. During the resume the kernel reprograms the TMU0.ClockEvent mode but if the mode is periodic than the TMU0.TCOR is updated with a random wrong value without taking care latest valid saved value. There was no problem with No_HZ system where TMU0.TCOR isn't used. Signed-off-by: Francesco M. Virlinzi <francesco.virlinzi@st.com> Signed-off-by: Stuart Menefy <stuart.menefy@st.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-11-13sh: Don't factor in PAGE_OFFSET for valid_phys_addr_range() check.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-11-13sh: early printk port type fixMagnus Damm
Add PORT_SCIF to unbreak the early printk code. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-11-12sh: Provide a sane valid_phys_addr_range() to prevent TLB reset with PMB.Paul Mundt
With the PMB enabled, only P1SEG and up are covered by the PMB mappings, meaning that situations where out-of-bounds physical addresses are read from will lead to TLB reset after the PMB miss, allowing for use cases like dd if=/dev/mem to reset the TLB. Fix this up to make sure the reference is between __MEMORY_START (phys) and __pa(high_memory). This is coherent across all variants of sh/sh64 with and without MMU, though the PMB bug itself is only applicable to SH-4A parts. Reported-by: Hideo Saito <saito@densan.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-11-12fix sci type for SH7723Yoshihiro Shimoda
This patch changes sci type of SH7723 from PORT_SCI to PORT_SCIFA. Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-11-10sh: Handle fixmap TLB eviction more coherently.Paul Mundt
There was a race in the kmap_coherent() implementation. While we guarded against preemption, there was nothing preventing eviction of the pre-faulted fixmap entry from the UTLB. Under certain workloads this would result in the fixmap entries used for cache colouring being evicted from the UTLB in the midst of a copy_page(). In addition to pre-faulting, we also make sure to preserve the PTEs in the kernel page table and introduce a cached PTE for kmap_coherent() usage. This follows a similar change on MIPS ("[MIPS] Fix aliasing bug in copy_to_user_page / copy_from_user_page"). Reported-by: Hideo Saito <saito@densan.co.jp> Reported-by: CHIKAMA Masaki <masaki.chikama@gmail.com> Tested-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-31sh: fix sh2a cache entry_maskYoshihiro Shimoda
fix sh2a cache entry_mask in __flush_{purge,invalidate}_region. Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-31sh: Enable NFS root in Migo-R defconfig.Kuninori Morimoto
Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-31sh: FTRACE renamed to FUNCTION_TRACER.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-31Add support usb setting on sh 7366Kuninori Morimoto
This patch add usb setting for sh 7366 Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-31sh: use the new byteorder headers.Harvey Harrison
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-31sh: SHmedia ISA tuning fixups.Paul Mundt
SH-5 doesn't support any elaborate ISA inheritance schemes (-dsp, -up, etc.), so only bother with that if we are building an sh32 kernel. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-28sh: Kill off long-dead HD64465 cchip support.Paul Mundt
This code has been dead for many years. The last update it received was in 2003 in order to update it for the driver model changes, though it had already been in disarray and unused before that point. The only boards that ever used this chip have not had users in many years either, so it is finally safe to just kill it off and move on with life. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-28Merge branches 'sh/serial-rework' and 'sh/oprofile'Paul Mundt
2008-10-28sh: Simplify and lock down the ISA tuning.Paul Mundt
The ISA tuning as it is today can not cope with all of the different variations that are possible, so all we can do is a best attempt based on the CPU family. The DSP and FPU generation are already at odds with each other, and the nommu tuning we weren't handling at all. Additionally, for platforms that never had an FPU, the -nofpu variant never existed, meaning that we would lose out on family granular tuning completely in certain cases. With tat out of the way, we were also using -up versions, allowing for later instructions that branched off of a particular subset of the ISA, but are not actually reflected on the hardware being targetted. This leads to some confusion, and the possibility of bogus instructions on older parts. Kill that off and lock it down to the family being built for specifically. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-28sh: sh7785lcr: Select uImage as default image target.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-28sh: Add on-chip RTC support for SH7722.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-28sh: Provide a sample defconfig for the UL2 (SH7366) board.Kuninori Morimoto
Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-28sh: Fix FPU tuning on toolchains with mismatched multilib targets.Paul Mundt
Presently there is very little standing in the way of using an SH-4 toolchain for building an SH-2 kernel, and vice versa. Binutils itself has no limitations whatsoever and supports explicit ISA hinting, which we already use with varying degrees of success today. This leaves GCC as the odd one out, due to a rather dubious policy decision by the GCC folks to not include all of the CPU family variants in the default list of multilib targets in GCC4. Despite best efforts to the contrary, libgcc itself already contains awareness of the various CPU types and remains generally usable, allowing it to safely be referenced even on a mismatched target (and indeed, explicit ISA tuning by binutils keeps us honest in terms of ensuring that we do not link incompatible objects in). In order to support this, a couple of changes had to be made. Firstly, the introduction of MAYBE_DECLARE_EXPORT(), which provides a __weak extern reference for libgcc resident routines when finer-grained -m<cpu-family> based tuning is not supported by the toolchain. This fixes up the __sdivsi3_i4i and __udivsi3_i4i references when dealing with SH-2 kernels linked with an SH-4 libgcc. Secondly, in case where we are unable to find a suitable match for CPU family tuning but still have a toolchain that defaults to FP instruction generation, a suitable nofpu target must be selected. This is accomplished by selecting the first nofpu multilib target supported by the toolchain, which is also necessary for selecting the proper libgcc to link against. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-27sh: oprofile: Fix up the SH7750 performance counter name.Paul Mundt
Rather than varying this on a subtype level, we use the counter type as a generic identifier. This simplifies logic in the userspace tools where no fundamental difference exists across the various subtypes. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-23sh: asm/gpio.h needs linux/kernel.h for might_sleep()/WARN_ON().Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-23sh: mach-highlander: Handle SCIF pinmuxing on R7785RP.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-23sh: sh7785 pinmux supportMagnus Damm
This patch implements pinmux tables for the sh7785 processor. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-22sh: update defconfigs.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-22sh: Kill off unused p1fc divisors from SH7763 clk fwk.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-22sh: improve pinmux support for single direction pinsMagnus Damm
This patch improves the support for gpio pins that are hard wired to either input or output and lack control register association. A special force enum id is used to allow use without control register but still mark the gpio pin as input or output. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-10-22sh: use 10MHz VIO_CLK for ov772x on Migo-RMagnus Damm
Use a slower VIO_CKO clock frequency for the ov772x on Migo-R. This improves the camera picture quality on Panel Board V2.1. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>