From nobody Mon Feb 9 01:06:32 2026 Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [185.132.182.106]) (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 1C5E4327BF6; Tue, 6 Jan 2026 12:00:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=185.132.182.106 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767700829; cv=fail; b=W63vnULH+VcUYo178ln6eNcs0lbLfTQvjPpZZRE8oYON37hxuZn69WKKn3vF7qYwn8p60JiXe7Vkw2b3nQwO61rhjkWoMUS04HkwSPHpJZBDAC4ZSt3gqxTeUpA3A1sVrat+lc53mfBSjr6nWyeTdsB4SlwVYXPI/E7QrU//fcs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767700829; c=relaxed/simple; bh=gDRLyGoGxjEa6Lga1nVCbOadyCWRJFb8YeB8HLLEFKU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=rTT1P9+C42oI+i6jKqCaHVq8q2G4f6IRam9q3OwgFtnlt3pY8BtgZwh/ytfcyfjSXm+6IUr7jTfdnZ7PHtqwUZAYtLnaIVzMfwDz59qUaVpbbHK34CADKZaq+QPI0XuYNP4jJkax9pCWztDYR9Mb8pF82WY2Nr5+2jXNkm9fM0s= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=FiOq/CXl; arc=fail smtp.client-ip=185.132.182.106 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="FiOq/CXl" Received: from pps.filterd (m0369458.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606B5OAY4053043; Tue, 6 Jan 2026 12:34:36 +0100 Received: from db3pr0202cu003.outbound.protection.outlook.com (mail-northeuropeazon11010054.outbound.protection.outlook.com [52.101.84.54]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4bfdj5fes8-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:35 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FJUYMfrfLO3L6CMMNtMT/NcUMOtmI7uD4oWc/TscD936tENZdTj/YPQ9G8Z24XP3B/HHdCYV37QmfhrfQuAfRGUQhEU+XjuCephtF3DEKz0F0tgyIrP8ghFdp6mRRUpJsLyBS9trYVyYTGhJ9woQxeZLcFgGed+lql7r5B5NbdlqeRZkogRPfFeuExHYY9yakT9dxOEhovoF31zwiYr5Em22jfZoYyPbVEM9ekX4hjxFnzXEfkZlw7rlhxp8WPdDqikjfGuGbUDF17D9n5snHbGquWfrFESeUwW1b6Pn9vEBCNlxC3mhBVlekWEpJFufICBMmmxf+Ue76mLzPfYt/w== 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=SbyqUIQ04QRm997BwAzzZmv5EC5OG13hHeWiE3/Ldo0=; b=faJI4uIQN49+rY1CRCvjmJHw/1ZdcoXvFhcR/q/xeTafRcf1cUQzMYKkJUpoXQJ6IB3G/yEgQ4mmqhySzEILJt+mbkcEEOyDq3tPl468i6yazqM4o30JeS65RXg59jFy/Zltb4VEc1AEIbi5efeuCAJLx8kwaTVifz5sZwlqPzBXN9dw8+LjOZwXXeyX+zVa+8P9PvqohID/XLlJUxHqyWgyPe7be/Tm/gOrl2Qt/H3Uu7Qvf376L69Gk0dZUmiIWihsPuH71yAxULhb6RXYLJLgt8SkWUb3Azy+czoxCDT/kQ/wDWCgsPx5+A9bsFAQMVho4N5SGQcgt+9vk/fxuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SbyqUIQ04QRm997BwAzzZmv5EC5OG13hHeWiE3/Ldo0=; b=FiOq/CXl6NDC8hH+F1YI3/s0P5aLwEdUIoncRDPp+cLk9ixTcHst/qhU3GAqTWFl7qDabu11b6JJ+sjt/NBg2hbBABRaOagVYI3xe0F2QnAjMTDerwNvXwEMKaoUC0nQ7ocb7o+cS7yHoxx1udnraFPzlZyLibxXmtBzxyCGC2mJdLm2HW9IkDE8eirZE3gaZ4sxObkt5oABUc/JXdhL6T/A/em/MWXYLpxpvFmX99EkDxpyUKlIlpswMtQaDjtRo35g3O4SG2gl877HNdOacdQeQkFyc43PrNb5K1PExKqdtijlV49UyWkDgsRqbVu8vAotWR36l/7pNek0PgqmPA== Received: from DU2PR04CA0074.eurprd04.prod.outlook.com (2603:10a6:10:232::19) by PA1PR10MB9002.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:445::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Tue, 6 Jan 2026 11:34:32 +0000 Received: from DU2PEPF00028D08.eurprd03.prod.outlook.com (2603:10a6:10:232:cafe::6a) by DU2PR04CA0074.outlook.office365.com (2603:10a6:10:232::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.5 via Frontend Transport; Tue, 6 Jan 2026 11:34:31 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by DU2PEPF00028D08.mail.protection.outlook.com (10.167.242.168) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.1 via Frontend Transport; Tue, 6 Jan 2026 11:34:31 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 6 Jan 2026 12:35:45 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:31 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:29 +0100 Subject: [PATCH v2 01/12] media: stm32: dcmi: Switch from __maybe_unused to pm_ptr() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-1-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D08:EE_|PA1PR10MB9002:EE_ X-MS-Office365-Filtering-Correlation-Id: 35f9ac0c-ffc3-4bd7-407b-08de4d178f85 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SkxTWUtrMmhiWnpyWVZGb2wyb2lMOFZxcE1Ja01VOS9XQ0ExeU1YdExOWC9P?= =?utf-8?B?Qk1PSFpSWHZVcVpTcHFqVlRtanpwdzlSYWNmL3A2cmxxYXpUdkhtV1QxcW1k?= =?utf-8?B?N1ZoY3Q1b2ttYUxiWEdaRWRuSkVaSGtCMDdTZjFWMk4zYU53M1NyK3FuTDVH?= =?utf-8?B?OGpxajRGK05TeWwyRE5NRVVST0Irc0FBbXBOSDN5YlBEdXE5SkdOclpnaG5a?= =?utf-8?B?VndBVG5HZmYxNkJCNFdLYTA4OEUwbzZGbWtSUVJIVDFIaklXQ2wvakFKVW1J?= =?utf-8?B?bUpkVkw5OWR5ZkRjTGsxOG9GYWtmdkRRZUpMY3N4SEhNZzVYUU9WOC9ReFlL?= =?utf-8?B?QlpxYThEZGZrTlVkRVRKZ1NlMWpjRm56VzdQZUR5bXV6UU9USERNaVhzQk5L?= =?utf-8?B?YkhlNHdNdVdOQVFPWE1VNk9McU5XTkRkRURUcDArWjY2anpWOTNWSk52ZGZu?= =?utf-8?B?VWJoQXNwNXZST0RHMDFHRmhDdkRvRGJIb1pPQlYwUEJ5QWdpdXJLZ1BwUWl1?= =?utf-8?B?cFJJT054Z0U1eXBSa2hucHhIakFPMzZjUWltSXNJN2NmRGF4enFMSW1oOXJl?= =?utf-8?B?MWhEbExWL1IreFRkN2c3c21kZk5icVF0UlM2Qk5PM0c3SUVRWUt6K01GVk9x?= =?utf-8?B?MFI4Q0Ntb0IxUFV3Tk9oUmtYQWdNd3J1U3hlWitrUE42SWhGSVBiVnhXbVJw?= =?utf-8?B?dU5Yc1ZnN3JGbnRya01ZM3AxQVFhVFZ5dlM1WGltNjNjM1FFVk5PazRCL29v?= =?utf-8?B?cUJmN3JQRDE1bHBDdG9YaEJBY2p5L1dIaDZqSXpBc3RlbzEzRy9yNDlRcnFZ?= =?utf-8?B?ZmpvTGZkQmlFVDdiSTVXUllob1U5Y09qWWdXNWl1VENUd1RxNXdCRFg1czZJ?= =?utf-8?B?ZVRleUUrcjY1N0VydVQ5cSs1Q2J6RW1uaDlQeHEwWHBsMUVEdTZuYjZROVhF?= =?utf-8?B?cHhlWWRQQTdEeUhISTQxTmxjQkl3L3ovZWlkNHM1U1BmZHg4d1R5Q3ptWUlS?= =?utf-8?B?ZktubGp5SUZaaWprSFUwbkwyWWtzb3hNVmE2aXhndWVvVXVjTFQwaHRCU25o?= =?utf-8?B?ZkZUNXZodDZPODhiZ25UaVlSdjViY21IVjNKalBjamh3RXc1dWx6R254d2x2?= =?utf-8?B?QUdZM2JiemNERXU1WUNFNy9GWDlaeVFidk13QzlGVHZRNG5rbzFPK2RnUEZH?= =?utf-8?B?d2Zna0M2d2RQbzN4WlBNUXdZdjBycGZlMDhqS2U5NTN4Z0tIVlVTM1JXbDJi?= =?utf-8?B?NVpoY29tdE1HRTF5ODRuN3kxZ0tJQ0t3Q09XMUtQWFJObHI0bStCYkdkQWtP?= =?utf-8?B?QnJJdWdiV09pK0M2aHZSTzlibFhXQ2pSRkRDVlhkSlhtemdBZi94QmozbmxK?= =?utf-8?B?S0ZWM3c3RExUK0ZwMUFqdUpERjNySUlVbW51b3VXVlZQYTdEc2xhY2RhcXJ6?= =?utf-8?B?cXJyNTlBbGJRYkRqdDJiYS9WTnpHc21vdzlpY3ZrNUh5elVyaDEvWWJ0NmVD?= =?utf-8?B?bC8vZk4wd0RHbjIzcW9XbHVtVk4yT1dVd0haSjdROE9vbC9FVllqbXpOb3JV?= =?utf-8?B?VXZ4TktObU5VWGNQc1NCemx4bkpRS1hTTm90ZWlEc1VlVFdZWXR2TlBwV2Jl?= =?utf-8?B?MXIrcGJRZDBvTmJQZHI0VnRLVEpnVEM3dms2enk5QjF0R2RpemV2NExGSUg5?= =?utf-8?B?UjZlWFhhQXBPb3ZOSGVsOHZUbjl5RU0zekdVMllrdlhtVkdPbElsaUwvMjdh?= =?utf-8?B?aWt6MjBZVjFOVklEYXFtRmJhOU9oUi9paWFtb25HQ1ptZTh4UThpVFQzelg0?= =?utf-8?B?ZDRteldHb1F4WS9CRWJJcVZXUEJpSVRkdGMvL0dFWWVxWWN4V2RjbDVBbFBu?= =?utf-8?B?RWI3ekhuNldQeUgxVGhvL09ndCtwYjJsTVlMZllNMVpNbE1CdEQxc1U0dGJo?= =?utf-8?B?am5IdDRuN2xnZ2FobnJOSWRBWFZ4T25HKzlnVnFFYzZ4ajBxQlppUUpOUlRD?= =?utf-8?B?QVIyeVVlR2VkSDdJUFdhblAyeHFqNXY0S3Z3cjhoRUM3dlZ6d0NzYk5GZEVl?= =?utf-8?B?ZldZWnFJeDdKajAvdGJxNitUS2o5L0JTT2puYXJES1Z2ZVFId05MZmNZQys0?= =?utf-8?Q?JOuc=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:31.9560 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 35f9ac0c-ffc3-4bd7-407b-08de4d178f85 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D08.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR10MB9002 X-Proofpoint-ORIG-GUID: 2jrYVPEwROQ0DaeFkdRrj_xoX-QcK6Md X-Proofpoint-GUID: 2jrYVPEwROQ0DaeFkdRrj_xoX-QcK6Md X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfXz8X8Yzgq9cEL B3VKbdRSrDZH65w1UODJ/ZS37RJ12QAEDT6XbjE9QmDc4i6oTl16wBTEWTe4XQVNztcPjXUzwdy wd+am9ysByPlX1Fa0BEOV71uLODrfY2D+4Af7vNkYqjXlbzU9iFfNHJ4LJ8R2R58F4qPGYzsqob KpWlflXU4VZ7BVt89cHgLRHusTjUPBoY+cspNSmB1G2uG7oofBbQhhZdYqVEUsOQmE98tusTWXG ve9cnrp14Thr5AC/y83w5+TgCECp3mfcXfl1saMcETumcfkdWozxMX9h1/p78SDE9OKpQ8zVaM0 BwXZ8boXSgEST/DiScuj/EDLxATw1mBovNAH3dxYLsSC7v/zSjaR6aMhwvk2uYPe8hdbCO/D4pc fIJeDGg9qPqTodAZ/IBu6AROKw45nawSz1OOi+ES+zIYFanHvOLpFSKsmc+uASgDrQ2Sen4cEqp M+f1YSbetpMQ1rrS7xA== X-Authority-Analysis: v=2.4 cv=SMBPlevH c=1 sm=1 tr=0 ts=695cf34b cx=c_pps a=FKYJD1RPl6GH9gGrjlrj5A==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=iCF26HOSFX6zfGY0GUYA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 malwarescore=0 spamscore=0 priorityscore=1501 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Letting the compiler remove these functions when the kernel is built without CONFIG_PM_SLEEP support is simpler and less heavier for builds than the use of __maybe_unused attributes. Signed-off-by: Alain Volmat --- Changes in v2: - use pm_ptr instead of pm_sleep_ptr use SYSTEM_SLEEP_PM_OPS / RUNTIME_PM_OPS macros --- drivers/media/platform/st/stm32/stm32-dcmi.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 13762861b769..619b0d981211 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmi.c +++ b/drivers/media/platform/st/stm32/stm32-dcmi.c @@ -2092,7 +2092,7 @@ static void dcmi_remove(struct platform_device *pdev) dma_release_channel(dcmi->dma_chan); } =20 -static __maybe_unused int dcmi_runtime_suspend(struct device *dev) +static int dcmi_runtime_suspend(struct device *dev) { struct stm32_dcmi *dcmi =3D dev_get_drvdata(dev); =20 @@ -2101,7 +2101,7 @@ static __maybe_unused int dcmi_runtime_suspend(struct= device *dev) return 0; } =20 -static __maybe_unused int dcmi_runtime_resume(struct device *dev) +static int dcmi_runtime_resume(struct device *dev) { struct stm32_dcmi *dcmi =3D dev_get_drvdata(dev); int ret; @@ -2113,7 +2113,7 @@ static __maybe_unused int dcmi_runtime_resume(struct = device *dev) return ret; } =20 -static __maybe_unused int dcmi_suspend(struct device *dev) +static int dcmi_suspend(struct device *dev) { /* disable clock */ pm_runtime_force_suspend(dev); @@ -2124,7 +2124,7 @@ static __maybe_unused int dcmi_suspend(struct device = *dev) return 0; } =20 -static __maybe_unused int dcmi_resume(struct device *dev) +static int dcmi_resume(struct device *dev) { /* restore pinctl default state */ pinctrl_pm_select_default_state(dev); @@ -2136,9 +2136,8 @@ static __maybe_unused int dcmi_resume(struct device *= dev) } =20 static const struct dev_pm_ops dcmi_pm_ops =3D { - SET_SYSTEM_SLEEP_PM_OPS(dcmi_suspend, dcmi_resume) - SET_RUNTIME_PM_OPS(dcmi_runtime_suspend, - dcmi_runtime_resume, NULL) + SYSTEM_SLEEP_PM_OPS(dcmi_suspend, dcmi_resume) + RUNTIME_PM_OPS(dcmi_runtime_suspend, dcmi_runtime_resume, NULL) }; =20 static struct platform_driver stm32_dcmi_driver =3D { @@ -2147,7 +2146,7 @@ static struct platform_driver stm32_dcmi_driver =3D { .driver =3D { .name =3D DRV_NAME, .of_match_table =3D of_match_ptr(stm32_dcmi_of_match), - .pm =3D &dcmi_pm_ops, + .pm =3D pm_ptr(&dcmi_pm_ops), }, }; =20 --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [185.132.182.106]) (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 E0AD63168F7; Tue, 6 Jan 2026 11:59:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=185.132.182.106 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767700771; cv=fail; b=rzaSJScN3ga2K1Ik741OZvB/TmFEVk/PCxkVuWYbHqJY/qpEwn6o0BMb0wUQrLU2MYSpMgpl843zmM/5XO/2x7dY+VpE9jqpMG/Kvs6NKA8CEaQ3I+b3KZm4IwaMPVorgH/rn/UbkUS1pATOZL3zxSR69FPEn7nnnpRDEwzFrYQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767700771; c=relaxed/simple; bh=w+JXySlOUvfhwRrqAeggFelp1635zVNLY6QJ5wqNICs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=MtLmymRtjXj8cEuFUH7kjt+pp3nGBbnBnfuBAtv2OWzJyuBE2axUjuD45uCJIhSSmvxZQM0VCmrsi5qqTTp3zeA0FrQyZaX56E6TaZ8sIo61LGI5uMutx8aj4q6/pnJFH9iSAZ1mCOLHPkwvY6qvGvj5uuTlMG0gGyz28kARHvk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=maQAwQW3; arc=fail smtp.client-ip=185.132.182.106 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="maQAwQW3" Received: from pps.filterd (m0369458.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606BSjMN4092649; Tue, 6 Jan 2026 12:34:36 +0100 Received: from gvxpr05cu001.outbound.protection.outlook.com (mail-swedencentralazon11013014.outbound.protection.outlook.com [52.101.83.14]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4bfdj5fes9-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:36 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aItzZtZ8vbO3eQvOZFlDVcYnBmwj5a13XwGAN/LAsJ0eWP/9sMWDitVqJuH4XGfZtTNhYQzlZcxTwDLZw51RteF9VxbtLBxdiA6Tzdso8NUn9Du9nj8wxePUK1K03nm7ZnVeCNsCO47yoTR8HXTseQAYHazgzj6KBArpFcukyspXENzpndMhtrdNU8Y1C4dumozEAd2sXrmBLBJTPH5yXg1bUj7qBmXIcYst7osQVIKS+ISLw6wU6SR8DsWlGD5Ak8jzU8vjsksRj1OF13HFe1nVMZ2j5JpVDl4cM1hWLg9quR4Ib4fmLBlkXt0sITI/c1ca+7hUKyl3BoZVH20lhA== 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=7K6OJup2/LAZXwG7dCz1UWiVqUvCpunWmb4PyV2CvpM=; b=cWbFWysLewUHwt6o8xDPfZxD7oxfPWyCmYulJZHn4A24wiKxluv9mVkNrwMfwvQKt7fUKlm/KEHjNCXf0Pn3F98R7GsLk0cKT2gr1BKd9g7DoHxhwA+Lp4RVKyVk6mQ8L4aI7y0Zto6ffRqG3Du8VgJ4HhNepXSeVAm4/VgIYfhkTWPuQhJYppzdWYpRY+e0cHTaojXDc+TecdIc+LYn4M6254w3EgrKZ7gZJqhX02KZ/kKkpeBKkMgfubn1DAKG6Q+RsEk7s8snhY8koIFjPOafd9QYY1D11DR+i2ZZn5Ihkq2I1cWwsT84EHWGEk3MqQelK/Z4SMxMBIkHbCVDvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7K6OJup2/LAZXwG7dCz1UWiVqUvCpunWmb4PyV2CvpM=; b=maQAwQW3LU/0UrT9GOKf0xc+R6W9SfVGISq+R9p+P/F3UUosc3Ow8ZNaEtB7Jvjet74ElcEgh73kDGp4C5oobg4VpUeL+NvbCy7m+dntAtdctn/aYizAMwug37sdtG3KoZtCfZqowzbDB4odTOtTzKdHZO4dWh2crTKVs71vhC0CJTDEy9wk3fShtxq1/dDZVPaZxbKkksiXZAT7I/46xoNT+6qUqakIywJ4bfPH6YlP3jwZ8QzOJcpkc/DI0Td/D+51NGNHkQkFECOXEJIaxZEMrgZTJA2ZhevCR9/rbAM0/RNJh5W/NqtwKt/BW8U6/NRvpf0isvkpFZ9YMkkYFA== Received: from DU7P251CA0008.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:551::21) by AM0PR10MB3249.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:186::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.5; Tue, 6 Jan 2026 11:34:33 +0000 Received: from DB3PEPF0000885F.eurprd02.prod.outlook.com (2603:10a6:10:551:cafe::a2) by DU7P251CA0008.outlook.office365.com (2603:10a6:10:551::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.5 via Frontend Transport; Tue, 6 Jan 2026 11:34:29 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by DB3PEPF0000885F.mail.protection.outlook.com (10.167.242.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.1 via Frontend Transport; Tue, 6 Jan 2026 11:34:33 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:35:46 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:31 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:30 +0100 Subject: [PATCH v2 02/12] media: stm32: dcmi: perform dmaengine_slave_config at probe Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-2-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB3PEPF0000885F:EE_|AM0PR10MB3249:EE_ X-MS-Office365-Filtering-Correlation-Id: 89450c70-205d-4d9f-c4d8-08de4d17906f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|7416014|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?b0lqZTRxMzZuckRXSUJ2SjFLQ3h1b0xlN1F1VmRzUE5TQ2ExUUN1UlNwS3M0?= =?utf-8?B?RTZJZDZ4TFNKSGg1MEVKaGxPQU9oYkI4UkRjTnRmZFMydlpMRmVWS0Q2WEdx?= =?utf-8?B?ekdqSnhFV0ZPS1hPaEJ0bmUxTmZKM0JocWJQVEZSRm5meHMxdmhHQ055RDBt?= =?utf-8?B?NUFLOW5uaGtEcFlBb2pBdzlnU2oxK3laSDl4NDlyU3dRclpEVWc4YVpBVUc4?= =?utf-8?B?KzV2ZXdSTTZjeC9hcGFhb1VmS1BXY0RpSjRPMWVuVW1wa1kvdWZaWHAxMEpi?= =?utf-8?B?ZkZyTHFXcmU1VmJCeDFISFE4c25VR3hYNjRKektyYnZ3TnBQUGNtN1EvK3B1?= =?utf-8?B?T2dMRm5RUFIzYldDWGlmbFFyYVhBenhpYzM3RHhONGpOVjBma3AyZkV1WmpO?= =?utf-8?B?cmg3bG1saUxXNVFaemlXWU04Yi9EczgzU29TeUZ0NGpsOEkyeFhSSjVHZ0cz?= =?utf-8?B?MGdXSVMvMWNrdjBnZWFYWk5aeW05cXNPTC9OZldBb2czQ0IzTUcwNVphWjls?= =?utf-8?B?R21ac3R6RktpQTlCNFh3eW9MSEhVN0VFTnVQZXhGRXIzeHppRUV1QWpCTmNq?= =?utf-8?B?YnhOYnk3aGNHdEgzN1F1b0YzQUZLamY2OUdIbnlEeUF0L1R6MThkWDBvdkFx?= =?utf-8?B?dmtOcWlwR3ZMdUwydHVjdXg2RkpLelhkQXVTV2VxNGIzSUpCQTlxczN6RFRS?= =?utf-8?B?Z3ZPeWd4UTVMSWRldUsyR0h0RlpTSmk5ZTVEM0diaE1hdzZNZVIvdjZZcERt?= =?utf-8?B?SzFKc3BZdkNVUWpOY2w1b0wzb3l4MjMxNzl5OG9MRGpGbDFOaTArTFRPU3pR?= =?utf-8?B?LzhLL0YxY2tySzBpbjhDb2NVaHdqTHVhUTNXdWhUcDBpeDlNOVZldTlJK05x?= =?utf-8?B?NEpwaEVLZ1FQRmxvZHY3NDIxODJGcjF4NzNmWTNYT0hGVjdDaUsza0hqbkhY?= =?utf-8?B?RCtGUk1tZ2lJNWZSVXJWQm1QQ1NaS2VTZHRodkVPWUM4blpvd2lNZXpnNTRk?= =?utf-8?B?blNqZENuanRta2QwK0xDd28zaU95S25pV0srdEFha3AzVXZkNlVCTkFiN0Mr?= =?utf-8?B?ZDAyYmpVK1JYUmxpc1Q2TlBaVlkzZDZad2htc3NodWhpNjBhbGdLdGEvWGFU?= =?utf-8?B?NFZtZG9mS1lUTmJQSklFMTc4eGZiS29rVldNckh6KzJqNTlmTkVsQXhRZitS?= =?utf-8?B?cXVScVR4S3JvMkF1S3hyZTJEM25oTlljcmV6ZFJVM1YvdnJ5bUxZYUVCbzBL?= =?utf-8?B?SkpQVTB4QWVSOVd4UFRmRE1Mem1hMlNuMGZaYTdTWTlGVkNXdG1GTyszbjhL?= =?utf-8?B?U1Z5MWNKeXUwV3Q1MkQrSDl1emRHNFZWT3AyUHJaV0gvUkc3ek5MVWhrdFla?= =?utf-8?B?L0c4NkV4ZGd0NUd6OEJHS3lHQSswSVhHU1dpMFlWOU12MlJYMnI0V1lRS2Rk?= =?utf-8?B?RXQ3d1pZeDdVN1VOL0NWbndXak8xLzIzaVVqbXBpc1ZXQ0UzN0x1cDd4NTQ0?= =?utf-8?B?L3paUGtFUTdZMzgybUovRFBGajBEeTdlOHpLUXlDU09USGU1VmovMWdmK0di?= =?utf-8?B?c1hPUzBIRUY3Y24ra0c3OTJGdFRXUVptTDd1MEFRcXgyQ1NWbDdpRERHMFNj?= =?utf-8?B?bWNQYTNvVVk3TERFZlVtOW9ZN2ZOVThOUkw4aW5zTjF3QnE2ditLbndFNWpm?= =?utf-8?B?SzNVeEMySjhNS1lmeXlsOVBranFIdG1BU0xXSzNvWUpWN1lscjZneVc2aldZ?= =?utf-8?B?V3BCMklzb3FFbnJiRXgxYVlmNlhOOHMvRGZWcU1ZMFJzVnZnRUx0NEtzVjlY?= =?utf-8?B?c0J4NDZ2c3Q2ZXVLc0tpZWg1cVU4dlRGd0tBQ0EweTVreFpzeEY0OVBSYk1l?= =?utf-8?B?WWMybDFjeFFoVitlczlqb04ySzhvUGptNUs3QXU1SW41WEwwcnovSVdLenYv?= =?utf-8?B?bHBVakxoendPYnVlNlZmS2FKWjBITXBhaEU2cmRIbXFCTVVnU0ExZEJHWFZ6?= =?utf-8?B?ZE9xNUNuODkyWXROa3o4NDBnSmtoblpEd1dxKzVXTmozTFdvWGs4SXRqMUs0?= =?utf-8?B?SDR6eG90Q1NGa2R4bmVZRGpFeUJCWUlwZmE4citCdkZFbTdwYW8zY3h3WTVB?= =?utf-8?Q?BOEY=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(7416014)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:33.4972 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 89450c70-205d-4d9f-c4d8-08de4d17906f X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DB3PEPF0000885F.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR10MB3249 X-Proofpoint-ORIG-GUID: UrEU47o7QkvnGag38_nmMCoSlk_Bc943 X-Proofpoint-GUID: UrEU47o7QkvnGag38_nmMCoSlk_Bc943 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfXzYxZm99N1f1U 9klzdkz7T3dDxBEE45PxShVLu8X5SmjX1Ls+WuBqwiaOs5QiuC0Tux/A56kYogIdFb7BgJ4/ht3 rnHR3T/JRlJUOtpTviYWT9eChNFgT8T9Nj07Ef459nBHryVpIkdtdw0pk8KMRCHIqDG3jTfAp3p s21BFqA/sNx6Af3UEzH7SAGE5YxKg+DJunzRMOwCbtxeSHXlsOpu3hQKs2k20GjeyAi9xyTgIVg LDFeTDoa36ZaYHZUT+emD466KmQ66Uo7Jovw05GuzA64qmWrqhYJt9ZApQIAZWBQoOsgYVIIv41 kjHhq35QjX6XM09bpKxZCyPucf5phCZtyLbj+GbTPcIsPtqZatR3lBQz+4dzvVqhyRaETYK8QbG 01wJLsejC/aZUyaHVId9Q8GnAcmuCWWRxdr0umAIQ3cCY2kEHhHQPIZ4xThbw52LIECGY4+wiVw AfXW0UslKjErWNcYW5g== X-Authority-Analysis: v=2.4 cv=SMBPlevH c=1 sm=1 tr=0 ts=695cf34c cx=c_pps a=g9/3GMKIs+LCGVgKrk4MiA==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=JtklpnBJFm0c8pyAJu8A:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 malwarescore=0 spamscore=0 priorityscore=1501 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Perform the dma channel configuration at probe time right after the channel allocation since this is fixed for the whole lifetime of the driver. Signed-off-by: Alain Volmat --- drivers/media/platform/st/stm32/stm32-dcmi.c | 32 +++++++++++++-----------= ---- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 619b0d981211..787c5d778db2 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmi.c +++ b/drivers/media/platform/st/stm32/stm32-dcmi.c @@ -301,23 +301,6 @@ static int dcmi_start_dma(struct stm32_dcmi *dcmi, struct dcmi_buf *buf) { struct dma_async_tx_descriptor *desc =3D NULL; - struct dma_slave_config config; - int ret; - - memset(&config, 0, sizeof(config)); - - config.src_addr =3D (dma_addr_t)dcmi->res->start + DCMI_DR; - config.src_addr_width =3D DMA_SLAVE_BUSWIDTH_4_BYTES; - config.dst_addr_width =3D DMA_SLAVE_BUSWIDTH_4_BYTES; - config.dst_maxburst =3D 4; - - /* Configure DMA channel */ - ret =3D dmaengine_slave_config(dcmi->dma_chan, &config); - if (ret < 0) { - dev_err(dcmi->dev, "%s: DMA channel config failed (%d)\n", - __func__, ret); - return ret; - } =20 /* * Avoid call of dmaengine_terminate_sync() between @@ -1888,6 +1871,7 @@ static int dcmi_probe(struct platform_device *pdev) struct vb2_queue *q; struct dma_chan *chan; struct dma_slave_caps caps; + struct dma_slave_config dma_config; struct clk *mclk; int ret =3D 0; =20 @@ -1954,6 +1938,19 @@ static int dcmi_probe(struct platform_device *pdev) if (!ret && caps.max_sg_burst) dcmi->dma_max_burst =3D caps.max_sg_burst * DMA_SLAVE_BUSWIDTH_4_BYTES; =20 + memset(&dma_config, 0, sizeof(dma_config)); + + dma_config.src_addr =3D (dma_addr_t)dcmi->res->start + DCMI_DR; + dma_config.src_addr_width =3D DMA_SLAVE_BUSWIDTH_4_BYTES; + + /* Configure DMA channel */ + ret =3D dmaengine_slave_config(chan, &dma_config); + if (ret < 0) { + dev_err(dcmi->dev, "%s: DMA channel config failed (%d)\n", + __func__, ret); + goto err_dma_slave_config; + } + spin_lock_init(&dcmi->irqlock); mutex_init(&dcmi->lock); mutex_init(&dcmi->dma_lock); @@ -2072,6 +2069,7 @@ static int dcmi_probe(struct platform_device *pdev) v4l2_device_unregister(&dcmi->v4l2_dev); err_media_device_cleanup: media_device_cleanup(&dcmi->mdev); +err_dma_slave_config: dma_release_channel(dcmi->dma_chan); =20 return ret; --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [185.132.182.106]) (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 CB409326D70; Tue, 6 Jan 2026 12:05:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=185.132.182.106 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767701142; cv=fail; b=oc3TJb6Qrz5iGVUkTRG3XOxMrRTYCkc38rp3d4cpTdJDJZlYxEYS/h3RKncnyso22kMV5yhuKT7yMKeuX9ZPTYxIB/vkpbbFkZdzJI1D3JVz0QvRl2zFV3Eb8dCCSjwUbFNA3tF35J7gpl8JC/kLB0NxbuBq8Uy51eTtaXGY3eY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767701142; c=relaxed/simple; bh=kY3DdZPobtnyzJv+3ETh0y0VgHFeMEJXqaSskn/2T3U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=rDF6om89xXp731c9YGpsj64oarCQA9nsK/c3257RiYG3wSRYtFS+ReeBAJxGTBatHSBNhit7BSCbxZ3D9hvCYUtZAUMzGYZ3dhNQ7VdR4dNXzexdMTejm8BuvpNcVzGW8KFswP60zdYAavpm4o3tvm+Zb8XbivN9skmW4ydMkyE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=lLQf82Vk; arc=fail smtp.client-ip=185.132.182.106 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="lLQf82Vk" Received: from pps.filterd (m0288072.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606BMtYW1295153; Tue, 6 Jan 2026 12:34:36 +0100 Received: from db3pr0202cu003.outbound.protection.outlook.com (mail-northeuropeazon11010066.outbound.protection.outlook.com [52.101.84.66]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4besdksahw-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:36 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=njIyAjFTTsyWEB6ZLnWYTPqtwiWjDllPfvvuAkp9AmuI12zVU0fVlQpYkJIf788hZgFfRFWIVjAg6sCeggutrngzA/Aw3bHq45YoZ82r4Sq3Js9hr8evS+5Wdcg/uc2kksv3BoNNzu3BvjLC+9HSWTVwbg0olvpnaRySN1K7gEshgrSIAgJV67t1MBcIuLeykotSYj76aCNyAjTkSlOfAMT9GXYfQ5q4Hpc/bIfdnEfurIcCkTvXZgNPNIldy2HFMA6U/YwJCWNKF1+7rRljTn25NUdAUadIZjc/APheh+F4mT8tpocB5sy99C4RqwfCks7da/NpHld0Pk+06CSNyA== 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=VCVULPQh5bKFkhJGdMdaWx+OsMExu77xGvNO5Z141/M=; b=nNo0kFaRsdTxi0eIdNIaeU6/92opWZQqpMotLDhspg/BcuwZYtylTlz2kMiw/yW8HF1NEZsK9CKMJDeAuwi5SVXej0WDROLGTmrw4ylJTG2ayuP2eXFSC5YnnB0Qc/BSAVPrKoix3+DvPBEI2lZuGln8I4sCqPMAGKnyTppY0j97WF0/IYt1gbTaK16Xv/NjDQFwQf92Umx+/0HPJntyhynf0obid7EcXBfg3HtT9CZrwUNMWOWxHSQYXLpQXAQSp0wYG4soUEK0Kg6ia+m4zmsj24LJZxyXdHADAa67mBLMg9eN0f4Zhi7DMwWqgXOCqwx1CBCqnurCyUZb1NdbyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VCVULPQh5bKFkhJGdMdaWx+OsMExu77xGvNO5Z141/M=; b=lLQf82VkyCYEcE1N5CdFzmxksHLbGyMX4jRQDRUioakZVUHgvuloZ3YlKj46UKDon5baRjAoxnvuzbbiKqL0G7W4J19FFqrHXaQbjS8yQM6N33z5GIQb6+dYH26KAcbcg2pRPJ5d1DM0o+WpCVR+gceDJbFHMZGyGOawILiizZKjVg2uQcvAK+XiTD76nzxwRgUnLRQDspNWsxvAjiPQNfrSGOagNDav9fN/FC69Os8gc7mivPk/0SYPMjVpqqXBAlPoDnwBWTMY8yXXnljtNn/mBWtIJ/4rHmK7tlS89aspnu5eEVkN3XTXNjbgRXZp15mwnpNzdbUSok66j+RBhA== Received: from DU2PR04CA0063.eurprd04.prod.outlook.com (2603:10a6:10:232::8) by DB3PR10MB6785.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:43e::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.5; Tue, 6 Jan 2026 11:34:33 +0000 Received: from DU2PEPF00028D08.eurprd03.prod.outlook.com (2603:10a6:10:232:cafe::ce) by DU2PR04CA0063.outlook.office365.com (2603:10a6:10:232::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Tue, 6 Jan 2026 11:34:24 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by DU2PEPF00028D08.mail.protection.outlook.com (10.167.242.168) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.1 via Frontend Transport; Tue, 6 Jan 2026 11:34:33 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 6 Jan 2026 12:35:46 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:32 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:31 +0100 Subject: [PATCH v2 03/12] media: stm32: dcmi: only create dma descriptor once at buf_prepare Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-3-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D08:EE_|DB3PR10MB6785:EE_ X-MS-Office365-Filtering-Correlation-Id: b0356f7f-dcab-4888-54ef-08de4d179046 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NXpuTmtZQ21XTEExM1FlVTNvNmxXK3Eyb211MUNVSE5acUJsTFNJZ05WeVR3?= =?utf-8?B?eUsvVGZpN3YxUjNzV0xmQmRxdlRyY0VNeTdXYXpZNVV5Sm13SkFMNG1kYUZ1?= =?utf-8?B?Y1cxS2tnRXhrVmRpaWtFTEJFaHdhN1prQmNYY2dncDAzeEdUN0g5NnRtbGRJ?= =?utf-8?B?a0Q1ZEF0YjR3MEhWZ0NCdEJaR2FjUEpydWt1elAwUjI0MkVGWmdYTFc4dG1L?= =?utf-8?B?T0JlVm5qYXV1VjNyWXl0Q2k1OGVENjZycElVYnlDcWVZQ0ZHNW5rbUtUWWR5?= =?utf-8?B?Nkw4VHd2dDBKNU5ySTZHL2JjWlVNRXU1bmY0QUtibmlmS29MdENQTThvd2ZJ?= =?utf-8?B?VzRKK2lUMzN6c1BoRkNhTnoxYlJNOUpkcDNPOGJpSXBEMWdpRXRDVkRUajRv?= =?utf-8?B?Zk5PQ21sWmNiUUd3VlF1RDVlZ1owT3VYTVhGZDZzU2hyWUVVT1dpMFZETVZK?= =?utf-8?B?MGs0aFF2RU9hT1dTNGo0VHU3NmdXUm9wWnhQTSsrMzZBZkNodGxRK2wwaGpk?= =?utf-8?B?WGlFN2JwcEhJRk5HcUFPWm5laG04U05GN3YxSVBtS01tdjB6aXQ3UkE2bmlk?= =?utf-8?B?YUFOYnhXWC9kWXlDZkRXQU92NG55bUJjak9sK2lFVG9CUmgyV0xDaExsMkcz?= =?utf-8?B?MFRvRnVrZ29tc2VQcU85a056clo0M1FoY3hadUQ5dGl5Q0w4RVlTSVJrTDdZ?= =?utf-8?B?QlIxRGMwa1RnUjBBblpWcDBWZ2VYenJPcVcyZm9yWThGNzVLWDdQaHIwUFkw?= =?utf-8?B?TWhhWnIvcnFUSHNVZ0lxc1orb3Jsckx0d0MxUjBUMHBpZmx5RjBQM0F1WDZQ?= =?utf-8?B?Y2JuOGN0Z1hXRWRsUzhaalZiREtVMEMwWEtwbzRLbWgvR1pNQ3JEOHdFVXJX?= =?utf-8?B?cG5EOG52NDNBa1RyUUhySUNkL25VUzlaYjBVVm42d0Z4R0VuOEhEeGNMODdu?= =?utf-8?B?U3pYak5QMUpya0NkUUJhZGZnMUdncU9zajlscGdTWlFRK0wwcDhLMWYzSERi?= =?utf-8?B?R2xneXNYUHVsVjh6ekEvSVZZSDJUby9uWDg4dEl1S1BKY2g3Z01kdWtlUUhm?= =?utf-8?B?Um1GS1N2eGtYanR0b09kK3lZaEs4cUhtUmppWTZ3Zmd4VG9rdjJaV25lNVVq?= =?utf-8?B?T2U0ekE1OTJteklpU05xaWpQck00UkxRZ1lOVHBOZkdBbG44UzNTL0I4ZWlG?= =?utf-8?B?R1hsZ0toMHpEbjRScEFYVm5ZWmt1WWpjZFpBb3BhRWIvREZTVzVKWUJHc21B?= =?utf-8?B?Vy9oMEhnRXltdkVxT1podkhyTTN1by9GaHhQNWcrMlNwS3pBa3IvQm5Ma0Vk?= =?utf-8?B?dDREampoZmM3TEMwRG8vTThia3Q3dkdTTkFlZ3lOaDlUZ1prZVprTHlHcUJa?= =?utf-8?B?SzJPYldTRENGNUZDQ2tFSktWVVU3am5sM1dQYkpWYUJGYXJyTnYxazB3ckRJ?= =?utf-8?B?SXVTQXg4UG4raHB0Y3VnYzRsVm5QemFYRTRWOUpiSjJkWE43TmdCMWJma0hB?= =?utf-8?B?WDhaRUVhOC84ME1CRVRJbXBhN00zTld1MGQ1MlFjaXFOSVQzTHNmVk1sODFm?= =?utf-8?B?RzdSQWc3bXlMOS9DMVlRUUVnTDJmd2xhTVRxYjl6bVRMU2hFbnRRN2N0djNI?= =?utf-8?B?Q2RkMEFPdHRLTXF4cGVhZGw2NEszZVBQU21JU2NSNyswS080aGYwSjN3U2FB?= =?utf-8?B?eklBNjNiYllDdTZSTFlmSTZQWFp5b3NYNHh0WDZiRUIzWjljNTVIV3lpemg1?= =?utf-8?B?MmZrL05IMEJHWk0rdHlzcnRaWExPU3p3U2Z1bk9BR094ZnZ3SDh2VXVrVUNB?= =?utf-8?B?bU5NK1ovS3pMYU91Y2t1SmFzNjZ1KzRhMDhTWkhpYm5rTGpwNkxPcHQwZmRW?= =?utf-8?B?MlUyYnlCZ0VKaEpwNVAzOXFLZFQ1NFB0aTA4Y0Y1cXJiZkdhNGJjZDBSVlh6?= =?utf-8?B?V3czQmtzTmRZSWliR1ZQMi9sOUlaZlA0NEZWSkhoZFhMTkJMOGZQOXRRV2FD?= =?utf-8?B?ZW03NG5rTldZdTJpZEZLY1ZTVWU0czBoY3greVBNaEUrdGZDdWVnV2RONlhj?= =?utf-8?B?RG1XdWV4aDdkdDlIblZmRGZ2YkZmT3YrMHBVVGxxVDFhM1J6b0lIL21qUVZN?= =?utf-8?Q?3jqs=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:33.2141 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b0356f7f-dcab-4888-54ef-08de4d179046 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D08.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR10MB6785 X-Proofpoint-GUID: EoZzsRh6N403OAM5f_uFfGbFc1tGVp6V X-Authority-Analysis: v=2.4 cv=Vskuwu2n c=1 sm=1 tr=0 ts=695cf34c cx=c_pps a=24dgannMAzgWPct3t72ugg==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=21WmIhbeWYpxcd-lmZkA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-ORIG-GUID: EoZzsRh6N403OAM5f_uFfGbFc1tGVp6V X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfX4HBzVGxN2GhG MCMCBMj8L8MMQAva7qFSt1PpuVqwGYZoaIXqj/jxE8aqrtQttPoM3kP31qCKlzyy3ws3RsI6rNY srardbgs/j8xj4V84tFfc6T3y+ajQZ/GYEG/H7hxomJAMTTp0IrH1f1GgVYBr4GFa5GY6kLecGD 4fiTRfzMOaX5/hndvtaCKc3mhzlIbrzRADOUll2ALtNqzYdlVEJSLyK3UHpxhU1coCFQhmib3/k MYlrjledKxgz5X/SmizNbaUakm5Na5Zy77Zpaak702Srbzw6maZpRuu02fyKHX3FaTXXah7uUd+ B0/Q0G3i727NJOyCxMq9kGGI/Cd1InE2vGUFvDQIYQHZEaQ3KRWAHZbSzkDIqNuglXg/dgPnZrU YrsPREvIms9YUpBVh/Vp+K3/ql0n+7QfqLxplRgc1MspF3wxVEOhbQDjj7RZbdMn/dA1HFn31Rk A6eDiLT0H4//zqjGVEg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 adultscore=0 bulkscore=0 clxscore=1015 spamscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Perform the dmaengine prep_slave_sg call within buf_prepare and mark the descriptor as reusable in order to avoid having to redo this at every start of the dma. This also allow to remove the mutex used by the driver to protect dma descriptors related piece of codes. Signed-off-by: Alain Volmat --- drivers/media/platform/st/stm32/stm32-dcmi.c | 78 ++++++++++++++++--------= ---- 1 file changed, 45 insertions(+), 33 deletions(-) diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 787c5d778db2..0874974bbad4 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmi.c +++ b/drivers/media/platform/st/stm32/stm32-dcmi.c @@ -113,6 +113,7 @@ struct dcmi_buf { struct vb2_v4l2_buffer vb; bool prepared; struct sg_table sgt; + struct dma_async_tx_descriptor *dma_desc; size_t size; struct list_head list; }; @@ -163,9 +164,6 @@ struct stm32_dcmi { int overrun_count; int buffers_count; =20 - /* Ensure DMA operations atomicity */ - struct mutex dma_lock; - struct media_device mdev; struct media_pad vid_cap_pad; struct media_pipeline pipeline; @@ -300,39 +298,13 @@ static void dcmi_dma_callback(void *param) static int dcmi_start_dma(struct stm32_dcmi *dcmi, struct dcmi_buf *buf) { - struct dma_async_tx_descriptor *desc =3D NULL; - - /* - * Avoid call of dmaengine_terminate_sync() between - * dmaengine_prep_slave_single() and dmaengine_submit() - * by locking the whole DMA submission sequence - */ - mutex_lock(&dcmi->dma_lock); - - /* Prepare a DMA transaction */ - desc =3D dmaengine_prep_slave_sg(dcmi->dma_chan, buf->sgt.sgl, buf->sgt.n= ents, - DMA_DEV_TO_MEM, - DMA_PREP_INTERRUPT); - if (!desc) { - dev_err(dcmi->dev, "%s: DMA dmaengine_prep_slave_sg failed\n", __func__); - mutex_unlock(&dcmi->dma_lock); - return -EINVAL; - } - - /* Set completion callback routine for notification */ - desc->callback =3D dcmi_dma_callback; - desc->callback_param =3D dcmi; - /* Push current DMA transaction in the pending queue */ - dcmi->dma_cookie =3D dmaengine_submit(desc); + dcmi->dma_cookie =3D dmaengine_submit(buf->dma_desc); if (dma_submit_error(dcmi->dma_cookie)) { dev_err(dcmi->dev, "%s: DMA submission failed\n", __func__); - mutex_unlock(&dcmi->dma_lock); return -ENXIO; } =20 - mutex_unlock(&dcmi->dma_lock); - dma_async_issue_pending(dcmi->dma_chan); =20 return 0; @@ -547,6 +519,31 @@ static int dcmi_buf_prepare(struct vb2_buffer *vb) size -=3D bytes; } =20 + /* Prepare a DMA transaction */ + buf->dma_desc =3D dmaengine_prep_slave_sg(dcmi->dma_chan, + buf->sgt.sgl, + buf->sgt.nents, + DMA_DEV_TO_MEM, + DMA_PREP_INTERRUPT); + if (!buf->dma_desc) { + dev_err(dcmi->dev, "%s: DMA dmaengine_prep_slave_sg failed\n", __func__= ); + sg_free_table(&buf->sgt); + return -EIO; + } + + /* Set completion callback routine for notification */ + buf->dma_desc->callback =3D dcmi_dma_callback; + buf->dma_desc->callback_param =3D dcmi; + + /* Mark the descriptor as reusable to avoid having to prepare it */ + ret =3D dmaengine_desc_set_reuse(buf->dma_desc); + if (ret) { + dev_err(dcmi->dev, "%s: DMA dmaengine_desc_set_reuse failed\n", __func_= _); + dmaengine_desc_free(buf->dma_desc); + sg_free_table(&buf->sgt); + return -EIO; + } + buf->prepared =3D true; =20 vb2_set_plane_payload(&buf->vb.vb2_buf, 0, buf->size); @@ -555,6 +552,23 @@ static int dcmi_buf_prepare(struct vb2_buffer *vb) return 0; } =20 +static void dcmi_buf_cleanup(struct vb2_buffer *vb) +{ + struct stm32_dcmi *dcmi =3D vb2_get_drv_priv(vb->vb2_queue); + struct vb2_v4l2_buffer *vbuf =3D to_vb2_v4l2_buffer(vb); + struct dcmi_buf *buf =3D container_of(vbuf, struct dcmi_buf, vb); + int ret; + + if (!buf->prepared) + return; + + ret =3D dmaengine_desc_free(buf->dma_desc); + if (ret) + dev_err(dcmi->dev, "%s: Failed to free the mdma descriptor (0x%x)\n", + __func__, ret); + sg_free_table(&buf->sgt); +} + static void dcmi_buf_queue(struct vb2_buffer *vb) { struct stm32_dcmi *dcmi =3D vb2_get_drv_priv(vb->vb2_queue); @@ -859,9 +873,7 @@ static void dcmi_stop_streaming(struct vb2_queue *vq) spin_unlock_irq(&dcmi->irqlock); =20 /* Stop all pending DMA operations */ - mutex_lock(&dcmi->dma_lock); dmaengine_terminate_sync(dcmi->dma_chan); - mutex_unlock(&dcmi->dma_lock); =20 pm_runtime_put(dcmi->dev); =20 @@ -878,6 +890,7 @@ static const struct vb2_ops dcmi_video_qops =3D { .queue_setup =3D dcmi_queue_setup, .buf_init =3D dcmi_buf_init, .buf_prepare =3D dcmi_buf_prepare, + .buf_cleanup =3D dcmi_buf_cleanup, .buf_queue =3D dcmi_buf_queue, .start_streaming =3D dcmi_start_streaming, .stop_streaming =3D dcmi_stop_streaming, @@ -1953,7 +1966,6 @@ static int dcmi_probe(struct platform_device *pdev) =20 spin_lock_init(&dcmi->irqlock); mutex_init(&dcmi->lock); - mutex_init(&dcmi->dma_lock); init_completion(&dcmi->complete); INIT_LIST_HEAD(&dcmi->buffers); =20 --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx08-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) (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 488E2326D45; Tue, 6 Jan 2026 11:35:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=91.207.212.93 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699311; cv=fail; b=lQPUqku0UFVR/7eW/jcjYEzCSH31U55OFGw0SXqGGweaJF2dnlxIAkqEuW5S3D/T202ln6gfvu6q99hkZn9+6OA0EbeVBLs8Rp71TsMrnJvO7G0eau351UzTzi9ZOh/W78hJIxKj/QIxfBs64g78zJVdCPs/jw8o+0cvbL24q1M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699311; c=relaxed/simple; bh=u0c2CQ1v1/KUo7Fvbs+xaknWEBoM89x7AXouyrKuyoM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=QO/F28A2qbivoGk2BWldTeHfG8i6YL4rqEBUJSKLCdZcoTg0NmlOs9ghRaOn+ick8KN5SSmo1D6Mh9Bs1ZdUyA3nofyFL5fUhnFUQPBeIJvn2Gw8qT8mBXLuq4DXMfsN8bDkKXHJXM2spbZPlpISGYIQK6qjPBl8QypWidXbDPQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=WLOMIKVI; arc=fail smtp.client-ip=91.207.212.93 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="WLOMIKVI" Received: from pps.filterd (m0369457.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606BRebS318171; Tue, 6 Jan 2026 12:34:37 +0100 Received: from gvxpr05cu001.outbound.protection.outlook.com (mail-swedencentralazon11013013.outbound.protection.outlook.com [52.101.83.13]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4bfexpq4y4-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:37 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZhrRkP/NGi7jD+YkgnKUxhxsmJnbZ7PhSs6zM9l9k5tGC/H7W+xDwIAFr3nsCshV2rc+55q/a0i1rjbUUxTa7ZKUmPTGyPNZy44FB7nsuqaoSWIf55yDhLN3ztiOBo+UzyWSH28oZyJunPNGFJVXFO+3qAVTVLNHkEj2TxzaaKH7z45qC8lOtcJgnBKL+9MNnLBWGjFSD4Xo0ilvdasIlgGof1WJqaV8cM2vtAIGsdJ+Guos2rCBwsOPCSZjCsdc0dA+kE3u6uIthZa04yhoB0SXnkYw4ooQMaeoPfPn5ZYuBBVYL7lRJ0/S4zAl4YqUvECDvsnWG5+Lu71USh87tA== 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=jx62b6yl4ASjBhHGPdTWdgdkzuL0bke73EOQEpTqLZg=; b=Q1J4fDaM6XruQ8h8vLHzmjtyIEIDQhizeLhm6O1BKgWiv+gbSPrMmIIf6q5kwE0jpFkHGoaunjGXPyHSpMwKT9QMk0TqNmAS1kP22sZpEm/wiGMzu0zrwyu5j3C5Nct27PAZLt+AgBZPV17YN8a7AsV7K2lnJclaSDMz9jJgpQMSdQvYwbkSij+Pr1WXWx0aVUrQF85a8fk2G9msZ6KOgcjZpEWGzzgeXh2UHQEQZ9HBtxWN6H3vGfY+cozK9rOgZ/z0RgR+ifE3noRRbvQTqf99fCcqKkd2rEN6cGQbs0J2zYkg6YlFZ/Zr0Mtf0rph72R2ZrO2X7LkN0kM5NTk8w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jx62b6yl4ASjBhHGPdTWdgdkzuL0bke73EOQEpTqLZg=; b=WLOMIKVIN7bfAXW4i8KgwdSBptYRT6S/Qwgwc0/Fr5QqGLYDSCn9wNwpzCMBOKsxd8KABJgxdpBplgqRu1k7gtCL+DnCJLoj29AsFNmkcneeOGDc7Ubo4o8xjssIWdA/btUxln/Oz49h4w3EkLMBd6omN36HhUkP76UFmjwK2KLkKW51cg+Z/gqhV1mivez8YftqEXvye+Mf/oVOe4f+FRvSS8pP+WrGbrpQmxIxJchN4RkeDTI27hBXSPJBIk+0OkI0Z6jtYeAJfb/OQr50e7tbCF7TiaNUKKKzzlskKC63zpXEo09JBPC+9Na3WrWY1UNeZtTLeIbryiGUWmii2g== Received: from DU7P251CA0013.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:551::34) by AM0PR10MB3313.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.2; Tue, 6 Jan 2026 11:34:34 +0000 Received: from DB3PEPF0000885F.eurprd02.prod.outlook.com (2603:10a6:10:551:cafe::f5) by DU7P251CA0013.outlook.office365.com (2603:10a6:10:551::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9499.2 via Frontend Transport; Tue, 6 Jan 2026 11:34:34 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by DB3PEPF0000885F.mail.protection.outlook.com (10.167.242.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.1 via Frontend Transport; Tue, 6 Jan 2026 11:34:34 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:35:48 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:33 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:32 +0100 Subject: [PATCH v2 04/12] media: stm32: dcmi: stop the dma transfer on overrun Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-4-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB3PEPF0000885F:EE_|AM0PR10MB3313:EE_ X-MS-Office365-Filtering-Correlation-Id: 1cc89c27-f829-4a1d-e292-08de4d1790c7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NkJxTzc4VnIzSlpkeHlrTUZ2UzBjTWpjSEtGSmNUNE9BYmlVTFJXOUxpN3FR?= =?utf-8?B?U3h6UTBwTE56cVZIU0xKSno1VDBNK29lRDFuZTFZZ256Ymw1RW1vbnc1VW04?= =?utf-8?B?aWZ5NmROd281RlY1amxTRTZLaU5VTDRxNE1FaEhQUEVMdUFsbTZ6NldUSlZG?= =?utf-8?B?OVB4M01TaFkxbndhY1Nxd3Y0LzVsSFViNURwTEdBY1YyS09UV1Jma2JQKzUy?= =?utf-8?B?RmszZXBiWlI1bk9yVWY4eVg0Y1R4VHpWb2NLWXd6YzJRNjN4S3hkZjFHWnlx?= =?utf-8?B?Qit3UXlNN3lFVXVDZmg0UDRqdUZFMUh5SHZNUmN0eHJudUlWY0txb0x6YVhL?= =?utf-8?B?a0NVR3o5SlBOU1VjKzNnUmYzQktxbzVvNTlKOTBneVJRaDdZbll6UUtLekR0?= =?utf-8?B?R2YvbnhsenFaR2hrbEQ1QlBPZkhhRDNNekZxSDdYL2pETUpsRnFxT3RlZUdi?= =?utf-8?B?dXo2SGxiQVZnTXZUMEswWmpVUXFXRmdSREhwQ3dadmMzTVRtOFA1QzBIVllI?= =?utf-8?B?ZVFVcXlkOVp6eDJTWldSTVh6Wkp4Y2VzeFNyZUVQUjNabEovVnd3MGtWbVFy?= =?utf-8?B?NnZCTU1aZFdJU2VHSGNFaWIzVndmTm03dWdhTVIrMTNzaEtFSVJoOHRSZG1U?= =?utf-8?B?Qm85alY4QXNVKy9LaGRKWFQzNE5aQy95SW9NUFBBcnZGcWNzN3lDd3hMYzRs?= =?utf-8?B?cTYzWi82eDV4NHgwdi9mZTRoMStXUlp4OHBNLzBwMmVUY0JleDZRa2t1TFpE?= =?utf-8?B?S3NDSGQ3MnNPWFhSRFZiYlVGTWg5UDBla0ltdmduaEd1L1J1Y0lzTm42TVkv?= =?utf-8?B?RnpScEI5NDJ3WDdpQ3BHdzZiejJ3R3ZuUytia01NY01vQk9pWnVvMzMveDg4?= =?utf-8?B?N2JVZ1Vrc3ZOVlphM2c2L0FyNzJvNzV3OGlnaWlWK0k1OW44VmJUY3p1eGJx?= =?utf-8?B?bmlxQSs5c1NPK004clh2Y2hDQXlUbkhKMTllZnV6dDhTdk83QmpxZncwdHFG?= =?utf-8?B?YkRXcGhOaDBNWmVxREwxMDJobU9nSUJsam9JTkYwbjdTTTlqNVVrK2xUWlls?= =?utf-8?B?c3gzanlqbFVGNm12U0U0TlpzZlVXWHJ5WS9CNFVDcks1TWZvWEpFM0N2MjVE?= =?utf-8?B?MEVhd2RRQzRTbFJLaUZvWDlxN2VpQi95V2liUmMwaHNZbk5sMm1OOEx4Z1Rm?= =?utf-8?B?bCswYUsrS2g4N1Nta1Z5dUJ3L1NQb0pnczQ5dkVGejZ2UHppWDRpaFVqKzgx?= =?utf-8?B?elc0SDcyeTNZWU5zN2xmbVNERkE0UVZ1b2d3MS9YZkRnVGhzQ2Y5d0dnYlFW?= =?utf-8?B?RmNxTUFwc2Z1eFlOclgvWmxwajBSTUx1RWtWaDNVcm41U2dwVlcvKzRDdDc5?= =?utf-8?B?UlI5WUloVFoxTDRhRjYwY2pZdGpTRFhReGY3eEIvMWFtY1pVaytReXR6WWJw?= =?utf-8?B?ZFc5TXMySWlkMTRndXVnaHV1RFFDNWJuYm10aisvTjdDQzZzNDR0OGIwaDBK?= =?utf-8?B?N1FxeTFBZHhHbkRoV1pDcDlGMnlXWmlyNGppOGRXY1A5MmJ6QzlTOFZJaTZN?= =?utf-8?B?TEtXWGhRMkNlMzFraWZTVFpON0pzUXd3R2p6VWpyUmVWdmNXenV0YW5GNkdy?= =?utf-8?B?R1dsdnUzSC9mcXNldjB2Skx3TnVGd2lEMEFCZmV5UkZuL3FyZFV6aVZOdkQ2?= =?utf-8?B?czJCMGR0Yk91SWxLNXlRU0pGZ1R2cDFPUGJpelBoMHFpZHp0TGZBVU9HYVVt?= =?utf-8?B?b0w1VXFCR3E5VVV0TkRvU3ZXc2VJQUJURWZrQWJRam9WZlZHbmI4VXpPaXdm?= =?utf-8?B?UnoyaUUvdnhQd0FyREx0T2RRL1JZZ0pXeGJzTmVaL2xNcWdnMFRaOHp1VHlr?= =?utf-8?B?N3A3VjhXaDFwcGlEUnVSZ2ZGSGcvMERmSGxDTTBnSHlpb3ltejNMV2xZMkFT?= =?utf-8?B?eGNOa09xbmlsaFRJK082K05BKytRYXVOOVhpZUdhTVM3dFRVVDNZalE4TnFv?= =?utf-8?B?aS84ajNKUkJxNlhNeTY3WnpxU09GWktlbHhMd3lEWjVDUk90dGpDWDdDMFQ1?= =?utf-8?B?bmM3U0VZRTJJdmk5WjVGZXZJMFNjWFgvdEpLdVNJNURDUnRtVzk0SVJMb1Vx?= =?utf-8?Q?+5kY=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:34.0735 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1cc89c27-f829-4a1d-e292-08de4d1790c7 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DB3PEPF0000885F.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR10MB3313 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfX/Uar43aFWMEO 2GNaUCwiJwwILqx8SuLK2i5IGpMVQyhzFKfYVJMSLyDcjy8LnkyVMRzyFaSKsdcFDPLkSpVZq98 8ArIQYMWL1HSoD9n5tVvfJbQue73w4hjs6Y7y02P4e0sUmI3UVXtljmcO8kx6PBi+H3xdr49YF7 9tsPyO3i5cP2kglENPcDF+dvyOVgsNUOKJWqqi7JxHZAJzRg4NDCHq7fkE8fkpAHIhyBKYsF+Hf ekiBGZPMUR1MYLlq5KqbM+ep3m0prW25/Ryns1SLUdRkVdH5+N+0EAu8DRya+RKleyfeGah8qXO ai3hMyKjhAhUpdKZ5YEzq19ar2OOhLL+nAYUXoY1aB2GrLJYVNO8OTotNjWSsiDIDz9IYynZhax mOhmzLwaCEybj82+WIwDILugzxWbFhx8lAsEIFqogh0cd9RXIqMVPFvq2XRIXIU96Fw6zFDFVQp v9ZV4nqv2W8Ud3oItgg== X-Proofpoint-GUID: -mKxx7IqavwbQ7cnveH2wPI5wkKTB0W4 X-Proofpoint-ORIG-GUID: -mKxx7IqavwbQ7cnveH2wPI5wkKTB0W4 X-Authority-Analysis: v=2.4 cv=UrFu9uwB c=1 sm=1 tr=0 ts=695cf34d cx=c_pps a=o6HjI5Hdp4yHrPjNunzkWg==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=kBhef3lLaoA0UgAbMYMA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 malwarescore=0 phishscore=0 impostorscore=0 adultscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Ensure to stop the dma transfer whenever receiving a overrun to avoid having a buffer partially filled with a frame and partially with the next frame. Signed-off-by: Alain Volmat --- drivers/media/platform/st/stm32/stm32-dcmi.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 0874974bbad4..20f5b9ab6a1c 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmi.c +++ b/drivers/media/platform/st/stm32/stm32-dcmi.c @@ -402,9 +402,21 @@ static irqreturn_t dcmi_irq_thread(int irq, void *arg) spin_lock_irq(&dcmi->irqlock); =20 if (dcmi->misr & IT_OVR) { + /* Disable capture */ + reg_clear(dcmi->regs, DCMI_CR, CR_CAPTURE); + dcmi->overrun_count++; + if (dcmi->overrun_count > OVERRUN_ERROR_THRESHOLD) dcmi->errors_count++; + + spin_unlock_irq(&dcmi->irqlock); + dmaengine_terminate_sync(dcmi->dma_chan); + + if (dcmi_restart_capture(dcmi)) + dev_err(dcmi->dev, "%s: Cannot restart capture\n", __func__); + + return IRQ_HANDLED; } if (dcmi->misr & IT_ERR) dcmi->errors_count++; --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [185.132.182.106]) (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 9A5F032E698; Tue, 6 Jan 2026 12:09:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=185.132.182.106 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767701377; cv=fail; b=f0y/BtASpoeTEKsdeEe97/lJmR40pdTVx5o+HTJq9Z/E0Im+ASicZPbzCcRqZgVkCht4fFYgMj3nvFMITDt8sueVR4+qXiw1lONF05vkox4ccnsXCZG/x2sd1Ui3b2q40i4VwyHfsPoXndptlPSGlk17LdWqKfWWYRAT205VTco= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767701377; c=relaxed/simple; bh=JNu+ug66dwPVnO81pYeUEIPWRAD2+94Ou456MqcHTxY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=dwYvgM+5DFxc0hIfQHy6Ox/HVVLc+F21wQ0IJYeczlZJoWdeJ+jf8KNvLKz6WMJDe4umhUvEMLhTxA/RfnySZK0GaMe2HTrMf2VzlNXyHQjabVuRNNRdPqA74IbqC7liylXHpCNRi7wjSfE3cFJwGni9Q7RivmenYHJ4xA3bQsw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=crT32t7e; arc=fail smtp.client-ip=185.132.182.106 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="crT32t7e" Received: from pps.filterd (m0241204.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606BUC17319528; Tue, 6 Jan 2026 12:34:38 +0100 Received: from pa4pr04cu001.outbound.protection.outlook.com (mail-francecentralazon11013033.outbound.protection.outlook.com [40.107.162.33]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4beub1h10h-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:38 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f6rnCKVTVhMX5py3eVquu5roF5HYOMZJiFgq2Sl1xfH7SpGwvZW1BtRBK3zo3l1aUzACrILJnqTbBHfsqo6YNA377nu/0ebo6BjuMUFKWqPTszHCMUe714Va4Zw21vSAuUB0LFJ02tncGomwX1I6RInTOgRB0rcUFHrSWc6cV6RDStT1vWZkR4iXG0Ls8TgGqrYng8txlnIJFXBjcuZpzn54eEn6/lqnaZQKBdIQhiDQ9vbtEAVai9T7bAl8gIHK+COVQJ6GhD7apzALKI4zb2oetTd7I3LyP38lEaNc8JrGoLUvtWPGqgwNwJO+Eh95XwL5T6Id5Iw/EG8fLM6Ubw== 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=lQZePj7zYhwGAju0+pn2UwdayhPk/mChpQPa8cuWXIA=; b=J8Ref+FrdZEfqO+gpcE6GZ8sGxXubT6yPCeOv9fFM0IBvKh57xwaYbnh7XfDRU9v0ao7unnOkyi+C/iIm7pP6MW9r+eWJeOFlOYgh4+EHPBlaPXPf3GUWvNXZYWUXI5+T6/gdbAa/OXmpC2D79IEYc9RmWELx4h/NDcZM2zmzg90j8sF7lpmHiQdsfeeiIcNR+DfbxnWIox+LnnDShJ+WSfkst8DMhtbvozv9hvxItvM90unRBMJZyIbK0V26b/mPxF2Qw7LJnKsHkx/8d+XUx72gnrXR4XhRfxvxs+D0gV+ZGPHeafgVQa4n325rcajVMS9cgLxhzaeui/eXIEkpQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lQZePj7zYhwGAju0+pn2UwdayhPk/mChpQPa8cuWXIA=; b=crT32t7eg/yRvinvnH5uyZ2ri1SB5rqcavPn9VWrYH30urBqzA+GDHjW1Zh5R6RmHaZyG+neGNuSAB66MM+l2fHWHZlqXUnXQ4i9WeefWrVlR72j3ZpHn35e99cK02gvkWhnxUOHGvVhNmHICJBykOuTMr6pH7XYZ6UHPq3JjX4c4NCQzKCflRedcRq60XTv4ZRnBsBPJipuxn9N66Y/BgPngO87+iwVebphN2cfScM8r6KIpgZggwNS0QERAllpHfMg6q5lkJTHj/L5J3VH2LWJnfJOa0LYji0IPdiKW5UgNLGP1Aao9j2pkZU/Nv6VJx+nFeeenrNDwQdii8iF7w== Received: from DUZP191CA0024.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f9::21) by AM8PR10MB4082.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:1c9::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.1; Tue, 6 Jan 2026 11:34:34 +0000 Received: from DU2PEPF00028D05.eurprd03.prod.outlook.com (2603:10a6:10:4f9:cafe::99) by DUZP191CA0024.outlook.office365.com (2603:10a6:10:4f9::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9499.2 via Frontend Transport; Tue, 6 Jan 2026 11:34:34 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by DU2PEPF00028D05.mail.protection.outlook.com (10.167.242.165) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Tue, 6 Jan 2026 11:34:34 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 6 Jan 2026 12:35:47 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:33 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:33 +0100 Subject: [PATCH v2 05/12] media: stm32: dcmi: rework spin_lock calls Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-5-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D05:EE_|AM8PR10MB4082:EE_ X-MS-Office365-Filtering-Correlation-Id: 3e5ef195-aba1-4ead-699f-08de4d1790f5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Q0VOQmFzZEZuc2dCOXR1Q3JhU1R2MzgrMDB4L2NoaFdXeWR1ZHh6YmFuS1FX?= =?utf-8?B?OUVUQWNjV1NKUkYrL0RTMEU4WDVTQnJrNXMwZ3hDUGkzanBoYUZSaDBTeU55?= =?utf-8?B?bURNbm9aSjZNRlpCK1BYSlUxTGw3ZDFOYUxkYTdFVWhOQXljSHl0Uk1LWktC?= =?utf-8?B?ZzlhRkpMVVRTMkYxUjVVZXFmQ0ZyWTJ2ZGNybUlwaXBDMERvWEVnbVV0TmRO?= =?utf-8?B?ZkpXaFlGSXFTNkl1QUtUeVNQSWFwbGRySE85dkVDeVpGNTYvTE9wdGo4blBH?= =?utf-8?B?TjB3RUtGY25iMHFnSW1rYzZuL3hLZGhSdE9Wck82UlVJM1Q0dVZhbCtlSjJ0?= =?utf-8?B?VDNPTU5URTZKZDdGRWJVMml1eXp0T3RjZHhteTJNUUxtYW1FNldTOUJXUWJl?= =?utf-8?B?bndrMHNjMTlzQmFORjliOVhZNVBUV1RrbUw4bDFTcHg5dkNFUG40dFBFMkRW?= =?utf-8?B?RU9HQkZQdmxmZDlhdmpZYVNvc3E1NjdmdDJYeVFGMnJ6WmhKMVJweXpJcU1Z?= =?utf-8?B?ZGx6aHVlRVAxWlZNdXBPZStoNkN5RHVGem5sY1kvVjd2a3NYSjRabzRYVmFY?= =?utf-8?B?ZmF2cktVMStMdVlibEViRzBuc29rYzd6ZW9KZVIrVkl3TFhVQVIrTTEzNElM?= =?utf-8?B?QWFDVnlEeWNVY3FPdzJOTmN0eWsyai9xS3l5eUxYTDJwUlljZm5vQnJ2bWRl?= =?utf-8?B?TW5vblBmMzBNZjNWblhxOC9BeVhUU3JkaWVoVTFNMGNjU3hLRnIwM1BoOTdr?= =?utf-8?B?b0pQNStJTnlBMU5CSFJ2dlZRWVFLYnUydGNwZHo2WDQ1M2lzZDh0dEV6SFhN?= =?utf-8?B?RWI1ek5EZHdVZkJWZHNVemJkcXl6cG5GOTJROXFvRzE4bk8wZFFmeGM5NnN0?= =?utf-8?B?STJJenE0K050ZGVWNzNHYzdmb3FwK1YwMnNHbGRBMjlSbXpFVlRUYXNaK0Jr?= =?utf-8?B?QWU4QlJHeGZjazlzckZCbk0yWjcyL1pzTGdxOTk5L2lUTjk5QTJCTUxLU3hj?= =?utf-8?B?SDFLUEw2b3E0L3JWUUppZmk1S0R1aUNFZWU5QStSRENOM09NV0NTL3U3MXJ3?= =?utf-8?B?ZUdVVU5LNHcvYUFTYTkvTTU1TmtKYnV3MWJwWkRPTzQySGs3VzFJUUo2VXMw?= =?utf-8?B?SHdwT1hHVE4zcjFpK1lVazdWeWlIVUltRGRxWUZ0N3Y0SVNrK1Z2ZWVQRC9v?= =?utf-8?B?UDNpQ0dRNkh2WTIxdFZOQ3liYXBpb1ZBVnJnQ3ZXUDNXVUU1RXEvc3BmOG1B?= =?utf-8?B?K28rVUxpNEpUVFhUaUxTRXVWaUVpSWRFd3VZQUpFeUlJeWlibkVGdE1PK1Yw?= =?utf-8?B?K05Rb040MlBNMlBnNjlLRE5Da1Bnd3E0bHFLM1FraXhnYWZsUVhCNTRsbzJG?= =?utf-8?B?Tkp0dVpmYjMwa2N5OVlPM2MvbUtHUlFQam5GMkZscXBXMmI5ajg1TTJtS3NZ?= =?utf-8?B?dHpKOFBrTU13ODFCL0xQanA2a05jaHhUSUhiSDc3Um1EVjFHRVNpaWNlNnBM?= =?utf-8?B?MkVrcThoUEhLVHlXaWpTdFNVZldNc0w3WmpRNWNNZncvMDdkaVlLNzRPZWlw?= =?utf-8?B?NW80N2Z3Q0x6L2h0bFVqd3JGdHJyd1JTSFZzSVVWUlBaRUdlckQreVNtR0lk?= =?utf-8?B?K0I5K0Ira0NhTC95cmNURGlTQmMzb1FwaEZ0VTI4ZUNLeGl2ZXFzYmk4UkFu?= =?utf-8?B?ZkZxRWRURS9KdXVQbXArOGZjSVlNNmpvQlpnTjNDMGQxUnZSdCt4SU5vaElh?= =?utf-8?B?QjRubi9kRUlqTUtRcXdBaXgwMkZHVHkyNTY5NUJWZndHZ0lRbjVCeHpwZDl4?= =?utf-8?B?alUvdG1vNkExa3M0SFNZSE12QXhMdXJpb2c5bG12YXJCbWliQ2lnM0RWNVFl?= =?utf-8?B?OWdpOXcyT1U3THpCOWwwVGg1UCtPSk9XM3AxSFF1WTc2Yi9ObXBqTVB2anpS?= =?utf-8?B?VW5jQjZ3dk5Xc2ptRTJIZmppTWV0VU5XbU5ZZzhjV0RFdjVPaGxWaVlzOXQx?= =?utf-8?B?M2xTL2Mwb1RtWGR6aW9OMkFzVjEwS0VDbFNuVFRmVDErYUUvVXUzcVJLU0hF?= =?utf-8?B?aVRCcFRoQjFFdnY4bWNpU0cyRzlBamVRSXJzZXhJWGlRbVY3QTcvOWxvWTJj?= =?utf-8?Q?n1HQ=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:34.3728 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3e5ef195-aba1-4ead-699f-08de4d1790f5 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D05.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR10MB4082 X-Proofpoint-GUID: WKa7QSNMzQCGav89e_dOUPhQXxGyMa41 X-Authority-Analysis: v=2.4 cv=LbIxKzfi c=1 sm=1 tr=0 ts=695cf34e cx=c_pps a=4znNAIdiiuCzO+DdkNTloQ==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=Hb1iwsRhEjJoBOvffS4A:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-ORIG-GUID: WKa7QSNMzQCGav89e_dOUPhQXxGyMa41 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfX0FOOGD3pH5VX Fez1ES8cXK1bj7TINEquTGcx0nAcYk01Ao27puID6P+jrOQwXry1QCSUGPrpz5SmH5cJX3UobqL xq4IGY5FglJ3geMUQwTenkmBN12rx4TlIvRbFNJZO5DTtJj49bmPppNvSd7pkvyqGKS2Qmu7ggd ZbgLviB7JH8hNi6JbZPedKkA58grX8zQjN8IjrdSu4GMWwQcqBORhp7lvIrFj5qS4YCZzPzT9X9 HYfF7KBRkLqOHKqhOkrRg1u5PeTxyCcRULawnPftq/KzXsBWRuEXO8L4qVBH4IEy270N6K7x5aJ Ev+VN+Yf5XOFmsfX2pnYeT/D0sxaz5EFSyc0K1/zCzR+PbeByCEecTx0ZfkURwDedVP9a35Qmec /X+DOh6IVKLbIdOu/toyPN98OFvO0yepDgryugCP1BWkiJW8GULgm1eO7358Tcu0tAppD/GrLgl EUrnkftcz8G7i5NUHJg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 suspectscore=0 spamscore=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 malwarescore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Rework of the spin_lock calls in preparation of the rework of the data handling of the driver. Keep it straight forward with basically spin_lock protection around everything except dmaengine calls that might sleep (ex: synchronize / terminate) Signed-off-by: Alain Volmat --- drivers/media/platform/st/stm32/stm32-dcmi.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 20f5b9ab6a1c..2fec10d13913 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmi.c +++ b/drivers/media/platform/st/stm32/stm32-dcmi.c @@ -227,25 +227,18 @@ static int dcmi_restart_capture(struct stm32_dcmi *dc= mi) { struct dcmi_buf *buf; =20 - spin_lock_irq(&dcmi->irqlock); - - if (dcmi->state !=3D RUNNING) { - spin_unlock_irq(&dcmi->irqlock); + if (dcmi->state !=3D RUNNING) return -EINVAL; - } =20 /* Restart a new DMA transfer with next buffer */ if (list_empty(&dcmi->buffers)) { dev_dbg(dcmi->dev, "Capture restart is deferred to next buffer queueing\= n"); dcmi->state =3D WAIT_FOR_BUFFER; - spin_unlock_irq(&dcmi->irqlock); return 0; } buf =3D list_entry(dcmi->buffers.next, struct dcmi_buf, list); dcmi->active =3D buf; =20 - spin_unlock_irq(&dcmi->irqlock); - return dcmi_start_capture(dcmi, buf); } =20 @@ -370,8 +363,10 @@ static void dcmi_process_jpeg(struct stm32_dcmi *dcmi) * buffer payload. */ =20 + spin_unlock_irq(&dcmi->irqlock); /* Drain DMA */ dmaengine_synchronize(dcmi->dma_chan); + spin_lock_irq(&dcmi->irqlock); =20 /* Get DMA residue to get JPEG size */ status =3D dmaengine_tx_status(dcmi->dma_chan, dcmi->dma_cookie, &state); @@ -386,8 +381,10 @@ static void dcmi_process_jpeg(struct stm32_dcmi *dcmi) dcmi_buffer_done(dcmi, buf, 0, -EIO); } =20 + spin_unlock_irq(&dcmi->irqlock); /* Abort DMA operation */ dmaengine_terminate_sync(dcmi->dma_chan); + spin_lock_irq(&dcmi->irqlock); =20 /* Restart capture */ if (dcmi_restart_capture(dcmi)) @@ -413,8 +410,10 @@ static irqreturn_t dcmi_irq_thread(int irq, void *arg) spin_unlock_irq(&dcmi->irqlock); dmaengine_terminate_sync(dcmi->dma_chan); =20 + spin_lock_irq(&dcmi->irqlock); if (dcmi_restart_capture(dcmi)) dev_err(dcmi->dev, "%s: Cannot restart capture\n", __func__); + spin_unlock_irq(&dcmi->irqlock); =20 return IRQ_HANDLED; } @@ -424,8 +423,8 @@ static irqreturn_t dcmi_irq_thread(int irq, void *arg) if (dcmi->sd_format->fourcc =3D=3D V4L2_PIX_FMT_JPEG && dcmi->misr & IT_FRAME) { /* JPEG received */ - spin_unlock_irq(&dcmi->irqlock); dcmi_process_jpeg(dcmi); + spin_unlock_irq(&dcmi->irqlock); return IRQ_HANDLED; } =20 @@ -599,11 +598,9 @@ static void dcmi_buf_queue(struct vb2_buffer *vb) dev_dbg(dcmi->dev, "Starting capture on buffer[%d] queued\n", buf->vb.vb2_buf.index); =20 - spin_unlock_irq(&dcmi->irqlock); if (dcmi_start_capture(dcmi, buf)) dev_err(dcmi->dev, "%s: Cannot restart capture on overflow or error\n", __func__); - return; } =20 spin_unlock_irq(&dcmi->irqlock); @@ -812,11 +809,11 @@ static int dcmi_start_streaming(struct vb2_queue *vq,= unsigned int count) =20 dev_dbg(dcmi->dev, "Start streaming, starting capture\n"); =20 - spin_unlock_irq(&dcmi->irqlock); ret =3D dcmi_start_capture(dcmi, buf); if (ret) { dev_err(dcmi->dev, "%s: Start streaming failed, cannot start capture\n", __func__); + spin_unlock_irq(&dcmi->irqlock); goto err_pipeline_stop; } =20 @@ -826,6 +823,8 @@ static int dcmi_start_streaming(struct vb2_queue *vq, u= nsigned int count) else reg_set(dcmi->regs, DCMI_IER, IT_OVR | IT_ERR); =20 + spin_unlock_irq(&dcmi->irqlock); + return 0; =20 err_pipeline_stop: --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) (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 53CFE32720E; Tue, 6 Jan 2026 11:35:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=91.207.212.93 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699310; cv=fail; b=RyqkNy5JQW0uCXXPQLYvQU6z5Fm/XScm49ZdN/FZpZUfPJnPdhIuPgixFdwNWhthf8IMyd1ICvNr0ILoi7+tW1SATVMs8rmU8kABsY8xje1V/cxxQupoA0bC+w61pH4mLJoV5yNXfruJD/zljTj6vjmfFCOx4YJLyj2SWYbzr4k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699310; c=relaxed/simple; bh=HxZ92JM+bN/7KxvkMJw5xWiLmE2cHi1ug1wUK8kOO5E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=HsZ0rPDd2V1tj0t5X+lT0ue2RnvfAIRpSqxoGqhWwsY6njrMEU6mjyho6x8hReUHDK6GC6GuCyIHDJClZGJ3tpLWnHzvo2cfdTQuHGNpuTnayP23D44VkeVpSF034g3ZjMv3onvZv8aeMWEO6M5GvXH9G3BZJpFTAnspKg0VZkI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=BlX4dKQe; arc=fail smtp.client-ip=91.207.212.93 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="BlX4dKQe" Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606BRiq1277694; Tue, 6 Jan 2026 12:34:38 +0100 Received: from db3pr0202cu003.outbound.protection.outlook.com (mail-northeuropeazon11010051.outbound.protection.outlook.com [52.101.84.51]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4bgn0fa6va-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:38 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MoCTeviFCuP6jV7qAtWvc/KZ1NTV5I/dm+wU6m6AjUHpA/iXNu84xGIH2PvOF77Xo3JbNJa8Qvh5ygPOVqWn5pp61+Nfdx6ofBhh+bBhIfzzqM8dLV5LT5JbDL9FqEYI2JMj8PxLsF2kjRgVz0j1AswgmD7kDCVdH0andDQbKkd3kGwH04u52fLtfDzkTW+psQlUzgSz/IoqF6zBmxOf6V8x3NLjYIepz5nOZdbUhX4HsdPI1udud5O4fVyuO8ic/KKwC2UzSsiAlGgE9JaRenVNkAGFh/TA+P4ZSjQmxMAu82pzmeMd4AWoKlMe2lsHgO/yp/Y0Y0PdUEKW/O+P2Q== 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=EXfe8OC0vBlaIXWnUWimSM54cBpWZKqn3tfeqcKpYb4=; b=iJE1AAUuy1ll4rB8mjrs6NhrxmbQLcbP34A39pIiTVEdPITTjL4O001CaaUYVvAbIbxP6zxX+4jJRxIEy9LsBUcdXBxARNxwRboSmp6Y2naFhvW7smI2nzCBovz3Z8lupnAB2E3VmcOOni5tg4vN7jYd21xfntb43AVcKlTeb+2q2AV3TtCThaD3BPCo94bjp32pYKZYUSIMm3jlCslJocjtCsSdfCNeZWU4cO9+1a0zc3WEus8+yGVB1VB40IDaQqxVKpsfq6JbdliJMN703l45MQGBaoVS4+PMxC1E2zGHS7vSSvV3Fs1Fs/B/m9jgiUkjo/GmPKOlHd4oiwqN9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EXfe8OC0vBlaIXWnUWimSM54cBpWZKqn3tfeqcKpYb4=; b=BlX4dKQedLUVvznRAo5ewD1rkx/SnjeJSY4r1gRwQyJUWE+D2vkVpRrOioalIHetZ6H3H8+TFo+eUmpEO1VcvPUwkkZKxvP/97ZIuwCrtND8dVFP3CS4k9hg0L5w198+EjIbtkOOv1BKAenhpMn0ve9cpYh6pP6oVhlAPxNElxW91TU8qJpqJOpzmSUzqCwSgsfrHLqy+bWNCYWc9L6Ul2Eh3a+8TbQjZbN49pIxsN+64wOqh4M+uOLh3T7a/QM8tQwak9t8IKTuxKT5gjXHj76LAl0e6XCPh3qM01UxQQGzNo5UcOjb/8OxvAG4xEa+B7iugdLrOm2RPwMTRtcvPA== Received: from DU7P251CA0022.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:551::24) by GV1PR10MB8605.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:150:1d5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Tue, 6 Jan 2026 11:34:35 +0000 Received: from DB3PEPF0000885F.eurprd02.prod.outlook.com (2603:10a6:10:551:cafe::e6) by DU7P251CA0022.outlook.office365.com (2603:10a6:10:551::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9499.2 via Frontend Transport; Tue, 6 Jan 2026 11:34:34 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by DB3PEPF0000885F.mail.protection.outlook.com (10.167.242.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.1 via Frontend Transport; Tue, 6 Jan 2026 11:34:35 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:35:49 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:34 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:34 +0100 Subject: [PATCH v2 06/12] media: stm32: dcmi: perform all dma handling within irq_thread Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-6-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB3PEPF0000885F:EE_|GV1PR10MB8605:EE_ X-MS-Office365-Filtering-Correlation-Id: ad699d62-3309-466b-0cb1-08de4d17916a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|30052699003|82310400026|1800799024|376014|7416014|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eXB1akEwajVJTWVvM0VXdm1jNk5aMzhpdU0wV1l1NWx2Y0dTNFdDN2Vjd2pD?= =?utf-8?B?R2tSWGZNY2RIMHNTZCtLQmlYMy9HSExOd1plM2xieTJKUjVNRmpRTnV6QjRq?= =?utf-8?B?bEVycFBvWmMvME9sYnRDOXZ5aWp3bmtQSlZXcDhYVk93aHNkSkdFTkNYdy9S?= =?utf-8?B?VlE2cmZ0aXgvSjNjd3M1TmMxMFlKT0tpeHUrdzBuM1ZSWEJiMVZhbmZqOUtM?= =?utf-8?B?bDNxQkV0OHNXTjh3VVBUSUgvRTZGcTU4cHBZdVprSnFHem5QeHBaK05VRHlJ?= =?utf-8?B?bm14Y05Da09ibnpyQzJoemx1anRsaS9TWlVTcXpLdUtpMG9oYnJxVW5EbGw1?= =?utf-8?B?NU1CZHo3S3lDUUhad2dydkt0UGZzWlRjQitndWdSUzk2UHRDalgwZWNCVzRr?= =?utf-8?B?SzkwdDZWeGNYWjU3Z0ZGOGNIcnlLRTdtUGlySERuNjEzMjFPclg5T3UrL2ht?= =?utf-8?B?M3p1cU0wTzlIV0syZVBZRm5iQlhiZHpaSFB5OWRpc0xnMlhtM3RPTU8zVnpu?= =?utf-8?B?bkM0MzBSVi8zZTZDTWVUa0NiRXhhUTRRSVR6TWxIY2RjaE9JNjY2L3VPZnhG?= =?utf-8?B?K1REbElQSHRGbHFxUGg1SFkzSWdPT3AyTnVFbjZ6eVYyR3k2WFNBdUVZL0lO?= =?utf-8?B?QjUwUTMyR3ViOTI3YXZrQlphdFU1ODIwLzFKWFNyRTdTQW55am9rcEIyeU5W?= =?utf-8?B?TGVXYkdZSWFWZTFlMjlpaTdRRG1USDNlamxLQkhUSmg3ODI3eS82T0ZhSEpK?= =?utf-8?B?QmRLS3VyN04rMVFtMStUUzBLemI1Z2NOc3FzRjhkV2dta1VLa2g0K0M5eUlO?= =?utf-8?B?YWNFYitDR0drRWN5bmJZWSs5VFBQcmJ1bm5TeDJWTk1ITjZSSGE4SUxTNzJj?= =?utf-8?B?SGRITjZqNVNOUG0yM1NuRHU1NTBGKzdHLy9NbC9QSWFoMGZHWEoxVE5hVTFP?= =?utf-8?B?eEl5aitlSWt5T1BuNVF4YnNnQUZwcm8raDRyNW83VXBNNjhEc1ZnMGNCa2FK?= =?utf-8?B?YjAzK0FacE5pbjczdit6eDN1VnQxZExaZUt4SWlwWVpVSkpyTldlUitablgx?= =?utf-8?B?eG5qMW02VTl0MXhyZkNzcnNIU3RlbG9WN1ozcHo2NmJnOHJPVjBmZ1RpeUNa?= =?utf-8?B?THp3dTBld3I0bzQxcjhBRjkzSzhENC8yNE1VazRjb3YvV1FqVitWVlgrSEFT?= =?utf-8?B?dEhWZmd6ZGs5S2hod21ybFFLaWpHY0gyUEpYNlpDS0djU050ZE9DUCs5UDlr?= =?utf-8?B?cG9Faks3TE1KWERDam9JN1ViVkdGdFJVNmVtUmZ4ekRWT0VvRlcyaUI5RDBO?= =?utf-8?B?NkF4VnFTbEJEVGkwNUtsdndyNFg1OXBvZ09IMmwvSEl2S09XS0UxSG1aYU56?= =?utf-8?B?ZERrUTVUaUNaam9veGJEQW9iUkdNc2d5enZvNmx1MG90dG1iY25vOHdpOFpH?= =?utf-8?B?VVp3TlZGblBGNGEyeXd4TytaWFByZVozaUdWd2YrWkIydGgvZkhvYXhwdXpC?= =?utf-8?B?RWhLZnhzUVQyK3Zub3c3ZVgya2RjSTBiWWVrRm5rMjg1bzl0RkFuSFhHejJm?= =?utf-8?B?SEo4aTlKcGJxcGM3RHl6RkdETU1NL2lCN3pGS0FyWmFuQmZtc2FPdXZTQmRZ?= =?utf-8?B?dlZUY3lwUzJabnpEN09kK0NRckFESXJLRDliTm1GelNYQm1NR3VQK3hUQjY0?= =?utf-8?B?NE40REIySkJpd3lVWkpBQ0djcVo1NS9WODhjYUdWRjlVTW9sUUFrWkZCbGxa?= =?utf-8?B?SFVsdE01NlltSUFBeGpXbWYvQnpmVFBnQ05qa0lpV1RZU0FDNCtqZCtCd2xH?= =?utf-8?B?SEJxZDgrSVBwcDQ3RjFKTFRDamV3QXFMbStBZWE5U2lRUGErWU13Q2RRWkR3?= =?utf-8?B?SXArdlFWLzJhNmJVL3Zqajk3RnYxVmhpYkhOODBFMTJldk4vMHhCZlFtS3lO?= =?utf-8?B?NmVjSU51RkVrWEFDcHM0TSt1cEdvOUtQQi9RYms4WEdqdXBQOUtxVDU4SVJ6?= =?utf-8?B?S2RrYlBOdFFjc3BVYk5ndzhmallUSzN2T2hOTk5zM1I4V1kyQkkrSm1YcFNh?= =?utf-8?B?MVRMM3lyUWFxa0F3RkYzRXBjcS9KSThORk9ubmZHdzcrQ3RYclh5RnNVSGhl?= =?utf-8?Q?ctUs=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(30052699003)(82310400026)(1800799024)(376014)(7416014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:35.1375 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ad699d62-3309-466b-0cb1-08de4d17916a X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DB3PEPF0000885F.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR10MB8605 X-Proofpoint-ORIG-GUID: -69JZuXz_5A21h4yzhKFdTQAeO7q9l8M X-Proofpoint-GUID: -69JZuXz_5A21h4yzhKFdTQAeO7q9l8M X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfX8DE35o8uYqTN Ok9LJuPrkuMJoKQS8mbAQdLc4zTeWRIgEpYnttpVvFoiMI8RFUfCfAyZ+WCQdmnVz3rdezjDaYc qNH6aCfBxhN4ugLFCdBp6U899g2ZCSD5KGl1h19EXZMyMFPJfvTqzHRP3BF+VF5KN1fssCERTBf 19jjuWDk7aBUxwg3UDwA0zheSOBcEb9S/rPJbZwjxegRKY5M8LF2xv1H74F1PYyMuAlxSQW1vhY mbHcvrIIUXaZPDW13tP4dGfcKjU1f0dwhi9m4mtH+ulamCbf8JQvC+QmJ43EZ2bLDpZhUi597En CDn7cnnGTbpepBlNPw2/SJBnlaRVtu5P5yENv04kHbn35CJ+1gsaUwxywmdOKfRYqb1QG5SoqFt cZHdI43Lf9oHfcvSH5nM89U/Zf46l7k3pySn8WeBH7mAPKq04ak8UWgi8XvD7NM3tw85Ar0jp+5 gETIT02MWOTECu0pXDg== X-Authority-Analysis: v=2.4 cv=XfeEDY55 c=1 sm=1 tr=0 ts=695cf34e cx=c_pps a=tirGsTo+S7nTr9XMcRGhJQ==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=nsOEii-EWWlXnWlBJ3sA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 impostorscore=0 spamscore=0 suspectscore=0 bulkscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Move all the type of frame handling within the dcmi_irq_thread handler and do not rely on dma_callback as previously. This simplifies the code by having only a single path for both compressed and uncompressed data while also making the system more reactive since irq_handler have more chances to be called faster than the dma completion callback. Indeed, in case of the dma completion callback, this run as a tasklet created by the dma framework upon getting an interrupt from the dma and run at a lower priority level than other irq handlers. Signed-off-by: Alain Volmat --- drivers/media/platform/st/stm32/stm32-dcmi.c | 97 ++++++------------------= ---- 1 file changed, 18 insertions(+), 79 deletions(-) diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 2fec10d13913..66bb79038c54 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmi.c +++ b/drivers/media/platform/st/stm32/stm32-dcmi.c @@ -227,8 +227,9 @@ static int dcmi_restart_capture(struct stm32_dcmi *dcmi) { struct dcmi_buf *buf; =20 + /* Nothing to do if we are not running */ if (dcmi->state !=3D RUNNING) - return -EINVAL; + return 0; =20 /* Restart a new DMA transfer with next buffer */ if (list_empty(&dcmi->buffers)) { @@ -242,52 +243,6 @@ static int dcmi_restart_capture(struct stm32_dcmi *dcm= i) return dcmi_start_capture(dcmi, buf); } =20 -static void dcmi_dma_callback(void *param) -{ - struct stm32_dcmi *dcmi =3D (struct stm32_dcmi *)param; - struct dma_tx_state state; - enum dma_status status; - struct dcmi_buf *buf =3D dcmi->active; - - spin_lock_irq(&dcmi->irqlock); - - /* Check DMA status */ - status =3D dmaengine_tx_status(dcmi->dma_chan, dcmi->dma_cookie, &state); - - switch (status) { - case DMA_IN_PROGRESS: - dev_dbg(dcmi->dev, "%s: Received DMA_IN_PROGRESS\n", __func__); - break; - case DMA_PAUSED: - dev_err(dcmi->dev, "%s: Received DMA_PAUSED\n", __func__); - break; - case DMA_ERROR: - dev_err(dcmi->dev, "%s: Received DMA_ERROR\n", __func__); - - /* Return buffer to V4L2 in error state */ - dcmi_buffer_done(dcmi, buf, 0, -EIO); - break; - case DMA_COMPLETE: - dev_dbg(dcmi->dev, "%s: Received DMA_COMPLETE\n", __func__); - - /* Return buffer to V4L2 */ - dcmi_buffer_done(dcmi, buf, buf->size, 0); - - spin_unlock_irq(&dcmi->irqlock); - - /* Restart capture */ - if (dcmi_restart_capture(dcmi)) - dev_err(dcmi->dev, "%s: Cannot restart capture on DMA complete\n", - __func__); - return; - default: - dev_err(dcmi->dev, "%s: Received unknown status\n", __func__); - break; - } - - spin_unlock_irq(&dcmi->irqlock); -} - static int dcmi_start_dma(struct stm32_dcmi *dcmi, struct dcmi_buf *buf) { @@ -344,7 +299,7 @@ static void dcmi_set_crop(struct stm32_dcmi *dcmi) reg_set(dcmi->regs, DCMI_CR, CR_CROP); } =20 -static void dcmi_process_jpeg(struct stm32_dcmi *dcmi) +static void dcmi_process_frame(struct stm32_dcmi *dcmi) { struct dma_tx_state state; enum dma_status status; @@ -354,13 +309,11 @@ static void dcmi_process_jpeg(struct stm32_dcmi *dcmi) return; =20 /* - * Because of variable JPEG buffer size sent by sensor, - * DMA transfer never completes due to transfer size never reached. - * In order to ensure that all the JPEG data are transferred - * in active buffer memory, DMA is drained. - * Then DMA tx status gives the amount of data transferred - * to memory, which is then returned to V4L2 through the active - * buffer payload. + * At the time FRAME interrupt is received, all dma req have been sent to= the DMA, + * however DMA might still be transferring data hence first synchronize p= rior to + * getting the status of the DMA transfer. + * Then DMA tx status gives the amount of data transferred to memory, whi= ch is then + * returned to V4L2 through the active buffer payload. */ =20 spin_unlock_irq(&dcmi->irqlock); @@ -368,16 +321,16 @@ static void dcmi_process_jpeg(struct stm32_dcmi *dcmi) dmaengine_synchronize(dcmi->dma_chan); spin_lock_irq(&dcmi->irqlock); =20 - /* Get DMA residue to get JPEG size */ + /* Get DMA status and residue size */ status =3D dmaengine_tx_status(dcmi->dma_chan, dcmi->dma_cookie, &state); if (status !=3D DMA_ERROR && state.residue < buf->size) { - /* Return JPEG buffer to V4L2 with received JPEG buffer size */ + /* Return buffer to V4L2 with received data size */ dcmi_buffer_done(dcmi, buf, buf->size - state.residue, 0); } else { dcmi->errors_count++; - dev_err(dcmi->dev, "%s: Cannot get JPEG size from DMA\n", - __func__); - /* Return JPEG buffer to V4L2 in ERROR state */ + dev_err(dcmi->dev, "%s: DMA error. status: 0x%x, residue: %d\n", + __func__, status, state.residue); + /* Return buffer to V4L2 in ERROR state */ dcmi_buffer_done(dcmi, buf, 0, -EIO); } =20 @@ -385,11 +338,6 @@ static void dcmi_process_jpeg(struct stm32_dcmi *dcmi) /* Abort DMA operation */ dmaengine_terminate_sync(dcmi->dma_chan); spin_lock_irq(&dcmi->irqlock); - - /* Restart capture */ - if (dcmi_restart_capture(dcmi)) - dev_err(dcmi->dev, "%s: Cannot restart capture on JPEG received\n", - __func__); } =20 static irqreturn_t dcmi_irq_thread(int irq, void *arg) @@ -420,12 +368,10 @@ static irqreturn_t dcmi_irq_thread(int irq, void *arg) if (dcmi->misr & IT_ERR) dcmi->errors_count++; =20 - if (dcmi->sd_format->fourcc =3D=3D V4L2_PIX_FMT_JPEG && - dcmi->misr & IT_FRAME) { - /* JPEG received */ - dcmi_process_jpeg(dcmi); - spin_unlock_irq(&dcmi->irqlock); - return IRQ_HANDLED; + if (dcmi->misr & IT_FRAME) { + dcmi_process_frame(dcmi); + if (dcmi_restart_capture(dcmi)) + dev_err(dcmi->dev, "%s: Cannot restart capture\n", __func__); } =20 spin_unlock_irq(&dcmi->irqlock); @@ -542,10 +488,6 @@ static int dcmi_buf_prepare(struct vb2_buffer *vb) return -EIO; } =20 - /* Set completion callback routine for notification */ - buf->dma_desc->callback =3D dcmi_dma_callback; - buf->dma_desc->callback_param =3D dcmi; - /* Mark the descriptor as reusable to avoid having to prepare it */ ret =3D dmaengine_desc_set_reuse(buf->dma_desc); if (ret) { @@ -818,10 +760,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, = unsigned int count) } =20 /* Enable interruptions */ - if (dcmi->sd_format->fourcc =3D=3D V4L2_PIX_FMT_JPEG) - reg_set(dcmi->regs, DCMI_IER, IT_FRAME | IT_OVR | IT_ERR); - else - reg_set(dcmi->regs, DCMI_IER, IT_OVR | IT_ERR); + reg_set(dcmi->regs, DCMI_IER, IT_FRAME | IT_OVR | IT_ERR); =20 spin_unlock_irq(&dcmi->irqlock); =20 --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [185.132.182.106]) (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 007A51EA7DF; Tue, 6 Jan 2026 12:01:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=185.132.182.106 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767700897; cv=fail; b=SlBxiUEKS4Up2og1eub49W3Qof/7YxErozOnj3LGVd345fWsBghIfrXw2/pR7VBfq9zkyUiXwB/k0tEMRJPUJ2qSW8GJPpY9qNf77V3JYdsnB+kA8+Rrn/OIVGnBXD3btMH4B0pt28/5SV8pFKfcDZYhTmR/kBv7Vc13S2/8P+g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767700897; c=relaxed/simple; bh=tKKaqsaJ6xKB3JtTfCeh5LK0LboNrTaNLjXxHNbnUXY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=oHRvDIkp0EN0NtGXs9/KLnZAMZEC3gScEuc0wliCgt5TE7KSnopC0Ggj8Y9AM89LPCI+OqLD0BtYd4eb6ftVBtgFFbpxOcEKZUJM7oWu9Qo67kGEbBEw+nf2hghB67GWGzSdHfCsX4eY2fCkfcUyULbklAK6wNH8nUMNj5GnoZY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=odoVUTMN; arc=fail smtp.client-ip=185.132.182.106 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="odoVUTMN" Received: from pps.filterd (m0369458.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606BUfKQ4097576; Tue, 6 Jan 2026 12:34:39 +0100 Received: from osppr02cu001.outbound.protection.outlook.com (mail-norwayeastazon11013068.outbound.protection.outlook.com [40.107.159.68]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4bfdj5fesa-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:38 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jh0A+O3uzYbC3tEMYLRblOQrdt594z7W43fBQr/hEPEE9Qi/z7uyh+vQLwqmg1p6L5GYln+nHvUFgfWGORSNf+RkIR9bCcvAzucVnUiumQFEN8eB1rn0IUgkNouKPBE4Epv0Ae03SZRPbb2FaqQHe8RIqeD+IzwEqkptiqPX9NcYuQe2WZgJeAoMcDxZDo7CgokOFwNrVi7oogtXOP+/OrZYmA7jVlFf2TuWhgYYLW5Xl0sBm1Vnj1ZxwZQV3tw6N6djbpLZ6wNP1qs/Uyy7bFR0RwzhuYEjGTkDHI1+yYpOLYpnoi8qFbSczelT6wLezfCqapmrGwFSORGi4+7lkg== 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=nMqDfgevdBZ23qNaZM8Qg7n+RaG9apdn7munHJWRxHM=; b=mjfaXXZUggt+/A8mPKrmm4BEsWNZFIEgcF/qYvNRTmZPnBRt5yhQryygtdAN2wM8DBABNY5qtg6XtP5IIxw7eRVm7UKpn+c2td+kFmcl1GFaQvZ18EUwSwpkiFqYSGGrFL6UhTr49lQddS5FiqbVfy9536bw/7+IZA74pnDA0fq9YN4NCSQKwti4IjbUoroth1cbc+roH9XuU/b4n3p8XEuy3mIECevp4pMFTjGrQfkxPhMbUPVchNh5drjzPn+2D8khj6iNq6khxzrAUJlePYwEyOJeiwo61chIbrZCcF/bkez+KADJwcg7/EIBd43wQvTH4oBNs4tec6z5JaeD6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nMqDfgevdBZ23qNaZM8Qg7n+RaG9apdn7munHJWRxHM=; b=odoVUTMNoDbd+FvmxckV3a0JnZm+6bdt0hi1NDy7nYkQKuUKcvFqvr+WnQ588ojRk5ooKVWecll3MWh36OPlMxbetLa0LRhN7VfT2k6c4tf5ic8o4dSJoxNZ6rn0mzPOwrWqMYjUDU/evGCzaac5QT0F7Uk+k/PVcIb8zY9wAI0YznyZ3lc+5h5+XSFsVkBDuD6Z2w6krZAAPntv9bJpUYkYssn+SB7BQ8rUlePcm0hohR0r687rSoXIzzpKKKNI+SSRU9W0C5g1dQIGwHbTaOPgU+/xHCwUXoOhsxQKZ7Pn+uigyFNG79kpixT2x9jvEAW+4MSU6WCzAvLhrmPHgQ== Received: from DUZP191CA0003.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f9::22) by AS8PR10MB6127.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:548::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Tue, 6 Jan 2026 11:34:36 +0000 Received: from DU2PEPF00028D05.eurprd03.prod.outlook.com (2603:10a6:10:4f9:cafe::e4) by DUZP191CA0003.outlook.office365.com (2603:10a6:10:4f9::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.5 via Frontend Transport; Tue, 6 Jan 2026 11:34:34 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by DU2PEPF00028D05.mail.protection.outlook.com (10.167.242.165) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Tue, 6 Jan 2026 11:34:35 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 6 Jan 2026 12:35:48 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:34 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:35 +0100 Subject: [PATCH v2 07/12] media: stm32: dcmi: use dmaengine_terminate_async in irq context Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-7-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D05:EE_|AS8PR10MB6127:EE_ X-MS-Office365-Filtering-Correlation-Id: 0a13fe74-1cfd-479b-1f7a-08de4d1791ef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?UU02bk5oUy9uYlBiZWRxVjJVeVNGSFB1dkZKQktQUFMySFgyZlU0Y3dCZTJ1?= =?utf-8?B?MjdyZi9DbDVoazNocTFpZlBsVUZHeFh3azNxbUYvZTBZSjZhYW9YdXY0RklS?= =?utf-8?B?azYzY2J5VHhDbElJdEhtUG9hMytDMWd3R0c4V1hPdi9DazErdDZ2Y0ZVSVFP?= =?utf-8?B?OEdFcjN3ZmtOQTNOVGpzTmp6Z1pTT2NWNHhBWGJtbTQ4NDhFN0d0YkdCdEk2?= =?utf-8?B?QVV5Y1A0YVF3cVpVOE1zM2IxajZoSWhVUzVRUFJYRXp3Um9CZDRGTWpaMDRo?= =?utf-8?B?aVZ1bkp5Z09lZnV3a3FDTk45bjhMV0ZNTDVWVE1aYnNTWithNVk3d1FDczZO?= =?utf-8?B?VFZhZDlLTmZkK0lRV2UweXZ6QlZCVXJNSnJ3MUJ1U3pLaEcrUHM1TDIwZnU3?= =?utf-8?B?djREd2ErYndvaXdDNmNNbnprL1ZWRTJ5Q2VocjEvY1V5MGtXK0UzQ3VNNk02?= =?utf-8?B?Ykl4UFMvNDVvem9mMkRlSitHUjBMU1M5Y3NYVUlmNGd0dENmZnAxQU92UTI3?= =?utf-8?B?QVRQR1RuOXlNNXNnNDROTzJGNHBIUHBpcWNubjg0dVlKbVVwaTN6WUluRGVR?= =?utf-8?B?R2JhK01TNTh6OVloUjJrVTZRZXh6cFptZkVqdkRZMXZDRVlTeS8ybjgvRzJ1?= =?utf-8?B?SWNNZ1BOOWZHQWhDSW1ZUjYxRGVkdHNWYzN1WHZiOWNudytOc0U4bnRZcEpZ?= =?utf-8?B?anA0bGlLY3lPS2JFUkRNL1E1bXRibFplNE5nSlBFTUZyT01vWEpsb3llbW13?= =?utf-8?B?QlNXcS9ad2toZDFFVVZ5aXN6WFhsYmN4NjJZa1pIc0NkS2F1eFR4ZWFpeXYy?= =?utf-8?B?aVdxanExUmprbmtXV0cxaXFpckRta2ZwVUZtOXFpRUFxWHp0ci8wL3p0ZDRV?= =?utf-8?B?Rm1NbndOMEJuclhmdmNHUHR6UXlyTVpKNTFXb2crblVqdDN3YklCUzFpVHNs?= =?utf-8?B?cnN4b3BPMm9oQXJTWkFhMC93VkJRaU4xeWNhZG5vVnFsMmExNkNtZk1zTzN1?= =?utf-8?B?OVQ3Zndsc0tWcFhkTUFtN3VtV1JDcVYwSzlGL3dVbENsdHptRlFwaDN4NzYy?= =?utf-8?B?L253dVMxS2NqdHVBMUYzWlRaK2MvcENoNm1saXp1T1hRdGU1SlZDWTYvSmdh?= =?utf-8?B?Rm5FcHJGQ1ZKcGkvMC9xeVVJSGFLeXl3Mm9wVGJGZzg1UmNtODU3SzhlU1VF?= =?utf-8?B?UHZWYTJSMi9lRHZvVFVneU4rRkI5VDdPMVQzNmVGckVIUGlJNFYxVjM1ZHJm?= =?utf-8?B?eVBIeU5BbmNJclllVTRMWG11STNoT05KZDdRSmttYVlTdmJCUHhEVDNnMjhJ?= =?utf-8?B?eERLcElmclpWM05TdXZVWkE5NTJSNktGRHp4TUhqSExkMEVGT3RGWE5HekhR?= =?utf-8?B?WWpHRUg1R3ZSTnZGUlRodnZvcDZXRmlYaWtNWWdYTmdqV3JtMVNDQ1hQclE5?= =?utf-8?B?TjVwa0FZeS9QdStKWmJhdytvTUp3eVY1eWlhcU8vd0pBODdzUnVjNWdSc0RG?= =?utf-8?B?eXhKTk1GbFMycVh5SWI3T2w2WEtnaWQ1Wk5Bdi9YYzN4V0hBU3BMeWtYLzN5?= =?utf-8?B?S3N1N21EenRvdUhRRVhjYk4rYzBsUHZobEFPWjNWVUhWdFQwMnFKanBDeitK?= =?utf-8?B?NEh1YVB5dDduZFg0TzZxTWYyOFdvT0dMaTRvakRxeklNREpPM3NoU0J1YnIv?= =?utf-8?B?eVFhVmZ1bU42djIvekVYMjhzSWZOSTVjTzEyWW1ja2FyTFRQd2xLOWhmNE4z?= =?utf-8?B?enJLV2hJOUwrSjdWTkRaSmVoM1dTVTdvTTdReFFTTTlRVC9WM1dEczlJZGZx?= =?utf-8?B?SnJwNnJqODh0SGVIbk5nQVEyeWZsejNOeXZSNmMzWUNiK2lNVmgvMmFPbHBx?= =?utf-8?B?R2t5Zk9EMVA2NnF1Q2xrT1ZHYXEwanZHbFBVVTdMK2lKL1BQR0hJOERUbG1u?= =?utf-8?B?Vy93M3dYWHppTTNTa3ZPcUlBY0Q2ZUY4cksxbDhBSzBMbGlNZkMzbFJtZ3Qr?= =?utf-8?B?WHIyUkczVWlXa0hzVXJVYVcxdXRwZjR3Y2NZMmp1SlM5ZXhFUGFWVFAvMWlp?= =?utf-8?B?ZXYzaGtnOVNFUWRieVJvOTF3KzZNSnFBTk1BZTB0RDY5OVhKV3JxWVcyNlZ5?= =?utf-8?Q?e2SI=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:35.9987 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0a13fe74-1cfd-479b-1f7a-08de4d1791ef X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D05.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR10MB6127 X-Proofpoint-ORIG-GUID: ajr5fzmlYFu_RBw6vCAGLBUvMjaj9or- X-Proofpoint-GUID: ajr5fzmlYFu_RBw6vCAGLBUvMjaj9or- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfXy41dwOcG6C4M CeZ92s5XXT6cd3dkH0EMtq7BJ8oWFmJDyt6RiCJ2ca6qk3vxq97heOn63+1A0wGV35Qs1WYMwKB F46aRJHJVQkMqTpbE/OZSEhZsP/+rOtGTo2CF7EZPIOKrVUrEQjIFnHASVLXPUW0AJp9UIimrQ9 dKTnbIAEhAXxNnKmWAEDmd7tE3FqBY7JIDTZloltkwOXBo4NW/YLK/PWu870Jf9Y9fNPDBarHN/ ZGUaI0g4GloDEKBvMaoqzUEtguVvnNtqin+cKs1wnB86N4AAsI74s4v5iZ0F7/81A5jP9uBWQ2W GhT0RFZde3TepXUGFWokqV8hgrn5vjNEfE0/iruG/g9bVWHYBxzOlFsseK+aIEQGED7QSKeAWPy Qe0oH9yZ1+Fb5zE5pw3RqyZdHUOcQJ2Pg4s+0KFR5PwJpqYFa/95Xse3/svd2RyEe+QcZaADqju A2h6sej1lHOgZw180iw== X-Authority-Analysis: v=2.4 cv=SMBPlevH c=1 sm=1 tr=0 ts=695cf34f cx=c_pps a=O7yYZzH2L7cA02xUA698ZA==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=gAtnOOuIUh8xv9oTcPAA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 malwarescore=0 spamscore=0 priorityscore=1501 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Whenever receiving an OVERRUN event or an end of frame, the driver stops currently ongoing DMA transfer since the DCMI stops sending data to dma. Not doing this would lead to having DMA & DCMI no more synchronized in term of expected data to be copied. Since this is done in irq handler context, it is not possible to make any call that would lead to scheduling hence dmaengine_terminate_sync are not possible. Since the dcmi driver is NOT using dma callbacks, it is possible thus to call instead dmaengine_terminate_async (aka without synchronize) and call again right after a new dmaengine_submit to setup again a new transfer. And since this is now a dmaengine_submit_async, there is no need to release the spinlock around calls to the dmaengine_submit_async. Signed-off-by: Alain Volmat --- drivers/media/platform/st/stm32/stm32-dcmi.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 66bb79038c54..6ca0ffcd97a3 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmi.c +++ b/drivers/media/platform/st/stm32/stm32-dcmi.c @@ -334,10 +334,8 @@ static void dcmi_process_frame(struct stm32_dcmi *dcmi) dcmi_buffer_done(dcmi, buf, 0, -EIO); } =20 - spin_unlock_irq(&dcmi->irqlock); /* Abort DMA operation */ - dmaengine_terminate_sync(dcmi->dma_chan); - spin_lock_irq(&dcmi->irqlock); + dmaengine_terminate_async(dcmi->dma_chan); } =20 static irqreturn_t dcmi_irq_thread(int irq, void *arg) @@ -355,10 +353,8 @@ static irqreturn_t dcmi_irq_thread(int irq, void *arg) if (dcmi->overrun_count > OVERRUN_ERROR_THRESHOLD) dcmi->errors_count++; =20 - spin_unlock_irq(&dcmi->irqlock); - dmaengine_terminate_sync(dcmi->dma_chan); + dmaengine_terminate_async(dcmi->dma_chan); =20 - spin_lock_irq(&dcmi->irqlock); if (dcmi_restart_capture(dcmi)) dev_err(dcmi->dev, "%s: Cannot restart capture\n", __func__); spin_unlock_irq(&dcmi->irqlock); --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) (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 53C85326D73; Tue, 6 Jan 2026 11:35:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=91.207.212.93 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699310; cv=fail; b=eAQxOTwqCXicag8WFI1hD1eVRaRT3qfLkYFuUI7IqI46GoBN7nReyplGHT8/Az91dJ6dRqtOZTVj7HQH4ftcmdQjihVZls38VOI5wcouxS1DkUxddPgdSFKYm2gFw2tpqYD2HfcyTEQGZOCry+n87E/fiKwEvdjb/zWGV2+26b4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699310; c=relaxed/simple; bh=6awIqvBSb2ZKBtTbVKo/qa7PYS2BwJlmVuPJKkyQVMQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=Tzm/I4Ou2DXiSyysoEBrQoYGfjXb/a3c4D5jMzCPuwwWElT1iVRUedMvN0Kcm2nb3i2f2/JHdykBnm6ebCDBQnjtl754AU+1HtV3GPKVtper2WSV8t49SYspxJku1pU85AH3RMxk23km1YwbPLcAhjTPS92+6ZEUDwi4fuAuFJY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=UstZwbzt; arc=fail smtp.client-ip=91.207.212.93 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="UstZwbzt" Received: from pps.filterd (m0046660.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606BPLGm772327; Tue, 6 Jan 2026 12:34:40 +0100 Received: from mrwpr03cu001.outbound.protection.outlook.com (mail-francesouthazon11011008.outbound.protection.outlook.com [40.107.130.8]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4bes49gwhe-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:39 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LZe81H1BVOh7i7+wzDPvi6M/mraywCXKBt/Yxz0ts8yPzX+LS3le1l+9VQwzG5vBV2+nA8Dky+7NTOFWmJadaTgxPZPdJizUmevAd+zxUk/uERwhSY5kz29mZXq6Dt6ivaKTI7UIMMjkCt7OliAl6jfOKk33nMYQiQQIpQ3T0sXpwhVgHtf70fn+qwf9WyMoerhpPYxXaofCGss0kgLZ2HB5IW30+tqdC88U0i97bXBHm8KieF+Obp4rgYFKZejNWwxaEB9rfRbAefXFzn3/aQqaY30v801gSTRaePA6lxmQz7naUQq2Vyg68ylTcxrfDAjoDMqout0F8gM2NcQj9w== 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=gDpxciJXyO/8myRrzb/hux5XbF5kx3rsILDuWraBIws=; b=ydGHzjnzHA5k4vnBEn14LyTXR7iqhBEcl0xJMpegQtMZO8Fhy0DpdhNt6E+SCeQxdUtAqPpwELiQemGqV2buMR9lbJ2y0sYtM890xGrZCUXh0hy7KlUbA7I97xGtKZVBr0zqQFQQGAODixgfTjJleHjsXeJBd+gqbC3lKHFZ/3XFdka8Mk7EedBZwLccAWhvOxql+0Coj9Awqi9uGuaFhaYGXMp9FXW+2DP2ToISERoOOCKRgdIFiENlROBogM8Wpt2h2TrfMYjKThOkHPvIacTwpGO1WyHHoJqfHKmLGfAt/B662ehKZcc1AKEE9jqKF50CQ767x509pckmlYjH/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gDpxciJXyO/8myRrzb/hux5XbF5kx3rsILDuWraBIws=; b=UstZwbztBVaTGN2JV0sFlyD9NIVyxnvC4jvOjwU9LWLk5z1n2c2vcDMjT7QTOLDmFozqd2LWchPX2Eks//i3mxNr+H3+C4aKFH7cd8baZS7AJFnLyIf70MeZqAjbNLrk9P+wio86Ua4/kiT7dDog62Z2M9Utu0fWxVA+1ndwFLHE1/katfJIrHRhcs/qrwgw9VxBBfM2P/aq5nf9JhE8GNXN85TgXrY0JVfDHnwnha9GA4Hnhu9EUE6ur3QKI4LzjWml9HCK0hP79VHcljFiF2u/vF2Qis8z6FrSaRKXhHWNPkU3BaEaAFA40RwJZ0Qc5Vx1hKBSq/LEf5S5A2ZTCQ== Received: from DUZP191CA0027.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f8::16) by GVXPR10MB8783.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:150:1de::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Tue, 6 Jan 2026 11:34:37 +0000 Received: from DB3PEPF00008859.eurprd02.prod.outlook.com (2603:10a6:10:4f8:cafe::36) by DUZP191CA0027.outlook.office365.com (2603:10a6:10:4f8::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9499.2 via Frontend Transport; Tue, 6 Jan 2026 11:34:35 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by DB3PEPF00008859.mail.protection.outlook.com (10.167.242.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.1 via Frontend Transport; Tue, 6 Jan 2026 11:34:36 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:35:50 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:35 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:36 +0100 Subject: [PATCH v2 08/12] media: stm32: dcmi: continuous mode capture in JPEG Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-8-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB3PEPF00008859:EE_|GVXPR10MB8783:EE_ X-MS-Office365-Filtering-Correlation-Id: 9608dddb-045c-4c95-b25a-08de4d17921e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|7416014|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MVFuUzBVNVc2VWdwS3d3WUwzOVJDb3VnQ1AveElFK1BJdDVLQWs0TDh4TmhD?= =?utf-8?B?azhyOTdxSDZNQWM4OWkxMkd5dFZFY0dYRzFvamJDWXRtRWRxa3RYcWFwdklk?= =?utf-8?B?YTlqQ0ZyZmU0Qi9HZnMxbzJCQUlmTVdvLyt1cXNQTThIOTc4VEJzaHZtZ0E3?= =?utf-8?B?M2Ntb1hxZkd3blZ0Tnp3cHl4VXhnM0xsa1Zad01zMGdRSjN5aHFpVktFMkJy?= =?utf-8?B?R05GZE1Td3l4Vkxpemg0Qy9GQ1dZWmRzWDhtNzVMRXp6a0hDWWcyOWFqWVRQ?= =?utf-8?B?cVFUS0pNYUcrd29QQkVVeDVWMUMvRGdBWTFSY3B0NGpxYjlUZERxVWtQa004?= =?utf-8?B?ME94TFc2alFxc29RbTVpNkZHTXd1REJJK05CUmNQVFAyS3p4eDdvd3ZXaE9L?= =?utf-8?B?a3NQVFA1em5XZDExU2tOV1g1ZjRJZHRoWUVPTU5EZUtHSVBFODFPaWxSU0Fz?= =?utf-8?B?ZEVvTWltMkE5eWJrQjNoaWdTLzZYSm9wdFlsemNSbUcwUkh6NU93OWMzMUhR?= =?utf-8?B?Q2lXaWhlekcya1JibVVyQkFLakdPc29ZeGJLNTJIS2JkZTFjUnV2djBlTlZU?= =?utf-8?B?ZGkxMDlJaDVNQitINW5iRllWZFREQmcrUVI5cjNPY05TQmpja0IwbU54ZXNp?= =?utf-8?B?cCtCMGRMUnUwQ0tSU1pXM2FsQ3A2YTBsL0psdlRXbCtpV3VkNXBWVHJXNWxx?= =?utf-8?B?S0tzS2hvRWM5aEFqM1dyeFpBemptbEpxY0VTNlYvYzREUkV6ek84T2MydDVI?= =?utf-8?B?eklvaGdnc0hmTXI1bkYycFduZHVqcHA4ZWJ6K0R2U2pHZFA3Q0RtVFJySlJq?= =?utf-8?B?UDIvQ3B6c1V3U1BVT243aUsxTXp5Sy9mZ0hDZEkvZ240aDA1SG5YTjNyaFZz?= =?utf-8?B?MVhCc2UweUxmb2U5N3ovemozY0s2eGIwR1pNMXJJSTQ0QWpVaytNcEZwSEJ3?= =?utf-8?B?b0ZiUzRpQnZaN0xBYzJEWlYzYUdpbFI3UFU1R2J1VGdDanpWbzd5S2RsSzYx?= =?utf-8?B?b0pFVmIvUEJoWEhJNFI1ZG5NajRscjk1cWQ3cENXdERUTTdVenM0UVJHaWlQ?= =?utf-8?B?OU02eUwrVUYrcU1NR0d2Nit3WXh5THFOeVEwYllxTFZRdG81TnBHdk5RSkR0?= =?utf-8?B?a2owV3VrNXRxRXZXamg0QWdOdEdKMlVsU0VSWjR4RSsvS1RmallEQy8xRlhM?= =?utf-8?B?Q2pIcGR0aVhheUVDL1JaaXVTcUhyQ1RLMEJoZVVsdjI0cG5iTEh0Ry85Rys4?= =?utf-8?B?RlF3dDRUQVZaaE92OUx2cTZ6enRIcXRDVjlUa2hXNk5ZMHYwNm0yblBiYnZ6?= =?utf-8?B?V0Vid0dqUC95NG1pK0VOTEZ6bVA1ek5adlNqM3ZpZ0RXTkpHaytXQU1CdTZz?= =?utf-8?B?U0J4dmFkOXVtREhyaDg1b0QxaTBFNXlCS3pLNThjNnJQKzNJcGtOaGR4cENG?= =?utf-8?B?N0paZVBUYXRuemRibmRteXhYTnRoYmw0b3lHS3pFTVZ2TjQrcDIreUlDZUIz?= =?utf-8?B?QWxFamlWcWphQkF6Mjd4SXVqZkJUNUZEUkVPVFAwTzBOMWJwTGF6Q2tsakcv?= =?utf-8?B?bFVBcFRMZFFNaVo2ZnQ2d0lxVlJWUG1SVENmajYvOFVaR1RHZS9oQjkwZWVH?= =?utf-8?B?Q3g0NS9rSVVGV3U0WHVQWTdZYk8wZ1JoMFNqWVlzV0NtRkl1U2d4djQyNEM0?= =?utf-8?B?WWFyK3U5SVhlcUR5VEtIRkF0bVhaVHFlUGtaRVZqck9pNURHSnBiOVF3WXVZ?= =?utf-8?B?d2FOTkFERkZla2w0aFh3LzFPN2s2RkFrZ0lkRzR6eUgwejUraFRXci8reWdh?= =?utf-8?B?WFZtSXRVdVVrVHhzOUg5TDhyY2xFaXRHNUk0SmhkM0dwaWdZTlBHcVZkZDBN?= =?utf-8?B?c1pYeEFQK296R2pOWDZtNWRCbWlFZnN1U1luVEwvWjdpV01ScHlLdUkrY0F2?= =?utf-8?B?ODBpVEhDeS8wSkpkSTdxb3FZNTd5SzJnNzluZ0o2US9PU1JOQVl4VnhmMmJo?= =?utf-8?B?VmF6ZkJVaVF3eXdDL0VjRnpnaklSTktDL1V1ZHYrekxnVVdQWktjYVd1ek1l?= =?utf-8?B?cWxsTjNKRkwvL0puTWVPcWpPWVpvYXlsSW5ySVYwT1VrY2Nnc2ZvdUdxRm9r?= =?utf-8?Q?D5oY=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(7416014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:36.3087 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9608dddb-045c-4c95-b25a-08de4d17921e X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DB3PEPF00008859.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR10MB8783 X-Proofpoint-ORIG-GUID: DI9gyhqlmpepAtKVkzcuq0TDzofof00L X-Authority-Analysis: v=2.4 cv=SvWdKfO0 c=1 sm=1 tr=0 ts=695cf34f cx=c_pps a=kV4qmwoOnOjkUfa4RRfhzg==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=YRgSJkVlcEML8Aj0wVgA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfX3Fk5XEob+7KE LdI/BH15SoX/0bK+0uisvnb9KbPQhIvtBGx98A6oWSrVSgy3HIItw/Ip7jJgClqCqRZmncmN8jg zvhxZ/0mQfmDHY2O06sLrr3CpxOBELpFCFGowgdGySnMu5IXftF1XCNCnxxb2z10dwBZt7x33f+ P6Ni2CJ9V2TzD78OLGZuOvFZo5/D7gEllZF9hkCVS9Ni0VrQykhavI08Pf8VpNkoJ8JtuATtnDX gQGh+dascG87VdbknLnfkOUciKa2Y/UbOHBEMif25JriZYMUHbAhacuRCyzR5w3QlUqxMdt6Kfd OQVLpHE6hLr+qP8KR3Kn9mdYN28a5BbViJ2Jhbs3+5c4JlcI8Lcs7GIIIKNu7MKMTs0eaKwIkCH oehIKIltxnCJ828mXgSidYsV+SU45Q2B8euQLZljapE45CKq8B6BsCCPDRWWLt3tz6oiLgwlKgY mJBJ5+Rikbxnn4s97WQ== X-Proofpoint-GUID: DI9gyhqlmpepAtKVkzcuq0TDzofof00L X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015 bulkscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 adultscore=0 phishscore=0 suspectscore=0 impostorscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Overall cleanup done allows to now have the JPEG handling done in the same way as other formats in continuous mode, allowing to achieve a faster framerate in all resolutions. Signed-off-by: Alain Volmat --- drivers/media/platform/st/stm32/stm32-dcmi.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 6ca0ffcd97a3..97683daf179d 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmi.c +++ b/drivers/media/platform/st/stm32/stm32-dcmi.c @@ -717,10 +717,6 @@ static int dcmi_start_streaming(struct vb2_queue *vq, = unsigned int count) if (dcmi->do_crop) dcmi_set_crop(dcmi); =20 - /* Enable jpeg capture */ - if (dcmi->sd_format->fourcc =3D=3D V4L2_PIX_FMT_JPEG) - reg_set(dcmi->regs, DCMI_CR, CR_CM);/* Snapshot mode */ - /* Enable dcmi */ reg_set(dcmi->regs, DCMI_CR, CR_ENABLE); =20 --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) (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 5BD63328B49; Tue, 6 Jan 2026 11:35:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=91.207.212.93 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699311; cv=fail; b=Pxd/q8mvGYSlnDDsd87l6kzfUOyhZtBhKb8XKvOpTd1ySEtlAtMY9s22VpA6f55EIvdIeJ4w6ODwyE+KspGaKzKJLlaxQ0sZe6HJU3AUkzmS9WQu5lj9+GHjd7bmHBZkDGmFxB++vNxwggehDJt6K+gObHQYveVbJrRJcOGYFNY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699311; c=relaxed/simple; bh=jlT5au+8g4h7Y56PWADvz+etR71zUI57Y8jWofskiJM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=I1dLtxQWkdEefQnbvz4a46Z5OYuq/AaXrHrCq/4twFskttc0SzN6bFyQ5g9d3CMruB+DVDouwY/Sh1NKrq12xjgHErke/Q6i5alsg+mHLOS9/hZvSKMoQNJ1awUljpESeNHMpTtyld4qEqy70/Jmr86L840UA/PK2Y126wboQdA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=UuBUwto6; arc=fail smtp.client-ip=91.207.212.93 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="UuBUwto6" Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606B9J5m246075; Tue, 6 Jan 2026 12:34:42 +0100 Received: from mrwpr03cu001.outbound.protection.outlook.com (mail-francesouthazon11011059.outbound.protection.outlook.com [40.107.130.59]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4bgn0fa6vj-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:42 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hCCcyh4UImNiMgrsRAoxCiJ5kH1rVMQS6DAlWxWAN1qkWEZgcCac9OIGvJnwCFZYAznjSanEedT1TENOrMhyCMJHl4ALbT29hm1lD8BvC+AOA/JeadGxspiP3FUHm3eMfyQLzqxCVXI/lHnR/5f6VQ6Uyg33pzUav8YgrjdmtKvmbZUyHtbHoLrjG3vfQJyWvzTs4PVN1/SB0Z43udkH8rXI8XVH859VkAhcp402Lw35TVk2NrA1sF0gV7Q4JOnqYrRt7N20zQrZbTa8z3W00Jtv/uu86+AlLbeluGismunDq4vkl1odCuWgzY8ar7fVM31ntSkZxhtmW7Bm6g5O3Q== 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=taaGgSDSjMKePbXs5KW2qPfedjyeB2T5t4LYlhXV/CE=; b=RKqfNlwMrfEN5S/kW3keCHb7UQNzOyzS2D1LWe2ewrHfJ35t6ABgfxXucC3WgArkiv4FNiQ1tATd1pMNKAWTM1biX3ryUHiDNN/kiW46L0rIGcZhgWZrG7kKozMe/z7ozMUZUoFG3Yd3OYcm2vK87mbwrz6C5wplxC7tMucGtcxOvMt4XFOVXyNPW3VkwwP8kL/7ffdHpvL29yzLGiIE/LHsRbXBvufm7bZIxP8Ycijt0I/GmJ1i1Cgosk26xkvn1PQglkWdeqeEzc9BMMgThVX9QMttLtWgVgwb3QsoKAztfWAx0FAdM5ailXPiiL2ZFsevh38gEhML92663WPLIg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=taaGgSDSjMKePbXs5KW2qPfedjyeB2T5t4LYlhXV/CE=; b=UuBUwto6iVu8hq7sDq0gq4woVNonTYygCc4ZFwSYQgHo0Pn/rJU9O77XYASfjvTg9LB3Wl3GLMlhENaFeYAvEVDnF8JBiXKIefu87052zYjwAZmGU5yLvGDGGPHPJg91NrZus0EIiXnpMmYXTs9Z9ntGI8xAl5vdBxEsPLFdRiwKpB50Vijv0ofoFODRj6gGr83P578IXcUtBJhzULmNPPJqskhvZ6PIcOUD1mYHX/DZDZJyEyMV2/ksZ0ZyuvXkDbcwK/5oyqnv+95s+p6kcYxRphsVaqBgMR1iia3a7g7M4Q4oriBBmp8F09r8/RuSP7llgPyq5NNNek2LLSN+/Q== Received: from DB8P191CA0006.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::16) by AM7PR10MB3479.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:139::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Tue, 6 Jan 2026 11:34:37 +0000 Received: from DU2PEPF00028D09.eurprd03.prod.outlook.com (2603:10a6:10:130:cafe::91) by DB8P191CA0006.outlook.office365.com (2603:10a6:10:130::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Tue, 6 Jan 2026 11:34:37 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by DU2PEPF00028D09.mail.protection.outlook.com (10.167.242.169) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Tue, 6 Jan 2026 11:34:36 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 6 Jan 2026 12:35:49 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:36 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:37 +0100 Subject: [PATCH v2 09/12] dt-bindings: media: st: dcmi: add DMA-MDMA chaining properties Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-9-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D09:EE_|AM7PR10MB3479:EE_ X-MS-Office365-Filtering-Correlation-Id: c8413d1b-dbdf-4fd7-07cf-08de4d179259 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?akd3MGhvR2VQd2pCL1ppUDVlZklmWU0wTkFOSjZnNDdjaVFwRU83a0dHc09t?= =?utf-8?B?TW5TSDM1Nk5TMnN1YzBxYXZQWGUwMVFXQ3ZFQjNzVzA2UitLczZ5cDFESTBz?= =?utf-8?B?bUpZUDJqdnh3K3QycGsvT2Vtck11cER2cTYrRTc3YVpnTHEvbVR4eHJxL0dt?= =?utf-8?B?UWRMUXEyRm9YYWtncjg4ajM4eWR0Zmk0TnN6UlFvTC9YR00rL0ZmSWEvYTVy?= =?utf-8?B?emFuOHJWMEwwMVcrT2o5MVFvY1N4c3ZleG0rRlk1WHc3SzNzLzd1RFhrcnVt?= =?utf-8?B?R1ZUZUY2cWVxMm5lUEh1K01aYytMSnZ3eWFIWk5UdGlBRVBLclYzM0FyNW5q?= =?utf-8?B?M01MWTRxWVJwTnF5RmNiUzk4SlhkanJGU3JUZElWQ3Z1MnFnNk93SFEveXE3?= =?utf-8?B?RHFXRG1Jd0Zlb093Y2tGMVplWW9QVkJuRmNpZXpEbG5vMzdzMjVjdXN0ZG9K?= =?utf-8?B?K1NLZ0FMR25PMEhnalBWb09xaWpaZzg5dUVkU3NObnZDanpHb3VFc1poWnRp?= =?utf-8?B?RytkRmFBc0ZLUE9OTCtWRnpWK0NzZXZONW94NTZXODFuQjhxNkorakpxZkl6?= =?utf-8?B?UEQ0OGZIRTJiQmpFM1drMVdWVXpxSHdzQVJueUJxQldwbHcvVFdmbCtQVTBC?= =?utf-8?B?WFJHdG9TSlVJOVBieHFYWE82djNDa1NkaS9wTXpKaWRUVlRSVTVqSjhGUkU5?= =?utf-8?B?VGZ0dVhDRmJJZktyWkRza2U2TS9VcjN2cDkxc1FTNXlHb01yUTBienNjbkl2?= =?utf-8?B?S2ZLMHZUR1NocE43TUFRRUVaVVUxNFc4NkxRdldhMGhwNWNxdGFjYVRaS3BL?= =?utf-8?B?MGFpWVVsZi9yVUlZQ1pKMkdkdHdtQnRjc29vSDNMZkE3VUcxMXVzdkx6clV1?= =?utf-8?B?dGJHM080S3BZcTFiem51YnBuKzFQdHllaWJFOFlRaCt2akxzcmVtTVJINkpE?= =?utf-8?B?dEtRcjdWOU91Y3VUd2VSRU9JcXlTOGNjdytiRXppSmF6cWRsK1lNYS92bFN3?= =?utf-8?B?cmh4TSsrbU1SNWxiTTJNeDN2MVFra1Rzc011aUtyRFpkc3lZNi9MUElxK2Rz?= =?utf-8?B?TzhXdFZGNUxOV0FjNnQwYllYSGpNSFJOUC84RXR5VFNUOU1uQXVlanJxdnlz?= =?utf-8?B?cHZNSVMzV3N2Vm9nczlqbitLUEQ5dDlQZ0ZDK0JBejBvU20vY1FUeEJkUWVE?= =?utf-8?B?Q1V6MThGWU5NRFZXSGdVVUxVKzdlcnZ2T3B1RlhyQzNha0JDWHlVM0REK0lB?= =?utf-8?B?d3JmbG5keGVFMlIwNVdtNFo3M1M5T0xZNGRHUFJKRHFUMVNmVzRZUi92RWo0?= =?utf-8?B?S0dMZThWRklPNkpsR1JYVk03MGFDV1pUTjBkTStkY2tySndCaUpoY3ZsRHo2?= =?utf-8?B?ZmFlR2VWb2tVKzk0NmdCSnVJNENVTEwxSE9zcXo0OGhVVXhHZW9CR0lsSGl2?= =?utf-8?B?Y3FlWnhUSE1nNVgrcDhILy9jMDFJcDJoR0prZE1BNXdGQlA4Nnh6NlJidGY1?= =?utf-8?B?L3p1UVVuVjZPVktncy9QNWk4YTNZK1VlU1U5ZUZwbzRuSEp2ckxBNnRwUHlL?= =?utf-8?B?WjJFQ1B4VnEzbmFaQ2Z3QkhBUE9JQ21hUUFsWjZ4M1J6cUk0Y0p3Nm1CTHMx?= =?utf-8?B?dnlmdEwrZXZGUm1SaFNtbW56WmZHZVZCV25NRmszV0k5VkMvWmowcVBkTHEz?= =?utf-8?B?Ty9Oa1ZwbkYwayszb1BDTFYxMXZISnlHQWlwQStFck5MWnNqNGxrNC9NeSth?= =?utf-8?B?YkRJR0JrQmtHbnRDS3gvcDBVRzliYVJnRXNnYkFVMUYxZUtzUWlPOHZoTHQy?= =?utf-8?B?anMyUUR4b0VEWFE3TUpLQk9ua1NQK2pwQ203Qm1tcVpOVlZCaTl2K2xlbEFi?= =?utf-8?B?Q1JjWTMyaXNoak5qOTBXaXRZa0M4b0E4NUV0YmZra0daZnhJZjBXWGVaU1ZK?= =?utf-8?B?ZmR3UlA2cjBKTFpzcW9IRFZIOEFOd1ZaY1owd0RPOGZENGtLOS8zeWlJTHhJ?= =?utf-8?B?M09FcnBIL3NZaDFxOUNwaURmYk4xcmg4cE5ZME5GVGc5NkNVZWU5ancxd0RF?= =?utf-8?B?TUZPWS9UY3N6UTR5TDNTcEkyL0dMRVBNMmlkdXc0Y1BFQW9ZcUFuVUtIaWFM?= =?utf-8?Q?FVEs=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(7416014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:36.6906 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c8413d1b-dbdf-4fd7-07cf-08de4d179259 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D09.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR10MB3479 X-Proofpoint-ORIG-GUID: R4Ce_V-i2VWfAfVlcBoOeZFn8Jo1MFsq X-Proofpoint-GUID: R4Ce_V-i2VWfAfVlcBoOeZFn8Jo1MFsq X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfX4Jo338zb5NKs 6HyylcoxPUAER1q0kTHfLixsbz96hZWK05tMlAuihbZfbc+s+xouHJsM/H/7kgGZK55l2uJ1NOr dnLDIIi4OtclHeKL/0HG7mWsYy3mHmvp8fjcDRZOOmGZFCmLu7R28WfkxntM3bfVydcqVCMnavp IyoARhlwVCVtAs33TLhVCHZK8xBHoNJDVKQiA6cw/EpWILwnIRm7d+7Y6clloSbVXVVdHTr4VNA AFKt15uvRlCyZBR5fSKq2f1gddJ7MGnPdCHYFsFyFK0JILum7JzClNaFsjYNwJU4C2PHjMxUbc1 dIOCryt/+fYai1WA3PHw0VbBS5zyY9Uj8eUpTfJSd9bmAoXYsRuJ/x0FCGMoDu+6XDexC+gXJkD c7Vc19YbA+tSpCXwxefSXvmsCMulZ+EOK0jJtG1X/lbTeb3LP2QDQW008hHDmkE4u8gW1oAWRTh R7L6vOkIZQsLMlwZq8g== X-Authority-Analysis: v=2.4 cv=XfeEDY55 c=1 sm=1 tr=0 ts=695cf352 cx=c_pps a=KdmdiZF57sCZw5A4EPOxpw==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=GURmBasZJxkRD45z7HEA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 impostorscore=0 spamscore=0 suspectscore=0 bulkscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Add properties update and new sram property necessary in order to enable the DMA-MDMA chaining. Signed-off-by: Alain Volmat Reviewed-by: Rob Herring (Arm) --- Change in v2: - correct typo (phandles -> phandle) - remove explanation about generic binding sram.yaml --- Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml b/D= ocumentation/devicetree/bindings/media/st,stm32-dcmi.yaml index 34147127192f..979360e9099e 100644 --- a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml +++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml @@ -27,11 +27,14 @@ properties: - const: mclk =20 dmas: - maxItems: 1 + minItems: 1 + maxItems: 2 =20 dma-names: items: - const: tx + - const: mdma_tx + minItems: 1 =20 resets: maxItems: 1 @@ -40,6 +43,12 @@ properties: minItems: 1 maxItems: 2 =20 + sram: + $ref: /schemas/types.yaml#/definitions/phandle + description: + phandle to a reserved SRAM region which is used as temporary + storage memory between DMA and MDMA engines. + port: $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [185.132.182.106]) (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 D30F346BF; Tue, 6 Jan 2026 12:06:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=185.132.182.106 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767701197; cv=fail; b=VK+VJz1mPW7Ofb7lQ1KUYyjieZvJea1wOwUXkf7AnpZ+YUebn8Is6RQbmF+Oxcnp+6Oepspz06r+6tDXwTlOm9w2nx41cj/0YQmsvMpVPHbpy5ELoWmrNtjVBgnj0F491hF7H3zMCErI4Ux2rk3qo8V/mpArWLvPNzRiv9/rSyk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767701197; c=relaxed/simple; bh=9cIg37CpgiC0TC6jVFf/J44MUYZK2/qPlMCdZkVWxrM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=FYom8TJrVvM6oXz+gG5Mv/C0oLEAFNCNVO9ISs/3JnUMDvfzwpJwuwNdRdHAakKz4w4L85/aHi2vZHion75z3JKQYjSmDTh50NNDr4ZZVclcZrmuLeElvjCRWxW+e8qaZ7TM87YNLif/ZoFyUwIJdWh6BYl4KAbX+Itj2VRWWx0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=MLmd4zv+; arc=fail smtp.client-ip=185.132.182.106 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="MLmd4zv+" Received: from pps.filterd (m0241204.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606BJHnE300924; Tue, 6 Jan 2026 12:34:43 +0100 Received: from pa4pr04cu001.outbound.protection.outlook.com (mail-francecentralazon11013001.outbound.protection.outlook.com [40.107.162.1]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4beub1h10u-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:42 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lhVNJ0pCsptKWDbuyeDeysNtxx+0M1/sl7Oucwo7rvUQYQzmAdPVDyhPRWq7wY2+R6d4NCmGfipnXDRPXNG3eZ0i5qCEiab0jBtdt3UoxWOVg3MkDfbsKlxZhPoLMeKCYHsgM+0+wVHHihZotBIpt9iz9+IwTnwhS0+MjFn1icqcutFl1c7zdgzDK2aeQWJUhq9QFxJ2deP6AapkDr0M9Usj6ZtB4KyY13lkz57Y6DtwXGbXvsQlHy9baPkAGC0OQMLKFkM3ba8t+NUu2/Im7YNAMtFtBKEjCoA1SR5nHSIY1m9R/KQMcqkyaYXum9QugAAY0tK5YEbbTthwEcgdFQ== 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=X34NpEAp6HqMkgQqAOi/Kj8YmWOEUyBd2qqfBt1h3Nc=; b=gLxwFqocSLyczRCmR6Z2vKKOGC05CsVOWu1auaZWAqSnnWxv0isiHND8I977vxukoi6uxKx8dCkcHdwjGvlYkhz3R9jOAbQfkkP7sDBHl3zJcvZRSZKm3zatYLuGvoFRLkX38zOLjq1HohEfJ5scn2LOSpXgpKQB1/DanRzfglFpO5kAhzjNfc+4IUl5StxbsMoL2kSFsr7h6+zSg0gH79MbJQWWkQAoabNpmYOYrTVP5owAaXb/69ER8Ur9GLF7D1FDbUedUmDouyv1xQv3/l+QVtEPycZVceei1kTOeAEM8iMemN5rff5zJzFyiVwndvW885L1/HXGO2JD3mvr5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X34NpEAp6HqMkgQqAOi/Kj8YmWOEUyBd2qqfBt1h3Nc=; b=MLmd4zv+lHkYmM5KaJrrV0Ij8Hkpn082aDhVIcJ1aktWIkeLkEtdwwZuX3lJoavcDSCJr2rro2c94TdzCzoXo+8fXrE0+mSxwLWQxSWI+bJ+x1CmFz6UcQ+lOg3exEACYOtzb6QAlfxQ+V9Zqu9ZQmApE+ZbOZ3S330oEMCTG31CrD6L4aOif7mH59uQZvcb0g2Ih+J45kapncKhgXnP4UqP6sZA584Zk1mrqfULieJ6BsX3lV2zPZocJ3V0s7HafzrdUESVBArmBtmHWwbzt1EoGk2XnZTSG5sHrWNGYRHvHeky1SiAcLG8NkW7AZigv20pEG02j6CSVfswCiAqvA== Received: from DUZP191CA0048.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f8::8) by DUZPR10MB8149.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:4dc::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.5; Tue, 6 Jan 2026 11:34:37 +0000 Received: from DB3PEPF00008859.eurprd02.prod.outlook.com (2603:10a6:10:4f8:cafe::1) by DUZP191CA0048.outlook.office365.com (2603:10a6:10:4f8::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9499.2 via Frontend Transport; Tue, 6 Jan 2026 11:34:37 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by DB3PEPF00008859.mail.protection.outlook.com (10.167.242.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.1 via Frontend Transport; Tue, 6 Jan 2026 11:34:37 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:35:51 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:36 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:38 +0100 Subject: [PATCH v2 10/12] media: stm32: dcmi: addition of DMA-MDMA chaining support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-10-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB3PEPF00008859:EE_|DUZPR10MB8149:EE_ X-MS-Office365-Filtering-Correlation-Id: de25d141-0c21-4797-d8ae-08de4d179305 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|7416014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eVRwZitLTXhnb0w3dkQ5emZkU1YybFVUSFhDMjRPNms1d216RERHNDFrcWUv?= =?utf-8?B?dk9WTm01b3VtTHNuU1FOSXlsd1NxdFRVcHRjNVQydmR5WWJhcWlRdzFKTm42?= =?utf-8?B?MTF2MFpTazFLUVJrUjhWZk5lYnZtQXdnL2VaWkI0Q3l2bzcrUTVHU2xLUGdG?= =?utf-8?B?UXo0TUJzeFovVVVLMi9GcGJETTR1WDRtT3BNajU0WHkzK3FjOUxRMllqb2xi?= =?utf-8?B?YnFiUFdyNFc0K1pRRVRuc1owZloySzB2M0RIOWREa1dKamY0anpNSHBoODJ6?= =?utf-8?B?YnRZbkNWQmsrU3laZ1YrcUlpbGR5eEloNnVVU29qMDRrUXVBaFhPUjl1N3RY?= =?utf-8?B?N1V1U1lTRzRkaVRFQ2R5dEs1S3IyYVBxQ21WMkVDUzJRRStSaFdVQ0xRWURS?= =?utf-8?B?cityeUVzTWhwekhCNlJtenJvTDZaMnRmcnNpSldSeDBrd3pNMU5SN2tjOUg3?= =?utf-8?B?NC84YTh5MEJxcWsrMnY5VDBrcXROZ0N1aUZJaFVSeE5NbU5wTE1hYmYxbmJO?= =?utf-8?B?cG9kaUo3Ykc0WEU3bEt4RVhqMkVnbzN5VFRNNzBXbGtoMnpXbHBoM01INmEy?= =?utf-8?B?S3V3dVo4Mzl0ZTdjbi90cnVpUFV4Y2p4VzZjN1ZqV0RiTmdkSmVvQTVLZ200?= =?utf-8?B?NDM4RkNtQVFybmdsWGVWaG05RDQ4RzY3T05YOXNLYXZUcmdwbitjWVFCZlpL?= =?utf-8?B?WE1TVjRtaVU0SmR5U0RpWkorK2N6UFhubHkrcXo3NTEram45dytKNkVtSzVp?= =?utf-8?B?L2pSUzNRUElRNjlJVUFLSTl0VlpBQmdsdUN3RkRMemt0cncxcm9DamZXU1ht?= =?utf-8?B?VkV0MlB1b0h1TlFiS092Rzc1NGMvNEpkTmFsVGU2MnVIdnN5ek9KTE54cXhw?= =?utf-8?B?Mlo3VllMcnVIdUYvQWY1YzE5TGV4ZlJ2WE9JTXhVRVZINGZDK1FZb3BWeDE0?= =?utf-8?B?aGVLZXUxR2hJSjNxMGUrY0VDQU0vV1B3ZGhUL0gwTjlWM2txZXl1UWVNM3c4?= =?utf-8?B?Si9iR1JIR0pUd0pOVk1xZzgvSTJxZVhLUDlubDUwOC80cXNsOFFDdmM5UTRa?= =?utf-8?B?eHpLdmVya3M3TXFDb3V2SElxVkNWbTRNQTNjSjloaTd1Z3VsQkNFZWo5MTlQ?= =?utf-8?B?MUhkM0JRYXJSL3M1Q2EvMFFnRktHeE5LaDdRZHNzMmVIZUZyTWtjRHZjNXFh?= =?utf-8?B?aWNkS1VhcUNrR2VaU1I3UElpV3YzeWYzbWRYU05DTi9qQmhGYU8zVG11bStB?= =?utf-8?B?MlQ5d1dXT1NjTFpwdTZJdW1pRlFGM0JranlOWG5IMGkwNGs3d3E5UmROTXdQ?= =?utf-8?B?d3REaFBDNFc3RG05b0Z1RlRMV2xqN1drOGxtZ0o2NDM2dEZheHgrc2tuVklJ?= =?utf-8?B?VFBIc2M2NlRpaW1kOUNpeGNKMUV3NlhqblZKVnJ3bzY4T1pLa0Fkc29Objdz?= =?utf-8?B?Tm9zaVRqR0ZxcklRdTBYNTR5cmdOcVJuYjlNU3JrV2NsTUZ2KzFta3BpcFlM?= =?utf-8?B?b3VQL09rWXU3VXBYT200MG54TWhiMTlsNTNIcUhFdkJ0b25zeVVmdU0zaUZ1?= =?utf-8?B?RGY5azh5MUliV1AwM3lOSitHU3lsR3dCVXFxSmYzWTcrbURVYVJQWFdnRUZU?= =?utf-8?B?dXRIdGFxeHB6bml5T1NJKzh2Wk1zSGVYOTdMcFlWdW9RMUNPa1lZQjhGMktJ?= =?utf-8?B?emFYeFBOcExTUmxBbVlpcWFtQk9JeXhDWUlyOGtHMjROb1pnSzhWV1llenFJ?= =?utf-8?B?NStLSDNIZ2liM1F2WDNSZDNHaUdEckdpVklkYVlScEhCSE1IWnZ1Z1F3Z0t1?= =?utf-8?B?aW1wS1Ztb3l1aEpzYVhTV0NyTkM4YUl3OHRZREhhMmI3aEMwNXA5bm05MkVC?= =?utf-8?B?RUhvdWczYTZJL2VXSUJpbkRPcVRPZytnY0dsd2UwUi9lQlh3ZkExOC9IR21o?= =?utf-8?B?bml5N1FRb1krL3hJVzJwUEdKVGtTbW5XQ0EwZUpJQ1I0VHl0aEtMVDNYUHhl?= =?utf-8?B?Y2pZdmxlZHlCenpiWEU0R2h1TmdnVk1yN29Kb2dUUCtRQkN6cm5ZUWxFdnRv?= =?utf-8?B?T0RoOW5mZE9vS2NTYmFmU0s3YzJpU3BoZWwreUZuVVNOYzA2V09STEVUT3pK?= =?utf-8?Q?Tlf8=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(7416014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:37.8336 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: de25d141-0c21-4797-d8ae-08de4d179305 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DB3PEPF00008859.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR10MB8149 X-Proofpoint-GUID: pAbQulcRADjFpZAO9PLJRYGO4iQVwrbl X-Authority-Analysis: v=2.4 cv=LbIxKzfi c=1 sm=1 tr=0 ts=695cf352 cx=c_pps a=T38ZVIHQc1O2jE0KAdCSkA==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=lfp9Q9lF5-ry6RQ8HC8A:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-ORIG-GUID: pAbQulcRADjFpZAO9PLJRYGO4iQVwrbl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfX3GyS9OKOb/gg 5ANwgJJQcJoW1sYB8nAaEyG8Wzl1VBf0GqJMg+JZRY8zb1zGdy5v9uDbluaPpiB89becjxwUlXh D3sdXbjjsRj/R5qnyAANH2UJSqJH0z2B3N4CiwPrX5JOJDvIIrAxLvrtD+JO+RPApnOtJ93HOAk NowMR+/f1clipxdQ6FMs/sowBCsqFzfRRsuzY3YVCspoxpUdBhnVLU3DTupptuMXJ3HbjNTOM64 FgoSV/HD6ePdPoCgH0GEOvA3kjAmi95RVLli7cSaxiujB2HbC05+zBEKvj/8Oro235J4JxL8XjN b48mMe1zkSJHwUMm91OGBSUGikdGrgDzk83yMC+sRtGI4T3UfoNlXCrLcoRF7Jlwu+ZiARTPyLZ RPbDxvvsg2nMiqqx2Q4Br208pVbn1kjLpKvBayG1VILtegxHk2kA1MbenfXeJeClwgb4H5IU9BB +txN1RrGZY/GOia+Ofg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 suspectscore=0 spamscore=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 malwarescore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Add possibility to rely on an additional MDMA channel and chain the DMA and MDMA channels allowing to achieve faster capture. Indeed, on the MP15 platform, the MDMA engine has an higher bandwidth to the DDR than the DMA engine. Relying on that it is possible to capture frames from the DCMI IP into the DDR by using two channels as follow: DCMI -> (DMA) -> SRAM -> (MDMA) -> DDR The DMA is able by himself to trigger a MDMA request hence, once properly configured, the DCMI IP can simply trigger the DMA in order to have the data pushed up to the DDR (via the SRAM and a MDMA channel). This behavior is detailed in the document Documentation/arch/arm/stm32/stm32-dma-mdma-chaining.rst Signed-off-by: Alain Volmat --- drivers/media/platform/st/stm32/stm32-dcmi.c | 250 +++++++++++++++++++++++= ---- 1 file changed, 220 insertions(+), 30 deletions(-) diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 97683daf179d..e5663fbe6422 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmi.c +++ b/drivers/media/platform/st/stm32/stm32-dcmi.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -113,7 +114,9 @@ struct dcmi_buf { struct vb2_v4l2_buffer vb; bool prepared; struct sg_table sgt; + struct sg_table sgt_mdma; struct dma_async_tx_descriptor *dma_desc; + struct dma_async_tx_descriptor *mdma_desc; size_t size; struct list_head list; }; @@ -159,6 +162,15 @@ struct stm32_dcmi { struct dma_chan *dma_chan; dma_cookie_t dma_cookie; u32 dma_max_burst; + + /* Elements for the MDMA - DMA chaining */ + struct gen_pool *sram_pool; + struct dma_chan *mdma_chan; + void *sram_buf; + u32 sram_buf_size; + dma_addr_t sram_dma_buf; + dma_cookie_t mdma_cookie; + u32 misr; int errors_count; int overrun_count; @@ -247,12 +259,22 @@ static int dcmi_start_dma(struct stm32_dcmi *dcmi, struct dcmi_buf *buf) { /* Push current DMA transaction in the pending queue */ + if (dcmi->mdma_chan) { + dcmi->mdma_cookie =3D dmaengine_submit(buf->mdma_desc); + if (dma_submit_error(dcmi->mdma_cookie)) { + dev_err(dcmi->dev, "%s: MDMA submission failed\n", __func__); + return -ENXIO; + } + } + dcmi->dma_cookie =3D dmaengine_submit(buf->dma_desc); if (dma_submit_error(dcmi->dma_cookie)) { dev_err(dcmi->dev, "%s: DMA submission failed\n", __func__); return -ENXIO; } =20 + if (dcmi->mdma_chan) + dma_async_issue_pending(dcmi->mdma_chan); dma_async_issue_pending(dcmi->dma_chan); =20 return 0; @@ -301,7 +323,9 @@ static void dcmi_set_crop(struct stm32_dcmi *dcmi) =20 static void dcmi_process_frame(struct stm32_dcmi *dcmi) { - struct dma_tx_state state; + struct dma_tx_state state, state_dma; + size_t bytes_used; + enum dma_status status; struct dcmi_buf *buf =3D dcmi->active; =20 @@ -309,23 +333,36 @@ static void dcmi_process_frame(struct stm32_dcmi *dcm= i) return; =20 /* - * At the time FRAME interrupt is received, all dma req have been sent to= the DMA, - * however DMA might still be transferring data hence first synchronize p= rior to - * getting the status of the DMA transfer. - * Then DMA tx status gives the amount of data transferred to memory, whi= ch is then - * returned to V4L2 through the active buffer payload. + * Pause the DMA transfer, leading to trigger of the MDMA channel read wh= ile + * keeping a valid residue value on the dma channel */ + if (dcmi->mdma_chan) { + spin_unlock_irq(&dcmi->irqlock); + dmaengine_pause(dcmi->dma_chan); + spin_lock_irq(&dcmi->irqlock); + + do { + status =3D dmaengine_tx_status(dcmi->mdma_chan, dcmi->mdma_cookie, &sta= te); + cpu_relax(); + } while (status !=3D DMA_ERROR && status !=3D DMA_COMPLETE && + state.residue && state.in_flight_bytes); + } else { + status =3D dmaengine_tx_status(dcmi->dma_chan, dcmi->dma_cookie, &state); + } =20 - spin_unlock_irq(&dcmi->irqlock); - /* Drain DMA */ - dmaengine_synchronize(dcmi->dma_chan); - spin_lock_irq(&dcmi->irqlock); - - /* Get DMA status and residue size */ - status =3D dmaengine_tx_status(dcmi->dma_chan, dcmi->dma_cookie, &state); if (status !=3D DMA_ERROR && state.residue < buf->size) { + bytes_used =3D buf->size - state.residue; + + if (state.residue && dcmi->mdma_chan) { + dmaengine_tx_status(dcmi->dma_chan, dcmi->dma_cookie, &state_dma); + /* Getting full size residue equal to no residue */ + if (state_dma.residue =3D=3D dcmi->sram_buf_size) + state_dma.residue =3D 0; + bytes_used -=3D state_dma.residue; + } + /* Return buffer to V4L2 with received data size */ - dcmi_buffer_done(dcmi, buf, buf->size - state.residue, 0); + dcmi_buffer_done(dcmi, buf, bytes_used, 0); } else { dcmi->errors_count++; dev_err(dcmi->dev, "%s: DMA error. status: 0x%x, residue: %d\n", @@ -336,6 +373,8 @@ static void dcmi_process_frame(struct stm32_dcmi *dcmi) =20 /* Abort DMA operation */ dmaengine_terminate_async(dcmi->dma_chan); + if (dcmi->mdma_chan) + dmaengine_terminate_async(dcmi->mdma_chan); } =20 static irqreturn_t dcmi_irq_thread(int irq, void *arg) @@ -354,13 +393,15 @@ static irqreturn_t dcmi_irq_thread(int irq, void *arg) dcmi->errors_count++; =20 dmaengine_terminate_async(dcmi->dma_chan); + if (dcmi->mdma_chan) + dmaengine_terminate_async(dcmi->mdma_chan); =20 if (dcmi_restart_capture(dcmi)) dev_err(dcmi->dev, "%s: Cannot restart capture\n", __func__); spin_unlock_irq(&dcmi->irqlock); - return IRQ_HANDLED; } + if (dcmi->misr & IT_ERR) dcmi->errors_count++; =20 @@ -447,28 +488,70 @@ static int dcmi_buf_prepare(struct vb2_buffer *vb) vb2_set_plane_payload(vb, 0, size); =20 if (!buf->prepared) { + u32 max_size =3D dcmi->dma_max_burst; + unsigned int dma_nents; + /* Get memory addresses */ buf->size =3D vb2_plane_size(&buf->vb.vb2_buf, 0); - if (buf->size > dcmi->dma_max_burst) - num_sgs =3D DIV_ROUND_UP(buf->size, dcmi->dma_max_burst); + if (dcmi->mdma_chan) + max_size =3D dcmi->sram_buf_size / 2; =20 - ret =3D sg_alloc_table(&buf->sgt, num_sgs, GFP_ATOMIC); + if (buf->size > max_size) + num_sgs =3D DIV_ROUND_UP(buf->size, max_size); + + /* + * If we use MDMA chaining, DMA is used in cyclic mode and the scatterli= st + * maximum size is thus 2 + */ + dma_nents =3D num_sgs; + if (dcmi->mdma_chan) + dma_nents =3D min_t(unsigned int, num_sgs, 2); + + ret =3D sg_alloc_table(&buf->sgt, dma_nents, GFP_ATOMIC); if (ret) { - dev_err(dcmi->dev, "sg table alloc failed\n"); + dev_err(dcmi->dev, "sg table alloc failed for DMA\n"); return ret; } =20 + if (dcmi->mdma_chan) { + ret =3D sg_alloc_table(&buf->sgt_mdma, num_sgs, GFP_ATOMIC); + if (ret) { + dev_err(dcmi->dev, "sg table alloc failed for MDMA\n"); + return ret; + } + } + dma_buf =3D vb2_dma_contig_plane_dma_addr(&buf->vb.vb2_buf, 0); =20 dev_dbg(dcmi->dev, "buffer[%d] phy=3D%pad size=3D%zu\n", vb->index, &dma_buf, buf->size); =20 - for_each_sg(buf->sgt.sgl, sg, num_sgs, i) { - size_t bytes =3D min_t(size_t, size, dcmi->dma_max_burst); + for_each_sg(buf->sgt.sgl, sg, dma_nents, i) { + size_t bytes =3D min_t(size_t, size, max_size); + + if (!dcmi->mdma_chan) { + sg_dma_address(sg) =3D dma_buf; + dma_buf +=3D bytes; + } else { + /* Targets the beginning =3D first half of the sram_buf */ + sg_dma_address(sg) =3D dcmi->sram_dma_buf; + /* + * Targets the second half of the sram_bubf + * for odd indexes of the item of the sg_list + */ + if (i & 1) + sg->dma_address +=3D (dcmi->sram_buf_size / 2); + } + /* + * In case of DMA-MDMA chaining, since the DMA is working in cyclic mod= e, + * we need to provide two linked-list node of same size in order to have + * a correct residue value computed. + */ + if (!dcmi->mdma_chan) + sg_dma_len(sg) =3D bytes; + else + sg_dma_len(sg) =3D dcmi->sram_buf_size / 2; =20 - sg_dma_address(sg) =3D dma_buf; - sg_dma_len(sg) =3D bytes; - dma_buf +=3D bytes; size -=3D bytes; } =20 @@ -480,6 +563,8 @@ static int dcmi_buf_prepare(struct vb2_buffer *vb) DMA_PREP_INTERRUPT); if (!buf->dma_desc) { dev_err(dcmi->dev, "%s: DMA dmaengine_prep_slave_sg failed\n", __func__= ); + if (dcmi->mdma_chan) + sg_free_table(&buf->sgt_mdma); sg_free_table(&buf->sgt); return -EIO; } @@ -489,10 +574,48 @@ static int dcmi_buf_prepare(struct vb2_buffer *vb) if (ret) { dev_err(dcmi->dev, "%s: DMA dmaengine_desc_set_reuse failed\n", __func_= _); dmaengine_desc_free(buf->dma_desc); + if (dcmi->mdma_chan) + sg_free_table(&buf->sgt_mdma); sg_free_table(&buf->sgt); return -EIO; } =20 + if (dcmi->mdma_chan) { + size =3D dcmi->fmt.fmt.pix.sizeimage; + for_each_sg(buf->sgt_mdma.sgl, sg, num_sgs, i) { + size_t bytes =3D min_t(size_t, size, max_size); + + sg_dma_address(sg) =3D dma_buf; + sg_dma_len(sg) =3D bytes; + dma_buf +=3D bytes; + size -=3D bytes; + } + + buf->mdma_desc =3D dmaengine_prep_slave_sg(dcmi->mdma_chan, buf->sgt_md= ma.sgl, + buf->sgt_mdma.nents, + DMA_DEV_TO_MEM, + DMA_PREP_INTERRUPT); + if (!buf->mdma_desc) { + dev_err(dcmi->dev, "%s: failed dmaengine_prep_slave_sg for MDMA\n", + __func__); + dmaengine_desc_free(buf->dma_desc); + sg_free_table(&buf->sgt_mdma); + sg_free_table(&buf->sgt); + return -EIO; + } + + ret =3D dmaengine_desc_set_reuse(buf->mdma_desc); + if (ret) { + dev_err(dcmi->dev, "%s: failed to set reuse for mdma desc\n", + __func__); + dmaengine_desc_free(buf->mdma_desc); + dmaengine_desc_free(buf->dma_desc); + sg_free_table(&buf->sgt_mdma); + sg_free_table(&buf->sgt); + return -EIO; + } + } + buf->prepared =3D true; =20 vb2_set_plane_payload(&buf->vb.vb2_buf, 0, buf->size); @@ -511,6 +634,14 @@ static void dcmi_buf_cleanup(struct vb2_buffer *vb) if (!buf->prepared) return; =20 + if (dcmi->mdma_chan) { + ret =3D dmaengine_desc_free(buf->mdma_desc); + if (ret) + dev_err(dcmi->dev, "%s: Failed to free the mdma descriptor (0x%x)\n", + __func__, ret); + sg_free_table(&buf->sgt_mdma); + } + ret =3D dmaengine_desc_free(buf->dma_desc); if (ret) dev_err(dcmi->dev, "%s: Failed to free the mdma descriptor (0x%x)\n", @@ -816,6 +947,8 @@ static void dcmi_stop_streaming(struct vb2_queue *vq) =20 /* Stop all pending DMA operations */ dmaengine_terminate_sync(dcmi->dma_chan); + if (dcmi->mdma_chan) + dmaengine_terminate_sync(dcmi->mdma_chan); =20 pm_runtime_put(dcmi->dev); =20 @@ -1824,9 +1957,9 @@ static int dcmi_probe(struct platform_device *pdev) struct v4l2_fwnode_endpoint ep =3D { .bus_type =3D 0 }; struct stm32_dcmi *dcmi; struct vb2_queue *q; - struct dma_chan *chan; + struct dma_chan *chan, *mdma_chan; struct dma_slave_caps caps; - struct dma_slave_config dma_config; + struct dma_slave_config dma_config, mdma_config; struct clk *mclk; int ret =3D 0; =20 @@ -1888,15 +2021,21 @@ static int dcmi_probe(struct platform_device *pdev) return dev_err_probe(&pdev->dev, PTR_ERR(chan), "Failed to request DMA channel\n"); =20 - dcmi->dma_max_burst =3D UINT_MAX; - ret =3D dma_get_slave_caps(chan, &caps); - if (!ret && caps.max_sg_burst) - dcmi->dma_max_burst =3D caps.max_sg_burst * DMA_SLAVE_BUSWIDTH_4_BYTES; + mdma_chan =3D dma_request_chan(&pdev->dev, "mdma_tx"); + if (IS_ERR(mdma_chan)) { + ret =3D PTR_ERR(mdma_chan); + if (ret !=3D -ENODEV) + return dev_err_probe(&pdev->dev, ret, "Failed to request MDMA channel\n= "); + mdma_chan =3D NULL; + } =20 + /* Configure the DMA channel */ memset(&dma_config, 0, sizeof(dma_config)); =20 dma_config.src_addr =3D (dma_addr_t)dcmi->res->start + DCMI_DR; dma_config.src_addr_width =3D DMA_SLAVE_BUSWIDTH_4_BYTES; + if (mdma_chan) + dma_config.peripheral_size =3D 1; /* Indicates chaining */ =20 /* Configure DMA channel */ ret =3D dmaengine_slave_config(chan, &dma_config); @@ -1906,6 +2045,47 @@ static int dcmi_probe(struct platform_device *pdev) goto err_dma_slave_config; } =20 + /* If we want MDMA, we also need a sram pool */ + if (mdma_chan) { + dcmi->sram_pool =3D of_gen_pool_get(pdev->dev.of_node, "sram", 0); + if (!dcmi->sram_pool) { + dev_info(&pdev->dev, "No SRAM pool, can't use MDMA chaining\n"); + goto err_dma_slave_config; + } + + dev_info(&pdev->dev, "SRAM pool: %zu KiB for DMA/MDMA chaining\n", + gen_pool_size(dcmi->sram_pool) / 1024); + + dcmi->sram_buf_size =3D gen_pool_size(dcmi->sram_pool); + dcmi->sram_buf =3D gen_pool_dma_zalloc(dcmi->sram_pool, dcmi->sram_buf_s= ize, + &dcmi->sram_dma_buf); + if (!dcmi->sram_buf) { + dev_err(dcmi->dev, "Failed to allocate from SRAM\n"); + goto err_dma_slave_config; + } + + /* Configure the MDMA Channel */ + memset(&mdma_config, 0, sizeof(mdma_config)); + mdma_config.direction =3D DMA_DEV_TO_MEM; + mdma_config.src_addr =3D dcmi->sram_dma_buf; + mdma_config.peripheral_size =3D dma_config.peripheral_size; + mdma_config.peripheral_config =3D dma_config.peripheral_config; + ret =3D dmaengine_slave_config(mdma_chan, &mdma_config); + if (ret < 0) { + dev_err(dcmi->dev, "%s: MDMA channel config failed (%d)\n", + __func__, ret); + goto err_mdma_slave_config; + } + } + + dcmi->dma_max_burst =3D UINT_MAX; + /* In case of using DMA-MDMA chaining we consider the maximum infini */ + if (!mdma_chan) { + ret =3D dma_get_slave_caps(chan, &caps); + if (!ret && caps.max_sg_burst) + dcmi->dma_max_burst =3D caps.max_sg_burst * DMA_SLAVE_BUSWIDTH_4_BYTES; + } + spin_lock_init(&dcmi->irqlock); mutex_init(&dcmi->lock); init_completion(&dcmi->complete); @@ -1915,6 +2095,7 @@ static int dcmi_probe(struct platform_device *pdev) dcmi->mclk =3D mclk; dcmi->state =3D STOPPED; dcmi->dma_chan =3D chan; + dcmi->mdma_chan =3D mdma_chan; =20 q =3D &dcmi->queue; =20 @@ -2023,8 +2204,13 @@ static int dcmi_probe(struct platform_device *pdev) v4l2_device_unregister(&dcmi->v4l2_dev); err_media_device_cleanup: media_device_cleanup(&dcmi->mdev); +err_mdma_slave_config: + if (dcmi->mdma_chan) + gen_pool_free(dcmi->sram_pool, (unsigned long)dcmi->sram_buf, dcmi->sram= _buf_size); err_dma_slave_config: dma_release_channel(dcmi->dma_chan); + if (dcmi->mdma_chan) + dma_release_channel(mdma_chan); =20 return ret; } @@ -2042,6 +2228,10 @@ static void dcmi_remove(struct platform_device *pdev) media_device_cleanup(&dcmi->mdev); =20 dma_release_channel(dcmi->dma_chan); + if (dcmi->mdma_chan) { + gen_pool_free(dcmi->sram_pool, (unsigned long)dcmi->sram_buf, dcmi->sram= _buf_size); + dma_release_channel(dcmi->mdma_chan); + } } =20 static int dcmi_runtime_suspend(struct device *dev) --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) (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 5BCD3328B43; Tue, 6 Jan 2026 11:35:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=91.207.212.93 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699311; cv=fail; b=Y3+2DOYDpG9PeWd8KO67HMPI5CQ6CHx5t29O37Jc+o7i2MeqNgVjH4N7ApBuVoQVUikgdlzGMV98AQbjcNs7KoHaZyMdbBBWFS26+kZ/+pUoff2OY5t8KGuXtxxd/PrJRzaPfea6agiWGxAmXN9u1LJIkUBLuF2dwlLrgpe9NLA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699311; c=relaxed/simple; bh=MQTpjObMekszaWRYPzXywq+rOjCvk2gl8e2lcv/mpPg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=rLcfxNUNgwb2bSoBj2bV8zoPYDiPXU/vlcXxGmEimtjGCrGuhxVUqvUWR6zvZczEDibVGsCWzwcpCsqD/sPvESCj1XMdxDMhAmBZdT737AoLwYwqvjPk1YO7Tm4XBen0zuFIJEqrwtaRvW3u1JPaiLcrvP/fVQG4cA9URjQEtZk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=My18B5LF; arc=fail smtp.client-ip=91.207.212.93 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="My18B5LF" Received: from pps.filterd (m0046660.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606BPLGn772327; Tue, 6 Jan 2026 12:34:41 +0100 Received: from pa4pr04cu001.outbound.protection.outlook.com (mail-francecentralazon11013066.outbound.protection.outlook.com [40.107.162.66]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4bes49gwhg-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:40 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LcaU3t7WLRxMCBH2a/O25PgJlcYh1O9lNku3lwjVZNJTHsEA8TXloxN8T2SHsHDOHNXrCX8T835BZ6rozCe7QqLc39ojlFwiNXuZ+bQdqsdiHcN7qHW6OzQqHq+sIlsebnef8ZiwoIgjxYC4dQGJyk1ZmElQtCfjW2dD5oGTUbVAy9lso9ylbuXWdwAUUQHzhoZ+jgrPT01F8nIdOAVgmqVblYMgFBxG8vhqOx1uqYtDC1PElw6yIsaL1RU0MFRzlGV5K5qhjG/Jyqzma3JzXK0z1mLuoWSxqgS0X9J4RPWpCB6mMrhpbuMtZ69/OiVZgRVEAJ7TXuV20H87YJL2XQ== 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=edakQd/ozZbMyFPppskNAgAEIqLCZXuxJrJLp52RW14=; b=S2ZeZHtpILHFe8FdwLhuDtwRrYpPTFT/Wy/TIHPd+51Gt/VPPR6WtshLRLe2bZBERgHtxRFSCo0Y639KOO2HiXhIxikZyyfcW1HimuBnCTa2JJwR2TE//Eq/VXFniOLWy9gy6xAHBZrNEtdeiDRKz6vwGTzDyy+MnwoNJBBZ2HW3Tr+byO9/QCRzzOPNveIAAvAmq46wtB89e6ZlVbsDKvkxUi2ZpoItSsUkp9gX8HWV/1LGNizzswrL+ZFWg2x2LOJxfAKNLs0JXU7Ut751QOqjUNO5t8NkUQln9ISoC2vGlq0zpN7rXjwrf81RSRytHTls/9Y24bhKQjjhmANdpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=edakQd/ozZbMyFPppskNAgAEIqLCZXuxJrJLp52RW14=; b=My18B5LFLY1JFgacYBYHKQSD4nWUwBTWRWkPkVC7CQEnXusWbp+snQw7Lk5si11P0HX3QQWIz20yWEbzFbzUdl+Lq7S0SD5wtM/hubmY/7mPVGA8pdjTNPGKjisBPGeLGVzkTVCLmokdb8n6g1DY3gqxPfHtIhZbUtIBzobJDAB5IZon6MfqqE2RLHmK0DQZ/k2F7iKEVvYaf5XrO6HdI4gZ9yt/OI4Lmj4CGicJfPu0l2oOcHFQycEfUzt0jyo9U9druIqNMQyOAy7/dDC7/6EQNm/BI/IjCy2KNAlBCZOp5JRG3RwCilUQcbFCfcbhfAF/1ZmOlXukyU9H3fpf9A== Received: from DB8PR06CA0042.eurprd06.prod.outlook.com (2603:10a6:10:120::16) by DUZPR10MB8267.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:4ae::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Tue, 6 Jan 2026 11:34:38 +0000 Received: from DU2PEPF00028D04.eurprd03.prod.outlook.com (2603:10a6:10:120:cafe::63) by DB8PR06CA0042.outlook.office365.com (2603:10a6:10:120::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9499.2 via Frontend Transport; Tue, 6 Jan 2026 11:34:38 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by DU2PEPF00028D04.mail.protection.outlook.com (10.167.242.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Tue, 6 Jan 2026 11:34:38 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 6 Jan 2026 12:35:51 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:37 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:39 +0100 Subject: [PATCH v2 11/12] ARM: dts: stm32: add sram node within stm32mp151.dtsi Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-11-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D04:EE_|DUZPR10MB8267:EE_ X-MS-Office365-Filtering-Correlation-Id: f17a9e51-9f4d-4394-1af0-08de4d179342 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?N01OMXNlYWQ4RGc4V0toS2tvbXdxSUdXcXlQcnF5SXRNeEcxakxBdVk2Z0lz?= =?utf-8?B?UGlpNE1HaW1FSEVURXNpT2RESHAydm5oRUZiQ0J6OUgvb1pIUVJOVEFRNE02?= =?utf-8?B?emNncmRXU0ZLT1JIakU4Z2dpcWdXbGxEVVZZY1RUVjdCeXdZOTdmd2s1Y2Fv?= =?utf-8?B?TllORnJ6aXp6RzZVTG9UT1h0WnBML1BqNTlzVitvYjRCRWJHN3NOdzMzT2VN?= =?utf-8?B?NUdlYS9rK1RqbVl5MUhxZ0NUcUdhZkFqQXM5bEFLQ2lGOXUxTVZrZUpESzJD?= =?utf-8?B?c2FJY1F1MTdwZnJSb2d0REtEbGZpaXZWcStZNnBvRS9YT3E1Y2dvUHNyTEJF?= =?utf-8?B?Y1hiL2ZkdlVMK25UQnlVcjJmeDkyYUhmNFY0WXY4QS8wczQrY1gvSER0cVN0?= =?utf-8?B?MGlXK0trdCswNnVaWk8xU2dvd0YzditRZVE4TC9oa2FvYW5nUWRWZlNzcUZ6?= =?utf-8?B?WGpJNm9wT2ZFNk0wcUFqNzFWQWNiN3YxaERwa0Y0N0phN05SN3haaVQxZVl6?= =?utf-8?B?a1BXZGpTZG95L3UxaU5JVTYvMWNnZUg1MVFyd05VbHhCdDZDSGhNZUFvQlRI?= =?utf-8?B?c3NoSEMyRUJnOGdDeGsxc0VTSnVrQXdSaE1lNW04Z0ovSTh3WDRlVEpFSGtM?= =?utf-8?B?dEx2Z3dFTzM3MFlzRmI2enVtYXFyQWRKWDNBOEhXQ1F1SXhrVGd4enBJNVFz?= =?utf-8?B?WDdEN2M2cmtSd1pNWW53a3UrdjdyVTJlM2REbkFMdDUvVHhmdFQyUDBab0ZE?= =?utf-8?B?UDJXWGZUOFNQUlhQdmdPd0xaVjF2QTFxalNKRUoybmhySlpGZENGT1BJZUNC?= =?utf-8?B?OStnWElCYXR6TDQzYlVabUg4S3ltc3hhOTdYQVo4M0VKNXJMOSt3Rjg4VDQr?= =?utf-8?B?VmFkNXUvWGpSM1NCUkx4d0JtcEVTL1U4SnQ4ZjhOSkc3bHJYMDZKSllYcmt2?= =?utf-8?B?b09CVEpqRUxISVR6cXA3a3lBaElTZzdoYmVWNG9vRnFvR2dDcmFIRlNWb0lh?= =?utf-8?B?SmtiNk5jamhoVmVnM0dBRmJwaWhFN0M2eXd2L04xUmdJYW1maTFyZlM1dS90?= =?utf-8?B?QmdMeWZITnJlYnkyTFJtN1dwWXhGekI3U0IrUXBSa0RCejVXYU9XK2thK1JF?= =?utf-8?B?VFBxMWovY1dzb2FnbmhHRnMvdFhDREJGOWRwRytjZjFKNWg4UU9CZDJ4V3ZR?= =?utf-8?B?MGdUdkNLT0Z4a3hhd3pFVFpXeW1nbzhvZ2tGMWNOKzdGaVNBcERDbThwdzBi?= =?utf-8?B?TkJzWGdwdERoNW1vSjVDVTBiMGtLd3ZvSXlXaUw4WjdLSmgrMlFSdkxtNUIr?= =?utf-8?B?Z2RDYU0yUElpeVdVeDlLekYvMGs2VkhoZlpSSmFaUmp1clFCM1ZBdzV5VUxR?= =?utf-8?B?SjRmQWtsOFM4OW1iN1VQKy8raEVOOWMyTzF3b25mY3VRNWRPVzdTZ3hycGVa?= =?utf-8?B?QXdGYnBBY0dWaDdpak1XSTN5bjA4WE1UL0E5NnZSWGIydTdscGhiMlpuK3Rm?= =?utf-8?B?bkt2UExjTUlSa2lxUmJtU2c3elFyVldMeGkrU2JPem1jWnJUcjd3L0I2Tk5x?= =?utf-8?B?eXFsL1M2bzlqT0RKUHJVY2Z0S3hSUGRwVkhUcVdzei9aOUNXWitBRWdSd1dC?= =?utf-8?B?RGh0UlpxeERBcUtNUU5STCt3WWpZa2FuM0piQWF3Vk1EVTVLNjZDTStLTEFv?= =?utf-8?B?dXlQRzA1M2E0NzdDbk9XdjVaUVJ1SCtkSFB1ZWxnZHJNalZWbVNocElzZ1Jy?= =?utf-8?B?QVd6NTJGbUc1VTNVS3plamlEYnAxaUlobHY5WW9oTUN6N01BeWNWNjRKM0NH?= =?utf-8?B?dTFLdVp3M2ZGTStIVUswdXNtdEVnZFJnNmg5bVZ0YUU2YWhmNVJXY3BuMUNS?= =?utf-8?B?OTRZUkliZGJ1SDhPSXdPNUUyVmM3SFYrUE9keDdBSXhiMWpFdVlDRXRaK2Ey?= =?utf-8?B?emlLWnFVRDd6aHd4eWptS0lzQnc3Y2Z4Mk5lNUVXM2k5YjlCMXA0L1UrWjdk?= =?utf-8?B?bmN5RWZlcWRvL3lySE4xd1lDUDZmRDQrUHZseWthcy9veGVYOGVlaThwd2VN?= =?utf-8?B?UmY4ZXYzQzREZDNnTXk2MGpMZ25ueElFZjBLa1hHOEpBVlhJaHltOEV5K3l1?= =?utf-8?Q?HzcA=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(7416014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:38.2180 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f17a9e51-9f4d-4394-1af0-08de4d179342 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D04.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR10MB8267 X-Proofpoint-ORIG-GUID: kKXz_bg_5O760NSSpOLdtmYICvrHHfZ9 X-Authority-Analysis: v=2.4 cv=SvWdKfO0 c=1 sm=1 tr=0 ts=695cf350 cx=c_pps a=eA6Si6SkEuWiTqqkjrLcSA==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=Ii93k9UUb-fL06yTcmEA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfX9NhRftH25O4q +kBusgje//TOXcVqHb8Uh8lpqg2MdtxN0bI5/9yo8KDVN4I7ag/QRfqaqmWjL+xBePwR/9SCqkr s6Ezn6vNVgZlOFJLauxKwLr5qiIN5ffz09zeI6wvGPP0qIw84O4gSGzrPphOSxVxQDOjWEJ/LzA +ydP14XVyLYx6KZqeEJo3aWHOv7LrHJylo8J2brKketDuj/qN4dWM0aElu5B4lkbtNCIsVBZYI6 yNKA4ift15uoO2blm2VxfxaRoQSTpyli8MnaXjDb4Kd5OFQvBCMLzNgFHrxMBR/78u6S1Jm36kM vvXZ0p2ElgZvyuaopHgNyXX9nwijG2/NKuktYtbLz1B+3D3fC8vciCikBPJAHYpxEujoI9XXeo7 AZo26wurZ+jGtqlVbE6DZ62ADSlIw18u7uScBWO7XCWYYDKSEvXKxsY3bdOjDVgcQvbnvmeYx3+ t7+DUAXnmBOV0hCqlFQ== X-Proofpoint-GUID: kKXz_bg_5O760NSSpOLdtmYICvrHHfZ9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015 bulkscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 adultscore=0 phishscore=0 suspectscore=0 impostorscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Introduce the sram node in order to be used by drivers requiring SRAM memory space. Signed-off-by: Alain Volmat --- arch/arm/boot/dts/st/stm32mp151.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/st/stm32mp151.dtsi b/arch/arm/boot/dts/st/st= m32mp151.dtsi index b1b568dfd126..85cb0f16ca73 100644 --- a/arch/arm/boot/dts/st/stm32mp151.dtsi +++ b/arch/arm/boot/dts/st/stm32mp151.dtsi @@ -123,6 +123,14 @@ soc { interrupt-parent =3D <&intc>; ranges; =20 + sram4: sram@10050000 { + compatible =3D "mmio-sram"; + reg =3D <0x10050000 0x10000>; + #address-cells =3D <1>; + #size-cells =3D <1>; + ranges =3D <0 0x10050000 0x10000>; + }; + ipcc: mailbox@4c001000 { compatible =3D "st,stm32mp1-ipcc"; #mbox-cells =3D <1>; --=20 2.34.1 From nobody Mon Feb 9 01:06:32 2026 Received: from mx08-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) (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 4894D326D63; Tue, 6 Jan 2026 11:35:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=91.207.212.93 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699310; cv=fail; b=QVrH3kUpkSxjttudqpHPC2WjQ2DWUxB9GJ9gbHn+x+XPxx4z+4UIe1PRBU20uAr7nZwuYIZwCDoDreIxYXy3l8cv/G/o61PhlSQOIxPrXua2WRUlV1Xk9oNHMw6RgrHa0+04hPh5opYXtL3l2kBYCRMKI4Db/IJ5PFqlZkR88hE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767699310; c=relaxed/simple; bh=3IKId8e4nZB8X7MJIERIOtKYyQ8hcQCq1ps9lpvCfWA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=VMkhi2nqL2vG1bZBx5WSsfsqRNEhWkSCntWiJ/Yh8a5K9HhFqeNmFyFCKxaUP4lj7s/DPNqqSiIwTVd8krrSx4+g1qc76YQahg2Zc9HVu7RCbKXceBM65EanRAK5uFDaIIe/+SRejTnveJQ5gkvAMu3YY1TR6F2FyEn3Ao1cSq8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=ZZ7unsIf; arc=fail smtp.client-ip=91.207.212.93 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="ZZ7unsIf" Received: from pps.filterd (m0369457.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 606BW9Sd327667; Tue, 6 Jan 2026 12:34:44 +0100 Received: from pa4pr04cu001.outbound.protection.outlook.com (mail-francecentralazon11013017.outbound.protection.outlook.com [40.107.162.17]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4bfexpq4yh-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 06 Jan 2026 12:34:44 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kvKd8YggCPsA8AxiT95LsxVAiBYvKQrzG/wbE0DIJ+AibyYLEO7OHp3PmcXx2HL0DrIGCzB9M15g8sJezNBb9PUgDnNq2bJDHpU3v7IoH94JKIeQJ5dBxhJjfIzKB34H4YUDt5DAOdhFBtziQQza3r5g/cg2KPAiO8kjB4cRetMALq3EkEPZsEjLOVYspBEQpbHHpE7YUOtuBq8We0W/ySZNW0sXWHST6iZD7tj0Yb08IPzjTVM5QzawuuzjlrifoEXFzZ/tmOF5lSfcff0ko11YYlp5OamOapBZ+0YPknumyN5N9Buk2817G0qvGU2NRaYMV2AEW2Zl7WzaJLO+QA== 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=Ntl8h/8bWszmC95ym/6/+u5tx0J+S3z3nBACqGFnURU=; b=s93Wa2wEkjjHmCC4qy7000PjJCVupK8Qc0JQQ9V2tcXiMUBzchmazqt1l6obdaizOMyVOg+qG2BMktfrVWLcKBC2OS+r0aNH+cWUtng9nJk5deFGoe7bdql9tS6GNetYqWcbCqbYo6Anzd7Vei9MbTOnHiKaYhhJLtIK6YQk4R2Pipkh/YXGelYPO4Zdx++Cy8FtCshCiiV+J/gc8oQq2J/tyTrkIGpnG/n8XlqYPmuNnnzcVWxqLJ6fquyabiLmX6qnuWA/n5/FCM2xalmks0qnFDE57L7z0TMyExeBDSMNnFppLzAMvDukGf62wodpBo4Lj8HssvNJR2s/a7AiDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ntl8h/8bWszmC95ym/6/+u5tx0J+S3z3nBACqGFnURU=; b=ZZ7unsIfCveC/UnLEkCDn3drtEQIv1zw6qS5lslM08AYiwMviIuNpPPisgXJjrCTd3Kl/UWyYxG5MwRI430BQ4cM0ITW2z04kTpoSg19fQOTpNXeqAI0kPZv9l3GzdeYILBqZYitde/MrQKWj+TDdKhzIjU0kI3dCWA63X77muiFtoUa2StcZGBY+6axsww3VZxdkSyvlHH6a1/HSQwvVpaKhVqUCdUDx8h5cbrvKtovc+GgWkv70KR44x/bCS6T9bVYMyPh7xYvDeZ8dFIS7uXs+/bNDAocXSeqTyhLxsEy8qK2MmlfvDtGjGvf/SGh2YBfwDOnCCg29KlVqcz9jQ== Received: from DB8PR06CA0066.eurprd06.prod.outlook.com (2603:10a6:10:120::40) by PAWPR10MB7343.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:2ee::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Tue, 6 Jan 2026 11:34:39 +0000 Received: from DU2PEPF00028D04.eurprd03.prod.outlook.com (2603:10a6:10:120:cafe::43) by DB8PR06CA0066.outlook.office365.com (2603:10a6:10:120::40) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9499.2 via Frontend Transport; Tue, 6 Jan 2026 11:34:38 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by DU2PEPF00028D04.mail.protection.outlook.com (10.167.242.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Tue, 6 Jan 2026 11:34:38 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 6 Jan 2026 12:35:51 +0100 Received: from localhost (10.130.74.193) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 6 Jan 2026 12:34:37 +0100 From: Alain Volmat Date: Tue, 6 Jan 2026 12:34:40 +0100 Subject: [PATCH v2 12/12] ARM: dts: stm32: enable DCMI DMA-MDMA chaining on stm32mp157c-ev1.dts Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-stm32-dcmi-dma-chaining-v2-12-70688bccd80a@foss.st.com> References: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> In-Reply-To: <20260106-stm32-dcmi-dma-chaining-v2-0-70688bccd80a@foss.st.com> To: Hugues Fruchet , Mauro Carvalho Chehab , Maxime Coquelin , "Alexandre Torgue" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= CC: , , , , , , , Alain Volmat X-Mailer: b4 0.14.3 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D04:EE_|PAWPR10MB7343:EE_ X-MS-Office365-Filtering-Correlation-Id: 929f1ddf-4e30-4f8e-b92a-08de4d17939c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?N2FaSnU0eW0wUzJsalBVb3FrQU9pd0pLUW16OVRmYVpSNVNZSm9wMGhTVXJr?= =?utf-8?B?TU9hbUJmQ1N6WG5CUHduT0RxTmQ4SE9uSFBnU3hYRUtpdVNNT0NmY3VrWEtF?= =?utf-8?B?ZmNIaWt3b2U0emlOUktKM09qSFh1ZmgzMTg0N2FCc0ZPZWVmaDk0a3pjSDhD?= =?utf-8?B?ekNDaUp3M2xGeHpxTzlmWndnQjJJcldZVUpkR2hzRUpCN1dmekdmMWN1bmsw?= =?utf-8?B?eHBDQlFtUENFVDAyRE5vc0piM3FnMDlVR2NKRjNyK3kvc1UvcHVvNXd0MlRR?= =?utf-8?B?UDRMWjlEMnNhVTJzNG85cDY0eFRoSU5qeWsyTFBDQjNxSmlXSG0ySk0vYjM5?= =?utf-8?B?enRxYk9WVDFreVlHb09RSTZ0bzA0YTRQNkZhVmdyMDJmMVROT3d0NU9VaUNR?= =?utf-8?B?NTA0TDAyV2RXeWJvNzJQbVZmYlFYb0szYlFiK0M0a2l0S3MxNUNyNkZJcE9m?= =?utf-8?B?V1hxbHMyZzJ0cHNFa1F1SS9DWlRkK3diT3VMYVI1WW1xY2gxd3FDZkxpU1hs?= =?utf-8?B?SE5ZUk9LeSt4bkFNSFRWTkZHeC84NTZOYTlqcUN6UHBGYVR2S00rWHhYS3h5?= =?utf-8?B?VE11RE1HUld2ZnhoZGg3bHhycTJ1eFJEajdPVDlVeGkyK1BRNHZMM2V2ZWgx?= =?utf-8?B?QW5NdDR6VVVaSFhpRTAxSDdHQmtTZi9xQURCc213MGlTbXpoaEN2REpjL2th?= =?utf-8?B?WnlTVldTUVFGNEFpRFplV015OE9kajU4K1BwenFHTGhPT3BZQVh4VFhsWE80?= =?utf-8?B?UGYyNzlHa0pDdUQ4TmN6WTB6UFVmWEdpNHV6WU1nWEhDNVF0QmFwZkV3YllU?= =?utf-8?B?Z0hOQUpEbmpIV3dsR21iZU04STgyMk1jRnFDdTVqUEZqRjdnUmdoZHJucWx0?= =?utf-8?B?MnpsWWFxTTNoUXdaR2JIU3BoV0NHZkxRdVFQdDZzSU9Vbld2cXYzUnhQdmdo?= =?utf-8?B?aWg2dkQxcTFJMmkxU01jOWFHUjA4UUdGbDBieFlKVXh5RHBZam5nWXg2allI?= =?utf-8?B?MnNKeklIUHVxWnorUm1xRVpFNmV0K2dteVo0aWhTYnpNc2ZpZ0MrUlczVnYr?= =?utf-8?B?cCtveHZOOGk1ZUQ2Sms2WjlVaWQ0eVNoM3JYSUhWN2l1UnNwQTI0NXl0cGlE?= =?utf-8?B?N2hRa0RqdEZ4UWhvU3FsT2dSSzJaV0Y2UFdGTVJxL2swd2NhZE9LaHU3dVU5?= =?utf-8?B?ODVsK0lsNmRvWlNoT3lCcFZ4NXovWnRRZ2R6MFJ0eFFQZllaQkVaWkRiUXZ6?= =?utf-8?B?NWJ2Mm4vRHNXV1BZMkl2TGR6aGFGRGhGMEVSYXlQYTBJYk1mTEs2Zk1nSmNI?= =?utf-8?B?S2RHazVoU2pJZ2RmdWsrZmgvRnl4dS9Ucml3aDNHZElUSmpNYVNmakJKSUJD?= =?utf-8?B?YkNvVmZ6Tm8wYXdmdnQxS1R0RkpIVXNLTDVLWHRRa3lKaDdoeDJUbGlNdlBz?= =?utf-8?B?aTM5YW1uSGRnNVdnRXRGbkFsakJybW5TcnBEUExrc2tpZGFyYlQxc3UzR1lB?= =?utf-8?B?czN1QmpJQUszaDVaVmszRm5uN3l0THFBbjc4V0I3cXZNR3RCUXlydmtsWVZI?= =?utf-8?B?OG5GUkhobHByWm85RkFPSUkxcmxNMlk1VWREbDRjdGRiOWRNQU5lVFhmelNB?= =?utf-8?B?cXJrb3ptSG1QaitZaDRmN1JxUmROTEtxL01xYVE3VkswQjE5MmpXMDlRNUNF?= =?utf-8?B?M1Ewd0NBTTNxdUlEOHg4SlNIZEZuSFYrQWNtczFMczN5NE4yNGFFaWs5dnFQ?= =?utf-8?B?SDF5djRsQ0xoRnk1L29KSmxtWElPVjJhT0N3eFRoWXRaUXFXMXk2aWtiQmtD?= =?utf-8?B?STdLU3h0YzRYTVlob1Bwek0xWlhWZldSVmUzVzc5UE1TS0E1dTFoZXlwMVU0?= =?utf-8?B?L0pHS3JKbk0vcnVlTTF4L3BIRjRmclZvZkd2TlFWNm5Ib3J0d0tCMEhZcUwz?= =?utf-8?B?c0pWaklyUjFCSGd1UjZhRHF2R1hwWmR1TUtpdGQwSGJUV09oVnNKQVlVcVg2?= =?utf-8?B?bVB0VUNYTC9rNFZhQVZyamFDaGx3cy90cjM0enBHVFlLQ2t4L01TYmJwNElz?= =?utf-8?B?dkVNQ0ZBdUEvVm1BMUZVZVZxdUtMcjRiRWJNU1FaSUUwaFZwNTVLVjg4RGJw?= =?utf-8?Q?KVc4=3D?= X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 11:34:38.8171 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 929f1ddf-4e30-4f8e-b92a-08de4d17939c X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D04.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR10MB7343 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA5OSBTYWx0ZWRfX8CDLzJAYLffn hBFmN8WE3cQyfQxaPpY/kdcC7u15hsUj4fauVC4CkjyGS3kFW7K+kfPyEPfz5CHrzNzG9Q4+YSK vPAii8ELaPMxCWPUuOV0OEV9GV6cSaLNlmhOO6B6C3Db4VA/2XxFXtIgSpQRaT/es017VY1t8cU DYX+U9qcezPxwBON3zTexdvwH3Vav+PrAgRecBdAeKWb6LTcYGuoe36aH/Ip/7P7QWYqXGDTIqN OAZ0bmHYNzMgHuEegLIGvo1N4bJYt3MIx3pEgcyYOSt2NKMhrf7xTUrakOVnaEjtCjr+8C/NX0b LRWS5jVY+ruHmTV99KZh0tHwQq71U8I9sz1J76RjtRZAKkq+SvtE9H1y4yZttn+V78CU4qrz+S5 sPh0GtToX/ctB/L0hGnLrW3D+ztIEv3uQukDXde9qYUXYu+i+zUpuvaYR7g6jLG0PkdnhKf1V0A jqAnUEOBQgETKyC5HdQ== X-Proofpoint-GUID: i8DR69EDPM35k91mQxs1jEaD8Ctc8OUU X-Proofpoint-ORIG-GUID: i8DR69EDPM35k91mQxs1jEaD8Ctc8OUU X-Authority-Analysis: v=2.4 cv=UrFu9uwB c=1 sm=1 tr=0 ts=695cf354 cx=c_pps a=93V61PBNtaXlaj2+evPV+Q==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=wL9PcE0S0AMA:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=dGxqowV4S9dSpVGn0mIA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_01,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 malwarescore=0 phishscore=0 impostorscore=0 adultscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060099 Enable the DMA-MDMA chaining for the dcmi (camera capture) in order to be able to achieve higher resolution. Signed-off-by: Alain Volmat --- arch/arm/boot/dts/st/stm32mp157c-ev1.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/st/stm32mp157c-ev1.dts b/arch/arm/boot/dts/s= t/stm32mp157c-ev1.dts index 8f99c30f1af1..68b536b0c6ee 100644 --- a/arch/arm/boot/dts/st/stm32mp157c-ev1.dts +++ b/arch/arm/boot/dts/st/stm32mp157c-ev1.dts @@ -86,6 +86,14 @@ &dcmi { pinctrl-names =3D "default", "sleep"; pinctrl-0 =3D <&dcmi_pins_a>; pinctrl-1 =3D <&dcmi_sleep_pins_a>; + /* + * Enable DMA-MDMA chaining by adding a SRAM pool and + * a MDMA channel + */ + sram =3D <&dcmi_pool>; + + dmas =3D <&dmamux1 75 0x400 0x01>, <&mdma1 0 0x3 0x1200000a 0 0>; + dma-names =3D "tx", "mdma_tx"; =20 port { dcmi_0: endpoint { @@ -301,6 +309,13 @@ &spi1 { status =3D "disabled"; }; =20 +&sram4 { + dcmi_pool: dcmi-sram@0 { + reg =3D <0x0 0x8000>; + pool; + }; +}; + &timers2 { /* spare dmas for other usage (un-delete to enable pwm capture) */ /delete-property/dmas; --=20 2.34.1