From nobody Mon Feb 9 03:58:24 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 27B1723EAAE; Thu, 18 Dec 2025 18:45:11 +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=1766083514; cv=fail; b=e4BdXFVBlbj2bxNGLvzKemCRwW379cQug6sSddANKh6MwRbOW3KrgdHbubmZymYXFKIkpF2bkg/TJDB8JQvdZoefqBRN9Weu328S0mztPm+D67zrFCnrUJY06ki98YRozZsgn9dN0tH6Z19Mh1MaVSwS5w312XYZzd84ISFvlUk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083514; c=relaxed/simple; bh=SbMKY/C0yHPCbL1WkK+0tJhG8caeTjc86uGaeKC8PLw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=YSBBTwdrpM0HHLx3FoqMCxReucFVahwotNNBqtQWsQo8rrTu0MPnkOhnQD6Hd9YtONcf1+o7J7zZEos5DZMTfHtg1mGcmX/cKaE+AZqDyI+2rIldg9QMh9NS1Ks3k3djLjuko6Bk4QiSQrA2Ky6mpBZoCUc3OyMVBdR3uQkePIw= 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=RARgVzGB; 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="RARgVzGB" 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 5BIIZMuw3409312; Thu, 18 Dec 2025 19:44:57 +0100 Received: from mrwpr03cu001.outbound.protection.outlook.com (mail-francesouthazon11011011.outbound.protection.outlook.com [40.107.130.11]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b4mg6rm85-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:44:56 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JKl9d2h4bCId6wHD5HIwmkd+hTMwC1eu+iuCDTM15bTAnFf6fsvMiARYpXWGBX5Zp/jpNw2BBKHK0bxlsww9ik5utMN/TZ8tWkvw8ziEYoouNAfDh6U9+eW5dfBm5kl58Aaq88RZB4ipAwJu7sY2yJ974bWe4ofr8XnK2Y+Dx6ObyPYEtk59Rako3cjnwh//HckGXpA3jtjnJIDoblfFTYWXwvdCF00DcJYNXxVtdtATIcHzCrAeOLRvmGMRhO4DmirMV6hzDgBs/DDeA/H3DHCJqvAN67raIHL4Td2CH4/fJfndC/0gyK4r08CluRSijSlyv6ZmV/5rDhNs5V6tZw== 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=f10oU54HXOe95fUz6M9HEbyC1yC8wGptZeh+Me95Fs8=; b=EzJIT17HPe9H+tMxA0Da2XSXlxdEngisTtX22n+5O/e9UD6hSUevvfwALpAWn48cgwPjzIcbHGkYTDSzQJsXk8dM3aNbJTz+lGQclVi5t9eK+QxL2uciG05YPpG4jjj6LFZFwDprAn4xMpGBd3OfhirEHhYpO0OziaMIv/LdJ/E2EmHtOF2fuEPZ3/mYnJO3W9MF+aiz/8TEBSoIn+BUmndYvLXUaTLFSkuxEmgPSCQKJcbwhMdsQqi5I3Dg/h07/4dDIGryI9aj1/ulx7i9DthEkL475m8M0LFIx8rBguUP2q6FTnLpvWP1RkkPWEmoN5+Nl0pd6P16uuH6aOPOCw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=vger.kernel.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=f10oU54HXOe95fUz6M9HEbyC1yC8wGptZeh+Me95Fs8=; b=RARgVzGBHdrxxn5Ko4iwYQCzAuykHnlChKKEAs9vnyOJpIu0zUlqzjFn52iKM/RAo1hxdnWjwAzwnCDIvivibhfqQasRibDRNcTgapEDwR7Xzrtd5c3C49TpbrVu8ux95GRonU27swyyzXT1SOOQe3YsG3wiGJq6AN/vM91LVAAJBJiTooUQ/EwtZyflSK1m97zwIBvCjA5TI7lGkeWkHAAGv/HuQab+YXiQv0AEscUqtuaQecEC7ZQIPJkBWAQUGSublne+sPfdkTIxPtBP/f/qbw7IqpLYInDmzZfJ5HRpunkcKD4SEfMdmU9nWdjgNbDzx2Mpr5Un/UAvsYUJcQ== Received: from CWLP123CA0186.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:19b::15) by PRAPR10MB5348.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:29b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec 2025 18:44:52 +0000 Received: from AMS0EPF00000195.eurprd05.prod.outlook.com (2603:10a6:400:19b:cafe::b9) by CWLP123CA0186.outlook.office365.com (2603:10a6:400:19b::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu, 18 Dec 2025 18:44:48 +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 AMS0EPF00000195.mail.protection.outlook.com (10.167.16.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:44:52 +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.17; Thu, 18 Dec 2025 19:45:37 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:44:51 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:41 +0100 Subject: [PATCH 01/12] media: stm32: dcmi: Switch from __maybe_unused to pm_sleep_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: <20251218-stm32-dcmi-dma-chaining-v1-1-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: AMS0EPF00000195:EE_|PRAPR10MB5348:EE_ X-MS-Office365-Filtering-Correlation-Id: 96da4194-13ad-43d0-13a8-08de3e6587a0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026|7416014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ZVBMbjZ4dkRnOVVWNCtFZHhHTHltTWgzNmNSc1pKMlZlRy9rWCtuQ2daMjRu?= =?utf-8?B?a2V0c2l4WjROUHJjREZvVWZrank3N3dxVXZ1ZUpScmxabU9hREVQa1RkQS9B?= =?utf-8?B?MG9DblF1R3Q4ajF2Z21mMWVPeGc2SEJxSGpNQ2Fnajc3SjhmQnpHODcvSWox?= =?utf-8?B?Z09lQlZyWWJpcUU4WHljOUJPMU1PZzNXTm5aYTZKRlo1ZlRFcXZGOVFGME5l?= =?utf-8?B?eFNMMklRVFVDWVA3b2NJenI1WGtxU3lWMmFWTUYzZDkyWEwxSkZyZTU0QkVm?= =?utf-8?B?bytwMFY2a3dUeTRyVXNjc0M2Q204NzBMdk44ZkxLM1BhUDdFMlJuTFRwTjVP?= =?utf-8?B?dGdsc3ZNMm1FeXRGaUp4VjY5eTlKcmRCY2IvYlpEY3BNT2svVnZ0c3N6K3VW?= =?utf-8?B?dFhhQ3pmRVM3T2JQOUtjVmNjNTlCa3ZrcjJ4cU83TWl3R3NMMzR2T0lpbkVT?= =?utf-8?B?djFRaHNXTkJkNE5HME9mUXB2S2xrdmdIdk9uTHUzK3BoTWVuY0NvRUsvazFr?= =?utf-8?B?aTFPQVFJR3ZqNEpSVFZLL0dDRGtLZWFGZXFyczc2YWVDOGNzR1JCY3EvWFJC?= =?utf-8?B?NmlGQ3pNMXZWUUJyV0d5NE5NSTRLd1pQdmd4cmhPbnVrM3JmWTAwVXludGln?= =?utf-8?B?V1M0dVhTcisvYnBhaWpBVDFNdzVkdjdWMHk2WjFtVGRobmprM0xCOEVQSmIw?= =?utf-8?B?M0FoR2lYNWxwbjczUnRTUWhqaVVNR2x1SThCaXRFck5EYTNVTytGbHhqeTJU?= =?utf-8?B?NEpuL1prQTNsZWxDR2pVRVZiVVB0V2haaEdZMGJDZzl6MUlIMEZmSWZ5K2E5?= =?utf-8?B?aTA0dVZNUS9WSDVnckFieFVNY0FMcTkydW8xM240R2lSY1ZQSkU4MjhOUGhv?= =?utf-8?B?akorT25IVlY2Mkp3WE1VZlZDY2hGekxXa1lJTWk4OUJ5dHBBb3d1RHVxczd5?= =?utf-8?B?MlZyY01Ha3FFSGJJUW9kY0ZUYXRkNUU2VE51SDJQQWxlY0VIbWdGeWROV3ZD?= =?utf-8?B?MnFiY0JmN2pZR1NnS1gyMC9hYUlncFRNK3VhekE4R1piRmJteDY0bXpuUkpO?= =?utf-8?B?UjJwRnh5T2dDbm43aE1Bd0E4bXpXMHZvSmpiWEh1VDR1ajc0Z3lCV2Z0djBh?= =?utf-8?B?dFJ1N2ZVaDdxYVNvRXpWQjBNbXNhYmdydnBHc0FpeENoV0xxRTRUM3VRbjlr?= =?utf-8?B?Y3ZQelFMMmtUdjM3djBFQUhDYWM4WEpmYkp5Z3hFcFJJK25GTTFoNzZKWlhC?= =?utf-8?B?QTBrWWFsQlM0YmIrWHkxNm5MVlJDSFRuK2JJRzQrRjFOeHR0aVhHYkx1M01I?= =?utf-8?B?dDlVODYrK0xrOFdsVFdkOWV3WjBtaG5IajRQNHEwdUtsUWNScmtPTExNT3Zq?= =?utf-8?B?elJGU1VTOUJCbWJRNzVMNmJEWFgybXhrTHl4N2wxKzIzMzZ6SzRCMVhIOTRR?= =?utf-8?B?S3ErcWpINUJTblhSaWU4UUlWcEUxMlpkQktLU2JzdjF1S1VWeVhwNWRnVE5P?= =?utf-8?B?dlJGbWYwWUJQNmk3K2NOQVpUN2tGTkRoUGorejJ2aVVzT3BwUUVXZVg2aXBr?= =?utf-8?B?eFJpRFV2WHkxZ0UwTmg5dHQ4anBNeS8yeUJvb2hURGYySk9kbS84bUlBUWhE?= =?utf-8?B?VERDaFRkVVBRUzJVVTQzOFVoaG5ITVkzMjk3dCtjU1NNZ3JPOTl0Y0tHaTFa?= =?utf-8?B?Q0ZJbFdzeUFpSUgvazNwUk9ZUzRRQ1g4VVh1REo4bE05c29nNW9uNUkvaW8v?= =?utf-8?B?Y1ZZRXArMjZwdnY5N1ZoMU1sbTQrWUw2emRlbCszQUJ6ZDNtN3NLeDlPTGoz?= =?utf-8?B?OFNuc28vYjlEb2pPZWl6Q2xtRk5MUi9QcklkdU94S2kwelhrUG1ORXIxbjE4?= =?utf-8?B?d1hUWlZOTnJVak5kbVlxeVRmTmMxS0sxK0VnekRsUmdNWWF2bWRpejRLMkta?= =?utf-8?B?eGxnSGQxYk9yRk0zNk5yOVlmVXBqSzQ0aXp1eGZqQTNmWjFZT3YwK2RiMnVE?= =?utf-8?B?WHdwVGY0WWNmNEhwcmF3MDdHZU1GMnpWcjdVOFVmZmhwa0dOUUhMazFpcEJ1?= =?utf-8?B?RXNGNmwya1ozSVBYNkdYbytHamwySXV0eUk0ajJyendEaTREeFpSdm9neFlH?= =?utf-8?Q?GRsU=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)(1800799024)(376014)(82310400026)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:44:52.0376 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 96da4194-13ad-43d0-13a8-08de3e6587a0 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: AMS0EPF00000195.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PRAPR10MB5348 X-Proofpoint-ORIG-GUID: dYmsWtqBAWrssk-yXlISJyACo8WunHHn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfXyNcou8enx3BL tV5jXbA5rSqnyWuU7YJ3bUhl5P/m0gjFqRKbR5wdyjJ7G8Uuf8MC85i0zDsrkP+pMZMFstWhWJG Hw6HIPE5rPr5aM0GD+5XMSbO8xEfyKeoftSW+H6rrAvpeg+S1WxP55QKwZ6wkYuWF8KWSrBs3co em9CWqs4cUJaCcW916dwRCrtYOGr3Fnb4wfbvzyiEurEdpoxL51fPb0UANwbtpKicf5fFbA1MIX W4raCTsYqzk7KfDp2PsD20YqY3j1zruMapTu790mzCxLrXOsdrzXuuIiAd0txprvn7oKfF9VXcg hGxOpgeTqpOI1pYrV0yFxZNcIR0yFAhAnANqM2RRPoMmjteR+KLxVEYmXbC0UcSGf+uZ+bSg3nK 3N3m0Ar6AnBAH6HEXQT4hmNq0GsAUw== X-Proofpoint-GUID: dYmsWtqBAWrssk-yXlISJyACo8WunHHn X-Authority-Analysis: v=2.4 cv=PteergM3 c=1 sm=1 tr=0 ts=69444ba8 cx=c_pps a=PyuWNx0SgPbB4SnybF+ChA==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=MFr3gt1Ubh-vhDcfcjcA: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=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 bulkscore=0 suspectscore=0 phishscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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 --- drivers/media/platform/st/stm32/stm32-dcmi.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 13762861b769..07b67eb5b9dd 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); @@ -2147,7 +2147,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_sleep_ptr(&dcmi_pm_ops), }, }; =20 --=20 2.34.1 From nobody Mon Feb 9 03:58:24 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 DA8691DF261; Thu, 18 Dec 2025 18:45:11 +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=1766083514; cv=fail; b=Jmvfa6a8XzX6pLXAW+aOg8AxsGsfz/QJ/SrRy/VSdWd2u71gdOx7KW7hb3MN3hSeA0yfSee2iVE+tKtNlip9cjlvOQE2xCFAD8ynGMJB7ZuO4qzQGJilhmQpDNeDoal0LY3sDs/63n9KZB9jb0XMdjOA+1cDCnlhtHhIj/CSewI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083514; c=relaxed/simple; bh=G+axL6KEVjX1IaA7r0BlawTrHfddGDwKJZN8nFINHcI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=OraAhhoDD7XkKw4gYyEMdmhWkIZv7xceBosE2xpVekp7OQszGGNuIUKsut9CP/fRKmb0AbR7Z5Aj9deVbrytfYFezXQ/3rvAL67lBGcP7fh0aub2JribsWpn0SlGtVMk9i1zHwWKOB2IY1/lOx1R5z2m65jG3Gg2tM37DI9jkR0= 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=Dc62nWbY; 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="Dc62nWbY" 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 5BIIhqgq3422640; Thu, 18 Dec 2025 19:44:56 +0100 Received: from as8pr04cu009.outbound.protection.outlook.com (mail-westeuropeazon11011017.outbound.protection.outlook.com [52.101.70.17]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b4mg6rm86-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:44:56 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CQo+mY6RNJmoLjRkw2xUwTjEPz3HfOVesnVdaipLzgidY5prOhH9UZ8SbE80EwKXqe0Hd/jxD/8IWnYv0efa7/zIONwYrWUWiu6aOnP2sR3JylkFaIzbWomlsR1a16aOCZdjP6q4WPYobWRDpYxFn6dfYNrJ6OiN3wGmYXLsnveGJpOkP0JT3HYmi0iDT6A64ulaH0bYTa7MNAmmEY668F+reLTieZz9pOi7nAA7YjDzDPodQwBDBAXqPeKGqh+Oj592ljeIsrUkmdwp5jBcqXiNzTMH0bHgh32IWI8lkt0W6tP7xA2lsxhvUORNVM0M96T8Oo5sqrXMcPxzk02p0g== 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=SvrCPTT3Syi7OrXe8XbtdtZNxIAy0YeQQhrUHiGXE/k=; b=uVyfSLttHlTScdFxdDmp525TvtB8chc7PuEj8V18+HADbnNkRrJwK7eFRt+W4v1NEACs8JZcPX2xYGXybfUSCaK0aoxCBOdPvv8A7cCO0f3i6bpiUYZT3+25KO1Xt6g6RlbYlqu889LQiemX1PDCLY1rP4AIPgKKvSH1pu58V1ISFofXXzFXCxIV5+ZKJlFMYtOeGWY8jSAUzpqiS7sxpzJOOmbChwo041owGoGPpMCRlLH/oBaVYTEJUO8OJMLtLnK369jVVkTnviSpxDyjjJrWJq4H5rJ3eV346LRJCbQ0g16iZINV7us5gesWd2IBhtw+wiQJmURrv7v6gyJMPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=vger.kernel.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=SvrCPTT3Syi7OrXe8XbtdtZNxIAy0YeQQhrUHiGXE/k=; b=Dc62nWbYDNS+9uHhTHTAVgLSGm7XHsAgMgnOZv7NOk+aEnDV5YIbC5AnyIhjBnZsLDKSMupq+dGt9fwhV+YgsPeDQfZXePssffuf7y6LKc4gZkEcSR14a66gvCToBEg/+50qc29l1fnc2KurNrMZO3VoaAorQfLO4rgaaOkuEQe4nQVp0SGEdeGO5SDWIVG6ktz20qFezA3FmZPbT1sWtiAa2zBjofxyr0IhMjlySbyfASTmy3Cb9b1E4gTKh+RSSRLgSjkXDaSS2wIQ5QkZUOozavj5jCLr9X0R8GhX2tPsBFOAqnGEbLxNc9xjNQW4pOxh+u9dRKm2m1k562CaoQ== Received: from CWLP123CA0176.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:19b::6) by AM0PR10MB3635.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:153::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec 2025 18:44:53 +0000 Received: from AMS0EPF00000195.eurprd05.prod.outlook.com (2603:10a6:400:19b:cafe::d7) by CWLP123CA0176.outlook.office365.com (2603:10a6:400:19b::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu, 18 Dec 2025 18:44:53 +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 AMS0EPF00000195.mail.protection.outlook.com (10.167.16.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:44:53 +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.17; Thu, 18 Dec 2025 19:45:38 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:44:52 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:42 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-2-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: AMS0EPF00000195:EE_|AM0PR10MB3635:EE_ X-MS-Office365-Filtering-Correlation-Id: c7bccc9e-9472-4326-473b-08de3e658842 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ZTVrUkFpTDBMc2VSVGxRYmxVeUdmaTVWZEhKTHdzNlJ6U0g5VkJpNHlkM0Fl?= =?utf-8?B?V3lHVE9XTUtaa1JmZTBuRW5ET1JtZ1Ixa2Y2bnNSbkdzaXNvdXRJRjl6c09J?= =?utf-8?B?YmkycUY1Y24wQUY1V2hROWg4V0d6Yk8yUE1ocFFOY2l2dEl1ViswNjI1VG1X?= =?utf-8?B?YUV6M1hsS3FldkI0T0VGRmxBdDNzaGxtUTRNbFFyY3hydnBxQVIrVzRLYTZX?= =?utf-8?B?d3B0bk5FQTVnaFZiNlBvdGREckYzVUFUSy9JeEhSMXJXVTcxVVhabERGRGt3?= =?utf-8?B?TXlqVlNCcGY5Ukh2NEtrY3FHdHhTRFZ2dDZ0NGgySER1L1FDaEF1QitJYzRO?= =?utf-8?B?MU9PVERtTStlY2tyeUx0KzRoSVNjZVV0azhySVVUOWltS2FzWTBhRFVjZS9O?= =?utf-8?B?S21xTVlOcmp0SzM0M0U3NGpCaUFibitWZzFLNk9oVWRqU0VtbjRMQTlJWkRS?= =?utf-8?B?dmsvcTErQk0zQWwwV2U3UnBCMFJXQ2llaU5iSTM0L3Q0dTVKODBETzhyOERl?= =?utf-8?B?NHhqY1BhYmUxMFUycUJ5eENXV2JkcEJPbWJyLzRxUmcrVE9qcXdVNmthc2tM?= =?utf-8?B?aG1lWExWcmVDVGlDejV4NFFka013Wk91cGkwVm5sYmU5OUR5NFJoT2xMaUJW?= =?utf-8?B?VjZsdFhsS2l2a0JIa0lMVU9VMVA5ODFydHNKOFRJODBGMXkwTWlYV0NJdVhp?= =?utf-8?B?QUZVT2MzbEpWRi9aeTIva2ljY0ZNc0ZvTWhHeDBNYlV1bllyMG9wMzVBVFZM?= =?utf-8?B?aHF0Wmd5UVoxbm82MGo5OWh5aHNvRExDTjM3S0hXOUkvWnpNdVdCNHdvb3JL?= =?utf-8?B?VTVjSlVRUjdRUW5vT3BYQlRBQW41TXlHa2VqOGUyZWY3WEtEZEQ1VFUzWTgz?= =?utf-8?B?UnlaZ2VzYW41a09wTE1ET245SEJYVnR1Y2pmTklwOENSNW56NWs2WmhmNkww?= =?utf-8?B?NzhnM2t2Q3FIOVE0bHJOZit1aTRrL0RrNEY4SkwxeCtPdXJtQWw3TkRXL1VX?= =?utf-8?B?dkx0NVFIU0lYbkxvcHh6NjFZREhqTEJoQmJhelhTS3Y5SE9nblc5Qm5wNFp2?= =?utf-8?B?aU8wNVpDbnZrVzNUbFAwZnQzQnBSU1FEMGhrbXRxT3E2cEp2L3FkaklGK243?= =?utf-8?B?Z1N0dFR3U1lHR1RSSWFJU1JiNkJSSjdYUFIyMllrR3FXNXpqUFhhZFRtODcy?= =?utf-8?B?WWR1ZlNvWXJiaFl2Mnc3NEYyUUV0NEI1LzZ0ZG5kUjhDQ1JUTzR3VjdwUWVt?= =?utf-8?B?RW00UjllckFWbmlxeGFJRkU1b2pRMW83OTltbWpUYzdyMmxFTUpCcnd3WEhl?= =?utf-8?B?Q1JLODAzUERaRHdHRStzVWRhOW5SUzBNRW9MR3B4RUt5TEtyN2lxOGV6aEdS?= =?utf-8?B?TmlMdXlybmRpY3d5VW9tWmhwTGFsb2J1Y2c5RWZhdUpzK0E1Vm5TeGJ1ZTN2?= =?utf-8?B?cGtzVlluM1NrYXVwa1NPTkdHS1dPSzZmZHpHY0p6cTI4ZzdkbUFIeEpLMDBX?= =?utf-8?B?cnFVaXdKS3pqNFZtckQ1b3JhemRsMG5QUktoQ1kzYWZKL1JuTEdTRkZheGkz?= =?utf-8?B?ZHBNNGdONC8yazJyQldrYUlYcHg0V0RSU05qaU1VMTdmTFJrbE5GeTN6dFlv?= =?utf-8?B?R3ZaV21IZkFyT1NqclRCT3FOK2FZNU9ocVRYV2llcmJ2Nmw1dWkxRlRTMmRC?= =?utf-8?B?S1J6RE03aDlRRlpTbGdWaVZsTC9uZEtGbWZXczRGaXZKemFOZHlZQW52N2tP?= =?utf-8?B?WnlEUlRrMFVHaFhLVjZUcXF6d1Bsb2JiQURjK3hIOFB4dGpnbU9xYUo5ZXNl?= =?utf-8?B?S2dYRjIwOU5JSzZIaGpaNEtEYWJLM2lETUNzT3cxLzdSTGVsRDl1Rk9EYzRO?= =?utf-8?B?N0VJREw2czlXbEdmQzFwcFoybUZqVm4yWmlrdXd2OHlKa0t6Z0tYeEI3K2Fr?= =?utf-8?B?SVovRGs4YXU4RnFyWFVINXQ4TEx0blNtK2UrVXhEd1R3alhSUUxBeHQ0blJi?= =?utf-8?B?bUhwSUZoMEN0dXljUVcrYUZHQnRWdldkVXVHckd0aVBTN3lFTFVieER4RmJl?= =?utf-8?B?VVVVUGpOZkY2T05wTlRnNlk0eGJWU096bE1SVkQwSTBNVXlTNFF6WE5EbEFV?= =?utf-8?Q?K+Uw=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)(7416014)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:44:53.1013 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c7bccc9e-9472-4326-473b-08de3e658842 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: AMS0EPF00000195.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR10MB3635 X-Proofpoint-ORIG-GUID: IP04yWkM6qqxw4S8J48ANldrl1DDdcyL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfX79agg+PgkopR Io99cZjoLW4dqytx5Nk1OCGrXrQu6YioTW9zo9ZnwN8Gn5GugxOmgWfDgRG8cc1UiOXAT9bkU6M nVSUxOtxpFnFOixcTtzBuzlK2SF1kfeb7BoZcdk948NHi+zov6fPOUl1ZoTVgOBM56O9mbAitvx wFW/8mydD1HzQ15TfbKWw66cabz2Hrgi2rsO9ksacqQiPifFqTY1typsNZxWgUSBnLozvkR+tse e97GCOaQ1UGx9NWA9HeGrPxVrxiBIPSXlBqmIIDVMQUNMkQyvXJk7ekHaOp18xQUiYIPxG3Tjyy Fwqp9ur28JSrvgC/v9EikB2m56UUMVUTaltv75lhOgjHMseauKABHTifCcx9l+AcTiz8oLAsP4+ eTPcVN8ZjEygFHHsJg8i+bWTOGqb7w== X-Proofpoint-GUID: IP04yWkM6qqxw4S8J48ANldrl1DDdcyL X-Authority-Analysis: v=2.4 cv=PteergM3 c=1 sm=1 tr=0 ts=69444ba8 cx=c_pps a=EUj2RJeRT8nt7VZrk89mWQ==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A: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=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 bulkscore=0 suspectscore=0 phishscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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 07b67eb5b9dd..27b283474096 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 03:58:24 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 817AA2EB874; Thu, 18 Dec 2025 18:45:12 +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=1766083514; cv=fail; b=NHWgsIjLm4ip/fGCt/yQLVPapfdkLEMb5dP7w19naHzuX7jZlCnbjdfQpNB/ZB71J2GW7MUGgdAEnR4jZ4cxjlCjws+3BhKndlwG/uJPvWT7F99rYBUh/v4ZNGPte5IoZD2ZWEnHSwVc4DiFo+RcnNi2EFyUBHiAtgnVMdm9O28= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083514; c=relaxed/simple; bh=AzZ4V3bj7G+dssMBHw2iIqmVX1GyxRkPxC9EEmpuWls=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=Yx0xXZTbeUqJfW7IWQzK9ZwVtf7ha2ztiuzYCO5t80McquidCGmfAQCx2zlNPT9wc/i6YMd4NSe9B6c/i+CgbIepyRSK940eSbBKqHWpa/9KBZKMds1HMEiVgX3cuGl2P2Z0PRSp/OZTdj0j3EmOZLx1Q0CTDhIa2Bao69wjYzw= 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=gR7Y+PJj; 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="gR7Y+PJj" 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 5BII5SR03357073; Thu, 18 Dec 2025 19:44:58 +0100 Received: from am0pr83cu005.outbound.protection.outlook.com (mail-westeuropeazon11010046.outbound.protection.outlook.com [52.101.69.46]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b4mg6rm87-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:44:57 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EqCXPCd5mGb8Ktgxd3sliDl0XnefZBsiuqq0bTIADFrln65iSEtmdgFaU27nHPWDhM/6AuvQoT4PhOEyX3XQ006zlQUvI5ytHWHvyHbiZiAY/13RiDkhXCo0b3rxXfEHM0Taiu0iq3pFy1o4Wfms2q4ACYlL+xG6fi+QkdIPjJwf0axBrFODVjDbIiXc7X7Qh2r4Wpq9ErCZTtjuxCMLqyBwhnBIGzgeywv9fca9Va0Qovxzoa/TgwH5XFNVifHoSbqRRHMfb/YCmUPWvvXCBlVX4HqMe3gvYzktdKahVwiq3kfqvDqbdHj9cxH7D5pBQG7N1Cq0PsipH42WpBm3jQ== 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=TM4Tz9u9RNlHE5XWng+8LCPzhSpL+neKVILp5hLzoS4=; b=FcTsPDZFHjLlHzVn9PKdMmW8v5LmPo60o757Y21HNZNoNZL4EBjRs6YmxFgpR10XcCLsIJ3Hljoz4iWLGQ/EbdUlMVw4dTNMqfhkVqXfqGith+pZJpmWAMQMTba2ir+fOLNQkyAcOjYbf1YhhVQj0tw98vIo2KO9aXQygAOqdwYbEw+Tb+5Zdn/FUz+QfdRN8SIHMmzXjiAVTR5hN3L3pwLv0nq4fTj1Od7+3L5t+LT4x3NImGW0mhOxf/uSdW25vqSF6SRuns4eloNQoE+5tDpL6aw3zcU7dyg73wGdJoibusm5AAfk84B5W25o0jyGtAzt6pVdVZz76qvLFuksHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=vger.kernel.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=TM4Tz9u9RNlHE5XWng+8LCPzhSpL+neKVILp5hLzoS4=; b=gR7Y+PJjXSaskzBnw+9saXJG0ZUDNa+jgr5m7+E/uh4Pw1aSLNyFtlSm5YEXwY2Ca7iaXFZ0SWwBQsPiN1hI6fE9up3/3f0ChTxDhpdpMbjqbT4eIBd/kNNpL973+UICtzEQa6QLWzyYpH84Ldinqiob9CirN8dZ70lZTp/+e9WlCV+sd6mioxDwqrcmtZYQ5AJIgGZyFiucwaz+FDUtq2XLd00To1SBtVK18lVkff+uxHyQHORMuR5ywkmXUaqx/w/SmuQ4jnKJ/Xy7MahwQDjsVtNbPsSer1SNiqLwomyVdt284wUPC+nzXJ3Bm5HMIMuKNxi5vonwmL5FYAzWzQ== Received: from DB9PR01CA0026.eurprd01.prod.exchangelabs.com (2603:10a6:10:1d8::31) by AS2PR10MB6686.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:55d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec 2025 18:44:54 +0000 Received: from DB5PEPF00014B8F.eurprd02.prod.outlook.com (2603:10a6:10:1d8:cafe::84) by DB9PR01CA0026.outlook.office365.com (2603:10a6:10:1d8::31) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu, 18 Dec 2025 18:44:55 +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 DB5PEPF00014B8F.mail.protection.outlook.com (10.167.8.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:44:54 +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; Thu, 18 Dec 2025 19:45:42 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:44:53 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:43 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-3-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: DB5PEPF00014B8F:EE_|AS2PR10MB6686:EE_ X-MS-Office365-Filtering-Correlation-Id: 20610976-a3ef-4b53-9e5f-08de3e658907 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?elJCYXJiT1ZzZ0xhYWRIS1Z1TFNUQXRzSVlPRGlhZFE5dVJQeDErSkprUUdp?= =?utf-8?B?d1AxOHVaVWRLV1hGeXA1RzN5OUR2a1hPQmcrUEFwcGdXcDhmdlo1U3VONk5L?= =?utf-8?B?S1g0ekk4cUFRR2JuUER1R3loQXdBV0ZkU0pHU2lScU5WeGR4UHJxVWJLRSs5?= =?utf-8?B?R0J4eTZiMmNzOU9wYWJBZm5QYzh6OWErbUZGN1VwanNCbmZBSnZHT0hOY3Nj?= =?utf-8?B?SVJKSTRZRktnYVVjRkVlTnJKSjRZOXJxOTVQT2RlSHVTSDJXR2Z2VklCZkFE?= =?utf-8?B?ZkFkamQyT0NPRXRVazB5TDFCZjVIVERzbUlEamtzaFlOejV4aURsbDExeDdl?= =?utf-8?B?NElBM2poTC9qZ0JHVUdOL2hGTjRrZTdpSG9lK1VQNThCbG5aVmZtS3o3ZlJm?= =?utf-8?B?ODhHc2ZnMUlhY21YT29XWlZBZStNQmxadmo5YThxZk4wa1l1em5yZjVDSG5o?= =?utf-8?B?UGE0bXY0MEtoRW4rdmEycVU5YjNNOTVXUklWbDYvZnhsakx2UnkwUk42Z0pq?= =?utf-8?B?NEpnV0N3UWJES0JaTG5rZEVjRTlkcjB5OHk1SGJkTVlXR3VOSmNMdWpDd3pN?= =?utf-8?B?dkdQeUxLUmIyVXJMYlUzd29aRllOeWhUM3pHejQ5bktkQlZlZGZkd1JKcmRI?= =?utf-8?B?aEdraWczMzBJUThPTVM0eDk3VEF5NkdDZkhmNmsyYm14OU5xT1VXdVhYcVlS?= =?utf-8?B?MTdEUGNkRFBRbmliOWwwQi9yQWVuTTd4MWkzV1R5RllBNFdRdCsvOEFoZFlK?= =?utf-8?B?VzJPamdZUkdRSlRIdVQvRSt0d2cvbHJpUnhwR0hRaVJHZ3ZTcUVCUWxjMHlJ?= =?utf-8?B?K2F2OTZhVmJnR0ZDT1Y4SmthdHNkZXdwMUt1UnJGd3dGaGorSmdzSHBiK2ps?= =?utf-8?B?UVdQWVhZWXVSVXVaSEZtU080N0hkNDZ2WTh4eFl1dTF6cTE4Q2VlbE9MYWlT?= =?utf-8?B?aGNjZWNKNjQxUFBZd2JTM1d6NDlrRm1DWkE4R0ZPeXF2aFIvVlhSVDJIa0VG?= =?utf-8?B?blRmUE9tamNBaUJMZXhuZ211b25yYTZWQjNiOUxxVzdseC92ZFhrYXVjclE2?= =?utf-8?B?SXNtaFhGK1Y1eVFhenBiUkFMWjVpN0UxaFVZYkJ2UE1lTkkyLzEyem91K2dj?= =?utf-8?B?dnRDbURRalBtZjllL2JTZ2VoY2h6aDFDeDJqWVVKZWRMbElHY0Z3MUluRWtZ?= =?utf-8?B?V2F1cnJCaFJxRnM2cVNxd2hCV21hWXE3WUU5aDZqMVpHc3owQWU2WjBaSlVi?= =?utf-8?B?TjEweXNQdkdXeExoZ3dIUmRyZTgrekdpSThWKzB6SWJGZnM3RXBDRlRkWVJ2?= =?utf-8?B?bFVoNmlOTjFibzRvaHVJdG9xbXd5ZlhONDM5Q2dLcEdldlhvVXNrVHE0enZR?= =?utf-8?B?a3pWd0hveVJXWFgvTlhJNXJUUk1CQ2RmbW5SK0V1TnZ2cjhMY20zUHl6Y3Jz?= =?utf-8?B?RXl1RzJiNHR1N3FrNEhINHk3WE12VlpsRW1CMUloOUJQLytadnZJWjl0S0lO?= =?utf-8?B?aWpyZTJHcWZDYXVsYzRwWWM3NDRXVnhIaGxjTUNtM3kvc1RGL1B1SWN4Y2x5?= =?utf-8?B?WDU1TzNGZlFjMDhYNHFhNVBoanNDR3RoYUdQMEZuQTRzL0MxYzFOZ1RvT3g4?= =?utf-8?B?UWNWNmpvOUNoSnZVZXpNV3lYVk41dzJ3SEJlV3l3UEI2cTllTTU1dHB1M3RG?= =?utf-8?B?SDE4eXhtZFZkQTlJS1JTaUtPdjhtNHhZUHRKcEFuVHJsbm8xWEt4bXhFQUJZ?= =?utf-8?B?b0JQS05wTEhzeS9yN0EyZVYxU0ZocXV0eTBQdis2RDhEK1J5V1VxVEJYVUtB?= =?utf-8?B?NXNTczlkVlorb2c1QzNyMDhMUXlkYXpaMHJzY09FLzdMckFMTDFVZkRLWHlw?= =?utf-8?B?aGRCWDdHRWxMZHlIVENNQUxQaXJIcHVxVm1QRDF4enZBZXpqK3UwUGZnb0RM?= =?utf-8?B?NFV4bkMvUW9NVmhCOCt5dXdGWWUyRGFTa3FpL1NCVmNsNlR1dWF4SzYzY2dK?= =?utf-8?B?R2dkY2JLMm1MMURMME1uOXBJNVRQVlVhN0xVZkh4cFcxaUJXT0ZicWhXREtQ?= =?utf-8?B?cEtMQTNibzVFbTNRK3N3dmdDSnJTZk50dkgvd2xZMm5xbGVoU1AxbWo1c1lC?= =?utf-8?Q?y/QM=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)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:44:54.3601 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 20610976-a3ef-4b53-9e5f-08de3e658907 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: DB5PEPF00014B8F.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR10MB6686 X-Proofpoint-ORIG-GUID: TSpN2TMinF0euTiZM0gVdg486YEm0dfp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfXzHNPfO4M2bZy gGyZa2/zNXhKoOLy4EkucCyZHSmeog9+3a/L/rnzeksr97FjBiwrm+CL2OOyVzAANBd2KjqKb8b KtKYi+mgEGUOZ8m9+v8ej6QEkH+cFPIS20cStxIVLAmPH/r5vdldBOLp8vuhXbnwOaVJJYDEcnY KrgAWgh0j8s6IIb3zuD3QsWJEgUxKXHqAuW8mc5nMv2DfOhTmJxTv7LbxTFxO2j/s3WxXvjlHF+ zE28zTe+aFe6+JRD8cqcYIIOPmVNHVe/MXXRm2wdcZKAmq4o86Ib9YE7ZLnk21VTwwgBgvUXFdL kuppPANMybaMSxWJhmtZg4be17Yo81X/twfKJEUUAECWSTx5K3ck43nuMb5HxDTrDesYMyRx7+P dzaXA2l9FZu+jsI7F5ekJkk0j4HwXw== X-Proofpoint-GUID: TSpN2TMinF0euTiZM0gVdg486YEm0dfp X-Authority-Analysis: v=2.4 cv=PteergM3 c=1 sm=1 tr=0 ts=69444ba9 cx=c_pps a=WBV7RGSj+lgSRdG7tN2obA==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A: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-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 bulkscore=0 suspectscore=0 phishscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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 27b283474096..d8ef06bd7506 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 03:58:24 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 0690030FC09; Thu, 18 Dec 2025 18:45:16 +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=1766083519; cv=fail; b=tenHIDelXsqmya4DmEBz9McjnEwWljBDb+m7USWeFv+aNf8vqMzfwsCM5XznDmZe8zYVOCp6PeQdgWbvA91TxgDd3+0YABupiHcWw4J4s+NrtilGhkGK2Kdh6ENAiwhP+Qhdwt5rwGBrBfH1jbOQKSWOm0UQWz32usdrowVaMTw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083519; c=relaxed/simple; bh=FX9gGtrKjJDFt2zx9zyB8SFGBszCMeGeMOfHvZWwUkg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=NTalJQnKnCoEgF+uyYmGmmA4FRZlO5ti3XmrYOxifQ67WgVIE0PdFXezNtDde+9JokU0vgnHrDjkbpVsjqB3zBm0ygRvQh0BUvsaxJRuUJDcbx96Uqp886ycAnWhpiWZxKCQz1gVzmngXPCF0UGR42qYLIlXeaovqCKwMkZEq70= 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=KND7E6I8; 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="KND7E6I8" 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 5BIIZYiE2966301; Thu, 18 Dec 2025 19:44:58 +0100 Received: from du2pr03cu002.outbound.protection.outlook.com (mail-northeuropeazon11011057.outbound.protection.outlook.com [52.101.65.57]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b4780bqnt-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:44:58 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PMIOpNbK8D/o/eV+wv/vHyl5Z+GdKigRnnoJopE05Vb4bMYs14MCEkM9k+URFhRbSnNzUcXvdrrV62kRyiXIF2tnW5m2jrJzH82VcydRWp8xN56qHDp8LidQo0Vz5FERmefLMjg1cGi6lgP18KMTHttH+11OJWt4aB7AuDkx/tJSULUGi1n1HNGgZQih8T/l3MBKEgOlxfYVbmeKA+xTDnSVAtO9D/dRGJEHeg+KqSWaTbUIWZWeYroQJ0B+CQANFRM4FUQDrbgAaQiQ6w+Dh7f6BXI4Z54eTnnMdSkYYIW2Xhg1jBSQCu/jZV6FHP2MIry59z21DxZHsjMHtWnhPg== 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=EQw5ZGOJqjrQXXLvWW5CVQe58fFuafpe+3De5k5+bbg=; b=KufIMoL/yt8yJmd3GiRjrwm28pxF8bW8nXESKwWDxmGgPFOa44KXdKihq0RDltfece14PHKKr8XrCVxIXPtnUYeNXOPzkYQtTgrrygN0NdZ8ltvSbCKQBinU2jEiCfLO31cGVAmKUV4hF/qI9ei/5+Vt5kJF6ZRJ4x2CO8jKiMYGEVjSrqq06nP3tIY+245GGoTDqA11xydRW1UKwB2k+XRXizhjN0oARCZcgbLHurjO6W3TFoywGv9qsry8jgVwpWVza7+Za/iAvhY9J5UAmUrh8Fay0DcXG6b6/tLHzEVIb5YQZl2YJxp+D/GTXi3xbpIpKT1/6uR5lwZO10YxuQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=vger.kernel.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=EQw5ZGOJqjrQXXLvWW5CVQe58fFuafpe+3De5k5+bbg=; b=KND7E6I85+3+wi2BVK4L9U3v56fItNr4vtjFCexiL02AMuLAmfaipTaxRS4yNV54tdg65ZWctu2fe7rU+v3N3VHhGfC3WJsD1dkEXF7v6z2+zb4NRn2masmPBbS8HKNspnuptZvRQ7MGdSXWVUQiCPo2LnyXsVXCxRH8agQTYUmKhy1m8apcQwqAlDoo0Lja8CocuThUaZ1zaFe++h0MN0pjc9jWQnBccWVkUXbg1rE44fDctbewmaighhEMxKj8+LQe0XpHMoVfFnAYBXtLYWfHF6BRetWRDVprdNyhtRe1dLbEOSdXSR/oEJ6YwARxcwA5npdSjg5+J7shHpSstg== Received: from AS8PR04CA0119.eurprd04.prod.outlook.com (2603:10a6:20b:31e::34) by AM8PR10MB4067.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:1eb::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec 2025 18:44:55 +0000 Received: from AMS0EPF00000193.eurprd05.prod.outlook.com (2603:10a6:20b:31e:cafe::4) by AS8PR04CA0119.outlook.office365.com (2603:10a6:20b:31e::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:44:41 +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 AMS0EPF00000193.mail.protection.outlook.com (10.167.16.212) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:44:54 +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.17; Thu, 18 Dec 2025 19:45:40 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:44:54 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:44 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-4-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: AMS0EPF00000193:EE_|AM8PR10MB4067:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c8a5b7a-ad76-42f6-7929-08de3e65893d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ejUzNWxCOWRnNDdUc3pJUlBqdWRCU2prbnVmblVMT1RaNGM1ZEgrRFFGNWVH?= =?utf-8?B?UTBzNDl4eWlVVjY5cE9Xd0U4ZTMyVEtyaURiZXNSd0dxMU5QaGN0SStkZlIy?= =?utf-8?B?cnZQdDdyZEgvMnpDZDkwN2FDNUI1dkZLU0xaTGtVVUhycDlTRlZGV2xTUHJY?= =?utf-8?B?RTY3NzIwWk80WXpMeHZQbzEzWXhrOWptcUcyN2dyUVpJbGtSVDJQU3QvZytM?= =?utf-8?B?bTVrY0xUYmFBVEtReGFwMFplV2NBbnpkRkgwSTNOaVRQWGZuZFpzcFg4Q29X?= =?utf-8?B?L2V3U0UvaCtTVTZpNmtEQ2N0NXBQdFVxSmptbnZWSFA0WFh1bHp3OURmN3l2?= =?utf-8?B?VzNnSG5PaUJJSnpoSlZyUzdqVnRabEo4NmloWEZNNkQra2xnd0ljbDRaN2xM?= =?utf-8?B?QUVHdGVVN0hnaC96L1ZTekVNZnF2b3k0U3kxVHF1ZFVNZE5XREZlQThJbVBM?= =?utf-8?B?djFJeVh4V0hnZVhyR2lnSmtreFplNkhKeVB5YUZ3d3FyVFpDaExYNzMzdDJ1?= =?utf-8?B?c2RoeHc4UUdxZWkzSTRNeXZWNFgyekZSeE9ucS9wb0h3T2h4WUxSUEdFbXpJ?= =?utf-8?B?d1lvd1VSWk5YTHB6S0dxNDNSU3ZjZW44VFY0c3A2MDMzdEZ4azMrYnd4UURY?= =?utf-8?B?b01uZzBHcm14RHZOSWk3Nk9EdGhFSTBJbUd1VDNkc0RSMmEra1BVTUxZdVI1?= =?utf-8?B?VEdaT3R4dlhXL2I5T0NMV1g3VWttYUhlRFJtajBhZXY4WUl1V3R5bWh0NXhI?= =?utf-8?B?N244ZmlZOE1vaGNpVFpJV3B5MnZjckV5Kzg1K3FjV1MyVlIrY0pybHdpbXMr?= =?utf-8?B?QTRNcCt0S1owYTlTUUtPZVl1dWNUMUFCb1J0R21RYVZyUDlzL2xhVjFVVUVp?= =?utf-8?B?eGhxOHhySitlcmJPSGI3Y2VuSzVLaWxnNkw3T1hRVzVrS3R4MGU0UmRWQ2tr?= =?utf-8?B?dHpyckYrV3JFZUZHNHRsSEpPYXgwcDQ4bjJyV0ZLejlMaGRuWkR0S3MvYWp0?= =?utf-8?B?bG9Hd2ZXT2tQTVlBQUFmTm5IMjdkWUF5MTVPQnF1V2dpVXNiVXhheEZqNmNV?= =?utf-8?B?cEpXOHpYazFRMlVoRnVDdlk1dENnQXYyOVQ3NWQwSVV2bG5sMXprU0Z1NVN3?= =?utf-8?B?eUNXaU9KZWZYL2hxRzJpa20xdWpRNk5tQ21SSXJOVXI1Z3dZbkx4b2s5MnJi?= =?utf-8?B?ZmkxZEZBdlduRlBqL3BkdHFUR3dOdFpYekt5eXEzemhKb3I4OVFXMllnaVNU?= =?utf-8?B?Y2NSMXJpeGs2dWNqQjFFNFA2cHd1WGQ0Q1A3L2YxbTZ3ZnRVdnhyUDkxQTZx?= =?utf-8?B?djdsSGVWSU1TNTducGs0bmFTbGFsOTAxOGJMOE93VHNHZVF6eGgzeVdMcThq?= =?utf-8?B?NFlEZ3NPQ2MzZlZ2Y0xGbFRGUFRaMHNMamZXODRyM1BFY1hBY1VxOE9BMCtm?= =?utf-8?B?aCtFNU0rV2ZiaUdVMFB3MVVEVG9lWkZvK1VTUDNSWmU3a0ZQbkFNdjlLb2JS?= =?utf-8?B?NVgzblFEbncxTEQyZUpZK3htQTlUeFdtNG1iNmJrN2NiY3VEaFZUamNkcnRw?= =?utf-8?B?SFZvUXVFYURhaFZVZzFiZm1oemRLQ2hOZEhRcUNEWlhXN1oraHVZNWU3N1g4?= =?utf-8?B?dmh2emwzL2lJWTVFS0RvRUc5aTNidHliSjMrbVE4NHdtQzJ0K2hMRGV0NWw1?= =?utf-8?B?ajNjWVhqVzM4bzE3VUs3NzJWMHMrYjBJSVI1NHBkeWhIZWZKZHloeHNGUFk0?= =?utf-8?B?NzhIbllua0hCMC9Jdk5ZK216enozRldmVG0vZjdBSWNmZGYvc3VzQ2w4am9E?= =?utf-8?B?UytUVTVaQWRtZm4vdGxtek5HdlkwRCtCRWRQeEw5aUE2VVI1bFg1N3ZZL2Nx?= =?utf-8?B?RUF2M0V0WndRRXJmT0NLMFFYditOSlBKVnoyem1BNWx1TU9wdy8vdkovSlFK?= =?utf-8?B?dFJlRmplc3hLNW9Rd3h4ZWNqY1lFeFhFZGtYMFRsajI1WUlPZlo5NjBBZlNR?= =?utf-8?B?TlJWQlVuMW9uOGxCZnlvMGNnbTBiTXMreGZ2OXBQNElhd29ZN3hDbTNlVkRt?= =?utf-8?B?KzlmLzVZdEg3N3lFSkxEcjZ4Q1d5c0FTdHdweGRlclZRck55NTJIM2RFZlRO?= =?utf-8?Q?8h3Y=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)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:44:54.7484 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4c8a5b7a-ad76-42f6-7929-08de3e65893d 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: AMS0EPF00000193.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR10MB4067 X-Proofpoint-ORIG-GUID: 85Vz5fh-yAHkyhngLMKkNCt7GiX-_3Ja X-Authority-Analysis: v=2.4 cv=PuqergM3 c=1 sm=1 tr=0 ts=69444baa cx=c_pps a=JS5Ex5ODQcMkTVofuE0IAw==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=kBhef3lLaoA0UgAbMYMA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-GUID: 85Vz5fh-yAHkyhngLMKkNCt7GiX-_3Ja X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfX7u8pW34TKCWf HJ3aNyNOV7068Ir/6MXZQVT6LPIU8f4ghGMLyqc5z9/a6n0JTJ3q0rfcJhWpkuwSVsRRoV9jN1g +iMO6ngCzmALWVFnhAidGZHuVAj8xl+YBFF4pOVapl+jXTbaB4mkFYaryXSPFmQY262Qub4d8jg MqTVXBZdgxTyitBI7Ba8sN1RIRPUHMXj47yQ0JwXdOtMAtVvZ3PJJTfrCdSeRnDbx4ifJqWzvdd T1KQLez2mdOBeasycDbnXmZY364O86RQyBfvAfBkVReXcWmkkoV6vf9IHasyWds33vumRMYkbg3 21yRl9p2YgxuvXVYbwxp9m+Oeq1W9VhP1lE9XnftgkMhqcEj7Nu7HVupR60bSbAjNcjyhW+x/Nc XYLhERPqYqof1MD0iSsZAFOchidPSg== 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=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 adultscore=0 malwarescore=0 clxscore=1015 phishscore=0 spamscore=0 bulkscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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 d8ef06bd7506..fa33acc34eab 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 03:58:24 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 B698523EAAE; Thu, 18 Dec 2025 18:45:20 +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=1766083523; cv=fail; b=uZYFWiI3yAovrdOMVoRseJeGv1O6GxrRcW+6eMKOnMMy7I1E+j/s5JUDGXnw3rMmBgsC9d0RgoQUKEg2SsTx5thSgLT7LKwKoR76AXdD70vnc7yAmUzBcomN88co71s/6OWGpd0gBzxsYcJaOcKbyLG3xowDeaSjAuLoG+Oaadw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083523; c=relaxed/simple; bh=8lCBGXUTk/mhCXlEISrjP6yriGTQKbNW6ylpxZBPf08=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=uiWeb0afsoPyeioOKuQY5Jg4XAcFjbhgNZIjnUKf9GSwFhYArYPioei6QmeluNFBk+oBUymeIwurasRFnnbituL8jOEuoGuh5XlNmZzKC0P7qx0zPd1aevsAWjXFYbRjTWqRORiuHzlfkqztOAsOBQLXIeRVPQ/nYw+FDS9iBnw= 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=OmAtjF2V; 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="OmAtjF2V" 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 5BIIEO9I2482379; Thu, 18 Dec 2025 19:45:00 +0100 Received: from db3pr0202cu003.outbound.protection.outlook.com (mail-northeuropeazon11010036.outbound.protection.outlook.com [52.101.84.36]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b4esu269f-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:45:00 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GOxTLdbOGYeNyV5B1MHSCV77tJLLMThCKltXiJ555z8dPXu8LOR2VprEqDA4SE6eLWz8n4vZOAvh7zFOQe40W17Eymh67Jf2dTMvSRnf2y6JUILYpGN0/92lrUvRk1z5DGCTxEcIR9Ga3qs5Ssxl6M2DHfXm/SS436wBSG3010VYjIzj29hm9FPSlG18hnX2u6n4FGMiYV6gBTRrcyhIK2pudfMCx9Sha2F4zelnrs/gPGTwoKEotMPpP8IKJc/mzGLa/EYpnBkl/jf2Da6oQKSbmLjEo+IK2gSrSoMlvKGTLwhpw4ukPVGRC6FPkGbQz1LJmagDMHTqXrKnTd3FQA== 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=NUhMorOpZudwnimphd9TFfMmgy83L9UMNw6qeS3v8dY=; b=iMLcMZAlBQ+tsNI0GjwO71zwNy5Zjd9hbX6AHP8Dd9+SYOQpflJxgFUivbx9eJOxxWQz1lbviqvj7QUjZBeLaQr5N7cE7mInXjUtOil4kDvS/4f9Wtle+q0TjZigKrLKQHvYzyamVBgGR6TA4Phk6mGje6fjUuYmWqnmUeKoh7shf8bU8kWIA1CAgIU7WKH9gyqPkn/47r02ZzGQqksd5fDj0CwQgUobwuVn4/ENWAG1XwDy84WeJmmXaNzl5GD3e/MBdUaLj/GvKGT3/9LP4sC9ytiqX0d3GLs8XjjT/hwBqk3P6ZpskTo/Y5hxusv2HkMM0G7V695WAE/wRasSqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=vger.kernel.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=NUhMorOpZudwnimphd9TFfMmgy83L9UMNw6qeS3v8dY=; b=OmAtjF2VQDaCR7EIm3RQ+ksrRcBT7MpMBAExpgfqtwM7PZeO4x7l5iQzSywMTjG928B9weIMmw7Lf0DRXbb2c2lrpFa6OT96g2cVV863T9SVJwuRky7FnyG9HaDgIXya5Vjfo87dJfGvQPQ5A6bO8iqDh+bLRre50pyCTBQYOqQglcqU4rr0vH2etQ4I4QRVdWHuVgRHjN2DupbNXK/7eg4LQpEGrMU1N1SopdUvoLdJatvzWNXB4+KU9yaTmZF+UD/CdAQGlMzYtWIbeLv7v5DF2ey/2msaxYJ7Ev15gq511s8RE04LH03dPsVGHIa15gqIUO070cUanxHgB6v8GQ== Received: from DUZPR01CA0310.eurprd01.prod.exchangelabs.com (2603:10a6:10:4ba::10) by PA1PR10MB8896.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:445::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec 2025 18:44:56 +0000 Received: from DB5PEPF00014B8B.eurprd02.prod.outlook.com (2603:10a6:10:4ba:cafe::4) by DUZPR01CA0310.outlook.office365.com (2603:10a6:10:4ba::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu, 18 Dec 2025 18:45:05 +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 DB5PEPF00014B8B.mail.protection.outlook.com (10.167.8.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:44:55 +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; Thu, 18 Dec 2025 19:45:44 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:44:55 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:45 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-5-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: DB5PEPF00014B8B:EE_|PA1PR10MB8896:EE_ X-MS-Office365-Filtering-Correlation-Id: c4056c8a-d4a0-4e79-3c28-08de3e6589de X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MlpzeUw3b3pVNFJDa2tEbUdjWWw4NW9xaUsyeWxBRERTNk9OcnNQUng1bEZk?= =?utf-8?B?bmZ3bDJSWnF0cU04YzBrM01hb0lwcXRSRHU3aUZtVk05WWRCQVFhbDBQZTdW?= =?utf-8?B?WGw1U3l6eVJUZndCNFB4ZnNMOVc2VjF0b3hrbU5YSXZlZEFpYkF0Z0RmNWFo?= =?utf-8?B?ZjF5bDdublNzazJMZzZYM2tYYnB3S3FLNDNkNTJ4czY0TWxHSGhiS2o4Y01a?= =?utf-8?B?N2RoUmhaTFQ5bHRac3N1ZXNEVitVbXBVZ0pyT3dOdlNaV1NEOGF5VytNeVdx?= =?utf-8?B?dHhvWjdlK0pWa29LMkZNaGJXWll2QXlNNkFReXFnREJiZE9IU1h0aWZuUmdu?= =?utf-8?B?S3M1NFRVVTBMYmJUMUdRcytiRU10VEx1bEtsMkxqa0wrZTQvUzRtWHZpc0ht?= =?utf-8?B?Q05RVmhnNlZ6N3pZWnhycGRBeTlTbmU1cTZHSGthVjlOWFN5dkI3TG1aSE5Y?= =?utf-8?B?L2ZqMzl1Qi9CVjUrbnBzWTdZdU40TDdlMFVaUFhiRkdNb3Y5eGtzYlZQLy9u?= =?utf-8?B?aFE0V0ExWk01VmNIK2daTlAxci9VdjhNWWJGNUUxNGJkRnJVSHBkMDcrNTRq?= =?utf-8?B?cmFFUS9vcExFdEdUaFR0RDd2YnozaVdNa3ZxdVZCMnAzVzZlTTJabng0MFQ1?= =?utf-8?B?YkZiUXBqeGFmM3ZpN3VMdHFiU1MvQ2RxbmZJcExDV2ZFY011TnZTS3hXWVBs?= =?utf-8?B?bFlqdkZkUElCZ0dkbnAyMmV6U2d5WE4xV3hWOFBnOGlnSllCVkhKTWFkWlRh?= =?utf-8?B?SWc2blZXYzRSN2p5RGRORFM5VGdvL0VOb3I1NTZYU2RsRXRpdTBBc1cwZ000?= =?utf-8?B?WTg5a3RWY0lpdEpkcitYcmVXZjNNMGhwNndGNnVLcFZ6UlNhRUpWV3JkMzl1?= =?utf-8?B?N3pWTXNWVmlVNXNvTDVrdGtuaC9iV3BLcUxVNEcwaW9UUXEwOEozeE9tNFdt?= =?utf-8?B?TG9NcnV0OWNJaXhyWENTbVdBNThMMi9qdStMQVNJT01ieXBpdkpvMDk1NWdu?= =?utf-8?B?NnBKMCtuV1BxSUE4OFRjQk82SU1BdS9EQ1puYlZnRU01OHZ0UGRxRjUrMHhy?= =?utf-8?B?amV4WDFpQVhzT2c3RkVWZFljdXppWkdkazBkQ2YvYmo3T29rMUJTRkJpc0ha?= =?utf-8?B?cHlJZFk0RGtVR21BSXp5eFdWZ1lYUk1sMDVjOHVOZXRJMm4wNHl2T0E5OG9Z?= =?utf-8?B?VGNmc3hsdlJvMmVJdHJnU1pHOTdocGp4eG1KbDI2dWxCQlUwaWp4dERrTks1?= =?utf-8?B?VTFTUmphK0V0YzBuMHJKdGQ4NUtXcENMU0N2OVZlLzM4NXpVbCsxR05RVDVE?= =?utf-8?B?WWtpV2gvcTl3Qm55NU04eGI3UGFxVWl3SHdSN3h3MGJVM09hNndCZEVacmt6?= =?utf-8?B?K052M2JxUXRRbW9uS3doK3hjanMxVXU4VU1HTDJZL3I1U3VSVW5vZU5jOENa?= =?utf-8?B?bExmODVNdlMrb2M0VjY3WVI5Nld5SDhtblE5c1NLcU9HeGtvcytTY0JvV3pI?= =?utf-8?B?a3l5bGNRMzFzdGxHNHcxVW96VGcwWVdvTm53S3JVVU9LbXpZRU9QcEltSXdn?= =?utf-8?B?Ym9uV1c1OXVFd0dtb0pseFdUNjA2NUpTK24zUUJCZitQWnZ4ZVRNcGYxZlRh?= =?utf-8?B?MURwVUFwODc3MTVuSC83RUFJS0R3M2VlelZsVklkMjgxNlZ6YWJER2YvUlRp?= =?utf-8?B?NVNPM2o0QUFGTTF5MzlXZXFCMkdGMkhCQ21ud0N4S1N3R2NDTkluQ29vRGU2?= =?utf-8?B?UCtpZ3lyKzc1c3ZWTnNnNnJxaFJHL2FVMFhjNlI1QXYvN3N5djE0dXhIellW?= =?utf-8?B?b1FhOUFISHIrdURudmhMbS9pQUg2ZEI5aEFBWDhKVkl6YlB4UDg3ZFkzT0dD?= =?utf-8?B?Qlp1K3dXTmkvMkc2amx6aTZFY2F4ck9vWUI1NVIyeGp1emFRdmcxQmFyb1ZS?= =?utf-8?B?bGNpUHMwalBwblROYkdueFBmeHlJRG11UUFnenFFeXlLa21NdWJBbXpuVEZr?= =?utf-8?B?NXUvZGhWOTM3TUx0bDg5NXFUQk41QlFPeGcyLzRramxQNHNWVmNTcnlZdWZk?= =?utf-8?B?MHEwM2hkWVNHVUNsMHpMdyt6T0JlQjZaMC9kM2xWMUtCRS94dTd5dnpnNWNi?= =?utf-8?Q?H1Dw=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)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:44:55.7806 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c4056c8a-d4a0-4e79-3c28-08de3e6589de 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: DB5PEPF00014B8B.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR10MB8896 X-Proofpoint-ORIG-GUID: 8qyDEvpxQgdExTz-UyfDJldFeS-ugzg9 X-Authority-Analysis: v=2.4 cv=EeLFgfmC c=1 sm=1 tr=0 ts=69444bac cx=c_pps a=VQBOJv1rf+3hTjaUELvlmg==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=Hb1iwsRhEjJoBOvffS4A:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfX6aPtVD2MNScX 1AYW3LDB/epkR/bg/Nuxx7veodmo3yRqtNSaA1kfXPD5qBE76lq0MRe7rvnvoa4kxPoG7s+uwal dqKb/YCdt+nts8gSkrSasAIcnA4z8XxKuL18sHxYXP64ICTPpjtmDkLBAJdKMq0D6iwDoR6Y+sE 7hSRD5K6zLM36KhppjiZqJqp9xiYQoTm3vJRHjbEaNWIjGiaTN8Zb5cugB/DOjuq2VD4psVO4kW LogW8VOhAGBskgglvQiUoc84Q4cF3Tb7WBBRkYVTW3VpCMTFWSFqL/gvXD2+BbU/MhyKFrRXWac eEJSNnhhLIN6sPtso3nKxZ9Jlymj5d9DCpaGUoDD+tQ54ZM0UV7JEpH5WLfXM7vrBxxn2p4qZXr KFW6u3Y9m1sNqquAW7G8x67YXnFRsQ== X-Proofpoint-GUID: 8qyDEvpxQgdExTz-UyfDJldFeS-ugzg9 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=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 priorityscore=1501 clxscore=1015 phishscore=0 adultscore=0 suspectscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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 fa33acc34eab..1015f2d88f54 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 03:58:24 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 6E9CB315790; Thu, 18 Dec 2025 18:45:19 +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=1766083522; cv=fail; b=qk86ApuFQZ0iIhcImcuQbScide+JQIdCnSxHfJFSo9fTR3IqImsUkGwfCr/U8nLYZI7qKajPwpq2SOyokje9tOV9EA+FrLHR21GXo/4y06x8S1rPsjfzjhGunloHe7ih/WtL36kOBeFYZwontdHYMYujx8+yJN5do8Lmv9Hqn6M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083522; c=relaxed/simple; bh=fSFDjQEtxb/LwJ0VgZY7qrBK/mDW3Uvjasa7VzllRAY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=XPg5MHwizDC6/5ojhWPXqL7qSGnskOtpyUG6s9GpfJnpi05QBElRR2eE0WRS4M6flPw90Y5DjCLF16xozXapbH7rD1pjPIH2XHtDcxfZk19rFEMI6FwLMABFCCzIPIBsF7EdpnMcjSISPrBYicz8wWanXdT8i2GlnaJ4wFXV6eM= 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=TuWSvt+O; 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="TuWSvt+O" 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 5BIIZYiF2966301; Thu, 18 Dec 2025 19:45:02 +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 4b4780bqny-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:45:02 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xLYvl8NaR5R2AAoJ+nBpNCXchrLYBK2ldd6TC/v8W+SgezKxY8qVASk+7PZHRDaBFRiQTg/YnlH2o8WYHwOOB59D95JDH2ZVOaRJA9hDj0uzx/jQ5VWLN/l/hBH3iYut6IUPNkbuNKWec1Rr3wNfGxuDj406bfS7M9QfFXeqiwha1IjCJUEdxFoau8jDixU9wlow8wDtPONhQb2jFXfVaF9KV8F4cwMKXJlS1b+78Ddr6DpqCP9C76EDFsLgjkjkwKm0eAIDyuoN3iO0jF8JYREUUWz0Im+NZHx1YmofY4DAEh9M8B749NYJqr5yMCBfim4ebENaUS8yMSosd1vtAg== 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=XVVfvHiyipGb60bweJV5cOqnRrvPkbErYIN1XE1Ae4w=; b=GgDLs07KNCfivUCgyMecvsTtpd1JnsYffachX6wkhpy51zwk4+aaxilfLyyClEdOnxh1fPkY6w5mAZzr9w89lWKvV0X0aQWscVVgd8ldZffdSIHtToZfyBQ1CQ2lC79HbWz9x53W2Pv5L4rX2KSlNLAasjySxQsRUCL3ywAPzmOHsJCSeJfJ563vwPc0qh/zFYZUV5K9H21f3ZtZSdh89HAy3FZsIXaGwb+5xL2CLK1Lip8ZJinB21DipOiDzxXsMU7JmpAYgmDf8+HY3Jkhpwes9GmQIMlIUxR314wE8tq/cjUO2ZoXuIzN67/oBBP7JOblpZkJpb68CIIek70SDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=vger.kernel.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=XVVfvHiyipGb60bweJV5cOqnRrvPkbErYIN1XE1Ae4w=; b=TuWSvt+OT7V6djDzQ4jzAOeTjSr5O+poTXjcsbEhcjvZPvALaEbl+qfSRKaWaD+0HEkiSQ6yT7ALfgAZfdZHmrVGJBeKfpyLAeQvJa/IaRNVwSfQ1M0nJOQWfouQ2OwSAa86BjFYc72XH/jFd3fLhi4BzZL5hnjGMTmI5nnUAkPJpJ1LGa6QYdapokRtXYdxYcSELYSAUMS0HxH46KvUrbrL8wKFapFIIEO2XzT1fFgWHtyg+66CcFALiQIkOpXVcyWrEzsdCR1mJfu5MSmiRRP4AXXQH4M1dmYfPXbbEmOtGqbDc+OjPyj8FMsmOU9ItMOC4QDNLX+PsYvVYI/6Yw== Received: from DUZPR01CA0072.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c2::10) by VI1PR10MB3725.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:800:138::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Thu, 18 Dec 2025 18:44:57 +0000 Received: from DB5PEPF00014B8E.eurprd02.prod.outlook.com (2603:10a6:10:3c2:cafe::f6) by DUZPR01CA0072.outlook.office365.com (2603:10a6:10:3c2::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu, 18 Dec 2025 18:45:09 +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 DB5PEPF00014B8E.mail.protection.outlook.com (10.167.8.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:44:56 +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; Thu, 18 Dec 2025 19:45:45 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:44:56 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:46 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-6-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: DB5PEPF00014B8E:EE_|VI1PR10MB3725:EE_ X-MS-Office365-Filtering-Correlation-Id: 441c9188-30b9-48ca-36d4-08de3e658a7c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|30052699003|376014|7416014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?QS9jdzArU3FWNUR3T2U0NzBXd2NBczNCazR3akZFRUdqNTRtditJWkhrNU5o?= =?utf-8?B?dk9UOTdDSUMzZjNZSTZDU3RaNDlSVUdweWhibUxFK0krRzJrcXF5K1J5ZjhV?= =?utf-8?B?eTBPdWQ3elRQUTJCTW84MXo4Qjl0TC80MXZ6SHRKdWorRkl0ZWp0eDV3aEF1?= =?utf-8?B?WFV4aGFzanFuZ203bjl0RFZRYjI0VzV4SDl4djRvekU2N2k5L01MS05GOFdt?= =?utf-8?B?UkNYU3U3WHFUeGRXdEZ0V3pHNU10THdjMEh0MFNJSkgyendBVkwzYk1YZ1ZS?= =?utf-8?B?U2R3S1JOVkpHQ2V6NCs3TG1xN3o4ZHJTUmtMQW9rVzNmQ3VlS0M2dDJZbmxU?= =?utf-8?B?NGdLY0FFZTVYNUpCZVNjS0xQQ0Voa0NpOUNWVHRtbmZwbHl4b0d6S0ZTSk14?= =?utf-8?B?V3h5OVVYZHJaS1ZOY0JpMkNlcU9WQldwSWdTRm5FZmlXaFArYVBNR3h2Zk1I?= =?utf-8?B?S3dyaCtzMDFCb1lkbW1OMkkwZVcveWR6ZFJDR1lNOGh1RGFNaW5BT3NYU0Rs?= =?utf-8?B?Wnp4ZjVlZmsyUTZpWGdvRndVRG5WWlpEWUxXZ29GV0pVK0F3K1ZpQ1dueTdO?= =?utf-8?B?dXJrcGFUTWRhSWZoYy9GY210QUh3VjkyTnRMY0NLamJUblFLTGxKNHhLRXRv?= =?utf-8?B?b0pjZW5LZkVKN3l6UzdoTjN3VUx5b1ZIYWdnYks5RnVhQml3a040MTQvUThy?= =?utf-8?B?RVpjYTkwVzg1TW1YbVZjc2xVbVEwKzBrS0hHYkE5Wks2WmFibWFvWVBMYnFz?= =?utf-8?B?bldJRlduZmZWREdMMVZ2VzQ0M1c4OEwxeEd0VGF3NGZydklWcjAzc2hONjkx?= =?utf-8?B?dTk0QWVBSTYwUmNLN2ppSXB3TktZSlJZbE5ydWpveVFveUxoelZPOERWNkpX?= =?utf-8?B?NnMxN3Z3YzhIbW1PY1lUOGM2OVRLR2E1Y0ltUGxBWFpOcStpZjZHNzNNYnFO?= =?utf-8?B?UjlsbEFqRytFZ2g0R1RaUVlLYW5pYW8wTFJ0dVg2WWw0dW1zeVNFeXhzVGZy?= =?utf-8?B?V0V3Vks2dUdkYUozc0JrMHRsWnFZbDIzdm81a3ByNWd4akZRM3E4MlpTWEZi?= =?utf-8?B?QTVacXQvZXoxcGF6MHIrYkZMNDBNMmcvcUhxV3VXTjlVaS80MVhKalhIaW5p?= =?utf-8?B?TzJwdm9qSXppamNkanN3cHIwU3hCQWtudU94Mmg0UDZteGYxSytRNlB4TUlx?= =?utf-8?B?VS9iU08wa3kwak5FcWhBYW1DSUR6ZkF1N2VHZEVqOFhaTEVWVmZsblVpdXQ3?= =?utf-8?B?UGhDVGpmdE5QcERqbDJoUXFBYkNZMHpJQmMvWDFDR3pvUXBGVHlUMXdvZW1V?= =?utf-8?B?NkZPaXJsRnBiWU1RcXVWRVBHMlYwWnhlR09nUXgyejcvOWtlV2V4M2pXYmdU?= =?utf-8?B?WWIzRkYxNHVuVndJNU9FaVZBNVM2QmNSc3RJYmFhK2dWTDUyajMvbmhCVWRY?= =?utf-8?B?VDFoVFJkemZQZ1NqUTNKa1JpdUVBd09TeW9VMHdlVG9GWXJlRTJDS0c2VUdQ?= =?utf-8?B?akVrcFNRc3JCQnVOS0pFZjVvZWhieG9RY0VtUzFqZG9QYmFORzhIVkhjMjYr?= =?utf-8?B?ZXp1U0lFOFRJQkNFUndpc0VWdEhUVldQamErZXBXUi9YcU9mdWxJeVVYamhp?= =?utf-8?B?cituZ0pneUtleGg4Um1BTmZpR2pjZ1JRTEh5Z3BRaHNCeWtlTmxxd1BnSzd3?= =?utf-8?B?Rkppc21TTUIzYWlNeWljWENzN3FGbTZZbjgrOXNCNVNYckNhbjZuVVNFTHgy?= =?utf-8?B?c1BYK1g3QXJNRlhqVkVHNElCajBjRGVoOHN3eGNVc2l2VmhHbE9iQi96U2JY?= =?utf-8?B?VDc2NFNIUW9aclZGbWtaRGp4Q2xPU1VoS0lNRXhQY3pRMzlOT1lGa2dEOVl0?= =?utf-8?B?TVFzWng1aVRJOThBdWF0d244bUErVkRDbzFMd2RBZVVYNkg5Y2p6VUZvdzJn?= =?utf-8?B?YWU0RWJ2ZEptcHBHNkZyd3d5ZGRsdEcrVFVYd3cwZVY1NHcwZDJEQ08vT0l0?= =?utf-8?B?Q1VXWG9ZWlI4eFlIV0RYR04rMWN0aFN5ZXpSQm56OUNXT0luQmhuMU4xbFY0?= =?utf-8?B?V2dkdkdPc2RrV0U3N1kxZTJoTHFEck9uZW1tY2dLUnZRVTF2Q21mZS9XZW1y?= =?utf-8?Q?2vhE=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)(376014)(7416014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:44:56.7984 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 441c9188-30b9-48ca-36d4-08de3e658a7c 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: DB5PEPF00014B8E.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR10MB3725 X-Proofpoint-ORIG-GUID: uEXg-rwSVvEGPjhrvY4a_qUClvJ0VCel X-Authority-Analysis: v=2.4 cv=PuqergM3 c=1 sm=1 tr=0 ts=69444bae cx=c_pps a=o6HjI5Hdp4yHrPjNunzkWg==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A: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-GUID: uEXg-rwSVvEGPjhrvY4a_qUClvJ0VCel X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfX9Y6Imzid99ir 6xyy0fJ40vIhrzuwLeQ7UQ+AK2jVOm43AZT0KZPdGuG1WgQyixCmoROWNihLULHf2g6mfBERzb4 A+oF0QTOLg0bzin2Gs7QWmMc4kxpEP829k7iK8A87lXtLmN7l+jPjVQcg2vrL107ftidCeBdXWi gUKlJpgcQMwLJ0crfh3B835EtGI+QdWsctWFL3SFUvL9zdGLC2HLHAtC4UQJoY/zQX4h+T2xeZX clLBc5fH6A0uwy5yF2D7HGl085wtg/GW1IQbI4QQc57aX1Wlk0T/G/sO2DZB6aMI+uMKHXYPahU vyEeTBuowFHiQPSf/1wEvi/8u2orKBZj34sz9WhRPiwGX+fGSy3Txfl2TqkB4hkFCeW1WiHwCMf uApOkYfQhpSGZVEIak6Orguaq8N7Dw== 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=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 adultscore=0 malwarescore=0 clxscore=1015 phishscore=0 spamscore=0 bulkscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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 1015f2d88f54..06b66095844b 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 03:58:24 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 C8E2930B501; Thu, 18 Dec 2025 18:45:21 +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=1766083526; cv=fail; b=LstyeVfPk3hHaa+LeofhORgGpF7RFRuR6tIuUt8IAB1rZRlP0xjPcrZrLNa5Qlei5+N2jfudb1Rpznz1r4fuBFnszgjXRN0PDtp7PiXRLj/Ymif2oxiN2wzKQb0soeBPcpVeXE22ejzO41r5ywfj7g/8K1bAvrsbFJrqF0IS18M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083526; c=relaxed/simple; bh=s+NxkBxwhT4AevIUoTG9uzQTZP+BE3rjvmKizZBfEV8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=muhxlWhllwYAYOLga/WdD/Ua/+7X1PGcIDYQJta8BdcR+nA54fp49UgktJiw/5RXIn0+6rEEhJ0ZCyN+McbDYilVu/U7icTKlOSApCkoY980mDksGfhI4T9Ps5yiQq7RzFTGvQU9oGiobOdaD9Xdh5vPqLgY0cgJjUTOXpoqRbo= 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=I3euPhxH; 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="I3euPhxH" 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 5BIIQWOA2504132; Thu, 18 Dec 2025 19:45:02 +0100 Received: from am0pr83cu005.outbound.protection.outlook.com (mail-westeuropeazon11010050.outbound.protection.outlook.com [52.101.69.50]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b4esu269n-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:45:02 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ke86cgQsgPU2G/KlBmstcWgI0bm9PVRRoFr5ERVWStbr5VIpS137VEnauCy7D7eMb94y/iFu+w2a5d1TIiCye2s3YLa3uzwCO0nwSLog9vSa2Jz9EMzyeFUx/ScDI/yXyd2bhlM0GrYROHbFXMvjyoJj26Nl/Q9SIRkHZX4okmSFCUIJjqMAvuzFYXNsg7NEF9ieDSzdD/aFgVZySBN0zkncivZgFUESrEcjtSz8elbz24vLNcEf0b+iLvAZyNfNfLjhoQIp9B+f7i4DbSTjlDFf5CEVA8UckcpWf+UbKntLcQ0kLnlkQxcoIQL+MvMDM2UaDnn5bSJ96DAH2dTlVg== 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=muSHh3KI6m9hVwhxmNS6rfIJgipi0u253tGfIeU5H+Y=; b=oRBEvCINIXaNBTde3wJZj3n24jrT/Y0mEanW9Yeuxot5qRz4MirIgE8KtdftSTNB65LNM457VfKvdcYmjyI047E46Fm+cro3KQvqeOEr3WW36z2QJ2taTmdR5bZDjwra/FubX9M9ZBPr5032ssB7wQrkM75QIAuyDE7nT26HsyvrvTB5pQejPaUHPdTRoI5rfis32qzTf7EmoFM+yaR54/fVIjWl8//7Jjj5eYjX/jMeFN3dNGvseblotQAbsnJkozDb37py8lpgLxgWX634NLta3mM/fkKAEKIJm3VnpdfZP97nLDrOpD5cnNTPs2cTuCUEhJjPRdDHE9LU45O9mw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=vger.kernel.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=muSHh3KI6m9hVwhxmNS6rfIJgipi0u253tGfIeU5H+Y=; b=I3euPhxH0/SWlY/6MukXFsKxcgUs3/2bqqB8LRZqsci2lxbdSgdEvQBdER7lwF5stTZLdYZadBx0yeAHFJKilihDozE5CXCZ5rSCOXzogwYIQDV6jD6Jjf5tmmNpGl8BX81z2qMw/O7SGiOwB4cIkN8Ux3Aah9SNYpv957g1N9A/7xszZ1QLyEwszqAn+piU9HdI4AJCVqZgRaK88BxFTm0YZ4gq++ZYe6JOsMXVFIM81S9VYPI0F8pVuPCBk3H9EIAqwKf0wbZheskTDmpFukWNaDxtuwbg74cSTPszn0vgdInXesFCI1+SfChvrvsKsToFpeA+QyehfaLbODrL4g== Received: from DUZPR01CA0062.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c2::15) by DB9PR10MB7995.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:39e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec 2025 18:44:59 +0000 Received: from DB5PEPF00014B8E.eurprd02.prod.outlook.com (2603:10a6:10:3c2:cafe::46) by DUZPR01CA0062.outlook.office365.com (2603:10a6:10:3c2::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.8 via Frontend Transport; Thu, 18 Dec 2025 18:45:23 +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 DB5PEPF00014B8E.mail.protection.outlook.com (10.167.8.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:44:59 +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; Thu, 18 Dec 2025 19:45:46 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:44:57 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:47 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-7-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: DB5PEPF00014B8E:EE_|DB9PR10MB7995:EE_ X-MS-Office365-Filtering-Correlation-Id: 5dd85864-a521-4581-7801-08de3e658bd6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?TFczbkYxV2hYWm5ib2FJWFQ3ODVySHRObHM1RHZkQ056dlJkU0pjd1BvL2tD?= =?utf-8?B?ZUM2UG1uN3Z6RW1SM0hxdHFRd2l4N1RXYk5jM1lvVDZqNjVGYmtmOFZJcC9K?= =?utf-8?B?TFBFSTRzNHg5aDlwUVFhdFBDeEh5UzB2QVBNRzg5anB6Z2psbldoYS91RC9q?= =?utf-8?B?cStYVVQ1bC9Tb3VVT3lCVFhibTBJbkt0cFo4bVZQdCthaGJCeGc5UnZMazEv?= =?utf-8?B?M1JxbGJoajJGcm9yZ2o1SzlHcm1WeDBRbS9RcjlwdmcxZVp2U2t0MENGamRS?= =?utf-8?B?eGh3R0hsbDkyMUZseDBkd3A3c2hkZWhidHlLaEFEUHRJSFZHWW5EdEVqVDE2?= =?utf-8?B?WEVKWmlRbVJ4WFhGYjdTNWVsYXkwTXRkZUZpVUFJREFkd0JhSFNnc1B3MWdn?= =?utf-8?B?ZHQ4Um5JK2QzZG1Zc0pnUzlFVlF4dzNyeCtXWGhndm9lTTQvU3ptalhtcThz?= =?utf-8?B?NWJIeGlxbXkzTFpNZW1UeTdZcS9XbEhrdXAwQzEyaWpFa25hQWlQTG5nUjh1?= =?utf-8?B?R1FWcC9wN3lUV0lHSHlRZE1KZDJFVys5UEVibVBYMGxQWkVSeHBuQzRMaWg4?= =?utf-8?B?TlNTVkNjSjI2QncwUjVkZzgzcmlBaVFSSDVjMzN2SzN3NEVpLzhCTHZxdUJE?= =?utf-8?B?ZU1UZUdROVI1dGYyTkQvMXZCQUU2Wk43RDRVWG41NThkNVQ0ZUE0UmpNQzVv?= =?utf-8?B?YWFDY250RFhBN1BBalBCdFlncUZLS1kzc3p6KzZIM1ZhNVR3cWNZZmtraUl5?= =?utf-8?B?WGpTelFiYzJmWHhBU1pKK0JUajFHY1lEdG41N1VMUkN5bG01WFU1SzZlSnQv?= =?utf-8?B?OS8ySjJIcE11bCtiTTVEOVpybFZyMFBVSGRiNEFZcUE4dmcwTHN0OWdxSDU0?= =?utf-8?B?NDJzUVh1UWlzeEhSQmVDYnhGWUQ3Ri9kSlJaUUVTRGFXYUZRWHNXclkyUkdm?= =?utf-8?B?WFBQRUV3ZnBNZ0lacGcwbUdpQ05CcnY4a0VTcDdIQ1N6SVN0RUZyaVF5bFNV?= =?utf-8?B?cDNyZER3YTlJcVlMcUpFV0JTVFg4UjNPSE5xaWVzMWF0d092N3lpODQ4ZlJB?= =?utf-8?B?bDJ2citBMjB3a04xa3l1VEdra2JqMWNYNEFtbEh0TjRUQkhDY0xyVFN0Uzhn?= =?utf-8?B?ZWUzemZzRXRhYzk3NURrbXRFTGUrcXVrUGh0SmJaRDkwOWxyMTNoUUovdkZi?= =?utf-8?B?NWRhT0tIc1pEMkE2cUo2aFc3ak9EVS9hbURpeC9TY2hiMjBkanJZOW5Wbm5l?= =?utf-8?B?R1pWeVRGZTIwOTczWVVLd0toS292ZlRtZzZCM0FmcjdhaVhiYWNFRXF5TVZm?= =?utf-8?B?Sm0rdTd0ZEhOMXRuNkdjK3c5Rnhla1JZSU5xUEVRUmNMT0k0NEhBNlJpZnFq?= =?utf-8?B?REZRWjdVK1lKTHNjS3J5WG0xSGZ0dkVQSUJSeTVrNno2UzU2YjlkSklsSXNp?= =?utf-8?B?NWhPSXRPZjdEaithRDdyT3NqL1lieEIxM3BwMmswRkw2WXpCSkVRaG9xWVRl?= =?utf-8?B?bFpUU2hvcWxwd0J6NGFmdUZLaUZXL3UwNUg1Q1NrM3dkNVJaQTFQVktsMUZo?= =?utf-8?B?L096b0xhQWV3V2FCcHBXU0xteTBFaHNDMk9RSUNIa0t5TXZlSjhjMXdzeVgv?= =?utf-8?B?dzYwcnFmV2tSSzd3am1zcmQ3azNGQW9lQTQxSXc0Z2U5OVBwanBQeHlucFVw?= =?utf-8?B?VW9HaXBqS1M0MWwwT2JsZ1o2cm5EZ0xuOGJ4b25Jc0pCM2kwNEZweTVpY2hT?= =?utf-8?B?MitjVm5rUDNVZFVwb25kN0pkSkxUbzNXZlR5Qy9jbEZmUFRYQmg0dTVxcGdR?= =?utf-8?B?TXBsS1BTcWt2Mmowa0laZFdFYXR6RjRRZjJJNEd1bFpCOHlTaWN2TlBMcTR2?= =?utf-8?B?Q2tYdDJtSXMvSFRQK3VZSDR3N3l3b2MveGhHQmVUUEZXVTRwQmVYUk5LNExa?= =?utf-8?B?SlR3eitsMW5aQ0JlMTdWVmhHNFhaOXFlOHU4ZnpXTVgwMzRaRUdXTEJCaGpX?= =?utf-8?B?Mi9NRkdkcDJkMnljcVR5U3BiUFZNeGJZQ241QjFYa2hIUVFobW03MnZLeFU2?= =?utf-8?B?TFI2L2dFcVF1dldCblB6ZWdDbEZVOFEyK1ZWTzdiU0lPTzE2SDFVbFlaQytq?= =?utf-8?Q?I00k=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)(376014)(7416014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:44:59.0799 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5dd85864-a521-4581-7801-08de3e658bd6 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: DB5PEPF00014B8E.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR10MB7995 X-Proofpoint-ORIG-GUID: QHK4hNAkEVgc34QA2Qm1aLNkmtixluSK X-Authority-Analysis: v=2.4 cv=EeLFgfmC c=1 sm=1 tr=0 ts=69444bae cx=c_pps a=gXrl5TodGbHmua8ggoz7cw==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=gAtnOOuIUh8xv9oTcPAA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfX3YEtdtVDFjOf LzLk6WkcHGsX/VmXHV4x2VhGHZfIKzqjcwOLWberk2Iw9ET8UNpcOVFXda9aM8LOAmnNmJeouLP H+qWwcWOoz+VSPecp77R4gXLcCSXNj+1b8NfHgItR2vTUT88dlQXSyUgcZJwa3A7Y37SUa1DvVE avxiE8SMnlo15reGE8HIbOjRL2pNeDrSOoHL4SH1+10anYeJo6iaZljX50MrHF3l5fbF7Dx7Q9g bA8RUzFku3nF9SZg1wZ+rLDZjt0Bj5TGCUNOlDZJKmCPwVQu1sQfwUeAZv/CVRGGKjamskV3GEq F8kc54I+BSZ/xKDPCchhT1C0v/qxRKuOnlxkOwm5iVhe86RP435Q3b1agynSsICuRNP50pSePfQ YGEEjwx4LaM7sVKR5isv/dI5Bfx0Jw== X-Proofpoint-GUID: QHK4hNAkEVgc34QA2Qm1aLNkmtixluSK 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=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 priorityscore=1501 clxscore=1015 phishscore=0 adultscore=0 suspectscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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 06b66095844b..25e95ba2ca84 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 03:58:24 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 B4A8A3314A0; Thu, 18 Dec 2025 18:45:36 +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=1766083538; cv=fail; b=tNJoeeEzwx3h14GaiESWDGR9hMn6bA2FQYD5o6cyr089rwNJOAF0NlSWaHJXrvD8zj997nGWOhHM1akSo9QJnXwU78w9s/Tz3HIN9UaiOAf+fo2zuIuwnyHuEqhlTdkuBLeyrkUhlKISLm7E1kI6wLE+k2akVosd6zxd9bbGi2I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083538; c=relaxed/simple; bh=oK1Ytd/X5dURZHQ5ddBLU0FnaHJMXJKZWy8tmi0szuA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=edHNTU5E9ra0g4IehErM9dkax1LAVa8UGGpgncU3s4eLJ9o5mUxvftYV+e1nSd0+m0HJijf4pSutWsp4m/SYHk8l97Bqr40R/TfFiSX7pHOH+S9Rg3W3IGAu/7H85sQDnEM3shkd8GRuPvcSVQasnJjSGSdK/TBIlVOT2mRs2a8= 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=GvQnPFio; 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="GvQnPFio" 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 5BIIhHfs3002715; Thu, 18 Dec 2025 19:45:16 +0100 Received: from gvxpr05cu001.outbound.protection.outlook.com (mail-swedencentralazon11013060.outbound.protection.outlook.com [52.101.83.60]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b3xb75qdr-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:45:16 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OFhtpUy7S/3bMA0g0dXnlWNg63kpbb9hS8DeeDabLmCmNopQ4GDH1RicoXJDDOHwCOZw43xYYWkVSliO4nVcjdsaopZGoQwDU4pIB9JDkOVUtIxbt663uWHqCP10Iyfy5EWxF8CmE6/WU7IRaUGTTKPmYXSBfN+9q0BbHDMNrJiXkuNBSgOFXgn4nh6PCJHeKLeTXV7VVCA8BLSmDb8zCRyEuC95R1Gz9wSnWfxny1uPGM/Y5zajQE6Z/K6bW/HrvBFiXcgruJ1ypUREA9vSz/i25bgx/55KnQkmM9mLp/D6S3czMsMdKQ7XnlmnWD9dnTHLfMYjaeWQVB/PEJ4IKQ== 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=CYO9BMFuAEBEi5Oq48LSgQ5DmAwbDuf1qLeYpoNCa7w=; b=KoFZLFTKaxwYVrj7gdJmElUnR8ZambkVqeGor4j1VgfMpSyd3qX2OlbWq4XPkH6D3CYQw5WW1ZUE1qYtDSKFa4wGmpzBhsWvqi7u/hgubtwEe260K49O86zSdJzhDYDvXjjuIYAdxgAUYV8rUHTBKVy+olmqYsFu5YZmPvT6b5KmwaQL7zP9VVtx/HvuVH1fJlQ/PpgEwiChT13FOZ95nlKCFo+gDPkV3yc2/NTEwlXYS6wlTs+F/fUjekb420VUJrwsiP3XLosgK8XRgzS+VPI5MENYq5D8d6qWY/G8/imzU8uJzCWc2cOv0SjQlf0wWW8O4chnSvexSPXUJkhTNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=vger.kernel.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=CYO9BMFuAEBEi5Oq48LSgQ5DmAwbDuf1qLeYpoNCa7w=; b=GvQnPFiozMspWGVhFjxngTbrku7HB3yO72xUOZKfemUMiOFhNmuIp+FPuEoDLtLOe7yfYooGPGFzzYBsw1LWLnBlEo+1pvE+ZQRDj26DsIx9DiOlmBlnYUMzKmDM1vJdnagPNFlTZUinLjQ1qUu/l6Qs/TSzpP9J8TodaLhJR66NpnPp6ZTBdt0bThZntaiwhntZhFc3oUZVLaVBsYhmhd5faMkAMAfeY5hXncWf1CRXX0YoXUTTTaAVIOJn/kBYNblfQkDP5ze+8gsoaA2YlaM5wYA5Yv0tEzZaeZAG64D3lHMAzTyuqroyUMzb9egxouReo/VjAJtjtlFCB2WfuA== Received: from CWLP265CA0309.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:5d::33) by AS2PR10MB7762.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:64b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec 2025 18:45:02 +0000 Received: from AMS0EPF00000190.eurprd05.prod.outlook.com (2603:10a6:401:5d:cafe::8d) by CWLP265CA0309.outlook.office365.com (2603:10a6:401:5d::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.8 via Frontend Transport; Thu, 18 Dec 2025 18:45:01 +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 AMS0EPF00000190.mail.protection.outlook.com (10.167.16.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:45:01 +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.17; Thu, 18 Dec 2025 19:45:43 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:44:57 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:48 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-8-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: AMS0EPF00000190:EE_|AS2PR10MB7762:EE_ X-MS-Office365-Filtering-Correlation-Id: 63c1f4fb-f06d-487f-cd29-08de3e658d81 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MVd3TWdaSHljeG11cVVKVCtqSnluMGErdm5DZDJkM2dqWTRneTlRaGd3WXdY?= =?utf-8?B?TmVXVnJtaDBkcm5FRGRUdVM5aytZZXpjTTJYelRWNXpid0NaS2IxcEtWTVhw?= =?utf-8?B?eS83WVVtM2FOTW1HQUJ1aVlST2ZsS29mSDJocWtoU2tWY24rMVNqUHBwa3hM?= =?utf-8?B?cHN5R3JDT1NHQUxHQ2pzTXV2akJVWHROaVRDUDdTTk50eHBOZUVtZ1MxMDBh?= =?utf-8?B?YW9LTzR0T2xyb3hROG9MLzYvSnIyUkJOb25QZElsNHF1UHdqNm9Qb2lLcnMx?= =?utf-8?B?cGRrTXpqVzF1SzNnTFRZSHNwaVliRG1UTmtpdzAzTzA5dkloL24vQUY4TWE1?= =?utf-8?B?VXFLc2JLbmpuOWcvcEI4UU9HQVJxeERRYmpXREtyZVo5UUo0NUY2N2lMTnpL?= =?utf-8?B?Z3FtZWg0SDVFbU5nMkFMVVdnVnpaUElMc1VVTmZQRER6TFIybXU5VzYyN0hw?= =?utf-8?B?TWxITm1hS0dxdHc1aGU3NzNZNGoxODU0ajUrajVVakRMYjI5Vm0vNVU3b0p5?= =?utf-8?B?NVBNcjF6NFdma0VNb09hTUZoU2pqUHA1dXUzRnNsUU9HV0kwd3VSUG5ZRXpX?= =?utf-8?B?ZE1zay9tcCtXMU1QL2ZoK0RQQmhPaUhwZXdHR2s4Z3M5Z1NtTVUvVEhqMHM1?= =?utf-8?B?YlJnTW5WZ3laUU5XQnZSQ0JyUEtYVEd4eGl0M3BNSUw0d2NqSktseVZCdVlW?= =?utf-8?B?N2s3OUcxZ056M0E5QXFwaDFQaytRRDRNYnkxcTNCcXZKbDFSUFQyRmVXUXFm?= =?utf-8?B?elpPRDFhZzFxYU5kTXdkbGZ6L3ZPaDkvcks2UXJFTHA2T2RxaGlMQWRFRzZ6?= =?utf-8?B?SVpSbVUvUFZCdUIyaHJtSDZXMFRqSDRUUi9pU0g1NU5mQmZXWGRiZlQzeHYv?= =?utf-8?B?bE9yUWRERlAyeGpVSWpSYmUvaW0zZ2dZVjhYRTc4U2lwcUZEV29LdGFJT2NS?= =?utf-8?B?STNNWnFBSEhOOHdEbGJUVUFvaXFTUnQ2ZFU4MlhndWE2bmhzRGF5RDNmVHd4?= =?utf-8?B?c0xMdWVDODgxeEt4MEFTdFlhWVpudnBXTjg3cEIzVWZMKytJYzJCRFBjb0Nv?= =?utf-8?B?Q002akNtSUFCblIxckJMdVhpbW02UHpIbjQ2Y2tRd3ljSWQ5K0xBNDJSMCs5?= =?utf-8?B?N2tYelk4dGU2U3BNb1J6cDhTUjZQUjFZeEF5eG1vN2s0YkxDZjZYc2NkQnFS?= =?utf-8?B?aHVtOWJONHcvQWpyTEJKdzNQQWtkVFp3RlpTZ0R2QXdodnZYeEJIU1ZPYTRi?= =?utf-8?B?eG5NSElEbm15STRjQ0RYN0xheTZYa2N4WWdMYmpXNkZ6ajlrd2VYd3VxT2xh?= =?utf-8?B?bXlBSHowOXRrUFlUZkhqaFNjeUcwS09tVW5qQmwzeEwvTDFrWStDT1l4cXpU?= =?utf-8?B?Zzk3REk1NjRkODg1aGhnWkU2dDNTcmYraEFqWnV0d3lWTzRzWWVuM0RVd2Nm?= =?utf-8?B?M1RzdDMvZUdONVVWdGEzSitiYnp5NWlON2xKWmJOTFFMeHRkRWdxdHYzNzl0?= =?utf-8?B?azRmMkhxcVpqV2ZZQVR1NERxMGR3N0tiNXd4R2ZtY2NTYUxYUlE2S0dhSDRj?= =?utf-8?B?T1I0bXlSdVNNQW5jVHZrdEU3OTJTSFhySUtjVkJKejA0czl5S2RNQmUxV0Nt?= =?utf-8?B?b3FEZ3hPVjBkdmNEM0xzcDc5S2tuOWl3YlRxeTN2VlNsYmZ2a2NSYWp6TG5Y?= =?utf-8?B?Q3ZkNUxNbzRmL3NFVThaYXJCS0pmOGxieXE3NFBYZTlvc2ZDeDhtcGZOc1lx?= =?utf-8?B?WC9iUVRuS0YzcXZWMTBBUDBCR0huK2x1RUVjTnlVOFRvTXU4QTVxYi90Rm9O?= =?utf-8?B?S09LT2tNeEZXdHVoejVXclhsUW9sR3Q1bUtBUUpiWWZHdkMwbnBTV1hVWTdX?= =?utf-8?B?amkyM2s0YjRnMVV4cDVsWEVnenpUWGU5dXJIcTRNUzdWalExeTR2L2t4L045?= =?utf-8?B?SHpHT1J6YVJiVCtUclFxaHdrSzZIenJsRFpEOHZoT1BmWWNQNWt1UzFQTHZu?= =?utf-8?B?WE9hSUtYZUIrN0tQdVlkdE9ZaHM0STl3TUkrQ1RRUjdaUnpwVHNodnZJeStK?= =?utf-8?B?OFJGVGpzaWprdjV5YmFiZXoxcjBZUklNaXM5cEg1allsTVdlK21TRUVUdzdJ?= =?utf-8?Q?kanc=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)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:45:01.9128 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 63c1f4fb-f06d-487f-cd29-08de3e658d81 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: AMS0EPF00000190.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR10MB7762 X-Proofpoint-GUID: AIaJsCHl95tkrMmJ3HDpxOXv0QNV1AzC X-Proofpoint-ORIG-GUID: AIaJsCHl95tkrMmJ3HDpxOXv0QNV1AzC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfXzaHT1H64qnCV nGNDm3Z2cC4+9NGdJfwJ4PS2nV2OGAjIktuIRr0rQToDTtZ4Iu+6N79O5MGqxqiZCgiw2OVrl4A a/leUwDQBMr69ehH84PPHMLdoWgs83PHhJnO1sRQkPPLdf9/+ve0NFzgMgr0swnXCW2wzn6SH/C f+4KBHE0PTHs1qsmNzaFKmVjpGJoqlA/LsbOc5sP7ScGbkc/jIVfm7Na07dNed1EKHRjo4xgHS7 0tymHOnFGKpR6LULccT4TQEJ7jCAmbuN+tnf7nRxXteU1BLlbSYpW5SpGKg6DRyErH7Hmv/S2Pf o/mn2OvzSgRNytYh35euuiPJVDYD2LA7sEA63h/mVHW6KC1Dql1zSyifQthsYP3P7AAWmvAYcdf CcuFo+TCKNmYfHJfnx4OwEGnTER5Vw== X-Authority-Analysis: v=2.4 cv=NZfrFmD4 c=1 sm=1 tr=0 ts=69444bbc cx=c_pps a=1PHydY8sO1AsXBlMK61GcQ==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=YRgSJkVlcEML8Aj0wVgA: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=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 bulkscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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 25e95ba2ca84..4c0f8ed0f87e 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 03:58:24 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 B6A91309EE6; Thu, 18 Dec 2025 18:45:20 +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=1766083523; cv=fail; b=uUESvEPV8hjVEZTI5OdtqVLQfE7A9AMuQaxa5O2W07ip37ZyElNMOmkCH6/kk0BclK6OklWMSg09XrBrePrNdEk7EF+O6aUAJ4ixmCrk3a2ORTKiYVko2rJfr+09EeZ8Iluu+wc39NbYWty/RYqgcO5qqhNreNlJk8vgIEEmE5E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083523; c=relaxed/simple; bh=uqPfmkQLKbx3D0spxkMuofcXac49IRGd3WJiADzhIVo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=rkaONuzm61H776ZYCPzNFPSF2IAqcEg/ROorDLw8o6sFDIJ/krHjI6hHGyn+ozUspDyvHGyX6BzWPKpYt1n/q0a1FyGyeOoWU3XPRghl6WeOV0cE/lW2NftUvkfUGPodWE0pl61JWD8yIRVziOj4JPN0xbaz/ghOeOimNXR1FRk= 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=ZGecTNh6; 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="ZGecTNh6" 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 5BIIMO2M2497196; Thu, 18 Dec 2025 19:45:03 +0100 Received: from as8pr04cu009.outbound.protection.outlook.com (mail-westeuropeazon11011002.outbound.protection.outlook.com [52.101.70.2]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b4esu269q-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:45:03 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rXEp6C4zvwMu0SiEH8NXuqCpmKnf/EZ2xmM7gy4ob2XKKpDziDte/7aS/zwYxAW85vCzxo5peB/D2b7avhgct8o732w0xJUGD75Vp2bma8Iu/pCRQ9A9nSTujPZuUOwdEyQSOG8VWlGnqkU1CizrJ4zJgS4icXSEewP5Y0wzh48XYZ7y2MawdLNdzm5xbvxqZbMVcpDQhGxrOtB3X3a71i/23055xzkuy96nTMagY8sFXc45CUx1Nvx2aENRwlslm0T/qVNk5a8yBL4nKWh5VToJAkLElBc1opDPonTW5eq68dlGWA1nnvbwWzFHp53MYWdAbg0aLcLjnaFyorD8Kg== 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=nwi+YOxPVrzZ35pWgxwgW0rV7IazagEwHuAo0Xbp2Fk=; b=hjtUvqale1WEMh3P20OmlWOxc88ykguQ9I5XsNcOLMhW0VJHItUClBs4bHtERPbf2B0/NYH9Vbff7LFoJeYaKTrA1gaB+MwirjwpCIhSkDN7DhyaZrdXH/K0dgSsZWKFqh7rD30xWvq56KJAs2RW9oSxVZ/nM6ZiJqNc5dd+d1oF4YbpJa0m71GcgVydT25akLUkG944xxArM0UwhzlAVSqM3zNZxhyWugvesCBePsW5D1zJbsFrL94Kcn41TY49Vo4aGD0TYR255BKUXYHbzVQWDwzf8hyJwpW7rrD8TgV0/PC2/o8JBQsTv0IAFo2scHD6H49vXU2U+dmVjN9tBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=vger.kernel.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=nwi+YOxPVrzZ35pWgxwgW0rV7IazagEwHuAo0Xbp2Fk=; b=ZGecTNh6ndY7qxzMaRwMy6AlbJzbveImLyFQjWnhgZ5pQSAjlRt85oSA6bWfJy267N5+nn1pGCBUXQoC5qTlX/6R8wopkLORMQlMMPgd36vS/ZnxWh8mqEC/sUPMHtXvxSIRtXrTQbwqdJuDZ2XG91UtPD0Eh60tViGIZBxiqpkQkImC/xS8P9WUVYEu8zuiLQpZLaznKWmedMQ/DJtaCpLPGbeDEDiqO/ywO91TAs86yUDVaCJfhDoi5aGhhPEEIZ3qWn/1onkJFFwZtalgViEAvmgrZrVPKTeh9cRSkn0solhfkY0R4zhpjS5E0UkUFvDOPbKrUDZ4kcoOgeuwrg== Received: from DUZPR01CA0063.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c2::13) by PAWPR10MB7652.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:35a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec 2025 18:45:00 +0000 Received: from DB5PEPF00014B8E.eurprd02.prod.outlook.com (2603:10a6:10:3c2:cafe::5e) by DUZPR01CA0063.outlook.office365.com (2603:10a6:10:3c2::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu, 18 Dec 2025 18:45:06 +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 DB5PEPF00014B8E.mail.protection.outlook.com (10.167.8.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:45:00 +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; Thu, 18 Dec 2025 19:45:48 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:44:58 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:49 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-9-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: DB5PEPF00014B8E:EE_|PAWPR10MB7652:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a196484-e39a-4482-1515-08de3e658ca1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?B?TVZ6S3prMjIxOEZ0UG1WWGNPYTg3VTBPMlVKWnlxN0ZqRUpMMmtMQkJwSzMx?= =?utf-8?B?MGpDQzBmNVVLa2l6SlJTMG0rNFJLRDNrTE9ZNXlwNkRaY0R5d2ZiL25sZkJF?= =?utf-8?B?MGQyZ2tSMEJGYzlUc09TSkVvaXFyWDNYalhGZUhRTVRZVGtLbGpXczJZVFpE?= =?utf-8?B?UHJDUFdpL21NNXFSa0RpMjhTRTVSRlN0akhZTzZ5U3JEUVZldFpqVzdaalR6?= =?utf-8?B?ZzBhcm5zV3FpaElVTHBiT0dCR0FYMHFmUnhWMFUzR08rQittcmpibHFlaytK?= =?utf-8?B?Q3ZVOGNLRWVMZ2hxMmJGU3ZpbE1EeGpVYUVBSHpUS0hnUU95L1ljN2JiRHVX?= =?utf-8?B?RUJRWnYwSk03RzJscm9hZTJ1OHZBT2xhK3F2dFV2Q244M3lyb2czUUpnU3Rm?= =?utf-8?B?NElOc1FNK1B3M0o2RmpidVd2MEg2QUxEcnlRUXBqSndMT0hTalpZeHJweXlu?= =?utf-8?B?WTRVamJReFhrb2MrV2lCaHBwNUtPNnRGZ2dPZFZodGRlbEIrMzluZmwzL25o?= =?utf-8?B?dTFPa29tMG5rbU80L2h1c20yWXErbmR3QTVkM01MOXBrbTVmTVBpaUdId2Z0?= =?utf-8?B?ekpISDgrbFVDQ2lIY3pzN2Z5WlIwN0Y5N3ZrSmRkTkV6ZFVvNUh5bUFHNnUz?= =?utf-8?B?WjhLYVFiczJEaVpZcktJNVMveWVCYlF4ZHNreTMyVThCak41WEtMc1drRmtz?= =?utf-8?B?SEJqMkZ3SThwY05yL3JvOEJJVGxaMEdycE9IYUlOQ1pMbC9ucDlkOFBjc2Jl?= =?utf-8?B?MXpIdjcwWk5zVXV1YnA3cUlkV1U3QjMrKzRnVnJYaEthOUh6SUZUaXJjWk1E?= =?utf-8?B?Yms1LzVNNjhaUFJTRXdmYWYzbUs4bEphZzVtLzJocHRTeU9WSEl3TjRYREhF?= =?utf-8?B?UU1oc2dYMTZDU2xOdEJrR3A0TG5xcjEzS1A4UHZaRTVEcEQzZE9lRGJuSTNX?= =?utf-8?B?VHZCdDg5TWI4cm1ET054Z3pKVHRhMXNSdVpzeGJ4S1dxK3pBUFpRL3l1dmVY?= =?utf-8?B?VFJ3bUpRcUxmVU9GVTRtWVVkTlNSNUFlbHI2RlMvNmpuLzRuRFFWQWFrK1pz?= =?utf-8?B?TWhnbThJS2g5WnlaV3lCSEZuc1VobDNmNVl6N2VpL2cvTGtXUWRtbTNyZURV?= =?utf-8?B?SXhwMlVSTk5YMm1XOVV0U1Z1bk5aamt4SU03T1N1L0Yxd3Qzd0xKTWMvK2E3?= =?utf-8?B?LzZWQ2tSYzhaaUZEbzh5b2UxMllOWVR5NTVlN1l3NStXRWtOM1FhaUFJOVRt?= =?utf-8?B?bkJqdUFFdHl0bk5CWmg0c3FIeFpMZ1BpSityVFU3VHIwb3RBOUhoM3FENTF4?= =?utf-8?B?TFF4SDZUN041cjRSRWJZc051L1hJS1pvb0hucDZXUS9kYmJuTURvK1I1VUtD?= =?utf-8?B?UVZMNURGRkc5Z1A1Ym1Od0d0cW5pQkNobWZiT2JWZ005M3R6NVFEYXkxQkta?= =?utf-8?B?T2J3L3ZDRFBSMldSeS93ZUxxOXhaL012eXFzSmE2Z2kzV0FDZUxLak9BVlZD?= =?utf-8?B?NXdJZG01Mlg3VTg2Q29Ecm8xamRQWGQ0UkZSTGdkcXpBdzAzYm9ZN1QrcS8z?= =?utf-8?B?c0gybXVVVjU5UVJ4Q2Y3ZXJZdnN6cWo0VzVKUmZIWWRTVDVQd2Z5TVB5V2J5?= =?utf-8?B?N1hrdXlYQnF3UStJR293QW9uWExCNmtyeGdHbkMxQ3U0UmlDTHJ6YW1mYU9F?= =?utf-8?B?Z2JUZzRFcUNsV05JTlNPZGRRT3lvMXZkYmtrVDN6OFlUOElyNkRVZkNqdGJC?= =?utf-8?B?NFFHZVMzMlBwWVgvcFE0VDFFMFJkbXRXL0o0TDNkWm1aSHpCejJCck8vdXlU?= =?utf-8?B?OCtPTzRyUEhvbDUrLzJvMkNsK0g4cVlnYzRTTnZRM3c5QldYSmtsMzBscFdj?= =?utf-8?B?aXdiV2FZS3RWZS9JWmc3ckxWWGJXZDBlbjM4dEUvRStPWEhkTE9VWXRwT1Iw?= =?utf-8?B?MXQ1MEdzbGt1QU92enZmNmJqVUtpdlFUZ3Nya0U4UldyVFliQmZpT0NyeU10?= =?utf-8?B?Mk9nRHgvWEhIam13dDBHVDZYdFFwcW5tT1g4dEl5cjBxSWhaQjlpSzZpTG02?= =?utf-8?B?eTdkSHdIUkQzVklCVk1aaVNqYkV3bWwyRkZhdTJHMm1Md0dqa1B5SXNaaVpM?= =?utf-8?Q?69mU=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)(376014)(7416014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:45:00.4023 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2a196484-e39a-4482-1515-08de3e658ca1 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: DB5PEPF00014B8E.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR10MB7652 X-Proofpoint-ORIG-GUID: U82Q1AxrxMnuOUkGV-98MfIvLs_SzqYu X-Authority-Analysis: v=2.4 cv=EeLFgfmC c=1 sm=1 tr=0 ts=69444baf cx=c_pps a=lTC8IeES+PzMwLEJ9HO3BQ==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=GURmBasZJxkRD45z7HEA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfXw/pagQwwjvkE 4nnbf/osifnHLJoC/V/ewDLLYdeYN8ZK3QQcguqru/2RVqW05FqqCNiFirEiMQ9yOHtJDrbme6a 8TL/SFvU06O/XAwuRQbUUGvIdPJ51b2WyLUFm1KTW56IHpbd/c/a+hPRqBI5GiuH8vQm3Ws9QeO 0jpEXOiMD2NsZfFF/UGc6UMiaxG524TP5z7ePIXkQ9oZNyGMnnSdj4yEHX2BadOCQxjIb5F1+cQ chBIdKu8rQ/jUZb5WMZavziiwofnTyKTJEIeSuQCekjz/UPYc5ooZ3PEME27WgpL3E82iSn1IGA XIZG0xLJttyOX8cKvpQu4WInPlFfLbjMMJO9EFf6ApBNzc72NfkSxDB3e1KSApeaE/MNf+AN6QU /mNCSn56AubsGRJMj+u7K596BKodPw== X-Proofpoint-GUID: U82Q1AxrxMnuOUkGV-98MfIvLs_SzqYu 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=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 priorityscore=1501 clxscore=1015 phishscore=0 adultscore=0 suspectscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 Add properties update and new sram property necessary in order to enable the DMA-MDMA chaining. Signed-off-by: Alain Volmat --- Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml | 13 ++++++++++= ++- 1 file changed, 12 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..ccaa2d0a2669 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,14 @@ properties: minItems: 1 maxItems: 2 =20 + sram: + $ref: /schemas/types.yaml#/definitions/phandle + description: + phandles to a reserved SRAM region which is used as temporary + storage memory between DMA and MDMA engines. + The region should be defined as child nodes of the AHB SRAM node + as per the generic bindings in Documentation/devicetree/bindings/sra= m/sram.yaml + port: $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false --=20 2.34.1 From nobody Mon Feb 9 03:58:24 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 AC5DB331225; Thu, 18 Dec 2025 18:45:25 +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=1766083529; cv=fail; b=dIN/ISmuEAUTLgfLUhqp5fMG9IefvNRTQEinSJeiOG5qh1cbnCq9DgKHGqFeNehJ4plRfrMRp12abrFwItkuQpOu8ug2fDqVQ48DAcjIZBbS29ErIM/+aoxnwiZChMqIWbwAJZk2LOYSnzx7/hhxNhGil72ATUXkUOE+QpqEkTk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083529; c=relaxed/simple; bh=uELMUwhkfDs4nXGTkCUl4LbbWBv7Y73emzFAe+l6FKM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=UZ9MujLvc3vKuN9YGqveHS4KZM4OKflaLQxvPAQQVteF16BjeIyns8/2XdW90qLUdeGH+xK84oo2U+xD6Px0ZKW2T7lOxold55HMQ22+SGTy+98syrVi9eZcHBv3/cg0Q3RsSO7KRWR/AiX32iL7hUw9CI7/bSM5M5HzR4iFp2U= 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=bXMOSJYT; 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="bXMOSJYT" 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 5BIIgOln2977349; Thu, 18 Dec 2025 19:45:09 +0100 Received: from osppr02cu001.outbound.protection.outlook.com (mail-norwayeastazon11013061.outbound.protection.outlook.com [40.107.159.61]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b4780bqp7-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:45:09 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IxDAK+7fh1cOLd81EGe37fKP/AzjzTxFjd/ZS7OY5zkeX+istcMiXtO5R0+gkdfdf9WAgdTpYrtiTdq0ZvfrNXculShX+hj4kxeYKd55Y8hnbKFZVNF3T4IYB+rGzKnUIDzOq4xDGpwEl8ictlv8gIuyHUmMDiZ8J2C/pR1JXGbXOQsxm3zSL3NHcEViyZPfIR6MlIuZgGUS90IiOaCVnqFc+9FwXXFnfiQ8RDBeJoi+hhEolaBQ2ZsYNiW38ZJZFKFiIGc25xwQtocqnDRl5m3TTLdbY4M5Epd9ZCbaW/mMmv3RExdd+YPfzWALZGqOT/2EBlVrjZy2dFvV4zQZHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=f+UmFbYYN3CxlFK8VsJ+1lfir2OVAP9Ro5yh0yhCoTM=; b=qJ/asqaG1wab+vd4KQrSF9OIdAwRB7WbuNDowikRA+F8scM4V3L9sumfy1oF3k0C1wO1qV3w7sfAt5RjgSeYlPN10XS8tsv87cVRFbiyi7xVcqrO9GdEcalL5WxSKLtCiLHYLNOqEnQSVjO/ncnH3+z/G1oFIP+GJ39TaPmEPcL3c0JHH+54WgU0eV1zZWdsYEJYK15uufmwN+g08ZAPubu8q3Ht6E7vEmdbMmunYsrmIR1VB1JkRWCTtPaU8H0tHT6rLnAZQYRPXkdLjyCydxyvmyVZ9WkNMa+IrwaMEji141cm5+6CUyxUpr5xvU5GnoY8GaK/0Vrar4qZPw1mUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=vger.kernel.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=f+UmFbYYN3CxlFK8VsJ+1lfir2OVAP9Ro5yh0yhCoTM=; b=bXMOSJYT/d2b0HsoWVYr+rdFsng/U0Sui6b4Wtn2OkskHUwpXWc6VUjKFRXQs3Ol8Jc4cTEyUOrLTpCztkfVw797zyH4v8kOnoSFdc2xhFXr0JGewu2TaeK224rfaaEAIozuMqL9G+S79V1a2wgqolg7NfGQzWhNjJNB8TM2fn8TY4TqM3nM6Gl6B+03C0YfqKBaB86r21IjSKfsvCBPWcgvFs1DWMrnwKNwKrOLAhMoKjDC7zM8+s66fEJHyGXkTq6qjxdfqMtgqwrFR2hH2undzTg2yYEro7nSO49NEIuo1/aGIux0yLHLcRWygeC5vvrsAE0/Z+NaE7IHI1/w9Q== Received: from CWLP265CA0299.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:5d::23) by DB9PR10MB7625.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:338::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec 2025 18:45:04 +0000 Received: from AMS0EPF00000190.eurprd05.prod.outlook.com (2603:10a6:401:5d:cafe::f9) by CWLP265CA0299.outlook.office365.com (2603:10a6:401:5d::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu, 18 Dec 2025 18:45:05 +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 AMS0EPF00000190.mail.protection.outlook.com (10.167.16.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:45:04 +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.17; Thu, 18 Dec 2025 19:45:45 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:44:59 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:50 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-10-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: AMS0EPF00000190:EE_|DB9PR10MB7625:EE_ X-MS-Office365-Filtering-Correlation-Id: 8bf97c6e-faca-4521-2d4e-08de3e658f2a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MkpkOG4zcHpTSnRuOG1Jem9LajR3QUZ5Nnd4ZGpnUGFMQ25yK0VUeGZSTDUr?= =?utf-8?B?ZllPc29mT2Y2SkREeklpeVN1RVZuTGdpM0tWRGFiK1R5SzEwVTZZREVUNEd2?= =?utf-8?B?ZGNYWVpBK1BlTkpTMk1GMlhrWTlsUGhHSWRPdVBWdisvN2ZlNm1yRk1EZmp2?= =?utf-8?B?MlpZT29GQzIrNEZrOTNpdXJBbHA0clMweTlOb2U3MS9RVW11NEFLeit4aHRw?= =?utf-8?B?QnJVYzRvVVJWWVFmeVRvSGlCSHB2MTVINHg4aWVCNlM2MDNQYzAyeWdJa2ZU?= =?utf-8?B?UjAvdGZOeXJ6VGJ2SUhFZ29PMTB0azNWUnFIWkhWZ3hnb21vdEZpb0NWb3h1?= =?utf-8?B?M0ZYNGg2Z1I4WUh2V0xzSmVYdkM3N0g1ZE9PZXpORFdRaHVRUE1qS0VJV0da?= =?utf-8?B?TEU0SGRCQmtZMzVreTd5djhNaGk4UUxvTU5MY2tLVDZzY3E5Y2txdnJUb1Z4?= =?utf-8?B?b1NTNFRuak1Ld291WkIxc2QyeXVZNG42Y09XL3d5MUdJVDcxbUczQ0kxOFJ6?= =?utf-8?B?bWlIaXVjOUpGd29vZ0hCTW43WGpBSWtKc2pWQ0pVTzZ4SXl2emdTMk42K0Vj?= =?utf-8?B?YmlXZjNKSHFHOWVNcWk0VEV0cEU2aDNDbWw3ZDRQRXppWE9sZmRvQXgzNWgr?= =?utf-8?B?N3NSbi9rdnJkWnRVb1JsSHFNVTdBN0t4bTUvdjhFazV1UjRrdXluYU5WbkdX?= =?utf-8?B?VDFLVFArQ3FoTEJ3dmtCMkVsNFdYYWtzb1I3U2Npa3N1YVlVZzBFaTFXcS9E?= =?utf-8?B?Z0tRNERsOFArbFUwRWlkdjI1N3Q4bUxSMU5KbVRQUzc5VldYbjRjT09OMGR6?= =?utf-8?B?NThTeDNjRndIdzExMlJxS0hxMHE1eFpqZzhMcitncytPVTZHUitSUTNXOGl6?= =?utf-8?B?a3V5RVpwT3ZBZlNoNXp2aGE0c0NlejJia3BKbzdrbEN1ZWVFUlBET2RNOFNl?= =?utf-8?B?Y2E2eEFGbWRpZWhHYXRuR3ppTXZVL2pwenNZOS92dVN6dFdkMVdhL2c5UVky?= =?utf-8?B?eE9zaHlRdHU4Tld4MURBSEdSbSszaDc1RkhkMDE3WW94UmpHaXdzbnVQQzVT?= =?utf-8?B?NllpTFBFZ29VNkxEM2dzaTBYTXlNRFNodHRGK3M0S1BoT2dDMlN6bGgwVVlh?= =?utf-8?B?bXQwTzFuaTJlbkRMSU9kYnBvdFZkbGNkbmhHNDA0QWFLRGVXVHhYYWhBL3Fh?= =?utf-8?B?MjlWRXd5Ri91bEtNN3BhUlo2TVljYXV2OEdoN05BTlpsRExpQ1lvRUp3SCtV?= =?utf-8?B?V21udFR3ZSs2ZHFiQ2VCUys3SUdGV0svajVOOGFaZTJqdFVGYWMrdUh0bEJ3?= =?utf-8?B?dTRFdEVZc0JHNUx0VktqR005MEYrVnZScmpBdmdmbmQ4R3dLSkJlRmxHK2hx?= =?utf-8?B?amFXMjZlbFREbTJhSDFBeHNtU2czb08vTk8zOEJvZ05uOGoxendrSjdWWnJt?= =?utf-8?B?aXRuVWZ1aEttQUFTQmpzUDltcWFIWGlBT3RmWisxeDVsY0FSNmZOTmJWMXhC?= =?utf-8?B?Y3NtWTdXNkJUYk9zUy8wcUR1YkRGR2RoaitwSnd3dUtycDgyVll5eDZMZ3Jn?= =?utf-8?B?MERWSnR2YldzY1lVZHo2NnJQcXN6N0xpMU05ZzdFZWRiR2toVHRnVjJISkw4?= =?utf-8?B?NHcvU01XYWhERXBVT1pFVG5FbUpoN2J3dUJVSS9yNGJKSDA1TEkveENmdGdJ?= =?utf-8?B?TzdQdGt5aXVDYVM3MlByRkNJa0cwWXZ0MllkaEwyRGdXazJJdVYvd3M4Wlg5?= =?utf-8?B?SGhKV2VOS2o2Y04za1E5Vm1RMlpaSjZBbWVzNXR0Smx0ZFBXQ1pvOFVDa1pU?= =?utf-8?B?WCtaTXNnQnhDdGJ5MFp0S1F3ZlBTcTVIY1ozeEluajE5SVJ3bUtaZFlidEs3?= =?utf-8?B?Y0Jod0lJQllBRlVieVgzcTN2aHg4WkpwZjdURUZzU2QzWjRKdm5FK3dKL3FD?= =?utf-8?B?cTR1SjV0R2hNUFMwTUVLeloxZTFJVW04YXdaTzQxRjQxL3VFZGF6alNYaXVM?= =?utf-8?B?emhRQVlRTkVnVXRNOGMvQjN6L0JETlc1STZnU21HS1pmdTNSb1RaNlVQcUpp?= =?utf-8?B?Q3BRRENlbnhENXJCWWM0Rm5NZTNncVpKWmlVWWsxTXRQaEo2OHhib1BNMTlz?= =?utf-8?Q?HuFo=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)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:45:04.6701 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8bf97c6e-faca-4521-2d4e-08de3e658f2a 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: AMS0EPF00000190.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR10MB7625 X-Proofpoint-ORIG-GUID: RW_rGFsSHQKAhglntLsS1tjoQ4TyD44H X-Authority-Analysis: v=2.4 cv=PuqergM3 c=1 sm=1 tr=0 ts=69444bb5 cx=c_pps a=T8SiPzmgzFXCf1C+o6d1PA==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A: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-GUID: RW_rGFsSHQKAhglntLsS1tjoQ4TyD44H X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfX1UfLTuVv3yOH mEnAMtxlQewnWwYBdcIQido2QAWiJ/vdEhXSkVlLHGIxCIflVse8gthCK/9E6GWIoaqvm7fc+M2 d18AvHMna/kMfOTBQPsr810BqE/pLDB+jUaJ3bERxbkYPPopNF+ih/IrpMCRzA6ft4hBJq9xtzc PyCCBuj3eda+YAvDM5rteDQqV5YeokOm9P70ZlvcuZXV8whkSbCOnEieAsum2rHXV0q3vl6n3EM KJQx3GnLIcQ5/rOCSm3mzPQxPySgeUKJK6C8MKZeLfnYVXGrIAbNLBiqwBrJZjUnfaeV+XpDjBr fUjt3cAHD+gEZ9DqARLeKqU2MjgUB+uiZxq+TbvIBiarU2DaI2p7BR3swtJwqyDQUWbcPkz5X+v 4fPYHZN5SuQ+C4jraLNpdkMzspyMYA== 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=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 adultscore=0 malwarescore=0 clxscore=1015 phishscore=0 spamscore=0 bulkscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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 4c0f8ed0f87e..e4a9f96a989b 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 03:58:24 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 DB0DE313E1E; Thu, 18 Dec 2025 18:45:18 +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=1766083521; cv=fail; b=uO45GZgLDbjR+2m6ZqKYITaOlpMnOrf6L3pA0Y057d/ZXy/ErkReUTQ0ZOj15u//vYToxCEH77AYbf+iDcCkuey7U61pipA0yKlsYsti26DuHylhPTJxmPGb0YCEKbWGMH8vWnVMTG3I8QG2fBAvqfhBNQsBigJzo/rkoH/BNa0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083521; c=relaxed/simple; bh=MQTpjObMekszaWRYPzXywq+rOjCvk2gl8e2lcv/mpPg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=C2rJZX5NHTL6LB9mEoEREMOg8/H4Y4+9LjwSQlWP2eE6CK9tUFT9y8uC10toL3Xn7yiXNNngGVG91G1+Fysg2E7G43DTucyjVAWf68sddwAJmCdNJyuUSnBUwE59ietlXeAaVKIgi/j1ssVKJLdT160tWaef/h7YH30RAAP6Qxk= 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=P8lRchi7; 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="P8lRchi7" 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 5BIIhqgr3422640; Thu, 18 Dec 2025 19:45:05 +0100 Received: from as8pr04cu009.outbound.protection.outlook.com (mail-westeuropeazon11011044.outbound.protection.outlook.com [52.101.70.44]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b4mg6rm8d-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:45:04 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qzbomVPO+DcP1h2stOZMNFYGwtq2//nGN+OcgMLl19laqlM/z+53TJFoJ2zFrxcvMlnLjcWobVNSLOo+6OeqRyVcjwa51ohLn+T3YiS0CE5KeaPtsSeaETPDynrSIz2OuvGUfGClQOG9yT5sR5ZTLpLXlD5K9ckJiayghmWElnG+n5VTwmMtLNa9KPAklaXnBNjIdza5xq1jAvgLeb0pQ9Hx/kQksxg3uwBL7I1zxWw++Qtkm3o50DgPU83iPzCJRJHZxKm0AYiHEV2VTy0jqHD1BZhtr0t9jt/uIqM2Kh1KHB4ZvjSTBToB1Fh9X7DNIixZ9wbTGRGUaZO68sOq9Q== 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=AuMHxrYUbcrORveUcNcQNQT4muHbeCGOSteluotIel1cFE9gnhm3dgPBtlPceH7oNMGIjcdz10/7JQlN4wNrIWa6zsAKviB93MkS6MQSzkwcJSlJH8N11mByKqEk4pFRGoT9plA5bdB8HVKcmuF/P4UCYHRoj0v1lmZ/ygHw+Erq3uFc1hCA8BgX17OfwJRqtTw9ir+eqkUDNjtf0wfTAFJqZzwVrSOrvlXHLToYbj5Qg6IHQKNAneHfKBpMpf2tc2qyYpvC5zuPcnjgTUxJRbugOrHMVDXCOISZg65Bwe22KmH8WVU0DlQ4b/7uiqWUo1Sr6LPJWeEIKTFSb6zFDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=vger.kernel.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=P8lRchi7Wd7ewXR+JnKJNA0Mydk3W80HQs8YPRAtI3M1yZ+VCKs3wFpbgQQZULc7jL1NSKsHl0p14tDbYo2C6ZFiqZBZqUGyg6dcHySut31WfECl15tC5SPs/JTI83Ps03awgVOjzJie6uYpfeCaZtKxcRdBnnNfuUzOwDUKQzSWrEIE90PX++S6U8/24hrha7qDi9l34oEy1DDmz3sKe5nJwH6jcpQvDU9mk+M5LbLp4p22FyZif8Qkqm9gnr3HzsdVHc4qX5ABrrFXR+SrWBHh6HfN1oA+iYZUGSt+FDxg0RzP8MHzJPG7dOg5h4Xf3f2pv94gO/D43JY0RCFAkQ== Received: from DU2PR04CA0063.eurprd04.prod.outlook.com (2603:10a6:10:232::8) by DB4PR10MB7541.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:3ce::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Thu, 18 Dec 2025 18:45:02 +0000 Received: from DB5PEPF00014B8C.eurprd02.prod.outlook.com (2603:10a6:10:232:cafe::cd) 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.9434.7 via Frontend Transport; Thu, 18 Dec 2025 18:44:58 +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 DB5PEPF00014B8C.mail.protection.outlook.com (10.167.8.200) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:45:01 +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; Thu, 18 Dec 2025 19:45:50 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:45:01 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:51 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-11-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: DB5PEPF00014B8C:EE_|DB4PR10MB7541:EE_ X-MS-Office365-Filtering-Correlation-Id: 34c4ee51-cc9f-4219-2b30-08de3e658d8d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RXRGR0RRSU4xdndSdStJQml2cFA5dGJOdUI5TzZiMUhZRHZ3bU1mTFZ1Z3Ay?= =?utf-8?B?N0c4MGVTcWI3SU5FZTlia09GbWE5cDhRa0w2NzJlR1ZtQk5jbmxBY0xpV09z?= =?utf-8?B?akhucTFsYk1XSWpNMDlPbWVFSEhaR25qUkRyTUtrZDVFVXRqZnRMRVF2UjRo?= =?utf-8?B?a1pVRHR6UUdwM2NVa09BWW1zMStaWE9kcEFDQmlVMk9rOHJqOWF0K01MZ0p2?= =?utf-8?B?M2xaL0VCeDN5ZWpkL2hId0Y4NW9NMTk3MENKOFZIN0s4K0dsdGF1WkdJK3oy?= =?utf-8?B?aTI0bVpiL2xXdGExMW94SXk1WklVTVVMR2dzZEQwSEpIY3h4YkM2eGtsRnN4?= =?utf-8?B?VDYxOVBSLzY3VDk5SHNBYmdxdnBMMlVQY1NoU1NoMVJpUStzdnRDVnpjOG9M?= =?utf-8?B?VHlMaUpSTFhxUnFBTkhYN2k2T0FBWi9NdTM5SEhuYjFVS3VwZTdPMGRXcTRn?= =?utf-8?B?eURmNUdpeW1hMXV3eHJldk1DY21BVFd0UVJkajFUcjhWVFdtOEtuTTVBQmw5?= =?utf-8?B?elhFQ2NjQno5WVdtYlZqNDlBblM3OW1pNUJkL2JqQmNnYTFYYUk4THJZSjla?= =?utf-8?B?MWpwVmJ0U051aU1HWXFuY1ova0hiQVhXemJNVi9iZWJLYXRzMWtGdFM5SVVE?= =?utf-8?B?VXh3TEUwcGJsS0lEdGgyZENqMC9xSk9CbFZuYVJSUENkY0MyeWY5eCtWam9z?= =?utf-8?B?aENhdTg3NlkzamhWSHpWK0NLS0hFS2JQTnZZUXd6SytXMEVMOCtkcnphZjIy?= =?utf-8?B?TGxUbytROGpXMTE3cks1THloTDF1QmkzUUhhODdLOWhLc09zdVZDclhtNEts?= =?utf-8?B?RnB6RTZvdWRISGdYUGplRTB0eEtPdDlpWVIvM0tPcXYzazFMMWE4d0sxOGo0?= =?utf-8?B?RUZhNXE5dTE5ejZUWVNVQitvYTdjTVNLME5PeDJkZWtYV2EweUMvMDBmcTl2?= =?utf-8?B?SWkyWi9jSTBSaGY5NDgxZkVIQy9GOUxBU0ltWkdNd2FPYS9qbFduQWNyM2hJ?= =?utf-8?B?T05lZm5JY0U5VFRscHZYR2hiMWQrdnlBS2NpQnEvaEpXZk84cTZLR2l1d3dn?= =?utf-8?B?djZpWFRDTEpsLzRIOWp5R3ZMOVdwMEMzcW96VU82V1ZOTGVjc1FtM2padmJr?= =?utf-8?B?WXJCODVOTEVNdUxYT1pxTFJyNUZjSXVUSGdweG96TGtnTkkyRUR6MUxGU2Zt?= =?utf-8?B?TmZFNUVRNExENUV1L0wzNnQ0VGpZMXZFWWIvTTlmRVhGVDRPY21XOTRXRnJu?= =?utf-8?B?UWl0bkFnZnBGd0RnYkQ2OUJHM2JGczAzV2tyOWs2QnpYU29oTHMxWU9ja0JS?= =?utf-8?B?MGpud1BLUElvV2JyeGttcXNWU1hybjVYWUU4S1hKZTdUZ3dKQ09rQWJCeU1K?= =?utf-8?B?dVVWSVltbEtmOUw5cUZWb1BXdnJOMmZKRHNtUmQ2d0l4TitDRk1TUjFLbm90?= =?utf-8?B?Sm4wallTNkRnK0FhQ1dld1pqRm9SWWJGaDY0UGpPQWdpM0M5aWprNDJ3UDFr?= =?utf-8?B?ZGJkZmR5N2Uzc3d6VlE0b2FzQnZ5RUtpcktaS095eEk5R01pbkJ4NjN6V05k?= =?utf-8?B?TnFYcm5zNWdRVm9idmppcDh1eXZicFpkeFd1VXB1RUh0Z085RUphb0lPQlRY?= =?utf-8?B?bzM2ZnF3UmxlUHNpS1gvWFpIaWFVRkgrZlV4MllOdkY3Zi9DMWFNWHY1ZGdw?= =?utf-8?B?UDJUckNsUno3SFVjSkNnVEI2OGxiMCtSZUROdjJDNmVYTGlhTUxhU1R0OG11?= =?utf-8?B?eFFGSW9nZkhMRHh3U1FLWVA2UHJBblo3MHd1NGlkUEpqWXJJS2t4VmJjNzZv?= =?utf-8?B?UHZMSDVJcnFIYjU5a2tJT1FNV2owYjJFSzQ5dkgwK29xb0M3V2I0WGhuSTVl?= =?utf-8?B?S3NQSnQxWTExS29ac2w5R0pvRytsckVjNnZvckFMcFFNcjA5YllGWG1UbDJy?= =?utf-8?B?TGpSdStyMlV5MmtwdGVyM2J4RzlTMWdPVnROTlJoVGwzekh3R3ZSZ1Y4TDRS?= =?utf-8?B?V3NGcEsySW91TUpLbTBhUVZCT1lnRGQyMlBwSjJ2WnYyNHZWTnJPL2pPSWxq?= =?utf-8?B?bjlUeUIzaEdNZFYrR2pMdmxjS2JYM0lsUEs0SzhtamNRb0c3TmJ1T292WndY?= =?utf-8?Q?ordQ=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)(7416014)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:45:01.9587 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 34c4ee51-cc9f-4219-2b30-08de3e658d8d 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: DB5PEPF00014B8C.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR10MB7541 X-Proofpoint-ORIG-GUID: YIiPB4BMbSEklHdFb2RcbPx02h4gcLdF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfX669JvTW5knBl uIkd4qWP93b+G1pqrkT/tmOYRAl7N4XWHDEchN5cmEWY3EdJ48PaFYGp2STPdlXjoBqA4Ri8FBi 3b2VDmQWHmNaEAByHus2Kc2kUHBwfIZxGQUCGKmDdmhiTWwepHzJRGRtptmq0hF0gURd0gvyWEA KpT4OYi0A8GDSglGctvFfbi/OuZDRbKuOZa8YfepIGKZoflpiE9ZFuv5WaiTw2B7K8dgNjltGgB ClFjS2KrwOIv7nz3Gy7cA/vOYMq1C9FV6FtwFACvP9eS9lj1ufc1o7cqS0nxxxCFTRE4DGisSc2 F5ETouxmLn1yRef8YoZA44vGTl/Iq2reUBVBKyRaVaYpq7YcPTOLXVwCvxg+Xd/YF0dQ8rze1yh 1yO6+QRjFeQ94CBl8D4zUQksBA4tMg== X-Proofpoint-GUID: YIiPB4BMbSEklHdFb2RcbPx02h4gcLdF X-Authority-Analysis: v=2.4 cv=PteergM3 c=1 sm=1 tr=0 ts=69444bb0 cx=c_pps a=JfuMnXBgBKsvokzdHX+w6A==:117 a=d6reE3nDawwanmLcZTMRXA==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A: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-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 bulkscore=0 suspectscore=0 phishscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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 03:58:24 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 402FA273D73; Thu, 18 Dec 2025 18:45:30 +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=1766083533; cv=fail; b=XlSU5+tnUA8a59GTZgZi2Cu4Qt7TTdJU9AZ1ux/i7OWvSVKgyfa3ERDZL3EIHbdXRDqtE2sUnFhsfqJaZ/hwil8kGKOg9hK8wt2miGm4IyUklrd3fs2BhhGnQK3I8+qvO+Z5VUDjA6wturJf4FJw7Q4njmeHfFsVjGiy/0FXxBs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766083533; c=relaxed/simple; bh=3IKId8e4nZB8X7MJIERIOtKYyQ8hcQCq1ps9lpvCfWA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=qCroiV03x0m4UWSIkh2reD+R1cK+h+e5JQ+HQQxzo7soQr2KcesAw6juNOg0fWhhV6CMAA8M9Kw2YaX/37lUIPqGtrhoC5WCYdgxSVAvIQgtYnixwc8754iCbZ2z4DtH+8lhjD7WiqpQ3uAsoS8u1TyFxxdDwGOC2rnu1mR1BUk= 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=jYL3RBU7; 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="jYL3RBU7" 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 5BIHCQix3428017; Thu, 18 Dec 2025 19:45:10 +0100 Received: from osppr02cu001.outbound.protection.outlook.com (mail-norwayeastazon11013062.outbound.protection.outlook.com [40.107.159.62]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 4b4estj6jt-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 18 Dec 2025 19:45:10 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=B+91MYQTmexXXtK34S6sWhSHUYuE99ctarfgjkOJv4CuvrkpaDr8ZK8/vqRoUGhhRbVn1KK9nl4WT5RuJ8WEm3UWeob7yyeVqzOdiFCahMIdEtql1BqX0DkLVnE0Q8Z4+A32rPlmTEhb1UJKVRUurb2LA/wZe+YN1DvfWtHiL9qk/kY9DI2eJ28ozwxhnJJXtzzhpzLg2+eVghMOqm15neidHyc9fdfKWUuzow8TGXRJMpdauvX1/FKUelvSPgyiDMWxiEKG3a95nTb/O5BdRLTsQfClZoWFZx9vdJcBQiCaRSnfXxkC7tjo4+2zXqe7gaPCUPxeyx3RmD/ydYxwZQ== 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=OwGAjFJTCzXDQGoL4wrh8vp4A6cBUR9ug/nXvHAX9m/1HBpe1+I4ZsYlqK/xjtnyUMX8ST9Hf4/7A0+/AfWd0JhULZFEXjCLp3RT/j7KCimZIgqEmjGKVCElZvW0NJLzWr8aBkZIrTFPpmSTyhXro3qnxPhTHUEM1+L4MX3GgvdQj7Bi4M0YDI1PZt3F1JHOGdnYX2Sd6rr5+rdN8EreBMfdAhzrB1CmaS/c10sRtG6KrKfhEHMteeFEb1aEIVmPap2CxhPDOxvsbYUo7RkdhsQyIk+Eo3+YlRkuoQkLy90Qmidr5hoqQp9H0JY6hYTHc91ElNbjyZbzzr6WfHPWCw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=vger.kernel.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=jYL3RBU740WE2DWBzJqbUSe8E65h44+C9d1+Grqt0EYKa9On1WKsFRVUEbSOAQPvnHCz5B7X8TESRQgTn65TCEfwlEGyvQXiKEgB8nEnvayUE1Uk1MEAg0MVEF6KfReG9hWjUxKaGmoXXhR1z4fOiHdsBnrDT876wb6W5g8NvkAzPCX6jjon60HuAfnvEhz5nB2k3q177frt4QjDPcq1sDtwhy23KL9qeMP8nkFdCFvTg4B5RtWkidGbsNX77s2Buq8//bNy+9cQQqhrI85EjngRTO+XlyRtvu7tz2TJKlvKUyivXTyQGOObY1zf9eNlzMWNNFh73SA9JL5iccOV2w== Received: from CWLP265CA0312.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:5d::36) by FRWPR10MB9209.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:d10:19c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec 2025 18:45:06 +0000 Received: from AMS0EPF00000190.eurprd05.prod.outlook.com (2603:10a6:401:5d:cafe::c7) by CWLP265CA0312.outlook.office365.com (2603:10a6:401:5d::36) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu, 18 Dec 2025 18:45:07 +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 AMS0EPF00000190.mail.protection.outlook.com (10.167.16.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 18:45:06 +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.17; Thu, 18 Dec 2025 19:45:48 +0100 Received: from localhost (10.252.25.7) 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; Thu, 18 Dec 2025 19:45:02 +0100 From: Alain Volmat Date: Thu, 18 Dec 2025 19:44:52 +0100 Subject: [PATCH 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: <20251218-stm32-dcmi-dma-chaining-v1-12-39948ca6cbf6@foss.st.com> References: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@foss.st.com> In-Reply-To: <20251218-stm32-dcmi-dma-chaining-v1-0-39948ca6cbf6@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: AMS0EPF00000190:EE_|FRWPR10MB9209:EE_ X-MS-Office365-Filtering-Correlation-Id: 88828358-7ce9-4036-524a-08de3e658ff2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|7416014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?aDZ6ZGxBZFVDVThFRzdGZUFXV2lSdkRpWjRYZUsvcVhmbHpOV3Y1aU9uY0Zr?= =?utf-8?B?STJaZmc5S0N1N2RhTG01WnpkMVJwY1lXK3Q3SHlzL080K3lNalJrVGpJZXls?= =?utf-8?B?SUlPaEZlMzlhQUZzcEg1VTMraVM0R0pKTEI3dXNBdUMxcjhTazRBZ3NEd0Nu?= =?utf-8?B?STk2K2dPb3AzZC84WUVxdGFLd0RqN3FnTjF4emEyU1ZXMVRQVkFRTTEwWFho?= =?utf-8?B?ZTRJa2Vvc1hXblV6aitoL0x0SmM0KytCVXpNWXhOMk1tc2R5YWxHb1YvUlhP?= =?utf-8?B?WEhoank4eCt6bWl1MHJ4MDVnQ2JYeHVXa0wyK2M5eVZsOWk0R29TZFl4SFpX?= =?utf-8?B?SVRhUzU0bVlvR1U0c3ozSUdac0FlYlFuaEdkcm9lUzgvVnVIVkFWRENmUGh6?= =?utf-8?B?YXVKWWxaTE1mS1ZSWGJ4RWM3clpLWXdlVjJTZUI0bWFOTXg1V3kzb1NOSDdW?= =?utf-8?B?bXhHUmtpWDVuTjZpN3ZPVlRTNDNkS3IrdkVuejZjUnU1VXlWZThtd3puK1dZ?= =?utf-8?B?Wi9NaEhGL0FnMThhS1hqcENPWitJbXhSMkl5WHlDUUZ1Q0I1dXVXUkVIRXRF?= =?utf-8?B?MjhZY3AvTTNxblI0WW5SMi9VWWl1QThnZ2FqbmRyT2cxaXRLUWYya1JBYjhJ?= =?utf-8?B?NjhIVGErTnJ3QWpyUlF0eVRMbG9tRnRWVkFaZGEzQjhneGpBSTNKdG5SZS8v?= =?utf-8?B?em4yanZMT1dpLzVQbFZDSXlxeUhobmEzUCtycC94N2ZMaTBMRE1kS1I5R01G?= =?utf-8?B?TmQ5MDVheEVYbzVPT2h3QlpTejBqVjZvTWZBaGlObnRhVlVMb0pnUUMxU2dk?= =?utf-8?B?WWJOaEdOdWFLUWRuRWdkZFk5WjVWbStmMVBqNGd0YjlhNzBXR05xRndkSG56?= =?utf-8?B?Wmpod296REtzWEN0dVVhVEJhMFRJbUlocWNCRnVwN2tRbndxamlqQ29SWnZv?= =?utf-8?B?d3UydEdrdEZLb1Q1WlRVRmJuWXNnclh5SEpPMG43M2lBS21EUk1RTGlUQmVt?= =?utf-8?B?U0J2N3FzUTl3Q0x3WkpaVVc1U2pwODBnTWxBZVQzeUFoYkFWNm1qajZoYXJX?= =?utf-8?B?NytuWDB6Mk5mZ1ZCMmY2QWpYT2xCNjQ3Wk9Tam9FWWVoZzJ3RVNKQytrVHlU?= =?utf-8?B?bUtIUzAwWmlLaFBGNUlZT2RjbXM1QzNKc0FMbXFkVEZtdk5zNGs0TlNJRkg3?= =?utf-8?B?MDc5d0IwQ0EyUUx2bUNuYlBNNWk0bTdtZURMN04rMUdHNkVabWZZYzlvOXB1?= =?utf-8?B?QzlUdEk5RGJlcHRPNy9XTG1DM2NhbVZCbGZXaUZteVRxSHlOaWFXaGhSVlpj?= =?utf-8?B?MWdTT0F0K1B3bDF0SEsvYlRFMmJuK0VpYzVxdWxGWWx5dE0vQndHa3pOaGNP?= =?utf-8?B?SmZrMWpvTmg0RExWY0ZGMkVNcWErQTlyOXJWdExCVTFzSmVjdW85S0xJS2xU?= =?utf-8?B?bFZFOHVuY2hYL1hLRjdEdGNaekJzcUFSbHJYQThZOFRFamtHcGw1ZFVjRU1h?= =?utf-8?B?MHdCTTJuWlh1anltdkZZQUlIRWdWZWpDR3M4MGdHUGRCNE5xS3NNR29HRUpu?= =?utf-8?B?eEQwbXZyZHVwYzA1a3ZQT3kybUpVT1lCWVkwd3lZei9ZVENDSmJVVFZEOEo5?= =?utf-8?B?MTRJUWk5ZGhCVlYzS1I1ZTREY0VKN2ZnVEtDcmM4bzU4Q1hhR1RYTVEvZVpi?= =?utf-8?B?dTdIbk5PQ0ZHY1o0TE9KYzdNV3BDcURMRTNPVFFCczZ5K2o4YWMxVjU2V3ox?= =?utf-8?B?eHRDVFF5Z1lxdlhPV05ZWEc1Tk9Id1k0YXdHVm4xQ2VmcHVuM1M1N2tia0c5?= =?utf-8?B?RlFha1RMTEFjSXV3UDkremVDV1BOTnNBMWFHVDFBU3p5dE12TjRDRUxXcHhT?= =?utf-8?B?MThmN0ZqSFUyaTh3azFmcXN1SHpSbzUxSnlTL1dsZzlGcUE1eTNMVEdrRzhV?= =?utf-8?B?aDZ0elRONVgyREpKMXhXdndlOFgyTkVZN3ZUcCtrTEM1UFVNbXZiVFBjbktQ?= =?utf-8?B?bnR2TTA0elA0aG51eDhpY2JpeDQrR1R4SC93WnRRcVF1b2FRZUk3bW5SN1hQ?= =?utf-8?B?ekJyTTQ0bVZ3dVRvNlhOZXFtY2ZqbURHVFNMZlh1VGdNZmUxbUhBS2lhQU1K?= =?utf-8?Q?u0jM=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)(7416014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2025 18:45:06.0006 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 88828358-7ce9-4036-524a-08de3e658ff2 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: AMS0EPF00000190.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRWPR10MB9209 X-Proofpoint-ORIG-GUID: _GqIcemEZKaduHEhpYUMAPU5z5I2_IF8 X-Proofpoint-GUID: _GqIcemEZKaduHEhpYUMAPU5z5I2_IF8 X-Authority-Analysis: v=2.4 cv=Htp72kTS c=1 sm=1 tr=0 ts=69444bb6 cx=c_pps a=U94nZbzxDQMx9bxMUwdN8w==:117 a=uCuRqK4WZKO1kjFMGfU4lQ==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HjypFGx7bZcA:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=KrXZwBdWH7kA:10 a=VkNPw1HP01LnGYTKEx00:22 a=8b9GpE9nAAAA:8 a=dGxqowV4S9dSpVGn0mIA:9 a=QEXdDO2ut3YA:10 a=T3LWEMljR5ZiDmsYVIUa:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE4MDE1NSBTYWx0ZWRfXx+W8WpvEPNfo LE1KNvoetKt8kd26MzomZwDX3xMz8XSiUqKqQooEzqGgAY8mWkSPPPIp0tVoPsAn97/kg4i+clr aC2GNojPUklUjHyfhN6COlL2pPmkJfq8pSh7emhdkMs+f3Ts9EVnRtLJ3hketU54aHc6CM/ofot Pk8XQCHdbZWQQRB7jWM6wchhrzKht9u9pFL9aeoWZPhGGsGSBkQt7s9CFo+kCL8hQKLSMsYplTh b6S6pirJaNIXaRt2tCyVvii1pfgkUI2VmD7htBx3jwZT0J3uMBNmCKVbi3FKfrPM+sci6kQJxk8 MHK7L9Pds4Sq0v9OIKe4l+t961S38y1jBT3/KpnHGp8SaZD9JAIYMv1TlfUGMdihIuZ1DItdCjB QYCqXxz26qW0NKisDW8YBVTqOiXXcQ== 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=2025-12-18_02,2025-12-17_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 phishscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512180155 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