Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi...
[cascardo/linux.git] / drivers / rtc / rtc-davinci.c
index 24677ef..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,14 +480,12 @@ 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);
-       if (!davinci_rtc) {
-               dev_dbg(dev, "could not allocate memory for private data\n");
+       if (!davinci_rtc)
                return -ENOMEM;
-       }
 
        davinci_rtc->irq = platform_get_irq(pdev, 0);
        if (davinci_rtc->irq < 0) {
@@ -498,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);