On Thu Mar 13 12:20:40 2025 +0000, Ricardo Ribalda wrote:
> 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 <diand...@chromium.org>
> Reviewed-by: Douglas Anderson <diand...@chromium.org>
> Signed-off-by: Ricardo Ribalda <riba...@chromium.org>
> Message-ID: <20250313-uvc-eprobedefer-v3-2-a1d312708...@chromium.org>
> Reviewed-by: Hans de Goede <hdego...@redhat.com>
> Signed-off-by: Hans de Goede <hdego...@redhat.com>
> Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/usb/uvc/uvc_driver.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

---

diff --git a/drivers/media/usb/uvc/uvc_driver.c 
b/drivers/media/usb/uvc/uvc_driver.c
index 25e9aea81196..da24a655ab68 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -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,

Reply via email to