The driver's memory regions are currently just ioremap()ed, but not reserved through a request. That's not a bug, but having the request is a little more robust. Implement the region-request through the corresponding managed devres-function. Signed-off-by: Kiarash Hajian <kiarash8112hajian@xxxxxxxxx> --- drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 5 +++++ drivers/gpu/drm/msm/msm_io_utils.c | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c index 8bea8ef26f77..17a5ef461406 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c @@ -1503,6 +1503,11 @@ static void __iomem *a6xx_gmu_get_mmio(struct platform_device *pdev, return ERR_PTR(-EINVAL); } + if (!devm_request_mem_region(&pdev->dev, res->start, resource_size(res), name)) { + DRM_DEV_ERROR(&pdev->dev, "Unable to reserve the %s registers\n", name); + return ERR_PTR(-EBUSY); + } + ret = ioremap(res->start, resource_size(res)); if (!ret) { DRM_DEV_ERROR(&pdev->dev, "Unable to map the %s registers\n", name); diff --git a/drivers/gpu/drm/msm/msm_io_utils.c b/drivers/gpu/drm/msm/msm_io_utils.c index afedd61c3e28..e236bdda348e 100644 --- a/drivers/gpu/drm/msm/msm_io_utils.c +++ b/drivers/gpu/drm/msm/msm_io_utils.c @@ -59,6 +59,10 @@ void __iomem *msm_ioremap_mdss(struct platform_device *mdss_pdev, res = platform_get_resource_byname(mdss_pdev, IORESOURCE_MEM, name); if (!res) return ERR_PTR(-EINVAL); + + if (!devm_request_mem_region(&pdev->dev, res->start, resource_size(res), name)) { + return ERR_PTR(-EBUSY); + } return devm_ioremap_resource(&pdev->dev, res); } @@ -83,6 +87,12 @@ static void __iomem *_msm_ioremap(struct platform_device *pdev, const char *name size = resource_size(res); + if (!devm_request_mem_region(&pdev->dev, res->start, size, name)) { + if (!quiet) + DRM_DEV_ERROR(&pdev->dev, "failed to reserve memory resource: %s\n", name); + return ERR_PTR(-EBUSY); + } + ptr = devm_ioremap(&pdev->dev, res->start, size); if (!ptr) { if (!quiet) -- 2.43.0