Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3d45391 authored by Ralf Baechle's avatar Ralf Baechle
Browse files

[MIPS] Early printk for IP27.

parent 73f40352
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -606,6 +606,7 @@ config SGI_IP27
	select ARC64
	select BOOT_ELF64
	select DMA_IP27
	select EARLY_PRINTK
	select HW_HAS_PCI
	select PCI_DOMAINS
	select SYS_HAS_CPU_R10000
+6 −5
Original line number Diff line number Diff line
@@ -2,10 +2,11 @@
# Makefile for the IP27 specific kernel interface routines under Linux.
#

obj-y	:= ip27-berr.o ip27-console.o ip27-irq.o ip27-init.o \
	   ip27-klconfig.o ip27-klnuma.o ip27-memory.o ip27-nmi.o ip27-reset.o \
	   ip27-timer.o ip27-hubio.o ip27-xtalk.o
obj-y	:= ip27-berr.o ip27-irq.o ip27-init.o ip27-klconfig.o ip27-klnuma.o \
	   ip27-memory.o ip27-nmi.o ip27-reset.o ip27-timer.o ip27-hubio.o \
	   ip27-xtalk.o

obj-$(CONFIG_EARLY_PRINTK)	+= ip27-console.o
obj-$(CONFIG_KGDB)		+= ip27-dbgio.o
obj-$(CONFIG_SMP)		+= ip27-smp.o

+18 −22
Original line number Diff line number Diff line
@@ -46,33 +46,29 @@ void prom_putchar(char c)
	uart->iu_thr = c;
}

char __init prom_getchar(void)
static void ioc3_console_write(struct console *con, const char *s, unsigned n)
{
	return 0;
	while (n-- && *s) {
		if (*s == '\n')
			prom_putchar('\r');
		prom_putchar(*s);
		s++;
	}
}

static void inline ioc3_console_probe(void)
{
	struct uart_port up;

	/*
	 * Register to interrupt zero because we share the interrupt with
	 * the serial driver which we don't properly support yet.
	 */
	memset(&up, 0, sizeof(up));
	up.membase	= (unsigned char *) console_uart();
	up.irq		= 0;
	up.uartclk	= IOC3_CLK;
	up.regshift	= 0;
	up.iotype	= UPIO_MEM;
	up.flags	= IOC3_FLAGS;
	up.line		= 0;
static struct console ioc3_console = {
	.name	= "ioc3",
	.write	= ioc3_console_write,
	.flags	= CON_PRINTBUFFER | CON_BOOT,
	.index	= -1
};

	if (early_serial_setup(&up))
		printk(KERN_ERR "Early serial init of port 0 failed\n");
__init void ip27_setup_console(void)
{
	register_console(&ioc3_console);
}

__init void ip27_setup_console(void)
void __init disable_early_printk(void)
{
	ioc3_console_probe();
	unregister_console(&ioc3_console);
}