diff options
Diffstat (limited to 'arch/sparc/kernel/setup.c')
-rw-r--r-- | arch/sparc/kernel/setup.c | 65 |
1 files changed, 1 insertions, 64 deletions
diff --git a/arch/sparc/kernel/setup.c b/arch/sparc/kernel/setup.c index 64c0ed98820a..f8228383895a 100644 --- a/arch/sparc/kernel/setup.c +++ b/arch/sparc/kernel/setup.c | |||
@@ -146,31 +146,6 @@ static void __init process_switch(char c) | |||
146 | } | 146 | } |
147 | } | 147 | } |
148 | 148 | ||
149 | static void __init process_console(char *commands) | ||
150 | { | ||
151 | serial_console = 0; | ||
152 | commands += 8; | ||
153 | /* Linux-style serial */ | ||
154 | if (!strncmp(commands, "ttyS", 4)) | ||
155 | serial_console = simple_strtoul(commands + 4, NULL, 10) + 1; | ||
156 | else if (!strncmp(commands, "tty", 3)) { | ||
157 | char c = *(commands + 3); | ||
158 | /* Solaris-style serial */ | ||
159 | if (c == 'a' || c == 'b') | ||
160 | serial_console = c - 'a' + 1; | ||
161 | /* else Linux-style fbcon, not serial */ | ||
162 | } | ||
163 | #if defined(CONFIG_PROM_CONSOLE) | ||
164 | if (!strncmp(commands, "prom", 4)) { | ||
165 | char *p; | ||
166 | |||
167 | for (p = commands - 8; *p && *p != ' '; p++) | ||
168 | *p = ' '; | ||
169 | conswitchp = &prom_con; | ||
170 | } | ||
171 | #endif | ||
172 | } | ||
173 | |||
174 | static void __init boot_flags_init(char *commands) | 149 | static void __init boot_flags_init(char *commands) |
175 | { | 150 | { |
176 | while (*commands) { | 151 | while (*commands) { |
@@ -187,9 +162,7 @@ static void __init boot_flags_init(char *commands) | |||
187 | process_switch(*commands++); | 162 | process_switch(*commands++); |
188 | continue; | 163 | continue; |
189 | } | 164 | } |
190 | if (!strncmp(commands, "console=", 8)) { | 165 | if (!strncmp(commands, "mem=", 4)) { |
191 | process_console(commands); | ||
192 | } else if (!strncmp(commands, "mem=", 4)) { | ||
193 | /* | 166 | /* |
194 | * "mem=XXX[kKmM] overrides the PROM-reported | 167 | * "mem=XXX[kKmM] overrides the PROM-reported |
195 | * memory size. | 168 | * memory size. |
@@ -341,41 +314,6 @@ void __init setup_arch(char **cmdline_p) | |||
341 | smp_setup_cpu_possible_map(); | 314 | smp_setup_cpu_possible_map(); |
342 | } | 315 | } |
343 | 316 | ||
344 | static int __init set_preferred_console(void) | ||
345 | { | ||
346 | int idev, odev; | ||
347 | |||
348 | /* The user has requested a console so this is already set up. */ | ||
349 | if (serial_console >= 0) | ||
350 | return -EBUSY; | ||
351 | |||
352 | idev = prom_query_input_device(); | ||
353 | odev = prom_query_output_device(); | ||
354 | if (idev == PROMDEV_IKBD && odev == PROMDEV_OSCREEN) { | ||
355 | serial_console = 0; | ||
356 | } else if (idev == PROMDEV_ITTYA && odev == PROMDEV_OTTYA) { | ||
357 | serial_console = 1; | ||
358 | } else if (idev == PROMDEV_ITTYB && odev == PROMDEV_OTTYB) { | ||
359 | serial_console = 2; | ||
360 | } else if (idev == PROMDEV_I_UNK && odev == PROMDEV_OTTYA) { | ||
361 | prom_printf("MrCoffee ttya\n"); | ||
362 | serial_console = 1; | ||
363 | } else if (idev == PROMDEV_I_UNK && odev == PROMDEV_OSCREEN) { | ||
364 | serial_console = 0; | ||
365 | prom_printf("MrCoffee keyboard\n"); | ||
366 | } else { | ||
367 | prom_printf("Confusing console (idev %d, odev %d)\n", | ||
368 | idev, odev); | ||
369 | serial_console = 1; | ||
370 | } | ||
371 | |||
372 | if (serial_console) | ||
373 | return add_preferred_console("ttyS", serial_console - 1, NULL); | ||
374 | |||
375 | return -ENODEV; | ||
376 | } | ||
377 | console_initcall(set_preferred_console); | ||
378 | |||
379 | extern char *sparc_cpu_type; | 317 | extern char *sparc_cpu_type; |
380 | extern char *sparc_fpu_type; | 318 | extern char *sparc_fpu_type; |
381 | 319 | ||
@@ -461,7 +399,6 @@ void sun_do_break(void) | |||
461 | prom_cmdline(); | 399 | prom_cmdline(); |
462 | } | 400 | } |
463 | 401 | ||
464 | int serial_console = -1; | ||
465 | int stop_a_enabled = 1; | 402 | int stop_a_enabled = 1; |
466 | 403 | ||
467 | static int __init topology_init(void) | 404 | static int __init topology_init(void) |