From: Mark Yao Date: Tue, 27 Jun 2017 02:52:25 +0000 (+0800) Subject: drm/rockchip: vop: support get register by name X-Git-Tag: release-20171130_firefly~4^2~237 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=01e93d40658f9a7ee99631c87ebd29e02d40592d;hp=db449c6bf5afd7a806afdb84bf8e3721e5be1f3c;p=firefly-linux-kernel-4.4.55.git drm/rockchip: vop: support get register by name When get vop base register byname failed, retry first entry. Change-Id: I60f4ebd901d353966c94734dd796dc702ae06f3f Signed-off-by: Mark Yao --- diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 4ef23ac55eb1..a0333b8e594c 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -2788,17 +2788,21 @@ static int vop_bind(struct device *dev, struct device *master, void *data) if (ret) return ret; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - vop->len = resource_size(res); + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs"); + if (!res) { + dev_warn(vop->dev, "failed to get vop register byname\n"); + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + } vop->regs = devm_ioremap_resource(dev, res); if (IS_ERR(vop->regs)) return PTR_ERR(vop->regs); + vop->len = resource_size(res); vop->regsbak = devm_kzalloc(dev, vop->len, GFP_KERNEL); if (!vop->regsbak) return -ENOMEM; - res = platform_get_resource(pdev, IORESOURCE_MEM, 1); + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gamma_lut"); vop->lut_regs = devm_ioremap_resource(dev, res); if (IS_ERR(vop->lut_regs)) { dev_warn(vop->dev, "failed to get vop lut registers\n");