diff options
| author | Ralf Baechle <ralf@linux-mips.org> | 2006-06-22 15:09:04 -0400 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2006-06-29 16:10:53 -0400 |
| commit | a3d45391866d2c244363c3000fc6c1acb3dfcb0b (patch) | |
| tree | d68b5762068ea274e4baf488ffc4bb972ed23de6 | |
| parent | 73f403527b9ec5367376076eafb3d2f505d8e2e3 (diff) | |
[MIPS] Early printk for IP27.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| -rw-r--r-- | arch/mips/Kconfig | 1 | ||||
| -rw-r--r-- | arch/mips/sgi-ip27/Makefile | 11 | ||||
| -rw-r--r-- | arch/mips/sgi-ip27/ip27-console.c | 40 |
3 files changed, 25 insertions, 27 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index aedeee9009fc..8e10f027e561 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
| @@ -606,6 +606,7 @@ config SGI_IP27 | |||
| 606 | select ARC64 | 606 | select ARC64 |
| 607 | select BOOT_ELF64 | 607 | select BOOT_ELF64 |
| 608 | select DMA_IP27 | 608 | select DMA_IP27 |
| 609 | select EARLY_PRINTK | ||
| 609 | select HW_HAS_PCI | 610 | select HW_HAS_PCI |
| 610 | select PCI_DOMAINS | 611 | select PCI_DOMAINS |
| 611 | select SYS_HAS_CPU_R10000 | 612 | select SYS_HAS_CPU_R10000 |
diff --git a/arch/mips/sgi-ip27/Makefile b/arch/mips/sgi-ip27/Makefile index 686ba14e2882..a457263f4391 100644 --- a/arch/mips/sgi-ip27/Makefile +++ b/arch/mips/sgi-ip27/Makefile | |||
| @@ -2,11 +2,12 @@ | |||
| 2 | # Makefile for the IP27 specific kernel interface routines under Linux. | 2 | # Makefile for the IP27 specific kernel interface routines under Linux. |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | obj-y := ip27-berr.o ip27-console.o ip27-irq.o ip27-init.o \ | 5 | obj-y := ip27-berr.o ip27-irq.o ip27-init.o ip27-klconfig.o ip27-klnuma.o \ |
| 6 | ip27-klconfig.o ip27-klnuma.o ip27-memory.o ip27-nmi.o ip27-reset.o \ | 6 | ip27-memory.o ip27-nmi.o ip27-reset.o ip27-timer.o ip27-hubio.o \ |
| 7 | ip27-timer.o ip27-hubio.o ip27-xtalk.o | 7 | ip27-xtalk.o |
| 8 | 8 | ||
| 9 | obj-$(CONFIG_KGDB) += ip27-dbgio.o | 9 | obj-$(CONFIG_EARLY_PRINTK) += ip27-console.o |
| 10 | obj-$(CONFIG_SMP) += ip27-smp.o | 10 | obj-$(CONFIG_KGDB) += ip27-dbgio.o |
| 11 | obj-$(CONFIG_SMP) += ip27-smp.o | ||
| 11 | 12 | ||
| 12 | EXTRA_AFLAGS := $(CFLAGS) | 13 | EXTRA_AFLAGS := $(CFLAGS) |
diff --git a/arch/mips/sgi-ip27/ip27-console.c b/arch/mips/sgi-ip27/ip27-console.c index 3e1ac299b804..14211e382374 100644 --- a/arch/mips/sgi-ip27/ip27-console.c +++ b/arch/mips/sgi-ip27/ip27-console.c | |||
| @@ -46,33 +46,29 @@ void prom_putchar(char c) | |||
| 46 | uart->iu_thr = c; | 46 | uart->iu_thr = c; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | char __init prom_getchar(void) | 49 | static void ioc3_console_write(struct console *con, const char *s, unsigned n) |
| 50 | { | 50 | { |
| 51 | return 0; | 51 | while (n-- && *s) { |
| 52 | if (*s == '\n') | ||
| 53 | prom_putchar('\r'); | ||
| 54 | prom_putchar(*s); | ||
| 55 | s++; | ||
| 56 | } | ||
| 52 | } | 57 | } |
| 53 | 58 | ||
| 54 | static void inline ioc3_console_probe(void) | 59 | static struct console ioc3_console = { |
| 55 | { | 60 | .name = "ioc3", |
| 56 | struct uart_port up; | 61 | .write = ioc3_console_write, |
| 57 | 62 | .flags = CON_PRINTBUFFER | CON_BOOT, | |
| 58 | /* | 63 | .index = -1 |
| 59 | * Register to interrupt zero because we share the interrupt with | 64 | }; |
| 60 | * the serial driver which we don't properly support yet. | ||
| 61 | */ | ||
| 62 | memset(&up, 0, sizeof(up)); | ||
| 63 | up.membase = (unsigned char *) console_uart(); | ||
| 64 | up.irq = 0; | ||
| 65 | up.uartclk = IOC3_CLK; | ||
| 66 | up.regshift = 0; | ||
| 67 | up.iotype = UPIO_MEM; | ||
| 68 | up.flags = IOC3_FLAGS; | ||
| 69 | up.line = 0; | ||
| 70 | 65 | ||
| 71 | if (early_serial_setup(&up)) | 66 | __init void ip27_setup_console(void) |
| 72 | printk(KERN_ERR "Early serial init of port 0 failed\n"); | 67 | { |
| 68 | register_console(&ioc3_console); | ||
| 73 | } | 69 | } |
| 74 | 70 | ||
| 75 | __init void ip27_setup_console(void) | 71 | void __init disable_early_printk(void) |
| 76 | { | 72 | { |
| 77 | ioc3_console_probe(); | 73 | unregister_console(&ioc3_console); |
| 78 | } | 74 | } |
