Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/vc4: move to devm_platform_ioremap_resource() usage

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)

v4: fix compiler error

Cc: Maxime Ripard <mripard@kernel.org>
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250225-memory-drm-misc-next-v1-11-9d0e8761107a@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>

authored by

Anusha Srivatsa and committed by
Maxime Ripard
b93f07cf 41cb3e21

+18 -35
+18 -35
drivers/gpu/drm/vc4/vc4_hdmi.c
··· 2926 2926 struct resource *res; 2927 2927 int ret; 2928 2928 2929 - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi"); 2930 - if (!res) 2931 - return -ENODEV; 2932 - 2933 - vc4_hdmi->hdmicore_regs = devm_ioremap(dev, res->start, 2934 - resource_size(res)); 2929 + vc4_hdmi->hdmicore_regs = devm_platform_ioremap_resource_byname(pdev, 2930 + "hdmi"); 2935 2931 if (!vc4_hdmi->hdmicore_regs) 2936 2932 return -ENOMEM; 2937 2933 2934 + /* This is shared between both HDMI controllers. Cannot 2935 + * claim for both instances. Lets not convert to using 2936 + * devm_platform_ioremap_resource_byname() like 2937 + * the rest 2938 + */ 2938 2939 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hd"); 2939 2940 if (!res) 2940 2941 return -ENODEV; ··· 2944 2943 if (!vc4_hdmi->hd_regs) 2945 2944 return -ENOMEM; 2946 2945 2947 - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "cec"); 2948 - if (!res) 2949 - return -ENODEV; 2950 - 2951 - vc4_hdmi->cec_regs = devm_ioremap(dev, res->start, resource_size(res)); 2946 + vc4_hdmi->cec_regs = devm_platform_ioremap_resource_byname(pdev, 2947 + "cec"); 2952 2948 if (!vc4_hdmi->cec_regs) 2953 2949 return -ENOMEM; 2954 2950 2955 - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "csc"); 2956 - if (!res) 2957 - return -ENODEV; 2958 - 2959 - vc4_hdmi->csc_regs = devm_ioremap(dev, res->start, resource_size(res)); 2951 + vc4_hdmi->csc_regs = devm_platform_ioremap_resource_byname(pdev, 2952 + "csc"); 2960 2953 if (!vc4_hdmi->csc_regs) 2961 2954 return -ENOMEM; 2962 2955 2963 - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dvp"); 2964 - if (!res) 2965 - return -ENODEV; 2966 - 2967 - vc4_hdmi->dvp_regs = devm_ioremap(dev, res->start, resource_size(res)); 2956 + vc4_hdmi->dvp_regs = devm_platform_ioremap_resource_byname(pdev, 2957 + "dvp"); 2968 2958 if (!vc4_hdmi->dvp_regs) 2969 2959 return -ENOMEM; 2970 2960 2971 - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy"); 2972 - if (!res) 2973 - return -ENODEV; 2961 + vc4_hdmi->phy_regs = devm_platform_ioremap_resource_byname(pdev, 2962 + "phy"); 2974 2963 2975 - vc4_hdmi->phy_regs = devm_ioremap(dev, res->start, resource_size(res)); 2976 2964 if (!vc4_hdmi->phy_regs) 2977 2965 return -ENOMEM; 2978 2966 2979 - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "packet"); 2980 - if (!res) 2981 - return -ENODEV; 2982 - 2983 - vc4_hdmi->ram_regs = devm_ioremap(dev, res->start, resource_size(res)); 2967 + vc4_hdmi->ram_regs = devm_platform_ioremap_resource_byname(pdev, 2968 + "packet"); 2984 2969 if (!vc4_hdmi->ram_regs) 2985 2970 return -ENOMEM; 2986 2971 2987 - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rm"); 2988 - if (!res) 2989 - return -ENODEV; 2990 - 2991 - vc4_hdmi->rm_regs = devm_ioremap(dev, res->start, resource_size(res)); 2972 + vc4_hdmi->rm_regs = devm_platform_ioremap_resource_byname(pdev, "rm"); 2992 2973 if (!vc4_hdmi->rm_regs) 2993 2974 return -ENOMEM; 2994 2975