]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: uvcvideo: Use dev_err_probe for devm_gpiod_get_optional
authorRicardo Ribalda <ribalda@chromium.org>
Thu, 13 Mar 2025 12:20:40 +0000 (12:20 +0000)
committerHans Verkuil <hverkuil@xs4all.nl>
Fri, 9 May 2025 13:29:13 +0000 (15:29 +0200)
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: Doug Anderson <dianders@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Message-ID: <20250313-uvc-eprobedefer-v3-2-a1d312708eef@chromium.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/usb/uvc/uvc_driver.c

index 25e9aea81196e0eddba6de74951a46a97ae0bdb8..da24a655ab68cc0957762f2b67387677c22224d1 100644 (file)
@@ -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,