| 
									
										
										
										
											2007-03-01 11:56:43 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * This file is subject to the terms and conditions of the GNU General Public | 
					
						
							|  |  |  |  * License.  See the file "COPYING" in the main directory of this archive | 
					
						
							|  |  |  |  * for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 2002, 2003, 06, 07 Ralf Baechle (ralf@linux-mips.org) | 
					
						
							|  |  |  |  * Copyright (C) 2007 MIPS Technologies, Inc. | 
					
						
							|  |  |  |  *   written by Ralf Baechle (ralf@linux-mips.org) | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #include <linux/console.h>
 | 
					
						
							|  |  |  | #include <linux/init.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-29 17:57:08 +03:00
										 |  |  | #include <asm/setup.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-03-01 11:56:43 +00:00
										 |  |  | extern void prom_putchar(char); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-03 12:58:54 +02:00
										 |  |  | static void __init | 
					
						
							|  |  |  | early_console_write(struct console *con, const char *s, unsigned n) | 
					
						
							| 
									
										
										
										
											2007-03-01 11:56:43 +00:00
										 |  |  | { | 
					
						
							|  |  |  | 	while (n-- && *s) { | 
					
						
							|  |  |  | 		if (*s == '\n') | 
					
						
							|  |  |  | 			prom_putchar('\r'); | 
					
						
							|  |  |  | 		prom_putchar(*s); | 
					
						
							|  |  |  | 		s++; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-03 12:58:54 +02:00
										 |  |  | static struct console early_console __initdata = { | 
					
						
							| 
									
										
										
										
											2007-03-01 11:56:43 +00:00
										 |  |  | 	.name	= "early", | 
					
						
							|  |  |  | 	.write	= early_console_write, | 
					
						
							|  |  |  | 	.flags	= CON_PRINTBUFFER | CON_BOOT, | 
					
						
							|  |  |  | 	.index	= -1 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-03 13:01:32 +02:00
										 |  |  | static int early_console_initialized __initdata; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-03-01 11:56:43 +00:00
										 |  |  | void __init setup_early_printk(void) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2007-05-03 13:01:32 +02:00
										 |  |  | 	if (early_console_initialized) | 
					
						
							|  |  |  | 		return; | 
					
						
							|  |  |  | 	early_console_initialized = 1; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-03-01 11:56:43 +00:00
										 |  |  | 	register_console(&early_console); | 
					
						
							|  |  |  | } |