From patchwork Mon Nov 3 14:03:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antoine Bouyer X-Patchwork-Id: 24951 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 4AC90BDE4C for ; Mon, 3 Nov 2025 14:01:56 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 98C4760A86; Mon, 3 Nov 2025 15:01:55 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="KtB+oElL"; dkim-atps=neutral Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c200::1]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 9AC83606A0 for ; Mon, 3 Nov 2025 15:01:53 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SAkpCJJHpXcnhizhQqcJQlatfLs9y85SVGBv0dNAJ5t0xObW4d2NPynHk/ZNLa0mMfJTfJ9rBkqDDxPt1Dxw1ucq6Bet6fVYy0rce7XaEF5qKWcXjEAfk6rzL54ikxkL4rsivb7DjIpHQ80S7MFvvVrgiMLxpIYEbq0+8aXQaBBKayvX4N3+30XihTzmy1tGjWaxOy8yBNeVWoK8m46rIlF9SiGOMEdh27Lfcd7ms3HX+Su8/l48R9PJi2BFNq7jCwDd40om/2Bl9i1TX9x0KzdFDJlFmPLUrKZAM+R10e3Hu9NAmHOkYNjTdiGvJk6j1QQSY/N4Zrfc/pihy6y/sQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=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; bh=H4gHQ+zKi0jBdc+7k92Xf6Q2jawgfJ2GY5IjIM33KuI=; b=s8l8efE2LiXXABz2VQNZe0hj+lHyJvqPl7GrWg5zCjl3CzERA0OwhvzHBZK6H18uXLosEOnX4Afs9rQxoPctr8WVQRJIZU4rMQNU+J/Iye3lcGEhibE+JyJ1aZGPYmkmTc3SBh/X0lBCqkj4jzcGk3YxjUewr/63csUceBKlab4M/s6ZZGmSrDY+cM0BYcemIJw7NCRpBA10WwJDZJk1Skk9TPP3izIBbsMJOLIJPxa7pxT7hXsjU6efEuorK3kIZhDepvue9A4cT7xYdAbN4ztEq3KAbUTz4xAZ3uAZb+F5CzFVT5Oxbx/9y52dnXmrOBInQZct7xn+SRZZ4sbGog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H4gHQ+zKi0jBdc+7k92Xf6Q2jawgfJ2GY5IjIM33KuI=; b=KtB+oElLjH2LLHiWAK6oKw+Pbuw8gEhdqxVL6UUcgG3MTvcL7fVauYEG8NBgTdyjGWwrdn1Jy6i69d5yIAKBg//6et1ZNM2MQmUMPvBMQqSlHhXllCCJOeEzv/zS7N0qW9+wKakKDBQ/f8o1++2T/CAp1gsbioF1RHRs5rtUM1oZE+GdhW9MKEAbei0XUkPlVOE3dt6dT0cUhJBGhdNkuGiehGiv8nAmlMvtDxjr9j1ETppD3bZmnCs7ItxrXZaCbjyDtfisw5nhqvnz7HjWzjPUuWqZ3qF86b4uJh79CHbQ0r9WyaryLDu23I+a+SqeyX0U/TALhVrE5YcH88YKcg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from GVXPR04MB9831.eurprd04.prod.outlook.com (2603:10a6:150:11c::8) by GV1PR04MB10559.eurprd04.prod.outlook.com (2603:10a6:150:20b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Mon, 3 Nov 2025 14:01:52 +0000 Received: from GVXPR04MB9831.eurprd04.prod.outlook.com ([fe80::4634:3d9c:c4a:641a]) by GVXPR04MB9831.eurprd04.prod.outlook.com ([fe80::4634:3d9c:c4a:641a%6]) with mapi id 15.20.9275.015; Mon, 3 Nov 2025 14:01:52 +0000 From: Antoine Bouyer To: libcamera-devel@lists.libcamera.org Cc: julien.vuillaumier@nxp.com, Antoine Bouyer , Kieran Bingham Subject: [PATCH v4 1/2] libcamera: pipeline_handler: Add accessor for useCount_ Date: Mon, 3 Nov 2025 15:03:24 +0100 Message-Id: <20251103140325.88535-2-antoine.bouyer@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251103140325.88535-1-antoine.bouyer@nxp.com> References: <20251103140325.88535-1-antoine.bouyer@nxp.com> X-ClientProxiedBy: CH0PR03CA0302.namprd03.prod.outlook.com (2603:10b6:610:118::24) To GVXPR04MB9831.eurprd04.prod.outlook.com (2603:10a6:150:11c::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB9831:EE_|GV1PR04MB10559:EE_ X-MS-Office365-Filtering-Correlation-Id: b8e308a1-cacc-4279-05fe-08de1ae18a21 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|19092799006|52116014|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: RQGlRq4XO5mAC0dAtaE7AiShPCPqebmizF15PuTvBe8FzHkkas2EVSSOOB0c5eAwTbCfASindKVSNvfa6hQNAZU7hGc1tslUWfUi6NYGKEw68FuKZE+des7U5FaWOPz+HY47cUOsxBO4FtYs2d9Av/bAbiD7C53oC37FKuvIp0BZZatXPWQOhlFi2ou293xkiY/ZQRRcmc+5/8HfcgebWxrjLDrliK8G0PCRDQfYNtQPhZtQ4vke2sdTy0NHMGwFKSVQ2M5vJ0mO9Uqlwmu7IxR+qfwwqcq8IAzWCX2xdMm3rvKw0pIXem2Q2+Dzxqq1TPu2b2LiuWnZ77+AKEyNAbP2XIGpFJ9zH0+/Nnj4Bt1lUf2p+192+j1KM+QH0i9KR3xU5HN1H6Ysk7l7/fKtW5OAgGZXENdJ/oiwDhNtAmqVIk9eowTYFS7i3z2AGYngq2zwCH9wd62CkLycUDFdmYmancUfl360uLQbnu+1w2QkB2bzXhptReCz8lj4mN4ejMCooP32iDunzyvg992DaC61pz39s6+S7zGh1rI7mchYvcasMqAL+LbQlUytsw+IE/h9zB2De9XRVhGLrX9soh5c6tHyENrXYKu86LtGiz8eO/PQblpj9RZFz2qmQAWa792qKwDFrV6ZgYjKtaac6shFjKQTQjl42LI+8HYxRDb2bfonB03RAQXMfvKTbAHFHvQ7j8fPPHAJRB1jSxkvpoNUjBhpmdnkbgu/V+WgpPmudBHGh85yXXfAGpAZoYO3bw8rNj5Fi+g1/zSKJlCPIhZ7t3ls4ioYAbEfpsFBZu1R0P3ThtEnwLvt5i7IMr0YjvITefZSt1rr4lYVER85ocxzZfX8h4TujOwgpEytbfn/IuNsdg/fwIhCwUzhqsuo2OvIHH3ojXr8PkqXwoYJEGupgY2bIF4kVRSKjrJR7HFITlINwic1zXsgCp28FmdB0DuBGQvhn9wiUhf7CTV7WX6OoHzsvhJrBGj0faZ3IhGqlEaim6mLYSCSbjv8eI3dS/WcgiXX/VtHIJlzj/CKggN/oZSbYy/LSKZdnSs/P9cX55BJ75eNNajyd9nmO6bOK7802BL1OQ7+30knJYmBTIneEdYB2eYc4vCZhksXbVNdIZLgCzuuoPhUs4jEh0HQl3OpNpn3D8f6zrATgkMgRzoo456VO4PweUj3yQG72vGoIcowcNCWIIINPEbxiQs+1ghznBeNihF91+1Uo0ZbFHPul3jOVzOjYqVvwyboaI0ZsgPX2HBtSpUPpl7jCJz1MVgCYhZ/DNbK4kj3cJWZuRoqE9+uStYyGiHAToMIlsybusllqj0TaF90ffcHk7E4SCuIo51XcPTkEK+kAPkoy/mOMo49D0qXmLCElirT/nvrkyls1DUvs068AcU10iuVoEM9d/7DxXPscSyNUqDPzqIHpcCjHFvRkDqnF1IS2Q+ZT9+7TMh8Zy7n6QUhf97P07aRDOBDxEJO82Pytb/l0v/S3UfATeBT2qAzUl15Lq2SQflWbwbUQg+MZDYy4nRE X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GVXPR04MB9831.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(19092799006)(52116014)(376014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1NRhf+PN0CnJN7TKfKM7s3KzpUPVFqptAz5af5BZ/eAf87wzKnsHNd8HwrjEd7MzeAfIEf+xtplhkrYK1AyX0eW99PXb1EgB+bAvs5fnaguMwrots4MQdvAcK7tU6WRmXUdEBcUi+ZtjXbkd05a0mL6WHHbzJZaQi2rqab8V95QWmKeVG5eyP3GIwsUOEcDzHEtbo0Vr6oAo+fK2SuVXsMj303Mzvgbq4EB9rQld6C08E/KKI3bh49tM3I7MWwd+l+J2EyGkIBEQ9AD6QOocZ2uSVJia+5G8JQy3KAMw8rXmZkEajpKlXdj+IW7Uyg/XnLRv+QzwQt5ONe1Z6Z+F3amTYyaj7NeyuwzzyaleRvDeDPp+4sPiBVM0LjW8AChauqWkCyNy/l14BCGhD6WGJffB1fHCMTmayGH0JLhdWakkUrESjmm8aq9x9owNOOdJiZRJVNhMKW3EdnZRyERcZtNxsEhV1oAqz/2rWPBs2+SokIroF4fN7y4vsuROMtR6Ul5vmJAtHA6lC+XGZL97ygjVnpam3tfgtHLp5yFefRYY016S43QlrhMxMIKytG8Toz6RwaaXzBVhdhr/NXbVItbE/hzkRuP4OSJLwVrfirOjjpFWZeFCciMsNMBhHLXZyMoVp1q2yHEZHDj/nCuetvpRqGjfhOS4joPvDuwzkPOALcnT6BQb5RFAdw+SmtTyCG2Vbh66dAjkJf6w7VNnRFcHinsJ0b4Q3Od3gyfYY7HQ5m5+2wXcEDiASCSHJRgqsbrGhORL3MoD+qxygLtW95IL1qr1N5S+9z1eHQHslbuE2UmH2ZMSuPR7h1nQm4eZSClMSEPuJH8eyvN24YBXWKJq4fYdtg1B7dAUPGcm08x/Q/gvp4HcEd1mcEknSUL/OXVhhmU5b1t7gz8TgZ1rUCzm/dI4YXgkm0Cj3ip3vhBfWHx0bq1oZSXS1pDmldosm9KqWScoTTThCMeaTwy2/x1VutPMmS3ZLNFym9UILCuiYEfYxbQVRJzOPS9OsTzwAxoqBpZiCDRuh7yNZDMtMrUcdgwrZu1JpdtINy8GxGwKyaA71tfT6Bw7ayK59z6eGYjPFAggytFDHbO1/jKRotDolzABBynJE1a8rpun1CDhbepVbJQhcp+oWZL397rONjvx48WS+3+/l18PU4/mtIm6A/GDPdM9S/P2AbqpvRFC8AMMO8kbUqigOLVtwvdORd59GhAh5116Sjbaq5mE9PdIRAVOraxf4WKfxznxO7B8QKMb92dBwpYG9aePnnkptT0lKJPXJQH4q6yl38T2dMTyu2AayXgGgG8hEGOf1KfhkDSwCrgPYtgIHc5meVOrE/dkBoL8mw+89JgFBJv/jym6fLXTEBrxKfVweBHxN9iSdP9zNswujPdLFD48L7I4s+8dHZiUDq6OnmPsuWP17TWwtL2TQV+YQGa4Cqrc5l5yeUAawUxB651DBSQLCWmM1/ZkH/nxoZFnHsv2qscW2Y1mx2ceKglUwSBSHyb00Cbij6q5ihMRH/WGzxbwybklm+VlB03yF33ucxnMrEn/SvgPMBnjcIHBGnoI+2y2zB0W2DKEfidbJ6+G/Wf2pcatiGz6lb+0Qhfmg0gNFJ7nlA== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8e308a1-cacc-4279-05fe-08de1ae18a21 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB9831.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 14:01:52.3480 (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: ohFcymJR7uL6ExeP6QFdM67s/czjlNrFLtzKrXoi8PU4FyQlBCIpervbk7LS+NwLUTcOuMacQT0R2+8IUX400w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10559 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" Add an accessor for useCount_ parameter, so that PipelineHandler child classes can access it to verify whether the media device is already locked or not. Signed-off-by: Antoine Bouyer Reviewed-by: Kieran Bingham --- include/libcamera/internal/pipeline_handler.h | 1 + src/libcamera/pipeline_handler.cpp | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h index e89d6a33e398..8fe970317fdd 100644 --- a/include/libcamera/internal/pipeline_handler.h +++ b/include/libcamera/internal/pipeline_handler.h @@ -73,6 +73,7 @@ public: protected: void registerCamera(std::shared_ptr camera); void hotplugMediaDevice(MediaDevice *media); + unsigned int useCount() { return useCount_; }; virtual int queueRequestDevice(Camera *camera, Request *request) = 0; virtual void stopDevice(Camera *camera) = 0; diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index e5f9e55c9783..3f7c20aced13 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -811,6 +811,12 @@ void PipelineHandler::disconnect() * \return The pipeline handler name */ + /** + * \fn PipelineHandler::useCount() + * \brief Retrieve the pipeline handler user count + * \return The pipeline handler user count + */ + /** * \fn PipelineHandler::cameraManager() const * \brief Retrieve the CameraManager that this pipeline handler belongs to From patchwork Mon Nov 3 14:03:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antoine Bouyer X-Patchwork-Id: 24952 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 5263EBDE4C for ; Mon, 3 Nov 2025 14:02:00 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 032E160A85; Mon, 3 Nov 2025 15:02:00 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="HCTdCSxn"; dkim-atps=neutral Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c200::1]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id EF0E660A81 for ; Mon, 3 Nov 2025 15:01:57 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MWC/955b+s+CzTqeyNE9rhgr3qLpfb43Zl9Enw/wzOkppYfBtvXhF13F/cpmdGTL5gZHpz3mYRuKbyYPAoksjB5FXd5dchs3J6uP/S+ROrK5uTLZIR5AftmLgCDwtRt7oFLu5yYUCh0lOzd4o9tCfBNIibYSYPQ32ioD4We6L5T2yWTgA84EaZWsajE66UbwTuOB1PTlCeDhz8MgoW3pyd/1kSfSqqhTS4qwfDLgywNAO5HSfDSk+O6ym/D2PGhtGrHFE/XO0L4AabriZQmogqE81EsGb/hLGvNKeDuZqp4fKWfCREYkVR9PasaTmpwjcKZY4m1iNzzH/8tpR8vABw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=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; bh=Jya8rzY4LuRMKHF/D2ciBqbmsS+0M4efiOwPtmVkQss=; b=FkZKsn6kb16j7cYDDJUvaQXYvpeffRTdnxTbjOTFoFughNUfuvsH670bAv4PQ433WPO9ht9Op/qrwAEAE8sjAq/WTFR4U5xHgwYrUTLxt9B+uygOrocZ0y4gbkZDAz/Bt6JyBgbndUXOX3sjUZXyRbk6LjIToXkjrxaJzAygRt4tzoytJcajHL9cqL7ll+qYswee9Jk4SEzZh4UbTw2Ap63ML1LvAZ4mqNhECItSNkCqTggJYAom+Qc+VV16+Qo0PyXuMtHKdCzrE2RfzhP7jO4z8C0VPrQ46IFyPEEuhzEofq639c0vFSWXroN3kUfyT7K7Tnm8q4phIf/gv+aPzQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jya8rzY4LuRMKHF/D2ciBqbmsS+0M4efiOwPtmVkQss=; b=HCTdCSxnLjbdCxoBZHn8DFCI2yYSXBMJk6mL1+BuMGJW8ulI8zVut6HLF17fwrLD7xKL3NyZEeb1FDSpo6b6congrDE1nH4B8yWMQZzZ50Vp8WC7ISLFUxIeiMFaK+Rafd0KlEd3EKrpsq8/0jIbTmbher/gkVgMs4Cx3C0uCoFKFvhcTWjdSHiOzF7s9+IMn7YcJLL/ES39lsPrahAFUk3bhkO3MJsunYAD2sgJDgxIGkEtwvlnQU1aw3haFrplwnD4aEjD5S5+8+x3HaTyUoL/YZDGHALmNrtp+MUzsvRbMn6uHjYpn1GoA1UR2nfIr6S5QI6ca+lusNv17sleUw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from GVXPR04MB9831.eurprd04.prod.outlook.com (2603:10a6:150:11c::8) by GV1PR04MB10559.eurprd04.prod.outlook.com (2603:10a6:150:20b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Mon, 3 Nov 2025 14:01:54 +0000 Received: from GVXPR04MB9831.eurprd04.prod.outlook.com ([fe80::4634:3d9c:c4a:641a]) by GVXPR04MB9831.eurprd04.prod.outlook.com ([fe80::4634:3d9c:c4a:641a%6]) with mapi id 15.20.9275.015; Mon, 3 Nov 2025 14:01:54 +0000 From: Antoine Bouyer To: libcamera-devel@lists.libcamera.org Cc: julien.vuillaumier@nxp.com, Andrei Gansari , Antoine Bouyer , Kieran Bingham Subject: [PATCH v4 2/2] pipeline: imx8-isi: Delay ISI routes config to acquire() time Date: Mon, 3 Nov 2025 15:03:25 +0100 Message-Id: <20251103140325.88535-3-antoine.bouyer@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251103140325.88535-1-antoine.bouyer@nxp.com> References: <20251103140325.88535-1-antoine.bouyer@nxp.com> X-ClientProxiedBy: CH0PR03CA0302.namprd03.prod.outlook.com (2603:10b6:610:118::24) To GVXPR04MB9831.eurprd04.prod.outlook.com (2603:10a6:150:11c::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB9831:EE_|GV1PR04MB10559:EE_ X-MS-Office365-Filtering-Correlation-Id: 845100fd-bae7-4e6c-b4ab-08de1ae18b8f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|19092799006|52116014|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: VYZ7JHByUQFBR7nzLlJ3g2KwUKmsRA+zcfdkebpbSSQDoquKtMcHKeBTGbP8qVpj1qMWmgKwau5Wr15QurhlqpmpJVl4yr8lVPQuWWIJL7S9WF83sBLoVE/23J3AY5/iYrZyKzI8RXgQ0HrBZP5hRgO9HhBMFRG8s2ENncId4Y30OKDVwe0zdqCR72Wg99OJ13tQJOr399JIN2trCZxSAlZEfG5syZWqXcdqfe2s1XfqoABsVdh6ldR9LamnAHfB4t56/WGWAWXECH0UMwot9ze+x5P6cebWPYKqcGiaXr3TRPX54cECvCWxYnIk/9qaCp3fZu24BWcKIIV+F5AgTXVZG1eu89Ng3I7VzjyuLDYvda8TrGmuLXYoad94vI+2VTPdnnre4Dg3GjoL4Yb8f9TRfMOHIS0xr44Xw0mF2AVEb3cAmVtXzwen5o8Z2mVaZMM5QMlDFYhnkwHhqKTC1LaA3W4/hN5IVyGoEcJSR8n3ZyvqhkpnLXqd45UxfCMqaQzxl4Vtp94rYtzXEvNvQofvf+BuVi+8ZxAPcTrSCSVwlUR1XhxGsBYDg7TakDbHjfPLtIQ6CsyMXw717j9PTK4UKT9So/tHhjJnwWTv7Cv6NTofR8aqmbeqZYUkkSjL8zjZetlEv3oYnmo5Zj/VkVBj9JT3zjuZBGdCYLP6+aWpkxnGaIDSQPgAu0nuCtvyCA9ieI+Z/FctqyEGBT4o0sqKtcQhHYX8MHISX+59C+EH5wyqCkrPTExi0nN4gWea7+4wr8jIBqmvbYreYAD8807HwqxdbbNFkgIwmGwyxPpgmxfEhlReL050FLd87Thpzr1sP9I3T24qwlxDNNPcvHidtWA+LuV3lnnDS+TcT1D0MPABVG3UsmgxGieVNme6eaWeNwVQOaXVA9ahmPZ/a9rpZsZNCBYYVM+KRdhGv1Fffi43QKK6muNayE43rdbNuQc/mq3JsEChmbzvccUpvG2mho1OvDFA0tuI9aaT49TBeFbzd1r3H4Kq3kU+Nl+Rh687DKyY4j+V7CuBgkzMwgpo1lr78mAZKNV+d/924N2VImTTC3Yc2szsgbNj/f4HfkxnZzkZyKVy8e0XncplPNZPNJuDvGFFsXOCCVOImOlmSac/9/ksb52HSx6Y65IqJAgURAoNBZ8vbK2h7nPEcZX3q/Zsy3LVt3tUePBZ6Saq0A1Qajzic+XE6tWhoRJsyGT3oXMkx/eJswU9b79feiNwlHOMiAfo1Bupg9992KQ3Nf1JK6PRWhS9X+3HEhekDPrrC3CIIrOxsSFctUiwrISHUmgdboDlaw1oobq92aPQ64GX35yZYKbzyfg6iKoMiujoQ+Q0hzn6TF8ZXNBlDmr3APh2VpRqJ8Bvceiz6b/OhrSbkbcgLir6omAwyERoL+IGIFwXwgeG41Na9fOJfbRn6rxnPR/jNfxrGrDPPyCO4DnLtjtJKVBGCe+FBV71aKjy/w0H4Owv3B+sScCxqTpPIP9LUOIgxbBmklkyx1Ana5gZL6SXBKdod2ngYoR8 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GVXPR04MB9831.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(19092799006)(52116014)(376014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BKOyRy0FIpbJ2P+KF6i3CoQ6fifoUARNcF8u5YxqeLZrXV9k3RFZQ4s7/hMNPsls6qQcfRBT7mYElsyrwX1wxNQPJwykf7klgaGNAftvdnctQzrPYGVOBTNMlCIcBdvwR1tSrDv/X+kRNCqGGnxp8N/xof5tToK2t+3Ee3ptoun9ZtcOe1lxydbc5OuLfPzj7v48lzbMNx3HdPUqPlWdFMC5nDxIcggJPOUBT/YsDN0FaAWK0rS3ZVzJDx6sAB01wB1vAUyJfS66o6eB5JDjC8YvV4thkgaVMAvsmgMymWebqo39k1gvYlJ2apBbo4KKG7/59KXR2cncoS0Ms5cMGQp0Vq/cozs5RjaNwa/IPFqgLDDFb7jvHMB43v1vKNhr3qELz9/R1un8hChjEBfUZt/Na7qPU4ahUyrY3Y4BjN4p377ZXRvmlaRsSz5zULJP5TJGJPRIU6RHJ45KpdvDQEysIiehMzlAtJGNFc8XFKD/00KvrkPyritb8N0zsIYkgeoGWMW/WwPylLs613hvRPg+xESw/nrMHKBwRvC9HV6XXOAbsqQemHKG1ig7wcyCrJlnyEvUkg15zEC8ymPCpnA18xu88xkXfpV8Lzjt0Bpw4mT930vY8+7DB2DeLEbzIdCGU08k26g6pmL8rc+3zsz4zIkEUVnV4dIDSKNflOKmUtJj7/m9jEy6C4zC3XJosrL6JEgYNxM3+cbMpdeD+BBoHUNIkE1pdlu1Ss0wvUmWLq69I2FzFgDViiRme1UXiRrKBekDp3a4JWvmlBGik3qdCQbYlKnljikeTl50/CfJzufLXEvXJ9aYCiNqCNaXiZu9a8hhbzytQUNYY3CK+m2I1/thNJL99bL2dvF6z77Ql3yym941u7tf5erAsuWaoeBIXljZC2g1qlgI6Mby+r1YwzInii3l+cN+EouxDb2WelAz8TivX3FRmsPlUIAE9Zy0jl/NBL1ZfCul/yfg3+ecx1BwdAxmDhyPhhLA8ADALB28ocL4Cw3ub4R1/APG7T+U/njYjtr+I139wUyvFMNLfWjzMf5OMqETtijA4k6XMGsTtfaZyPOLnxhmxGkWtBsT7GqBHUDrfgOWidME9GejEa47Se97G8J9iRwPSDqpyHvNqG2PTNJmN1IhoKM5GuslniHS39CBDbSmIVQkyj9E3uAYEVeNqZb2FARzkLIrUhIhqWgMWyt8ctweM8IXy6fZVhlbuHFS6EuSK9TWbSntVo6fhwnzrLxSK8bmUnFXImhHA3qg9DzheoCAsmfuKSV/KFSm33/mz91S/ZrYR33v1DnJlOzunP4LDUJJDEnafZjUxv+M1+K3Le5t8ScGTNS//kIuyd5+rxu/TsgNG87YOayMy5a9Da33Z/oKWTS68kKEw+kJfFtxxGSE3WX8ijWDkkWAtd+RPjK7U0Idnd5PObxHl1ijD/Jd/qdqAJ5/vE2rbWNToCu2iJOU/Za/wnBkrgxf79+UkVNRF7uVAEaPFEM+5vQckwR8A9xd2qGOzFozBnLCUVhE2U1UzP3AOnJXoj9Il1MrC3AqZdIbHuBgnKV47/FUHB34iRma3M6fUVy9x3pGP+8jxZcEEXogDhbo4MjWRnZGMOY/PiCwjA== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 845100fd-bae7-4e6c-b4ab-08de1ae18b8f X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB9831.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 14:01:54.8086 (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: zJcXmmBqU5NfrwS/vnesvUn+94CWTNbshFpf9PIfMKtc3ZqSdkAVDiIja6V2+yWtQ0GI6KhT3HAM/P720eIQew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10559 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" From: Andrei Gansari Fixes behavior when calling 'cam -l' during a live stream from a camera in another process. Issue is that multiple process should be able to list (match procedure) the camera supported. But only the unique process that lock the media devices in order to be able to configure then start the pipeline should setup the routes, graphs, etc. Thus, the setRouting() is to be moved to a PipelineHandlerISI::acquireDevice() implementation to override the default Pipeline::acquireDevice() function. Fixes: 92df79112fb2 ("pipeline: imx8-isi: Add multicamera support") Signed-off-by: Andrei Gansari Signed-off-by: Antoine Bouyer Reviewed-by: Kieran Bingham --- src/libcamera/pipeline/imx8-isi/imx8-isi.cpp | 30 ++++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/libcamera/pipeline/imx8-isi/imx8-isi.cpp b/src/libcamera/pipeline/imx8-isi/imx8-isi.cpp index de09431cb9b9..91541505e3ae 100644 --- a/src/libcamera/pipeline/imx8-isi/imx8-isi.cpp +++ b/src/libcamera/pipeline/imx8-isi/imx8-isi.cpp @@ -71,6 +71,8 @@ public: unsigned int xbarSink_ = 0; unsigned int xbarSourceOffset_ = 0; + + const std::string &cameraName() const { return sensor_->entity()->name(); } }; class ISICameraConfiguration : public CameraConfiguration @@ -117,6 +119,8 @@ protected: int queueRequestDevice(Camera *camera, Request *request) override; + bool acquireDevice(Camera *camera) override; + private: static constexpr Size kPreviewSize = { 1920, 1080 }; static constexpr Size kMinISISize = { 1, 1 }; @@ -143,6 +147,8 @@ private: std::unique_ptr crossbar_; std::vector pipes_; + + V4L2Subdevice::Routing routing_ = {}; }; /* ----------------------------------------------------------------------------- @@ -950,6 +956,23 @@ int PipelineHandlerISI::queueRequestDevice(Camera *camera, Request *request) return 0; } +bool PipelineHandlerISI::acquireDevice(Camera *camera) +{ + ISICameraData *data = cameraData(camera); + + LOG(ISI, Debug) << "acquireDevice " << data->cameraName() + << " count " << useCount(); + + if (useCount() == 0) { + /* Enable routing for all available sensors once */ + int ret = crossbar_->setRouting(&routing_, V4L2Subdevice::ActiveFormat); + if (ret) + return false; + } + + return true; +} + bool PipelineHandlerISI::match(DeviceEnumerator *enumerator) { DeviceMatch dm("mxc-isi"); @@ -1034,7 +1057,6 @@ bool PipelineHandlerISI::match(DeviceEnumerator *enumerator) unsigned int numSinks = 0; const unsigned int xbarFirstSource = crossbar_->entity()->pads().size() - pipes_.size(); const unsigned int maxStreams = pipes_.size() / cameraCount; - V4L2Subdevice::Routing routing = {}; for (MediaPad *pad : crossbar_->entity()->pads()) { unsigned int sink = numSinks; @@ -1104,7 +1126,7 @@ bool PipelineHandlerISI::match(DeviceEnumerator *enumerator) /* Add routes to the crossbar switch routing table. */ for (unsigned i = 0; i < data->streams_.size(); i++) { unsigned int sourcePad = xbarFirstSource + data->xbarSourceOffset_ + i; - routing.emplace_back(V4L2Subdevice::Stream{ data->xbarSink_, 0 }, + routing_.emplace_back(V4L2Subdevice::Stream{ data->xbarSink_, 0 }, V4L2Subdevice::Stream{ sourcePad, 0 }, V4L2_SUBDEV_ROUTE_FL_ACTIVE); } @@ -1116,10 +1138,6 @@ bool PipelineHandlerISI::match(DeviceEnumerator *enumerator) numCameras++; } - ret = crossbar_->setRouting(&routing, V4L2Subdevice::ActiveFormat); - if (ret) - return false; - return numCameras > 0; }