Use devm_ioremap_resource() in order to make the code simpler,
and move 'struct resource *res' from 'struct vt8500_rtc' to
vt8500_rtc_probe() because the 'res' variable is used only in
vt8500_rtc_probe().

Signed-off-by: Jingoo Han <jg1....@samsung.com>
---
 drivers/rtc/rtc-vt8500.c |   28 +++++-----------------------
 1 file changed, 5 insertions(+), 23 deletions(-)

diff --git a/drivers/rtc/rtc-vt8500.c b/drivers/rtc/rtc-vt8500.c
index df2ef3e..051da96 100644
--- a/drivers/rtc/rtc-vt8500.c
+++ b/drivers/rtc/rtc-vt8500.c
@@ -79,7 +79,6 @@
 
 struct vt8500_rtc {
        void __iomem            *regbase;
-       struct resource         *res;
        int                     irq_alarm;
        struct rtc_device       *rtc;
        spinlock_t              lock;           /* Protects this structure */
@@ -209,6 +208,7 @@ static const struct rtc_class_ops vt8500_rtc_ops = {
 static int vt8500_rtc_probe(struct platform_device *pdev)
 {
        struct vt8500_rtc *vt8500_rtc;
+       struct resource *res;
        int ret;
 
        vt8500_rtc = devm_kzalloc(&pdev->dev,
@@ -219,34 +219,16 @@ static int vt8500_rtc_probe(struct platform_device *pdev)
        spin_lock_init(&vt8500_rtc->lock);
        platform_set_drvdata(pdev, vt8500_rtc);
 
-       vt8500_rtc->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!vt8500_rtc->res) {
-               dev_err(&pdev->dev, "No I/O memory resource defined\n");
-               return -ENXIO;
-       }
-
        vt8500_rtc->irq_alarm = platform_get_irq(pdev, 0);
        if (vt8500_rtc->irq_alarm < 0) {
                dev_err(&pdev->dev, "No alarm IRQ resource defined\n");
                return vt8500_rtc->irq_alarm;
        }
 
-       vt8500_rtc->res = devm_request_mem_region(&pdev->dev,
-                                       vt8500_rtc->res->start,
-                                       resource_size(vt8500_rtc->res),
-                                       "vt8500-rtc");
-       if (vt8500_rtc->res == NULL) {
-               dev_err(&pdev->dev, "failed to request I/O memory\n");
-               return -EBUSY;
-       }
-
-       vt8500_rtc->regbase = devm_ioremap(&pdev->dev, vt8500_rtc->res->start,
-                                     resource_size(vt8500_rtc->res));
-       if (!vt8500_rtc->regbase) {
-               dev_err(&pdev->dev, "Unable to map RTC I/O memory\n");
-               ret = -EBUSY;
-               goto err_return;
-       }
+       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       vt8500_rtc->regbase = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(vt8500_rtc->regbase))
+               return PTR_ERR(vt8500_rtc->regbase);
 
        /* Enable RTC and set it to 24-hour mode */
        writel(VT8500_RTC_CR_ENABLE,
-- 
1.7.10.4


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
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