| From ddc3257df7309ac066b59ac6c67a0463320414a0 Mon Sep 17 00:00:00 2001 |
| From: Soren Brinkmann <soren.brinkmann@xilinx.com> |
| Date: Thu, 17 Oct 2013 14:08:04 -0700 |
| Subject: tty: xuartps: Use devm_clk_get() |
| |
| Use the device managed interface for clocks, simplifying error paths. |
| |
| Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| (cherry picked from commit 991fc259361eb812ebf6c4527343d60ab4b2e1a6) |
| Signed-off-by: Daniel Sangorrin <daniel.sangorrin@toshiba.co.jp> |
| Signed-off-by: Yoshitake Kobayashi <yoshitake.kobayashi@toshiba.co.jp> |
| --- |
| drivers/tty/serial/xilinx_uartps.c | 14 ++++---------- |
| 1 file changed, 4 insertions(+), 10 deletions(-) |
| |
| diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c |
| index 2f76ad938b4b..afa3a2d6856f 100644 |
| --- a/drivers/tty/serial/xilinx_uartps.c |
| +++ b/drivers/tty/serial/xilinx_uartps.c |
| @@ -953,23 +953,23 @@ static int xuartps_probe(struct platform_device *pdev) |
| if (!xuartps_data) |
| return -ENOMEM; |
| |
| - xuartps_data->aperclk = clk_get(&pdev->dev, "aper_clk"); |
| + xuartps_data->aperclk = devm_clk_get(&pdev->dev, "aper_clk"); |
| if (IS_ERR(xuartps_data->aperclk)) { |
| dev_err(&pdev->dev, "aper_clk clock not found.\n"); |
| rc = PTR_ERR(xuartps_data->aperclk); |
| goto err_out_free; |
| } |
| - xuartps_data->refclk = clk_get(&pdev->dev, "ref_clk"); |
| + xuartps_data->refclk = devm_clk_get(&pdev->dev, "ref_clk"); |
| if (IS_ERR(xuartps_data->refclk)) { |
| dev_err(&pdev->dev, "ref_clk clock not found.\n"); |
| rc = PTR_ERR(xuartps_data->refclk); |
| - goto err_out_clk_put_aper; |
| + goto err_out_free; |
| } |
| |
| rc = clk_prepare_enable(xuartps_data->aperclk); |
| if (rc) { |
| dev_err(&pdev->dev, "Unable to enable APER clock.\n"); |
| - goto err_out_clk_put; |
| + goto err_out_free; |
| } |
| rc = clk_prepare_enable(xuartps_data->refclk); |
| if (rc) { |
| @@ -1020,10 +1020,6 @@ err_out_clk_disable: |
| clk_disable_unprepare(xuartps_data->refclk); |
| err_out_clk_dis_aper: |
| clk_disable_unprepare(xuartps_data->aperclk); |
| -err_out_clk_put: |
| - clk_put(xuartps_data->refclk); |
| -err_out_clk_put_aper: |
| - clk_put(xuartps_data->aperclk); |
| err_out_free: |
| kfree(xuartps_data); |
| |
| @@ -1047,8 +1043,6 @@ static int xuartps_remove(struct platform_device *pdev) |
| port->mapbase = 0; |
| clk_disable_unprepare(xuartps_data->refclk); |
| clk_disable_unprepare(xuartps_data->aperclk); |
| - clk_put(xuartps_data->refclk); |
| - clk_put(xuartps_data->aperclk); |
| kfree(xuartps_data); |
| return rc; |
| } |
| -- |
| 1.8.5.rc3 |
| |