Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit a0d60537 authored by Maxime Ripard's avatar Maxime Ripard
Browse files

drm/panel: lvds: Handle the optional regulator case properly



The devm_regulator_get_optional function, unlike it was assumed in the
commit a1c55bcc ("drm/panel: lvds: Add support for the power-supply
property"), is actually returning an error pointer with -ENODEV instead of
NULL when there's no regulator to find.

Make sure we handle that case properly.

Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Fixes: a1c55bcc ("drm/panel: lvds: Add support for the power-supply property")
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180110155941.16109-1-maxime.ripard@free-electrons.com
parent 86a3ae58
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -215,10 +215,17 @@ static int panel_lvds_probe(struct platform_device *pdev)
	lvds->supply = devm_regulator_get_optional(lvds->dev, "power");
	if (IS_ERR(lvds->supply)) {
		ret = PTR_ERR(lvds->supply);
		dev_err(lvds->dev, "failed to request regulator: %d\n", ret);

		if (ret != -ENODEV) {
			if (ret != -EPROBE_DEFER)
				dev_err(lvds->dev, "failed to request regulator: %d\n",
					ret);
			return ret;
		}

		lvds->supply = NULL;
	}

	/* Get GPIOs and backlight controller. */
	lvds->enable_gpio = devm_gpiod_get_optional(lvds->dev, "enable",
						     GPIOD_OUT_LOW);