On Fri May 23 14:28:41 2025 +0000, Ricardo Ribalda wrote:
> Now we are replacing most of the error codes with -ENODEV.
> Instead, Populate the error code from the functions called by
> uvc_probe().
> 
> Take this opportunity to replace a generic error code from
> uvc_scan_device() into something more meaningful.
> 
> Suggested-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> Signed-off-by: Ricardo Ribalda <riba...@chromium.org>
> Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> Reviewed-by: Hans de Goede <ha...@kernel.org>
> Link: 
> https://lore.kernel.org/r/20250523-uvc-followup-v2-1-487541656...@chromium.org
> Signed-off-by: Hans de Goede <ha...@kernel.org>
> Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/usb/uvc/uvc_driver.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

---

diff --git a/drivers/media/usb/uvc/uvc_driver.c 
b/drivers/media/usb/uvc/uvc_driver.c
index da24a655ab68..04552da11435 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -1866,7 +1866,7 @@ static int uvc_scan_device(struct uvc_device *dev)
 
        if (list_empty(&dev->chains)) {
                dev_info(&dev->udev->dev, "No valid video chain found.\n");
-               return -1;
+               return -ENODEV;
        }
 
        /* Add GPIO entity to the first chain. */
@@ -2239,7 +2239,6 @@ static int uvc_probe(struct usb_interface *intf,
        /* Parse the Video Class control descriptor. */
        ret = uvc_parse_control(dev);
        if (ret < 0) {
-               ret = -ENODEV;
                uvc_dbg(dev, PROBE, "Unable to parse UVC descriptors\n");
                goto error;
        }
@@ -2275,22 +2274,19 @@ static int uvc_probe(struct usb_interface *intf,
                goto error;
 
        /* Scan the device for video chains. */
-       if (uvc_scan_device(dev) < 0) {
-               ret = -ENODEV;
+       ret = uvc_scan_device(dev);
+       if (ret < 0)
                goto error;
-       }
 
        /* Initialize controls. */
-       if (uvc_ctrl_init_device(dev) < 0) {
-               ret = -ENODEV;
+       ret = uvc_ctrl_init_device(dev);
+       if (ret < 0)
                goto error;
-       }
 
        /* Register video device nodes. */
-       if (uvc_register_chains(dev) < 0) {
-               ret = -ENODEV;
+       ret = uvc_register_chains(dev);
+       if (ret < 0)
                goto error;
-       }
 
 #ifdef CONFIG_MEDIA_CONTROLLER
        /* Register the media device node */

Reply via email to