aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-09-10 05:32:52 -0400
committerIngo Molnar <mingo@elte.hu>2008-09-10 05:32:52 -0400
commite92b4fdacc6a7d8cc7895b81347671d5fcd6c5e1 (patch)
tree4f84567261682d8ec2ad4102bce1ff970a6eed1a /arch/sh
parent9fcaff0e660d886e9a766460adbe558dd25de31b (diff)
parentadee14b2e1557d0a8559f29681732d05a89dfc35 (diff)
Merge commit 'v2.6.27-rc6' into x86/iommu
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/boards/board-ap325rxa.c4
-rw-r--r--arch/sh/boards/mach-migor/setup.c8
-rw-r--r--arch/sh/boards/mach-sh7763rdp/setup.c84
-rw-r--r--arch/sh/boards/mach-x3proto/setup.c10
-rw-r--r--arch/sh/configs/ap325rxa_defconfig22
-rw-r--r--arch/sh/configs/migor_defconfig21
-rw-r--r--arch/sh/configs/sh7763rdp_defconfig113
-rw-r--r--arch/sh/include/asm/flat.h7
-rw-r--r--arch/sh/include/asm/migor.h3
-rw-r--r--arch/sh/include/asm/sh_mobile_lcdc.h6
-rw-r--r--arch/sh/include/asm/uaccess_64.h2
-rw-r--r--arch/sh/include/cpu-sh3/cpu/cacheflush.h10
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7723.c4
-rw-r--r--arch/sh/kernel/cpu/sh5/entry.S14
-rw-r--r--arch/sh/kernel/entry-common.S27
-rw-r--r--arch/sh/kernel/machine_kexec.c2
-rw-r--r--arch/sh/kernel/ptrace_64.c2
-rw-r--r--arch/sh/kernel/setup.c6
-rw-r--r--arch/sh/kernel/sh_ksyms_32.c4
-rw-r--r--arch/sh/kernel/sys_sh.c2
-rw-r--r--arch/sh/mm/Kconfig2
-rw-r--r--arch/sh/mm/consistent.c31
22 files changed, 298 insertions, 86 deletions
diff --git a/arch/sh/boards/board-ap325rxa.c b/arch/sh/boards/board-ap325rxa.c
index 025d4fe55a58..fd1612590bf4 100644
--- a/arch/sh/boards/board-ap325rxa.c
+++ b/arch/sh/boards/board-ap325rxa.c
@@ -140,6 +140,10 @@ static struct sh_mobile_lcdc_info lcdc_info = {
140 .vsync_len = 1, 140 .vsync_len = 1,
141 .sync = 0, /* hsync and vsync are active low */ 141 .sync = 0, /* hsync and vsync are active low */
142 }, 142 },
143 .lcd_size_cfg = { /* 7.0 inch */
144 .width = 152,
145 .height = 91,
146 },
143 .board_cfg = { 147 .board_cfg = {
144 .display_on = ap320_wvga_power_on, 148 .display_on = ap320_wvga_power_on,
145 }, 149 },
diff --git a/arch/sh/boards/mach-migor/setup.c b/arch/sh/boards/mach-migor/setup.c
index e499ee384d58..714dce91cc9b 100644
--- a/arch/sh/boards/mach-migor/setup.c
+++ b/arch/sh/boards/mach-migor/setup.c
@@ -224,6 +224,10 @@ static struct sh_mobile_lcdc_info sh_mobile_lcdc_info = {
224 .vsync_len = 2, 224 .vsync_len = 2,
225 .sync = 0, 225 .sync = 0,
226 }, 226 },
227 .lcd_size_cfg = { /* 7.0 inch */
228 .width = 152,
229 .height = 91,
230 },
227 } 231 }
228#endif 232#endif
229#ifdef CONFIG_SH_MIGOR_QVGA 233#ifdef CONFIG_SH_MIGOR_QVGA
@@ -245,6 +249,10 @@ static struct sh_mobile_lcdc_info sh_mobile_lcdc_info = {
245 .vsync_len = 2, 249 .vsync_len = 2,
246 .sync = FB_SYNC_HOR_HIGH_ACT, 250 .sync = FB_SYNC_HOR_HIGH_ACT,
247 }, 251 },
252 .lcd_size_cfg = { /* 2.4 inch */
253 .width = 49,
254 .height = 37,
255 },
248 .board_cfg = { 256 .board_cfg = {
249 .setup_sys = migor_lcd_qvga_setup, 257 .setup_sys = migor_lcd_qvga_setup,
250 }, 258 },
diff --git a/arch/sh/boards/mach-sh7763rdp/setup.c b/arch/sh/boards/mach-sh7763rdp/setup.c
index 925f16af7121..23850da05e3c 100644
--- a/arch/sh/boards/mach-sh7763rdp/setup.c
+++ b/arch/sh/boards/mach-sh7763rdp/setup.c
@@ -15,8 +15,11 @@
15#include <linux/interrupt.h> 15#include <linux/interrupt.h>
16#include <linux/input.h> 16#include <linux/input.h>
17#include <linux/mtd/physmap.h> 17#include <linux/mtd/physmap.h>
18#include <asm/io.h> 18#include <linux/fb.h>
19#include <linux/io.h>
19#include <asm/sh7763rdp.h> 20#include <asm/sh7763rdp.h>
21#include <asm/sh_eth.h>
22#include <asm/sh7760fb.h>
20 23
21/* NOR Flash */ 24/* NOR Flash */
22static struct mtd_partition sh7763rdp_nor_flash_partitions[] = { 25static struct mtd_partition sh7763rdp_nor_flash_partitions[] = {
@@ -60,8 +63,85 @@ static struct platform_device sh7763rdp_nor_flash_device = {
60 }, 63 },
61}; 64};
62 65
66/* SH-Ether */
67static struct resource sh_eth_resources[] = {
68 {
69 .start = 0xFEE00800, /* use eth1 */
70 .end = 0xFEE00F7C - 1,
71 .flags = IORESOURCE_MEM,
72 }, {
73 .start = 58, /* irq number */
74 .end = 58,
75 .flags = IORESOURCE_IRQ,
76 },
77};
78
79static struct sh_eth_plat_data sh7763_eth_pdata = {
80 .phy = 1,
81 .edmac_endian = EDMAC_LITTLE_ENDIAN,
82};
83
84static struct platform_device sh7763rdp_eth_device = {
85 .name = "sh-eth",
86 .resource = sh_eth_resources,
87 .num_resources = ARRAY_SIZE(sh_eth_resources),
88 .dev = {
89 .platform_data = &sh7763_eth_pdata,
90 },
91};
92
93/* SH7763 LCDC */
94static struct resource sh7763rdp_fb_resources[] = {
95 {
96 .start = 0xFFE80000,
97 .end = 0xFFE80442 - 1,
98 .flags = IORESOURCE_MEM,
99 },
100};
101
102static struct fb_videomode sh7763fb_videomode = {
103 .refresh = 60,
104 .name = "VGA Monitor",
105 .xres = 640,
106 .yres = 480,
107 .pixclock = 10000,
108 .left_margin = 80,
109 .right_margin = 24,
110 .upper_margin = 30,
111 .lower_margin = 1,
112 .hsync_len = 96,
113 .vsync_len = 1,
114 .sync = 0,
115 .vmode = FB_VMODE_NONINTERLACED,
116 .flag = FBINFO_FLAG_DEFAULT,
117};
118
119static struct sh7760fb_platdata sh7763fb_def_pdata = {
120 .def_mode = &sh7763fb_videomode,
121 .ldmtr = (LDMTR_TFT_COLOR_16|LDMTR_MCNT),
122 .lddfr = LDDFR_16BPP_RGB565,
123 .ldpmmr = 0x0000,
124 .ldpspr = 0xFFFF,
125 .ldaclnr = 0x0001,
126 .ldickr = 0x1102,
127 .rotate = 0,
128 .novsync = 0,
129 .blank = NULL,
130};
131
132static struct platform_device sh7763rdp_fb_device = {
133 .name = "sh7760-lcdc",
134 .resource = sh7763rdp_fb_resources,
135 .num_resources = ARRAY_SIZE(sh7763rdp_fb_resources),
136 .dev = {
137 .platform_data = &sh7763fb_def_pdata,
138 },
139};
140
63static struct platform_device *sh7763rdp_devices[] __initdata = { 141static struct platform_device *sh7763rdp_devices[] __initdata = {
64 &sh7763rdp_nor_flash_device, 142 &sh7763rdp_nor_flash_device,
143 &sh7763rdp_eth_device,
144 &sh7763rdp_fb_device,
65}; 145};
66 146
67static int __init sh7763rdp_devices_setup(void) 147static int __init sh7763rdp_devices_setup(void)
@@ -69,7 +149,7 @@ static int __init sh7763rdp_devices_setup(void)
69 return platform_add_devices(sh7763rdp_devices, 149 return platform_add_devices(sh7763rdp_devices,
70 ARRAY_SIZE(sh7763rdp_devices)); 150 ARRAY_SIZE(sh7763rdp_devices));
71} 151}
72__initcall(sh7763rdp_devices_setup); 152device_initcall(sh7763rdp_devices_setup);
73 153
74static void __init sh7763rdp_setup(char **cmdline_p) 154static void __init sh7763rdp_setup(char **cmdline_p)
75{ 155{
diff --git a/arch/sh/boards/mach-x3proto/setup.c b/arch/sh/boards/mach-x3proto/setup.c
index abc5b6d418fe..a70d23b21788 100644
--- a/arch/sh/boards/mach-x3proto/setup.c
+++ b/arch/sh/boards/mach-x3proto/setup.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * Renesas SH-X3 Prototype Board Support. 4 * Renesas SH-X3 Prototype Board Support.
5 * 5 *
6 * Copyright (C) 2007 Paul Mundt 6 * Copyright (C) 2007 - 2008 Paul Mundt
7 * 7 *
8 * This file is subject to the terms and conditions of the GNU General Public 8 * This file is subject to the terms and conditions of the GNU General Public
9 * License. See the file "COPYING" in the main directory of this archive 9 * License. See the file "COPYING" in the main directory of this archive
@@ -13,6 +13,7 @@
13#include <linux/platform_device.h> 13#include <linux/platform_device.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/io.h> 15#include <linux/io.h>
16#include <linux/smc91x.h>
16#include <asm/ilsel.h> 17#include <asm/ilsel.h>
17 18
18static struct resource heartbeat_resources[] = { 19static struct resource heartbeat_resources[] = {
@@ -30,6 +31,10 @@ static struct platform_device heartbeat_device = {
30 .resource = heartbeat_resources, 31 .resource = heartbeat_resources,
31}; 32};
32 33
34static struct smc91x_platdata smc91x_info = {
35 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
36};
37
33static struct resource smc91x_resources[] = { 38static struct resource smc91x_resources[] = {
34 [0] = { 39 [0] = {
35 .start = 0x18000300, 40 .start = 0x18000300,
@@ -47,6 +52,9 @@ static struct platform_device smc91x_device = {
47 .id = -1, 52 .id = -1,
48 .resource = smc91x_resources, 53 .resource = smc91x_resources,
49 .num_resources = ARRAY_SIZE(smc91x_resources), 54 .num_resources = ARRAY_SIZE(smc91x_resources),
55 .dev = {
56 .platform_data = &smc91x_info,
57 },
50}; 58};
51 59
52static struct resource r8a66597_usb_host_resources[] = { 60static struct resource r8a66597_usb_host_resources[] = {
diff --git a/arch/sh/configs/ap325rxa_defconfig b/arch/sh/configs/ap325rxa_defconfig
index 29926a9b9ce2..851c870adf3b 100644
--- a/arch/sh/configs/ap325rxa_defconfig
+++ b/arch/sh/configs/ap325rxa_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26 3# Linux kernel version: 2.6.27-rc4
4# Wed Jul 30 01:18:59 2008 4# Tue Aug 26 14:21:17 2008
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y
11CONFIG_GENERIC_FIND_NEXT_BIT=y 11CONFIG_GENERIC_FIND_NEXT_BIT=y
12CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
14CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
@@ -20,7 +21,6 @@ CONFIG_LOCKDEP_SUPPORT=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set 21# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_ARCH_NO_VIRT_TO_BUS=y 23CONFIG_ARCH_NO_VIRT_TO_BUS=y
23CONFIG_ARCH_SUPPORTS_AOUT=y
24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
25 25
26# 26#
@@ -58,7 +58,6 @@ CONFIG_SYSCTL=y
58CONFIG_EMBEDDED=y 58CONFIG_EMBEDDED=y
59CONFIG_UID16=y 59CONFIG_UID16=y
60CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
61CONFIG_SYSCTL_SYSCALL_CHECK=y
62# CONFIG_KALLSYMS is not set 61# CONFIG_KALLSYMS is not set
63CONFIG_HOTPLUG=y 62CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 63CONFIG_PRINTK=y
@@ -89,6 +88,7 @@ CONFIG_HAVE_OPROFILE=y
89# CONFIG_USE_GENERIC_SMP_HELPERS is not set 88# CONFIG_USE_GENERIC_SMP_HELPERS is not set
90CONFIG_HAVE_CLK=y 89CONFIG_HAVE_CLK=y
91CONFIG_PROC_PAGE_MONITOR=y 90CONFIG_PROC_PAGE_MONITOR=y
91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
92CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
93CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
94# CONFIG_TINY_SHMEM is not set 94# CONFIG_TINY_SHMEM is not set
@@ -261,9 +261,10 @@ CONFIG_HZ_250=y
261# CONFIG_HZ_300 is not set 261# CONFIG_HZ_300 is not set
262# CONFIG_HZ_1000 is not set 262# CONFIG_HZ_1000 is not set
263CONFIG_HZ=250 263CONFIG_HZ=250
264# CONFIG_SCHED_HRTICK is not set 264CONFIG_SCHED_HRTICK=y
265# CONFIG_KEXEC is not set 265# CONFIG_KEXEC is not set
266# CONFIG_CRASH_DUMP is not set 266# CONFIG_CRASH_DUMP is not set
267CONFIG_SECCOMP=y
267# CONFIG_PREEMPT_NONE is not set 268# CONFIG_PREEMPT_NONE is not set
268# CONFIG_PREEMPT_VOLUNTARY is not set 269# CONFIG_PREEMPT_VOLUNTARY is not set
269CONFIG_PREEMPT=y 270CONFIG_PREEMPT=y
@@ -289,10 +290,6 @@ CONFIG_CMDLINE="console=tty1 console=ttySC5,38400 root=/dev/nfs ip=dhcp"
289# 290#
290CONFIG_BINFMT_ELF=y 291CONFIG_BINFMT_ELF=y
291# CONFIG_BINFMT_MISC is not set 292# CONFIG_BINFMT_MISC is not set
292
293#
294# Networking
295#
296CONFIG_NET=y 293CONFIG_NET=y
297 294
298# 295#
@@ -647,6 +644,7 @@ CONFIG_SSB_POSSIBLE=y
647# CONFIG_MFD_CORE is not set 644# CONFIG_MFD_CORE is not set
648# CONFIG_MFD_SM501 is not set 645# CONFIG_MFD_SM501 is not set
649# CONFIG_HTC_PASIC3 is not set 646# CONFIG_HTC_PASIC3 is not set
647# CONFIG_MFD_TMIO is not set
650 648
651# 649#
652# Multimedia devices 650# Multimedia devices
@@ -690,7 +688,10 @@ CONFIG_DUMMY_CONSOLE=y
690# CONFIG_ACCESSIBILITY is not set 688# CONFIG_ACCESSIBILITY is not set
691# CONFIG_RTC_CLASS is not set 689# CONFIG_RTC_CLASS is not set
692# CONFIG_DMADEVICES is not set 690# CONFIG_DMADEVICES is not set
693# CONFIG_UIO is not set 691CONFIG_UIO=y
692# CONFIG_UIO_PDRV is not set
693CONFIG_UIO_PDRV_GENIRQ=y
694# CONFIG_UIO_SMX is not set
694 695
695# 696#
696# File systems 697# File systems
@@ -854,6 +855,7 @@ CONFIG_FRAME_WARN=1024
854# CONFIG_DEBUG_KERNEL is not set 855# CONFIG_DEBUG_KERNEL is not set
855# CONFIG_DEBUG_BUGVERBOSE is not set 856# CONFIG_DEBUG_BUGVERBOSE is not set
856# CONFIG_DEBUG_MEMORY_INIT is not set 857# CONFIG_DEBUG_MEMORY_INIT is not set
858CONFIG_SYSCTL_SYSCALL_CHECK=y
857# CONFIG_SAMPLES is not set 859# CONFIG_SAMPLES is not set
858# CONFIG_SH_STANDARD_BIOS is not set 860# CONFIG_SH_STANDARD_BIOS is not set
859# CONFIG_EARLY_SCIF_CONSOLE is not set 861# CONFIG_EARLY_SCIF_CONSOLE is not set
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig
index c4b3e1d8950d..4f8b1974f2c7 100644
--- a/arch/sh/configs/migor_defconfig
+++ b/arch/sh/configs/migor_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26 3# Linux kernel version: 2.6.27-rc4
4# Wed Jul 30 01:44:41 2008 4# Tue Aug 26 14:18:17 2008
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y
11CONFIG_GENERIC_FIND_NEXT_BIT=y 11CONFIG_GENERIC_FIND_NEXT_BIT=y
12CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
14CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
@@ -21,7 +22,6 @@ CONFIG_LOCKDEP_SUPPORT=y
21# CONFIG_ARCH_HAS_ILOG2_U32 is not set 22# CONFIG_ARCH_HAS_ILOG2_U32 is not set
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set 23# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_ARCH_NO_VIRT_TO_BUS=y 24CONFIG_ARCH_NO_VIRT_TO_BUS=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 25CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
26 26
27# 27#
@@ -87,6 +87,7 @@ CONFIG_HAVE_OPROFILE=y
87# CONFIG_USE_GENERIC_SMP_HELPERS is not set 87# CONFIG_USE_GENERIC_SMP_HELPERS is not set
88CONFIG_HAVE_CLK=y 88CONFIG_HAVE_CLK=y
89CONFIG_PROC_PAGE_MONITOR=y 89CONFIG_PROC_PAGE_MONITOR=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 92CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set 93# CONFIG_TINY_SHMEM is not set
@@ -270,6 +271,7 @@ CONFIG_HZ=250
270# CONFIG_SCHED_HRTICK is not set 271# CONFIG_SCHED_HRTICK is not set
271# CONFIG_KEXEC is not set 272# CONFIG_KEXEC is not set
272# CONFIG_CRASH_DUMP is not set 273# CONFIG_CRASH_DUMP is not set
274CONFIG_SECCOMP=y
273CONFIG_PREEMPT_NONE=y 275CONFIG_PREEMPT_NONE=y
274# CONFIG_PREEMPT_VOLUNTARY is not set 276# CONFIG_PREEMPT_VOLUNTARY is not set
275# CONFIG_PREEMPT is not set 277# CONFIG_PREEMPT is not set
@@ -294,10 +296,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ip=on"
294# 296#
295CONFIG_BINFMT_ELF=y 297CONFIG_BINFMT_ELF=y
296# CONFIG_BINFMT_MISC is not set 298# CONFIG_BINFMT_MISC is not set
297
298#
299# Networking
300#
301CONFIG_NET=y 299CONFIG_NET=y
302 300
303# 301#
@@ -649,6 +647,7 @@ CONFIG_HW_RANDOM=y
649CONFIG_I2C=y 647CONFIG_I2C=y
650CONFIG_I2C_BOARDINFO=y 648CONFIG_I2C_BOARDINFO=y
651# CONFIG_I2C_CHARDEV is not set 649# CONFIG_I2C_CHARDEV is not set
650CONFIG_I2C_HELPER_AUTO=y
652 651
653# 652#
654# I2C Hardware Bus support 653# I2C Hardware Bus support
@@ -709,6 +708,7 @@ CONFIG_SSB_POSSIBLE=y
709# CONFIG_MFD_CORE is not set 708# CONFIG_MFD_CORE is not set
710# CONFIG_MFD_SM501 is not set 709# CONFIG_MFD_SM501 is not set
711# CONFIG_HTC_PASIC3 is not set 710# CONFIG_HTC_PASIC3 is not set
711# CONFIG_MFD_TMIO is not set
712 712
713# 713#
714# Multimedia devices 714# Multimedia devices
@@ -755,6 +755,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
755# CONFIG_USB is not set 755# CONFIG_USB is not set
756# CONFIG_USB_OTG_WHITELIST is not set 756# CONFIG_USB_OTG_WHITELIST is not set
757# CONFIG_USB_OTG_BLACKLIST_HUB is not set 757# CONFIG_USB_OTG_BLACKLIST_HUB is not set
758# CONFIG_USB_MUSB_HDRC is not set
759# CONFIG_USB_GADGET_MUSB_HDRC is not set
758 760
759# 761#
760# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 762# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -842,7 +844,10 @@ CONFIG_RTC_DRV_RS5C372=y
842# 844#
843CONFIG_RTC_DRV_SH=y 845CONFIG_RTC_DRV_SH=y
844# CONFIG_DMADEVICES is not set 846# CONFIG_DMADEVICES is not set
845# CONFIG_UIO is not set 847CONFIG_UIO=y
848# CONFIG_UIO_PDRV is not set
849CONFIG_UIO_PDRV_GENIRQ=y
850# CONFIG_UIO_SMX is not set
846 851
847# 852#
848# File systems 853# File systems
diff --git a/arch/sh/configs/sh7763rdp_defconfig b/arch/sh/configs/sh7763rdp_defconfig
index 83f3fe5db3e5..baf830c4a7e4 100644
--- a/arch/sh/configs/sh7763rdp_defconfig
+++ b/arch/sh/configs/sh7763rdp_defconfig
@@ -1,15 +1,17 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc2
4# Fri Jun 6 12:20:17 2008 4# Fri Aug 8 13:44:20 2008
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
8CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig"
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 9CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_BUG=y 10CONFIG_GENERIC_BUG=y
10CONFIG_GENERIC_FIND_NEXT_BIT=y 11CONFIG_GENERIC_FIND_NEXT_BIT=y
11CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
12CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
13CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
14CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
15CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
@@ -19,7 +21,6 @@ CONFIG_LOCKDEP_SUPPORT=y
19# CONFIG_ARCH_HAS_ILOG2_U32 is not set 21# CONFIG_ARCH_HAS_ILOG2_U32 is not set
20# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
21CONFIG_ARCH_NO_VIRT_TO_BUS=y 23CONFIG_ARCH_NO_VIRT_TO_BUS=y
22CONFIG_ARCH_SUPPORTS_AOUT=y
23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24 25
25# 26#
@@ -83,10 +84,16 @@ CONFIG_PROFILING=y
83# CONFIG_MARKERS is not set 84# CONFIG_MARKERS is not set
84CONFIG_OPROFILE=y 85CONFIG_OPROFILE=y
85CONFIG_HAVE_OPROFILE=y 86CONFIG_HAVE_OPROFILE=y
87# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
88# CONFIG_HAVE_IOREMAP_PROT is not set
86# CONFIG_HAVE_KPROBES is not set 89# CONFIG_HAVE_KPROBES is not set
87# CONFIG_HAVE_KRETPROBES is not set 90# CONFIG_HAVE_KRETPROBES is not set
91# CONFIG_HAVE_ARCH_TRACEHOOK is not set
88# CONFIG_HAVE_DMA_ATTRS is not set 92# CONFIG_HAVE_DMA_ATTRS is not set
93# CONFIG_USE_GENERIC_SMP_HELPERS is not set
94CONFIG_HAVE_CLK=y
89CONFIG_PROC_PAGE_MONITOR=y 95CONFIG_PROC_PAGE_MONITOR=y
96CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 97CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 98CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set 99# CONFIG_TINY_SHMEM is not set
@@ -96,12 +103,13 @@ CONFIG_MODULES=y
96# CONFIG_MODULE_UNLOAD is not set 103# CONFIG_MODULE_UNLOAD is not set
97# CONFIG_MODVERSIONS is not set 104# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 105# CONFIG_MODULE_SRCVERSION_ALL is not set
99# CONFIG_KMOD is not set 106CONFIG_KMOD=y
100CONFIG_BLOCK=y 107CONFIG_BLOCK=y
101# CONFIG_LBD is not set 108# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 109# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set 110# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 111# CONFIG_BLK_DEV_BSG is not set
112# CONFIG_BLK_DEV_INTEGRITY is not set
105 113
106# 114#
107# IO Schedulers 115# IO Schedulers
@@ -177,6 +185,7 @@ CONFIG_PAGE_SIZE_4KB=y
177# CONFIG_PAGE_SIZE_8KB is not set 185# CONFIG_PAGE_SIZE_8KB is not set
178# CONFIG_PAGE_SIZE_16KB is not set 186# CONFIG_PAGE_SIZE_16KB is not set
179# CONFIG_PAGE_SIZE_64KB is not set 187# CONFIG_PAGE_SIZE_64KB is not set
188CONFIG_ENTRY_OFFSET=0x00001000
180CONFIG_SELECT_MEMORY_MODEL=y 189CONFIG_SELECT_MEMORY_MODEL=y
181# CONFIG_FLATMEM_MANUAL is not set 190# CONFIG_FLATMEM_MANUAL is not set
182# CONFIG_DISCONTIGMEM_MANUAL is not set 191# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -258,6 +267,7 @@ CONFIG_HZ=250
258# CONFIG_SCHED_HRTICK is not set 267# CONFIG_SCHED_HRTICK is not set
259# CONFIG_KEXEC is not set 268# CONFIG_KEXEC is not set
260# CONFIG_CRASH_DUMP is not set 269# CONFIG_CRASH_DUMP is not set
270CONFIG_SECCOMP=y
261CONFIG_PREEMPT_NONE=y 271CONFIG_PREEMPT_NONE=y
262# CONFIG_PREEMPT_VOLUNTARY is not set 272# CONFIG_PREEMPT_VOLUNTARY is not set
263# CONFIG_PREEMPT is not set 273# CONFIG_PREEMPT is not set
@@ -282,10 +292,6 @@ CONFIG_CMDLINE="console=ttySC2,115200 root=/dev/sda1 rootdelay=10"
282# 292#
283CONFIG_BINFMT_ELF=y 293CONFIG_BINFMT_ELF=y
284# CONFIG_BINFMT_MISC is not set 294# CONFIG_BINFMT_MISC is not set
285
286#
287# Networking
288#
289CONFIG_NET=y 295CONFIG_NET=y
290 296
291# 297#
@@ -361,6 +367,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
361# 367#
362# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
363CONFIG_WIRELESS_EXT=y 369CONFIG_WIRELESS_EXT=y
370CONFIG_WIRELESS_EXT_SYSFS=y
364# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
365# CONFIG_IEEE80211 is not set 372# CONFIG_IEEE80211 is not set
366# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
@@ -377,6 +384,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
377CONFIG_STANDALONE=y 384CONFIG_STANDALONE=y
378CONFIG_PREVENT_FIRMWARE_BUILD=y 385CONFIG_PREVENT_FIRMWARE_BUILD=y
379CONFIG_FW_LOADER=y 386CONFIG_FW_LOADER=y
387CONFIG_FIRMWARE_IN_KERNEL=y
388CONFIG_EXTRA_FIRMWARE=""
380# CONFIG_SYS_HYPERVISOR is not set 389# CONFIG_SYS_HYPERVISOR is not set
381# CONFIG_CONNECTOR is not set 390# CONFIG_CONNECTOR is not set
382CONFIG_MTD=y 391CONFIG_MTD=y
@@ -471,6 +480,7 @@ CONFIG_BLK_DEV=y
471# CONFIG_BLK_DEV_RAM is not set 480# CONFIG_BLK_DEV_RAM is not set
472# CONFIG_CDROM_PKTCDVD is not set 481# CONFIG_CDROM_PKTCDVD is not set
473# CONFIG_ATA_OVER_ETH is not set 482# CONFIG_ATA_OVER_ETH is not set
483# CONFIG_BLK_DEV_HD is not set
474# CONFIG_MISC_DEVICES is not set 484# CONFIG_MISC_DEVICES is not set
475CONFIG_HAVE_IDE=y 485CONFIG_HAVE_IDE=y
476# CONFIG_IDE is not set 486# CONFIG_IDE is not set
@@ -515,10 +525,10 @@ CONFIG_SCSI_WAIT_SCAN=m
515CONFIG_SCSI_LOWLEVEL=y 525CONFIG_SCSI_LOWLEVEL=y
516# CONFIG_ISCSI_TCP is not set 526# CONFIG_ISCSI_TCP is not set
517# CONFIG_SCSI_DEBUG is not set 527# CONFIG_SCSI_DEBUG is not set
528# CONFIG_SCSI_DH is not set
518# CONFIG_ATA is not set 529# CONFIG_ATA is not set
519# CONFIG_MD is not set 530# CONFIG_MD is not set
520CONFIG_NETDEVICES=y 531CONFIG_NETDEVICES=y
521# CONFIG_NETDEVICES_MULTIQUEUE is not set
522# CONFIG_DUMMY is not set 532# CONFIG_DUMMY is not set
523# CONFIG_BONDING is not set 533# CONFIG_BONDING is not set
524# CONFIG_MACVLAN is not set 534# CONFIG_MACVLAN is not set
@@ -546,7 +556,9 @@ CONFIG_NET_ETHERNET=y
546CONFIG_MII=y 556CONFIG_MII=y
547# CONFIG_AX88796 is not set 557# CONFIG_AX88796 is not set
548# CONFIG_STNIC is not set 558# CONFIG_STNIC is not set
559CONFIG_SH_ETH=y
549# CONFIG_SMC91X is not set 560# CONFIG_SMC91X is not set
561# CONFIG_SMC911X is not set
550# CONFIG_IBM_NEW_EMAC_ZMII is not set 562# CONFIG_IBM_NEW_EMAC_ZMII is not set
551# CONFIG_IBM_NEW_EMAC_RGMII is not set 563# CONFIG_IBM_NEW_EMAC_RGMII is not set
552# CONFIG_IBM_NEW_EMAC_TAH is not set 564# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -613,7 +625,11 @@ CONFIG_INPUT=y
613# 625#
614# Character devices 626# Character devices
615# 627#
616# CONFIG_VT is not set 628CONFIG_VT=y
629CONFIG_CONSOLE_TRANSLATIONS=y
630CONFIG_VT_CONSOLE=y
631CONFIG_HW_CONSOLE=y
632# CONFIG_VT_HW_CONSOLE_BINDING is not set
617CONFIG_DEVKMEM=y 633CONFIG_DEVKMEM=y
618# CONFIG_SERIAL_NONSTANDARD is not set 634# CONFIG_SERIAL_NONSTANDARD is not set
619 635
@@ -644,6 +660,7 @@ CONFIG_HW_RANDOM=y
644# CONFIG_POWER_SUPPLY is not set 660# CONFIG_POWER_SUPPLY is not set
645# CONFIG_HWMON is not set 661# CONFIG_HWMON is not set
646# CONFIG_THERMAL is not set 662# CONFIG_THERMAL is not set
663# CONFIG_THERMAL_HWMON is not set
647# CONFIG_WATCHDOG is not set 664# CONFIG_WATCHDOG is not set
648 665
649# 666#
@@ -655,6 +672,7 @@ CONFIG_SSB_POSSIBLE=y
655# 672#
656# Multifunction device drivers 673# Multifunction device drivers
657# 674#
675# CONFIG_MFD_CORE is not set
658# CONFIG_MFD_SM501 is not set 676# CONFIG_MFD_SM501 is not set
659# CONFIG_HTC_PASIC3 is not set 677# CONFIG_HTC_PASIC3 is not set
660 678
@@ -679,7 +697,34 @@ CONFIG_SSB_POSSIBLE=y
679# 697#
680# CONFIG_VGASTATE is not set 698# CONFIG_VGASTATE is not set
681# CONFIG_VIDEO_OUTPUT_CONTROL is not set 699# CONFIG_VIDEO_OUTPUT_CONTROL is not set
682# CONFIG_FB is not set 700CONFIG_FB=y
701# CONFIG_FIRMWARE_EDID is not set
702# CONFIG_FB_DDC is not set
703CONFIG_FB_CFB_FILLRECT=y
704CONFIG_FB_CFB_COPYAREA=y
705CONFIG_FB_CFB_IMAGEBLIT=y
706# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
707# CONFIG_FB_SYS_FILLRECT is not set
708# CONFIG_FB_SYS_COPYAREA is not set
709# CONFIG_FB_SYS_IMAGEBLIT is not set
710CONFIG_FB_FOREIGN_ENDIAN=y
711CONFIG_FB_BOTH_ENDIAN=y
712# CONFIG_FB_BIG_ENDIAN is not set
713# CONFIG_FB_LITTLE_ENDIAN is not set
714# CONFIG_FB_SYS_FOPS is not set
715# CONFIG_FB_SVGALIB is not set
716# CONFIG_FB_MACMODES is not set
717# CONFIG_FB_BACKLIGHT is not set
718# CONFIG_FB_MODE_HELPERS is not set
719# CONFIG_FB_TILEBLITTING is not set
720
721#
722# Frame buffer hardware drivers
723#
724# CONFIG_FB_S1D13XXX is not set
725# CONFIG_FB_SH_MOBILE_LCDC is not set
726CONFIG_FB_SH7760=y
727# CONFIG_FB_VIRTUAL is not set
683# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 728# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
684 729
685# 730#
@@ -688,8 +733,22 @@ CONFIG_SSB_POSSIBLE=y
688# CONFIG_DISPLAY_SUPPORT is not set 733# CONFIG_DISPLAY_SUPPORT is not set
689 734
690# 735#
691# Sound 736# Console display driver support
692# 737#
738CONFIG_DUMMY_CONSOLE=y
739CONFIG_FRAMEBUFFER_CONSOLE=y
740# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
741# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
742# CONFIG_FONTS is not set
743CONFIG_FONT_8x8=y
744CONFIG_FONT_8x16=y
745CONFIG_LOGO=y
746CONFIG_LOGO_LINUX_MONO=y
747CONFIG_LOGO_LINUX_VGA16=y
748CONFIG_LOGO_LINUX_CLUT224=y
749CONFIG_LOGO_SUPERH_MONO=y
750CONFIG_LOGO_SUPERH_VGA16=y
751CONFIG_LOGO_SUPERH_CLUT224=y
693# CONFIG_SOUND is not set 752# CONFIG_SOUND is not set
694# CONFIG_HID_SUPPORT is not set 753# CONFIG_HID_SUPPORT is not set
695CONFIG_USB_SUPPORT=y 754CONFIG_USB_SUPPORT=y
@@ -788,11 +847,27 @@ CONFIG_USB_MON=y
788# CONFIG_USB_IOWARRIOR is not set 847# CONFIG_USB_IOWARRIOR is not set
789# CONFIG_USB_ISIGHTFW is not set 848# CONFIG_USB_ISIGHTFW is not set
790# CONFIG_USB_GADGET is not set 849# CONFIG_USB_GADGET is not set
791# CONFIG_MMC is not set 850CONFIG_MMC=y
851# CONFIG_MMC_DEBUG is not set
852# CONFIG_MMC_UNSAFE_RESUME is not set
853
854#
855# MMC/SD Card Drivers
856#
857CONFIG_MMC_BLOCK=y
858CONFIG_MMC_BLOCK_BOUNCE=y
859# CONFIG_SDIO_UART is not set
860# CONFIG_MMC_TEST is not set
861
862#
863# MMC/SD Host Controller Drivers
864#
865# CONFIG_MMC_SDHCI is not set
792# CONFIG_MEMSTICK is not set 866# CONFIG_MEMSTICK is not set
793# CONFIG_NEW_LEDS is not set 867# CONFIG_NEW_LEDS is not set
794# CONFIG_ACCESSIBILITY is not set 868# CONFIG_ACCESSIBILITY is not set
795# CONFIG_RTC_CLASS is not set 869# CONFIG_RTC_CLASS is not set
870# CONFIG_DMADEVICES is not set
796# CONFIG_UIO is not set 871# CONFIG_UIO is not set
797 872
798# 873#
@@ -865,6 +940,7 @@ CONFIG_TMPFS_POSIX_ACL=y
865# CONFIG_CRAMFS is not set 940# CONFIG_CRAMFS is not set
866# CONFIG_VXFS_FS is not set 941# CONFIG_VXFS_FS is not set
867# CONFIG_MINIX_FS is not set 942# CONFIG_MINIX_FS is not set
943# CONFIG_OMFS_FS is not set
868# CONFIG_HPFS_FS is not set 944# CONFIG_HPFS_FS is not set
869# CONFIG_QNX4FS_FS is not set 945# CONFIG_QNX4FS_FS is not set
870# CONFIG_ROMFS_FS is not set 946# CONFIG_ROMFS_FS is not set
@@ -874,12 +950,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
874CONFIG_NFS_FS=y 950CONFIG_NFS_FS=y
875# CONFIG_NFS_V3 is not set 951# CONFIG_NFS_V3 is not set
876# CONFIG_NFS_V4 is not set 952# CONFIG_NFS_V4 is not set
877# CONFIG_NFSD is not set
878CONFIG_ROOT_NFS=y 953CONFIG_ROOT_NFS=y
954# CONFIG_NFSD is not set
879CONFIG_LOCKD=y 955CONFIG_LOCKD=y
880CONFIG_NFS_COMMON=y 956CONFIG_NFS_COMMON=y
881CONFIG_SUNRPC=y 957CONFIG_SUNRPC=y
882# CONFIG_SUNRPC_BIND34 is not set
883# CONFIG_RPCSEC_GSS_KRB5 is not set 958# CONFIG_RPCSEC_GSS_KRB5 is not set
884# CONFIG_RPCSEC_GSS_SPKM3 is not set 959# CONFIG_RPCSEC_GSS_SPKM3 is not set
885# CONFIG_SMB_FS is not set 960# CONFIG_SMB_FS is not set
@@ -949,6 +1024,7 @@ CONFIG_FRAME_WARN=1024
949# CONFIG_HEADERS_CHECK is not set 1024# CONFIG_HEADERS_CHECK is not set
950# CONFIG_DEBUG_KERNEL is not set 1025# CONFIG_DEBUG_KERNEL is not set
951# CONFIG_DEBUG_BUGVERBOSE is not set 1026# CONFIG_DEBUG_BUGVERBOSE is not set
1027# CONFIG_DEBUG_MEMORY_INIT is not set
952# CONFIG_SAMPLES is not set 1028# CONFIG_SAMPLES is not set
953# CONFIG_SH_STANDARD_BIOS is not set 1029# CONFIG_SH_STANDARD_BIOS is not set
954# CONFIG_EARLY_SCIF_CONSOLE is not set 1030# CONFIG_EARLY_SCIF_CONSOLE is not set
@@ -1003,6 +1079,10 @@ CONFIG_CRYPTO=y
1003# CONFIG_CRYPTO_MD4 is not set 1079# CONFIG_CRYPTO_MD4 is not set
1004# CONFIG_CRYPTO_MD5 is not set 1080# CONFIG_CRYPTO_MD5 is not set
1005# CONFIG_CRYPTO_MICHAEL_MIC is not set 1081# CONFIG_CRYPTO_MICHAEL_MIC is not set
1082# CONFIG_CRYPTO_RMD128 is not set
1083# CONFIG_CRYPTO_RMD160 is not set
1084# CONFIG_CRYPTO_RMD256 is not set
1085# CONFIG_CRYPTO_RMD320 is not set
1006# CONFIG_CRYPTO_SHA1 is not set 1086# CONFIG_CRYPTO_SHA1 is not set
1007# CONFIG_CRYPTO_SHA256 is not set 1087# CONFIG_CRYPTO_SHA256 is not set
1008# CONFIG_CRYPTO_SHA512 is not set 1088# CONFIG_CRYPTO_SHA512 is not set
@@ -1042,6 +1122,7 @@ CONFIG_BITREVERSE=y
1042# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1122# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1043# CONFIG_CRC_CCITT is not set 1123# CONFIG_CRC_CCITT is not set
1044# CONFIG_CRC16 is not set 1124# CONFIG_CRC16 is not set
1125CONFIG_CRC_T10DIF=y
1045# CONFIG_CRC_ITU_T is not set 1126# CONFIG_CRC_ITU_T is not set
1046CONFIG_CRC32=y 1127CONFIG_CRC32=y
1047# CONFIG_CRC7 is not set 1128# CONFIG_CRC7 is not set
diff --git a/arch/sh/include/asm/flat.h b/arch/sh/include/asm/flat.h
index 0cc800299e06..d3b2b4f109e3 100644
--- a/arch/sh/include/asm/flat.h
+++ b/arch/sh/include/asm/flat.h
@@ -21,4 +21,11 @@
21#define flat_get_relocate_addr(rel) (rel) 21#define flat_get_relocate_addr(rel) (rel)
22#define flat_set_persistent(relval, p) ({ (void)p; 0; }) 22#define flat_set_persistent(relval, p) ({ (void)p; 0; })
23 23
24#define FLAT_PLAT_INIT(_r) \
25 do { _r->regs[0]=0; _r->regs[1]=0; _r->regs[2]=0; _r->regs[3]=0; \
26 _r->regs[4]=0; _r->regs[5]=0; _r->regs[6]=0; _r->regs[7]=0; \
27 _r->regs[8]=0; _r->regs[9]=0; _r->regs[10]=0; _r->regs[11]=0; \
28 _r->regs[12]=0; _r->regs[13]=0; _r->regs[14]=0; \
29 _r->sr = SR_FD; } while (0)
30
24#endif /* __ASM_SH_FLAT_H */ 31#endif /* __ASM_SH_FLAT_H */
diff --git a/arch/sh/include/asm/migor.h b/arch/sh/include/asm/migor.h
index 10016e0f4a4e..c12b632c540b 100644
--- a/arch/sh/include/asm/migor.h
+++ b/arch/sh/include/asm/migor.h
@@ -42,9 +42,6 @@
42 42
43#define PORT_MSELCRB 0xa4050182 43#define PORT_MSELCRB 0xa4050182
44 44
45#define MSTPCR1 0xa4150034
46#define MSTPCR2 0xa4150038
47
48#define PORT_PSELA 0xa405014e 45#define PORT_PSELA 0xa405014e
49#define PORT_PSELB 0xa4050150 46#define PORT_PSELB 0xa4050150
50#define PORT_PSELC 0xa4050152 47#define PORT_PSELC 0xa4050152
diff --git a/arch/sh/include/asm/sh_mobile_lcdc.h b/arch/sh/include/asm/sh_mobile_lcdc.h
index 27677727df4d..130102f663f5 100644
--- a/arch/sh/include/asm/sh_mobile_lcdc.h
+++ b/arch/sh/include/asm/sh_mobile_lcdc.h
@@ -47,12 +47,18 @@ struct sh_mobile_lcdc_board_cfg {
47 void (*display_off)(void *board_data); 47 void (*display_off)(void *board_data);
48}; 48};
49 49
50struct sh_mobile_lcdc_lcd_size_cfg { /* width and height of panel in mm */
51 unsigned long width;
52 unsigned long height;
53};
54
50struct sh_mobile_lcdc_chan_cfg { 55struct sh_mobile_lcdc_chan_cfg {
51 int chan; 56 int chan;
52 int bpp; 57 int bpp;
53 int interface_type; /* selects RGBn or SYSn I/F, see above */ 58 int interface_type; /* selects RGBn or SYSn I/F, see above */
54 int clock_divider; 59 int clock_divider;
55 struct fb_videomode lcd_cfg; 60 struct fb_videomode lcd_cfg;
61 struct sh_mobile_lcdc_lcd_size_cfg lcd_size_cfg;
56 struct sh_mobile_lcdc_board_cfg board_cfg; 62 struct sh_mobile_lcdc_board_cfg board_cfg;
57 struct sh_mobile_lcdc_sys_bus_cfg sys_bus_cfg; /* only for SYSn I/F */ 63 struct sh_mobile_lcdc_sys_bus_cfg sys_bus_cfg; /* only for SYSn I/F */
58}; 64};
diff --git a/arch/sh/include/asm/uaccess_64.h b/arch/sh/include/asm/uaccess_64.h
index 81b3d515fcb3..5580fd471003 100644
--- a/arch/sh/include/asm/uaccess_64.h
+++ b/arch/sh/include/asm/uaccess_64.h
@@ -76,4 +76,6 @@ extern long __put_user_asm_l(void *, long);
76extern long __put_user_asm_q(void *, long); 76extern long __put_user_asm_q(void *, long);
77extern void __put_user_unknown(void); 77extern void __put_user_unknown(void);
78 78
79extern long __strnlen_user(const char *__s, long __n);
80
79#endif /* __ASM_SH_UACCESS_64_H */ 81#endif /* __ASM_SH_UACCESS_64_H */
diff --git a/arch/sh/include/cpu-sh3/cpu/cacheflush.h b/arch/sh/include/cpu-sh3/cpu/cacheflush.h
index abc909880807..1ac27aae6700 100644
--- a/arch/sh/include/cpu-sh3/cpu/cacheflush.h
+++ b/arch/sh/include/cpu-sh3/cpu/cacheflush.h
@@ -29,6 +29,16 @@ void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned l
29void flush_dcache_page(struct page *pg); 29void flush_dcache_page(struct page *pg);
30void flush_icache_range(unsigned long start, unsigned long end); 30void flush_icache_range(unsigned long start, unsigned long end);
31void flush_icache_page(struct vm_area_struct *vma, struct page *page); 31void flush_icache_page(struct vm_area_struct *vma, struct page *page);
32
33#define flush_dcache_mmap_lock(mapping) do { } while (0)
34#define flush_dcache_mmap_unlock(mapping) do { } while (0)
35
36/* SH3 has unified cache so no special action needed here */
37#define flush_cache_sigtramp(vaddr) do { } while (0)
38#define flush_icache_user_range(vma,pg,adr,len) do { } while (0)
39
40#define p3_cache_init() do { } while (0)
41
32#else 42#else
33#include <cpu-common/cpu/cacheflush.h> 43#include <cpu-common/cpu/cacheflush.h>
34#endif 44#endif
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
index cd6baffdc896..a7412cede534 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
@@ -45,7 +45,7 @@ static struct platform_device vpu_device = {
45}; 45};
46 46
47static struct uio_info veu0_platform_data = { 47static struct uio_info veu0_platform_data = {
48 .name = "VEU", 48 .name = "VEU2H",
49 .version = "0", 49 .version = "0",
50 .irq = 54, 50 .irq = 54,
51}; 51};
@@ -73,7 +73,7 @@ static struct platform_device veu0_device = {
73}; 73};
74 74
75static struct uio_info veu1_platform_data = { 75static struct uio_info veu1_platform_data = {
76 .name = "VEU", 76 .name = "VEU2H",
77 .version = "0", 77 .version = "0",
78 .irq = 27, 78 .irq = 27,
79}; 79};
diff --git a/arch/sh/kernel/cpu/sh5/entry.S b/arch/sh/kernel/cpu/sh5/entry.S
index 04c7da968146..e640c63d5811 100644
--- a/arch/sh/kernel/cpu/sh5/entry.S
+++ b/arch/sh/kernel/cpu/sh5/entry.S
@@ -2,7 +2,7 @@
2 * arch/sh/kernel/cpu/sh5/entry.S 2 * arch/sh/kernel/cpu/sh5/entry.S
3 * 3 *
4 * Copyright (C) 2000, 2001 Paolo Alberelli 4 * Copyright (C) 2000, 2001 Paolo Alberelli
5 * Copyright (C) 2004 - 2007 Paul Mundt 5 * Copyright (C) 2004 - 2008 Paul Mundt
6 * Copyright (C) 2003, 2004 Richard Curnow 6 * Copyright (C) 2003, 2004 Richard Curnow
7 * 7 *
8 * This file is subject to the terms and conditions of the GNU General Public 8 * This file is subject to the terms and conditions of the GNU General Public
@@ -923,6 +923,8 @@ ret_from_exception:
923 blink tr0, ZERO 923 blink tr0, ZERO
924 924
925resume_kernel: 925resume_kernel:
926 CLI()
927
926 pta restore_all, tr0 928 pta restore_all, tr0
927 929
928 getcon KCR0, r6 930 getcon KCR0, r6
@@ -939,19 +941,11 @@ need_resched:
939 andi r7, 0xf0, r7 941 andi r7, 0xf0, r7
940 bne r7, ZERO, tr0 942 bne r7, ZERO, tr0
941 943
942 movi ((PREEMPT_ACTIVE >> 16) & 65535), r8 944 movi preempt_schedule_irq, r7
943 shori (PREEMPT_ACTIVE & 65535), r8
944 st.l r6, TI_PRE_COUNT, r8
945
946 STI()
947 movi schedule, r7
948 ori r7, 1, r7 945 ori r7, 1, r7
949 ptabs r7, tr1 946 ptabs r7, tr1
950 blink tr1, LINK 947 blink tr1, LINK
951 948
952 st.l r6, TI_PRE_COUNT, ZERO
953 CLI()
954
955 pta need_resched, tr1 949 pta need_resched, tr1
956 blink tr1, ZERO 950 blink tr1, ZERO
957#endif 951#endif
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S
index 0bc17def55a7..efbb4268875e 100644
--- a/arch/sh/kernel/entry-common.S
+++ b/arch/sh/kernel/entry-common.S
@@ -92,6 +92,7 @@ ENTRY(ret_from_irq)
92 bra resume_userspace 92 bra resume_userspace
93 nop 93 nop
94ENTRY(resume_kernel) 94ENTRY(resume_kernel)
95 cli
95 mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count 96 mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count
96 tst r0, r0 97 tst r0, r0
97 bf noresched 98 bf noresched
@@ -105,28 +106,9 @@ need_resched:
105 and #0xf0, r0 ! interrupts off (exception path)? 106 and #0xf0, r0 ! interrupts off (exception path)?
106 cmp/eq #0xf0, r0 107 cmp/eq #0xf0, r0
107 bt noresched 108 bt noresched
108
109 mov.l 1f, r0
110 mov.l r0, @(TI_PRE_COUNT,r8)
111
112#ifdef CONFIG_TRACE_IRQFLAGS
113 mov.l 3f, r0 109 mov.l 3f, r0
114 jsr @r0 110 jsr @r0 ! call preempt_schedule_irq
115 nop
116#endif
117 sti
118 mov.l 2f, r0
119 jsr @r0
120 nop
121 mov #0, r0
122 mov.l r0, @(TI_PRE_COUNT,r8)
123 cli
124#ifdef CONFIG_TRACE_IRQFLAGS
125 mov.l 4f, r0
126 jsr @r0
127 nop 111 nop
128#endif
129
130 bra need_resched 112 bra need_resched
131 nop 113 nop
132 114
@@ -137,10 +119,7 @@ noresched:
137 .align 2 119 .align 2
1381: .long PREEMPT_ACTIVE 1201: .long PREEMPT_ACTIVE
1392: .long schedule 1212: .long schedule
140#ifdef CONFIG_TRACE_IRQFLAGS 1223: .long preempt_schedule_irq
1413: .long trace_hardirqs_on
1424: .long trace_hardirqs_off
143#endif
144#endif 123#endif
145 124
146ENTRY(resume_userspace) 125ENTRY(resume_userspace)
diff --git a/arch/sh/kernel/machine_kexec.c b/arch/sh/kernel/machine_kexec.c
index 4703dff174d5..94df56b0d1f6 100644
--- a/arch/sh/kernel/machine_kexec.c
+++ b/arch/sh/kernel/machine_kexec.c
@@ -102,7 +102,7 @@ void machine_kexec(struct kimage *image)
102 102
103 /* now call it */ 103 /* now call it */
104 rnk = (relocate_new_kernel_t) reboot_code_buffer; 104 rnk = (relocate_new_kernel_t) reboot_code_buffer;
105 (*rnk)(page_list, reboot_code_buffer, image->start, vbr_reg); 105 (*rnk)(page_list, reboot_code_buffer, P2SEGADDR(image->start), vbr_reg);
106} 106}
107 107
108void arch_crash_save_vmcoreinfo(void) 108void arch_crash_save_vmcoreinfo(void)
diff --git a/arch/sh/kernel/ptrace_64.c b/arch/sh/kernel/ptrace_64.c
index 5922edd416db..9c6424892bd3 100644
--- a/arch/sh/kernel/ptrace_64.c
+++ b/arch/sh/kernel/ptrace_64.c
@@ -131,6 +131,8 @@ void user_enable_single_step(struct task_struct *child)
131 131
132void user_disable_single_step(struct task_struct *child) 132void user_disable_single_step(struct task_struct *child)
133{ 133{
134 struct pt_regs *regs = child->thread.uregs;
135
134 regs->sr &= ~SR_SSTEP; 136 regs->sr &= ~SR_SSTEP;
135} 137}
136 138
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index a35207655e7b..de832056bf1b 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -171,6 +171,7 @@ static void __init reserve_crashkernel(void)
171 (unsigned long)(free_mem >> 20)); 171 (unsigned long)(free_mem >> 20));
172 crashk_res.start = crash_base; 172 crashk_res.start = crash_base;
173 crashk_res.end = crash_base + crash_size - 1; 173 crashk_res.end = crash_base + crash_size - 1;
174 insert_resource(&iomem_resource, &crashk_res);
174 } 175 }
175} 176}
176#else 177#else
@@ -204,11 +205,6 @@ void __init __add_active_range(unsigned int nid, unsigned long start_pfn,
204 request_resource(res, &data_resource); 205 request_resource(res, &data_resource);
205 request_resource(res, &bss_resource); 206 request_resource(res, &bss_resource);
206 207
207#ifdef CONFIG_KEXEC
208 if (crashk_res.start != crashk_res.end)
209 request_resource(res, &crashk_res);
210#endif
211
212 add_active_range(nid, start_pfn, end_pfn); 208 add_active_range(nid, start_pfn, end_pfn);
213} 209}
214 210
diff --git a/arch/sh/kernel/sh_ksyms_32.c b/arch/sh/kernel/sh_ksyms_32.c
index 8f916536719c..6e1b1c271658 100644
--- a/arch/sh/kernel/sh_ksyms_32.c
+++ b/arch/sh/kernel/sh_ksyms_32.c
@@ -107,10 +107,12 @@ DECLARE_EXPORT(__movmemSI12_i4);
107 * GCC >= 4.2 emits these for division, as do GCC 4.1.x versions of the ST 107 * GCC >= 4.2 emits these for division, as do GCC 4.1.x versions of the ST
108 * compiler which include backported patches. 108 * compiler which include backported patches.
109 */ 109 */
110DECLARE_EXPORT(__sdivsi3_i4i);
111DECLARE_EXPORT(__udiv_qrnnd_16); 110DECLARE_EXPORT(__udiv_qrnnd_16);
111#if !defined(CONFIG_CPU_SH2)
112DECLARE_EXPORT(__sdivsi3_i4i);
112DECLARE_EXPORT(__udivsi3_i4i); 113DECLARE_EXPORT(__udivsi3_i4i);
113#endif 114#endif
115#endif
114#else /* GCC 3.x */ 116#else /* GCC 3.x */
115DECLARE_EXPORT(__movstr_i4_even); 117DECLARE_EXPORT(__movstr_i4_even);
116DECLARE_EXPORT(__movstr_i4_odd); 118DECLARE_EXPORT(__movstr_i4_odd);
diff --git a/arch/sh/kernel/sys_sh.c b/arch/sh/kernel/sys_sh.c
index 59cd2859ce9b..9061b86d73fa 100644
--- a/arch/sh/kernel/sys_sh.c
+++ b/arch/sh/kernel/sys_sh.c
@@ -170,7 +170,7 @@ asmlinkage int sys_ipc(uint call, int first, int second,
170 version = call >> 16; /* hack for backward compatibility */ 170 version = call >> 16; /* hack for backward compatibility */
171 call &= 0xffff; 171 call &= 0xffff;
172 172
173 if (call <= SEMCTL) 173 if (call <= SEMTIMEDOP)
174 switch (call) { 174 switch (call) {
175 case SEMOP: 175 case SEMOP:
176 return sys_semtimedop(first, 176 return sys_semtimedop(first,
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig
index 9c131cac91a4..8a03926ea84f 100644
--- a/arch/sh/mm/Kconfig
+++ b/arch/sh/mm/Kconfig
@@ -181,10 +181,12 @@ config ENTRY_OFFSET
181choice 181choice
182 prompt "HugeTLB page size" 182 prompt "HugeTLB page size"
183 depends on HUGETLB_PAGE && (CPU_SH4 || CPU_SH5) && MMU 183 depends on HUGETLB_PAGE && (CPU_SH4 || CPU_SH5) && MMU
184 default HUGETLB_PAGE_SIZE_1MB if PAGE_SIZE_64KB
184 default HUGETLB_PAGE_SIZE_64K 185 default HUGETLB_PAGE_SIZE_64K
185 186
186config HUGETLB_PAGE_SIZE_64K 187config HUGETLB_PAGE_SIZE_64K
187 bool "64kB" 188 bool "64kB"
189 depends on !PAGE_SIZE_64KB
188 190
189config HUGETLB_PAGE_SIZE_256K 191config HUGETLB_PAGE_SIZE_256K
190 bool "256kB" 192 bool "256kB"
diff --git a/arch/sh/mm/consistent.c b/arch/sh/mm/consistent.c
index b2ce014401b5..64b8f7f96f9a 100644
--- a/arch/sh/mm/consistent.c
+++ b/arch/sh/mm/consistent.c
@@ -95,8 +95,31 @@ void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
95} 95}
96EXPORT_SYMBOL(dma_cache_sync); 96EXPORT_SYMBOL(dma_cache_sync);
97 97
98int platform_resource_setup_memory(struct platform_device *pdev, 98static int __init memchunk_setup(char *str)
99 char *name, unsigned long memsize) 99{
100 return 1; /* accept anything that begins with "memchunk." */
101}
102__setup("memchunk.", memchunk_setup);
103
104static void __init memchunk_cmdline_override(char *name, unsigned long *sizep)
105{
106 char *p = boot_command_line;
107 int k = strlen(name);
108
109 while ((p = strstr(p, "memchunk."))) {
110 p += 9; /* strlen("memchunk.") */
111 if (!strncmp(name, p, k) && p[k] == '=') {
112 p += k + 1;
113 *sizep = memparse(p, NULL);
114 pr_info("%s: forcing memory chunk size to 0x%08lx\n",
115 name, *sizep);
116 break;
117 }
118 }
119}
120
121int __init platform_resource_setup_memory(struct platform_device *pdev,
122 char *name, unsigned long memsize)
100{ 123{
101 struct resource *r; 124 struct resource *r;
102 dma_addr_t dma_handle; 125 dma_addr_t dma_handle;
@@ -109,6 +132,10 @@ int platform_resource_setup_memory(struct platform_device *pdev,
109 return -EINVAL; 132 return -EINVAL;
110 } 133 }
111 134
135 memchunk_cmdline_override(name, &memsize);
136 if (!memsize)
137 return 0;
138
112 buf = dma_alloc_coherent(NULL, memsize, &dma_handle, GFP_KERNEL); 139 buf = dma_alloc_coherent(NULL, memsize, &dma_handle, GFP_KERNEL);
113 if (!buf) { 140 if (!buf) {
114 pr_warning("%s: unable to allocate memory\n", name); 141 pr_warning("%s: unable to allocate memory\n", name);