From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 46607F99351 for ; Thu, 23 Apr 2026 08:21:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=1IwAITGKCH3SLRX6sEAw/pysQRa6LVbNZmoksO5pLMI=; b=PBBZC4Kz0FC86zFd9sqJ8ktFhN gJq3WEArLeIS1QaOnCtI8hH1RhNmaBe4jtDGkDQi3kAeHLahXIMkbQuqqlk7XVhFUiDHMWykA9Flw FyXUoIDE+11/IqkqzkMdvWU530o1Irb/5MkYa0VuyGoeLdjtmwKYXXDTUX1zCfjdyGk50c8+iwzkR LQwFtJoahNQSEAnP14fScdCGRwFCoqS6z0L4Ghgbq0CtsqFYcZPLu7Pxjgc8dkYK9bTWIrQb4GJne iMkVoGiuX8gxBLmM1lpXFmdZt84N5FcdBUM1ZrJoVR1Eu0riiYXYi4x9bvJWRinblt8sOvzY5mNd1 bECz0x1A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1wFpJS-0000000BDu1-3YaF; Thu, 23 Apr 2026 08:21:30 +0000 Received: from mail-swedencentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c202::7] helo=GVXPR05CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1wFpJM-0000000BDgi-2yIy; Thu, 23 Apr 2026 08:21:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=zOSiJyIeKvGOssWJXK8eVe717a7yJ6TecfCxPkpQ8t0sKk9TXJKWH3hfzu8AbRUVAejzbLrp8d/EOKbVEF+TAqAMzEjzAkvv71zBfnfnhCixP2Xawu+3p+zfrGAui/gNBx02BVVhZr2YVqotX4+5n7HY3iDU2TT/3qfxNkghg2OBqad2L5keiq3GUg1AJj926MKMvGXarvsCJ2ERSx9gTaJrdeJ3U2hvZNHyAkpDumOtYsxvmn5EqDgor/Gq9rDg8/Ky2w9QvsSIQFqQ2nXtYoG0FtrARH9cl6Tdxcim2epFq5tbz23pR0+24NNn7ofox94VC5CBCmm9xixb82kWXw== 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=1IwAITGKCH3SLRX6sEAw/pysQRa6LVbNZmoksO5pLMI=; b=ILij92r6sAgo2dSIgF+634LrFwdxrL4HcgkHKgff/H+pbXF3yFB9GFOvhFtL+CsWvFxO2cRJSEhwO2eJMhmhTF9ePBnpyeaCc5WbeVKy5pN/diSb/ZYdG2lRlPU/OEJWYaGGpDiok7JRdo/rxEnWbJ3eLVGi9vDBiTdbVWNZSC1sJTmFooalY64cdYLtd6pnw2MIn1m5uFI7CVaqTJfIU1gM63/lPcs+eZa5dQwZMuoET8mw8wXh76gAvAU+T0Rf35iKMC9hzfPeUXPV3Jlk+NZ4ovVUPTThXddkDXXocYE34qySiOGq8BncELcb8yE54BuV/O6DiUegIazU3V4P3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1IwAITGKCH3SLRX6sEAw/pysQRa6LVbNZmoksO5pLMI=; b=AT6EyJYcN2DTQIK5ShEcmwdnsbFv2jmRs7is75/YWAftMjDS5pgz0e/QwVIX7vl1dC+R3QrgXNvzo49uxkyAdYV98Dkpf1c587877x+JwucohdiDFJ2rp1K3OvJh/GOaZ6IAi1ftxPhWjzltEf2S09Xkgnx/sSoEt4/X4PiGYfpuUa7yNjRwg84RrRz6l1qNxS73uKoP6L3Hap0/KLG8QzUz0/PfBLU8yjBmWF2U+nzETGLZ11X5rvnZCOQG/kEOrcPMi+CP/1X1eO6gkQFp7HJZJZypG3cxu3pyAuWOU9QR1SDSHu4+JJ621Cjd3T1WSk7mygHGF6S53vf6v28FwA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16) by AM9PR04MB8876.eurprd04.prod.outlook.com (2603:10a6:20b:40b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.21; Thu, 23 Apr 2026 08:21:21 +0000 Received: from AS8PR04MB9080.eurprd04.prod.outlook.com ([fe80::92c2:2e03:bf99:68eb]) by AS8PR04MB9080.eurprd04.prod.outlook.com ([fe80::92c2:2e03:bf99:68eb%6]) with mapi id 15.20.9846.021; Thu, 23 Apr 2026 08:21:21 +0000 From: Guoniu Zhou Date: Thu, 23 Apr 2026 16:22:59 +0800 Subject: [PATCH v2 4/7] media: synopsys: Add support for multiple streams Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260423-csi2_imx95-v2-4-934c02f3422a@oss.nxp.com> References: <20260423-csi2_imx95-v2-0-934c02f3422a@oss.nxp.com> In-Reply-To: <20260423-csi2_imx95-v2-0-934c02f3422a@oss.nxp.com> To: Michael Riesch , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Laurent Pinchart , Frank Li , Sakari Ailus , Bryan O'Donoghue , Mehdi Djait , Hans Verkuil Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, Guoniu Zhou X-Mailer: b4 0.14.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776932600; l=2433; i=guoniu.zhou@oss.nxp.com; s=20250815; h=from:subject:message-id; bh=dmtdhzz3oobT0rMu3qFcwdUCUPFa8staym2TF+ge4hk=; b=zvG88WjdOnpib83W0byyasPTvdnkntnBZ+7nVpILtocy9ws6c6sOmDr6549/O383QgGly6Zcr G3qXmAZT5EqC0wFiyu7dJEyUMP9LqEG5d/dZxNHKywlfVK8XtIAbKfP X-Developer-Key: i=guoniu.zhou@oss.nxp.com; a=ed25519; pk=MM+/XICg5S78/gs+f9wtGP6yIvkyjTdZwfaxXeu5rlo= X-ClientProxiedBy: SG2PR06CA0252.apcprd06.prod.outlook.com (2603:1096:4:ac::36) To AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB9080:EE_|AM9PR04MB8876:EE_ X-MS-Office365-Filtering-Correlation-Id: 4998b7e8-82c9-4569-3766-08dea1114cfd X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True 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;ARA:13230040|7416014|366016|52116014|1800799024|376014|19092799006|18002099003|921020|38350700014|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: 6qh3bSBWHpR8FbmIBQI0j0bWFdFs2LdL0/fYlZ1zhjSxuK272okmKj2vijvVnWZQZ7wuhLSnDnxKAGdy3Wi+/2Y/SgEjwHPI8RrD45TR3bn0+gyY5MgHKpEJXihDV+RqzRLTfypUbr78WxdwnKKqlsTmgLQVYe07OG2rydp/likB1T+ssyfQPmH2ybuLJz2au9lJgtJRQi9RtPGc24uBcAHmLlZ0cgE3PskRKN/iyU3+PEctnojGsY2jJhY6pF1jLDPwJXKxsCniUlucjSzU50pBwRBfPoIYvYtHw+HPNH21AOUORAfJKWcEnF/6JlGqCxa/i0pCUfk1PAc/URE4/4IAA8/UU4ReJF2+wSwTEQtlwNCNbFyUtqwWM1TtGlxXvN2K5Iv9QCgT0NLF0HbKEDEWBM0o6NKHNwiRMlQTLNaBzgEGES+X1fW80oPmZd9lE8TfBGtdC8BQrUmXOgusyjwbbmgC5RNikgaMm+iQfcgrvDzaTu0zQxwP56mK62kC3saAJjd/KbwYZnK70UtUWVpDX57gWtt5SdULK3aP/kHsptY3CXDPdftjFPb5sFxVkME+lvBWC5E1Qzm2W8XLUAMXukJ/zCz5xFiFZJ1BiVaFQ3oUYbmPQbqSektyoBf11fr5hj/jssIABJwdZDUi6eGIY33kJ124nkjAOVdO8FJTfbjpVhDnQ2rYkQACtZR2nt/3m26FkDNDoIbEK+nGg0rJqzvN0z0UnEHJZqm719I82Y2YfVwBYxCS6LGwUhyq6XiCoWMyUFoeFK6ydEPllK4nvIhXpPRiQ36SJbecpiPYFS1qcatRyivhVulNNJtZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB9080.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(52116014)(1800799024)(376014)(19092799006)(18002099003)(921020)(38350700014)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QXV6YXBPOEtweWd5MG9hMUt5L3ZGZ1FSd3drRlp2UWsvN21EZklHNEQwUjJ1?= =?utf-8?B?azd5MG9RYzcySkwrd3pJdXJ3SHRqdjBGQWg4bjZGOGI0d04xaEFrdnlkVERB?= =?utf-8?B?Q05qWmNGVndLVnQrRFFFTkFnblV3NFBEWTBUc2Npd2tvYnpOMGlSeGw5UjBM?= =?utf-8?B?dU1yQTRueWE1T1lLaHVNMGpQSmphUWJPaEd5RXNhWTkzaUhqNi9uZlJNRk12?= =?utf-8?B?czIzMmZqbmFub1R0VmFMODJXRzhJaXZ0aldvR0dBVzh5OTVtTC9YbVFrUjhC?= =?utf-8?B?Mzloc3UzUTM2d0o4K0NVRTRvOHNkMDYzdDNGS09oemRRWVVtbjB4SUYySzVq?= =?utf-8?B?ak44SnNISUhoVUNvUlNtN1d5V0tVZ1pDYWZCbS9xcFV5UVZEYUgvd0RPYWJK?= =?utf-8?B?dTNqOW5qT2ZVNVcyS0xFMHdxY05yK09ieGIzNjNQaXF3bThmbWhNTUQ3ZmFW?= =?utf-8?B?OGJObDNBeW9uUG9kUlQvMVRRQnNmY0l6MU9weThQR0k5dkY3NkZwcm9oSVFa?= =?utf-8?B?YUFoRDBnNzM1TjdJVVluUEoyMlMzeHZHUi9tcVZhYk83U1NRdW1KK3l6aG0v?= =?utf-8?B?ZDZsQzAvRkFMaUtRa3FKc0k4RlVRTmxpaUoxVXF6b01McEUvbnV1cFpTYXR6?= =?utf-8?B?Qno4bjJlb0MvMm1zNEVxZkZqR2VmMjZwLzFleHdVRzh4US9aYlVGS1ZKRTNU?= =?utf-8?B?eG5vd21UWEdLV2ZHb3R5bmxLWVRPcHh2MHBRTVFIVnd6YkwrZW11Ti9DSlNC?= =?utf-8?B?RnNmL01NU1BJb2VONmtXZ0EzNVFEaWNrY3JwSG52b3JRQTlseDk3SHVwdmpy?= =?utf-8?B?ZlRidUc4ajVtYzMzMjVJUDROQUduR3JvVXlPdFE4RHMwVFd3NC9Uc09PQkk5?= =?utf-8?B?VGVOTDZXOWxJUEwxdWlLcmFLOU5xdmgyb0R6S096OCtocVl4eUdYbG5TdEdZ?= =?utf-8?B?VXJBbU9TOW5aNnZ3U21ZNkxHZU9YSEVSRGFMK0RBcnBKYmNQWmFxNStHd0tn?= =?utf-8?B?aE5oYVFuU2R2K1RRMFJRdjNweTN6RkpoMGhPSWJKOURVSDhrOExtd1RHaGRs?= =?utf-8?B?N0txdjN0MGFrNmJVTlBaem1Va0wzTm83L0xkWEZFQnZTOFJUMTlWWTF0UFVp?= =?utf-8?B?UE1yTWxZaEMrWHNPR2lqamp6ZzlFY0MweHo2UFhLdWx0eUV4UzJvS3N5NXBE?= =?utf-8?B?dnd2SGRhU0lObGFEQ0JPL01KMDhPTkErYnNlMkF2ZXpnNzlCeUFTeXFEUVk2?= =?utf-8?B?V3dDb1RlUU9sSnd1bWpYeUhYWTN3MWwrQXFxd1pBLzNkQ1dVeldEVUtGK3dy?= =?utf-8?B?Yjd3VTBnWjMyUVcvVTBQRnR4RnAwN0pZbDVyWlh6eUlTdmNWTUFsbGl5bzhX?= =?utf-8?B?L1VVV1FkOWZGYlgrYTgzTk5ONDV1VmJ6UTBseGNCK21HREs1TVF2VGk0SGpt?= =?utf-8?B?czZVS1BnVlJNdjBPRjArUGJEcTUvZFMxUTRmZXF5a3lqcnZVQTFKOHVWWlpJ?= =?utf-8?B?RzI3ZjQ4Y0kzYlo5MHJvYlZLNi9QbXdTUzZkMEJjSHZLT1kybENnbnU3YUZF?= =?utf-8?B?L1pUMUg4OHlqNE0zM1I3eGFPbkdWOTZDa3Y1VVUyUGZCeGd3ZlRvUWFTU2hF?= =?utf-8?B?RzgyajExTGNKVHNieUFrS1BlRktoZGJrQmhMQUg1eWhMN1ZWa1RDVFFsdTgw?= =?utf-8?B?blN0aFF5d3M2ZklORTl5L3FQZlhxL2xnU3ROZERaNFUwWmZxTVdvUGlnaTlI?= =?utf-8?B?cFBvV2N4c25BUWNTazgwd05IMU91UGpqYm1nUnZ6azhwVkhHdytWVjhlSTRY?= =?utf-8?B?Wk9RU0xTeDNOczk2akJQcUgvUlg1ZmdQOE8vUnloVTAvZHAweWp1a1huU2RE?= =?utf-8?B?WHhSeVZWNVkrdjVxbkRnRlBBb2wxZVptZW9tMTh2YlJIWllWVXlycjF6OXNM?= =?utf-8?B?S2s4VEtWTmJUMGo0aDNHeTlJUlpwZ2ZxTEJMKzVDZGJCUndPMEI0QVFJU0p3?= =?utf-8?B?cXJDWmh1eTZkQ0crTVRJRWMxcUd0ZnlFYUcyaFhFYXRBaE1DTG1qQUFWUFg0?= =?utf-8?B?NDJDN0E5WlRDRmNjLzk1a0paYlJDTUo1eHZkclQ1VmJMOHV5bG1JSVRVSm5B?= =?utf-8?B?ODNjalZYZTBEUGtZOW9MV2dLOHRYcHFldUNZYzI2NEU1bnJ2a3RuRU5aU0wr?= =?utf-8?B?WUV1b3pWU0kyNisveEpXdXFPMExFcjdNWmN2ekIxSEpYNmpWRmhXUWsrbGFs?= =?utf-8?B?L2ZhN1NqL0VidytLZHY2clZLeklGaWRlREJMOEJyTjlJQ3FUQ1dNVkRNMW9U?= =?utf-8?B?Nkl4RmF1eUhkOWF0UmpUcjNmZWV0c2VxM3BEVldMbWdDa0w5YldOZz09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4998b7e8-82c9-4569-3766-08dea1114cfd X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB9080.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2026 08:21:21.2824 (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: LuArngpXOwITKwihjYyXMuFbPbEqXM+Itu0AnE6gK6UUPXpTeP0BqldEewKpH2rtVWaZmx/FZbvZfB05NEjzyA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8876 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260423_012127_039178_5CD66F94 X-CRM114-Status: GOOD ( 15.95 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The current driver only supports single stream operation. Add support for multiple concurrent streams by tracking enabled streams with a bitmask and only initializing the hardware once for the first stream. This enables use cases such as surround view systems where multiple camera streams need to be processed simultaneously through the same CSI-2 receiver interface. Signed-off-by: Guoniu Zhou --- Changes in v2: - Simplify error handling by keeping goto labels instead of early returns --- drivers/media/platform/synopsys/dw-mipi-csi2rx.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/synopsys/dw-mipi-csi2rx.c b/drivers/media/platform/synopsys/dw-mipi-csi2rx.c index d572d2eb3bcb..5a2e74d055c0 100644 --- a/drivers/media/platform/synopsys/dw-mipi-csi2rx.c +++ b/drivers/media/platform/synopsys/dw-mipi-csi2rx.c @@ -113,6 +113,7 @@ struct dw_mipi_csi2rx_device { enum v4l2_mbus_type bus_type; u32 lanes_num; + u64 enabled_streams; const struct dw_mipi_csi2rx_drvdata *drvdata; }; @@ -537,20 +538,26 @@ static int dw_mipi_csi2rx_enable_streams(struct v4l2_subdev *sd, if (ret) goto err; - ret = dw_mipi_csi2rx_start(csi2); - if (ret) { - dev_err(dev, "failed to enable CSI hardware\n"); - goto err_pm_runtime_put; + if (!csi2->enabled_streams) { + ret = dw_mipi_csi2rx_start(csi2); + if (ret) { + dev_err(dev, "failed to enable CSI hardware\n"); + goto err_pm_runtime_put; + } } ret = v4l2_subdev_enable_streams(remote_sd, remote_pad->index, mask); if (ret) goto err_csi_stop; + csi2->enabled_streams |= streams_mask; + return 0; err_csi_stop: - dw_mipi_csi2rx_stop(csi2); + /* Stop CSI hardware if no streams are enabled */ + if (!csi2->enabled_streams) + dw_mipi_csi2rx_stop(csi2); err_pm_runtime_put: pm_runtime_put(dev); err: @@ -577,11 +584,16 @@ static int dw_mipi_csi2rx_disable_streams(struct v4l2_subdev *sd, &streams_mask); ret = v4l2_subdev_disable_streams(remote_sd, remote_pad->index, mask); + if (ret) + dev_err(dev, "failed to disable streams on remote subdev: %d\n", ret); - dw_mipi_csi2rx_stop(csi2); + csi2->enabled_streams &= ~streams_mask; pm_runtime_put(dev); + if (!csi2->enabled_streams) + dw_mipi_csi2rx_stop(csi2); + return ret; } -- 2.34.1