diff options
Diffstat (limited to 'drivers/tty/serial/of_serial.c')
| -rw-r--r-- | drivers/tty/serial/of_serial.c | 13 | 
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c index 34e71874a89..df443b908ca 100644 --- a/drivers/tty/serial/of_serial.c +++ b/drivers/tty/serial/of_serial.c @@ -105,6 +105,10 @@ static int __devinit of_platform_serial_setup(struct platform_device *ofdev,  	port->uartclk = clk;  	port->flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP  		| UPF_FIXED_PORT | UPF_FIXED_TYPE; + +	if (of_find_property(np, "no-loopback-test", NULL)) +		port->flags |= UPF_SKIP_TEST; +  	port->dev = &ofdev->dev;  	if (type == PORT_TEGRA) @@ -144,8 +148,15 @@ static int __devinit of_platform_serial_probe(struct platform_device *ofdev)  	switch (port_type) {  #ifdef CONFIG_SERIAL_8250  	case PORT_8250 ... PORT_MAX_8250: -		ret = serial8250_register_port(&port); +	{ +		/* For now the of bindings don't support the extra +		   8250 specific bits */ +		struct uart_8250_port port8250; +		memset(&port8250, 0, sizeof(port8250)); +		port8250.port = port; +		ret = serial8250_register_8250_port(&port8250);  		break; +	}  #endif  #ifdef CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL  	case PORT_NWPSERIAL:  |