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

drm/rockchip: vop2: Consistently use dev_err_probe()

Replace drm_err() calls in vop2_bind() and vop2_create_crtcs() with
dev_err_probe(), to simplify error handling and improve consistency.

Additionally, ensure the already existing dev_err_probe() invocations
pass drm->dev instead of dev as their first argument, so that we get the
actual reason in case of -EPROBE_DEFER errors:

platform display-subsystem: deferred probe pending: (reason unknown)
vs.
platform display-subsystem: deferred probe pending: rockchip-drm: <actual reason>

While at it, add the missing '\n' to some of the message strings.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20250223-vop2-hdmi1-disp-modes-v2-2-f4cec5e06fbe@collabora.com

authored by

Cristian Ciocaltea and committed by
Heiko Stuebner
b06d1ef3 f8dd7fc9

+37 -46
+37 -46
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
··· 3273 3273 3274 3274 snprintf(dclk_name, sizeof(dclk_name), "dclk_vp%d", vp->id); 3275 3275 vp->dclk = devm_clk_get(vop2->dev, dclk_name); 3276 - if (IS_ERR(vp->dclk)) { 3277 - drm_err(vop2->drm, "failed to get %s\n", dclk_name); 3278 - return PTR_ERR(vp->dclk); 3279 - } 3276 + if (IS_ERR(vp->dclk)) 3277 + return dev_err_probe(drm->dev, PTR_ERR(vp->dclk), 3278 + "failed to get %s\n", dclk_name); 3280 3279 3281 3280 np = of_graph_get_remote_node(dev->of_node, i, -1); 3282 3281 if (!np) { ··· 3285 3286 of_node_put(np); 3286 3287 3287 3288 port = of_graph_get_port_by_id(dev->of_node, i); 3288 - if (!port) { 3289 - drm_err(vop2->drm, "no port node found for video_port%d\n", i); 3290 - return -ENOENT; 3291 - } 3292 - 3289 + if (!port) 3290 + return dev_err_probe(drm->dev, -ENOENT, 3291 + "no port node found for video_port%d\n", i); 3293 3292 vp->crtc.port = port; 3294 3293 nvps++; 3295 3294 } ··· 3327 3330 possible_crtcs = (1 << nvps) - 1; 3328 3331 3329 3332 ret = vop2_plane_init(vop2, win, possible_crtcs); 3330 - if (ret) { 3331 - drm_err(vop2->drm, "failed to init plane %s: %d\n", 3332 - win->data->name, ret); 3333 - return ret; 3334 - } 3333 + if (ret) 3334 + return dev_err_probe(drm->dev, ret, "failed to init plane %s\n", 3335 + win->data->name); 3335 3336 } 3336 3337 3337 3338 for (i = 0; i < vop2_data->nr_vps; i++) { ··· 3343 3348 ret = drm_crtc_init_with_planes(drm, &vp->crtc, plane, NULL, 3344 3349 &vop2_crtc_funcs, 3345 3350 "video_port%d", vp->id); 3346 - if (ret) { 3347 - drm_err(vop2->drm, "crtc init for video_port%d failed\n", i); 3348 - return ret; 3349 - } 3351 + if (ret) 3352 + return dev_err_probe(drm->dev, ret, 3353 + "crtc init for video_port%d failed\n", i); 3350 3354 3351 3355 drm_crtc_helper_add(&vp->crtc, &vop2_crtc_helper_funcs); 3352 3356 if (vop2->lut_regs) { ··· 3672 3678 dev_set_drvdata(dev, vop2); 3673 3679 3674 3680 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "vop"); 3675 - if (!res) { 3676 - drm_err(vop2->drm, "failed to get vop2 register byname\n"); 3677 - return -EINVAL; 3678 - } 3681 + if (!res) 3682 + return dev_err_probe(drm->dev, -EINVAL, 3683 + "failed to get vop2 register byname\n"); 3679 3684 3680 3685 vop2->res = res; 3681 3686 vop2->regs = devm_ioremap_resource(dev, res); ··· 3699 3706 if (vop2_data->feature & VOP2_FEATURE_HAS_SYS_GRF) { 3700 3707 vop2->sys_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,grf"); 3701 3708 if (IS_ERR(vop2->sys_grf)) 3702 - return dev_err_probe(dev, PTR_ERR(vop2->sys_grf), "cannot get sys_grf"); 3709 + return dev_err_probe(drm->dev, PTR_ERR(vop2->sys_grf), 3710 + "cannot get sys_grf\n"); 3703 3711 } 3704 3712 3705 3713 if (vop2_data->feature & VOP2_FEATURE_HAS_VOP_GRF) { 3706 3714 vop2->vop_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,vop-grf"); 3707 3715 if (IS_ERR(vop2->vop_grf)) 3708 - return dev_err_probe(dev, PTR_ERR(vop2->vop_grf), "cannot get vop_grf"); 3716 + return dev_err_probe(drm->dev, PTR_ERR(vop2->vop_grf), 3717 + "cannot get vop_grf\n"); 3709 3718 } 3710 3719 3711 3720 if (vop2_data->feature & VOP2_FEATURE_HAS_VO1_GRF) { 3712 3721 vop2->vo1_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,vo1-grf"); 3713 3722 if (IS_ERR(vop2->vo1_grf)) 3714 - return dev_err_probe(dev, PTR_ERR(vop2->vo1_grf), "cannot get vo1_grf"); 3723 + return dev_err_probe(drm->dev, PTR_ERR(vop2->vo1_grf), 3724 + "cannot get vo1_grf\n"); 3715 3725 } 3716 3726 3717 3727 if (vop2_data->feature & VOP2_FEATURE_HAS_SYS_PMU) { 3718 3728 vop2->sys_pmu = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,pmu"); 3719 3729 if (IS_ERR(vop2->sys_pmu)) 3720 - return dev_err_probe(dev, PTR_ERR(vop2->sys_pmu), "cannot get sys_pmu"); 3730 + return dev_err_probe(drm->dev, PTR_ERR(vop2->sys_pmu), 3731 + "cannot get sys_pmu\n"); 3721 3732 } 3722 3733 3723 3734 vop2->hclk = devm_clk_get(vop2->dev, "hclk"); 3724 - if (IS_ERR(vop2->hclk)) { 3725 - drm_err(vop2->drm, "failed to get hclk source\n"); 3726 - return PTR_ERR(vop2->hclk); 3727 - } 3735 + if (IS_ERR(vop2->hclk)) 3736 + return dev_err_probe(drm->dev, PTR_ERR(vop2->hclk), 3737 + "failed to get hclk source\n"); 3728 3738 3729 3739 vop2->aclk = devm_clk_get(vop2->dev, "aclk"); 3730 - if (IS_ERR(vop2->aclk)) { 3731 - drm_err(vop2->drm, "failed to get aclk source\n"); 3732 - return PTR_ERR(vop2->aclk); 3733 - } 3740 + if (IS_ERR(vop2->aclk)) 3741 + return dev_err_probe(drm->dev, PTR_ERR(vop2->aclk), 3742 + "failed to get aclk source\n"); 3734 3743 3735 3744 vop2->pclk = devm_clk_get_optional(vop2->dev, "pclk_vop"); 3736 - if (IS_ERR(vop2->pclk)) { 3737 - drm_err(vop2->drm, "failed to get pclk source\n"); 3738 - return PTR_ERR(vop2->pclk); 3739 - } 3745 + if (IS_ERR(vop2->pclk)) 3746 + return dev_err_probe(drm->dev, PTR_ERR(vop2->pclk), 3747 + "failed to get pclk source\n"); 3740 3748 3741 3749 vop2->pll_hdmiphy0 = devm_clk_get_optional(vop2->dev, "pll_hdmiphy0"); 3742 - if (IS_ERR(vop2->pll_hdmiphy0)) { 3743 - drm_err(vop2->drm, "failed to get pll_hdmiphy0\n"); 3744 - return PTR_ERR(vop2->pll_hdmiphy0); 3745 - } 3750 + if (IS_ERR(vop2->pll_hdmiphy0)) 3751 + return dev_err_probe(drm->dev, PTR_ERR(vop2->pll_hdmiphy0), 3752 + "failed to get pll_hdmiphy0\n"); 3746 3753 3747 3754 vop2->pll_hdmiphy1 = devm_clk_get_optional(vop2->dev, "pll_hdmiphy1"); 3748 3755 if (IS_ERR(vop2->pll_hdmiphy1)) ··· 3750 3757 "failed to get pll_hdmiphy1\n"); 3751 3758 3752 3759 vop2->irq = platform_get_irq(pdev, 0); 3753 - if (vop2->irq < 0) { 3754 - drm_err(vop2->drm, "cannot find irq for vop2\n"); 3755 - return vop2->irq; 3756 - } 3760 + if (vop2->irq < 0) 3761 + return dev_err_probe(drm->dev, vop2->irq, "cannot find irq for vop2\n"); 3757 3762 3758 3763 mutex_init(&vop2->vop2_lock); 3759 3764