diff options
author | Sachin Kamat <sachin.kamat@linaro.org> | 2012-12-24 03:33:49 -0500 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2013-01-04 01:54:35 -0500 |
commit | cfdee8f421759c4cf173291977b71757ff4eae27 (patch) | |
tree | bafc937a8b8945b3c6ac424c3223745b6975b810 /drivers | |
parent | af8cd946136a1c1e9614ac9f9fc78e58654582ac (diff) |
drm/exynos: Remove explicit freeing using devm_* APIs in exynos_drm_gsc.c
devm_* APIs are device managed and get freed automatically when the
device detaches. Thus explicit freeing is not needed. This saves some
code.
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_gsc.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c b/drivers/gpu/drm/exynos/exynos_drm_gsc.c index 509f2f83e5a5..9c6de7a5944b 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c +++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c | |||
@@ -1687,8 +1687,7 @@ static int __devinit gsc_probe(struct platform_device *pdev) | |||
1687 | ctx->gsc_clk = clk_get(dev, "gscl"); | 1687 | ctx->gsc_clk = clk_get(dev, "gscl"); |
1688 | if (IS_ERR(ctx->gsc_clk)) { | 1688 | if (IS_ERR(ctx->gsc_clk)) { |
1689 | dev_err(dev, "failed to get gsc clock.\n"); | 1689 | dev_err(dev, "failed to get gsc clock.\n"); |
1690 | ret = PTR_ERR(ctx->gsc_clk); | 1690 | return PTR_ERR(ctx->gsc_clk); |
1691 | goto err_ctx; | ||
1692 | } | 1691 | } |
1693 | 1692 | ||
1694 | /* resource memory */ | 1693 | /* resource memory */ |
@@ -1711,7 +1710,7 @@ static int __devinit gsc_probe(struct platform_device *pdev) | |||
1711 | if (!res) { | 1710 | if (!res) { |
1712 | dev_err(dev, "failed to request irq resource.\n"); | 1711 | dev_err(dev, "failed to request irq resource.\n"); |
1713 | ret = -ENOENT; | 1712 | ret = -ENOENT; |
1714 | goto err_get_regs; | 1713 | goto err_clk; |
1715 | } | 1714 | } |
1716 | 1715 | ||
1717 | ctx->irq = res->start; | 1716 | ctx->irq = res->start; |
@@ -1719,7 +1718,7 @@ static int __devinit gsc_probe(struct platform_device *pdev) | |||
1719 | IRQF_ONESHOT, "drm_gsc", ctx); | 1718 | IRQF_ONESHOT, "drm_gsc", ctx); |
1720 | if (ret < 0) { | 1719 | if (ret < 0) { |
1721 | dev_err(dev, "failed to request irq.\n"); | 1720 | dev_err(dev, "failed to request irq.\n"); |
1722 | goto err_get_regs; | 1721 | goto err_clk; |
1723 | } | 1722 | } |
1724 | 1723 | ||
1725 | /* context initailization */ | 1724 | /* context initailization */ |
@@ -1763,12 +1762,8 @@ err_ippdrv_register: | |||
1763 | pm_runtime_disable(dev); | 1762 | pm_runtime_disable(dev); |
1764 | err_get_irq: | 1763 | err_get_irq: |
1765 | free_irq(ctx->irq, ctx); | 1764 | free_irq(ctx->irq, ctx); |
1766 | err_get_regs: | ||
1767 | devm_iounmap(dev, ctx->regs); | ||
1768 | err_clk: | 1765 | err_clk: |
1769 | clk_put(ctx->gsc_clk); | 1766 | clk_put(ctx->gsc_clk); |
1770 | err_ctx: | ||
1771 | devm_kfree(dev, ctx); | ||
1772 | return ret; | 1767 | return ret; |
1773 | } | 1768 | } |
1774 | 1769 | ||
@@ -1786,12 +1781,8 @@ static int __devexit gsc_remove(struct platform_device *pdev) | |||
1786 | pm_runtime_disable(dev); | 1781 | pm_runtime_disable(dev); |
1787 | 1782 | ||
1788 | free_irq(ctx->irq, ctx); | 1783 | free_irq(ctx->irq, ctx); |
1789 | devm_iounmap(dev, ctx->regs); | ||
1790 | |||
1791 | clk_put(ctx->gsc_clk); | 1784 | clk_put(ctx->gsc_clk); |
1792 | 1785 | ||
1793 | devm_kfree(dev, ctx); | ||
1794 | |||
1795 | return 0; | 1786 | return 0; |
1796 | } | 1787 | } |
1797 | 1788 | ||