The devm_clk_get_enabled() helpers: - call devm_clk_get() - call clk_prepare_enable() and register what is needed in order to call clk_disable_unprepare() when needed, as a managed resource. This simplifies the code and avoids calls to clk_disable_unprepare(). Signed-off-by: Lei Liu <liulei.rjpt@xxxxxxxx> --- drivers/tty/serial/mps2-uart.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/tty/serial/mps2-uart.c b/drivers/tty/serial/mps2-uart.c index 2a4c09f3a834..e582fd6c4632 100644 --- a/drivers/tty/serial/mps2-uart.c +++ b/drivers/tty/serial/mps2-uart.c @@ -550,19 +550,12 @@ static int mps2_init_port(struct platform_device *pdev, mps_port->port.ops = &mps2_uart_pops; mps_port->port.dev = &pdev->dev; - mps_port->clk = devm_clk_get(&pdev->dev, NULL); + mps_port->clk = devm_clk_get_enabled(&pdev->dev, NULL); if (IS_ERR(mps_port->clk)) return PTR_ERR(mps_port->clk); - ret = clk_prepare_enable(mps_port->clk); - if (ret) - return ret; - mps_port->port.uartclk = clk_get_rate(mps_port->clk); - clk_disable_unprepare(mps_port->clk); - - if (mps_port->flags & UART_PORT_COMBINED_IRQ) { mps_port->port.irq = platform_get_irq(pdev, 0); } else { -- 2.34.1