diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-08-29 16:40:27 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-08-29 16:40:27 -0400 |
commit | c1b054d03f5b31c33eaa0b267c629b118eaf3790 (patch) | |
tree | 9333907ca767be24fcb3667877242976c3e3c8dd /arch/m32r/kernel | |
parent | 559fb51ba7e66fe298b8355fabde1275b7def35f (diff) | |
parent | bf4e70e54cf31dcca48d279c7f7e71328eebe749 (diff) |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'arch/m32r/kernel')
-rw-r--r-- | arch/m32r/kernel/process.c | 6 | ||||
-rw-r--r-- | arch/m32r/kernel/setup_m32700ut.c | 59 | ||||
-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 | 57 | ||||
-rw-r--r-- | arch/m32r/kernel/signal.c | 15 | ||||
-rw-r--r-- | arch/m32r/kernel/smpboot.c | 1 | ||||
-rw-r--r-- | arch/m32r/kernel/time.c | 13 |
10 files changed, 221 insertions, 42 deletions
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..708634b685e4 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 |
@@ -30,9 +30,11 @@ | |||
30 | typedef struct { | 30 | typedef struct { |
31 | unsigned long icucr; /* ICU Control Register */ | 31 | unsigned long icucr; /* ICU Control Register */ |
32 | } icu_data_t; | 32 | } icu_data_t; |
33 | static icu_data_t icu_data[M32700UT_NUM_CPU_IRQ]; | ||
34 | #else | ||
35 | icu_data_t icu_data[M32700UT_NUM_CPU_IRQ]; | ||
33 | #endif /* CONFIG_SMP */ | 36 | #endif /* CONFIG_SMP */ |
34 | 37 | ||
35 | static icu_data_t icu_data[M32700UT_NUM_CPU_IRQ]; | ||
36 | 38 | ||
37 | static void disable_m32700ut_irq(unsigned int irq) | 39 | static void disable_m32700ut_irq(unsigned int irq) |
38 | { | 40 | { |
@@ -435,7 +437,7 @@ void __init init_IRQ(void) | |||
435 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; | 437 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; |
436 | enable_m32700ut_irq(M32R_IRQ_INT2); | 438 | enable_m32700ut_irq(M32R_IRQ_INT2); |
437 | 439 | ||
438 | //#if defined(CONFIG_VIDEO_M32R_AR) | 440 | #if defined(CONFIG_VIDEO_M32R_AR) |
439 | /* | 441 | /* |
440 | * INT3# is used for AR | 442 | * INT3# is used for AR |
441 | */ | 443 | */ |
@@ -445,9 +447,11 @@ void __init init_IRQ(void) | |||
445 | irq_desc[M32R_IRQ_INT3].depth = 1; | 447 | irq_desc[M32R_IRQ_INT3].depth = 1; |
446 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 448 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
447 | disable_m32700ut_irq(M32R_IRQ_INT3); | 449 | disable_m32700ut_irq(M32R_IRQ_INT3); |
448 | //#endif /* CONFIG_VIDEO_M32R_AR */ | 450 | #endif /* CONFIG_VIDEO_M32R_AR */ |
449 | } | 451 | } |
450 | 452 | ||
453 | #if defined(CONFIG_SMC91X) | ||
454 | |||
451 | #define LAN_IOSTART 0x300 | 455 | #define LAN_IOSTART 0x300 |
452 | #define LAN_IOEND 0x320 | 456 | #define LAN_IOEND 0x320 |
453 | static struct resource smc91x_resources[] = { | 457 | static struct resource smc91x_resources[] = { |
@@ -469,10 +473,55 @@ static struct platform_device smc91x_device = { | |||
469 | .num_resources = ARRAY_SIZE(smc91x_resources), | 473 | .num_resources = ARRAY_SIZE(smc91x_resources), |
470 | .resource = smc91x_resources, | 474 | .resource = smc91x_resources, |
471 | }; | 475 | }; |
476 | #endif | ||
477 | |||
478 | #if defined(CONFIG_FB_S1D13XXX) | ||
479 | |||
480 | #include <video/s1d13xxxfb.h> | ||
481 | #include <asm/s1d13806.h> | ||
482 | |||
483 | static struct s1d13xxxfb_pdata s1d13xxxfb_data = { | ||
484 | .initregs = s1d13xxxfb_initregs, | ||
485 | .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), | ||
486 | .platform_init_video = NULL, | ||
487 | #ifdef CONFIG_PM | ||
488 | .platform_suspend_video = NULL, | ||
489 | .platform_resume_video = NULL, | ||
490 | #endif | ||
491 | }; | ||
492 | |||
493 | static struct resource s1d13xxxfb_resources[] = { | ||
494 | [0] = { | ||
495 | .start = 0x10600000UL, | ||
496 | .end = 0x1073FFFFUL, | ||
497 | .flags = IORESOURCE_MEM, | ||
498 | }, | ||
499 | [1] = { | ||
500 | .start = 0x10400000UL, | ||
501 | .end = 0x104001FFUL, | ||
502 | .flags = IORESOURCE_MEM, | ||
503 | } | ||
504 | }; | ||
505 | |||
506 | static struct platform_device s1d13xxxfb_device = { | ||
507 | .name = S1D_DEVICENAME, | ||
508 | .id = 0, | ||
509 | .dev = { | ||
510 | .platform_data = &s1d13xxxfb_data, | ||
511 | }, | ||
512 | .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), | ||
513 | .resource = s1d13xxxfb_resources, | ||
514 | }; | ||
515 | #endif | ||
472 | 516 | ||
473 | static int __init platform_init(void) | 517 | static int __init platform_init(void) |
474 | { | 518 | { |
519 | #if defined(CONFIG_SMC91X) | ||
475 | platform_device_register(&smc91x_device); | 520 | platform_device_register(&smc91x_device); |
521 | #endif | ||
522 | #if defined(CONFIG_FB_S1D13XXX) | ||
523 | platform_device_register(&s1d13xxxfb_device); | ||
524 | #endif | ||
476 | return 0; | 525 | return 0; |
477 | } | 526 | } |
478 | arch_initcall(platform_init); | 527 | 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..d7b7ec6d30f8 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 | * |
@@ -31,9 +31,11 @@ | |||
31 | typedef struct { | 31 | typedef struct { |
32 | unsigned long icucr; /* ICU Control Register */ | 32 | unsigned long icucr; /* ICU Control Register */ |
33 | } icu_data_t; | 33 | } icu_data_t; |
34 | static icu_data_t icu_data[OPSPUT_NUM_CPU_IRQ]; | ||
35 | #else | ||
36 | icu_data_t icu_data[OPSPUT_NUM_CPU_IRQ]; | ||
34 | #endif /* CONFIG_SMP */ | 37 | #endif /* CONFIG_SMP */ |
35 | 38 | ||
36 | static icu_data_t icu_data[OPSPUT_NUM_CPU_IRQ]; | ||
37 | 39 | ||
38 | static void disable_opsput_irq(unsigned int irq) | 40 | static void disable_opsput_irq(unsigned int irq) |
39 | { | 41 | { |
@@ -439,7 +441,7 @@ void __init init_IRQ(void) | |||
439 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; | 441 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; |
440 | enable_opsput_irq(M32R_IRQ_INT2); | 442 | enable_opsput_irq(M32R_IRQ_INT2); |
441 | 443 | ||
442 | //#if defined(CONFIG_VIDEO_M32R_AR) | 444 | #if defined(CONFIG_VIDEO_M32R_AR) |
443 | /* | 445 | /* |
444 | * INT3# is used for AR | 446 | * INT3# is used for AR |
445 | */ | 447 | */ |
@@ -449,9 +451,11 @@ void __init init_IRQ(void) | |||
449 | irq_desc[M32R_IRQ_INT3].depth = 1; | 451 | irq_desc[M32R_IRQ_INT3].depth = 1; |
450 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 452 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
451 | disable_opsput_irq(M32R_IRQ_INT3); | 453 | disable_opsput_irq(M32R_IRQ_INT3); |
452 | //#endif /* CONFIG_VIDEO_M32R_AR */ | 454 | #endif /* CONFIG_VIDEO_M32R_AR */ |
453 | } | 455 | } |
454 | 456 | ||
457 | #if defined(CONFIG_SMC91X) | ||
458 | |||
455 | #define LAN_IOSTART 0x300 | 459 | #define LAN_IOSTART 0x300 |
456 | #define LAN_IOEND 0x320 | 460 | #define LAN_IOEND 0x320 |
457 | static struct resource smc91x_resources[] = { | 461 | static struct resource smc91x_resources[] = { |
@@ -473,10 +477,55 @@ static struct platform_device smc91x_device = { | |||
473 | .num_resources = ARRAY_SIZE(smc91x_resources), | 477 | .num_resources = ARRAY_SIZE(smc91x_resources), |
474 | .resource = smc91x_resources, | 478 | .resource = smc91x_resources, |
475 | }; | 479 | }; |
480 | #endif | ||
481 | |||
482 | #if defined(CONFIG_FB_S1D13XXX) | ||
483 | |||
484 | #include <video/s1d13xxxfb.h> | ||
485 | #include <asm/s1d13806.h> | ||
486 | |||
487 | static struct s1d13xxxfb_pdata s1d13xxxfb_data = { | ||
488 | .initregs = s1d13xxxfb_initregs, | ||
489 | .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), | ||
490 | .platform_init_video = NULL, | ||
491 | #ifdef CONFIG_PM | ||
492 | .platform_suspend_video = NULL, | ||
493 | .platform_resume_video = NULL, | ||
494 | #endif | ||
495 | }; | ||
496 | |||
497 | static struct resource s1d13xxxfb_resources[] = { | ||
498 | [0] = { | ||
499 | .start = 0x10600000UL, | ||
500 | .end = 0x1073FFFFUL, | ||
501 | .flags = IORESOURCE_MEM, | ||
502 | }, | ||
503 | [1] = { | ||
504 | .start = 0x10400000UL, | ||
505 | .end = 0x104001FFUL, | ||
506 | .flags = IORESOURCE_MEM, | ||
507 | } | ||
508 | }; | ||
509 | |||
510 | static struct platform_device s1d13xxxfb_device = { | ||
511 | .name = S1D_DEVICENAME, | ||
512 | .id = 0, | ||
513 | .dev = { | ||
514 | .platform_data = &s1d13xxxfb_data, | ||
515 | }, | ||
516 | .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), | ||
517 | .resource = s1d13xxxfb_resources, | ||
518 | }; | ||
519 | #endif | ||
476 | 520 | ||
477 | static int __init platform_init(void) | 521 | static int __init platform_init(void) |
478 | { | 522 | { |
523 | #if defined(CONFIG_SMC91X) | ||
479 | platform_device_register(&smc91x_device); | 524 | platform_device_register(&smc91x_device); |
525 | #endif | ||
526 | #if defined(CONFIG_FB_S1D13XXX) | ||
527 | platform_device_register(&s1d13xxxfb_device); | ||
528 | #endif | ||
480 | return 0; | 529 | return 0; |
481 | } | 530 | } |
482 | arch_initcall(platform_init); | 531 | arch_initcall(platform_init); |
diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c index 50311eb07a24..71763f7a1d19 100644 --- a/arch/m32r/kernel/signal.c +++ b/arch/m32r/kernel/signal.c | |||
@@ -341,13 +341,12 @@ handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info, | |||
341 | /* Set up the stack frame */ | 341 | /* Set up the stack frame */ |
342 | setup_rt_frame(sig, ka, info, oldset, regs); | 342 | setup_rt_frame(sig, ka, info, oldset, regs); |
343 | 343 | ||
344 | if (!(ka->sa.sa_flags & SA_NODEFER)) { | 344 | spin_lock_irq(¤t->sighand->siglock); |
345 | spin_lock_irq(¤t->sighand->siglock); | 345 | sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask); |
346 | sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask); | 346 | if (!(ka->sa.sa_flags & SA_NODEFER)) |
347 | sigaddset(¤t->blocked,sig); | 347 | sigaddset(¤t->blocked,sig); |
348 | recalc_sigpending(); | 348 | recalc_sigpending(); |
349 | spin_unlock_irq(¤t->sighand->siglock); | 349 | spin_unlock_irq(¤t->sighand->siglock); |
350 | } | ||
351 | } | 350 | } |
352 | 351 | ||
353 | /* | 352 | /* |
@@ -371,10 +370,8 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset) | |||
371 | if (!user_mode(regs)) | 370 | if (!user_mode(regs)) |
372 | return 1; | 371 | return 1; |
373 | 372 | ||
374 | if (current->flags & PF_FREEZE) { | 373 | if (try_to_freeze()) |
375 | refrigerator(0); | ||
376 | goto no_signal; | 374 | goto no_signal; |
377 | } | ||
378 | 375 | ||
379 | if (!oldset) | 376 | if (!oldset) |
380 | oldset = ¤t->blocked; | 377 | oldset = ¤t->blocked; |
diff --git a/arch/m32r/kernel/smpboot.c b/arch/m32r/kernel/smpboot.c index f9a0e723478d..640d592ea072 100644 --- a/arch/m32r/kernel/smpboot.c +++ b/arch/m32r/kernel/smpboot.c | |||
@@ -91,6 +91,7 @@ extern struct { | |||
91 | 91 | ||
92 | /* which physical physical ID maps to which logical CPU number */ | 92 | /* which physical physical ID maps to which logical CPU number */ |
93 | static volatile int physid_2_cpu[NR_CPUS]; | 93 | static volatile int physid_2_cpu[NR_CPUS]; |
94 | #define physid_to_cpu(physid) physid_2_cpu[physid] | ||
94 | 95 | ||
95 | /* which logical CPU number maps to which physical ID */ | 96 | /* which logical CPU number maps to which physical ID */ |
96 | volatile int cpu_2_physid[NR_CPUS]; | 97 | volatile int cpu_2_physid[NR_CPUS]; |
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 | } |