| From fa4cb2f5a0cea83433a1eca0b4a71c590ca31655 Mon Sep 17 00:00:00 2001 |
| From: Ben Dooks <ben.dooks@codethink.co.uk> |
| Date: Wed, 4 Jun 2014 12:42:10 +0100 |
| Subject: mmc: sh-mmcif: use devm_ for clock management |
| |
| Use the devm_clk_get() code to get the clock and allow it to be freed |
| automatically on release. |
| |
| Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> |
| Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> |
| (cherry picked from commit 5337a334e4f4f1e9384054e34e08ffab9be93c81) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/mmc/host/sh_mmcif.c | 18 ++++++++---------- |
| 1 file changed, 8 insertions(+), 10 deletions(-) |
| |
| diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c |
| index e25821fe4e9e..ec9bda30da73 100644 |
| --- a/drivers/mmc/host/sh_mmcif.c |
| +++ b/drivers/mmc/host/sh_mmcif.c |
| @@ -1390,7 +1390,7 @@ static int sh_mmcif_probe(struct platform_device *pdev) |
| |
| ret = mmc_of_parse(mmc); |
| if (ret < 0) |
| - goto eofparse; |
| + goto err_host; |
| |
| host = mmc_priv(mmc); |
| host->mmc = mmc; |
| @@ -1420,19 +1420,19 @@ static int sh_mmcif_probe(struct platform_device *pdev) |
| pm_runtime_enable(&pdev->dev); |
| host->power = false; |
| |
| - host->hclk = clk_get(&pdev->dev, NULL); |
| + host->hclk = devm_clk_get(&pdev->dev, NULL); |
| if (IS_ERR(host->hclk)) { |
| ret = PTR_ERR(host->hclk); |
| dev_err(&pdev->dev, "cannot get clock: %d\n", ret); |
| - goto eclkget; |
| + goto err_pm; |
| } |
| ret = sh_mmcif_clk_update(host); |
| if (ret < 0) |
| - goto eclkupdate; |
| + goto err_pm; |
| |
| ret = pm_runtime_resume(&pdev->dev); |
| if (ret < 0) |
| - goto eresume; |
| + goto err_clk; |
| |
| INIT_DELAYED_WORK(&host->timeout_work, mmcif_timeout_work); |
| |
| @@ -1483,13 +1483,11 @@ ereqirq1: |
| free_irq(irq[0], host); |
| ereqirq0: |
| pm_runtime_suspend(&pdev->dev); |
| -eresume: |
| +err_clk: |
| clk_disable_unprepare(host->hclk); |
| -eclkupdate: |
| - clk_put(host->hclk); |
| -eclkget: |
| +err_pm: |
| pm_runtime_disable(&pdev->dev); |
| -eofparse: |
| +err_host: |
| mmc_free_host(mmc); |
| return ret; |
| } |
| -- |
| 2.1.2 |
| |