diff options
Diffstat (limited to 'arch/frv')
-rw-r--r-- | arch/frv/Kconfig | 4 | ||||
-rw-r--r-- | arch/frv/kernel/pm.c | 53 | ||||
-rw-r--r-- | arch/frv/kernel/setup.c | 6 | ||||
-rw-r--r-- | arch/frv/kernel/sysctl.c | 32 | ||||
-rw-r--r-- | arch/frv/kernel/vmlinux.lds.S | 2 |
5 files changed, 78 insertions, 19 deletions
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index 7561d7b72e75..cea237413aa2 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig | |||
@@ -6,6 +6,10 @@ config FRV | |||
6 | bool | 6 | bool |
7 | default y | 7 | default y |
8 | 8 | ||
9 | config ZONE_DMA | ||
10 | bool | ||
11 | default y | ||
12 | |||
9 | config RWSEM_GENERIC_SPINLOCK | 13 | config RWSEM_GENERIC_SPINLOCK |
10 | bool | 14 | bool |
11 | default y | 15 | default y |
diff --git a/arch/frv/kernel/pm.c b/arch/frv/kernel/pm.c index ee677ced7b68..c57ce3f1f2e2 100644 --- a/arch/frv/kernel/pm.c +++ b/arch/frv/kernel/pm.c | |||
@@ -125,7 +125,6 @@ unsigned long sleep_phys_sp(void *sp) | |||
125 | * Use a temporary sysctl number. Horrid, but will be cleaned up in 2.6 | 125 | * Use a temporary sysctl number. Horrid, but will be cleaned up in 2.6 |
126 | * when all the PM interfaces exist nicely. | 126 | * when all the PM interfaces exist nicely. |
127 | */ | 127 | */ |
128 | #define CTL_PM 9899 | ||
129 | #define CTL_PM_SUSPEND 1 | 128 | #define CTL_PM_SUSPEND 1 |
130 | #define CTL_PM_CMODE 2 | 129 | #define CTL_PM_CMODE 2 |
131 | #define CTL_PM_P0 4 | 130 | #define CTL_PM_P0 4 |
@@ -402,17 +401,53 @@ static int cm_sysctl(ctl_table *table, int __user *name, int nlen, | |||
402 | 401 | ||
403 | static struct ctl_table pm_table[] = | 402 | static struct ctl_table pm_table[] = |
404 | { | 403 | { |
405 | {CTL_PM_SUSPEND, "suspend", NULL, 0, 0200, NULL, &sysctl_pm_do_suspend}, | 404 | { |
406 | {CTL_PM_CMODE, "cmode", &clock_cmode_current, sizeof(int), 0644, NULL, &cmode_procctl, &cmode_sysctl, NULL}, | 405 | .ctl_name = CTL_PM_SUSPEND, |
407 | {CTL_PM_P0, "p0", &clock_p0_current, sizeof(int), 0644, NULL, &p0_procctl, &p0_sysctl, NULL}, | 406 | .procname = "suspend", |
408 | {CTL_PM_CM, "cm", &clock_cm_current, sizeof(int), 0644, NULL, &cm_procctl, &cm_sysctl, NULL}, | 407 | .data = NULL, |
409 | {0} | 408 | .maxlen = 0, |
409 | .mode = 0200, | ||
410 | .proc_handler = &sysctl_pm_do_suspend, | ||
411 | }, | ||
412 | { | ||
413 | .ctl_name = CTL_PM_CMODE, | ||
414 | .procname = "cmode", | ||
415 | .data = &clock_cmode_current, | ||
416 | .maxlen = sizeof(int), | ||
417 | .mode = 0644, | ||
418 | .proc_handler = &cmode_procctl, | ||
419 | .strategy = &cmode_sysctl, | ||
420 | }, | ||
421 | { | ||
422 | .ctl_name = CTL_PM_P0, | ||
423 | .procname = "p0", | ||
424 | .data = &clock_p0_current, | ||
425 | .maxlen = sizeof(int), | ||
426 | .mode = 0644, | ||
427 | .proc_handler = &p0_procctl, | ||
428 | .strategy = &p0_sysctl, | ||
429 | }, | ||
430 | { | ||
431 | .ctl_name = CTL_PM_CM, | ||
432 | .procname = "cm", | ||
433 | .data = &clock_cm_current, | ||
434 | .maxlen = sizeof(int), | ||
435 | .mode = 0644, | ||
436 | .proc_handler = &cm_procctl, | ||
437 | .strategy = &cm_sysctl, | ||
438 | }, | ||
439 | { .ctl_name = 0} | ||
410 | }; | 440 | }; |
411 | 441 | ||
412 | static struct ctl_table pm_dir_table[] = | 442 | static struct ctl_table pm_dir_table[] = |
413 | { | 443 | { |
414 | {CTL_PM, "pm", NULL, 0, 0555, pm_table}, | 444 | { |
415 | {0} | 445 | .ctl_name = CTL_PM, |
446 | .procname = "pm", | ||
447 | .mode = 0555, | ||
448 | .child = pm_table, | ||
449 | }, | ||
450 | { .ctl_name = 0} | ||
416 | }; | 451 | }; |
417 | 452 | ||
418 | /* | 453 | /* |
@@ -420,7 +455,7 @@ static struct ctl_table pm_dir_table[] = | |||
420 | */ | 455 | */ |
421 | static int __init pm_init(void) | 456 | static int __init pm_init(void) |
422 | { | 457 | { |
423 | register_sysctl_table(pm_dir_table, 1); | 458 | register_sysctl_table(pm_dir_table); |
424 | return 0; | 459 | return 0; |
425 | } | 460 | } |
426 | 461 | ||
diff --git a/arch/frv/kernel/setup.c b/arch/frv/kernel/setup.c index 1a5eb6c301c9..8ea3ca2aba62 100644 --- a/arch/frv/kernel/setup.c +++ b/arch/frv/kernel/setup.c | |||
@@ -110,7 +110,7 @@ unsigned long __initdata num_mappedpages; | |||
110 | 110 | ||
111 | struct cpuinfo_frv __nongprelbss boot_cpu_data; | 111 | struct cpuinfo_frv __nongprelbss boot_cpu_data; |
112 | 112 | ||
113 | char command_line[COMMAND_LINE_SIZE]; | 113 | char __initdata command_line[COMMAND_LINE_SIZE]; |
114 | char __initdata redboot_command_line[COMMAND_LINE_SIZE]; | 114 | char __initdata redboot_command_line[COMMAND_LINE_SIZE]; |
115 | 115 | ||
116 | #ifdef CONFIG_PM | 116 | #ifdef CONFIG_PM |
@@ -762,7 +762,7 @@ void __init setup_arch(char **cmdline_p) | |||
762 | printk("uClinux FR-V port done by Red Hat Inc <dhowells@redhat.com>\n"); | 762 | printk("uClinux FR-V port done by Red Hat Inc <dhowells@redhat.com>\n"); |
763 | #endif | 763 | #endif |
764 | 764 | ||
765 | memcpy(saved_command_line, redboot_command_line, COMMAND_LINE_SIZE); | 765 | memcpy(boot_command_line, redboot_command_line, COMMAND_LINE_SIZE); |
766 | 766 | ||
767 | determine_cpu(); | 767 | determine_cpu(); |
768 | determine_clocks(1); | 768 | determine_clocks(1); |
@@ -803,7 +803,7 @@ void __init setup_arch(char **cmdline_p) | |||
803 | #endif | 803 | #endif |
804 | 804 | ||
805 | /* deal with the command line - RedBoot may have passed one to the kernel */ | 805 | /* deal with the command line - RedBoot may have passed one to the kernel */ |
806 | memcpy(command_line, saved_command_line, sizeof(command_line)); | 806 | memcpy(command_line, boot_command_line, sizeof(command_line)); |
807 | *cmdline_p = &command_line[0]; | 807 | *cmdline_p = &command_line[0]; |
808 | parse_cmdline_early(command_line); | 808 | parse_cmdline_early(command_line); |
809 | 809 | ||
diff --git a/arch/frv/kernel/sysctl.c b/arch/frv/kernel/sysctl.c index ce676803eb6f..3e9d7e03fb95 100644 --- a/arch/frv/kernel/sysctl.c +++ b/arch/frv/kernel/sysctl.c | |||
@@ -175,22 +175,40 @@ static int procctl_frv_pin_cxnr(ctl_table *table, int write, struct file *filp, | |||
175 | */ | 175 | */ |
176 | static struct ctl_table frv_table[] = | 176 | static struct ctl_table frv_table[] = |
177 | { | 177 | { |
178 | { 1, "cache-mode", NULL, 0, 0644, NULL, &procctl_frv_cachemode }, | 178 | { |
179 | .ctl_name = 1, | ||
180 | .procname = "cache-mode", | ||
181 | .data = NULL, | ||
182 | .maxlen = 0, | ||
183 | .mode = 0644, | ||
184 | .proc_handler = &procctl_frv_cachemode, | ||
185 | }, | ||
179 | #ifdef CONFIG_MMU | 186 | #ifdef CONFIG_MMU |
180 | { 2, "pin-cxnr", NULL, 0, 0644, NULL, &procctl_frv_pin_cxnr }, | 187 | { |
188 | .ctl_name = 2, | ||
189 | .procname = "pin-cxnr", | ||
190 | .data = NULL, | ||
191 | .maxlen = 0, | ||
192 | .mode = 0644, | ||
193 | .proc_handler = &procctl_frv_pin_cxnr | ||
194 | }, | ||
181 | #endif | 195 | #endif |
182 | { 0 } | 196 | {} |
183 | }; | 197 | }; |
184 | 198 | ||
185 | /* | 199 | /* |
186 | * Use a temporary sysctl number. Horrid, but will be cleaned up in 2.6 | 200 | * Use a temporary sysctl number. Horrid, but will be cleaned up in 2.6 |
187 | * when all the PM interfaces exist nicely. | 201 | * when all the PM interfaces exist nicely. |
188 | */ | 202 | */ |
189 | #define CTL_FRV 9898 | ||
190 | static struct ctl_table frv_dir_table[] = | 203 | static struct ctl_table frv_dir_table[] = |
191 | { | 204 | { |
192 | {CTL_FRV, "frv", NULL, 0, 0555, frv_table}, | 205 | { |
193 | {0} | 206 | .ctl_name = CTL_FRV, |
207 | .procname = "frv", | ||
208 | .mode = 0555, | ||
209 | .child = frv_table | ||
210 | }, | ||
211 | {} | ||
194 | }; | 212 | }; |
195 | 213 | ||
196 | /* | 214 | /* |
@@ -198,7 +216,7 @@ static struct ctl_table frv_dir_table[] = | |||
198 | */ | 216 | */ |
199 | static int __init frv_sysctl_init(void) | 217 | static int __init frv_sysctl_init(void) |
200 | { | 218 | { |
201 | register_sysctl_table(frv_dir_table, 1); | 219 | register_sysctl_table(frv_dir_table); |
202 | return 0; | 220 | return 0; |
203 | } | 221 | } |
204 | 222 | ||
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S index 9c1fb12367fa..97910e016825 100644 --- a/arch/frv/kernel/vmlinux.lds.S +++ b/arch/frv/kernel/vmlinux.lds.S | |||
@@ -61,10 +61,12 @@ SECTIONS | |||
61 | .data.percpu : { *(.data.percpu) } | 61 | .data.percpu : { *(.data.percpu) } |
62 | __per_cpu_end = .; | 62 | __per_cpu_end = .; |
63 | 63 | ||
64 | #ifdef CONFIG_BLK_DEV_INITRD | ||
64 | . = ALIGN(4096); | 65 | . = ALIGN(4096); |
65 | __initramfs_start = .; | 66 | __initramfs_start = .; |
66 | .init.ramfs : { *(.init.ramfs) } | 67 | .init.ramfs : { *(.init.ramfs) } |
67 | __initramfs_end = .; | 68 | __initramfs_end = .; |
69 | #endif | ||
68 | 70 | ||
69 | . = ALIGN(THREAD_SIZE); | 71 | . = ALIGN(THREAD_SIZE); |
70 | __init_end = .; | 72 | __init_end = .; |