From 7cceedfb743757fa4ede6874a07c6ca4d41c6c38 Mon Sep 17 00:00:00 2001 From: Guochun Huang Date: Fri, 11 Mar 2022 15:39:28 +0800 Subject: [PATCH] drm/panel: panel-simple: add error message to debug. in order to directly determine the specific error location of panel_simple_probe from error message as follow: BUG: [ 2.055658] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops) [ 2.055791] rockchip-vop ff8f0000.vop: missing rockchip,grf property [ 2.056148] rockchip-drm display-subsystem: bound ff8f0000.vop (ops vop_component_ops) [ 2.056505] [drm:rockchip_dp_bind] *ERROR* failed to find panel [ 2.056732] rockchip-drm display-subsystem: failed to bind ff970000.edp (ops rockchip_dp_component_ops): -517 [ 2.057374] rockchip-drm display-subsystem: master bind failed: -517 Signed-off-by: Guochun Huang Change-Id: I2ceeaa9fac3834ad0c4b2bc0a4d8ab79050dfd8b --- drivers/gpu/drm/panel/panel-simple.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index d8acc4d660fd..68553c28c802 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -799,8 +799,11 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) } panel->supply = devm_regulator_get(dev, "power"); - if (IS_ERR(panel->supply)) - return PTR_ERR(panel->supply); + if (IS_ERR(panel->supply)) { + err = PTR_ERR(panel->supply); + dev_err(dev, "failed to get power regulator: %d\n", err); + return err; + } panel->enable_gpio = devm_gpiod_get_optional(dev, "enable", GPIOD_ASIS); if (IS_ERR(panel->enable_gpio)) { @@ -831,8 +834,11 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) panel->ddc = of_find_i2c_adapter_by_node(ddc); of_node_put(ddc); - if (!panel->ddc) - return -EPROBE_DEFER; + if (!panel->ddc) { + err = -EPROBE_DEFER; + dev_err(dev, "failed to find ddc-i2c-bus: %d\n", err); + return err; + } } if (desc == &panel_dpi) { @@ -904,8 +910,10 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) drm_panel_init(&panel->base, dev, &panel_simple_funcs, connector_type); err = drm_panel_of_backlight(&panel->base); - if (err) + if (err) { + dev_err(dev, "failed to find backlight: %d\n", err); goto free_ddc; + } drm_panel_add(&panel->base);