hwrng: omap - use devm_request_and_ioremap
authorJulia Lawall <Julia.Lawall@lip6.fr>
Thu, 19 Apr 2012 17:19:08 +0000 (19:19 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 27 Apr 2012 01:28:29 +0000 (11:28 +1000)
Using devm_request_and_ioremap is more concise.

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/char/hw_random/omap-rng.c

index b757fac..448ddb5 100644 (file)
@@ -113,22 +113,12 @@ static int __devinit omap_rng_probe(struct platform_device *pdev)
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 
-       if (!res) {
-               ret = -ENOENT;
-               goto err_region;
-       }
-
-       if (!request_mem_region(res->start, resource_size(res), pdev->name)) {
-               ret = -EBUSY;
-               goto err_region;
-       }
-
-       dev_set_drvdata(&pdev->dev, res);
-       rng_base = ioremap(res->start, resource_size(res));
+       rng_base = devm_request_and_ioremap(&pdev->dev, res);
        if (!rng_base) {
                ret = -ENOMEM;
                goto err_ioremap;
        }
+       dev_set_drvdata(&pdev->dev, res);
 
        ret = hwrng_register(&omap_rng_ops);
        if (ret)
@@ -143,11 +133,8 @@ static int __devinit omap_rng_probe(struct platform_device *pdev)
        return 0;
 
 err_register:
-       iounmap(rng_base);
        rng_base = NULL;
 err_ioremap:
-       release_mem_region(res->start, resource_size(res));
-err_region:
        if (cpu_is_omap24xx()) {
                clk_disable(rng_ick);
                clk_put(rng_ick);
@@ -157,20 +144,15 @@ err_region:
 
 static int __exit omap_rng_remove(struct platform_device *pdev)
 {
-       struct resource *res = dev_get_drvdata(&pdev->dev);
-
        hwrng_unregister(&omap_rng_ops);
 
        omap_rng_write_reg(RNG_MASK_REG, 0x0);
 
-       iounmap(rng_base);
-
        if (cpu_is_omap24xx()) {
                clk_disable(rng_ick);
                clk_put(rng_ick);
        }
 
-       release_mem_region(res->start, resource_size(res));
        rng_base = NULL;
 
        return 0;