{"id":18722,"url":"https://patchwork.libcamera.org/api/1.1/patches/18722/?format=json","web_url":"https://patchwork.libcamera.org/patch/18722/","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-v2-1-82a11e74aafd@skidata.com>","date":"2023-06-09T06:14:32","name":"[libcamera-devel,v2] 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/18722/mbox/","series":[{"id":3916,"url":"https://patchwork.libcamera.org/api/1.1/series/3916/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3916","date":"2023-06-09T06:14:32","name":"[libcamera-devel,v2] libcamera: device_enumerator: ensure deviceNode is not empty","version":2,"mbox":"https://patchwork.libcamera.org/series/3916/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/18722/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/18722/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 26418C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  9 Jun 2023 06:14:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 95A9161E5F;\n\tFri,  9 Jun 2023 08:14:37 +0200 (CEST)","from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com\n\t[IPv6:2a00:1450:4864:20::62d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2303161E4D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  9 Jun 2023 08:14:36 +0200 (CEST)","by mail-ej1-x62d.google.com with SMTP id\n\ta640c23a62f3a-976a0a1a92bso268141966b.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 08 Jun 2023 23:14:36 -0700 (PDT)","from [127.0.1.1] ([91.230.2.244]) by smtp.gmail.com with ESMTPSA id\n\tlw4-20020a170906bcc400b009787209732esm846859ejb.143.2023.06.08.23.14.34\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 08 Jun 2023 23:14:35 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1686291277;\n\tbh=fXnW/UZ/WqTC/piqp+7ntO2brcr8oqSOZ9Rh9PWHCOY=;\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=XZ6KiI8tdbgoH0nbiAMBUbyEcjj+vmzD8bZNoS/Q6zjnUacUt/Nq3+VO1y1PobWNY\n\tu+kZyaUZiPtVut68LttQv3ahlnMi2XCk1FqRJPMNzm/D3XhqTqoXwC/ZgfPE8l9NHF\n\tdKoKaDTvqhDk+I2n992by/JyKpiB13vSlvxeiVaeMUDKZwwKmgBbZuFeiBDoR83G9U\n\tvfuD8iHJkuiq93tGBB25g7HBU8nWaUDjakny3DrGWi9keBHHgojtg42zl02RS6Q80O\n\teHgU9m4b905ALGx7D4pvw6L3SNQFAbNVgZH2prliDekIrEduDUxJUdwyjSi7XcEM0w\n\twCi3cl+4CIFyg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20221208; t=1686291275; x=1688883275;\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=GW+fexN6ShDuPRhEn5uLZ+0kwHwGcDQvLrzO5O/QGr4=;\n\tb=ojOxsPj0UdxHFycPIVzK269KKQZC3RZihS0MefSryzaPgtUKA6DbW1DN92opDVE1wx\n\t6cnQ+GcWqYfiBv7Nh7IzHq6qRPtgxAGLf1PA7akw4zYS8q+y6dXxLljOyiQ9/DjtCtp/\n\t9juEneeD5R4bQkBdO6sYTyfgYKMckemUnfGW5jxehXvW3sIPgZEHYidAnE7oY2x9K26S\n\t4Yi8mFwbvrBN0sDtOr8eE69Ztp6ClW5+3paW+Z66uK+hN4Iz4gEhVP+bbbNrGcT65rwR\n\tJhJcJ7iI5Yfc7x2lxx2VgeNi2IcsmLnkSYZMKDLh6PiYOTNhXRI/qexqF/RNpiYaMQb0\n\t2M3A=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"ojOxsPj0\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20221208; t=1686291275; x=1688883275;\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=GW+fexN6ShDuPRhEn5uLZ+0kwHwGcDQvLrzO5O/QGr4=;\n\tb=QYCWyKmi8T4CbSh0LZ6C2pwG54IA1OMSeuQlWS+snJyyyn92Cq5Jkf8wnc87hGly0V\n\tluEe9YCz9Wc0wUAUyYwm2qTl5N2rlgEyHAbK69Gh629evIDBmA0p4wG10R8sOxflEith\n\t4+9VSFpGS0YbBYL+Bo9oUW2pQF/1+XGX3zUBhf3Y+ui40S2tVvpKRnXJ2a8F/jiX9Yc3\n\ttelKPHEoEPLVqufJmjZvbku5Hbw2V5qFBdHUeMo/SgNlO5M1UaKIo+cCkIxkb1nUeviS\n\tb2YZu2XxqqknU6Pw9SBeD87Io2IfUVfje2lrPGVpqktnvWP/ldnAyqnpI3pPZ//WBnO8\n\tb2SA==","X-Gm-Message-State":"AC+VfDy2AiRWRQ92psXaQs7wv3lC/RsOABML5jmcdriOUNYe2+NZZ68y\n\tzESFtWhnrQT3hsjQr3vqaAN25Z/pflQ=","X-Google-Smtp-Source":"ACHHUZ7x8roY2aHjKID2Q527bjoT0APt5Q0OWEwm/nnCxgg5eImfXLsZB+vDeXdEstkhtOrO6GoH7g==","X-Received":"by 2002:a17:907:2ce5:b0:978:af9d:4d4c with SMTP id\n\thz5-20020a1709072ce500b00978af9d4d4cmr932268ejc.75.1686291275479; \n\tThu, 08 Jun 2023 23:14:35 -0700 (PDT)","Date":"Fri, 09 Jun 2023 08:14:32 +0200","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20230609-empty-devnode-v2-1-82a11e74aafd@skidata.com>","X-B4-Tracking":"v=1; b=H4sIAEjDgmQC/3WNQQqDMBBFryKz7pSYFINd9R7FRcxMaygmkoRQE\n\te/e6L7L9z+Pt0Hi6DjBvdkgcnHJBV9BXhqwk/FvRkeVQQqpRCd65HnJKxIXH4hRdUSyu2lLLKA\n\t6o0mMYzTeToc1m5Q5HscS+eW+Z+g5VJ5cyiGuZ7e0x/ovUVpskaVV2upRk+0f6ePIZHO1YYZh3\n\t/cf5wikgsUAAAA=","To":"libcamera-devel@lists.libcamera.org","X-Mailer":"b4 0.12.2","Subject":"[libcamera-devel] [PATCH v2] 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\n[37:49:05.172720625] [3603] DEBUG DeviceEnumerator device_enumerator.cpp:256 Added device /dev/media1: rkisp1\n[37:49:05.172973875] [3603] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media0 found\n[37:49:05.173012125] [3603] DEBUG DeviceEnumerator device_enumerator.cpp:256 Added device /dev/media0: rkisp1\n[37:49:05.173281625] [3603] DEBUG Camera camera_manager.cpp:152 Found registered pipeline handler 'PipelineHandlerRkISP1'\n[37:49:05.173376875] [3603] DEBUG DeviceEnumerator device_enumerator.cpp:107 Skip rkisp1_isp: no device node\n[37:49:05.173414375] [3603] DEBUG DeviceEnumerator device_enumerator.cpp:316 Successful match for media device \"rkisp1\"\n[37:49:05.173671250] [3603] DEBUG V4L2 v4l2_videodevice.cpp:632 /dev/video1[15:cap]: Opened device platform:rkisp1: rkisp1: rkisp1_stats\n[37:49:05.173775125] [3603] DEBUG V4L2 v4l2_videodevice.cpp:632 /dev/video2[16:out]: Opened device platform:rkisp1: rkisp1: rkisp1_params\n[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---\nHi!\n\nSeems like something went wrong with the format of the log in V1 when\ncopying it.\n---\nChanges in v2:\n- adapt commit message\n- Link to v1: https://lists.libcamera.org/pipermail/libcamera-devel/2023-June/038181.html\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","v2"]}