[{"id":34348,"web_url":"https://patchwork.libcamera.org/comment/34348/","msgid":"<174824992197.40401.9799074877777808299@ping.linuxembedded.co.uk>","date":"2025-05-26T08:58:41","subject":"Re: [PATCH v3 1/1] pipeline: simple: Fix matching with empty media\n\tgraphs","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Paul Elder (2025-05-13 14:37:51)\n> The match() function currently reports that it is not possible to create\n> any cameras if it encounters an empty media graph.\n> \n> Fix this by looping over all media graphs and only returning false when\n> all of them fail to create a camera.\n> \n> It is worth noting that an issue does exist when on a partial match that\n> ends in an invalid match, any media devices that were acquired will stay\n> acquired. This is not a new issue though, as any acquired media devices\n> in general are not released until pipeline handler deconstruction. This\n> requires a rework of how we do matching and pipeline handler\n> construction, so it is captured in a comment.\n> \n> In the meantime, this fix fixes a problem without increasing the net\n> number of problems.\n> \n> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> \n> ---\n> Changes in v3:\n> - removed clearMediaDevices()\n>   - the reason is elaborated on in both the commit message and the todo\n>     comment\n\nI think this is the best we can do until we have a rework of the\nDeviceEnumerator...\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> \n> Changes in v2:\n> - added clearMediaDevices()\n> ---\n>  src/libcamera/pipeline/simple/simple.cpp | 62 +++++++++++++++++-------\n>  1 file changed, 45 insertions(+), 17 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp\n> index efb07051b..4323472e1 100644\n> --- a/src/libcamera/pipeline/simple/simple.cpp\n> +++ b/src/libcamera/pipeline/simple/simple.cpp\n> @@ -427,6 +427,9 @@ private:\n>                 return static_cast<SimpleCameraData *>(camera->_d());\n>         }\n>  \n> +       bool matchDevice(MediaDevice *media, const SimplePipelineInfo &info,\n> +                        DeviceEnumerator *enumerator);\n> +\n>         std::vector<MediaEntity *> locateSensors(MediaDevice *media);\n>         static int resetRoutingTable(V4L2Subdevice *subdev);\n>  \n> @@ -1660,25 +1663,13 @@ int SimplePipelineHandler::resetRoutingTable(V4L2Subdevice *subdev)\n>         return 0;\n>  }\n>  \n> -bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)\n> +bool SimplePipelineHandler::matchDevice(MediaDevice *media,\n> +                                       const SimplePipelineInfo &info,\n> +                                       DeviceEnumerator *enumerator)\n>  {\n> -       const SimplePipelineInfo *info = nullptr;\n>         unsigned int numStreams = 1;\n> -       MediaDevice *media;\n>  \n> -       for (const SimplePipelineInfo &inf : supportedDevices) {\n> -               DeviceMatch dm(inf.driver);\n> -               media = acquireMediaDevice(enumerator, dm);\n> -               if (media) {\n> -                       info = &inf;\n> -                       break;\n> -               }\n> -       }\n> -\n> -       if (!media)\n> -               return false;\n> -\n> -       for (const auto &[name, streams] : info->converters) {\n> +       for (const auto &[name, streams] : info.converters) {\n>                 DeviceMatch converterMatch(name);\n>                 converter_ = acquireMediaDevice(enumerator, converterMatch);\n>                 if (converter_) {\n> @@ -1687,7 +1678,7 @@ bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)\n>                 }\n>         }\n>  \n> -       swIspEnabled_ = info->swIspEnabled;\n> +       swIspEnabled_ = info.swIspEnabled;\n>  \n>         /* Locate the sensors. */\n>         std::vector<MediaEntity *> sensors = locateSensors(media);\n> @@ -1806,6 +1797,43 @@ bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)\n>         return registered;\n>  }\n>  \n> +bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)\n> +{\n> +       MediaDevice *media;\n> +\n> +       for (const SimplePipelineInfo &inf : supportedDevices) {\n> +               DeviceMatch dm(inf.driver);\n> +               while ((media = acquireMediaDevice(enumerator, dm))) {\n> +                       /*\n> +                        * If match succeeds, return true to let match() be\n> +                        * called again on a new instance of the pipeline\n> +                        * handler. Otherwise keep looping until we do\n> +                        * successfully match one (or run out).\n> +                        */\n> +                       if (matchDevice(media, inf, enumerator)) {\n> +                               LOG(SimplePipeline, Debug)\n> +                                       << \"Matched on device: \"\n> +                                       << media->deviceNode();\n> +                               return true;\n> +                       }\n> +\n> +                       /*\n> +                        * \\todo We need to clear the list of media devices\n> +                        * that we've already acquired in the event that we\n> +                        * fail to create a camera. This requires a rework of\n> +                        * DeviceEnumerator, or even how we create pipelines\n> +                        * handlers. This is because at the moment acquired\n> +                        * media devices are only released on pipeline handler\n> +                        * deconstruction, and if we release them any earlier\n> +                        * then DeviceEnumerator::search() will keep returning\n> +                        * the same media devices.\n> +                        */\n> +               }\n> +       }\n> +\n> +       return false;\n> +}\n> +\n>  V4L2VideoDevice *SimplePipelineHandler::video(const MediaEntity *entity)\n>  {\n>         auto iter = entities_.find(entity);\n> -- \n> 2.39.2\n>","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 64489C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 26 May 2025 08:58:48 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D7A7568D9E;\n\tMon, 26 May 2025 10:58:46 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 19BAF633C5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 26 May 2025 10:58:45 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1C8F37E6;\n\tMon, 26 May 2025 10:58:20 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"OkYYdswt\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1748249900;\n\tbh=EJ6cH+vdJ8gJcdsZt6woH0fNl/hRjft5PHRwo4ld4uI=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=OkYYdswtNfN4pv6G40adpWxiTOcj3w4dyzP2hfmzxVToLuH6nPmwF+XF+hvZAZnnf\n\tHf4YSE1ZOyX7LNZvAxHuM41vmhZfKJ0BzHcSVr0lY6y7KLIImoO21BfRy+2IjhRI/Q\n\tFlQ1ZGC4ZsLmZc1x5Zl2q7lXBzH0OFotIHrYd7no=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250513133751.1381724-2-paul.elder@ideasonboard.com>","References":"<20250513133751.1381724-1-paul.elder@ideasonboard.com>\n\t<20250513133751.1381724-2-paul.elder@ideasonboard.com>","Subject":"Re: [PATCH v3 1/1] pipeline: simple: Fix matching with empty media\n\tgraphs","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlaurent.pinchart@ideasonboard.com","To":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Mon, 26 May 2025 09:58:41 +0100","Message-ID":"<174824992197.40401.9799074877777808299@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":34436,"web_url":"https://patchwork.libcamera.org/comment/34436/","msgid":"<DB9PR04MB928439873DE1649093592931876AA@DB9PR04MB9284.eurprd04.prod.outlook.com>","date":"2025-06-10T08:10:41","subject":"RE: [EXT] [PATCH v3 1/1] pipeline: simple: Fix matching with empty\n\tmedia graphs","submitter":{"id":186,"url":"https://patchwork.libcamera.org/api/people/186/","name":"Fang Hui","email":"hui.fang@nxp.com"},"content":"Tested-by:\n\nApplied https://patchwork.libcamera.org/patch/23363/, tested ok on evk_8mq plugged 1 ov5640.\n\nevk_8mq:/data/cam-test # ls /dev/media*\n/dev/media0  /dev/media1\nevk_8mq:/data/cam-test #\nevk_8mq:/data/cam-test # cam -l\nAvailable cameras:\n1: 'ov5640' (/base/soc@0/bus@30800000/i2c@30a20000/ov5640_mipi2@3c)\nevk_8mq:/data/cam-test #\nevk_8mq:/data/cam-test # logcat\n06-07 16:36:42.696  1637  1637 I LIBCAMERA: [0:01:43.676715045] [1637]  WARN IPAManager ipa_manager.cpp:148 No IPA found in '/vendor/lib64/ipa'\n06-07 16:36:42.697  1637  1637 I LIBCAMERA: [0:01:43.677268965] [1637]  INFO Camera camera_manager.cpp:326 libcamera v0.5.0+349-b920c09f-dirty\n06-07 16:36:42.700  1637  1638 I LIBCAMERA: [0:01:43.680738405] [1638]  INFO SimplePipeline simple.cpp:1686 No sensor found for /dev/media0\n06-07 16:36:42.702  1637  1638 I LIBCAMERA: [0:01:43.682392365] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:354 'ov5640 0-003c': Recommended V4L2 control 0x009a0922 not supported\n06-07 16:36:42.702  1637  1638 I LIBCAMERA: [0:01:43.682487405] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:426 'ov5640 0-003c': The sensor kernel driver needs to be fixed\n06-07 16:36:42.702  1637  1638 I LIBCAMERA: [0:01:43.682568405] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:428 'ov5640 0-003c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information\n06-07 16:36:42.703  1637  1638 I LIBCAMERA: [0:01:43.683572445] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:594 'ov5640 0-003c': Failed to retrieve the camera location\n06-07 16:36:42.703  1637  1638 I LIBCAMERA: [0:01:43.683642885] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5640 0-003c': Rotation control not available, default to 0 degrees\n06-07 16:36:42.703  1637  1638 I LIBCAMERA: [0:01:43.683768525] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5640 0-003c': No sensor delays found in static properties. Assuming unverified defaults.\n\t\nBRs,\nFang Hui","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 09077C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 10 Jun 2025 08:10:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F08AE68DB4;\n\tTue, 10 Jun 2025 10:10:49 +0200 (CEST)","from AS8PR04CU009.outbound.protection.outlook.com\n\t(mail-westeuropeazlp170110003.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:c201::3])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 70F4A61552\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Jun 2025 10:10:43 +0200 (CEST)","from DB9PR04MB9284.eurprd04.prod.outlook.com (2603:10a6:10:36c::8)\n\tby AM7PR04MB6776.eurprd04.prod.outlook.com (2603:10a6:20b:103::13)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8813.25;\n\tTue, 10 Jun 2025 08:10:41 +0000","from DB9PR04MB9284.eurprd04.prod.outlook.com\n\t([fe80::c5dc:4676:2254:2f4]) by\n\tDB9PR04MB9284.eurprd04.prod.outlook.com\n\t([fe80::c5dc:4676:2254:2f4%4]) with mapi id 15.20.8813.024;\n\tTue, 10 Jun 2025 08:10:41 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"M8cY9hqZ\";\n\tdkim-atps=neutral","dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=nxp.com;"],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=chvWJ3I6ytieipaOmcSwdhqYf9VtZJ2HmylEVsyQidxMPFzNmFEbYEIH4WWpjyzwQr3WztqC9DrmkV4BtnkOZCF23j2ctktCdMtCORvMmvg34gy21BwM7ZDAodDX8X5ihXfPueQ00VKQG+e6jD3vQ3zmgC7I4S1jkf3N7jfSrGj3Kspdxd4Kj9i7klan76M4TW89QCJvl3uTWdWqJrL96vTrc2hE+9t+v6rVFWa/1bX6eJkbFZ3Wcyjf2Ju7mnDPYbPICRzVCNiZ3r6axpRZIcLSr1+JcdUO/W4HteErjTwXzrG7zIzyZmFC6c2DEFF58ehMFP5coRUDGn5HNb4NjA==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector10001;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n\tbh=FZ2NZnZKuRh324b7VB4mjKtdtOc1/ICarEvOO2tQCeA=;\n\tb=N+SXnCKOiNgU6ermksjsCwdlrO3L5aMdERCaWMX1nlDQhamy60KpFZtuy+uSoPcQgIwDbo9QqjvKbSqxh5CGKrWpJTqVcIalbXWAMgD8zlknsgJ49RL2JUxp0LclS+iNo+utS/3G5yYVilkRj4XYe3kVkGF5U+kcnoqEuxeYTltLwnyga2LjDQ1lONAaabrn0CUjwdqVlwzKkCyxU5FXjaJgaWKbvkSNy9ZI9VzBMOfJnOpkHjUtgztHRLPyKrrd8rY8ixO8ggse/so7zSxQ40DhvUVZXKh3iW7VNHC7ichludEZGmTLp6KJTbD2cyNbvPMaZHaGK2PbSFtVotFvWA==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n\tsmtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com;\n\tdkim=pass header.d=nxp.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=FZ2NZnZKuRh324b7VB4mjKtdtOc1/ICarEvOO2tQCeA=;\n\tb=M8cY9hqZP3sX3mQbnv1PESiotd4A00dIwZKHoHzgl/jMQYfcy4Y37m7MALJ2jzeSuRYiLxP3LImNP6BlROALX3Hd55jz0A/DwTSrF9zzGXAcOEOPltKBzd+KwFg37rJmmEmtJo3XLp6IxruRSH0qMgplK81FiqVfu694Ya0NPmyY95JLKMGhsPkjSU84GCS9JRQNTddufXJIWbL4cOnpCIetriZ0uaaq08EH/n80XK85soQ866bBHDB9rv071voPTxfhekcJhafVNkjTt+y68ONu89NrEFT4raL4ZfLg/lfh0nIZ1wyo2jxHnjOQd7jo1q3xguh0XojcMIrI54FB+g==","From":"Hui Fang <hui.fang@nxp.com>","To":"\"libcamera-devel@lists.libcamera.org\"\n\t<libcamera-devel@lists.libcamera.org>","CC":"Paul Elder <paul.elder@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>","Subject":"RE: [EXT] [PATCH v3 1/1] pipeline: simple: Fix matching with empty\n\tmedia graphs","Thread-Topic":"[EXT] [PATCH v3 1/1] pipeline: simple: Fix matching with empty\n\tmedia graphs","Thread-Index":"AQHb2dukIKE1mlnWbECi0GdE5T8ZXbP8CUGQ","Date":"Tue, 10 Jun 2025 08:10:41 +0000","Message-ID":"<DB9PR04MB928439873DE1649093592931876AA@DB9PR04MB9284.eurprd04.prod.outlook.com>","References":"<20250513133751.1381724-2-paul.elder@ideasonboard.com>\n\t<a225bb98-420b-4398-a702-59494ed66dbc@nxp.com>","In-Reply-To":"<a225bb98-420b-4398-a702-59494ed66dbc@nxp.com>","Accept-Language":"en-US","Content-Language":"en-US","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","authentication-results":["lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"M8cY9hqZ\";\n\tdkim-atps=neutral","dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=nxp.com;"],"x-ms-publictraffictype":"Email","x-ms-traffictypediagnostic":"DB9PR04MB9284:EE_|AM7PR04MB6776:EE_","x-ms-office365-filtering-correlation-id":"e0e51e06-34df-484a-654f-08dda7f64ad7","x-ld-processed":"686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr","x-ms-exchange-senderadcheck":"1","x-ms-exchange-antispam-relay":"0","x-microsoft-antispam":"BCL:0;\n\tARA:13230040|366016|376014|1800799024|38070700018; ","x-microsoft-antispam-message-info":"=?utf-8?q?zbKeJ6cqvnWzXfNjYSJEdXIYu7lH?=\n\t=?utf-8?q?ae8IJtHI49mh3e0xlrg1LALRzOt7l9Df7J/txPLIQqH0uTIRu3SkuoA4?=\n\t=?utf-8?q?IFa6nW/rsgjTrNgCSpGRj9iVHnXumLT25fOoKeMgKFE/ae+XodNW9rnl?=\n\t=?utf-8?q?ytRNk+MGlwxm60MvwdtqqtcuoqnkPHOJJJfb70vZZ6inrLIHEI7M1OOp?=\n\t=?utf-8?q?erHnwXM6baLDXSMGL39Xo3bzZKmSWRL/x9NLSUIjhBxaUS1kDNWhpHv1?=\n\t=?utf-8?q?IOa+dLxsastXC6Ys5Jwz9525umOtKAB4zLgU6AjUAyYWZTSeO4Ookhnl?=\n\t=?utf-8?q?vZoD7p8+hgrPj+8Z3TxArrH/VEXly5wFrSHS41uH7uoH1HJDaCDN44At?=\n\t=?utf-8?q?5H47eeG26mZ7MsKJ0W4aaZvD4BAPV1B4rhcgl5K0b2JF3BqdsOauxIAo?=\n\t=?utf-8?q?Qb+9gtFEfh8FcNgoBgT2T5dFeIWHlYjI8SZmdfPBO8muRcqr/crEDZdN?=\n\t=?utf-8?q?yCtARxyskICceUKuhDuY6GE+HY2tmv3t1ht7ca2fnBNJ+zYBeKOuDXiQ?=\n\t=?utf-8?q?t8+pOPW/d+hRSViuInhltQOd5jn4GE5c/RshXPIKTWiYi+FNYxi7TKcY?=\n\t=?utf-8?q?3pkM9jiET413WtlA2ExIU6J/9zeDCRLiOt+Cvzb5JffmBbJ8Bn8Xkf28?=\n\t=?utf-8?q?aAtanOoH2/eZ2sUMeReK+np4Lh5PPJQU5Y3OYyvFKJOgflyTTcgz/nLe?=\n\t=?utf-8?q?Iuz9KLh7AAIdpO0XvkGCJ1hW75cNu24cUj9MxH7wPHyUN3FKRVoIFhB1?=\n\t=?utf-8?q?krENelIx9ohOGmJu9iX4Ntvw0AwcEyhnVgQeN/XT//HIQVw+80VdajcK?=\n\t=?utf-8?q?7gl+ecZ6C1SHW+nQaTiIQgcAqYcRiFxpUm9VRoZPAEtYEl9wlciR3rDq?=\n\t=?utf-8?q?liCqGtidtpfr4YhFr3KPcXWMihkVHNusDjWURpTf4pShxfeW8cV0N6ls?=\n\t=?utf-8?q?6Uuvc8c7uSu4IkFlIocUamqvHxyv+/m7fhQPSRTvuiSh+5bbAWf7Kn+2?=\n\t=?utf-8?q?UC+0HE2pltbewoZ73Y/6Z66yabyhMvyHsac9KBVWAGZB9JScv/pBVGeI?=\n\t=?utf-8?q?zzTsjncgXBYUInk+Mz5Dc4kKV+NC4HZ4iAaDO3om4ix7byvxemovJBV3?=\n\t=?utf-8?q?SZiM5dVp/N199vz/5hBjjEfT2LpuePNTuo/noFJQkkiA1KHAlZZNxjVh?=\n\t=?utf-8?q?MbOP64ke94M+yHVrGCraCCpnc+ZQO/0tMH8IjT44xFQO9vDurqb9lsCr?=\n\t=?utf-8?q?R+igH5pmrTwePPUM1XvbrtJ1uKAWdL56BcB681gTZdCQp78+pcGFvc1m?=\n\t=?utf-8?q?qutVhkVvFtxS9xnbSUvOMh5eaJuF4tjAkMDJC+fRYv5o1RYPbrKvkGuH?=\n\t=?utf-8?q?qryiKjv+5Vo9Mx4PK+0QRxEaRVFBFJwDxi2OyCtSeMetFAGQME4G5tJX?=\n\t=?utf-8?q?RxrMq6eDv22GpZq585pBYSua9k8stmOkVqZEvVRZcT8CUMkdRIocrSFo?=\n\t=?utf-8?q?EpzYCIZqpe846dKzVWzzjcE=3D?=","x-forefront-antispam-report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:DB9PR04MB9284.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT;\n\tSFP:1101; ","x-ms-exchange-antispam-messagedata-chunkcount":"1","x-ms-exchange-antispam-messagedata-0":"=?utf-8?q?tCFnykEQtsXib1/X4DtemBdo1?=\n\t=?utf-8?q?HG9ZZAyC+TmvwVpRSTWCzCUuKwlNqHVVqqvkavMWoxqd4al4wp4gX1e/?=\n\t=?utf-8?q?zDjtEJ4GirYo/ITpNLq/UEyrDFISAd0da2WVtthx7WjtMqRDp5qb1kvV?=\n\t=?utf-8?q?REQkoDJoMKcnnLYIF/7AiCVIvFNon8rAZyEPmFgDCQPvCQHT2uMbpUrk?=\n\t=?utf-8?q?bnkvU91E19VUyI12P/DWaYIdVi45H/pfjm7sWnDZfEdndr3+f5ywJD/d?=\n\t=?utf-8?q?Wt2nr8o+cFzGp/M5ilG4s0xdI1zGVJF6OnI9BXPafrzheo2beCnxxntq?=\n\t=?utf-8?q?gjYsy/YsmXYomYieJwHNKu21OQ7u+93D47zFI+bIhkUTTTlbb1Bww0lU?=\n\t=?utf-8?q?YcgKnKW/8q2SAAupPvJVgmxEamPXI1I37R/o+mr+R4mnxZHtF6xlF987?=\n\t=?utf-8?q?l8znm8jGupTEVuCeIsthx7mEIiwStDnMmDBQtkMp/K8mfm+T4Qv8vYJd?=\n\t=?utf-8?q?Xf9VtfJeYO/b2YYd7uZrUSn3f9ehJlo5SV+87nFE4fB52Q6hqtcxnJ98?=\n\t=?utf-8?q?vA+1Ji/xcDmhn8EhxOQuw6NO9fKckwH1EdqZCfTfbUnl+S94y0UcwRmA?=\n\t=?utf-8?q?tbt+1XQIjKreC8i35REy+l62UTOs/92jDI+62ti7KGwFNmWo7HY6B5iw?=\n\t=?utf-8?q?wQXBB+GKWRRrOB8pXkIVfjNXg+SRSH4ZzRjte4BsqInj5bF3SPr46wWG?=\n\t=?utf-8?q?PUfEj6YR4+lXdF7iwa2rlHh2n7hHP4qiRTxaDurkiPnCQJtiCt1ZZ+29?=\n\t=?utf-8?q?ceyfTZNxZ0IWQqk6NzfG2E08UJu1t5Unp5/+H9aZpEsImPD+/eWfc2YG?=\n\t=?utf-8?q?tP9co9r/pwsyhFY4yDILG1mLK2nl2567fUegxPXuh6h8ax11Oe8VQ2O/?=\n\t=?utf-8?q?4AdmiuKky4q5XheAjTMXuECmaAbDvgX8TA3WEpEdGV5UlS5BaX0XjPVv?=\n\t=?utf-8?q?t+bAWwBk2b8ftNgrBKEW8Qz9+2B76Y06IACNtiMC8g7eQYRiX5WampAG?=\n\t=?utf-8?q?KbHZ9Yn4DfIfgW2/a524oq17UQNjVs0J9vi1aDSwpHGI7jqlS5KIB5Lb?=\n\t=?utf-8?q?ZQ/iEvKJWruTPvzpEJbQS56R3G5u5OXjlxPSuq/z0fNnVyUi+XlrWgep?=\n\t=?utf-8?q?190qDwxoOTOKxp+i9pbtxC39wIsc93b+nvgEx/0LyS8Asn6KUMfJFuC5?=\n\t=?utf-8?q?5ZfxAgtqcKIqwUgF03aunxsnua3DNmzhbrgHFUUE9BNbRJZ/UYRmFevj?=\n\t=?utf-8?q?FdVQ0InH0fH7w0//IEzYn9tFPb7UJ45w6jEWOvBu7cKASiBfz1An3abf?=\n\t=?utf-8?q?JQ16SxCa72U0b8QySwsobygwapnyFId3kaW2S4VjuHemJ7oIw1hJgAjy?=\n\t=?utf-8?q?dzFfe+NXjVnZXxi4sTJczo2gCEnnCrXOgT6Ju2XYK14gn1YYuIeXUy+Q?=\n\t=?utf-8?q?79Kj8M8TRxjw/F+ao1WaAJeJOjkKeRGvX2D2A2RUkxScdq2uM2PK59T1?=\n\t=?utf-8?q?vdAHs229eo6aq6kQobqBSXgqg8laWeUl/eIv5pgToJdu7dpp1hjrL9pN?=\n\t=?utf-8?q?gEwsDFEJwJCej3psKFEaL1U+q+qE8ms2jtRvOqx3v+hys6uUzFxEBNkC?=\n\t=?utf-8?q?YT3O/1OlRI0xdHr3DCN8XR88H78A908o8eztW6EOzs=3D?=","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","MIME-Version":"1.0","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-AuthSource":"DB9PR04MB9284.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"e0e51e06-34df-484a-654f-08dda7f64ad7","X-MS-Exchange-CrossTenant-originalarrivaltime":"10 Jun 2025 08:10:41.5675\n\t(UTC)","X-MS-Exchange-CrossTenant-fromentityheader":"Hosted","X-MS-Exchange-CrossTenant-id":"686ea1d3-bc2b-4c6f-a92c-d99c5c301635","X-MS-Exchange-CrossTenant-mailboxtype":"HOSTED","X-MS-Exchange-CrossTenant-userprincipalname":"FdRZOGXGmTLJ5/JcEOvyZSyXJY996ngw57WhQsNW+H5zttu6rnQ0ZOjD7eDwam56yIwbVAKQ/+0MOGWrSQEnTQ==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AM7PR04MB6776","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":34437,"web_url":"https://patchwork.libcamera.org/comment/34437/","msgid":"<174954860471.896144.4712172177463441376@ping.linuxembedded.co.uk>","date":"2025-06-10T09:43:24","subject":"RE: [EXT] [PATCH v3 1/1] pipeline: simple: Fix matching with empty\n\tmedia graphs","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Hui Fang (2025-06-10 09:10:41)\n> Tested-by:\n\nTags need to be fully qualified, just like the Reviewed-by: and\nSigned-off-by: by tags.\n\nIn this instance:\n\nTested-by: Hui Fang <hui.fang@nxp.com>\n\n> \n> Applied https://patchwork.libcamera.org/patch/23363/, tested ok on evk_8mq plugged 1 ov5640.\n> \n> evk_8mq:/data/cam-test # ls /dev/media*\n> /dev/media0  /dev/media1\n> evk_8mq:/data/cam-test #\n> evk_8mq:/data/cam-test # cam -l\n> Available cameras:\n> 1: 'ov5640' (/base/soc@0/bus@30800000/i2c@30a20000/ov5640_mipi2@3c)\n> evk_8mq:/data/cam-test #\n> evk_8mq:/data/cam-test # logcat\n> 06-07 16:36:42.696  1637  1637 I LIBCAMERA: [0:01:43.676715045] [1637]  WARN IPAManager ipa_manager.cpp:148 No IPA found in '/vendor/lib64/ipa'\n> 06-07 16:36:42.697  1637  1637 I LIBCAMERA: [0:01:43.677268965] [1637]  INFO Camera camera_manager.cpp:326 libcamera v0.5.0+349-b920c09f-dirty\n> 06-07 16:36:42.700  1637  1638 I LIBCAMERA: [0:01:43.680738405] [1638]  INFO SimplePipeline simple.cpp:1686 No sensor found for /dev/media0\n> 06-07 16:36:42.702  1637  1638 I LIBCAMERA: [0:01:43.682392365] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:354 'ov5640 0-003c': Recommended V4L2 control 0x009a0922 not supported\n> 06-07 16:36:42.702  1637  1638 I LIBCAMERA: [0:01:43.682487405] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:426 'ov5640 0-003c': The sensor kernel driver needs to be fixed\n> 06-07 16:36:42.702  1637  1638 I LIBCAMERA: [0:01:43.682568405] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:428 'ov5640 0-003c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information\n> 06-07 16:36:42.703  1637  1638 I LIBCAMERA: [0:01:43.683572445] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:594 'ov5640 0-003c': Failed to retrieve the camera location\n> 06-07 16:36:42.703  1637  1638 I LIBCAMERA: [0:01:43.683642885] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5640 0-003c': Rotation control not available, default to 0 degrees\n> 06-07 16:36:42.703  1637  1638 I LIBCAMERA: [0:01:43.683768525] [1638]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5640 0-003c': No sensor delays found in static properties. Assuming unverified defaults.\n>         \n> BRs,\n> Fang Hui\n>","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 3910EBDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 10 Jun 2025 09:43:32 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0336468DBD;\n\tTue, 10 Jun 2025 11:43:31 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7A3A961552\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Jun 2025 11:43:28 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0852E169;\n\tTue, 10 Jun 2025 11:43:20 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"SxPYdjTl\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1749548601;\n\tbh=BOSQGMT1gD0biwtueXMlOZsGRBaAjugGlAm2KvIHMhg=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=SxPYdjTlrNDA73zbHmVKNZcEhJhwhgVfi4GExLtHkzjFHimoXSMhwjUk4zfYkwQNw\n\tPJwrzQquMtEK0MWHJI9q6yDtqkGVMWCosqjxwfVSafAvw+OalX4xyHj1Lc5zKoxq5B\n\tom557ZhTwFoa9koKwsHvilRPnWt4UX86s6TvAtl4=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<DB9PR04MB928439873DE1649093592931876AA@DB9PR04MB9284.eurprd04.prod.outlook.com>","References":"<20250513133751.1381724-2-paul.elder@ideasonboard.com>\n\t<a225bb98-420b-4398-a702-59494ed66dbc@nxp.com>\n\t<DB9PR04MB928439873DE1649093592931876AA@DB9PR04MB9284.eurprd04.prod.outlook.com>","Subject":"RE: [EXT] [PATCH v3 1/1] pipeline: simple: Fix matching with empty\n\tmedia graphs","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Paul Elder <paul.elder@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Hui Fang <hui.fang@nxp.com>, libcamera-devel@lists.libcamera.org,","Date":"Tue, 10 Jun 2025 10:43:24 +0100","Message-ID":"<174954860471.896144.4712172177463441376@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]