{"id":18721,"url":"https://patchwork.libcamera.org/api/1.1/patches/18721/?format=json","web_url":"https://patchwork.libcamera.org/patch/18721/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20230609-empty-devnode-v1-1-e2c37c7b7dc9@skidata.com>","date":"2023-06-09T05:58:16","name":"[libcamera-devel] libcamera: device_enumerator: ensure deviceNode is not empty","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"6b95a506d0b2c472c1dff0e3a062ff7a8664d484","submitter":{"id":163,"url":"https://patchwork.libcamera.org/api/1.1/people/163/?format=json","name":"Benjamin Bara","email":"bbara93@gmail.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/18721/mbox/","series":[{"id":3915,"url":"https://patchwork.libcamera.org/api/1.1/series/3915/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3915","date":"2023-06-09T05:58:16","name":"[libcamera-devel] libcamera: device_enumerator: ensure deviceNode is not empty","version":1,"mbox":"https://patchwork.libcamera.org/series/3915/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/18721/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/18721/checks/","tags":{},"headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 86A00C3220\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  9 Jun 2023 05:58:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BDD8361E69;\n\tFri,  9 Jun 2023 07:58:21 +0200 (CEST)","from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com\n\t[IPv6:2a00:1450:4864:20::62a])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4057861E4D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  9 Jun 2023 07:58:20 +0200 (CEST)","by mail-ej1-x62a.google.com with SMTP id\n\ta640c23a62f3a-9745baf7c13so213802766b.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 08 Jun 2023 22:58:20 -0700 (PDT)","from [127.0.1.1] ([91.230.2.244]) by smtp.gmail.com with ESMTPSA id\n\ty21-20020a170906471500b00974564fa7easm853681ejq.5.2023.06.08.22.58.18\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 08 Jun 2023 22:58:19 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1686290301;\n\tbh=hUjcz+JotkNmiVSBTn2a6SkiTlUD2e3xCOhKgETAjuI=;\n\th=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:Cc:From;\n\tb=0qNzboQsJIXv0bRwaJaPJJFam5lBtByCpVG7XiX5jAUj3MWzjvhjiSN5MGl0SBNl+\n\tFXl3OKHIDM0+3IE9HKsRLSOcEXVGWWnM30O4vtG9l7iLoG8oXcZ2RRj4g/RD8+Y1/A\n\t+cjVLZFOgU4YTupZLge954K4C7QpvRk5zn/oc/x0cq92Aq1LnC05GW5j20cpZ1R6wV\n\tQs0zDNgXig+53uyupCtwqmYB2sHfvZ0+twEeS4ifOTuZnYv+P9U9ubSrWn9JSgYgO8\n\tJAAA8yhMMG5cnHicfYIiyktao7eDPeT65OvZ8olvZyR0qPg93CuNV2TlRo4xOMCtXy\n\toR49F8MvYs0Cg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20221208; t=1686290299; x=1688882299;\n\th=cc:to:message-id:content-transfer-encoding:mime-version:subject\n\t:date:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=Ezb00DyzjDxbAEuL5Up5vHyUtGg3rVvktPuyFH+G06o=;\n\tb=DZpeIHIk3d6r6j+4Nl+27QA+8JHIFVBlApSoUfPjfIIY2/rMTbImfSdgUi+BOjHzlL\n\ttH6+NiA0zpe8W2ww/kj7PIy++KGiZdNYLC2v9QHiIldfYotfHZKwpNyjXuNp1j7uGAmR\n\tkoU74UH2zZgBZ6QfP2N3OriVvs/rzZnpV6wFauFlKODTKV/kEuDGDbghvX+Gz8W7CfA+\n\tPOx5R6a1SRTlaqXTvvxc8tBK0jNVAR0U28T5Xf/qHgWCbHbxve0bzRqfqeMjstyyqZH0\n\tcnLUJVILcjy1Yvb7O1lkLY+/4Sbs4X26DZEFbw00o/UlOydUvZgZTOAnLE6l3AD3SR/Q\n\t83RQ=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"DZpeIHIk\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20221208; t=1686290299; x=1688882299;\n\th=cc:to:message-id:content-transfer-encoding:mime-version:subject\n\t:date:from:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=Ezb00DyzjDxbAEuL5Up5vHyUtGg3rVvktPuyFH+G06o=;\n\tb=Gia6tg9WzAIsLrwu93fWg7GzDfA2odOzQEPi0ecjlKDJIOcLGVlMwYvLYkeLmtJFgR\n\tFEFu7kbkKV0TUxTfLk8cI83JmzcSDy2EpE8J/g6qsos9Me6avHcDg3k/aeykvZmvu120\n\titDSLs/m5aIFFafKe/UhO4Zdmqfqvmv8L0KXWjDhz4LxADekmS40rKF3cgHe58CGnsLE\n\tjOuUZZo4tk5Dz76WHLpj6Uxm3yLwYCy5bFLCJpkogaYhR/c2V9/M4QKc4YZ59Yjs5D4o\n\tGcQzDzMPXlLYjZVLn8xC4ha2TEEtkQ2ESPykY4+VsC0NgX6KAIfnJV/FragxBQqijwVN\n\tLh+A==","X-Gm-Message-State":"AC+VfDy52hVavkDjI/Br5izb/+HDDg23cXbc912JS91BIjUrzTK4DOzn\n\t+RHD3bJstmqNJN+OCtd5pjiiW71ZwFY=","X-Google-Smtp-Source":"ACHHUZ5QYK1aHJsRMg3tR6DDHhLglZ5GaXpOUBi9q9qIWJYgiR2ryrzGAz5UHwoNDUQTX7sT2zvOfA==","X-Received":"by 2002:a17:907:84a:b0:96b:4ed5:a1c9 with SMTP id\n\tww10-20020a170907084a00b0096b4ed5a1c9mr683675ejb.51.1686290299277; \n\tThu, 08 Jun 2023 22:58:19 -0700 (PDT)","Date":"Fri, 09 Jun 2023 07:58:16 +0200","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20230609-empty-devnode-v1-1-e2c37c7b7dc9@skidata.com>","X-B4-Tracking":"v=1; b=H4sIAHi/gmQC/x2NwQqDMBAFf0X23IU0Skr7K6WHmH2tORhlV6RF/\n\tHdjj8MwzEYGzTB6NBsp1mx5KhWul4bSEMsHnKUyeedbF9ydMc7LjwVrmQTcBhEfulsSOKpNHw3\n\tcayxpOKsx2gI9xax45+9/9Hzt+wGcqAY1eAAAAA==","To":"libcamera-devel@lists.libcamera.org","X-Mailer":"b4 0.12.2","Subject":"[libcamera-devel] [PATCH] libcamera: device_enumerator: ensure\n\tdeviceNode is not empty","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Benjamin Bara via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Benjamin Bara <bbara93@gmail.com>","Cc":"Benjamin Bara <benjamin.bara@skidata.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"From: Benjamin Bara <benjamin.bara@skidata.com>\n\nWhen activating both ISP nodes on the i.MX8MP, but only connecting one\ncamera sensor, libcamera aborts because it couldn't find the chosen\nentity's device node:\n\n[37:54:40.779902250] [3631] DEBUG DeviceEnumerator device_enumerator.cpp:252 Added device /dev/media1: rkisp1\n[37:54:40.780196750] [3631] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media0 found\n[37:54:40.780237875] [3631] DEBUG DeviceEnumerator device_enumerator.cpp:252 Added device /dev/media0: rkisp1\n[37:54:40.780505125] [3631] DEBUG Camera camera_manager.cpp:152 Found registered pipeline handler 'PipelineHandlerRkISP1'\n[37:54:40.780599875] [3631] DEBUG DeviceEnumerator device_enumerator.cpp:312 Successful match for media device \"rkisp1\"\n[37:54:40.780731375] [3631] ERROR V4L2 v4l2_device.cpp:93 'rkisp1_isp': Failed to open V4L2 device '': No such file or directory\n\nFix this by skipping empty device nodes:\n\n[37:49:05.172672000] [3603] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media1 found                       [37:49:05.172720625] [3603] DEBUG DeviceEnumerator device_enumerator.cpp:256 Added device /dev/media1: rkisp1                                               [37:49:05.172973875] [3603] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media0 found                       [37:49:05.173012125] [3603] DEBUG DeviceEnumerator device_enumerator.cpp:256 Added device /dev/media0: rkisp1                                               [37:49:05.173281625] [3603] DEBUG Camera camera_manager.cpp:152 Found registered pipeline handler 'PipelineHandlerRkISP1'                                   [37:49:05.173376875] [3603] DEBUG DeviceEnumerator device_enumerator.cpp:107 Skip rkisp1_isp: no device node                                                [37:49:05.173414375] [3603] DEBUG DeviceEnumerator device_enum\n erator.cpp:316 Successful match for media device \"rkisp1\"                                     [37:49:05.173671250] [3603] DEBUG V4L2 v4l2_videodevice.cpp:632 /dev/video1[15:cap]: Opened device platform:rkisp1: rkisp1: rkisp1_stats                    [37:49:05.173775125] [3603] DEBUG V4L2 v4l2_videodevice.cpp:632 /dev/video2[16:out]: Opened device platform:rkisp1: rkisp1: rkisp1_params                   [37:49:05.173880500] [3603] DEBUG V4L2 v4l2_videodevice.cpp:632 /dev/video0[18:cap]: Opened device platform:rkisp1: rkisp1: rkisp1\n\nSigned-off-by: Benjamin Bara <benjamin.bara@skidata.com>\n---\n src/libcamera/device_enumerator.cpp | 6 +++++-\n 1 file changed, 5 insertions(+), 1 deletion(-)\n\n\n---\nbase-commit: 0ee9339331c648232e87d2de2ccd5a92cc61cab2\nchange-id: 20230609-empty-devnode-36dd2647cde0\n\nBest regards,","diff":"diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp\nindex f2e055de..f2d943d1 100644\n--- a/src/libcamera/device_enumerator.cpp\n+++ b/src/libcamera/device_enumerator.cpp\n@@ -100,9 +100,13 @@ bool DeviceMatch::match(const MediaDevice *device) const\n \t\tbool found = false;\n \n \t\tfor (const MediaEntity *entity : device->entities()) {\n-\t\t\tif (name == entity->name()) {\n+\t\t\tif (name == entity->name() && !entity->deviceNode().empty()) {\n \t\t\t\tfound = true;\n \t\t\t\tbreak;\n+\t\t\t} else if (name == entity->name()) {\n+\t\t\t\tLOG(DeviceEnumerator, Debug)\n+\t\t\t\t\t<< \"Skip \" << entity->name()\n+\t\t\t\t\t<< \": no device node\";\n \t\t\t}\n \t\t}\n \n","prefixes":["libcamera-devel"]}