From nobody Mon Feb 9 00:55:50 2026 Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C304B1FDD for ; Wed, 29 Jan 2025 12:39:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738154392; cv=none; b=fQ4Np8HhY/r1t5G+eKexa3x/aba2o4o6ctiqC8qOb6WWnKzO3uro4JTjtZmNu68qLDYltm34Y6Zki4MvHjEU+1DB/vnnYBAHA/N+IM5GtE0LjYWSRyQniaP5aygX2YBJdi9gwZy2mh797nKz2tdKRjDWpVjStghcOyi/K7MATVU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738154392; c=relaxed/simple; bh=NH8Q4niJs4pSZDYUZgmPJ182AMQXEiqV6qbRV/5nhqk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=TKhw1iJjwP7YNqT6zDjg8Yma05fa3cUaUqRR3Clv8ovNhJN310pDi5IZtFYNx5RMIBAKL1puJJSfrFAwf+0W+Pck9WbJKYn5GtnDBq6czz5WNLoR5yirFDk1fCXMKlkFN509aHlB9WmRUGYauIPn+NqKp6Cy13kgmcJyRpyGgPk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=N9oKnJFz; arc=none smtp.client-ip=209.85.222.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="N9oKnJFz" Received: by mail-qk1-f170.google.com with SMTP id af79cd13be357-7b7041273ddso629635785a.3 for ; Wed, 29 Jan 2025 04:39:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1738154389; x=1738759189; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=KLMpsfmYNeg8S0yCoo/BuyjCEBikFCujpB5IOWC6FmE=; b=N9oKnJFzBxZJY4X9sOjkCfCiBjeLn3/2bvwdvVLIebSmg6iXFGdX5vPIY2oQfv8LRT uZZAHbznBqEVFyOxDa+9hSG8YXhl4SVfKm152ODfursWyrcAgPwEfG6LBLUvqAzgHdC6 3oGeFu6kHUeUWzgQVk06DYSF4bBAAB+sv99kE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738154389; x=1738759189; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=KLMpsfmYNeg8S0yCoo/BuyjCEBikFCujpB5IOWC6FmE=; b=EF/dMPIDKnlF9MzS8Qb2afoBaxn2ALdkIT/Vr/UTW6unCGlPg7UBhVMdZFP9cSZggw 6HCw2n6dNXaqOfYW/0xB4gqNXoboGxzzDV+UT5yN35ibZt8+rvYZhu7SqxUjRiBXs2LN TaLO5Cqc5N9PBJDJ1YdTYq62F6snfB2YQJAIIGW3ZK/v61tLQNj7TCjTgV8JOmkEs9tY rpkZ16TIMDaQd34fuoy1eC/UkhC8f05Aq4d7yG+Q1HZdSk83jGdA3qPeJq9+5qiDwdzZ h3XuAaik+mfOmkYG9m5LTz5L6Ri3vfZUXl40o0RTL8I416hhWF8UDx3omA6brg7JORKW BZ3A== X-Forwarded-Encrypted: i=1; AJvYcCV/EFjrbgZ5lorrzkkMdmmGlUOiotKkdxhhATy35VlSZl3ZPnJq6w8vIicsxr8nlg+UUsi9m7ecnBxdaGQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxBYQSWzjdatzTBvkU4LRIc/YndOrA/dV8RegSdRe3mO2wWDP1+ ShVDUGDhTqajZI7ieNRN51TM0dvObzp+i/B/a4EI+Rc/4SaTHpUX6p9KDX0kaQ== X-Gm-Gg: ASbGnctVhrjJMDOVXRJ+t4DwEinrhF+ddoP+nACmGrjHwOV1391vHjU4ADAmIz6Sxmz Nrvq61hSeoNd4RbaCWsw65kJ7v8Ai3nbRb240Cio4SPUmvQ57TJAPz3tqBtbumjsleGMVMhdzxl CFQETR9FXFx1bjSC5EdFLOFsuYIlLuBu80478BnKw5/y8aFgz6i22tKgp9RR3OIZtnu3sA30pLs OFpkay9syFjFVw3ut+N8sMkdGQU8D6SGPfhkIA/DKaoy9A/Oc3eEEaSkMPynhteMj9rz/bg6DfT s2GxVpnyLuWAc2wWGJ1jemuPR94D4vZshFLaFqOEq6mCvbIOGOoMHK4va1Ds10HawLaJoA4F4mP x X-Google-Smtp-Source: AGHT+IFt0EbHXb6QlqMF4SNnfs9Wv+pT/TKw//M6O86iQrBWZWyL1ejpH5iUC3pvecax/9xQ/QpmNA== X-Received: by 2002:a05:620a:454b:b0:7b6:d1ce:67d6 with SMTP id af79cd13be357-7bffcd736e1mr422788785a.39.1738154389613; Wed, 29 Jan 2025 04:39:49 -0800 (PST) Received: from denia.c.googlers.com (5.236.236.35.bc.googleusercontent.com. [35.236.236.5]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-46e6686311asm61572791cf.15.2025.01.29.04.39.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 04:39:48 -0800 (PST) From: Ricardo Ribalda Date: Wed, 29 Jan 2025 12:39:46 +0000 Subject: [PATCH] media: uvcvideo: Fix deferred probing error Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250129-uvc-eprobedefer-v1-1-643b2603c0d2@chromium.org> X-B4-Tracking: v=1; b=H4sIAJEhmmcC/x3MQQ5AMBBG4avIrDWpUglXEQvT/pgNMg2RiLtrL L/Few8lqCBRXzykuCTJvmVUZUFhnbYFRmI2Oeu8rVxnzisYHLozImaoYQ/mJnJbh0C5OhSz3P9 xGN/3AzsfaHRhAAAA To: Laurent Pinchart , Hans de Goede , Mauro Carvalho Chehab Cc: Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Ricardo Ribalda X-Mailer: b4 0.13.0 uvc_gpio_parse() can return -EPROBE_DEFER when the GPIOs it depends on have not yet been probed. This return code should be propagated to the caller of uvc_probe() to ensure that probing is retried when the required GPIOs become available. Currently, this error code is incorrectly converted to -ENODEV, causing some internal cameras to be ignored. This commit fixes this issue by propagating the -EPROBE_DEFER error. Cc: stable@vger.kernel.org Fixes: 2886477ff987 ("media: uvcvideo: Implement UVC_EXT_GPIO_UNIT") Signed-off-by: Ricardo Ribalda Reviewed-by: Douglas Anderson --- drivers/media/usb/uvc/uvc_driver.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc= _driver.c index a10d4f4d9f95..73a7f23b616c 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c @@ -2253,9 +2253,10 @@ static int uvc_probe(struct usb_interface *intf, } =20 /* Parse the associated GPIOs. */ - if (uvc_gpio_parse(dev) < 0) { + ret =3D uvc_gpio_parse(dev); + if (ret < 0) { uvc_dbg(dev, PROBE, "Unable to parse UVC GPIOs\n"); - goto error; + goto error_retcode; } =20 dev_info(&dev->udev->dev, "Found UVC %u.%02x device %s (%04x:%04x)\n", @@ -2328,9 +2329,11 @@ static int uvc_probe(struct usb_interface *intf, return 0; =20 error: + ret =3D -ENODEV; +error_retcode: uvc_unregister_video(dev); kref_put(&dev->ref, uvc_delete); - return -ENODEV; + return ret; } =20 static void uvc_disconnect(struct usb_interface *intf) --- base-commit: c4b7779abc6633677e6edb79e2809f4f61fde157 change-id: 20250129-uvc-eprobedefer-b5ebb4db63cc Best regards, --=20 Ricardo Ribalda