From nobody Fri Jul 24 21:53:02 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010049.outbound.protection.outlook.com [52.101.84.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4DA363B38B9; Fri, 24 Jul 2026 07:49:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879372; cv=fail; b=TEvvXQanduBtbdqM0TigU8otl0rTj0orudW44qFyEA1tBt+TBMjl5T8B61z8VBcxiJ5a3kdvSEDUR9JEwHXXAXgabhHUYOdyRcCoyiwXJywPj4+Xcne4ydBg07pkv+xro462NSEk+Y5Cj8T9NVSD6rgVdxi5nlkBK1y5Ex65Joc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879372; c=relaxed/simple; bh=MwpPp7alLqctKRDQx5K4SorX8osLSiJx5foLLcsevP8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=IvuNsVNw8PWDpWWgoARjjn4X2tRahTWAWM6/kjZME5nlYOUeG/WlqjVj3KW3xdpwESKitrOdVGxgNz63UV29P3UhICbJU3fLhTRPXzMmwyanK9zkDAiWZUImLyBNn2vvmpDjrvwfIWsN1dwmO12vRV9PI5MQRRe3aDhZM+9DxPk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=QrMfAM+8; arc=fail smtp.client-ip=52.101.84.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="QrMfAM+8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KCtZ87ZUpUG8KyxXeCqUJLeCw2wz3/myzUUsbFgTv3YJbl31VBOSPcRYJ105OdGDU//wO6S1vm15AOr1gNsuBbSk63vweAlkTydUo7ltPzuYwsUqZ8/lwXotc5u1vCz0UIxQe0T5WVLTkwhAtDd5uYI44vEdc5Ytx0qiaqMHLD3N4loKzWA68EDt6KVPuRhjlb6R43cnktZteGFGqZramFzXlB8YgsFzyRF7yeyN+eVWjZsqFn1s+nqYWdat4r/XQog+DhgBJKi+7x1O4l3UZuJLwUjpK3ze0sUtKw3DYqf6IDHVq2BujqxmoZST5CGrm6fzGsu7AzBVLGHqtlyV/g== 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=QI6aSEQ8zsBAobzAyW9ZK8ge/cJHMTeKnCwf/xh+g50=; b=IJEAxvBHwrVhbG+FtRKIdARfXzrSzZ3ofwooumddyI/D5Q4BesoCgTwOJGhCXQAg3XWvGcKajJ+9ZnnaqTNGmHXEGRftd8/AH4yu7t1rCN+aW33FwVSL202NWaSSbxysNED70gqrYDoEGJrYrasGoOi8c3yqWfESf5C1omGGEEnreSpCjijrgAyKBFlF7CEC2X72iZVXBCGpDsibM/GPWaNVV9CaNCOZ9UyQvZEdjyu1M++EXVvgTreV3PvJ7IDPuAuMuxXxrpDwzY1TY9YpMn0vhDx54filbwOuVWfBRrwIKBJfDJ9YvbgJ+o9HwISH9yb8kOYxraKQ9uPpP0HJag== 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=QI6aSEQ8zsBAobzAyW9ZK8ge/cJHMTeKnCwf/xh+g50=; b=QrMfAM+8ACMY5XW92DztezaXWKzGBI1m6SYB5T46pHoIkQ1FzlTvoQO1HOgOtGtDsxcZbvENCMlqw9WtifftrdelBg2EKZC4iyZSvr53MQe1O6gn6ala++O75UyfjCHh/6xpKeVjNJI3iHdUBzS+DuzRvM8DsVvBrBbji9Z/qEYVfDxvMkjFDVBOw8NAmp3nc0KHhA8frpRqFxgNZX+LxArTjWAZ43Jiwm+19z5bmY7mWERHR8z74r4qkPzOraCL/YPJ4dn+Z1rF4Z5Owa2wrtWhM8hvv/hkERzNtavcpIegBlhP28KK2a6RDMk4ce5TJAobm4qwfQpCjO2n5nHD+A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV1PR04MB11513.eurprd04.prod.outlook.com (2603:10a6:150:284::9) by VI1PR04MB7023.eurprd04.prod.outlook.com (2603:10a6:800:12f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Fri, 24 Jul 2026 07:49:24 +0000 Received: from GV1PR04MB11513.eurprd04.prod.outlook.com ([fe80::29e0:98a1:4577:2cc7]) by GV1PR04MB11513.eurprd04.prod.outlook.com ([fe80::29e0:98a1:4577:2cc7%3]) with mapi id 15.21.0245.010; Fri, 24 Jul 2026 07:49:24 +0000 From: Guoniu Zhou Date: Fri, 24 Jul 2026 15:52:56 +0800 Subject: [PATCH v4 1/3] media: nxp: imx8-isi: Implement per-stream reference counting for multiplexed streams Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260724-isi-v4-1-27df7b5f6060@oss.nxp.com> References: <20260724-isi-v4-0-27df7b5f6060@oss.nxp.com> In-Reply-To: <20260724-isi-v4-0-27df7b5f6060@oss.nxp.com> To: Laurent Pinchart , Mauro Carvalho Chehab , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Christian Hemp , Stefan Riedmueller , Jacopo Mondi , Loic Poulain , Bryan O'Donoghue Cc: Dong Aisheng , Guoniu Zhou , linux-media@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Guoniu Zhou X-Mailer: b4 0.14.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784879577; l=7987; i=guoniu.zhou@oss.nxp.com; s=20250815; h=from:subject:message-id; bh=MwpPp7alLqctKRDQx5K4SorX8osLSiJx5foLLcsevP8=; b=7F/cChde1PLtjlGGbM192ZPStq/PozK2QK/jlEIcNO/R5ehgQmmk3dSPOChFrCSeeEiInZKl0 C62KI/a8avUC/oLHM2JrkkrkXIlxnCcI0PYAKSTCaEJf3q35N6dQMsj X-Developer-Key: i=guoniu.zhou@oss.nxp.com; a=ed25519; pk=MM+/XICg5S78/gs+f9wtGP6yIvkyjTdZwfaxXeu5rlo= X-ClientProxiedBy: MA0PR01CA0021.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:b8::9) To GV1PR04MB11513.eurprd04.prod.outlook.com (2603:10a6:150:284::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1PR04MB11513:EE_|VI1PR04MB7023:EE_ X-MS-Office365-Filtering-Correlation-Id: 250042d8-00b8-47dc-a186-08dee9581477 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|1800799024|376014|19092799006|23010399003|366016|921020|6133799003|18002099003|22082099003|11063799006|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: fSi8e0TmVRm7eQc7qJpaJTIJZQeGqfoTYKLkzozzXa1tJ/TVPMVbhfmjlvjFYYPlWNINR8eTk0SRNtVKVMis0FKYTnrAFl+aOah8BnIFN0xlHmazo3fgQjkhAsdqzCp66XAQMhwFT3xbvhgzSqJlIFNQUNCu2QKuMCbkfMq+r17TUuLVz2W5LMFP+FclGe7Dj7yjcSbqDAI6NgNS/NRz1VvLj7hImNkXT1HrF+CVk+tD6KNvgIoqtat2kaUK9gJAI5DOGT/FrQihqrPQSrXZxj9egFMMyUXgQ63TaFlKVSB10DAOSFpdKhMsVpoMa+G3MPyIowEz2tUuRCHa9FbmXem0yFFFeXVjjKVf1BismABMnM9ncxmXvky3EXg4RktR8xa6/WC927T/evcfLXQ4JCoP4uIRGFU/mbxw9hEDhYznOQn2ddrJfgQo3rGeehAiLFdjllB/oicfVN0gFm6o7U6uDOy/fX3C3Gy6oqeNqGhnQt3AbO1eDjErCOe2FAbq7wvwvmOvUTLIWx1OqOtJFFJ1v6o1lN5SVHO/4iQjCljW8ZpQOdYSYIfebJw3/nM+MwTlvxdRjzvMYxJlQtzyfVvCAYhzahYmqXec8RepuakqTQdH7D8+ffObfCLpDa85dvqViDSm1Ayke3S8LdOpEurdRQ7hiSKW7qzEgch9eLwI48kyoFwRY/fJcbsFWpa11LfII+Lj5Bd5mSyLzNsBCQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR04MB11513.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(19092799006)(23010399003)(366016)(921020)(6133799003)(18002099003)(22082099003)(11063799006)(56012099006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dEJTcVdXRmVGbms5bHFzRVZ2ZDRIYnQwcGFWSHc1RXVhalB6cUVTOHdRQzUv?= =?utf-8?B?RHRKVGd1a2N5bU5GRjBQL0lyU3J2aWRrSUJuZ3ZLTzlEeEtLTzU3SXVZSCtK?= =?utf-8?B?WEZ5NjJRYVlnNWhhYlRQUjIwNzh0dmIzeURFY2x0bDBKaURzeWtYZ08vbGFk?= =?utf-8?B?M3VkTVpYSFdURlZRcXAvNC9IWjY1SkE3MjVGZG5GNDBUMXdhU1pFNVNyUTVm?= =?utf-8?B?OFI0T3lPeVQyZXdtQlluaXpnL1FXRTl3L2k0a3podHh0N2RMbnN1TWhSSGZP?= =?utf-8?B?d0RPQ0hMZXVnTUo0RXZ1WitoUGVhcEMwbUFkejdlNlordEdLZWhHV3JuOEdo?= =?utf-8?B?d01tVGVjNUZVYVovTnIwcUEwdStKayt1TlYvNVpCRU1scEdmUXRqK0ZoRldW?= =?utf-8?B?Y2t4NEQ2ZldlamJqdE1wZVA1TTJKMmFGS3hNQTZ0NlBJZUlMR1VyT1dmaUJP?= =?utf-8?B?VTRKK3laMjJpRkFNSEhNelVUQUd0bzFyUlAvWHVObWg0M1RQZkk4UFV0cm9Y?= =?utf-8?B?VHJrWDV6TmpQZEF0Y3duOUROZWpZTFJMSStmbjBzYjVsTlMza0RsR1k2aHE1?= =?utf-8?B?QzFwRkFQQ1ZvWE1IODJHdDlkUzlKbFBRQ2taVDlXZDZGTjZVajdFR0Z1RGx3?= =?utf-8?B?M1hNUzRXdG1NSGpRUW1ETjdRYklRdkp2ZUgwTm41eVlPczhZYlppemZJUVVh?= =?utf-8?B?VlJRck1SdS9xT3B2S0JBZm93cE9tR1pGcTkxdGp6dmdNcjlCeDVtYUNzTSti?= =?utf-8?B?RmxndlkrOVpsUEhrQ0VxamJWWjNUeUZsbC80dHpuUTY4aEQrcVI1cU1IWFJG?= =?utf-8?B?STdqVG8vd1FrOVkydDZJcGtlZ0hhTVJaNFVoL0ZGMDFxdWc2M203MUlEQ3da?= =?utf-8?B?bVhvY3hZMXBLRTEzQ0Q0c3V5S09WdVp2Q2VVZG9NaHRKK0Z6cUs2dzNkSVhB?= =?utf-8?B?cWZmaXpTNnI2UUQ4Y1VsUVFyTjNFd0lsdmpWQWFrWXNtYXRJLzh4b2RFS2dQ?= =?utf-8?B?YXZvS2QwUGs3K2gzYUV4MmpYTjNrbGdqVU5qVUlkcnZsWmt5dlBSTkhrU0F1?= =?utf-8?B?SFAyYW9zZ3JpUUVnVW5Xb1RacXJ4cUZ3NVlyUyt4S1p4bjRSM0JvYjlYTm42?= =?utf-8?B?RmJOSFRHaGFjL0tWQ2w5QURra2h0dFZ5dklwdGhPOGY5ZlhNakZaT1hwS1Z4?= =?utf-8?B?TmNRMzRTRWJzUFBSQzlobzhMeGxNN2xlYUE1ckRTQlplSUEvRkpldmVjMXN0?= =?utf-8?B?TS9CUWYrb0tFaFc2alJDYksyUXppdUtlQTFrQU83TGZyRERJOWlxK3NIdE1J?= =?utf-8?B?NzB6TzFWMEZ6RWtEeEV1SkxaQ2lEZ01lZ0IxYVZsaVlhVDhlTG1jWnM2VmNM?= =?utf-8?B?TnFTTDBBaWx6dWhJdVA3ZEV3ZHZvTnljOC9Zbzk4OHFsSWxMdG1CYWIzSVhJ?= =?utf-8?B?YW5tQm1CcVo0VVlmWndkM2orWVgxTGZCcVo4UFBGZEJ4QTlPTVJVd25CSTA1?= =?utf-8?B?UDVGZFg0U1dUeEg2bS9PdWp4Qko3SzhXSXpSQTJnZmVVNWpLaHNrYThqRHYy?= =?utf-8?B?VE5IYWVwOWhXQ3U0czFwODEyWTFSWTRKa1RkS2duOUpSZDJOOE94YXd1TnFr?= =?utf-8?B?aDUvVC9ZeWRHdndnUEFQb2FwOG1jYzdGQU1kSmN2SjYwd2RZVkw4Q0NLK3Ra?= =?utf-8?B?U29pK1JzelNNbGtmRE5CL2N4ZmN3Z0xsVHlhSURLNmpDU2RGNkIvYXcrdExT?= =?utf-8?B?amZLSHZpTmx3MGhqU2xlSDdCVVVnNUR3M3hYM0hoWnJQNlQ2RVBuQ0F6VFhu?= =?utf-8?B?SDV0cERod1hGZ3l1aVRhZHlKQXREci9hREkrQlFrMjlrME5UVWtwdG0rWDhF?= =?utf-8?B?MkJVQ2QvQXpjRXZydnZrNDZGNUJ0QmRSbmRIWGdPTUNFWjN4Nk5CTTFGaHA3?= =?utf-8?B?YXdLLzl4T3V1ZGlOd05jdVVtUEVEVFZsZ1ErVXlHeXpiT0hvMmpVVllDNTR3?= =?utf-8?B?Ui9wbkZ0aW01a2c1TGwzbHVjc1p0dWVsOVdsNXRBZFZncy93bHlVSzBBbXFv?= =?utf-8?B?SklSN2V0eEVFZWdiVFlKc2RaS2l2RENrcVJUbll0QVhIWkprYVJGaWF6RkxM?= =?utf-8?B?T1VGQWNWUU1mMm0yNWVLbnRWYUR1cFgyT2tXc0Rsd0lLNHRYb2ozMlUzVmxx?= =?utf-8?B?WlV5Rzdzdy8xMkpuMVV6emJPeDBTUEhObDI3b245V3VTYlE1VzRKY1V4VWlH?= =?utf-8?B?V1Yxb2grM1VhbkE1NEVSSjNBcFIzb0JDa3FrWUl1WkZJWE5aSTIyVzBkeU9s?= =?utf-8?B?YVdwOGlTaTFsVlZhWkVwOXJRMGhUbFZLc0ZvdWNaRDNxY3hYb0VKWGljME4v?= =?utf-8?Q?a6sJIubJZSpgToT2Q1i5OyAGqi32t+VPEFMgv?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 250042d8-00b8-47dc-a186-08dee9581477 X-MS-Exchange-CrossTenant-AuthSource: GV1PR04MB11513.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 07:49:24.6084 (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: dbP2CjmjdR15AE8UbVS87OB31j9HkFfnnI0YDblzLTP62DZFmIUfrzVI4+Pyym5v8BLzTBsMsGMa6IzyzqJsGF8pcPaJcupI+vX35rfDnK3H9RGoK+HV5ldnFvszCLom X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7023 The ISI crossbar needs to properly enable multiple streams from different virtual channels on the same input pad. Currently only the first stream gets enabled in hardware, subsequent streams are silently ignored. The driver uses a single enable_count per input to track the input state. When enable_count is non-zero, the code assumes the input is already active and skips calling v4l2_subdev_enable_streams() for additional streams: Call 1: enable_streams(stream 0) -> enable_count =3D=3D 0, enable gasket and stream 0 in hardware -> enable_count =3D 1 Call 2: enable_streams(stream 1) -> enable_count =3D=3D 1, skip hardware enable -> enable_count =3D 2 -> stream 1 never gets enabled Similarly on disable, when enable_count reaches zero, ALL streams are disabled regardless of which streams are actually still active. Implement per-stream state tracking by storing the input index and stream mask in the mxc_isi_pipe structure. On enable, record which input and stream the pipe is receiving. On disable, clear the pipe's record and check if any other pipe is still using the same input stream before actually disabling it. Signed-off-by: Guoniu Zhou Reviewed-by: Frank Li --- Changes in v4: - Make enable/disable symmetric by checking stream_in_use - Add mxc_isi_crossbar_stream_in_use() helper for both paths Changes in v3: - Change from "Fix" to "Implement" as multi-stream support is for newer SoCs not present when the driver was merged (Laurent) - Remove Fixes and Cc: stable tags (Laurent) - Store input/input_stream in mxc_isi_pipe instead of using per-stream counters array, avoiding arbitrary 64-entry limit (Laurent) - Use UINT_MAX to mark pipe as inactive to distinguish from valid pad 0 Changes in v2: - Use fixed-size array for enabled_count instead of dynamic allocation - Use BIT_ULL() macro for u64 bitmask operations - Use MXC_ISI_MAX_STREAMS (64) as loop boundary instead of num_sources - Remove mxc_isi_stream_counters_alloc/free functions --- .../media/platform/nxp/imx8-isi/imx8-isi-core.h | 5 +- .../platform/nxp/imx8-isi/imx8-isi-crossbar.c | 84 ++++++++++++++++--= ---- .../media/platform/nxp/imx8-isi/imx8-isi-pipe.c | 1 + 3 files changed, 67 insertions(+), 23 deletions(-) diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h b/drivers/= media/platform/nxp/imx8-isi/imx8-isi-core.h index 9bb4d430d15e..c07abdd6a1f0 100644 --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h @@ -186,7 +186,7 @@ struct mxc_isi_dma_buffer { }; =20 struct mxc_isi_input { - unsigned int enable_count; + u64 enabled_streams; }; =20 struct mxc_isi_crossbar { @@ -259,6 +259,9 @@ struct mxc_isi_pipe { u8 acquired_res; u8 chained_res; bool chained; + + unsigned int input; + u64 input_stream; }; =20 struct mxc_isi_m2m { diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c b/driv= ers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c index 9f0231ca47a3..f7a629b341cd 100644 --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c @@ -330,11 +330,26 @@ static int mxc_isi_crossbar_set_routing(struct v4l2_s= ubdev *sd, return __mxc_isi_crossbar_set_routing(sd, state, routing); } =20 +static bool mxc_isi_crossbar_stream_in_use(struct mxc_isi_crossbar *xbar, + unsigned int sink_pad, u64 sink_streams) +{ + for (unsigned int i =3D 0; i < xbar->isi->pdata->num_channels; ++i) { + struct mxc_isi_pipe *pipe =3D &xbar->isi->pipes[i]; + + if (pipe->input =3D=3D sink_pad && + pipe->input_stream =3D=3D sink_streams) + return true; + } + + return false; +} + static int mxc_isi_crossbar_enable_streams(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, u32 pad, u64 streams_mask) { struct mxc_isi_crossbar *xbar =3D to_isi_crossbar(sd); + struct mxc_isi_pipe *pipe =3D &xbar->isi->pipes[pad - xbar->num_sinks]; struct v4l2_subdev *remote_sd; struct mxc_isi_input *input; u64 sink_streams; @@ -351,29 +366,44 @@ static int mxc_isi_crossbar_enable_streams(struct v4l= 2_subdev *sd, input =3D &xbar->inputs[sink_pad]; =20 /* - * TODO: Track per-stream enable counts to support multiplexed - * streams. + * Check if any other pipe already receives the same input stream. + * If so, just record this pipe's usage and return. */ - if (!input->enable_count) { + if (mxc_isi_crossbar_stream_in_use(xbar, sink_pad, sink_streams)) { + pipe->input =3D sink_pad; + pipe->input_stream =3D sink_streams; + return 0; + } + + /* Enable the gasket when the first stream is enabled for this input. */ + if (!input->enabled_streams) { ret =3D mxc_isi_crossbar_gasket_enable(xbar, state, remote_sd, remote_pad, sink_pad); if (ret) return ret; + } =20 - ret =3D v4l2_subdev_enable_streams(remote_sd, remote_pad, - sink_streams); - if (ret) { - dev_err(xbar->isi->dev, - "failed to enable streams 0x%llx on '%s':%u: %d\n", - sink_streams, remote_sd->name, remote_pad, ret); - mxc_isi_crossbar_gasket_disable(xbar, sink_pad); - return ret; - } + ret =3D v4l2_subdev_enable_streams(remote_sd, remote_pad, sink_streams); + if (ret) { + dev_err(xbar->isi->dev, + "failed to enable streams 0x%llx on '%s':%u: %d\n", + sink_streams, remote_sd->name, remote_pad, ret); + goto err_gasket_disable; } =20 - input->enable_count++; + input->enabled_streams |=3D sink_streams; + + /* Record the input and stream for this pipe. */ + pipe->input =3D sink_pad; + pipe->input_stream =3D sink_streams; =20 return 0; + +err_gasket_disable: + if (!input->enabled_streams) + mxc_isi_crossbar_gasket_disable(xbar, sink_pad); + + return ret; } =20 static int mxc_isi_crossbar_disable_streams(struct v4l2_subdev *sd, @@ -381,6 +411,7 @@ static int mxc_isi_crossbar_disable_streams(struct v4l2= _subdev *sd, u32 pad, u64 streams_mask) { struct mxc_isi_crossbar *xbar =3D to_isi_crossbar(sd); + struct mxc_isi_pipe *pipe =3D &xbar->isi->pipes[pad - xbar->num_sinks]; struct v4l2_subdev *remote_sd; struct mxc_isi_input *input; u64 sink_streams; @@ -396,18 +427,27 @@ static int mxc_isi_crossbar_disable_streams(struct v4= l2_subdev *sd, =20 input =3D &xbar->inputs[sink_pad]; =20 - input->enable_count--; + /* Clear the input and stream for this pipe. */ + pipe->input =3D UINT_MAX; + pipe->input_stream =3D 0; =20 - if (!input->enable_count) { - ret =3D v4l2_subdev_disable_streams(remote_sd, remote_pad, - sink_streams); - if (ret) - dev_err(xbar->isi->dev, - "failed to disable streams 0x%llx on '%s':%u: %d\n", - sink_streams, remote_sd->name, remote_pad, ret); + /* + * Check if any other pipe receives the same input stream. If so we + * can't disable it yet, so return immediately. + */ + if (mxc_isi_crossbar_stream_in_use(xbar, sink_pad, sink_streams)) + return 0; + + ret =3D v4l2_subdev_disable_streams(remote_sd, remote_pad, sink_streams); + if (ret) + dev_err(xbar->isi->dev, + "failed to disable streams 0x%llx on '%s':%u: %d\n", + sink_streams, remote_sd->name, remote_pad, ret); + + input->enabled_streams &=3D ~sink_streams; =20 + if (!input->enabled_streams) mxc_isi_crossbar_gasket_disable(xbar, sink_pad); - } =20 return ret; } diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c b/drivers/= media/platform/nxp/imx8-isi/imx8-isi-pipe.c index 16085f23bc0b..c0ec59856374 100644 --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c @@ -816,6 +816,7 @@ int mxc_isi_pipe_init(struct mxc_isi_dev *isi, unsigned= int id) pipe->acquired_res =3D 0; pipe->chained_res =3D 0; pipe->chained =3D false; + pipe->input =3D UINT_MAX; =20 sd =3D &pipe->sd; v4l2_subdev_init(sd, &mxc_isi_pipe_subdev_ops); --=20 2.34.1 From nobody Fri Jul 24 21:53:02 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011010.outbound.protection.outlook.com [52.101.70.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A4DE538F929; Fri, 24 Jul 2026 07:49:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879381; cv=fail; b=XaK/xW02gmXBNiy8ZndNNSQQWiPjJwT3jA8pZUnmsVsJdpL2Gn4QLIZe13zPd8aThsneHWz0kLru3+zwFWBk4IXZFTDOZ1Fa/X5kiADq7lw6rmSbHwbN3ygAyM8S+3LlAN+3g4cNBm+HE7mAhlSrrTZGmGejfQRDiTfFupQSS8I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879381; c=relaxed/simple; bh=FBqKnSHGUfWOqMSzkV840/+1q3AtfMVyJLpE/l2zjEg=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=PUoR2N18Mn6wFduNmjLxpaf5ksrJk/IhkdPLZ0W3xEHFXWYLh3ab4G7DCFnsV+tdT3F0A+awyAYXpUpTXuRTh8qUeNO9lek1AvxFtdM238Fhcs6TU+C7vm8LaqdzJgFdP0UskCrozX2Esk3HbqYUZAK5DfVD14JBvrXy2S1vj9E= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=K/1hg3tI; arc=fail smtp.client-ip=52.101.70.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="K/1hg3tI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yu9+uQ13dNnNtfIZMy5NWfwShJ86uqQanDi2hSksbRVCH+LtEmyExsfTtdnh/r5MQl2mk5gC2gi4ODiGB0Q3eq5BK2ieUPhncuZRtgpRQ43hEoup0IIRXYzqwtrx003nxLjDi8nzThhed2KhC1K+PoE0/4r5wRedsuxU0esBW3jWc/+Vtyi2Hcx74CPkDCgKoGIZOxntf+M6FfMVghvJX+Dk/J10IyNY9vSV0ScPq7ocmjf2sVeV1quuzyzTeg0iNI5UFX2T2PY3/ck7zTDnhWj3od0Hdo5VwZZGLJLesSuApcVo+Fq6DJckUaYIqbvC+RPbhtCwiQPCrSmnx4xwiQ== 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=F/KyVCtY7F4WUAmqcTHdYeVb2be16vEeFYi+wrYA6do=; b=BUj+DZoTAFRDlAmBpKE9rgdO4Vo3UrgO6aENeE3PzM8taUmgpZVGEE7vvjNZMgpp5kknMcfP01z5HPZ4pkgenLfTUGCZPB7dxyPWnddyHHsixK87tHN6gOk9pIBog2/6r87df+072FUrWkJY4SNJWrEbXzTuOynQHQ/sYeBvkQ1iz2N9+VxUc7OCsaZHkGq3Bi0TMoaSQZX4fwwR7JML/2VyFxOp82X3XMJuyR3SPDmkoSlGknA1pjdAMwkT022q3L9eUy4WdaHOTXxVXiO9rHpgIJ9QliscL3p098jF8q2hrUhC0wogD0Qjktwe6SGfIIlUkherZJWFST0rwJfarA== 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=F/KyVCtY7F4WUAmqcTHdYeVb2be16vEeFYi+wrYA6do=; b=K/1hg3tIc8bx5oOF5EHDIrqu5MRpynC2mLZlcPt2d0y2tmKkMbKm9PagVpF5TL+r3gauB7Sc7XSfiMAynuCaVupnUWrmPAth9Prf9CsmVQoa3+wOUwyEWtJYuAmrhFPpajh7rgmQ4G/ZACii4BaSV8cFPdOyEGEyaFTC5UZ4IzyaCoQB4qR4TsWQt9mUbmzS2QAYVcMmQnK3qXK36ymqWRX+/rDlTz3Mw3lC/pyjHitgEehlt+p7xQYCk+itWfFEQL88VRqy7xEYFLr00bWpcFzv5HLb4VPNnh1SYVj7IjSbQy9GOGjpdJukpSXgoNdTtZGCJXigDo+IZTKjleLiRQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV1PR04MB11513.eurprd04.prod.outlook.com (2603:10a6:150:284::9) by VI1PR04MB7023.eurprd04.prod.outlook.com (2603:10a6:800:12f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Fri, 24 Jul 2026 07:49:32 +0000 Received: from GV1PR04MB11513.eurprd04.prod.outlook.com ([fe80::29e0:98a1:4577:2cc7]) by GV1PR04MB11513.eurprd04.prod.outlook.com ([fe80::29e0:98a1:4577:2cc7%3]) with mapi id 15.21.0245.010; Fri, 24 Jul 2026 07:49:32 +0000 From: guoniu.zhou@oss.nxp.com Date: Fri, 24 Jul 2026 15:52:57 +0800 Subject: [PATCH v4 2/3] media: nxp: imx8-isi: Add 16-bit raw Bayer format support Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260724-isi-v4-2-27df7b5f6060@oss.nxp.com> References: <20260724-isi-v4-0-27df7b5f6060@oss.nxp.com> In-Reply-To: <20260724-isi-v4-0-27df7b5f6060@oss.nxp.com> To: Laurent Pinchart , Mauro Carvalho Chehab , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Christian Hemp , Stefan Riedmueller , Jacopo Mondi , Loic Poulain , Bryan O'Donoghue Cc: Dong Aisheng , Guoniu Zhou , linux-media@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Guoniu Zhou , Laurentiu Palcu X-Mailer: b4 0.14.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784879577; l=4848; i=guoniu.zhou@oss.nxp.com; s=20250815; h=from:subject:message-id; bh=6aW5Gxspe2hmQsP07FnJdw4wxhOn0r0RgT67abG/4xo=; b=xD5ag4b+Sm9a/hwRnzesOWNqZsrI/VnxeEiV8gRXsVCLOkl82WKta85DCBuxBnFMrvAS083/a FrUJBCpZD8DDwEY+yC4FSikw8qpgPsh0hg7opudHLckD4JJshoZtn6t X-Developer-Key: i=guoniu.zhou@oss.nxp.com; a=ed25519; pk=MM+/XICg5S78/gs+f9wtGP6yIvkyjTdZwfaxXeu5rlo= X-ClientProxiedBy: MA5PR01CA0029.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:178::17) To GV1PR04MB11513.eurprd04.prod.outlook.com (2603:10a6:150:284::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1PR04MB11513:EE_|VI1PR04MB7023:EE_ X-MS-Office365-Filtering-Correlation-Id: 09a2521a-68f1-46ad-1fdf-08dee95818df 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|1800799024|376014|19092799006|23010399003|366016|921020|18002099003|22082099003|3023799007|11063799006|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: FMJ82MVMAfG4qbhD2+JCIBub9bzc5+kHsFub/oYlCpUcSRzxiQvxWypdZgAZhe1yLs16LleOsQ6OPduPtKy8QrKRRbwp8y45VPzprycJUOqx+fMipCShjSCy/HtGyHAgSfCie1LjmpyjP6Dwq7WVoi6oGjEco+eZFLQ8reWujDIc2+W8+WbMNvZW3GOq1ulM/gNKmukUW5fnVFmbfBTFwj+wY42ZC319jujqF+8nuitP53hI7U5GoFBukUxiXGVZ+RXXBpoDCNXZLuwTdkMtYTlW96QqZUXWQpNHhgYsjYbr5QbEu6jXYwJixtpljQOSjXqW55mkeGr/NvMJjxpB1YQDfWYGUUAusxY6u+QSaaBHWhZLPAxzAi/GaBxte1+lMrVDl3UIioWN7MUwbo4alVD7v6st9c0/Zikl82vdWH5dEv8kU7HgUz0MO91cEv4CDmXTD0oZ3piOOPyqEuhmfm/zfQdw+ripQWcJZXUI4RjhOu1ZMcM4hg7Vs0lWa1JlSdYTZO0knCiOPWK5UYYyrwtYepZXHBurPxMk/4p0tbmAMIgvDMU4I/1+dJm1bVKWJpMxTcGo+GjtQv+D9UT3OWpNVT5epP32vSd++IJzMRJ30hr8L1fBi3KlHap/FkQbAT1MMLkCCa6IQUNtHFAJBN7Sd+eYDQI3gAMzO7GfRErXIm5y0SbHWwm0adPSQ6qAv6/Ig4U6OWmGa7lgBk1gzw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR04MB11513.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(19092799006)(23010399003)(366016)(921020)(18002099003)(22082099003)(3023799007)(11063799006)(56012099006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dlU5NDFKYkI0MWhFTDU3cGRNbW85TC9OeEpqYUN6QzhHelVaeW16LzVVRzZk?= =?utf-8?B?RkNJaFJRY0JMTnpKc3U1WmErMzgxcTM3UWlLbjZGZVJqRjZQa2VGS3dHbnNU?= =?utf-8?B?OTZoeTVVS0hBZ3VJOHBXbHZVdzdJN2wyTXRMOUwrdm5sRkwvTEtmR0JPL1ZD?= =?utf-8?B?OUJYZUZ0Z2Q2WUNxR2loZ1JQOUFINEVnVS9HTHRiK2dOK2djVnhKblRVMjRv?= =?utf-8?B?WUw1Wml3dFVQZkQ3Y3BVbFFZT0pQMDA3LzNZOTRvZHlXckNnVHlVYWljTFhw?= =?utf-8?B?ZmtBM1FhL3VweGlaYWEwckJncGI1VXVoeGlkMHFFWml0dlpOM2VkRENhNFFC?= =?utf-8?B?bGhLcVVML1IyNHoyeGpOd0pra0R1ZllaYXp1dHU1alZSek5yZHJlelc2ancx?= =?utf-8?B?VThvZEwwYUdVT0hhT3pSWFBtSDg5MEdjQlhFUTlRTTVEc0tjSUkwd3NIUkZT?= =?utf-8?B?a0JoUlRLbmJ4MUpCck5lQUIrRngybFFVK2NTejVnUjR5RVMvWWJwL2hrOVVO?= =?utf-8?B?MGJpUkd6TTRseVczUitYNmU5K01BaVhoNXc4cWQvUW5EQzJZVmJDZEtpZzMx?= =?utf-8?B?eUprSWc4NEhodXB1RmFNRkpnZTJteFhraERseWhtcDgxUmJUWWdsOUgrOHNa?= =?utf-8?B?TitnN0J3aTExZ0VVWjhHQnkxYlVMdlViYzhLYjh1UWtZUnRMYVlzOXB5a2Yz?= =?utf-8?B?VFJvWGdVNVNWZEJEZmpGdFVtSFpmbEZVcmlTSDJDTHVZTldVS2tQVlZiZkh0?= =?utf-8?B?eFMzZ1BKZHJId3F6RExFWWJTMEJIMytWVmVnNGJsaG5oTjdFU0EwczErNElS?= =?utf-8?B?U3pWT3I2MVpsVTBqRjIxd04waks4SU5DSTBKREhzejNJUjNGaTllaTB4VDh0?= =?utf-8?B?b0VjS1BrQ3VpQXFERkhnTWVlUXY4U1ZtWWRDbVdId28rSUNpY1pYVjRpWVRB?= =?utf-8?B?ZlgrRU5JNy9CSEE2Tm1zQTJSYVh0RCtDZVBFZDR0bHhJZ0ZMTTdlT2VNUStJ?= =?utf-8?B?SWZGNUtXRzRISmhNYzdUdmU1eUVQVTBEcUFGSGhzR1B4YlA1TElFUEtLSTAy?= =?utf-8?B?SmRiS3BkRXlaWUpSL2NzN3BnLzRGWmtuMFM3QXV4M3ArVCttOEwwK3RiSXBl?= =?utf-8?B?Yk1LZ29OdjZnUi82MUdNN25yRC9aOURQZUhxVnVyeWJFM1gwZ3o3MnFvblZL?= =?utf-8?B?aXFtazR2YTBjUmh4S0NFWGdqak40RXlBV2E1ZkUyUm9oT3lJT1pBbDhWN3JW?= =?utf-8?B?YkhKMmN3bExBRWRQMHJNVlZDamhweWJRK1l6TlhhUi9ZdGVRVXNJZ2lyK1Nr?= =?utf-8?B?OFMyTklxOGtBZktWejJMNkxOekpQNmVva2wvL3pwNnFUQTNSY0xIS1pPdjdl?= =?utf-8?B?NXcyQk9SRS9Oek05d0dKcHZIZld1SFQ1dXdyazVBcDJLbHgvZ2E1WWpmL09M?= =?utf-8?B?R0JmbzZGOFk3UDc1aVRlTnZEeno3L2FOQTUweXVPdWV6SWtIeS83dW9yczJy?= =?utf-8?B?a3NjandJY1l3YnRoc0FPa0syRE9GeEdOd2lDU1BRVCsrVVdQSGp4MTF6SkZw?= =?utf-8?B?MmJoWE5iZUpIRGNZd3dsS1RGOTFvSWRKVkpiOUlBbGJ0bUgyNWFwaG5MeVkr?= =?utf-8?B?YVFoVU5INGNKcVBhTEwxdG5ubXJUNGxrMVc0VXlEWjFzVUxiSVpZTkVoc1pT?= =?utf-8?B?N3BxQkN5dHdmRzVoR0hiUzZPOTY4MGpkK3pMUER3NldQWmNyRitGMUcrRGpt?= =?utf-8?B?cU9jekozRFNuamNjdmltK0hOZ0QxMDR6NjlvWTV4Rk1TZjRSNGNyM0ZwdGpV?= =?utf-8?B?MzRqWHhVMDZoMDdLRS82Nmw4WnVKWVBLaENaendLdm82UWErTU9PM0pRN0dm?= =?utf-8?B?NjdwNk1zSmk5S3pnLzZVSEhlS1BKNDBWNGo2RG03ejFJNE1tZm9XVUxGbXVl?= =?utf-8?B?N3pPaGRLaEs2S0lXenU1dStEY0JsdzJObExyeXl1T3puYkN4cWNHOTFlZlVH?= =?utf-8?B?WS9WZ01aU29HRy9sYmpXdnR6eWVNeUs5bHF0OCtaM0dJaTF6YVBvYnh5dXNn?= =?utf-8?B?NGJ3ME1id2ZleU5qNjdpYmYwaml5N01mRG9zTlJkbFAyUStqTDhITTIvMFgv?= =?utf-8?B?V21ibm5ReHRpS0dNazM3M0E1MnA2VWI0QUxLeTBuc3hacVBTczd2ZS82T2wx?= =?utf-8?B?a29qaElwQ1IwOExqMzdlKzZleWtyUVcydEhmNkJFSDFYMEFVMVVlT3FtcnBI?= =?utf-8?B?TTUvZVBwRU1jWFpvVHNsYnRCOUJESUViYk55eTB5QUs5aHBoa25uRDB1ZFFi?= =?utf-8?B?ZjRZTUk0Rk00QUZPVHdUTTVHbmc2RGRCL3BEbXJiWTJvd0pjRW1QZjE2TEdq?= =?utf-8?Q?yzL4UVEBV64ByilWgXpga+s5sqaTHU1+eW7jW?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 09a2521a-68f1-46ad-1fdf-08dee95818df X-MS-Exchange-CrossTenant-AuthSource: GV1PR04MB11513.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 07:49:32.0283 (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: 4qqh8M8xGq0oH/rZ/DZiauJAZ6a+bqlnFq6YBVsFVPBeOAqb4DL+XKZZaUZsYnv2mi6HbOBO7olxaqENkttX6o1bM6NJF0nfkWjufwhL4rXFr6S7vcwHExTse1oJHJQ0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7023 From: Laurentiu Palcu Add support for 16-bit raw Bayer formats (SBGGR16, SGBRG16, SGRBG16, SRGGB16) to both the pipeline subdev and video capture interface. These formats are used by image sensors that output 16-bit raw data, enabling the ISI to capture full dynamic range from such sensors. Signed-off-by: Laurentiu Palcu Reviewed-by: Frank Li Reviewed-by: Laurent Pinchart Signed-off-by: Guoniu Zhou --- Changes in v3: - Remove "high-end" from description as RAW16 is common now (Laurent) - Add Y16 (16-bit monochrome) format support (Laurent) - Add Reviewed-by tag from Laurent Changes in v2: - Add Reviewed-by tag from Frank Li --- .../media/platform/nxp/imx8-isi/imx8-isi-pipe.c | 30 +++++++++++++++ .../media/platform/nxp/imx8-isi/imx8-isi-video.c | 45 ++++++++++++++++++= ++++ 2 files changed, 75 insertions(+) diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c b/drivers/= media/platform/nxp/imx8-isi/imx8-isi-pipe.c index c0ec59856374..934f7b356258 100644 --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c @@ -83,6 +83,12 @@ static const struct mxc_isi_bus_format_info mxc_isi_bus_= formats[] =3D { .pads =3D BIT(MXC_ISI_PIPE_PAD_SINK) | BIT(MXC_ISI_PIPE_PAD_SOURCE), .encoding =3D MXC_ISI_ENC_RAW, + }, { + .mbus_code =3D MEDIA_BUS_FMT_Y16_1X16, + .output =3D MEDIA_BUS_FMT_Y16_1X16, + .pads =3D BIT(MXC_ISI_PIPE_PAD_SINK) + | BIT(MXC_ISI_PIPE_PAD_SOURCE), + .encoding =3D MXC_ISI_ENC_RAW, }, { .mbus_code =3D MEDIA_BUS_FMT_SBGGR8_1X8, .output =3D MEDIA_BUS_FMT_SBGGR8_1X8, @@ -179,6 +185,30 @@ static const struct mxc_isi_bus_format_info mxc_isi_bu= s_formats[] =3D { .pads =3D BIT(MXC_ISI_PIPE_PAD_SINK) | BIT(MXC_ISI_PIPE_PAD_SOURCE), .encoding =3D MXC_ISI_ENC_RAW, + }, { + .mbus_code =3D MEDIA_BUS_FMT_SBGGR16_1X16, + .output =3D MEDIA_BUS_FMT_SBGGR16_1X16, + .pads =3D BIT(MXC_ISI_PIPE_PAD_SINK) + | BIT(MXC_ISI_PIPE_PAD_SOURCE), + .encoding =3D MXC_ISI_ENC_RAW, + }, { + .mbus_code =3D MEDIA_BUS_FMT_SGBRG16_1X16, + .output =3D MEDIA_BUS_FMT_SGBRG16_1X16, + .pads =3D BIT(MXC_ISI_PIPE_PAD_SINK) + | BIT(MXC_ISI_PIPE_PAD_SOURCE), + .encoding =3D MXC_ISI_ENC_RAW, + }, { + .mbus_code =3D MEDIA_BUS_FMT_SGRBG16_1X16, + .output =3D MEDIA_BUS_FMT_SGRBG16_1X16, + .pads =3D BIT(MXC_ISI_PIPE_PAD_SINK) + | BIT(MXC_ISI_PIPE_PAD_SOURCE), + .encoding =3D MXC_ISI_ENC_RAW, + }, { + .mbus_code =3D MEDIA_BUS_FMT_SRGGB16_1X16, + .output =3D MEDIA_BUS_FMT_SRGGB16_1X16, + .pads =3D BIT(MXC_ISI_PIPE_PAD_SINK) + | BIT(MXC_ISI_PIPE_PAD_SOURCE), + .encoding =3D MXC_ISI_ENC_RAW, }, /* JPEG */ { diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c b/drivers= /media/platform/nxp/imx8-isi/imx8-isi-video.c index 056603055c81..a6e044056762 100644 --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c @@ -212,6 +212,15 @@ static const struct mxc_isi_format_info mxc_isi_format= s[] =3D { .color_planes =3D 1, .depth =3D { 16 }, .encoding =3D MXC_ISI_ENC_RAW, + }, { + .mbus_code =3D MEDIA_BUS_FMT_Y16_1X16, + .fourcc =3D V4L2_PIX_FMT_Y16, + .type =3D MXC_ISI_VIDEO_CAP, + .isi_out_format =3D CHNL_IMG_CTRL_FORMAT_RAW16, + .mem_planes =3D 1, + .color_planes =3D 1, + .depth =3D { 16 }, + .encoding =3D MXC_ISI_ENC_RAW, }, { .mbus_code =3D MEDIA_BUS_FMT_SBGGR8_1X8, .fourcc =3D V4L2_PIX_FMT_SBGGR8, @@ -356,6 +365,42 @@ static const struct mxc_isi_format_info mxc_isi_format= s[] =3D { .color_planes =3D 1, .depth =3D { 16 }, .encoding =3D MXC_ISI_ENC_RAW, + }, { + .mbus_code =3D MEDIA_BUS_FMT_SBGGR16_1X16, + .fourcc =3D V4L2_PIX_FMT_SBGGR16, + .type =3D MXC_ISI_VIDEO_CAP, + .isi_out_format =3D CHNL_IMG_CTRL_FORMAT_RAW16, + .mem_planes =3D 1, + .color_planes =3D 1, + .depth =3D { 16 }, + .encoding =3D MXC_ISI_ENC_RAW, + }, { + .mbus_code =3D MEDIA_BUS_FMT_SGBRG16_1X16, + .fourcc =3D V4L2_PIX_FMT_SGBRG16, + .type =3D MXC_ISI_VIDEO_CAP, + .isi_out_format =3D CHNL_IMG_CTRL_FORMAT_RAW16, + .mem_planes =3D 1, + .color_planes =3D 1, + .depth =3D { 16 }, + .encoding =3D MXC_ISI_ENC_RAW, + }, { + .mbus_code =3D MEDIA_BUS_FMT_SGRBG16_1X16, + .fourcc =3D V4L2_PIX_FMT_SGRBG16, + .type =3D MXC_ISI_VIDEO_CAP, + .isi_out_format =3D CHNL_IMG_CTRL_FORMAT_RAW16, + .mem_planes =3D 1, + .color_planes =3D 1, + .depth =3D { 16 }, + .encoding =3D MXC_ISI_ENC_RAW, + }, { + .mbus_code =3D MEDIA_BUS_FMT_SRGGB16_1X16, + .fourcc =3D V4L2_PIX_FMT_SRGGB16, + .type =3D MXC_ISI_VIDEO_CAP, + .isi_out_format =3D CHNL_IMG_CTRL_FORMAT_RAW16, + .mem_planes =3D 1, + .color_planes =3D 1, + .depth =3D { 16 }, + .encoding =3D MXC_ISI_ENC_RAW, }, /* JPEG */ { --=20 2.34.1 From nobody Fri Jul 24 21:53:02 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011007.outbound.protection.outlook.com [52.101.65.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F2F33B38A2; Fri, 24 Jul 2026 07:49:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879388; cv=fail; b=O7hoZd+RakIHvZi1JbbTmaJGioeANZoZUno331JAmSrz8hQfCV2sAxXtQO0X1R+6ZCU/52vTM56dOI5ebhwNRKdMyrPlDdNzW9dBw/IYsu+UvbtvHo4ed3qpqpZavdajaGrNs+ExJ07FpuJE5CNnb94KERaUFZqxMrQPhxPcq98= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879388; c=relaxed/simple; bh=7vCwoD8zRU/F2Yx0YQTwIE4S7+I6QlRgpgis7oo0VUs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Rsnur663NDN2Bx1tPTaYT26qBW5Z86TjArYELWXxtT97EUQFLufO0I1ng2MUqqyojCMhzg5uWaPoZwxANVmUVWokzSHGvQRDuz0fyR1rMR7J9J+R4KiiOYKzzTxqXMmkaVngYXPU/dweN53VPDGsB5/3SK9mh44OfQh1PXGdqXk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=kRscyD2g; arc=fail smtp.client-ip=52.101.65.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="kRscyD2g" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VmmITysj6OLMb32hsZokb0xQEI4wtkKK5UJ84AMiksYtWjUPVI4MRrF7hYc14O5n5bWGJu7EhOaE1v00xoWZRQclT8SRLfJT5eNBLRkV8WhVzY2c27Q+FQKfxtpNBWwOgKWScSPeUPGHfl6LREAv4PNBz/iQdG/wgyNy82eY3YbniHYe6ygv63vpA71n3ArickmyCCGIPBWIe96d5iq4yipDUaVUubmW5x3M/As9dpQdnq8qoW2GBa1PCSYdmrphKXzDh+UB/HxFHUYtoVe0hGr/0JfhrXh8xdbCybMRUUydiv3ocNDGcL9vLcAWXtqJgOGpho8VMIiUYVHLlu17xA== 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=7aF1/ZWz3Hq66anD9pqpoMeSBzfhmRxhu1+4/n8m1KE=; b=xP35aUShEVecGXH69lmrSDo68aV7w6Ezs8rm7UoKbGrUExOGKrONLkcvmWXhaHD2ZpaP8CEgOsv2IOeUR7/4PN4sI5Kdi0TlrzLDJZ6fibhCelCxbNhX3TmaH29L5ero1/Xv6PMGZGV/evu/+SGsQVwMyF+JBsiL0lfWMlX0fCgR3Cq274Y3pWNUGDeJisqtzKP4vPuqGxdhHEfcIPLSFlngi6bc6bviL5qNPVK9kTdJEofPVkmPNy7RPVTmqULmbRFBcPWzF+Z2Kzs86C0DoCxSfKYLs47aMikzioBb6vVzT/E/v67jCHU/DiJtB0YVZoVKfDSoz4uWTFbBx+y27Q== 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=7aF1/ZWz3Hq66anD9pqpoMeSBzfhmRxhu1+4/n8m1KE=; b=kRscyD2goo2YHmS4+4osc2jzHkSeOH8yvzzX5IwUwOgHQbtdZRMu1YoYPauXEAm8zSap7lEvRq0uy1LR5u+kSRslwrXSsoagomCj4lzJ+r51+YpBtTtOPKYpVAXek8+NUcaSYDi4HjdiWeHeULi/iUhebGwCvO0q4d+FvQg24/S6Q6CD+pkK3XfqWVMdzwIArKh2CsjmHDWK1sua43xB4VlT4gvF4tSANDbVHYtu8INxNkL2Y+HeEGozWCahoY8YlrUNcaNkjGAzRtkdBvcMhWY9b5T/m1P1iS2QmQsqK5HH26ScbK9irA7GwG81GwpK6vDepyzD/pIYQoP1DbURXQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV1PR04MB11513.eurprd04.prod.outlook.com (2603:10a6:150:284::9) by VI1PR04MB7023.eurprd04.prod.outlook.com (2603:10a6:800:12f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.11; Fri, 24 Jul 2026 07:49:40 +0000 Received: from GV1PR04MB11513.eurprd04.prod.outlook.com ([fe80::29e0:98a1:4577:2cc7]) by GV1PR04MB11513.eurprd04.prod.outlook.com ([fe80::29e0:98a1:4577:2cc7%3]) with mapi id 15.21.0245.010; Fri, 24 Jul 2026 07:49:39 +0000 From: Guoniu Zhou Date: Fri, 24 Jul 2026 15:52:58 +0800 Subject: [PATCH v4 3/3] media: nxp: imx8-isi: Add additional 32-bit RGB format support Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260724-isi-v4-3-27df7b5f6060@oss.nxp.com> References: <20260724-isi-v4-0-27df7b5f6060@oss.nxp.com> In-Reply-To: <20260724-isi-v4-0-27df7b5f6060@oss.nxp.com> To: Laurent Pinchart , Mauro Carvalho Chehab , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Christian Hemp , Stefan Riedmueller , Jacopo Mondi , Loic Poulain , Bryan O'Donoghue Cc: Dong Aisheng , Guoniu Zhou , linux-media@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Guoniu Zhou , Robert Chiras X-Mailer: b4 0.14.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784879577; l=3093; i=guoniu.zhou@oss.nxp.com; s=20250815; h=from:subject:message-id; bh=7vCwoD8zRU/F2Yx0YQTwIE4S7+I6QlRgpgis7oo0VUs=; b=hJQEj46eB/TcUmzhJnmYEyEUCHY5IdDFyiO9fh2txO1dcszv0mLGo3OhXcLxQJdqPHu6jwQpD I/eLMp3W4DcAGaeWuHsMe92AuCPIrsznAKa//5vhkBxXVZFYowkXUfj X-Developer-Key: i=guoniu.zhou@oss.nxp.com; a=ed25519; pk=MM+/XICg5S78/gs+f9wtGP6yIvkyjTdZwfaxXeu5rlo= X-ClientProxiedBy: MA5P287CA0115.INDP287.PROD.OUTLOOK.COM (2603:1096:a01:1d0::15) To GV1PR04MB11513.eurprd04.prod.outlook.com (2603:10a6:150:284::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1PR04MB11513:EE_|VI1PR04MB7023:EE_ X-MS-Office365-Filtering-Correlation-Id: 67caeb88-71fa-4613-583e-08dee9581d87 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|1800799024|376014|19092799006|23010399003|366016|921020|18002099003|22082099003|11063799006|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: roxvmtjEFfxW5C611FbkA8HN5Cj5n7M1kFr9bbJkGmLwWSt7Fm7yRSAfdEQ9nVBGarZRn9B7b3ONkGTVhikQemezZLBF4ufG89QaMqV43dDffH5OB4gw4gZqgVNxJk7XAoFgp/bRUzkGnoXy5VJxAH03SZobakAgTsLlxCQx5PbxfRi5oYFlGkXUZMhz42yxeEQ9At7CrM4xkKPJvaafl333iULYwczb+S6JzaPnSWTut/BWW9N5SkcIKXYtP1nPLMyvleouvvGoKCd8Ls2c/asnYaqFYHjJSaBZJqvXV4Ff1wRdEzHlQoiGrcfDKFISWQ7p/iZA1mehTQGIEWIUvHPSursJJs+jnngDd842swge845HyWKtgJCpiUnR1gPCrW1XL6tJt53UnNaRPHPPzWdceBTt4sipu/KZSGH3UMPEIdmDK8JbzLCstvtPRoo2nOVFZtZ7sb1Ds8qsQ3ZQsAIJ2WEU0v8g1dBBQkhR/1FiwhAGGezn0j7ure7Ov0Rq64Eeo66yUCsGqGyZ9vluPAk5qSnD3IceDCqG8SN9aW84piH9CIGhM94h+bst+7lxRlG4iYIQjqW2OJepyPMhNsWtcbqsCoDpbdQT9SbVSwgyCErIFSWWW6s2aFmDZDnDcIIo4t8URWRYuf/SLVTmS5MOoOCsXXhw205oyXQvKDFhw7/WWyNk3psHsA5BwlIPDzBPmqFTg1fkVbhis+bvgw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR04MB11513.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(19092799006)(23010399003)(366016)(921020)(18002099003)(22082099003)(11063799006)(56012099006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SGZiSGsrYzhzYVJWczVvbE1tZWVLblI0bW1UMFV5dnUrcHQ4Vk4vSitFNjFW?= =?utf-8?B?a3FiSkxwWGpZR3Z0OUN4alRSdjY2QkUzbVEvL2J6RXQrVXd1OFR6RXNCYmY3?= =?utf-8?B?aWNsb0Q3UWJTVlN0Zlh5dmJwSkxKZzFQL3NsV0FoWm5CSnJoeXdjblRnZnpQ?= =?utf-8?B?OXJHVEttVUl2dXJ2M0syMy95aXpjTGREQmtML3p5dU1LVDNQbW9JOCtjeFpZ?= =?utf-8?B?bGhmT2NwNlFVVVVucitEaXpsZW0xOG13ek1KNE5Nb2pCamtJOERCYjJzK1lJ?= =?utf-8?B?bjhZYVNRdmNmZjlYUlcvcEk0cFBvU2NNVG16V29UeWVEMFV6RVFhRUh0M3ZU?= =?utf-8?B?R2oxeGF3MGdCYnpYNUJzTTNVNUJHQ3R5QTJtZXN1c0xDZjhPTjBvWEZaUVc4?= =?utf-8?B?enUwMkM5dG9uT3NSeGZpZ3ZMVjNjZ0pOS05qVThVZGpESlNlZElMaFlMWW1o?= =?utf-8?B?Z2FSNWFmS0c1dGs5bm8yOUFLRm9zc0NFWHJ6Q3NzY09OaWgyaHRwQURsdmlu?= =?utf-8?B?S3ViYXdYM3FOdzVMdTVaR2t3OTNwMWx6WEIrL1p5Y2g5TG9mN0ZkVStIaGRU?= =?utf-8?B?UE9EcXl6aXl3b2l6WHVZTDFveUxzTEZLL0NyeFY5NWFuTDhveW1oZlRaNjZn?= =?utf-8?B?YlVERWo4SU1FQlo1cFp2Y01heXdtRTRmQnIrbWpRRER0UVVKY0xHYmlqdWFV?= =?utf-8?B?NEplVVc5VlVtTGpDSmp2QnBObnZSb2F2WXk3NC9WbVdMcUJqR2dLQ3lUL3Ax?= =?utf-8?B?YnRDcGRRY3RRa0RhYkY2dVJZYlovUW9oRk5ST0djUHZrNHZCZlg0UGU2TDhj?= =?utf-8?B?d3prS3pnYUE2OGY1a0RzNGNicnI4S3VUNDV6RkV5NjdJYjdvZEgydks4UVZP?= =?utf-8?B?WHlHdkFqaVd6VU1LZGg2NGZaMTZGeTYvYTFORXN6S2QxWGhwQlJTV3pNTDV6?= =?utf-8?B?VzVpNmNUWllWeGdTc2I3dXFqZFRscGJQaFZCbE12Y1ZiaUJuNFRic1VrTDlo?= =?utf-8?B?eW5qNEhIdXNkZ08vMnlCN1ErRmdrT0l5TWZjQjJTZEViYU1WQ1BKMzVjOUV1?= =?utf-8?B?WThLa3RvbVFQMGpqdUFva0xablBvVy81ZkpmNlFGVVh0UkFCcmpYcitKSWN1?= =?utf-8?B?eVVFeTJSelROUHU5bGs1ZTRGSm1rTjFJTmYvT2dNVG1zRVE0T2txUjU3R3pR?= =?utf-8?B?QXJpRmxmNkQrMWoxL3g4eUQ0WFlBRkN2ckpjTGVzbU5BeVpVcmxvMFNHTjFy?= =?utf-8?B?QkFwM29HWnZNNVdnRklnd3RCZTVXR3h6UHJvUUdPSDJIbUVGVTdjYk5KVjVW?= =?utf-8?B?MHRNM01xWGRRSEpDUnd4N0lKWnR5VllUZTVGemNHLzdzdXNaTk9qcG1aeGxF?= =?utf-8?B?ek1sT2VaVStORU9XcVhjeStRNnNEdDZjSzNHMWRLSTk2aEZTdWxPL0ZYMEtk?= =?utf-8?B?SmJOeGxVZ3NjTUlhYnhMbElac0FsWTZubVZDN2xvTjB2RTVLNVhJd2k5VEVQ?= =?utf-8?B?RnpqbWVUUFB6d0UwR1E2eFQyT0Y2ZnpQeG05bS8xUG1iaStVdmRWWFZmSmRl?= =?utf-8?B?clltdy9wSTYzVHpVbWhhb3E4UUs5ZzlwS0I2RisrU2tNaEdmamxBVmhob3FV?= =?utf-8?B?RHZkWjl4YVV4clVYWkR2VTR3T3JuQU5mVTZsOTFHdHoyNzR5MEY5dTB5Q3lo?= =?utf-8?B?eHIzUWwwT01Fa3hGVEFyKzlPT0JpWENQZ080ZTR6V2JDQnp4cGgrSnhpREpj?= =?utf-8?B?Umx3RWhyWXl5TU1EOVd5RDRLQ2NIeTNON3BOeTJRTTZzZnZwK21HekRjS1d5?= =?utf-8?B?SjRBWUxpNnhUNW0vY052TFBua01qN1pjWUl6SlhDNElTNk9XV2VndVVObWlk?= =?utf-8?B?bWpVcVNFbnZ6R0NSZno3Slh2VU9DVXJKM3I4VGU3UFZ2eUY2UkRzOGJWVWl6?= =?utf-8?B?bnJnelpIWXdiU3N5SXoxWnNHb3ByY1BiUkxSeDk0ekRvRTdkeThuUDdZaFJS?= =?utf-8?B?Ky9HV0srVm5QT0hPV2FtSjQwRWYzS2NLWmJnaEx6Mmc4MEh3M2VFN1Uwc2Fo?= =?utf-8?B?eWJ3Uks5RzVua3diejUrSGxweVg1elRQMVFBNVI1V1pQYzBRRTRXS1V3UGpl?= =?utf-8?B?amdieUp5WTRLK014WlE3dm9OYmNranpSQzgwbGJYUlFxUUg0ZnZLNTE3bkRY?= =?utf-8?B?N0IzL0JrM0FoNDhPNXUxdFdqSUhUMkRsNVZQbGZHYXMxWlEyZEdPNmUxSzNS?= =?utf-8?B?WHg5RWtCQmZFc0J4dEg1anUwc0ZnbjZZK1ppNUt5VTZaMXIwcWpvWnhRZkZq?= =?utf-8?B?azZPeDdtVXp4ckF1cEtaL0RrSXg4Y05QR2tQN3JkSUVOMzF3NmovSGphQzVJ?= =?utf-8?Q?gpEFnesqPYyBRsNi7ohJEFmtrFAxeEfnP331G?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67caeb88-71fa-4613-583e-08dee9581d87 X-MS-Exchange-CrossTenant-AuthSource: GV1PR04MB11513.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 07:49:39.8039 (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: 0o5R1t9RG+CSt2m3d2dhIwStwet0PXffBe6azmKS2o9odc/7W4PjAHXOul05aCIdZAORsX3cfGtM0pcuCCoJd16LSfnpnOV3ZCP+VzLP13Il2j8BzYz2EICWkXWudD5f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7023 Add support for additional 32-bit RGB pixel formats (BGRA32, RGBA32, BGRX32, RGBX32, ARGB2101010). Formats with alpha channel (BGRA32, RGBA32) only support capture as ISI ignores alpha bits when reading from memory. Signed-off-by: Robert Chiras Reviewed-by: Frank Li Tested-by: Laurent Pinchart Signed-off-by: Guoniu Zhou --- Changes in v3: - Drop M2M_OUT for ABGR32/BGRA32/RGBA32 as ISI ignores alpha bits (Laurent) - Remove Android requirements from commit message as alpha formats cannot be used as M2M input (Laurent) - Add Tested-by tag from Laurent Pinchart Changes in v2: - Add Reviewed-by tag from Frank Li --- .../media/platform/nxp/imx8-isi/imx8-isi-video.c | 51 ++++++++++++++++++= ++++ 1 file changed, 51 insertions(+) diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c b/drivers= /media/platform/nxp/imx8-isi/imx8-isi-video.c index a6e044056762..f45c2aae59ce 100644 --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c @@ -166,6 +166,57 @@ static const struct mxc_isi_format_info mxc_isi_format= s[] =3D { .color_planes =3D 1, .depth =3D { 32 }, .encoding =3D MXC_ISI_ENC_RGB, + }, { + .mbus_code =3D MEDIA_BUS_FMT_RGB888_1X24, + .fourcc =3D V4L2_PIX_FMT_BGRA32, + .type =3D MXC_ISI_VIDEO_CAP | MXC_ISI_VIDEO_M2M_CAP, + .isi_out_format =3D CHNL_IMG_CTRL_FORMAT_RGBA8888, + .mem_planes =3D 1, + .color_planes =3D 1, + .depth =3D { 32 }, + .encoding =3D MXC_ISI_ENC_RGB, + }, { + .mbus_code =3D MEDIA_BUS_FMT_RGB888_1X24, + .fourcc =3D V4L2_PIX_FMT_RGBA32, + .type =3D MXC_ISI_VIDEO_CAP | MXC_ISI_VIDEO_M2M_CAP, + .isi_out_format =3D CHNL_IMG_CTRL_FORMAT_ABGR8888, + .mem_planes =3D 1, + .color_planes =3D 1, + .depth =3D { 32 }, + .encoding =3D MXC_ISI_ENC_RGB, + }, { + .mbus_code =3D MEDIA_BUS_FMT_RGB888_1X24, + .fourcc =3D V4L2_PIX_FMT_BGRX32, + .type =3D MXC_ISI_VIDEO_CAP | MXC_ISI_VIDEO_M2M_OUT + | MXC_ISI_VIDEO_M2M_CAP, + .isi_in_format =3D CHNL_MEM_RD_CTRL_IMG_TYPE_RGBX8, + .isi_out_format =3D CHNL_IMG_CTRL_FORMAT_RGBX888, + .mem_planes =3D 1, + .color_planes =3D 1, + .depth =3D { 32 }, + .encoding =3D MXC_ISI_ENC_RGB, + }, { + .mbus_code =3D MEDIA_BUS_FMT_RGB888_1X24, + .fourcc =3D V4L2_PIX_FMT_RGBX32, + .type =3D MXC_ISI_VIDEO_CAP | MXC_ISI_VIDEO_M2M_OUT + | MXC_ISI_VIDEO_M2M_CAP, + .isi_in_format =3D CHNL_MEM_RD_CTRL_IMG_TYPE_XBGR8, + .isi_out_format =3D CHNL_IMG_CTRL_FORMAT_XBGR888, + .mem_planes =3D 1, + .color_planes =3D 1, + .depth =3D { 32 }, + .encoding =3D MXC_ISI_ENC_RGB, + }, { + .mbus_code =3D MEDIA_BUS_FMT_RGB888_1X24, + .fourcc =3D V4L2_PIX_FMT_ARGB2101010, + .type =3D MXC_ISI_VIDEO_CAP | MXC_ISI_VIDEO_M2M_OUT + | MXC_ISI_VIDEO_M2M_CAP, + .isi_in_format =3D CHNL_MEM_RD_CTRL_IMG_TYPE_A2RGB10, + .isi_out_format =3D CHNL_IMG_CTRL_FORMAT_A2RGB10, + .mem_planes =3D 1, + .color_planes =3D 1, + .depth =3D { 32 }, + .encoding =3D MXC_ISI_ENC_RGB, }, /* * RAW formats --=20 2.34.1