summaryrefslogtreecommitdiff
path: root/arch/sh/kernel (follow)
Commit message (Collapse)AuthorAge
...
| * | | sh: clkfwk: Improve the generic clk_set_parent() implementation.Paul Mundt2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This causes the generic clk_set_parent() implementation to be a bit more intelligent. A clk_reparent() is added to move the clock over to the new parent's sibling list, which then allows the generic rate propagation code to succeed. This also becomes a nop if the new and old parents are unchanged. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | sh: clkfwk: Fix up the clk_enable() error path.Paul Mundt2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are a couple of instances where a clk_enable() can fail, which the SH-Mobile code presently handles, but doesn't get reported all the way back up. This fixes up the return type so the errors make it all the way down to the drivers. Additionally, we now also error out properly if the parent enable fails. Prep work for aggressively turning off unused clocks on boot. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | sh: clkfwk: Convert SH-Mobile CPUs to use CLK_ENABLE_ON_INIT.Paul Mundt2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Kill off all of the clk_always_enabled leftovers and use the new flag directly. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | sh: clkfwk: Consolidate the ALWAYS_ENABLED / NEEDS_INIT mess.Paul Mundt2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no real distinction here in behaviour, either a clock needs to be enabled on initialiation or not. The ALWAYS_ENABLED flag was always intended to only apply to clocks that were physically always on and could simply not be disabled at all from software. Unfortunately over time this was abused and the meaning became a bit blurry. So, we kill off both of all of those paths now, as well as the newer NEEDS_INIT flag, and consolidate on a CLK_ENABLE_ON_INIT. Clocks that need to be enabled on initialization can set this, and it will purposely enable them and bump the refcount up. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | sh: clkfwk: refactor rate propagation.Paul Mundt2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This resyncs the rate propagation strategy with the scheme used by the OMAP clock framework. Child clocks are tracked on a list under each parent and propagation happens there specifically rather than constantly iterating over the global clock list. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | sh: clkfwk: Add a followparent_recalc() helper.Paul Mundt2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a followparent_recalc() helper for clocks that just follow the parent's rate. Switch over the few CPUs that use this scheme for some of their clocks. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | sh: clkfwk: Make recalc return an unsigned long.Paul Mundt2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is prep work for cleaning up some of the rate propagation bits. Trivial conversion. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | | sh: irq: Fix up imask build warnings.Paul Mundt2009-05-26
| | | | | | | | | | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | | sh: Wrap irq_to_desc_alloc_cpu() around CONFIG_SPARSE_IRQ temporarily.Paul Mundt2009-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | irq_to_desc_alloc_cpu() has been renamed to irq_to_desc_alloc_node() in -next, but as we can not presently enable SPARSE_IRQ without the early irq_desc alloc patch, protect it with an ifdef until the interface has settled and we are ready to enable it system-wide. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | | sh: irq: Provide an arch_probe_nr_irqs() that wraps the machvec def.Paul Mundt2009-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is just a simple arch_probe_nr_irqs() stub that wraps to the platform defined number of IRQs. This can be made gradually more intelligent based on what we can infer from the INTC tables and so on. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | | sh: irq: Teach ipr and intc about dynamically allocating irq_descs.Paul Mundt2009-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This hooks in irq_to_desc_alloc_cpu() to the necessary code paths in the intc and ipr controller registration paths. As these are the primary call paths for all SH CPUs, this alone will make all CPUs sparse IRQ ready. There is the added benefit now that each CPU contains specific IPR and INTC tables, so only the vectors with interrupt sources backing them will ever see an irq_desc instantiation. This effectively packs irq_desc down to match the CPU, rather than padding NR_IRQS out to cover the valid vector range. Boards with extra sources will still have to fiddle with the nr_irqs setting, but they can continue doing so through the machvec as before. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | | sh: irq: Convert from irq_desc[] to irq_to_desc().Paul Mundt2009-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This converts a few places that were using the old irq_desc[] array over to the shiny new irq_to_desc() helper. Preperatory work for sparse irq support. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | | sh: irq: Rework the SR.IMASK bitmap handling.Paul Mundt2009-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This tidies up how the SR.IMASK bitmap is managed, using the bitmap API directly instead. At the same time, tidy up the irq_chip conversion a bit. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | | sh: intc tables for sh7770Magnus Damm2009-05-14
| |/ / |/| | | | | | | | | | | | | | | | | | | | This patch adds INTC tables for sh7770, thanks goes to Paul for the first prototype version. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: Kill off the remnants of the old timer code.Paul Mundt2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | Now with all of the TMU users moved over to the new TMU driver, and the old TMU driver killed off, the left-over infrastructure can go along with it. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: remove old TMU driverMagnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the old TMU driver (CONFIG_SH_TMU/timer-tmu.c) As replacement, select the sh_tmu driver with CONFIG_SH_TIMER_TMU and configure timer channel using platform data. If multiple TMU channels are enabled using platform data, use the earlytimer parameter on the kernel command line to select channel. For instance, use "earlytimer=sh_tmu.0" to select the first channel. To verify which timer is being used, look at printouts or the timer irq count in /proc/interrupts. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: CMT platform data for sh7720/sh7721Magnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds CMT platform data for sh7720 and sh7721. All 5 32-bit CMT channels unfortunately share a single IRQ. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: TMU platform data for sh7720/sh7721Magnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds TMU platform data for sh7720 and sh7721. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: TMU platform data for sh7710/sh7712Magnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds TMU platform data for sh7710 and sh7712. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: TMU platform data for sh7706/sh7707/sh7708/sh7709Magnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | Add TMU platform data for sh7706/sh7707/sh7708/sh7709. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: TMU platform data for sh7705Magnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds TMU platform data for sh7705. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: TMU platform data for sh7724Magnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds TMU platform data for sh7724. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: TMU platform data for sh7366Magnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds TMU platform data for sh7366. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: TMU platform data for sh7343Magnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds TMU platform data for sh7343. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: add sh4-202 INTC tablesMagnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds INTC tables for sh4-202 with support for HUDI, TMU0, TMU1, TMU2, RTC, SCIF and WDT. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: TMU platform data for sh4-202Magnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds TMU platform data for sh4-202. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: TMU platform data for sh7770Magnus Damm2009-05-12
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds TMU platform data for sh7770. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: TMU platform data for sh7763Magnus Damm2009-05-12
|/ / | | | | | | | | | | | | | | This patch adds TMU platform data for sh7763. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: TMU platform data for sh7780Magnus Damm2009-05-11
| | | | | | | | | | | | | | | | This patch adds TMU platform data for sh7780. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: multiple vectors per irq - sh7760Magnus Damm2009-05-11
| | | | | | | | | | | | | | | | | | | | | | | | Update intc tables and platform data to use one linux irq per maskable interrupt source instead of keeping the one-to-one mapping between vectors and linux irqs. This fixes potential irq masking issues for sh7760 hardware blocks such as DMAC/TMU2/REF. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: TMU platform data for sh7760Magnus Damm2009-05-11
| | | | | | | | | | | | | | | | This patch adds TMU platform data for sh7760. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: TMU platform data for sh775xMagnus Damm2009-05-11
| | | | | | | | | | | | | | | | This patch adds TMU platform data for sh775x. Both clockevent and clocksource support is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: include empty_zero_page in textMagnus Damm2009-05-11
| | | | | | | | | | | | | | | | | | Include empty_zero_page in _text. This fixes a problem introduced by c3e2586b794b12ffcdf69b4e547030b51e18e6d9 which results in broken boot on R2D-Plus. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Account for INITIAL_JIFFIES when using jiffies clocksource.Paul Mundt2009-05-11
| | | | | | | | | | | | | | | | In the case where we fall back on the generic jiffies clocksource, INITIAL_JIFFIES needs to be accounted for so that printk times aren't completely skewed. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Fix up typo in arch/sh/kernel/vmlinux.lds.SPaul Mundt2009-05-11
| | | | | | | | | | | | .init_ramfs ought to be .init.ramfs, fix it up. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Tidy up the ldscript output format specifier.Paul Mundt2009-05-10
| | | | | | | | | | | | | | | | Tie this in to the Makefile directly, where we already know what we are running on. This tidies up the linker script a bit, and is prep work for unifying the arch/sh/boot/compressed linker scripts. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Move the unified linker script in place, kill off old _64 one.Paul Mundt2009-05-09
| | | | | | | | | | | | | | Just forcefully rename the _32 variant overtop, and kill off the now unused _64 version. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Integrate sh64 bits in vmlinux_32.lds.S.Paul Mundt2009-05-09
| | | | | | | | | | | | | | | | This adds all of the requisite bits from vmlinux_64.lds.S in to the _32 variant, resulting in a unified and generic linker script that can be shared across both. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Fix up SHmedia module ELF relocations.Paul Mundt2009-05-09
| | | | | | | | | | | | | | This fixes up the LSB setting for SHmedia branching in updated symbols when processing module relocations. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Provide an __sdivsi3_2 export for sh64.Paul Mundt2009-05-09
| | | | | | | | | | | | | | | | | | Newer code paths that are heavier in 64-bit math manage to get this generated by newer compilers, provide a definition and export accordingly. This is trivially wrapped around the existing __sdivsi3 code. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Rename opcode_t to insn_size_t.Paul Mundt2009-05-09
| | | | | | | | | | | | This is now clashing with a driver, so just rename it. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Add UBC trap vector for SH2APeter Griffin2009-05-09
| | | | | | | | | | Signed-off-by: Peter Griffin <pgriffin@mpc-data.co.uk> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Add ptrace support for NOMMU debuggingPeter Griffin2009-05-09
| | | | | | | | | | Signed-off-by: Peter Griffin <pgriffin@mpc-data.co.uk> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Fix UBC setup and registers for SH2AKieran Bingham2009-05-09
| | | | | | | | | | | | Signed-off-by: Kieran Bingham <kieranbingham@gmail.com> Signed-off-by: Peter Griffin <pgriffin@mpc-data.co.uk> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Add clock id to sh-sci platform data on SH-Mobile CPUs.Paul Mundt2009-05-08
| | | | | | | | | | | | | | This adds the clock specifier to all of the SH-Mobile sh-sci ports. Impacted CPUs are SH7343/SH7366/SH7722/SH7723/SH7724. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Kill off the GENERIC_CALIBRATE_DELAY ifndef.Paul Mundt2009-05-08
| | | | | | | | | | | | | | | | Now that everyone is using the clock framework directly and we unconditionally provide our own calibrate_delay() function, having it wrapped in an ifndef is no longer useful. So, kill it off. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: TMU platform data for SH-X3 proto CPU.Paul Mundt2009-05-08
| | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: TMU platform data for SH7786.Paul Mundt2009-05-08
| | | | | | | | | | | | | | Wires up all 12 TMU channels, with TMU0 and 1 used as clockevent and clocksource respectively. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Always fixup unaligned userspace accesses on sh64.Paul Mundt2009-05-08
| | | | | | | | | | | | | | | | | | | | | | | | sh64 has traditionally had this configurable via a Kconfig option (CONFIG_SH64_USER_MISALIGNED_FIXUP). In practice it has never really been terribly useful to turn this off, so just get rid of the option entirely. We leave the sysctl around so we don't end up breaking existing root file systems, and to allow folks that really want this off to do so at their own risk. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: Drop dead rules from arch/sh/kernel/Makefile_64.Paul Mundt2009-05-08
| | | | | | | | | | | | | | | | Several of these options are specific to the SHcompact ISA and will need to be rewritten for SHmedia if they are to be supported at all. Drop the impossible rules for now. Signed-off-by: Paul Mundt <lethal@linux-sh.org>