diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-08-10 13:46:28 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-08-10 13:46:28 -0400 |
| commit | 2f058256cb64e346f4fb4499ff4e0f1c2791a4b4 (patch) | |
| tree | 91e06602f4d3abb6812ea8c9bc9ba4501e14c84e /arch/m32r | |
| parent | 0274aa2506fd2fe89a58dd6cd64d3b3f7b976af8 (diff) | |
| parent | 86b3786078d63242d3194ffc58ae8dae1d1bbef3 (diff) | |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'arch/m32r')
| -rw-r--r-- | arch/m32r/Kconfig | 6 | ||||
| -rw-r--r-- | arch/m32r/Kconfig.debug | 3 | ||||
| -rw-r--r-- | arch/m32r/kernel/process.c | 6 | ||||
| -rw-r--r-- | arch/m32r/kernel/setup_m32700ut.c | 55 | ||||
| -rw-r--r-- | arch/m32r/kernel/setup_mappi.c | 51 | ||||
| -rw-r--r-- | arch/m32r/kernel/setup_mappi2.c | 4 | ||||
| -rw-r--r-- | arch/m32r/kernel/setup_mappi3.c | 52 | ||||
| -rw-r--r-- | arch/m32r/kernel/setup_oaks32r.c | 5 | ||||
| -rw-r--r-- | arch/m32r/kernel/setup_opsput.c | 53 | ||||
| -rw-r--r-- | arch/m32r/kernel/signal.c | 4 | ||||
| -rw-r--r-- | arch/m32r/kernel/time.c | 13 | ||||
| -rw-r--r-- | arch/m32r/mm/init.c | 4 |
12 files changed, 219 insertions, 37 deletions
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index 64c133344afe..7772951df313 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig | |||
| @@ -172,11 +172,13 @@ config NOHIGHMEM | |||
| 172 | bool | 172 | bool |
| 173 | default y | 173 | default y |
| 174 | 174 | ||
| 175 | config DISCONTIGMEM | 175 | config ARCH_DISCONTIGMEM_ENABLE |
| 176 | bool "Internal RAM Support" | 176 | bool "Internal RAM Support" |
| 177 | depends on CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP | 177 | depends on CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP |
| 178 | default y | 178 | default y |
| 179 | 179 | ||
| 180 | source "mm/Kconfig" | ||
| 181 | |||
| 180 | config IRAM_START | 182 | config IRAM_START |
| 181 | hex "Internal memory start address (hex)" | 183 | hex "Internal memory start address (hex)" |
| 182 | default "00f00000" | 184 | default "00f00000" |
| @@ -357,6 +359,8 @@ source "fs/Kconfig.binfmt" | |||
| 357 | 359 | ||
| 358 | endmenu | 360 | endmenu |
| 359 | 361 | ||
| 362 | source "net/Kconfig" | ||
| 363 | |||
| 360 | source "drivers/Kconfig" | 364 | source "drivers/Kconfig" |
| 361 | 365 | ||
| 362 | source "fs/Kconfig" | 366 | source "fs/Kconfig" |
diff --git a/arch/m32r/Kconfig.debug b/arch/m32r/Kconfig.debug index 36788c2c310d..31039723804f 100644 --- a/arch/m32r/Kconfig.debug +++ b/arch/m32r/Kconfig.debug | |||
| @@ -5,6 +5,9 @@ source "lib/Kconfig.debug" | |||
| 5 | config DEBUG_STACKOVERFLOW | 5 | config DEBUG_STACKOVERFLOW |
| 6 | bool "Check for stack overflows" | 6 | bool "Check for stack overflows" |
| 7 | depends on DEBUG_KERNEL | 7 | depends on DEBUG_KERNEL |
| 8 | help | ||
| 9 | This option will cause messages to be printed if free stack space | ||
| 10 | drops below a certain limit. | ||
| 8 | 11 | ||
| 9 | config DEBUG_STACK_USAGE | 12 | config DEBUG_STACK_USAGE |
| 10 | bool "Stack utilization instrumentation" | 13 | bool "Stack utilization instrumentation" |
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c index b556c3cf6495..ea13a8f4d8b0 100644 --- a/arch/m32r/kernel/process.c +++ b/arch/m32r/kernel/process.c | |||
| @@ -115,8 +115,6 @@ void machine_restart(char *__unused) | |||
| 115 | cpu_relax(); | 115 | cpu_relax(); |
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | EXPORT_SYMBOL(machine_restart); | ||
| 119 | |||
| 120 | void machine_halt(void) | 118 | void machine_halt(void) |
| 121 | { | 119 | { |
| 122 | printk("Please push reset button!\n"); | 120 | printk("Please push reset button!\n"); |
| @@ -124,15 +122,11 @@ void machine_halt(void) | |||
| 124 | cpu_relax(); | 122 | cpu_relax(); |
| 125 | } | 123 | } |
| 126 | 124 | ||
| 127 | EXPORT_SYMBOL(machine_halt); | ||
| 128 | |||
| 129 | void machine_power_off(void) | 125 | void machine_power_off(void) |
| 130 | { | 126 | { |
| 131 | /* M32R_FIXME */ | 127 | /* M32R_FIXME */ |
| 132 | } | 128 | } |
| 133 | 129 | ||
| 134 | EXPORT_SYMBOL(machine_power_off); | ||
| 135 | |||
| 136 | static int __init idle_setup (char *str) | 130 | static int __init idle_setup (char *str) |
| 137 | { | 131 | { |
| 138 | if (!strncmp(str, "poll", 4)) { | 132 | if (!strncmp(str, "poll", 4)) { |
diff --git a/arch/m32r/kernel/setup_m32700ut.c b/arch/m32r/kernel/setup_m32700ut.c index b014e2c1e524..a146b24a556b 100644 --- a/arch/m32r/kernel/setup_m32700ut.c +++ b/arch/m32r/kernel/setup_m32700ut.c | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | * | 3 | * |
| 4 | * Setup routines for Renesas M32700UT Board | 4 | * Setup routines for Renesas M32700UT Board |
| 5 | * | 5 | * |
| 6 | * Copyright (c) 2002 Hiroyuki Kondo, Hirokazu Takata, | 6 | * Copyright (c) 2002-2005 Hiroyuki Kondo, Hirokazu Takata, |
| 7 | * Hitoshi Yamamoto, Takeo Takahashi | 7 | * Hitoshi Yamamoto, Takeo Takahashi |
| 8 | * | 8 | * |
| 9 | * This file is subject to the terms and conditions of the GNU General | 9 | * This file is subject to the terms and conditions of the GNU General |
| 10 | * Public License. See the file "COPYING" in the main directory of this | 10 | * Public License. See the file "COPYING" in the main directory of this |
| @@ -435,7 +435,7 @@ void __init init_IRQ(void) | |||
| 435 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; | 435 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; |
| 436 | enable_m32700ut_irq(M32R_IRQ_INT2); | 436 | enable_m32700ut_irq(M32R_IRQ_INT2); |
| 437 | 437 | ||
| 438 | //#if defined(CONFIG_VIDEO_M32R_AR) | 438 | #if defined(CONFIG_VIDEO_M32R_AR) |
| 439 | /* | 439 | /* |
| 440 | * INT3# is used for AR | 440 | * INT3# is used for AR |
| 441 | */ | 441 | */ |
| @@ -445,9 +445,11 @@ void __init init_IRQ(void) | |||
| 445 | irq_desc[M32R_IRQ_INT3].depth = 1; | 445 | irq_desc[M32R_IRQ_INT3].depth = 1; |
| 446 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 446 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
| 447 | disable_m32700ut_irq(M32R_IRQ_INT3); | 447 | disable_m32700ut_irq(M32R_IRQ_INT3); |
| 448 | //#endif /* CONFIG_VIDEO_M32R_AR */ | 448 | #endif /* CONFIG_VIDEO_M32R_AR */ |
| 449 | } | 449 | } |
| 450 | 450 | ||
| 451 | #if defined(CONFIG_SMC91X) | ||
| 452 | |||
| 451 | #define LAN_IOSTART 0x300 | 453 | #define LAN_IOSTART 0x300 |
| 452 | #define LAN_IOEND 0x320 | 454 | #define LAN_IOEND 0x320 |
| 453 | static struct resource smc91x_resources[] = { | 455 | static struct resource smc91x_resources[] = { |
| @@ -469,10 +471,55 @@ static struct platform_device smc91x_device = { | |||
| 469 | .num_resources = ARRAY_SIZE(smc91x_resources), | 471 | .num_resources = ARRAY_SIZE(smc91x_resources), |
| 470 | .resource = smc91x_resources, | 472 | .resource = smc91x_resources, |
| 471 | }; | 473 | }; |
| 474 | #endif | ||
| 475 | |||
| 476 | #if defined(CONFIG_FB_S1D13XXX) | ||
| 477 | |||
| 478 | #include <video/s1d13xxxfb.h> | ||
| 479 | #include <asm/s1d13806.h> | ||
| 480 | |||
| 481 | static struct s1d13xxxfb_pdata s1d13xxxfb_data = { | ||
| 482 | .initregs = s1d13xxxfb_initregs, | ||
| 483 | .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), | ||
| 484 | .platform_init_video = NULL, | ||
| 485 | #ifdef CONFIG_PM | ||
| 486 | .platform_suspend_video = NULL, | ||
| 487 | .platform_resume_video = NULL, | ||
| 488 | #endif | ||
| 489 | }; | ||
| 490 | |||
| 491 | static struct resource s1d13xxxfb_resources[] = { | ||
| 492 | [0] = { | ||
| 493 | .start = 0x10600000UL, | ||
| 494 | .end = 0x1073FFFFUL, | ||
| 495 | .flags = IORESOURCE_MEM, | ||
| 496 | }, | ||
| 497 | [1] = { | ||
| 498 | .start = 0x10400000UL, | ||
| 499 | .end = 0x104001FFUL, | ||
| 500 | .flags = IORESOURCE_MEM, | ||
| 501 | } | ||
| 502 | }; | ||
| 503 | |||
| 504 | static struct platform_device s1d13xxxfb_device = { | ||
| 505 | .name = S1D_DEVICENAME, | ||
| 506 | .id = 0, | ||
| 507 | .dev = { | ||
| 508 | .platform_data = &s1d13xxxfb_data, | ||
| 509 | }, | ||
| 510 | .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), | ||
| 511 | .resource = s1d13xxxfb_resources, | ||
| 512 | }; | ||
| 513 | #endif | ||
| 472 | 514 | ||
| 473 | static int __init platform_init(void) | 515 | static int __init platform_init(void) |
| 474 | { | 516 | { |
| 517 | #if defined(CONFIG_SMC91X) | ||
| 475 | platform_device_register(&smc91x_device); | 518 | platform_device_register(&smc91x_device); |
| 519 | #endif | ||
| 520 | #if defined(CONFIG_FB_S1D13XXX) | ||
| 521 | platform_device_register(&s1d13xxxfb_device); | ||
| 522 | #endif | ||
| 476 | return 0; | 523 | return 0; |
| 477 | } | 524 | } |
| 478 | arch_initcall(platform_init); | 525 | arch_initcall(platform_init); |
diff --git a/arch/m32r/kernel/setup_mappi.c b/arch/m32r/kernel/setup_mappi.c index aaf8e569b930..4e709809efc5 100644 --- a/arch/m32r/kernel/setup_mappi.c +++ b/arch/m32r/kernel/setup_mappi.c | |||
| @@ -3,14 +3,15 @@ | |||
| 3 | * | 3 | * |
| 4 | * Setup routines for Renesas MAPPI Board | 4 | * Setup routines for Renesas MAPPI Board |
| 5 | * | 5 | * |
| 6 | * Copyright (c) 2001, 2002 Hiroyuki Kondo, Hirokazu Takata, | 6 | * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata, |
| 7 | * Hitoshi Yamamoto | 7 | * Hitoshi Yamamoto |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <linux/config.h> | 10 | #include <linux/config.h> |
| 11 | #include <linux/irq.h> | 11 | #include <linux/irq.h> |
| 12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
| 13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
| 14 | #include <linux/device.h> | ||
| 14 | 15 | ||
| 15 | #include <asm/system.h> | 16 | #include <asm/system.h> |
| 16 | #include <asm/m32r.h> | 17 | #include <asm/m32r.h> |
| @@ -158,3 +159,49 @@ void __init init_IRQ(void) | |||
| 158 | disable_mappi_irq(M32R_IRQ_INT2); | 159 | disable_mappi_irq(M32R_IRQ_INT2); |
| 159 | #endif /* CONFIG_M32RPCC */ | 160 | #endif /* CONFIG_M32RPCC */ |
| 160 | } | 161 | } |
| 162 | |||
| 163 | #if defined(CONFIG_FB_S1D13XXX) | ||
| 164 | |||
| 165 | #include <video/s1d13xxxfb.h> | ||
| 166 | #include <asm/s1d13806.h> | ||
| 167 | |||
| 168 | static struct s1d13xxxfb_pdata s1d13xxxfb_data = { | ||
| 169 | .initregs = s1d13xxxfb_initregs, | ||
| 170 | .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), | ||
| 171 | .platform_init_video = NULL, | ||
| 172 | #ifdef CONFIG_PM | ||
| 173 | .platform_suspend_video = NULL, | ||
| 174 | .platform_resume_video = NULL, | ||
| 175 | #endif | ||
| 176 | }; | ||
| 177 | |||
| 178 | static struct resource s1d13xxxfb_resources[] = { | ||
| 179 | [0] = { | ||
| 180 | .start = 0x10200000UL, | ||
| 181 | .end = 0x1033FFFFUL, | ||
| 182 | .flags = IORESOURCE_MEM, | ||
| 183 | }, | ||
| 184 | [1] = { | ||
| 185 | .start = 0x10000000UL, | ||
| 186 | .end = 0x100001FFUL, | ||
| 187 | .flags = IORESOURCE_MEM, | ||
| 188 | } | ||
| 189 | }; | ||
| 190 | |||
| 191 | static struct platform_device s1d13xxxfb_device = { | ||
| 192 | .name = S1D_DEVICENAME, | ||
| 193 | .id = 0, | ||
| 194 | .dev = { | ||
| 195 | .platform_data = &s1d13xxxfb_data, | ||
| 196 | }, | ||
| 197 | .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), | ||
| 198 | .resource = s1d13xxxfb_resources, | ||
| 199 | }; | ||
| 200 | |||
| 201 | static int __init platform_init(void) | ||
| 202 | { | ||
| 203 | platform_device_register(&s1d13xxxfb_device); | ||
| 204 | return 0; | ||
| 205 | } | ||
| 206 | arch_initcall(platform_init); | ||
| 207 | #endif | ||
diff --git a/arch/m32r/kernel/setup_mappi2.c b/arch/m32r/kernel/setup_mappi2.c index 38d5e9a41427..a1d801598aa4 100644 --- a/arch/m32r/kernel/setup_mappi2.c +++ b/arch/m32r/kernel/setup_mappi2.c | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | * | 3 | * |
| 4 | * Setup routines for Renesas MAPPI-II(M3A-ZA36) Board | 4 | * Setup routines for Renesas MAPPI-II(M3A-ZA36) Board |
| 5 | * | 5 | * |
| 6 | * Copyright (c) 2001, 2002 Hiroyuki Kondo, Hirokazu Takata, | 6 | * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata, |
| 7 | * Hitoshi Yamamoto, Mamoru Sakugawa | 7 | * Hitoshi Yamamoto, Mamoru Sakugawa |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <linux/config.h> | 10 | #include <linux/config.h> |
diff --git a/arch/m32r/kernel/setup_mappi3.c b/arch/m32r/kernel/setup_mappi3.c index 3d60a85aaec5..a76412e883e8 100644 --- a/arch/m32r/kernel/setup_mappi3.c +++ b/arch/m32r/kernel/setup_mappi3.c | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | * | 3 | * |
| 4 | * Setup routines for Renesas MAPPI-III(M3A-2170) Board | 4 | * Setup routines for Renesas MAPPI-III(M3A-2170) Board |
| 5 | * | 5 | * |
| 6 | * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata, | 6 | * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata, |
| 7 | * Hitoshi Yamamoto, Mamoru Sakugawa | 7 | * Hitoshi Yamamoto, Mamoru Sakugawa |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <linux/config.h> | 10 | #include <linux/config.h> |
| @@ -178,6 +178,8 @@ void __init init_IRQ(void) | |||
| 178 | #endif /* CONFIG_M32R_CFC */ | 178 | #endif /* CONFIG_M32R_CFC */ |
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | #if defined(CONFIG_SMC91X) | ||
| 182 | |||
| 181 | #define LAN_IOSTART 0x300 | 183 | #define LAN_IOSTART 0x300 |
| 182 | #define LAN_IOEND 0x320 | 184 | #define LAN_IOEND 0x320 |
| 183 | static struct resource smc91x_resources[] = { | 185 | static struct resource smc91x_resources[] = { |
| @@ -200,9 +202,55 @@ static struct platform_device smc91x_device = { | |||
| 200 | .resource = smc91x_resources, | 202 | .resource = smc91x_resources, |
| 201 | }; | 203 | }; |
| 202 | 204 | ||
| 205 | #endif | ||
| 206 | |||
| 207 | #if defined(CONFIG_FB_S1D13XXX) | ||
| 208 | |||
| 209 | #include <video/s1d13xxxfb.h> | ||
| 210 | #include <asm/s1d13806.h> | ||
| 211 | |||
| 212 | static struct s1d13xxxfb_pdata s1d13xxxfb_data = { | ||
| 213 | .initregs = s1d13xxxfb_initregs, | ||
| 214 | .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), | ||
| 215 | .platform_init_video = NULL, | ||
| 216 | #ifdef CONFIG_PM | ||
| 217 | .platform_suspend_video = NULL, | ||
| 218 | .platform_resume_video = NULL, | ||
| 219 | #endif | ||
| 220 | }; | ||
| 221 | |||
| 222 | static struct resource s1d13xxxfb_resources[] = { | ||
| 223 | [0] = { | ||
| 224 | .start = 0x1d600000UL, | ||
| 225 | .end = 0x1d73FFFFUL, | ||
| 226 | .flags = IORESOURCE_MEM, | ||
| 227 | }, | ||
| 228 | [1] = { | ||
| 229 | .start = 0x1d400000UL, | ||
| 230 | .end = 0x1d4001FFUL, | ||
| 231 | .flags = IORESOURCE_MEM, | ||
| 232 | } | ||
| 233 | }; | ||
| 234 | |||
| 235 | static struct platform_device s1d13xxxfb_device = { | ||
| 236 | .name = S1D_DEVICENAME, | ||
| 237 | .id = 0, | ||
| 238 | .dev = { | ||
| 239 | .platform_data = &s1d13xxxfb_data, | ||
| 240 | }, | ||
| 241 | .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), | ||
| 242 | .resource = s1d13xxxfb_resources, | ||
| 243 | }; | ||
| 244 | #endif | ||
| 245 | |||
| 203 | static int __init platform_init(void) | 246 | static int __init platform_init(void) |
| 204 | { | 247 | { |
| 248 | #if defined(CONFIG_SMC91X) | ||
| 205 | platform_device_register(&smc91x_device); | 249 | platform_device_register(&smc91x_device); |
| 250 | #endif | ||
| 251 | #if defined(CONFIG_FB_S1D13XXX) | ||
| 252 | platform_device_register(&s1d13xxxfb_device); | ||
| 253 | #endif | ||
| 206 | return 0; | 254 | return 0; |
| 207 | } | 255 | } |
| 208 | arch_initcall(platform_init); | 256 | arch_initcall(platform_init); |
diff --git a/arch/m32r/kernel/setup_oaks32r.c b/arch/m32r/kernel/setup_oaks32r.c index d656640badc9..45add5b76f19 100644 --- a/arch/m32r/kernel/setup_oaks32r.c +++ b/arch/m32r/kernel/setup_oaks32r.c | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | * | 3 | * |
| 4 | * Setup routines for OAKS32R Board | 4 | * Setup routines for OAKS32R Board |
| 5 | * | 5 | * |
| 6 | * Copyright (c) 2002-2004 Hiroyuki Kondo, Hirokazu Takata, | 6 | * Copyright (c) 2002-2005 Hiroyuki Kondo, Hirokazu Takata, |
| 7 | * Hitoshi Yamamoto, Mamoru Sakugawa | 7 | * Hitoshi Yamamoto, Mamoru Sakugawa |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <linux/config.h> | 10 | #include <linux/config.h> |
| @@ -139,5 +139,4 @@ void __init init_IRQ(void) | |||
| 139 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; | 139 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; |
| 140 | disable_oaks32r_irq(M32R_IRQ_SIO1_S); | 140 | disable_oaks32r_irq(M32R_IRQ_SIO1_S); |
| 141 | #endif /* CONFIG_SERIAL_M32R_SIO */ | 141 | #endif /* CONFIG_SERIAL_M32R_SIO */ |
| 142 | |||
| 143 | } | 142 | } |
diff --git a/arch/m32r/kernel/setup_opsput.c b/arch/m32r/kernel/setup_opsput.c index 86f4cf2a86c3..f0301f58bcce 100644 --- a/arch/m32r/kernel/setup_opsput.c +++ b/arch/m32r/kernel/setup_opsput.c | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | * | 3 | * |
| 4 | * Setup routines for Renesas OPSPUT Board | 4 | * Setup routines for Renesas OPSPUT Board |
| 5 | * | 5 | * |
| 6 | * Copyright (c) 2002-2004 | 6 | * Copyright (c) 2002-2005 |
| 7 | * Hiroyuki Kondo, Hirokazu Takata, | 7 | * Hiroyuki Kondo, Hirokazu Takata, |
| 8 | * Hitoshi Yamamoto, Takeo Takahashi, Mamoru Sakugawa | 8 | * Hitoshi Yamamoto, Takeo Takahashi, Mamoru Sakugawa |
| 9 | * | 9 | * |
| @@ -439,7 +439,7 @@ void __init init_IRQ(void) | |||
| 439 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; | 439 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; |
| 440 | enable_opsput_irq(M32R_IRQ_INT2); | 440 | enable_opsput_irq(M32R_IRQ_INT2); |
| 441 | 441 | ||
| 442 | //#if defined(CONFIG_VIDEO_M32R_AR) | 442 | #if defined(CONFIG_VIDEO_M32R_AR) |
| 443 | /* | 443 | /* |
| 444 | * INT3# is used for AR | 444 | * INT3# is used for AR |
| 445 | */ | 445 | */ |
| @@ -449,9 +449,11 @@ void __init init_IRQ(void) | |||
| 449 | irq_desc[M32R_IRQ_INT3].depth = 1; | 449 | irq_desc[M32R_IRQ_INT3].depth = 1; |
| 450 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 450 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
| 451 | disable_opsput_irq(M32R_IRQ_INT3); | 451 | disable_opsput_irq(M32R_IRQ_INT3); |
| 452 | //#endif /* CONFIG_VIDEO_M32R_AR */ | 452 | #endif /* CONFIG_VIDEO_M32R_AR */ |
| 453 | } | 453 | } |
| 454 | 454 | ||
| 455 | #if defined(CONFIG_SMC91X) | ||
| 456 | |||
| 455 | #define LAN_IOSTART 0x300 | 457 | #define LAN_IOSTART 0x300 |
| 456 | #define LAN_IOEND 0x320 | 458 | #define LAN_IOEND 0x320 |
| 457 | static struct resource smc91x_resources[] = { | 459 | static struct resource smc91x_resources[] = { |
| @@ -473,10 +475,55 @@ static struct platform_device smc91x_device = { | |||
| 473 | .num_resources = ARRAY_SIZE(smc91x_resources), | 475 | .num_resources = ARRAY_SIZE(smc91x_resources), |
| 474 | .resource = smc91x_resources, | 476 | .resource = smc91x_resources, |
| 475 | }; | 477 | }; |
| 478 | #endif | ||
| 479 | |||
| 480 | #if defined(CONFIG_FB_S1D13XXX) | ||
| 481 | |||
| 482 | #include <video/s1d13xxxfb.h> | ||
| 483 | #include <asm/s1d13806.h> | ||
| 484 | |||
| 485 | static struct s1d13xxxfb_pdata s1d13xxxfb_data = { | ||
| 486 | .initregs = s1d13xxxfb_initregs, | ||
| 487 | .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), | ||
| 488 | .platform_init_video = NULL, | ||
| 489 | #ifdef CONFIG_PM | ||
| 490 | .platform_suspend_video = NULL, | ||
| 491 | .platform_resume_video = NULL, | ||
| 492 | #endif | ||
| 493 | }; | ||
| 494 | |||
| 495 | static struct resource s1d13xxxfb_resources[] = { | ||
| 496 | [0] = { | ||
| 497 | .start = 0x10600000UL, | ||
| 498 | .end = 0x1073FFFFUL, | ||
| 499 | .flags = IORESOURCE_MEM, | ||
| 500 | }, | ||
| 501 | [1] = { | ||
| 502 | .start = 0x10400000UL, | ||
| 503 | .end = 0x104001FFUL, | ||
| 504 | .flags = IORESOURCE_MEM, | ||
| 505 | } | ||
| 506 | }; | ||
| 507 | |||
| 508 | static struct platform_device s1d13xxxfb_device = { | ||
| 509 | .name = S1D_DEVICENAME, | ||
| 510 | .id = 0, | ||
| 511 | .dev = { | ||
| 512 | .platform_data = &s1d13xxxfb_data, | ||
| 513 | }, | ||
| 514 | .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), | ||
| 515 | .resource = s1d13xxxfb_resources, | ||
| 516 | }; | ||
| 517 | #endif | ||
| 476 | 518 | ||
| 477 | static int __init platform_init(void) | 519 | static int __init platform_init(void) |
| 478 | { | 520 | { |
| 521 | #if defined(CONFIG_SMC91X) | ||
| 479 | platform_device_register(&smc91x_device); | 522 | platform_device_register(&smc91x_device); |
| 523 | #endif | ||
| 524 | #if defined(CONFIG_FB_S1D13XXX) | ||
| 525 | platform_device_register(&s1d13xxxfb_device); | ||
| 526 | #endif | ||
| 480 | return 0; | 527 | return 0; |
| 481 | } | 528 | } |
| 482 | arch_initcall(platform_init); | 529 | arch_initcall(platform_init); |
diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c index 50311eb07a24..5aef7e406ef5 100644 --- a/arch/m32r/kernel/signal.c +++ b/arch/m32r/kernel/signal.c | |||
| @@ -371,10 +371,8 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset) | |||
| 371 | if (!user_mode(regs)) | 371 | if (!user_mode(regs)) |
| 372 | return 1; | 372 | return 1; |
| 373 | 373 | ||
| 374 | if (current->flags & PF_FREEZE) { | 374 | if (try_to_freeze()) |
| 375 | refrigerator(0); | ||
| 376 | goto no_signal; | 375 | goto no_signal; |
| 377 | } | ||
| 378 | 376 | ||
| 379 | if (!oldset) | 377 | if (!oldset) |
| 380 | oldset = ¤t->blocked; | 378 | oldset = ¤t->blocked; |
diff --git a/arch/m32r/kernel/time.c b/arch/m32r/kernel/time.c index 3c4707280a52..8a2b77bc5749 100644 --- a/arch/m32r/kernel/time.c +++ b/arch/m32r/kernel/time.c | |||
| @@ -205,8 +205,7 @@ static long last_rtc_update = 0; | |||
| 205 | * timer_interrupt() needs to keep up the real-time clock, | 205 | * timer_interrupt() needs to keep up the real-time clock, |
| 206 | * as well as call the "do_timer()" routine every clocktick | 206 | * as well as call the "do_timer()" routine every clocktick |
| 207 | */ | 207 | */ |
| 208 | static inline void | 208 | irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) |
| 209 | do_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs) | ||
| 210 | { | 209 | { |
| 211 | #ifndef CONFIG_SMP | 210 | #ifndef CONFIG_SMP |
| 212 | profile_tick(CPU_PROFILING, regs); | 211 | profile_tick(CPU_PROFILING, regs); |
| @@ -221,6 +220,7 @@ do_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs) | |||
| 221 | * CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be | 220 | * CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be |
| 222 | * called as close as possible to 500 ms before the new second starts. | 221 | * called as close as possible to 500 ms before the new second starts. |
| 223 | */ | 222 | */ |
| 223 | write_seqlock(&xtime_lock); | ||
| 224 | if ((time_status & STA_UNSYNC) == 0 | 224 | if ((time_status & STA_UNSYNC) == 0 |
| 225 | && xtime.tv_sec > last_rtc_update + 660 | 225 | && xtime.tv_sec > last_rtc_update + 660 |
| 226 | && (xtime.tv_nsec / 1000) >= 500000 - ((unsigned)TICK_SIZE) / 2 | 226 | && (xtime.tv_nsec / 1000) >= 500000 - ((unsigned)TICK_SIZE) / 2 |
| @@ -231,6 +231,7 @@ do_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs) | |||
| 231 | else /* do it again in 60 s */ | 231 | else /* do it again in 60 s */ |
| 232 | last_rtc_update = xtime.tv_sec - 600; | 232 | last_rtc_update = xtime.tv_sec - 600; |
| 233 | } | 233 | } |
| 234 | write_sequnlock(&xtime_lock); | ||
| 234 | /* As we return to user mode fire off the other CPU schedulers.. | 235 | /* As we return to user mode fire off the other CPU schedulers.. |
| 235 | this is basically because we don't yet share IRQ's around. | 236 | this is basically because we don't yet share IRQ's around. |
| 236 | This message is rigged to be safe on the 386 - basically it's | 237 | This message is rigged to be safe on the 386 - basically it's |
| @@ -238,14 +239,8 @@ do_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs) | |||
| 238 | 239 | ||
| 239 | #ifdef CONFIG_SMP | 240 | #ifdef CONFIG_SMP |
| 240 | smp_local_timer_interrupt(regs); | 241 | smp_local_timer_interrupt(regs); |
| 242 | smp_send_timer(); | ||
| 241 | #endif | 243 | #endif |
| 242 | } | ||
| 243 | |||
| 244 | irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | ||
| 245 | { | ||
| 246 | write_seqlock(&xtime_lock); | ||
| 247 | do_timer_interrupt(irq, NULL, regs); | ||
| 248 | write_sequnlock(&xtime_lock); | ||
| 249 | 244 | ||
| 250 | return IRQ_HANDLED; | 245 | return IRQ_HANDLED; |
| 251 | } | 246 | } |
diff --git a/arch/m32r/mm/init.c b/arch/m32r/mm/init.c index bc423d838fb8..d9a40b1fe8ba 100644 --- a/arch/m32r/mm/init.c +++ b/arch/m32r/mm/init.c | |||
| @@ -49,7 +49,7 @@ void show_mem(void) | |||
| 49 | printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); | 49 | printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); |
| 50 | for_each_pgdat(pgdat) { | 50 | for_each_pgdat(pgdat) { |
| 51 | for (i = 0; i < pgdat->node_spanned_pages; ++i) { | 51 | for (i = 0; i < pgdat->node_spanned_pages; ++i) { |
| 52 | page = pgdat->node_mem_map + i; | 52 | page = pgdat_page_nr(pgdat, i); |
| 53 | total++; | 53 | total++; |
| 54 | if (PageHighMem(page)) | 54 | if (PageHighMem(page)) |
| 55 | highmem++; | 55 | highmem++; |
| @@ -152,7 +152,7 @@ int __init reservedpages_count(void) | |||
| 152 | reservedpages = 0; | 152 | reservedpages = 0; |
| 153 | for_each_online_node(nid) | 153 | for_each_online_node(nid) |
| 154 | for (i = 0 ; i < MAX_LOW_PFN(nid) - START_PFN(nid) ; i++) | 154 | for (i = 0 ; i < MAX_LOW_PFN(nid) - START_PFN(nid) ; i++) |
| 155 | if (PageReserved(NODE_DATA(nid)->node_mem_map + i)) | 155 | if (PageReserved(nid_page_nr(nid, i))) |
| 156 | reservedpages++; | 156 | reservedpages++; |
| 157 | 157 | ||
| 158 | return reservedpages; | 158 | return reservedpages; |
