hwrng: timeriomem - Use devm_platform_get_and_ioremap_resource()
authorYangtao Li <frank.li@vivo.com>
Wed, 5 Jul 2023 11:52:42 +0000 (19:52 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 20 Jul 2023 10:16:25 +0000 (22:16 +1200)
Convert platform_get_resource(), devm_ioremap_resource() to a single
call to devm_platform_get_and_ioremap_resource(), as this is exactly
what this function does.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
Reviewed-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/char/hw_random/timeriomem-rng.c

index 26f322d..3db9d86 100644 (file)
@@ -113,16 +113,6 @@ static int timeriomem_rng_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
-       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!res)
-               return -ENXIO;
-
-       if (res->start % 4 != 0 || resource_size(res) < 4) {
-               dev_err(&pdev->dev,
-                       "address must be at least four bytes wide and 32-bit aligned\n");
-               return -EINVAL;
-       }
-
        /* Allocate memory for the device structure (and zero it) */
        priv = devm_kzalloc(&pdev->dev,
                        sizeof(struct timeriomem_rng_private), GFP_KERNEL);
@@ -131,6 +121,16 @@ static int timeriomem_rng_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, priv);
 
+       priv->io_base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
+       if (IS_ERR(priv->io_base))
+               return PTR_ERR(priv->io_base);
+
+       if (res->start % 4 != 0 || resource_size(res) < 4) {
+               dev_err(&pdev->dev,
+                       "address must be at least four bytes wide and 32-bit aligned\n");
+               return -EINVAL;
+       }
+
        if (pdev->dev.of_node) {
                int i;
 
@@ -158,11 +158,6 @@ static int timeriomem_rng_probe(struct platform_device *pdev)
        priv->rng_ops.name = dev_name(&pdev->dev);
        priv->rng_ops.read = timeriomem_rng_read;
 
-       priv->io_base = devm_ioremap_resource(&pdev->dev, res);
-       if (IS_ERR(priv->io_base)) {
-               return PTR_ERR(priv->io_base);
-       }
-
        /* Assume random data is already available. */
        priv->present = 1;
        complete(&priv->completion);