diff options
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_fimd.c')
| -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 | ||
