Replace platform_get_resource_byname + devm_ioremap_resource
with just devm_platform_ioremap_resource()

Used Coccinelle to do this change. SmPl patch:
//rule s/(devm_)platform_get_resource_byname +
//(devm_)ioremap/devm_platform_ioremap_resource.
@rule_3@
identifier res;
expression ioremap;
identifier pdev;
constant mem;
expression name;
@@
-struct resource *res;
<+...
-res = platform_get_resource_byname(pdev,mem,name);
<...
-if (!res) {
-...
-}
...>
-ioremap = devm_ioremap(...);
+ioremap = devm_platform_ioremap_resource_byname(pdev,name);
...+>

v2: Change the SmPl patch to work on multiple occurences of
the pattern. This also fixes the compilation error.

v3: Do not convert "hd" resource to follow the rest of the
refactor. (Maxime)

Cc: Maxime Ripard <mrip...@kernel.org>
Cc: Dave Stevenson <dave.steven...@raspberrypi.com>
Cc: MaĆ­ra Canal <mca...@igalia.com>
Signed-off-by: Anusha Srivatsa <asriv...@redhat.com>
---
 drivers/gpu/drm/vc4/vc4_hdmi.c | 54 ++++++++++++++----------------------------
 1 file changed, 18 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 
47d9ada98430634cfd8c1e21c2a4d00d501bab7e..aacc7a3aa007a66c22f68158377f025adcbb4df1
 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -2951,18 +2951,18 @@ static int vc5_hdmi_init_resources(struct drm_device 
*drm,
 {
        struct platform_device *pdev = vc4_hdmi->pdev;
        struct device *dev = &pdev->dev;
-       struct resource *res;
        int ret;
 
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi");
-       if (!res)
-               return -ENODEV;
-
-       vc4_hdmi->hdmicore_regs = devm_ioremap(dev, res->start,
-                                              resource_size(res));
+       vc4_hdmi->hdmicore_regs = devm_platform_ioremap_resource_byname(pdev,
+                                                                       "hdmi");
        if (!vc4_hdmi->hdmicore_regs)
                return -ENOMEM;
 
+       /* This is shared between both HDMI controllers. Cannot
+        * claim for both instances. Lets not convert to using
+        * devm_platform_ioremap_resource_byname() like
+        * the rest
+        */
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hd");
        if (!res)
                return -ENODEV;
@@ -2971,51 +2971,33 @@ static int vc5_hdmi_init_resources(struct drm_device 
*drm,
        if (!vc4_hdmi->hd_regs)
                return -ENOMEM;
 
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "cec");
-       if (!res)
-               return -ENODEV;
-
-       vc4_hdmi->cec_regs = devm_ioremap(dev, res->start, resource_size(res));
+       vc4_hdmi->cec_regs = devm_platform_ioremap_resource_byname(pdev,
+                                                                  "cec");
        if (!vc4_hdmi->cec_regs)
                return -ENOMEM;
 
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "csc");
-       if (!res)
-               return -ENODEV;
-
-       vc4_hdmi->csc_regs = devm_ioremap(dev, res->start, resource_size(res));
+       vc4_hdmi->csc_regs = devm_platform_ioremap_resource_byname(pdev,
+                                                                  "csc");
        if (!vc4_hdmi->csc_regs)
                return -ENOMEM;
 
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dvp");
-       if (!res)
-               return -ENODEV;
-
-       vc4_hdmi->dvp_regs = devm_ioremap(dev, res->start, resource_size(res));
+       vc4_hdmi->dvp_regs = devm_platform_ioremap_resource_byname(pdev,
+                                                                  "dvp");
        if (!vc4_hdmi->dvp_regs)
                return -ENOMEM;
 
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy");
-       if (!res)
-               return -ENODEV;
+       vc4_hdmi->phy_regs = devm_platform_ioremap_resource_byname(pdev,
+                                                                  "phy");
 
-       vc4_hdmi->phy_regs = devm_ioremap(dev, res->start, resource_size(res));
        if (!vc4_hdmi->phy_regs)
                return -ENOMEM;
 
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "packet");
-       if (!res)
-               return -ENODEV;
-
-       vc4_hdmi->ram_regs = devm_ioremap(dev, res->start, resource_size(res));
+       vc4_hdmi->ram_regs = devm_platform_ioremap_resource_byname(pdev,
+                                                                  "packet");
        if (!vc4_hdmi->ram_regs)
                return -ENOMEM;
 
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rm");
-       if (!res)
-               return -ENODEV;
-
-       vc4_hdmi->rm_regs = devm_ioremap(dev, res->start, resource_size(res));
+       vc4_hdmi->rm_regs = devm_platform_ioremap_resource_byname(pdev, "rm");
        if (!vc4_hdmi->rm_regs)
                return -ENOMEM;
 

-- 
2.47.0

Reply via email to