]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
serial-uartlite: Move the uart register
authorShubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Tue, 16 Oct 2018 10:18:00 +0000 (15:48 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Nov 2018 16:45:07 +0000 (08:45 -0800)
Move the uart register. This fixes the error path where the
clock disable is missed out.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/uartlite.c

index f0344adc86db422a40940fd66426fb64596cb6f5..77bc9d0cb8bf999f1e386ffee5d34491459ec4b1 100644 (file)
@@ -763,6 +763,15 @@ static int ulite_probe(struct platform_device *pdev)
        if (prop)
                id = be32_to_cpup(prop);
 #endif
+       if (!ulite_uart_driver.state) {
+               dev_dbg(&pdev->dev, "uartlite: calling uart_register_driver()\n");
+               ret = uart_register_driver(&ulite_uart_driver);
+               if (ret < 0) {
+                       dev_err(&pdev->dev, "Failed to register driver\n");
+                       return ret;
+               }
+       }
+
        pdata = devm_kzalloc(&pdev->dev, sizeof(struct uartlite_data),
                             GFP_KERNEL);
        if (!pdata)
@@ -794,15 +803,6 @@ static int ulite_probe(struct platform_device *pdev)
                return ret;
        }
 
-       if (!ulite_uart_driver.state) {
-               dev_dbg(&pdev->dev, "uartlite: calling uart_register_driver()\n");
-               ret = uart_register_driver(&ulite_uart_driver);
-               if (ret < 0) {
-                       dev_err(&pdev->dev, "Failed to register driver\n");
-                       return ret;
-               }
-       }
-
        ret = ulite_assign(&pdev->dev, id, res->start, irq, pdata);
 
        clk_disable(pdata->clk);