From nobody Fri Jun 12 13:55:46 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012030.outbound.protection.outlook.com [52.101.53.30]) (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 C69783016F5; Thu, 14 May 2026 16:21:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778775699; cv=fail; b=IvJsom2SNzR0DwrDycwYDhPf5gMv+mj6s8TYaEWU/rGetCPJ9d5srUwl4yC2DmIPDb0bMb2gcUK7zfALAJ6cvdAJV4Np0btq65GIhIS97Yha5NPi8cfCk9DAwYr+n188RrsO72PIGkCNi/O31ydM2TLhQ3qGU/twyBa+r+y/Gvg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778775699; c=relaxed/simple; bh=dYDZ9M8XcE01j2LeKMQOynY/EZpPTERcpe48iKLGbkg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CH4TMCe4252fE8uK/ZmxVaP5oRz8RvmvvuS71tyNr2Y7WuNQ1a9ax7NvMnqJy4iVRG8PSvQX2dqlGKtYAnRMfhQjSe9jNLzlTW3gIR7SQmctkfobFW+BHWntGQYQJosggJrMRqmdnWR9iuVCMnRKuX10F3nFuiacjgg1wO5BrZM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=gjN60ilo; arc=fail smtp.client-ip=52.101.53.30 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="gjN60ilo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CcQcQUMm/FDGhhxJuooEcRZrGXjudt9qIBom/qbCu5KRIXAafYNauqwk4Esr6cyyFqftPy97KiIkxcpmXkMso4+GIpJLqJXDh85RUAaVlLNXvL9S85U0Tr4mMS75vUzWDdkfQoAel1AiUwIiyVWye6a6QzjokPrqcbuNQbSdhIwabxUNp3sbbblJObTF4xQ/dHU3DBGO9DxPNPNz31dSRR7SyXTb+TbB2cErqMKqJrSeeCbDJXTm64smq16NxcoJHz1yOxuI/+GBFq50hEZ/KnwcT5Ks6HRc2rdyCBZ5ep4iwua6Gb4xWEu9rcgjd3vtGX5DV3FRhb6e1EzZcpu5Qg== 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=jh1oD2+ykH7kcALwhihEY//FhU0wQarqHnzOAFPeB7s=; b=X7o3pUFW78rgTQOuVju5sREn73245o0ECqVQF4xitDN8h1A72l4E4v7WM9woPokS5aVLb76ABE9dUrk8FEnk1eJxwwqwt7nfHlJosW3jlrnmkuj7NYYtN1ZuEgnovlLkaH8NUkX9KT2D6MYg3az4yexmWsQaKbWBMzJ5d0RHN+JLxSyCxuqLRmShV8O/pOL/oEoQGcdiZxh0qiiN3ZnZi/IgbCt6+uWq6K7kSBySPT06k4ayLORx4AyTlLHp5z6780Nh0IWPNzGm4CsVnPrGCPK74C3psPzFTwVHotog00MyZesFKMJJ8k/tJsS7JDXo502S9P6xbMT3i8OQWbpvew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jh1oD2+ykH7kcALwhihEY//FhU0wQarqHnzOAFPeB7s=; b=gjN60ilolQLl0eUlIYm3TTsWeKo9N1iiKyGILXU6lxATs156FaHl+YTl4xL83sE1l1xVIO+0Nxk/YpmDDcQf1tEKs4po46cjkJ7XXWOY0qihYytPcIGCP0K1wopc+EgBb5+mwrYnMPhrDYqJ2C1vnN1cmFh9varvH/i5eZ2hSnI= Received: from BN9P223CA0023.NAMP223.PROD.OUTLOOK.COM (2603:10b6:408:10b::28) by DM6PR12MB4387.namprd12.prod.outlook.com (2603:10b6:5:2ac::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May 2026 16:21:33 +0000 Received: from BN1PEPF00006000.namprd05.prod.outlook.com (2603:10b6:408:10b:cafe::11) by BN9P223CA0023.outlook.office365.com (2603:10b6:408:10b::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Thu, 14 May 2026 16:21:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by BN1PEPF00006000.mail.protection.outlook.com (10.167.243.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.13 via Frontend Transport; Thu, 14 May 2026 16:21:32 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Thu, 14 May 2026 11:21:32 -0500 Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 14 May 2026 11:21:31 -0500 Received: from xsjblevinsk51.xilinx.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Thu, 14 May 2026 11:21:30 -0500 From: Ben Levinsky To: , , CC: , , , , , , , , , , , , , , , , Subject: [PATCH v2 1/5] remoteproc: add common wc-ioremap carveout callbacks Date: Thu, 14 May 2026 09:21:25 -0700 Message-ID: <20260514162129.1504162-2-ben.levinsky@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260514162129.1504162-1-ben.levinsky@amd.com> References: <20260514162129.1504162-1-ben.levinsky@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB04.amd.com: ben.levinsky@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF00006000:EE_|DM6PR12MB4387:EE_ X-MS-Office365-Filtering-Correlation-Id: 0f0c7210-ca67-46be-4485-08deb1d4dcd3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|82310400026|1800799024|376014|36860700016|18002099003|56012099003|22082099003|11063799003; X-Microsoft-Antispam-Message-Info: 5StWfwwZ300GB5CUWeeU2PHNpIxBRCZglgtjnESscZtUojviK5X9D2N/dN6tq4lJSf/z3dnn3pIcaRhciCaKOceAmwI3HJh7GV6xHdILYNf4FYFx07YU9nehOrlqceqmhFWr+PA09Me0uwsxmZUFTlInkbLUgMxP3EMcpP0K4CpHEccSB07WOk23vpdIuuTNMLNpC2enpqehkXvUkM41bcH++UymeefA+RG6Hqer7QvcLSYTGUq+TINUx8AkQktNGEQcJj5fZGm6Yk62roPqiHbtiXHT9gTMKTGXxuBiWDqWkkkGtYXpk5RhSxuVJT31tEmprfW9sBdNty1gtmStkwphBGE6f5MJMMSIt9AtvazFPr8K1h7CiN1ws+J3dpiC1G4lNHJgjsfTuY9tty7pa3Y4w6tlIGApBrGU5MwrY4byBeefUWKQt1VevF3mbvclkudhX8q9U3NUk5+m6YE3QFhOKHZDHKRUHAw8gIFEQyhbVAJo8gEUx/3gbUByuYtLQ+7LqP0PMDxxkFXr9+2X0RZk23lsq02exTlGPV7D51mJOUuSI2b4fJDLH7403ec/vStNnotLidVsTqiEOJG4RsDTgnRMaIEcJZjsL//3jhNSQPZqOvsci79EJSqUlmzy/+kkBuFhT6Qu6iKQZJW2f1gGlAyxAfzhXtj/LFQf49JCEpiBlwXiXOIrsbtzhuUQXv3Y9R/qmEqpBMxlYSua03kfwlC+mn17u6t4jDFOT5g= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(82310400026)(1800799024)(376014)(36860700016)(18002099003)(56012099003)(22082099003)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jsf6j40qEBgZdBvDTbeLT5fWqbHcLEOOWOd4oDksEedUxwm5xiQBjWWljdFExcl2eEvrB+q50RQbC68GjzVf1qoXO5Hu3FawAQ+5Wyc8MOIViMd8VHGtiMEmjn4AZQGUILB/7iBJONjp4uZ6Elk+Qpd1NcXO7jMSp4E25X5/ENnzsw3BxEX8abY85Z8h6mQkUDpdIJnLLpe7UpMPE+zLFEiFR09549wG3BI0SNT/tI65dQoO8cqZ7JY1IHqKG+7m1Ug8qUUbRYjB7JURodTeG3pm60Lyj6Skn31JOZMnR9eo/YGFEJwENoDluAtLHwz/q6jVz94Wk094qYSXb/MKlF6aHBgxOXUGt9Nk4L1VRgSA4yksSD7YI8/8izMXZ1paxmvBg7TO2M0OhnWW5zj6m3+klORV5JBDotLzff3RYor9SXcPVniGvknTDrp6ahFn X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 16:21:32.8776 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0f0c7210-ca67-46be-4485-08deb1d4dcd3 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF00006000.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4387 Content-Type: text/plain; charset="utf-8" Several remoteproc drivers open-code the same ioremap_wc() and iounmap() callbacks for carveout mappings. Add subsystem-private helpers in remoteproc_internal.h so those drivers can share the same implementation. Keep this change behavior-neutral. The helper now emits a common error message on ioremap_wc() failure, but leaves mem->is_iomem handling to a follow-on patch so that the behavioral change can be justified separately. Signed-off-by: Ben Levinsky --- drivers/remoteproc/remoteproc_internal.h | 28 +++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/= remoteproc_internal.h index 0a5e15744b1d..f5b34aabed5b 100644 --- a/drivers/remoteproc/remoteproc_internal.h +++ b/drivers/remoteproc/remoteproc_internal.h @@ -12,8 +12,9 @@ #ifndef REMOTEPROC_INTERNAL_H #define REMOTEPROC_INTERNAL_H =20 -#include #include +#include +#include =20 struct rproc; =20 @@ -122,6 +123,31 @@ rproc_find_carveout_by_name(struct rproc *rproc, const= char *name, ...); void rproc_add_rvdev(struct rproc *rproc, struct rproc_vdev *rvdev); void rproc_remove_rvdev(struct rproc_vdev *rvdev); =20 +static inline int rproc_mem_entry_ioremap_wc(struct rproc *rproc, + struct rproc_mem_entry *mem) +{ + void __iomem *va; + + va =3D ioremap_wc(mem->dma, mem->len); + if (!va) { + dev_err(&rproc->dev, "Unable to map memory region: %pa+%zx\n", + &mem->dma, mem->len); + return -ENOMEM; + } + + mem->va =3D (__force void *)va; + + return 0; +} + +static inline int rproc_mem_entry_iounmap(struct rproc *rproc, + struct rproc_mem_entry *mem) +{ + iounmap((__force __iomem void *)mem->va); + + return 0; +} + static inline int rproc_prepare_device(struct rproc *rproc) { if (rproc->ops->prepare) --=20 2.34.1 From nobody Fri Jun 12 13:55:46 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010029.outbound.protection.outlook.com [52.101.61.29]) (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 84D7031E835; Thu, 14 May 2026 16:21:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.29 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778775706; cv=fail; b=CAQnaPt7IyI8iVABfLf1iUXZdVyZoDys67/VlbKTr/FI/6E3AqVHIbLYjJ+amDL7kcIjGOynfIizuuQoATuNNkd95ckGZ8olkpoBSbo2xddc2Y5UYReZnHxWgG8K06oPblo26KagVTYoZd4Pa4V/gWMSHxDv1BWib37itci444k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778775706; c=relaxed/simple; bh=jIEFWV8bQ5xTrRT1hX1ToJdHfD1YxKr+LI7h7Qck49E=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JMp9YzT87peTjaRbDznlpOk1IlZIYBxyu4Ye3qmBq3czILThb8YpK+I0ufP47YIBH+ygvdbysuSlKF/hXHifdtO3QBFx8mZS3xMuUp0bOVbWwxWg2OBpQfqIS54abcSrZCye67rD+K8Lue8OwPTrR9Rjx/EQ35yI/HobU43LfO8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=qWbfUAR1; arc=fail smtp.client-ip=52.101.61.29 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="qWbfUAR1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZABSdCNAdbpkzkQ13lXqCUtfmef+a45x0g0qrGs1ZYftIEKaawwHgwZzmc7tjCZMeeE8j/wpWIBGRCkcO+a6+5cIk4MpCc8QVRFr/F5RI++9gbDLSOydClnMA6HklqnTq0iUxWFmr7UX6xbfOZ1Wyr9T7cMnVAtBiXFGEUImnGXC5DRyKip1Qjirr+acWWGGXLCDAtiSA5Udri9pJLwYED9wH13Kd7PS/CzVlmi7dMRE/MgaWqzOZSd0EFgXXnedy1HPj76qwOJWZXvFhvwpvOkYNqUu60doN6jfoMuOHfDVvOOT2GMAG+7ELV9sJM6yZ3m4s3aEM9KA2DVviO1VXw== 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=cAlaUC+C7TO70Q5/EhBX948/0Dkd+NkfiadMk2VWktA=; b=GpiaAqYjMXi7xZ0sMevirc6+NQksDRAY1WEM1GirpTpPbAmdEOfOqgURE+wuPiv1JycW5SyFQNP5qlQ8OJzKo5ho1+ut/J8GE8AM2ozgSmpK300YYX3NQTux8OpGAGTBu+MXFnzKK4uK41+ZHeD4flehC1CzegtWnhbmyQXZW7CQJRQh5U9ynoZHHNH2EfphYQ2AsEu0Oswa1JRNqIzOLHFve9wX7reQ/zzJrA3nd3D7XQ8ZeeZfAMLmH0YIr7QCxlgV9TiGLDHWGYqyYwoVZybMgfJE0Bfat9WO+4dzhoy5C35ktYwl6qWg1ES4w+D+f2/Q3xK34OClJnbKKWmQkw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cAlaUC+C7TO70Q5/EhBX948/0Dkd+NkfiadMk2VWktA=; b=qWbfUAR1sRRd/Y2x4ntmCLOrSbgmDINzpj87+eie8Zehi6JCylZgAaPoIDAdPudh7SscNIoyVgn46XgToAoOPQv4edRqmGTiB9jcNMAr0Qy3c5mzoPR/T3uEndMtP3wWxlj6I0/BcOPlZnVz9Sm2AbVrj90SZHsHxpx7wbqfGvI= Received: from CH5PR03CA0021.namprd03.prod.outlook.com (2603:10b6:610:1f1::15) by MN0PR12MB6269.namprd12.prod.outlook.com (2603:10b6:208:3c3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.19; Thu, 14 May 2026 16:21:34 +0000 Received: from CH2PEPF0000013D.namprd02.prod.outlook.com (2603:10b6:610:1f1:cafe::1a) by CH5PR03CA0021.outlook.office365.com (2603:10b6:610:1f1::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.13 via Frontend Transport; Thu, 14 May 2026 16:21:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by CH2PEPF0000013D.mail.protection.outlook.com (10.167.244.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.13 via Frontend Transport; Thu, 14 May 2026 16:21:33 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Thu, 14 May 2026 11:21:33 -0500 Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 14 May 2026 11:21:33 -0500 Received: from xsjblevinsk51.xilinx.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Thu, 14 May 2026 11:21:32 -0500 From: Ben Levinsky To: , , CC: , , , , , , , , , , , , , , , , Subject: [PATCH v2 2/5] remoteproc: switch exact-match drivers to wc-ioremap callbacks Date: Thu, 14 May 2026 09:21:26 -0700 Message-ID: <20260514162129.1504162-3-ben.levinsky@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260514162129.1504162-1-ben.levinsky@amd.com> References: <20260514162129.1504162-1-ben.levinsky@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB04.amd.com: ben.levinsky@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013D:EE_|MN0PR12MB6269:EE_ X-MS-Office365-Filtering-Correlation-Id: 235cb102-1fdb-4574-8c74-08deb1d4dd66 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|82310400026|7416014|376014|1800799024|18002099003|22082099003|56012099003|11063799003; X-Microsoft-Antispam-Message-Info: 2fTWhFuJHZMR8Eyzjed/0dAniZaYDIrLYELLg0AMjsGwpUyWvjMbi0vtbn92YkerVpcxteNM+5WRG2nMaKiLHf4qPKQuYUzXvCHrT5cNyBQteWCzS+gHKxihP+JmwPSXP3mdOE94YfEhM0L1pPdWgAlI5j/bev7UPKT4MW9WygLMktQmU20yrgU4U/D78QiSw1erRNu960ORJmGCUwOq6AQ9D0XCh9qfc6GFwat4XUlFcnBMDScCJyBzOAQUr6poaj+nNgl14D67+deeyxpTgQ4Wx65HNR4AMkx02Cd6PV02HGZDu9YhbgReMR8Loe/NLDUfctDrLn7Wk7Xlu6IyqybDK1l6GfM6bE4zwpec3NTtD8fsV7bb3V9+KmiFClz5X9QqVMiYsO+V7nfaKWXz6yffNdksVeMpEcfaMg0ShHCUHT7K/EW3GACm0ARDhs4EWgs1tb762HYlXPoUcywfc30SaoLkbh4e2P3ak+AghjK3EkPD8v84yDqY9YZgN/w1USSuAJv8GRkfvDyw1wSonQ/M8zj3rwgRHCeZKvyp/pGd7B2xH3+qi5MpB7rqgNhAYtW7J8twhmzFVyOQLpJJ6nxXtu4aTCIWSlmCJu/DrNLDApblnCs6LgO8/EZRA9X1L4gutg3YU6KBaUaYuBxrg5ReLG6t3w8syTruvv/ZLOB+cGRvNK/JcddrjSzZIATYd9y7+kSWjpGcyAnPTHCTGJUUQIuYGTio3cypVP8xJZ4= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(7416014)(376014)(1800799024)(18002099003)(22082099003)(56012099003)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tARKXJ3ElxrQXgfEPDtpaw0TubPCtrppVtLnpevGm4I5ZsA2gUf0sS9Oz8SXi0JJM+TLgBlWb4GKqMzFzZrEGjkpEaEbXRUYdcrohKSVkLK4+WJYuO5A/Wm8jHHSgTjEY0WnU1vtthz7cXndSjDlIf9woGqjp5npr7UM5elhm5Q7Hdh3BL6yC9DRTOwmmck9qkna5FPksXwYedxwQJKJ0hsefufTZGlT6JqQN1IpA+JIhxCGZUiCzOsUs66pthekWcTkz1xbQktjReZ5eyVLol0/orknwB0d9aIuITNWqVYlDnZYdLm2csLaoulPW1SRgHMP3Q10uU68HqHITxltUsggHqUn1rXofITUytFA2hjZZYLiyw9NOygPR7Jp26KC0sPp290zb70tEfMe0GkFBgJFiN1c3gQX2pJ0Oa2ZcnfnO9Av6U01VBvU25lAHnfL X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 16:21:33.8323 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 235cb102-1fdb-4574-8c74-08deb1d4dd66 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6269 Content-Type: text/plain; charset="utf-8" Replace the exact-match carveout map and unmap callbacks in the existing remoteproc drivers with the common wc-ioremap helpers. This covers xlnx_r5_remoteproc, rcar_rproc, st_remoteproc, stm32_rproc, imx_rproc, and imx_dsp_rproc. Leave the zynqmp R5 TCM callbacks alone because they also clear the mapped memory and are therefore not exact matches for the shared helpers. Signed-off-by: Ben Levinsky Reviewed-by: Geert Uytterhoeven # renesas --- drivers/remoteproc/imx_dsp_rproc.c | 36 ++++--------------- drivers/remoteproc/imx_rproc.c | 32 ++--------------- drivers/remoteproc/rcar_rproc.c | 33 ++--------------- drivers/remoteproc/st_remoteproc.c | 31 ++-------------- drivers/remoteproc/stm32_rproc.c | 34 ++---------------- drivers/remoteproc/xlnx_r5_remoteproc.c | 47 +++---------------------- 6 files changed, 18 insertions(+), 195 deletions(-) diff --git a/drivers/remoteproc/imx_dsp_rproc.c b/drivers/remoteproc/imx_ds= p_rproc.c index 008741af9f11..2d9f14fbef1d 100644 --- a/drivers/remoteproc/imx_dsp_rproc.c +++ b/drivers/remoteproc/imx_dsp_rproc.c @@ -644,32 +644,6 @@ static void imx_dsp_rproc_free_mbox(struct imx_dsp_rpr= oc *priv) mbox_free_channel(priv->rxdb_ch); } =20 -static int imx_dsp_rproc_mem_alloc(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - struct device *dev =3D rproc->dev.parent; - void *va; - - va =3D ioremap_wc(mem->dma, mem->len); - if (!va) { - dev_err(dev, "Unable to map memory region: %pa+%zx\n", - &mem->dma, mem->len); - return -ENOMEM; - } - - mem->va =3D va; - - return 0; -} - -static int imx_dsp_rproc_mem_release(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - iounmap(mem->va); - - return 0; -} - /** * imx_dsp_rproc_add_carveout() - request mailbox channels * @priv: private data pointer @@ -700,8 +674,10 @@ static int imx_dsp_rproc_add_carveout(struct imx_dsp_r= proc *priv) =20 /* Register memory region */ mem =3D rproc_mem_entry_init(dev, NULL, (dma_addr_t)att->sa, - att->size, da, imx_dsp_rproc_mem_alloc, - imx_dsp_rproc_mem_release, "dsp_mem"); + att->size, da, + rproc_mem_entry_ioremap_wc, + rproc_mem_entry_iounmap, + "dsp_mem"); =20 if (mem) rproc_coredump_add_segment(rproc, da, att->size); @@ -732,8 +708,8 @@ static int imx_dsp_rproc_add_carveout(struct imx_dsp_rp= roc *priv) /* Register memory region */ mem =3D rproc_mem_entry_init(dev, NULL, (dma_addr_t)res.start, resource_size(&res), da, - imx_dsp_rproc_mem_alloc, - imx_dsp_rproc_mem_release, + rproc_mem_entry_ioremap_wc, + rproc_mem_entry_iounmap, "%.*s", strchrnul(res.name, '@') - res.name, res.name); if (!mem) return -ENOMEM; diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 7f54322244ac..6249815b54d8 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -600,35 +600,6 @@ static void *imx_rproc_da_to_va(struct rproc *rproc, u= 64 da, size_t len, bool *i return va; } =20 -static int imx_rproc_mem_alloc(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - struct device *dev =3D rproc->dev.parent; - void *va; - - dev_dbg(dev, "map memory: %p+%zx\n", &mem->dma, mem->len); - va =3D ioremap_wc(mem->dma, mem->len); - if (IS_ERR_OR_NULL(va)) { - dev_err(dev, "Unable to map memory region: %p+%zx\n", - &mem->dma, mem->len); - return -ENOMEM; - } - - /* Update memory entry va */ - mem->va =3D va; - - return 0; -} - -static int imx_rproc_mem_release(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - dev_dbg(rproc->dev.parent, "unmap memory: %pa\n", &mem->dma); - iounmap(mem->va); - - return 0; -} - static int imx_rproc_sm_lmm_prepare(struct rproc *rproc) { struct imx_rproc *priv =3D rproc->priv; @@ -692,7 +663,8 @@ static int imx_rproc_prepare(struct rproc *rproc) /* Register memory region */ mem =3D rproc_mem_entry_init(priv->dev, NULL, (dma_addr_t)res.start, resource_size(&res), da, - imx_rproc_mem_alloc, imx_rproc_mem_release, + rproc_mem_entry_ioremap_wc, + rproc_mem_entry_iounmap, "%.*s", strchrnul(res.name, '@') - res.name, res.name); if (!mem) diff --git a/drivers/remoteproc/rcar_rproc.c b/drivers/remoteproc/rcar_rpro= c.c index 3c25625f966d..e3121fadd292 100644 --- a/drivers/remoteproc/rcar_rproc.c +++ b/drivers/remoteproc/rcar_rproc.c @@ -19,35 +19,6 @@ struct rcar_rproc { struct reset_control *rst; }; =20 -static int rcar_rproc_mem_alloc(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - struct device *dev =3D &rproc->dev; - void *va; - - dev_dbg(dev, "map memory: %pa+%zx\n", &mem->dma, mem->len); - va =3D ioremap_wc(mem->dma, mem->len); - if (!va) { - dev_err(dev, "Unable to map memory region: %pa+%zx\n", - &mem->dma, mem->len); - return -ENOMEM; - } - - /* Update memory entry va */ - mem->va =3D va; - - return 0; -} - -static int rcar_rproc_mem_release(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - dev_dbg(&rproc->dev, "unmap memory: %pa\n", &mem->dma); - iounmap(mem->va); - - return 0; -} - static int rcar_rproc_prepare(struct rproc *rproc) { struct device *dev =3D rproc->dev.parent; @@ -73,8 +44,8 @@ static int rcar_rproc_prepare(struct rproc *rproc) mem =3D rproc_mem_entry_init(dev, NULL, res.start, resource_size(&res), da, - rcar_rproc_mem_alloc, - rcar_rproc_mem_release, + rproc_mem_entry_ioremap_wc, + rproc_mem_entry_iounmap, res.name); =20 if (!mem) diff --git a/drivers/remoteproc/st_remoteproc.c b/drivers/remoteproc/st_rem= oteproc.c index a07edf7217d2..486180cdccb4 100644 --- a/drivers/remoteproc/st_remoteproc.c +++ b/drivers/remoteproc/st_remoteproc.c @@ -88,33 +88,6 @@ static void st_rproc_kick(struct rproc *rproc, int vqid) dev_err(dev, "failed to send message via mbox: %d\n", ret); } =20 -static int st_rproc_mem_alloc(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - struct device *dev =3D rproc->dev.parent; - void *va; - - va =3D ioremap_wc(mem->dma, mem->len); - if (!va) { - dev_err(dev, "Unable to map memory region: %pa+%zx\n", - &mem->dma, mem->len); - return -ENOMEM; - } - - /* Update memory entry va */ - mem->va =3D va; - - return 0; -} - -static int st_rproc_mem_release(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - iounmap(mem->va); - - return 0; -} - static int st_rproc_parse_fw(struct rproc *rproc, const struct firmware *f= w) { struct device *dev =3D rproc->dev.parent; @@ -138,8 +111,8 @@ static int st_rproc_parse_fw(struct rproc *rproc, const= struct firmware *fw) mem =3D rproc_mem_entry_init(dev, NULL, (dma_addr_t)res.start, resource_size(&res), res.start, - st_rproc_mem_alloc, - st_rproc_mem_release, + rproc_mem_entry_ioremap_wc, + rproc_mem_entry_iounmap, "%.*s", strchrnul(res.name, '@') - res.name, res.name); diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rp= roc.c index 632614013dc6..7ac8265b60ac 100644 --- a/drivers/remoteproc/stm32_rproc.c +++ b/drivers/remoteproc/stm32_rproc.c @@ -113,35 +113,6 @@ static int stm32_rproc_pa_to_da(struct rproc *rproc, p= hys_addr_t pa, u64 *da) return -EINVAL; } =20 -static int stm32_rproc_mem_alloc(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - struct device *dev =3D rproc->dev.parent; - void *va; - - dev_dbg(dev, "map memory: %pad+%zx\n", &mem->dma, mem->len); - va =3D (__force void *)ioremap_wc(mem->dma, mem->len); - if (IS_ERR_OR_NULL(va)) { - dev_err(dev, "Unable to map memory region: %pad+0x%zx\n", - &mem->dma, mem->len); - return -ENOMEM; - } - - /* Update memory entry va */ - mem->va =3D va; - - return 0; -} - -static int stm32_rproc_mem_release(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - dev_dbg(rproc->dev.parent, "unmap memory: %pa\n", &mem->dma); - iounmap((__force __iomem void *)mem->va); - - return 0; -} - static int stm32_rproc_of_memory_translations(struct platform_device *pdev, struct stm32_rproc *ddata) { @@ -237,8 +208,8 @@ static int stm32_rproc_prepare(struct rproc *rproc) mem =3D rproc_mem_entry_init(dev, NULL, (dma_addr_t)res.start, resource_size(&res), da, - stm32_rproc_mem_alloc, - stm32_rproc_mem_release, + rproc_mem_entry_ioremap_wc, + rproc_mem_entry_iounmap, "%.*s", strchrnul(res.name, '@') - res.name, res.name); if (mem) @@ -957,4 +928,3 @@ MODULE_DESCRIPTION("STM32 Remote Processor Control Driv= er"); MODULE_AUTHOR("Ludovic Barre "); MODULE_AUTHOR("Fabien Dessenne "); MODULE_LICENSE("GPL v2"); - diff --git a/drivers/remoteproc/xlnx_r5_remoteproc.c b/drivers/remoteproc/x= lnx_r5_remoteproc.c index 45a62cb98072..e5d1903c9636 100644 --- a/drivers/remoteproc/xlnx_r5_remoteproc.c +++ b/drivers/remoteproc/xlnx_r5_remoteproc.c @@ -447,45 +447,6 @@ static int zynqmp_r5_rproc_stop(struct rproc *rproc) return ret; } =20 -/* - * zynqmp_r5_mem_region_map() - * @rproc: single R5 core's corresponding rproc instance - * @mem: mem descriptor to map reserved memory-regions - * - * Callback to map va for memory-region's carveout. - * - * return 0 on success, otherwise non-zero value on failure - */ -static int zynqmp_r5_mem_region_map(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - void __iomem *va; - - va =3D ioremap_wc(mem->dma, mem->len); - if (IS_ERR_OR_NULL(va)) - return -ENOMEM; - - mem->va =3D (void *)va; - - return 0; -} - -/* - * zynqmp_r5_rproc_mem_unmap - * @rproc: single R5 core's corresponding rproc instance - * @mem: mem entry to unmap - * - * Unmap memory-region carveout - * - * return: always returns 0 - */ -static int zynqmp_r5_mem_region_unmap(struct rproc *rproc, - struct rproc_mem_entry *mem) -{ - iounmap((void __iomem *)mem->va); - return 0; -} - /* * add_mem_regions_carveout() * @rproc: single R5 core's corresponding rproc instance @@ -522,8 +483,8 @@ static int add_mem_regions_carveout(struct rproc *rproc) rproc_mem =3D rproc_mem_entry_init(&rproc->dev, NULL, (dma_addr_t)res.start, resource_size(&res), res.start, - zynqmp_r5_mem_region_map, - zynqmp_r5_mem_region_unmap, + rproc_mem_entry_ioremap_wc, + rproc_mem_entry_iounmap, "%.*s", strchrnul(res.name, '@') - res.name, res.name); @@ -560,8 +521,8 @@ static int add_sram_carveouts(struct rproc *rproc) rproc_mem =3D rproc_mem_entry_init(&rproc->dev, NULL, dma_addr, len, da, - zynqmp_r5_mem_region_map, - zynqmp_r5_mem_region_unmap, + rproc_mem_entry_ioremap_wc, + rproc_mem_entry_iounmap, sram->sram_res.name); if (!rproc_mem) { dev_err(&rproc->dev, "failed to add sram %s da=3D0x%x, size=3D0x%lx", --=20 2.34.1 From nobody Fri Jun 12 13:55:46 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011033.outbound.protection.outlook.com [52.101.52.33]) (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 0510F33C188; Thu, 14 May 2026 16:21:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.33 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778775702; cv=fail; b=A00A6H2SD4U2dXEvbMAJIPTJShGMSPfI6Bf8TJSmkWL09gOiUEu5FDJJpjWe5mKtVj0e0fAf0YBo+76iMkd4SZ9WAAbAzNlHHF4hYxPiE/6CEfsO717UfLhfJnggcQac/D0IrGVMXb71eqLyNS9IcrkyD/YHYABexk7ToKWGLSw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778775702; c=relaxed/simple; bh=1Uun5i0C+m1EfZXdqCUF8ArVaobtVseXbdhrhXic+Jw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AA8+x6P7or7z6w5rQtW7OlnWOT5Cp8eUtBH0LD/7sFlhjFt1SGu8kAtio2+fxQdJKvcsYQSnZwG4VpZP+5c7+JUa3Z8i4aI6nnkswhKfZURkh2Qi81BBJEat0pQPt+D3N1jgAHx7nDZAkmeo2jAv/L604czKjJFJHBX4cKGNrHs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=SZCQnMRh; arc=fail smtp.client-ip=52.101.52.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="SZCQnMRh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Uvb9NkY09fgT1nkcNlBuHXRBJvfwRRQ3l4eFaQrUq2ReH2ukUzG5Zwk4+Q49/yvBHhChl8YdCacSrFff334hEfWZO2k6U7hV7RgobClYaR4BQG2szU5aD0f2lX6sBqgMN6P09682j1NZIfPCuIej/6yY5VQKpykSZmzfkgqfiVbAC+yyZQlbS92ZqNOkdAj0VGmQfo1TBfE5phqjOZiVT2SOW8RipOanwkJyNCZx9WXW2IlAjmgRMwkR65d+aSKRGaJ3XldkU2Rfvl9bfyTLdvOdO7O7OQhUIFbcbQs9l9NmAgDr/k3ZNrE1poE8gzLQpNcejTDNJu2kwnXlAMcG7A== 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=+BaHCEaVR3rbn4h2Q4Xznk5aogu+104Y4m6f1awiSTs=; b=EFb8wbQ5P59gFM29Eq8NG0+YW0Idv4PKII1U11DytfunMj1LTaD7TRiNurZLphbgZ9U+wUqWSq3Infx0+LFkR1fS1LRMu4cEeQ+hs/nVTSL4pTfpWZg9vSt2COrNtCMM6b8CDLd7b2kBke5OUuicvH/Ofp6eWdohem2a3eEWg3nvPc/aglxF2ltoXExyiLhmFHj85HXTqjkeSN9rwE10ELhRtP/go9W5oECosVau7VYcuRNle3yVRRzBrbycsn++L2mdvndKvtJQFMtUz/9iiFdxz4lD5XllACSDd5iNVgN6YOajbPezOnPMbOEOvHRypuGX4mlIt01EcAcHqociig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+BaHCEaVR3rbn4h2Q4Xznk5aogu+104Y4m6f1awiSTs=; b=SZCQnMRhp9qD9hCS/G1rPf8H9BKq9maDlXBPf/5VElYcN3FFSry/6UhdUCXk2Bn5cV4Hg0T/tlrJGSnNr0xgZ1p0PGoht+Z6L410wgUNirJO3J6vGzHllrWmzXqkbFX/WbEFLJRbz6/N1LYvG1Evqyg3QXn52K24he5bo+tAvSU= Received: from BN0PR02CA0013.namprd02.prod.outlook.com (2603:10b6:408:e4::18) by IA1PR12MB8357.namprd12.prod.outlook.com (2603:10b6:208:3ff::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Thu, 14 May 2026 16:21:35 +0000 Received: from BN1PEPF00006003.namprd05.prod.outlook.com (2603:10b6:408:e4:cafe::2e) by BN0PR02CA0013.outlook.office365.com (2603:10b6:408:e4::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.19 via Frontend Transport; Thu, 14 May 2026 16:21:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by BN1PEPF00006003.mail.protection.outlook.com (10.167.243.235) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.13 via Frontend Transport; Thu, 14 May 2026 16:21:35 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Thu, 14 May 2026 11:21:34 -0500 Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 14 May 2026 11:21:34 -0500 Received: from xsjblevinsk51.xilinx.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Thu, 14 May 2026 11:21:33 -0500 From: Ben Levinsky To: , , CC: , , , , , , , , , , , , , , , , Subject: [PATCH v2 3/5] remoteproc: mark wc-ioremap carveouts as iomem Date: Thu, 14 May 2026 09:21:27 -0700 Message-ID: <20260514162129.1504162-4-ben.levinsky@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260514162129.1504162-1-ben.levinsky@amd.com> References: <20260514162129.1504162-1-ben.levinsky@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB04.amd.com: ben.levinsky@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF00006003:EE_|IA1PR12MB8357:EE_ X-MS-Office365-Filtering-Correlation-Id: e7bb4dc7-704c-4839-c33c-08deb1d4de1a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|7416014|18002099003|22082099003|56012099003|11063799003; X-Microsoft-Antispam-Message-Info: 6CU6vVAhYR/rwrIzIXWTaN1j27XlOeq2JcaeIUphWKiWICmTu3we6c/eqQfyZ4N3JX6EKloHY/dgk7U7wooBITc1yHmk2Qdi/P5kcbicMWScJB7wEQPyoDLqyfqvyYkmySq10WIjQaBpsLGVGJXABIovPlhyuxWhhqm+YZHKT27NpkpqMn0GEHFRIiCyJPGOpgydAPHIM55KGa304yW/yi2gTKLdAD1SLPdPFaAYZAR9Cy2ZAJXsRI/ybAHmOtgrmYMRfqRLvaRBq634Lr1+fPxlW5rstjm0CHIUdVcOV++72JEkNKc1YxHhh604NYlJhOneFocA5YiT3ftG4a+fvlokFsiYoc3IiZ61rmTWBhKnwXAYWxww090iLhR6hnINpOv/9AkBVcjVXvs7BXrZlqp+YEQ343zZlq4G34cSZJs8tlSfXqSJk+YXRnZ96Nwjltrnx58lHsA6gi0ebX6qSSAOJ7eUYviVPDqeho9mFa8lC4dvh6f+fLz3UG9FYf4t3xSz6b07DeoaumqL2BAYmA8YwFSpyy5IBrpOYNdMDpYH0hZEedPc+WVfNatT1ZcvMW6arozOgpjPISYMKCSlzwiw3asFzA00NlyY3Ij9MdqpHTCPJ6Sv6SQ5wsknEKv9X9RDXq17nfRZnu5rC2V2QWo+AfvCwv2DjjteypHYZdY9chPtqzWMw+6fvTCdX/OOoTdbkqQRi+7lJ95Yts4Dv7lPpE/vO/hcK/hdHOAJ9WU= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(7416014)(18002099003)(22082099003)(56012099003)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JJXTMFJ1pJsckgXxMTt2El6BCKu8mySqoJIE+4HAgkJWNh97UTm02NalJyUEsyt9FNOCubYnU2WLWLGwNgfH53vpKNvS1ee1SNlOwOchd/Robco6yG7OT62yA8KgmN216lddNNhL2CXsPkktooIjmuVx/DexRTGMcKS21Xkigb3uOaPLGgOqhuCnm5u1cDfiOfqw6aKdKXdXSllLZ8ZU+SLiMbeDkf2KOC8FQW6LmndzP7ulPisWq+rKP2x/wbfLoU9b++i6P8Ebon/Fc0TGtzjd9srq5YvbDWdjK0KPYZ3q1xjPfohnDtVVOj2tD0hrg8LY43k/E6UI6gugq/yv2Bs67yv7Fpk/skO2nb63McIU9UBimgP5t/JaZG2+FcC9as5/VFju7V6yA0Zf+dSR7WZRNf5RMqVAGuaLEYeJP45utS3A9oFZ+JzW1l0Damcg X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 16:21:35.0179 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e7bb4dc7-704c-4839-c33c-08deb1d4de1a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF00006003.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8357 Content-Type: text/plain; charset="utf-8" Carveouts registered through the shared wc-ioremap helper are backed by I/O memory, but rproc_da_to_va() only reports that to its callers when mem->is_iomem is set on the carveout. Without that flag, the remoteproc ELF loader and coredump paths can fall back to normal memcpy()/memset() accessors instead of the I/O helpers used for iomapped memory. Mark shared wc-ioremap carveouts as iomem so the framework uses the proper memcpy_toio(), memset_io(), and memcpy_fromio() accessors for these regions. Signed-off-by: Ben Levinsky --- drivers/remoteproc/remoteproc_internal.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/= remoteproc_internal.h index f5b34aabed5b..9955e512f073 100644 --- a/drivers/remoteproc/remoteproc_internal.h +++ b/drivers/remoteproc/remoteproc_internal.h @@ -136,6 +136,7 @@ static inline int rproc_mem_entry_ioremap_wc(struct rpr= oc *rproc, } =20 mem->va =3D (__force void *)va; + mem->is_iomem =3D true; =20 return 0; } --=20 2.34.1 From nobody Fri Jun 12 13:55:46 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010019.outbound.protection.outlook.com [52.101.193.19]) (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 C273D33F378; Thu, 14 May 2026 16:21:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778775705; cv=fail; b=fP+9HUvDGyY9RFlo74Jf5smUg9aVPeZAB2VTUZtQJ/l3GNv8d2FCHXsLexvUO+i+TVIGolDyKBQXf1dOgOTX++5ZUsBIzgbggUJ1tWIAygKlNYd0HCpeYhPMFKY4sEr6HhZdGXZHQG1jSO8SCqW0iDPDyaD00wivhvgrqVY2AOw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778775705; c=relaxed/simple; bh=nCK9XHOAhEArGPnEpLKbMqJQG3XWPyb42PMxFXLoYOw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pwJiyMsECbQLWYYuDbXq/geE0kXM35qvPYIXTxP99KhDeE/QkRUEhzA2IBaRv222qrd0fZo76GXP54jG/J2CmCFCsCDtPnd6Lrk7uwYKrMVM3rE5CBATxnZHNfctC3O5AEdSpV410YUWyWFcMQ+i56u3BnWmseaaKe1V5iB10fk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=IW7Dvx5D; arc=fail smtp.client-ip=52.101.193.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="IW7Dvx5D" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=B9HYphc26nKgm8bsLNR3w+ZgNiYPv9abXEWoUW6IHFI+bZiwOioCEPft5+V5M9IvccQV81+zS4GeZPWjpkMrPLfmJm7GHoJzGwW3IomBVdTYlHAzglJzCmlji/x1aHxYMAdL72C4CWOfHNdlEm8Pep+eUSdb7kkhICES+t6XQgBgGYSCTUSOODeiMTpVwYXheSandWZuaZM9ke6u2sjEvVbpYfvdJYjXCqzSkuvBKAtahzg6INLhIIhN9xPyWR0l9FebviVyX+roWL/DXUKU8BzwvFagmSHTZPv+bsIoW8kbkeu8QYzJWpCPrzszgix/IfIVHDdABMeQmN5i/yo8Ag== 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=gGlAdHN3po/lNXsgP53RPBEk/N60pGPyWPruKCyHYa0=; b=EGEIrxQs1V3wV1uwAoOU9VFS1KPKYvlyXmW914lAHJrNIZI+J573xy0eL11FrXXMWlW+xS4wl2kuT0TyV9Tip8nk/NadZ8ta2iclWgzTvkN0PGk4pat/M1wSRrnfk0giP9Bn9EjW+RKGu+a5ZvAgdWapOI2KBtdqK22iPx22zAOHeYrIr4wHUC6u9QJkD//BGGxgG8cwVJ481ymL+/w7PoPRVZEc8ffUF57huqR+GRcPrUTL3i7/6MKQI74tm4ROmTUE9b/pxc3Jjl2SdpEyUn0VHUw1QMs0CeOmb+vrrwBgiWzx7QFD3ZkvPOmLh/JQFz4QGN/RUIpRs2B2kPmsTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gGlAdHN3po/lNXsgP53RPBEk/N60pGPyWPruKCyHYa0=; b=IW7Dvx5DiNoekyoSYX+LKiStkhasrva8FMo9jH/0b3oViAwKrzudMw5rAPOdv1+j+tpOHpQOgWkrGz436zjjP53IkZ9Dv6HGhBDqNS06ayA4RnDdhxjOuhbvOIuM6dYDg25FVj0N632gXQ+82L7RMeIdLQ6rcWgm3P9y0L53OV8= Received: from BL1PR13CA0370.namprd13.prod.outlook.com (2603:10b6:208:2c0::15) by DS7PR12MB8369.namprd12.prod.outlook.com (2603:10b6:8:eb::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Thu, 14 May 2026 16:21:36 +0000 Received: from BN1PEPF00006002.namprd05.prod.outlook.com (2603:10b6:208:2c0:cafe::2a) by BL1PR13CA0370.outlook.office365.com (2603:10b6:208:2c0::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.16 via Frontend Transport; Thu, 14 May 2026 16:21:36 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by BN1PEPF00006002.mail.protection.outlook.com (10.167.243.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.13 via Frontend Transport; Thu, 14 May 2026 16:21:36 +0000 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Thu, 14 May 2026 11:21:35 -0500 Received: from xsjblevinsk51.xilinx.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Thu, 14 May 2026 11:21:34 -0500 From: Ben Levinsky To: , , CC: , , , , , , , , , , , , , , , , Subject: [PATCH v2 4/5] remoteproc: add helper for optional ELF resource tables Date: Thu, 14 May 2026 09:21:28 -0700 Message-ID: <20260514162129.1504162-5-ben.levinsky@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260514162129.1504162-1-ben.levinsky@amd.com> References: <20260514162129.1504162-1-ben.levinsky@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF00006002:EE_|DS7PR12MB8369:EE_ X-MS-Office365-Filtering-Correlation-Id: a5685b77-166f-437a-3629-08deb1d4dec0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|82310400026|7416014|376014|1800799024|18002099003|22082099003|56012099003|11063799003; X-Microsoft-Antispam-Message-Info: 5FWXrJifKcoh614oVYX5KaG7pOkqIFIvOED7natZ35A/5V4SDx8H2X5ado27WQb2jIW45AHaXuDpWia6t+GewwiYDwiVLPqqayrbt9TJIW4V4IAik5tZxYy0tFfZ6PNdTOCjVHd7z4dBF72rn6nIUkcO5vs2wTCAwLtJw29SvekwmmqEYVqcQr2hNltPf3Gxes81wFKARt8X+4rLqAEcTIhtpUKJ6g7R91mYziYYhd9YsvtwcDP5tzZhS+mvhpOYO+g2P4W9jtZIImv1L3gvdIJuTwrYH4TDdaeilqIbft/Qx/BNpCBtxUZz6S73/HUeb29h5p46pkUigHhFYz7mT27JvdSpt9dhQhWlOquLtSdiXav6PiEdBXMvwiFMYtLdF2VSiQ+FvmHSUhUm/+CkAdgodiPwZOHLZMsOlyFW2O53foi/4pFcHcoeLsIqAv8ySs1ZY6MvYEMKoEbmXZNP9jUpWKi/is+a3klCAxbywHuJ85PCe63wC6gRVBC43Ei641mZNep+MR/Fpvs9DltN2guRQUB5xZk8cAhniMPKMcKO6vYNXyXeOWDv2LYsL0c/+qhXXn7b8tBnwXB4H0p1TmjWk1elmCp2JEZhKfpEq7nPjtYrHGijc9HWB8lLODMZu17/VrTTkLCeeRn/Ujll5RktDeReoFcZYWQ1yQ+1sK1GrW9Zlo85uNvvrVQllMrSPtT2oHV/y2+hlA1S6+O/WbHCkMjIs4k+4GvgRlMYspE= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(7416014)(376014)(1800799024)(18002099003)(22082099003)(56012099003)(11063799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: kf1wi/+F+JV914SVV1r6LsKt13xJazdMmzoWPPUnVGGkqzRR8RwhnsKlc6luwyYN7Pnv+WAvtesdVV1t9G9cgn6VMrxOWHdYumaJKPdubpSwAtP8zkI3K4wIbXLDVPFFoj7YGR9+wS9uvsf+wuCKuEsDBqkELqQeOoRP7WmS+6zgK1EzbDQNgfOz4EW1ZbXpBKqLYxvEVexBxYnLnh+BJM71WrCOZnJ+alpjMFoGsiNjOib5zZenfzTUzxmIsJogEVFh0fj5g9HhrVmGZlwKGMmgqgQtmvsy8YEixklsfC2YdoYNnBO2YEIgSlja7/wQhh/GtdOwGRZxi2+WX7DEuAkl+UG99d9gxo+wX1qyvheW7Tc0+OLst4puyi/bcqwsALlOViHeFDFK4Ei/ecb42LKGC7rwxQOroRMLeZ/5leRDsd8WSC8cVhAgp3BpeJ63 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 16:21:36.1083 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a5685b77-166f-437a-3629-08deb1d4dec0 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF00006002.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8369 Content-Type: text/plain; charset="utf-8" Add a small helper around rproc_elf_load_rsc_table() for remoteproc drivers that treat a missing ELF resource table as optional. The helper returns success on -EINVAL and propagates other failures unchanged. Keep logging policy out of the helper so platform drivers can decide whether a missing resource table should be reported and at what log level. Signed-off-by: Ben Levinsky --- drivers/remoteproc/remoteproc_internal.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/= remoteproc_internal.h index 9955e512f073..565b35256945 100644 --- a/drivers/remoteproc/remoteproc_internal.h +++ b/drivers/remoteproc/remoteproc_internal.h @@ -149,6 +149,15 @@ static inline int rproc_mem_entry_iounmap(struct rproc= *rproc, return 0; } =20 +static inline int rproc_elf_load_rsc_table_optional(struct rproc *rproc, + const struct firmware *fw) +{ + int ret; + + ret =3D rproc_elf_load_rsc_table(rproc, fw); + return ret =3D=3D -EINVAL ? 0 : ret; +} + static inline int rproc_prepare_device(struct rproc *rproc) { if (rproc->ops->prepare) --=20 2.34.1 From nobody Fri Jun 12 13:55:46 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011001.outbound.protection.outlook.com [52.101.62.1]) (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 5B16933E355; Thu, 14 May 2026 16:21:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.1 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778775705; cv=fail; b=m8LgcYGgnteaB94sGrIaSuCiA1yg1LIz2TD+PvFLlFafOUWUgOFtz0cecznMEtQK7pqfHM9ZtLczcviRDv0HaOnSl1Ofx2U4E7ZJDuqoAblWEL1Cjyar/RcVAuUnCA5YfYoBtgmTEmjKGxGWKX+K6wZZx9Hb/naNqnTxfHiNPVs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778775705; c=relaxed/simple; bh=xNezMV4zF207vpndtiDyJgx5BPWri2Cmh1TGs2Wh6b4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UYQCIUrNAV2xQ/WwOXXggTPdDWGC5lVui+rmttNjE59NM49RZNvl7SNh87lTdXFVIgKQsRLYC0tZp93jUl41voF7bixRD5APe/4hS2WBZo513XBBqEKMstsbBkfmWOBINh10P63z5UIfE6Q9hRYMAagfIZwsbbXpbAO02yUIkOc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=lA6nWlnR; arc=fail smtp.client-ip=52.101.62.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="lA6nWlnR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SWjCdrEnFjkdlZzKMVimyYA/ZJK1M2mteHNwjfhhQXwEwANojWRbOTH/cak9w6X1RAHgZvdZ5mycwFmZxtpexL6bwkFM1av70IntCcDJxm98gDip5mOKWDWBoT3h68s7I4z590oV4EXNavWaHwNmxofl06C6mJL2oNHRVppd1RRBb0fniWiQvNRTOAHF0F5SrjNCz9zNwAtqiaK4J+frw26h/4UnaIMROubpw9Y/FsWvJTnqhJ1hszjxI2t4Kl3kIVtM5Dv/mBGU73vmJNAknR/F657Yk8OCm7NgLcf4hQeunO3pSo6OihQRRdgpvy0lvZIUGgEkXQpKjZGE3xppCA== 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=MsNqc4AecoOaUFL6Z91tZwjtZrzHyfnWRGcLNeO+X20=; b=wd3SAkzVqfE4UfulqcYeI3FH2Epwk65QXVfvF+jSoNOtHOfRF/Bor3Zc2mUMLqfDNilk9OwvBRaDeUPWMngyqH1n7xEV0WM5BzWEXSNOHOGwod/ge9vzEi38lgAAtnTjr6dZSj27C2tX4ZOZTaqD2wmeRK0/NW4VZBs4gWPx240bAmdOT52bFphD/bXb33fAMvvGnOm3xHnHVKqtGLlpcq9I0t1Qyjs/HZdPrl2rYonk8KEPmPY6op4iulowTBfvfAEIZlQdvCZJCfw240n7nTFsCVg+MTysGBDKYGhNUOp03sHEQsRO0705PyA2pfWMN7TUns75blpFSeNjod1V0Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MsNqc4AecoOaUFL6Z91tZwjtZrzHyfnWRGcLNeO+X20=; b=lA6nWlnR4TNPHM8+aITj36Wp7+QNVccU+xty9h6EUyZQybFDwPm8cPz+XajeMmy6KmNIUoUCGlh7Y1iSJhGQiCw7zd53lPUB4qlwPtXVw5qUO4sfeB54GOkaqYbBsq7r3/g/WzS8rsJBwGcLE/LUBIINLa4KhbesqY7S9tXEg3g= Received: from BN9PR03CA0089.namprd03.prod.outlook.com (2603:10b6:408:fc::34) by SJ2PR12MB8739.namprd12.prod.outlook.com (2603:10b6:a03:549::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May 2026 16:21:38 +0000 Received: from BN1PEPF00006000.namprd05.prod.outlook.com (2603:10b6:408:fc:cafe::4f) by BN9PR03CA0089.outlook.office365.com (2603:10b6:408:fc::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.11 via Frontend Transport; Thu, 14 May 2026 16:21:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by BN1PEPF00006000.mail.protection.outlook.com (10.167.243.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.13 via Frontend Transport; Thu, 14 May 2026 16:21:37 +0000 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Thu, 14 May 2026 11:21:37 -0500 Received: from xsjblevinsk51.xilinx.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Thu, 14 May 2026 11:21:35 -0500 From: Ben Levinsky To: , , CC: , , , , , , , , , , , , , , , , Subject: [PATCH v2 5/5] remoteproc: switch drivers to optional resource-table helper Date: Thu, 14 May 2026 09:21:29 -0700 Message-ID: <20260514162129.1504162-6-ben.levinsky@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260514162129.1504162-1-ben.levinsky@amd.com> References: <20260514162129.1504162-1-ben.levinsky@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF00006000:EE_|SJ2PR12MB8739:EE_ X-MS-Office365-Filtering-Correlation-Id: 55cdd243-27bb-4d84-ccca-08deb1d4df8a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|36860700016|82310400026|18002099003|22082099003|11063799003|56012099003; X-Microsoft-Antispam-Message-Info: j1op7q2qwbiYvwTwBmilgbnNixGxbftuRGniOrPGehpBhuvmKFSaIU3YzUO5BGlZKWztUheJwk9ak3vV7NM+u9/q3rgDRT0vXBQYKbM1KuR6/nem8FG5lhJq0JKBHG837U2OqVLd8tq26BTXKU5O00m4kvClISNcQAyQ3LJp0/k64MhEX4Xa8S0ZOY1t8WnMMADDxV7E6PT7S1Dj96xqNq2uIkC9HSOTviF3lFzJtK9CLjWBcGRek5vHkGDALsOpDN+i2l80SEnfKMsARHMh4tYdEqsk8RghwnhAPsj3w1JIZKRxDuudaMENMiH+vUS318QQ5hTu7w71uv294bCirUp9UR/cDIxdo+zrjAl3Dfr5cLl2EJ0sBocZ2e6jgBFQ31Q/Lm9iD3tFoz1SGa49O0ftq3hEY2pYiQOyvIVnUvNr0Iqk8QaCYUn07isNV9LJ8Bh+pZArGbE72rA5G+d9Abi3ydiegJuK4IW4NHRhdkM15zwa+8qf3XNCGvmQv8nXYhM/SE/1C0z/EbVfAcujlcpgoFQfk/7r1I3/FVUcwT1SznmxnYgk1676QOy1SkxYp7CWrZAK0lUTLJnasiiBkoYcqwU8FAB5KcCDGoEIZcsxl1glWbziwhmsid3CPmfxMRbjlkNkQg8gyRWcTrKU+wazKsQG1x9d0k8xbWqZXLYNttPdseXTMPZItQPs2FjdXeyghNeuAGwbrce83ml/+ra6EInIqEsG+oz3sI+/6fQ= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(36860700016)(82310400026)(18002099003)(22082099003)(11063799003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NL74qGUjVlQ0HkZhDN4TUTRqHAl7NDO4BXPBfvFbTFV4FgPiXjp2saUlK3ME8PHQKAR43OstJsfx4Y97rGijVzfV118EotN8ctHeH9XC8wYLqqNd7mcEgQ3oVETxh/5xSW0zef8OYIMcWZl6VcGREQmv+QNb3qmJg7cSxJDM27SAoY7iZdU37zvH9MwOp5Uo3+H/CKIyS9TPPY4rNGeUHmzkxDUpL/ernLXgPMDwGuMXlONxLXeFnVsencJaqk6VJak9uphmXIVsrj5LNcmHvYYeQEdc/XYaccfLL49UxM0O0HGawPBlVoTTLGsa6QxRjtRa5NT0E/iZt+g68ZEQGJASmvRmcSNAaKpv9y2R3iMdR/DCVrcyDwHM2T2FS1BZWoBOd7/ObBBtxFgCDv/mQpGXEXVtYfBCV3IAJ4a9EjhSRrwEzwtB0k+LmlGCC7OS X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 16:21:37.4373 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 55cdd243-27bb-4d84-ccca-08deb1d4df8a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF00006000.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8739 Content-Type: text/plain; charset="utf-8" Use the shared optional resource-table helper in the remoteproc drivers that already treat a missing resource table as non-fatal: xlnx_r5_remoteproc, rcar_rproc, stm32_rproc, imx_rproc, and imx_dsp_rproc. Keep thin local parse_fw() wrappers in each driver so the helper only centralizes the return-value handling. That lets each platform retain control over whether the missing-table case is logged and at what severity, while other parsing failures continue to propagate to the caller. Signed-off-by: Ben Levinsky --- drivers/remoteproc/imx_dsp_rproc.c | 24 ++++++++++----- drivers/remoteproc/imx_rproc.c | 25 ++++++++------- drivers/remoteproc/rcar_rproc.c | 25 ++++++++------- drivers/remoteproc/stm32_rproc.c | 23 +++++++++----- drivers/remoteproc/xlnx_r5_remoteproc.c | 41 +++++++++---------------- 5 files changed, 73 insertions(+), 65 deletions(-) diff --git a/drivers/remoteproc/imx_dsp_rproc.c b/drivers/remoteproc/imx_ds= p_rproc.c index 2d9f14fbef1d..2ff74f7938f6 100644 --- a/drivers/remoteproc/imx_dsp_rproc.c +++ b/drivers/remoteproc/imx_dsp_rproc.c @@ -954,14 +954,6 @@ static int imx_dsp_rproc_elf_load_segments(struct rpro= c *rproc, const struct fir return ret; } =20 -static int imx_dsp_rproc_parse_fw(struct rproc *rproc, const struct firmwa= re *fw) -{ - if (rproc_elf_load_rsc_table(rproc, fw)) - dev_warn(&rproc->dev, "no resource table found for this firmware\n"); - - return 0; -} - static int imx_dsp_rproc_load(struct rproc *rproc, const struct firmware *= fw) { struct imx_dsp_rproc *priv =3D rproc->priv; @@ -990,6 +982,22 @@ static int imx_dsp_rproc_load(struct rproc *rproc, con= st struct firmware *fw) return 0; } =20 +static int imx_dsp_rproc_parse_fw(struct rproc *rproc, + const struct firmware *fw) +{ + int ret; + + ret =3D rproc_elf_load_rsc_table_optional(rproc, fw); + if (ret) + return ret; + + if (!rproc->table_ptr) + dev_warn(&rproc->dev, + "no resource table found for this firmware\n"); + + return 0; +} + static const struct rproc_ops imx_dsp_rproc_ops =3D { .prepare =3D imx_dsp_rproc_prepare, .unprepare =3D imx_dsp_rproc_unprepare, diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 6249815b54d8..58c63f97ebf7 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -680,17 +680,6 @@ static int imx_rproc_prepare(struct rproc *rproc) return 0; } =20 -static int imx_rproc_parse_fw(struct rproc *rproc, const struct firmware *= fw) -{ - int ret; - - ret =3D rproc_elf_load_rsc_table(rproc, fw); - if (ret) - dev_info(&rproc->dev, "No resource table in elf\n"); - - return 0; -} - static void imx_rproc_kick(struct rproc *rproc, int vqid) { struct imx_rproc *priv =3D rproc->priv; @@ -768,6 +757,20 @@ imx_rproc_elf_find_loaded_rsc_table(struct rproc *rpro= c, const struct firmware * return rproc_elf_find_loaded_rsc_table(rproc, fw); } =20 +static int imx_rproc_parse_fw(struct rproc *rproc, const struct firmware *= fw) +{ + int ret; + + ret =3D rproc_elf_load_rsc_table_optional(rproc, fw); + if (ret) + return ret; + + if (!rproc->table_ptr) + dev_info(&rproc->dev, "No resource table in elf\n"); + + return 0; +} + static const struct rproc_ops imx_rproc_ops =3D { .prepare =3D imx_rproc_prepare, .attach =3D imx_rproc_attach, diff --git a/drivers/remoteproc/rcar_rproc.c b/drivers/remoteproc/rcar_rpro= c.c index e3121fadd292..b7a39014b6bb 100644 --- a/drivers/remoteproc/rcar_rproc.c +++ b/drivers/remoteproc/rcar_rproc.c @@ -55,17 +55,6 @@ static int rcar_rproc_prepare(struct rproc *rproc) } } =20 -static int rcar_rproc_parse_fw(struct rproc *rproc, const struct firmware = *fw) -{ - int ret; - - ret =3D rproc_elf_load_rsc_table(rproc, fw); - if (ret) - dev_info(&rproc->dev, "No resource table in elf\n"); - - return 0; -} - static int rcar_rproc_start(struct rproc *rproc) { struct rcar_rproc *priv =3D rproc->priv; @@ -99,6 +88,20 @@ static int rcar_rproc_stop(struct rproc *rproc) return err; } =20 +static int rcar_rproc_parse_fw(struct rproc *rproc, const struct firmware = *fw) +{ + int ret; + + ret =3D rproc_elf_load_rsc_table_optional(rproc, fw); + if (ret) + return ret; + + if (!rproc->table_ptr) + dev_info(&rproc->dev, "No resource table in elf\n"); + + return 0; +} + static struct rproc_ops rcar_rproc_ops =3D { .prepare =3D rcar_rproc_prepare, .start =3D rcar_rproc_start, diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rp= roc.c index 7ac8265b60ac..a4d42b755c74 100644 --- a/drivers/remoteproc/stm32_rproc.c +++ b/drivers/remoteproc/stm32_rproc.c @@ -232,14 +232,6 @@ static int stm32_rproc_prepare(struct rproc *rproc) } } =20 -static int stm32_rproc_parse_fw(struct rproc *rproc, const struct firmware= *fw) -{ - if (rproc_elf_load_rsc_table(rproc, fw)) - dev_warn(&rproc->dev, "no resource table found for this firmware\n"); - - return 0; -} - static irqreturn_t stm32_rproc_wdg(int irq, void *data) { struct platform_device *pdev =3D data; @@ -623,6 +615,21 @@ stm32_rproc_get_loaded_rsc_table(struct rproc *rproc, = size_t *table_sz) return (__force struct resource_table *)ddata->rsc_va; } =20 +static int stm32_rproc_parse_fw(struct rproc *rproc, const struct firmware= *fw) +{ + int ret; + + ret =3D rproc_elf_load_rsc_table_optional(rproc, fw); + if (ret) + return ret; + + if (!rproc->table_ptr) + dev_warn(&rproc->dev, + "no resource table found for this firmware\n"); + + return 0; +} + static const struct rproc_ops st_rproc_ops =3D { .prepare =3D stm32_rproc_prepare, .start =3D stm32_rproc_start, diff --git a/drivers/remoteproc/xlnx_r5_remoteproc.c b/drivers/remoteproc/x= lnx_r5_remoteproc.c index e5d1903c9636..9b9f07d152e6 100644 --- a/drivers/remoteproc/xlnx_r5_remoteproc.c +++ b/drivers/remoteproc/xlnx_r5_remoteproc.c @@ -664,33 +664,6 @@ static int add_tcm_banks(struct rproc *rproc) return ret; } =20 -/* - * zynqmp_r5_parse_fw() - * @rproc: single R5 core's corresponding rproc instance - * @fw: ptr to firmware to be loaded onto r5 core - * - * get resource table if available - * - * return 0 on success, otherwise non-zero value on failure - */ -static int zynqmp_r5_parse_fw(struct rproc *rproc, const struct firmware *= fw) -{ - int ret; - - ret =3D rproc_elf_load_rsc_table(rproc, fw); - if (ret =3D=3D -EINVAL) { - /* - * resource table only required for IPC. - * if not present, this is not necessarily an error; - * for example, loading r5 hello world application - * so simply inform user and keep going. - */ - dev_info(&rproc->dev, "no resource table found.\n"); - ret =3D 0; - } - return ret; -} - /** * zynqmp_r5_rproc_prepare() - prepare core to boot/attach * adds carveouts for TCM bank and reserved memory regions @@ -843,6 +816,20 @@ static int zynqmp_r5_detach(struct rproc *rproc) return 0; } =20 +static int zynqmp_r5_parse_fw(struct rproc *rproc, const struct firmware *= fw) +{ + int ret; + + ret =3D rproc_elf_load_rsc_table_optional(rproc, fw); + if (ret) + return ret; + + if (!rproc->table_ptr) + dev_info(&rproc->dev, "no resource table found.\n"); + + return 0; +} + static const struct rproc_ops zynqmp_r5_rproc_ops =3D { .prepare =3D zynqmp_r5_rproc_prepare, .unprepare =3D zynqmp_r5_rproc_unprepare, --=20 2.34.1