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 <[email protected]>
---
 drivers/rtc/rtc-davinci.c |   29 ++++-------------------------
 1 file changed, 4 insertions(+), 25 deletions(-)

diff --git a/drivers/rtc/rtc-davinci.c b/drivers/rtc/rtc-davinci.c
index 24677ef8..d3e70f3 100644
--- a/drivers/rtc/rtc-davinci.c
+++ b/drivers/rtc/rtc-davinci.c
@@ -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);
@@ -498,28 +496,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);
 
-- 
1.7.10.4


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to