From patchwork Wed Oct 28 12:02:18 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 28657 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 5FA9DC324C for ; Wed, 28 Oct 2026 12:02:32 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 676916907F; Wed, 28 Oct 2026 13:02:30 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gj1plPgG"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D01E368FC6 for ; Wed, 28 Oct 2026 13:02:26 +0100 (CET) Received: from ping.linuxembedded.co.uk (cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id E364AC6A; Wed, 28 Oct 2026 13:00:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1793188814; bh=ZDRD6gDy9g1k1LvrbBguB7c34tLPP3D1b5wXY5z8+MQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=gj1plPgGdqJ3BhrRb2nfvz1m+5kqxWFwB4oVZkkqRQKgzK+oBwu2Gn2N47yIjKApq 5G/Dl354O4qhqgq3rZMEmna/swJLQ+3fx0aSzN8fXydypJWDqkSlh07RL3xzbIGOce v/7zQos7hNmeu6zl35PhMpENkn/NJ22pgfTKqVCQ= From: Kieran Bingham Date: Wed, 28 Oct 2026 12:02:18 +0000 Subject: [PATCH v2 1/2] libcamera: camera_manager: Non-fatal duplicate id detection MIME-Version: 1.0 Message-Id: <20261028-kbingham-duplicate-id-v2-1-e82448998d88@ideasonboard.com> References: <20261028-kbingham-duplicate-id-v2-0-e82448998d88@ideasonboard.com> In-Reply-To: <20261028-kbingham-duplicate-id-v2-0-e82448998d88@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Kieran Bingham , =?utf-8?q?Barnab?= =?utf-8?b?w6FzIFDFkWN6ZQ==?= X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1793188945; l=1420; i=kieran.bingham@ideasonboard.com; s=20260207; h=from:subject:message-id; bh=ZDRD6gDy9g1k1LvrbBguB7c34tLPP3D1b5wXY5z8+MQ=; b=tC+m9GJsoevkWCByBzLrVAAC8GmUv2pr6wRbIm4oMgt/zXUJ0K+ZUTmXKsvMOkfC3clLwrnyy L6OTrIkJj1qDj1CAgaQW7lZDtglTr3NOqdd/s6Ebft3hv0eoHwhpcsh X-Developer-Key: i=kieran.bingham@ideasonboard.com; a=ed25519; pk=FVXKN7YuwHc6UtbRUeTMAmranfsQomA+vnilfglWdaY= X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" There are some hardware configurations which currently generate a duplicate camera ID when the camera is on a shared but multiplexed bus. At present this is somewhat difficult to adapt to ensure a consistent and unique id. While this case is undesired, it presently causes libcamera to hit a Fatal asssertion on real world hardware which then causes pipewire to close. This behaviour is even less desirable, and we can easily continue to operate libcamera without a potentially duplicate camera. Reduce the Fatal log level to an Error allowing the code to continue without constructing this duplicate camera. Reviewed-by: Barnabás Pőcze Signed-off-by: Kieran Bingham --- src/libcamera/camera_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp index 0dd4e0c590a1..9c9073053710 100644 --- a/src/libcamera/camera_manager.cpp +++ b/src/libcamera/camera_manager.cpp @@ -210,7 +210,7 @@ void CameraManager::Private::addCamera(std::shared_ptr camera) for (const std::shared_ptr &c : cameras_) { if (c->id() == camera->id()) { - LOG(Camera, Fatal) + LOG(Camera, Error) << "Trying to register a camera with a duplicated ID '" << camera->id() << "'"; return;