rtc: rtc-davinci: use devm_ioremap_resource()
authorJingoo Han <jg1.han@samsung.com>
Thu, 3 Apr 2014 21:49:48 +0000 (14:49 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 3 Apr 2014 23:21:18 +0000 (16:21 -0700)
Use devm_ioremap_resource() in order to make the code simpler, and
remove redundant return value check of platform_get_resource() because
the value is checked by devm_ioremap_resource().

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Cc: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-davinci.c

index 1f3495e..c0a3b59 100644 (file)
@@ -119,8 +119,6 @@ static DEFINE_SPINLOCK(davinci_rtc_lock);
 struct davinci_rtc {
        struct rtc_device               *rtc;
        void __iomem                    *base;
-       resource_size_t                 pbase;
-       size_t                          base_size;
        int                             irq;
 };
 
@@ -482,7 +480,7 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
        struct davinci_rtc *davinci_rtc;
-       struct resource *res, *mem;
+       struct resource *res;
        int ret = 0;
 
        davinci_rtc = devm_kzalloc(&pdev->dev, sizeof(struct davinci_rtc), GFP_KERNEL);
@@ -496,28 +494,9 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
        }
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!res) {
-               dev_err(dev, "no mem resource\n");
-               return -EINVAL;
-       }
-
-       davinci_rtc->pbase = res->start;
-       davinci_rtc->base_size = resource_size(res);
-
-       mem = devm_request_mem_region(dev, davinci_rtc->pbase,
-                               davinci_rtc->base_size, pdev->name);
-       if (!mem) {
-               dev_err(dev, "RTC registers at %08x are not free\n",
-                       davinci_rtc->pbase);
-               return -EBUSY;
-       }
-
-       davinci_rtc->base = devm_ioremap(dev, davinci_rtc->pbase,
-                                       davinci_rtc->base_size);
-       if (!davinci_rtc->base) {
-               dev_err(dev, "unable to ioremap MEM resource\n");
-               return -ENOMEM;
-       }
+       davinci_rtc->base = devm_ioremap_resource(dev, res);
+       if (IS_ERR(davinci_rtc->base))
+               return PTR_ERR(davinci_rtc->base);
 
        platform_set_drvdata(pdev, davinci_rtc);