]> git.itanic.dy.fi Git - linux-stable/blobdiff - drivers/tty/serial/fsl_lpuart.c
serial: fsl_lpuart: Reset prior to registration
[linux-stable] / drivers / tty / serial / fsl_lpuart.c
index 2945c1b89088031dfa1fc313d23dfe94cac98218..cb83c66bd8a8230010732a6ac8240a2613d34e2c 100644 (file)
@@ -2706,14 +2706,15 @@ static int lpuart_probe(struct platform_device *pdev)
                lpuart_reg.cons = LPUART_CONSOLE;
                handler = lpuart_int;
        }
-       ret = uart_add_one_port(&lpuart_reg, &sport->port);
-       if (ret)
-               goto failed_attach_port;
 
        ret = lpuart_global_reset(sport);
        if (ret)
                goto failed_reset;
 
+       ret = uart_add_one_port(&lpuart_reg, &sport->port);
+       if (ret)
+               goto failed_attach_port;
+
        ret = uart_get_rs485_mode(&sport->port);
        if (ret)
                goto failed_get_rs485;
@@ -2736,9 +2737,9 @@ static int lpuart_probe(struct platform_device *pdev)
 
 failed_irq_request:
 failed_get_rs485:
-failed_reset:
        uart_remove_one_port(&lpuart_reg, &sport->port);
 failed_attach_port:
+failed_reset:
        lpuart_disable_clks(sport);
        return ret;
 }