diff options
author | Sachin Kamat <sachin.kamat@linaro.org> | 2012-11-25 23:17:14 -0500 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2012-12-05 00:39:22 -0500 |
commit | a4d8de5f1b765aef577a9347f2166d61a5b0a2db (patch) | |
tree | 1f25840f4ec0924993573804a743aef649e79f77 | |
parent | 9f49d9fba35df369482ee39905f90372e86b4439 (diff) |
drm/exynos: Use devm_clk_get in exynos_drm_fimd.c
devm_clk_get is device managed and makes error handling and exit code
simpler.
Also fixes an error related to returning 'ret' without initialising
with error code.
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_fimd.c | 31 |
1 files changed, 7 insertions, 24 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index ad04eddfa405..00bd266a31bb 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c | |||
@@ -846,18 +846,16 @@ static int __devinit fimd_probe(struct platform_device *pdev) | |||
846 | if (!ctx) | 846 | if (!ctx) |
847 | return -ENOMEM; | 847 | return -ENOMEM; |
848 | 848 | ||
849 | ctx->bus_clk = clk_get(dev, "fimd"); | 849 | ctx->bus_clk = devm_clk_get(dev, "fimd"); |
850 | if (IS_ERR(ctx->bus_clk)) { | 850 | if (IS_ERR(ctx->bus_clk)) { |
851 | dev_err(dev, "failed to get bus clock\n"); | 851 | dev_err(dev, "failed to get bus clock\n"); |
852 | ret = PTR_ERR(ctx->bus_clk); | 852 | return PTR_ERR(ctx->bus_clk); |
853 | goto err_clk_get; | ||
854 | } | 853 | } |
855 | 854 | ||
856 | ctx->lcd_clk = clk_get(dev, "sclk_fimd"); | 855 | ctx->lcd_clk = devm_clk_get(dev, "sclk_fimd"); |
857 | if (IS_ERR(ctx->lcd_clk)) { | 856 | if (IS_ERR(ctx->lcd_clk)) { |
858 | dev_err(dev, "failed to get lcd clock\n"); | 857 | dev_err(dev, "failed to get lcd clock\n"); |
859 | ret = PTR_ERR(ctx->lcd_clk); | 858 | return PTR_ERR(ctx->lcd_clk); |
860 | goto err_bus_clk; | ||
861 | } | 859 | } |
862 | 860 | ||
863 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 861 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
@@ -865,14 +863,13 @@ static int __devinit fimd_probe(struct platform_device *pdev) | |||
865 | ctx->regs = devm_request_and_ioremap(&pdev->dev, res); | 863 | ctx->regs = devm_request_and_ioremap(&pdev->dev, res); |
866 | if (!ctx->regs) { | 864 | if (!ctx->regs) { |
867 | dev_err(dev, "failed to map registers\n"); | 865 | dev_err(dev, "failed to map registers\n"); |
868 | ret = -ENXIO; | 866 | return -ENXIO; |
869 | goto err_clk; | ||
870 | } | 867 | } |
871 | 868 | ||
872 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 869 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
873 | if (!res) { | 870 | if (!res) { |
874 | dev_err(dev, "irq request failed.\n"); | 871 | dev_err(dev, "irq request failed.\n"); |
875 | goto err_clk; | 872 | return -ENXIO; |
876 | } | 873 | } |
877 | 874 | ||
878 | ctx->irq = res->start; | 875 | ctx->irq = res->start; |
@@ -881,7 +878,7 @@ static int __devinit fimd_probe(struct platform_device *pdev) | |||
881 | 0, "drm_fimd", ctx); | 878 | 0, "drm_fimd", ctx); |
882 | if (ret) { | 879 | if (ret) { |
883 | dev_err(dev, "irq request failed.\n"); | 880 | dev_err(dev, "irq request failed.\n"); |
884 | goto err_clk; | 881 | return ret; |
885 | } | 882 | } |
886 | 883 | ||
887 | ctx->vidcon0 = pdata->vidcon0; | 884 | ctx->vidcon0 = pdata->vidcon0; |
@@ -915,17 +912,6 @@ static int __devinit fimd_probe(struct platform_device *pdev) | |||
915 | exynos_drm_subdrv_register(subdrv); | 912 | exynos_drm_subdrv_register(subdrv); |
916 | 913 | ||
917 | return 0; | 914 | return 0; |
918 | |||
919 | err_clk: | ||
920 | clk_disable(ctx->lcd_clk); | ||
921 | clk_put(ctx->lcd_clk); | ||
922 | |||
923 | err_bus_clk: | ||
924 | clk_disable(ctx->bus_clk); | ||
925 | clk_put(ctx->bus_clk); | ||
926 | |||
927 | err_clk_get: | ||
928 | return ret; | ||
929 | } | 915 | } |
930 | 916 | ||
931 | static int __devexit fimd_remove(struct platform_device *pdev) | 917 | static int __devexit fimd_remove(struct platform_device *pdev) |
@@ -949,9 +935,6 @@ static int __devexit fimd_remove(struct platform_device *pdev) | |||
949 | out: | 935 | out: |
950 | pm_runtime_disable(dev); | 936 | pm_runtime_disable(dev); |
951 | 937 | ||
952 | clk_put(ctx->lcd_clk); | ||
953 | clk_put(ctx->bus_clk); | ||
954 | |||
955 | return 0; | 938 | return 0; |
956 | } | 939 | } |
957 | 940 | ||