aboutsummaryrefslogtreecommitdiffstats
path: root/arch/frv
diff options
context:
space:
mode:
Diffstat (limited to 'arch/frv')
-rw-r--r--arch/frv/Kconfig4
-rw-r--r--arch/frv/kernel/pm.c53
-rw-r--r--arch/frv/kernel/setup.c6
-rw-r--r--arch/frv/kernel/sysctl.c32
-rw-r--r--arch/frv/kernel/vmlinux.lds.S2
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
9config ZONE_DMA
10 bool
11 default y
12
9config RWSEM_GENERIC_SPINLOCK 13config 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
403static struct ctl_table pm_table[] = 402static 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
412static struct ctl_table pm_dir_table[] = 442static 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 */
421static int __init pm_init(void) 456static 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
111struct cpuinfo_frv __nongprelbss boot_cpu_data; 111struct cpuinfo_frv __nongprelbss boot_cpu_data;
112 112
113char command_line[COMMAND_LINE_SIZE]; 113char __initdata command_line[COMMAND_LINE_SIZE];
114char __initdata redboot_command_line[COMMAND_LINE_SIZE]; 114char __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 */
176static struct ctl_table frv_table[] = 176static 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
190static struct ctl_table frv_dir_table[] = 203static 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 */
199static int __init frv_sysctl_init(void) 217static 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 = .;