serial: stm32: clean probe and remove port deinit
authorErwan Le Ray <erwan.leray@foss.st.com>
Wed, 6 Jan 2021 16:22:02 +0000 (17:22 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Jan 2021 15:19:29 +0000 (16:19 +0100)
Clean probe and remove port deinit by moving clk_disable_unprepare in a
new dedicated deinit_port function.

Signed-off-by: Erwan Le Ray <erwan.leray@foss.st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
Link: https://lore.kernel.org/r/20210106162203.28854-8-erwan.leray@foss.st.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/stm32-usart.c

index 0d6c7f3..9d73f69 100644 (file)
@@ -970,6 +970,11 @@ static const struct uart_ops stm32_uart_ops = {
        .verify_port    = stm32_usart_verify_port,
 };
 
+static void stm32_usart_deinit_port(struct stm32_port *stm32port)
+{
+       clk_disable_unprepare(stm32port->clk);
+}
+
 static int stm32_usart_init_port(struct stm32_port *stm32port,
                                 struct platform_device *pdev)
 {
@@ -1279,7 +1284,7 @@ err_nowup:
                device_init_wakeup(&pdev->dev, false);
 
 err_uninit:
-       clk_disable_unprepare(stm32port->clk);
+       stm32_usart_deinit_port(stm32port);
 
        return ret;
 }
@@ -1318,7 +1323,7 @@ static int stm32_usart_serial_remove(struct platform_device *pdev)
                device_init_wakeup(&pdev->dev, false);
        }
 
-       clk_disable_unprepare(stm32_port->clk);
+       stm32_usart_deinit_port(stm32_port);
 
        err = uart_remove_one_port(&stm32_usart_driver, port);