]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[media] media: davinci: vpif: Convert to devm_* api
authorLad, Prabhakar <prabhakar.csengg@gmail.com>
Mon, 17 Jun 2013 14:20:42 +0000 (11:20 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 21 Jun 2013 14:25:09 +0000 (11:25 -0300)
Use devm_ioremap_resource instead of reques_mem_region()/ioremap().
This ensures more consistent error values and simplifies error paths.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/platform/davinci/vpif.c

index 761c8259a8afd61d4553d9c077e82ec6fe53c964..164c1b7b4e6f8c2f1e3d46a60b9fc2302a54f85e 100644 (file)
@@ -37,8 +37,6 @@ MODULE_LICENSE("GPL");
 #define VPIF_CH2_MAX_MODES     (15)
 #define VPIF_CH3_MAX_MODES     (02)
 
-static resource_size_t res_len;
-static struct resource *res;
 spinlock_t vpif_lock;
 
 void __iomem *vpif_base;
@@ -421,23 +419,12 @@ EXPORT_SYMBOL(vpif_channel_getfid);
 
 static int vpif_probe(struct platform_device *pdev)
 {
-       int status = 0;
+       static struct resource  *res;
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!res)
-               return -ENOENT;
-
-       res_len = resource_size(res);
-
-       res = request_mem_region(res->start, res_len, res->name);
-       if (!res)
-               return -EBUSY;
-
-       vpif_base = ioremap(res->start, res_len);
-       if (!vpif_base) {
-               status = -EBUSY;
-               goto fail;
-       }
+       vpif_base = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(vpif_base))
+               return PTR_ERR(vpif_base);
 
        pm_runtime_enable(&pdev->dev);
        pm_runtime_get(&pdev->dev);
@@ -445,17 +432,11 @@ static int vpif_probe(struct platform_device *pdev)
        spin_lock_init(&vpif_lock);
        dev_info(&pdev->dev, "vpif probe success\n");
        return 0;
-
-fail:
-       release_mem_region(res->start, res_len);
-       return status;
 }
 
 static int vpif_remove(struct platform_device *pdev)
 {
        pm_runtime_disable(&pdev->dev);
-       iounmap(vpif_base);
-       release_mem_region(res->start, res_len);
        return 0;
 }