drm/panel: sitronix-st7789v: improve error handling
Improve error handling in the probe routine, so that probe defer errors are captured in /sys/kernel/debug/devices_deferred Reviewed-by: Michael Riesch <michael.riesch@wolfvision.net> Signed-off-by: Sebastian Reichel <sre@kernel.org> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patchwork.freedesktop.org/patch/msgid/20230714013756.1546769-8-sre@kernel.org
This commit is contained in:
committed by
Neil Armstrong
parent
fbad26dcb6
commit
bc2aa99b23
@@ -348,32 +348,33 @@ static const struct drm_panel_funcs st7789v_drm_funcs = {
|
||||
|
||||
static int st7789v_probe(struct spi_device *spi)
|
||||
{
|
||||
struct device *dev = &spi->dev;
|
||||
struct st7789v *ctx;
|
||||
int ret;
|
||||
|
||||
ctx = devm_kzalloc(&spi->dev, sizeof(*ctx), GFP_KERNEL);
|
||||
ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
|
||||
if (!ctx)
|
||||
return -ENOMEM;
|
||||
|
||||
spi_set_drvdata(spi, ctx);
|
||||
ctx->spi = spi;
|
||||
|
||||
drm_panel_init(&ctx->panel, &spi->dev, &st7789v_drm_funcs,
|
||||
drm_panel_init(&ctx->panel, dev, &st7789v_drm_funcs,
|
||||
DRM_MODE_CONNECTOR_DPI);
|
||||
|
||||
ctx->power = devm_regulator_get(&spi->dev, "power");
|
||||
if (IS_ERR(ctx->power))
|
||||
return PTR_ERR(ctx->power);
|
||||
ctx->power = devm_regulator_get(dev, "power");
|
||||
ret = PTR_ERR_OR_ZERO(ctx->power);
|
||||
if (ret)
|
||||
return dev_err_probe(dev, ret, "Failed to get regulator\n");
|
||||
|
||||
ctx->reset = devm_gpiod_get_optional(&spi->dev, "reset", GPIOD_OUT_LOW);
|
||||
if (IS_ERR(ctx->reset)) {
|
||||
dev_err(&spi->dev, "Couldn't get our reset line\n");
|
||||
return PTR_ERR(ctx->reset);
|
||||
}
|
||||
ctx->reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
|
||||
ret = PTR_ERR_OR_ZERO(ctx->reset);
|
||||
if (ret)
|
||||
return dev_err_probe(dev, ret, "Failed to get reset line\n");
|
||||
|
||||
ret = drm_panel_of_backlight(&ctx->panel);
|
||||
if (ret)
|
||||
return ret;
|
||||
return dev_err_probe(dev, ret, "Failed to get backlight\n");
|
||||
|
||||
drm_panel_add(&ctx->panel);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user