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 */