drm/msm: Use of_reserved_mem_region_to_resource() for "memory-region"
Subsystems (4)
PATCH 1/1 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) <[email protected]>
--- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 17 +++++------------ drivers/gpu/drm/msm/msm_drv.c | 15 +++++---------- 2 files changed, 10 insertions(+), 22 deletions(-)
drivers/gpu/drm/msm/adreno/adreno_gpu.c +5 -12
@@ -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;/*
drivers/gpu/drm/msm/msm_drv.c +5 -10
@@ -8,7 +8,7 @@#include <linux/dma-mapping.h> #include <linux/fault-inject.h> #include <linux/debugfs.h> -#include <linux/of_address.h> +#include <linux/of_reserved_mem.h> #include <linux/uaccess.h> #include <drm/clients/drm_client_setup.h>
@@ -126,8 +126,8 @@ bool msm_use_mmu(struct drm_device *dev)static int msm_init_vram (struct drm_device *dev) {struct msm_drm_private *priv = dev->dev_private; -struct device_node *node;unsigned long size =0 ; +struct resource r;int ret =0 ;/* In the device-tree world, we could have a 'memory-region'
@@ -147,14 +147,9 @@ static int msm_init_vram(struct drm_device *dev)* load and do initial modeset) */ - node =of_parse_phandle (dev->dev->of_node,"memory-region" ,0 ); -if (node) { -struct resource r; - ret =of_address_to_resource (node,0 , &r); -of_node_put (node); -if (ret) -return ret; - size = r.end - r.start +1 ; + ret =of_reserved_mem_region_to_resource (dev->dev->of_node,0 , &r); +if (!ret) { + size =resource_size (&r);DRM_INFO ("using VRAM carveout: %lx@%pa\n" , size, &r.start);/* if we have no IOMMU, then we need to use carveout allocator.
Signature · 1 line
2.47.2
Quoted 12 lines · Rob Herring (Arm)
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 ifof_address_to_resource()failed which seems like an oversight.Signed-off-by Rob Herring (Arm) <[email protected]>--- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 17 +++++------------ drivers/gpu/drm/msm/msm_drv.c | 15 +++++---------- 2 files changed, 10 insertions(+), 22 deletions(-)
Reviewed-by Dmitry Baryshkov <[email protected]>
Signature · 2 lines
With best wishes Dmitry