Commit 3328eb4d authored by Ricardo Ribalda's avatar Ricardo Ribalda Committed by Hans Verkuil
Browse files

media: uvcvideo: Use dev_err_probe for devm_gpiod_get_optional



Use the dev_err_probe() helper for devm_gpiod_get_optional(), like we do
with gpiod_to_irq()

That eventually calls device_set_deferred_probe_reason() which can be
helpful for tracking down problems.

Now that all the error paths in uvc_gpio_parse have dev_err_probe, we
can remove the error message in uvc_probe.

Suggested-by: default avatarDoug Anderson <dianders@chromium.org>
Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
Signed-off-by: default avatarRicardo Ribalda <ribalda@chromium.org>
Message-ID: <20250313-uvc-eprobedefer-v3-2-a1d312708eef@chromium.org>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
parent 387e8939
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -1299,8 +1299,13 @@ static int uvc_gpio_parse(struct uvc_device *dev)

	gpio_privacy = devm_gpiod_get_optional(&dev->intf->dev, "privacy",
					       GPIOD_IN);
	if (IS_ERR_OR_NULL(gpio_privacy))
		return PTR_ERR_OR_ZERO(gpio_privacy);
	if (!gpio_privacy)
		return 0;

	if (IS_ERR(gpio_privacy))
		return dev_err_probe(&dev->intf->dev,
				     PTR_ERR(gpio_privacy),
				     "Can't get privacy GPIO\n");

	irq = gpiod_to_irq(gpio_privacy);
	if (irq < 0)
@@ -2241,10 +2246,8 @@ static int uvc_probe(struct usb_interface *intf,

	/* Parse the associated GPIOs. */
	ret = uvc_gpio_parse(dev);
	if (ret < 0) {
		uvc_dbg(dev, PROBE, "Unable to parse UVC GPIOs\n");
	if (ret < 0)
		goto error;
	}

	dev_info(&dev->udev->dev, "Found UVC %u.%02x device %s (%04x:%04x)\n",
		 dev->uvc_version >> 8, dev->uvc_version & 0xff,