diff --git a/[refs] b/[refs] index 3b9bd314d3a1..ebce1b0a9327 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e163d1f42bc2089efae58b4966287c4d3504d4c7 +refs/heads/master: d6c0d06b341803fde45e592df4233579f3afb04e diff --git a/trunk/drivers/tty/serial/arc_uart.c b/trunk/drivers/tty/serial/arc_uart.c index 9de26ba48d20..2db64105677b 100644 --- a/trunk/drivers/tty/serial/arc_uart.c +++ b/trunk/drivers/tty/serial/arc_uart.c @@ -533,7 +533,12 @@ arc_uart_init_one(struct platform_device *pdev, int dev_id) struct arc_uart_port *uart = &arc_uart_ports[dev_id]; plat_data = ((unsigned long *)(pdev->dev.platform_data)); - uart->baud = plat_data[0]; + if (!plat_data) + return -ENODEV; + + uart->is_emulated = !!plat_data[0]; /* workaround ISS bug */ + uart->port.uartclk = plat_data[1]; + uart->baud = plat_data[2]; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) @@ -556,7 +561,6 @@ arc_uart_init_one(struct platform_device *pdev, int dev_id) uart->port.line = dev_id; uart->port.ops = &arc_serial_pops; - uart->port.uartclk = plat_data[1]; uart->port.fifosize = ARC_UART_TX_FIFO_SIZE; /* @@ -565,9 +569,6 @@ arc_uart_init_one(struct platform_device *pdev, int dev_id) */ uart->port.ignore_status_mask = 0; - /* Real Hardware vs. emulated to work around a bug */ - uart->is_emulated = !!plat_data[2]; - return 0; }