]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/msm: Use of_reserved_mem_region_to_resource() for "memory-region"
authorRob Herring (Arm) <robh@kernel.org>
Thu, 3 Jul 2025 18:34:41 +0000 (13:34 -0500)
committerDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Thu, 28 Aug 2025 22:51:45 +0000 (01:51 +0300)
Use the newly added of_reserved_mem_region_to_resource() function to
handle "memory-region" properties.

The original code did not set 'zap_available' to false if
of_address_to_resource() failed which seems like an oversight.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/662275/
Link: https://lore.kernel.org/r/20250703183442.2073717-1-robh@kernel.org
[DB: dropped part related to VRAM, no longer applicable]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
drivers/gpu/drm/msm/adreno/adreno_gpu.c

index f1230465bf0d0840274a6eb03a10c4df3a7a68d3..8c6336b007dc0798ed514705d78d1078401f1d84 100644 (file)
@@ -10,7 +10,7 @@
 #include <linux/interconnect.h>
 #include <linux/firmware/qcom/qcom_scm.h>
 #include <linux/kernel.h>
-#include <linux/of_address.h>
+#include <linux/of_reserved_mem.h>
 #include <linux/pm_opp.h>
 #include <linux/slab.h>
 #include <linux/soc/qcom/mdt_loader.h>
@@ -33,7 +33,7 @@ static int zap_shader_load_mdt(struct msm_gpu *gpu, const char *fwname,
        struct device *dev = &gpu->pdev->dev;
        const struct firmware *fw;
        const char *signed_fwname = NULL;
-       struct device_node *np, *mem_np;
+       struct device_node *np;
        struct resource r;
        phys_addr_t mem_phys;
        ssize_t mem_size;
@@ -51,18 +51,11 @@ static int zap_shader_load_mdt(struct msm_gpu *gpu, const char *fwname,
                return -ENODEV;
        }
 
-       mem_np = of_parse_phandle(np, "memory-region", 0);
-       of_node_put(np);
-       if (!mem_np) {
+       ret = of_reserved_mem_region_to_resource(np, 0, &r);
+       if (ret) {
                zap_available = false;
-               return -EINVAL;
-       }
-
-       ret = of_address_to_resource(mem_np, 0, &r);
-       of_node_put(mem_np);
-       if (ret)
                return ret;
-
+       }
        mem_phys = r.start;
 
        /*