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

drm/msm: Use of_reserved_mem_region_to_resource() for "memory-region"

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>

authored by

Rob Herring (Arm) and committed by
Dmitry Baryshkov
fb53e8f0 f3b649d7

+5 -12
+5 -12
drivers/gpu/drm/msm/adreno/adreno_gpu.c
··· 10 10 #include <linux/interconnect.h> 11 11 #include <linux/firmware/qcom/qcom_scm.h> 12 12 #include <linux/kernel.h> 13 - #include <linux/of_address.h> 13 + #include <linux/of_reserved_mem.h> 14 14 #include <linux/pm_opp.h> 15 15 #include <linux/slab.h> 16 16 #include <linux/soc/qcom/mdt_loader.h> ··· 33 33 struct device *dev = &gpu->pdev->dev; 34 34 const struct firmware *fw; 35 35 const char *signed_fwname = NULL; 36 - struct device_node *np, *mem_np; 36 + struct device_node *np; 37 37 struct resource r; 38 38 phys_addr_t mem_phys; 39 39 ssize_t mem_size; ··· 51 51 return -ENODEV; 52 52 } 53 53 54 - mem_np = of_parse_phandle(np, "memory-region", 0); 55 - of_node_put(np); 56 - if (!mem_np) { 54 + ret = of_reserved_mem_region_to_resource(np, 0, &r); 55 + if (ret) { 57 56 zap_available = false; 58 - return -EINVAL; 59 - } 60 - 61 - ret = of_address_to_resource(mem_np, 0, &r); 62 - of_node_put(mem_np); 63 - if (ret) 64 57 return ret; 65 - 58 + } 66 59 mem_phys = r.start; 67 60 68 61 /*