From cbb78d7c964fa4ab4715343ab60ab0e49560ce40 Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Tue, 8 Dec 2009 15:47:12 +0900 Subject: [PATCH] --- yaml --- r: 181062 b: refs/heads/master c: 6424db52e24e8cdf89917fa3c10395116440160e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/sh/Kconfig | 29 +- trunk/arch/sh/Makefile | 4 + trunk/arch/sh/boards/Makefile | 1 - trunk/arch/sh/boards/mach-ap325rxa/Makefile | 2 + trunk/arch/sh/boards/mach-ap325rxa/sdram.S | 69 +++ .../setup.c} | 97 +++- trunk/arch/sh/boards/mach-ecovec24/Makefile | 2 +- trunk/arch/sh/boards/mach-ecovec24/sdram.S | 52 ++ trunk/arch/sh/boards/mach-ecovec24/setup.c | 197 +++++-- trunk/arch/sh/boards/mach-highlander/setup.c | 2 +- trunk/arch/sh/boards/mach-kfr2r09/Makefile | 2 +- trunk/arch/sh/boards/mach-kfr2r09/sdram.S | 80 +++ trunk/arch/sh/boards/mach-kfr2r09/setup.c | 238 ++++++++- trunk/arch/sh/boards/mach-migor/Makefile | 2 +- trunk/arch/sh/boards/mach-migor/sdram.S | 69 +++ trunk/arch/sh/boards/mach-migor/setup.c | 65 ++- trunk/arch/sh/boards/mach-r2d/irq.c | 2 +- trunk/arch/sh/boards/mach-se/7722/irq.c | 32 +- trunk/arch/sh/boards/mach-se/7722/setup.c | 17 +- trunk/arch/sh/boards/mach-se/7724/Makefile | 2 +- trunk/arch/sh/boards/mach-se/7724/sdram.S | 52 ++ trunk/arch/sh/boards/mach-se/7724/setup.c | 96 +++- trunk/arch/sh/boot/compressed/misc.c | 2 +- trunk/arch/sh/boot/romimage/Makefile | 12 +- trunk/arch/sh/boot/romimage/head.S | 38 ++ trunk/arch/sh/drivers/dma/dma-sysfs.c | 2 - trunk/arch/sh/drivers/pci/Kconfig | 19 - trunk/arch/sh/include/asm/addrspace.h | 9 +- trunk/arch/sh/include/asm/atomic.h | 9 +- trunk/arch/sh/include/asm/bitops.h | 4 +- trunk/arch/sh/include/asm/bugs.h | 4 + trunk/arch/sh/include/asm/dma-mapping.h | 233 +++----- trunk/arch/sh/include/asm/dwarf.h | 28 + trunk/arch/sh/include/asm/fixmap.h | 12 +- trunk/arch/sh/include/asm/fpu.h | 26 +- trunk/arch/sh/include/asm/ftrace.h | 17 + trunk/arch/sh/include/asm/gpio.h | 82 +-- trunk/arch/sh/include/asm/hardirq.h | 13 +- trunk/arch/sh/include/asm/io.h | 16 +- trunk/arch/sh/include/asm/irqflags.h | 31 +- trunk/arch/sh/include/asm/irqflags_32.h | 99 ---- trunk/arch/sh/include/asm/irqflags_64.h | 85 --- trunk/arch/sh/include/asm/mmu.h | 13 +- trunk/arch/sh/include/asm/pci.h | 30 +- trunk/arch/sh/include/asm/perf_event.h | 31 +- trunk/arch/sh/include/asm/pgtable.h | 26 +- trunk/arch/sh/include/asm/pgtable_32.h | 2 +- trunk/arch/sh/include/asm/processor_32.h | 3 +- trunk/arch/sh/include/asm/scatterlist.h | 2 +- trunk/arch/sh/include/asm/suspend.h | 65 +++ trunk/arch/sh/include/asm/system.h | 4 - trunk/arch/sh/include/asm/system_32.h | 29 + trunk/arch/sh/include/asm/system_64.h | 26 + trunk/arch/sh/include/asm/thread_info.h | 30 +- trunk/arch/sh/include/asm/topology.h | 8 + trunk/arch/sh/include/asm/ubc.h | 11 - trunk/arch/sh/include/asm/watchdog.h | 59 ++- trunk/arch/sh/include/cpu-sh4/cpu/watchdog.h | 13 + .../mach-ecovec24/mach/partner-jet-setup.txt | 3 +- trunk/arch/sh/include/mach-se/mach/se7722.h | 11 +- trunk/arch/sh/kernel/Makefile | 10 +- trunk/arch/sh/kernel/asm-offsets.c | 23 + trunk/arch/sh/kernel/cpu/Makefile | 1 - trunk/arch/sh/kernel/cpu/init.c | 28 +- trunk/arch/sh/kernel/cpu/sh2a/fpu.c | 27 +- trunk/arch/sh/kernel/cpu/sh3/entry.S | 33 -- trunk/arch/sh/kernel/cpu/sh4/Makefile | 8 +- trunk/arch/sh/kernel/cpu/sh4/fpu.c | 28 +- trunk/arch/sh/kernel/cpu/sh4/perf_event.c | 253 +++++++++ trunk/arch/sh/kernel/cpu/sh4a/Makefile | 1 + trunk/arch/sh/kernel/cpu/sh4a/clock-sh7724.c | 2 +- trunk/arch/sh/kernel/cpu/sh4a/perf_event.c | 269 ++++++++++ trunk/arch/sh/kernel/cpu/sh4a/setup-sh7724.c | 264 ++++++++- trunk/arch/sh/kernel/cpu/sh4a/setup-shx3.c | 45 +- trunk/arch/sh/kernel/cpu/sh4a/smp-shx3.c | 37 +- trunk/arch/sh/kernel/cpu/sh5/entry.S | 2 +- trunk/arch/sh/kernel/cpu/shmobile/cpuidle.c | 42 +- trunk/arch/sh/kernel/cpu/shmobile/pm.c | 117 +++- .../arch/sh/kernel/cpu/shmobile/pm_runtime.c | 17 +- trunk/arch/sh/kernel/cpu/shmobile/sleep.S | 344 ++++++------ trunk/arch/sh/kernel/cpu/ubc.S | 59 --- trunk/arch/sh/kernel/dma-nommu.c | 82 +++ trunk/arch/sh/kernel/dwarf.c | 222 ++++++-- trunk/arch/sh/kernel/entry-common.S | 2 +- trunk/arch/sh/kernel/ftrace.c | 146 ++++- trunk/arch/sh/kernel/head_32.S | 2 +- trunk/arch/sh/kernel/idle.c | 78 ++- trunk/arch/sh/kernel/io_generic.c | 4 +- trunk/arch/sh/kernel/irq.c | 14 + trunk/arch/sh/kernel/irq_32.c | 57 ++ trunk/arch/sh/kernel/irq_64.c | 51 ++ trunk/arch/sh/kernel/machine_kexec.c | 6 - trunk/arch/sh/kernel/machvec.c | 4 + trunk/arch/sh/kernel/module.c | 9 +- trunk/arch/sh/kernel/perf_callchain.c | 98 ++++ trunk/arch/sh/kernel/perf_event.c | 312 +++++++++++ trunk/arch/sh/kernel/process_32.c | 43 +- trunk/arch/sh/kernel/process_64.c | 2 + trunk/arch/sh/kernel/return_address.c | 54 ++ trunk/arch/sh/kernel/setup.c | 4 + trunk/arch/sh/kernel/sh_ksyms_32.c | 67 +-- trunk/arch/sh/kernel/sh_ksyms_64.c | 10 - trunk/arch/sh/kernel/signal_32.c | 24 +- trunk/arch/sh/kernel/signal_64.c | 13 +- trunk/arch/sh/kernel/smp.c | 4 +- trunk/arch/sh/kernel/topology.c | 26 + trunk/arch/sh/kernel/traps.c | 8 +- trunk/arch/sh/kernel/traps_32.c | 82 ++- trunk/arch/sh/lib/Makefile | 7 +- trunk/arch/sh/lib/memset-sh4.S | 107 ++++ trunk/arch/sh/math-emu/math.c | 6 +- trunk/arch/sh/mm/Kconfig | 19 +- trunk/arch/sh/mm/Makefile | 3 +- trunk/arch/sh/mm/cache-sh4.c | 501 +++--------------- trunk/arch/sh/mm/cache-sh5.c | 2 +- trunk/arch/sh/mm/cache-sh7705.c | 2 +- trunk/arch/sh/mm/cache.c | 18 +- trunk/arch/sh/mm/consistent.c | 28 +- trunk/arch/sh/mm/init.c | 19 + trunk/arch/sh/mm/kmap.c | 4 +- trunk/arch/sh/mm/numa.c | 2 +- trunk/arch/sh/mm/pmb-fixed.c | 45 -- trunk/arch/sh/mm/pmb.c | 268 +++++----- trunk/arch/sh/oprofile/Makefile | 4 - trunk/arch/sh/oprofile/common.c | 38 +- trunk/arch/sh/oprofile/op_impl.h | 2 +- trunk/arch/sh/oprofile/op_model_sh7750.c | 255 --------- trunk/drivers/cdrom/gdrom.c | 10 +- trunk/drivers/input/keyboard/sh_keysc.c | 2 +- trunk/drivers/mfd/Kconfig | 8 + trunk/drivers/mfd/Makefile | 1 + trunk/drivers/mfd/sh_mobile_sdhi.c | 156 ++++++ trunk/drivers/mmc/host/Kconfig | 2 +- trunk/drivers/rtc/rtc-ds1302.c | 2 +- trunk/drivers/serial/Kconfig | 2 +- trunk/drivers/serial/sh-sci.c | 59 +-- trunk/drivers/serial/sh-sci.h | 2 +- trunk/drivers/sh/Makefile | 1 + trunk/drivers/sh/intc.c | 123 ++++- trunk/drivers/sh/maple/maple.c | 4 +- .../sh/kernel/gpio.c => drivers/sh/pfc.c} | 43 +- trunk/drivers/video/sh_mobile_lcdcfb.c | 32 +- .../asm => include/linux/input}/sh_keysc.h | 6 +- trunk/include/linux/mfd/sh_mobile_sdhi.h | 8 + trunk/include/linux/sh_intc.h | 7 +- trunk/include/linux/sh_pfc.h | 96 ++++ 147 files changed, 4743 insertions(+), 2406 deletions(-) create mode 100644 trunk/arch/sh/boards/mach-ap325rxa/Makefile create mode 100644 trunk/arch/sh/boards/mach-ap325rxa/sdram.S rename trunk/arch/sh/boards/{board-ap325rxa.c => mach-ap325rxa/setup.c} (87%) create mode 100644 trunk/arch/sh/boards/mach-ecovec24/sdram.S create mode 100644 trunk/arch/sh/boards/mach-kfr2r09/sdram.S create mode 100644 trunk/arch/sh/boards/mach-migor/sdram.S create mode 100644 trunk/arch/sh/boards/mach-se/7724/sdram.S delete mode 100644 trunk/arch/sh/drivers/pci/Kconfig delete mode 100644 trunk/arch/sh/include/asm/irqflags_32.h delete mode 100644 trunk/arch/sh/include/asm/irqflags_64.h create mode 100644 trunk/arch/sh/kernel/cpu/sh4/perf_event.c create mode 100644 trunk/arch/sh/kernel/cpu/sh4a/perf_event.c delete mode 100644 trunk/arch/sh/kernel/cpu/ubc.S create mode 100644 trunk/arch/sh/kernel/dma-nommu.c create mode 100644 trunk/arch/sh/kernel/irq_32.c create mode 100644 trunk/arch/sh/kernel/irq_64.c create mode 100644 trunk/arch/sh/kernel/perf_callchain.c create mode 100644 trunk/arch/sh/kernel/perf_event.c create mode 100644 trunk/arch/sh/kernel/return_address.c create mode 100644 trunk/arch/sh/lib/memset-sh4.S delete mode 100644 trunk/arch/sh/mm/pmb-fixed.c delete mode 100644 trunk/arch/sh/oprofile/op_model_sh7750.c create mode 100644 trunk/drivers/mfd/sh_mobile_sdhi.c rename trunk/{arch/sh/kernel/gpio.c => drivers/sh/pfc.c} (94%) rename trunk/{arch/sh/include/asm => include/linux/input}/sh_keysc.h (75%) create mode 100644 trunk/include/linux/mfd/sh_mobile_sdhi.h create mode 100644 trunk/include/linux/sh_pfc.h diff --git a/[refs] b/[refs] index 95bfbe802d0f..fe729e1e32ee 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 09a072947791088b88ae15111cf68fc5aaaf758d +refs/heads/master: 6424db52e24e8cdf89917fa3c10395116440160e diff --git a/trunk/arch/sh/Kconfig b/trunk/arch/sh/Kconfig index d563884833e9..185e9af251cf 100644 --- a/trunk/arch/sh/Kconfig +++ b/trunk/arch/sh/Kconfig @@ -16,7 +16,9 @@ config SUPERH select HAVE_IOREMAP_PROT if MMU select HAVE_ARCH_TRACEHOOK select HAVE_DMA_API_DEBUG + select HAVE_DMA_ATTRS select HAVE_PERF_EVENTS + select PERF_USE_VMALLOC select HAVE_KERNEL_GZIP select HAVE_KERNEL_BZIP2 select HAVE_KERNEL_LZMA @@ -37,6 +39,7 @@ config SUPERH32 select HAVE_FTRACE_MCOUNT_RECORD select HAVE_DYNAMIC_FTRACE select HAVE_FUNCTION_TRACE_MCOUNT_TEST + select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE select HAVE_FUNCTION_GRAPH_TRACER select HAVE_ARCH_KGDB select HAVE_HW_BREAKPOINT if CPU_SH4A @@ -171,6 +174,12 @@ config ARCH_HAS_CPU_IDLE_WAIT config IO_TRAPPED bool +config DMA_COHERENT + bool + +config DMA_NONCOHERENT + def_bool !DMA_COHERENT + source "init/Kconfig" source "kernel/Kconfig.freezer" @@ -221,6 +230,7 @@ config CPU_SHX2 config CPU_SHX3 bool + select DMA_COHERENT config ARCH_SHMOBILE bool @@ -762,17 +772,6 @@ config ENTRY_OFFSET default "0x00010000" if PAGE_SIZE_64KB default "0x00000000" -config UBC_WAKEUP - bool "Wakeup UBC on startup" - depends on CPU_SH4 && !CPU_SH4A - help - Selecting this option will wakeup the User Break Controller (UBC) on - startup. Although the UBC is left in an awake state when the processor - comes up, some boot loaders misbehave by putting the UBC to sleep in a - power saving state, which causes issues with things like ptrace(). - - If unsure, say N. - choice prompt "Kernel command line" optional @@ -819,7 +818,13 @@ config MAPLE Dreamcast with a serial line terminal or a remote network connection. -source "arch/sh/drivers/pci/Kconfig" +config PCI + bool "PCI support" + depends on SYS_SUPPORTS_PCI + help + Find out whether you have a PCI motherboard. PCI is the name of a + bus system, i.e. the way the CPU talks to the other stuff inside + your box. If you have PCI, say Y, otherwise N. source "drivers/pci/pcie/Kconfig" diff --git a/trunk/arch/sh/Makefile b/trunk/arch/sh/Makefile index 66e40aabc600..ac17c5ac550e 100644 --- a/trunk/arch/sh/Makefile +++ b/trunk/arch/sh/Makefile @@ -78,6 +78,9 @@ defaultimage-$(CONFIG_SUPERH32) := zImage defaultimage-$(CONFIG_SH_SH7785LCR) := uImage defaultimage-$(CONFIG_SH_RSK) := uImage defaultimage-$(CONFIG_SH_URQUELL) := uImage +defaultimage-$(CONFIG_SH_MIGOR) := uImage +defaultimage-$(CONFIG_SH_AP325RXA) := uImage +defaultimage-$(CONFIG_SH_7724_SOLUTION_ENGINE) := uImage defaultimage-$(CONFIG_SH_7206_SOLUTION_ENGINE) := vmlinux defaultimage-$(CONFIG_SH_7619_SOLUTION_ENGINE) := vmlinux @@ -136,6 +139,7 @@ machdir-$(CONFIG_SH_7751_SYSTEMH) += mach-systemh machdir-$(CONFIG_SH_EDOSK7705) += mach-edosk7705 machdir-$(CONFIG_SH_HIGHLANDER) += mach-highlander machdir-$(CONFIG_SH_MIGOR) += mach-migor +machdir-$(CONFIG_SH_AP325RXA) += mach-ap325rxa machdir-$(CONFIG_SH_KFR2R09) += mach-kfr2r09 machdir-$(CONFIG_SH_ECOVEC) += mach-ecovec24 machdir-$(CONFIG_SH_SDK7780) += mach-sdk7780 diff --git a/trunk/arch/sh/boards/Makefile b/trunk/arch/sh/boards/Makefile index 7baa21090231..ce0f26381784 100644 --- a/trunk/arch/sh/boards/Makefile +++ b/trunk/arch/sh/boards/Makefile @@ -1,7 +1,6 @@ # # Specific board support, not covered by a mach group. # -obj-$(CONFIG_SH_AP325RXA) += board-ap325rxa.o obj-$(CONFIG_SH_MAGIC_PANEL_R2) += board-magicpanelr2.o obj-$(CONFIG_SH_SH7785LCR) += board-sh7785lcr.o obj-$(CONFIG_SH_URQUELL) += board-urquell.o diff --git a/trunk/arch/sh/boards/mach-ap325rxa/Makefile b/trunk/arch/sh/boards/mach-ap325rxa/Makefile new file mode 100644 index 000000000000..4cf1774d2613 --- /dev/null +++ b/trunk/arch/sh/boards/mach-ap325rxa/Makefile @@ -0,0 +1,2 @@ +obj-y := setup.o sdram.o + diff --git a/trunk/arch/sh/boards/mach-ap325rxa/sdram.S b/trunk/arch/sh/boards/mach-ap325rxa/sdram.S new file mode 100644 index 000000000000..db24fbed4fca --- /dev/null +++ b/trunk/arch/sh/boards/mach-ap325rxa/sdram.S @@ -0,0 +1,69 @@ +/* + * AP325RXA sdram self/auto-refresh setup code + * + * Copyright (C) 2009 Magnus Damm + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + */ + +#include +#include +#include +#include +#include +#include + +/* code to enter and leave self-refresh. must be self-contained. + * this code will be copied to on-chip memory and executed from there. + */ + .balign 4 +ENTRY(ap325rxa_sdram_enter_start) + + /* SBSC: disable power down and put in self-refresh mode */ + mov.l 1f, r4 + mov.l 2f, r1 + mov.l @r4, r2 + or r1, r2 + mov.l 3f, r3 + and r3, r2 + mov.l r2, @r4 + + rts + nop + + .balign 4 +1: .long 0xfe400008 /* SDCR0 */ +2: .long 0x00000400 +3: .long 0xffff7fff +ENTRY(ap325rxa_sdram_enter_end) + + .balign 4 +ENTRY(ap325rxa_sdram_leave_start) + + /* SBSC: set auto-refresh mode */ + mov.l 1f, r4 + mov.l @r4, r0 + mov.l 4f, r1 + and r1, r0 + mov.l r0, @r4 + mov.l 6f, r4 + mov.l 8f, r0 + mov.l @r4, r1 + mov #-1, r4 + add r4, r1 + or r1, r0 + mov.l 7f, r1 + mov.l r0, @r1 + + rts + nop + + .balign 4 +1: .long 0xfe400008 /* SDCR0 */ +4: .long 0xfffffbff +6: .long 0xfe40001c /* RTCOR */ +7: .long 0xfe400018 /* RTCNT */ +8: .long 0xa55a0000 +ENTRY(ap325rxa_sdram_leave_end) diff --git a/trunk/arch/sh/boards/board-ap325rxa.c b/trunk/arch/sh/boards/mach-ap325rxa/setup.c similarity index 87% rename from trunk/arch/sh/boards/board-ap325rxa.c rename to trunk/arch/sh/boards/mach-ap325rxa/setup.c index 2d080732a964..cf9dc12dfeb1 100644 --- a/trunk/arch/sh/boards/board-ap325rxa.c +++ b/trunk/arch/sh/boards/mach-ap325rxa/setup.c @@ -20,8 +20,6 @@ #include #include #include -#include -#include #include #include #include @@ -29,6 +27,7 @@ #include