2015-04-23 10:51 GMT+02:00 Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>: > Just because of_clk_get() doesn't mean it should be used. Use devm_clk_get > which is the correct function when a struct device * is available. Also > since it's a devm function we can drop the calls to clk_put(). While at > it also fix a wrong debug message. > > Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > --- > drivers/tty/serial/8250/8250_mtk.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_mtk.c b/drivers/tty/serial/8250/8250_mtk.c > index 7a11fac..c6901dc 100644 > --- a/drivers/tty/serial/8250/8250_mtk.c > +++ b/drivers/tty/serial/8250/8250_mtk.c > @@ -131,18 +131,16 @@ static int mtk8250_probe_of(struct platform_device *pdev, struct uart_port *p, > struct mtk8250_data *data) > { > int err; > - struct device_node *np = pdev->dev.of_node; > > - data->uart_clk = of_clk_get(np, 0); > + data->uart_clk = devm_clk_get(&pdev->dev, NULL); > if (IS_ERR(data->uart_clk)) { > - dev_warn(&pdev->dev, "Can't get timer clock\n"); > + dev_warn(&pdev->dev, "Can't get uart clock\n"); > return PTR_ERR(data->uart_clk); > } > > err = clk_prepare_enable(data->uart_clk); > if (err) { > dev_warn(&pdev->dev, "Can't prepare clock\n"); > - clk_put(data->uart_clk); > return err; > } > p->uartclk = clk_get_rate(data->uart_clk); > @@ -216,7 +214,6 @@ static int mtk8250_remove(struct platform_device *pdev) > serial8250_unregister_port(data->line); > if (!IS_ERR(data->uart_clk)) { > clk_disable_unprepare(data->uart_clk); > - clk_put(data->uart_clk); > } Please delete the braces. -- motzblog.wordpress.com -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html