From nobody Wed Sep 10 01:15:14 2025 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011030.outbound.protection.outlook.com [52.101.70.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 DC0FB307AD0; Mon, 8 Sep 2025 13:08:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336899; cv=fail; b=G/U1YTTkvQp/sXEqp8SATwvQjPw2I1Jv6rQlhGFaYtvvZIoyQ7mlE2e1+c+nGtfy3SrQ/h5uELT5+UG6EPSZ5lsrD5Y2QAjWVav5FdoaxWnPB2MxvKvja6dyYSs3oGplug3jrrC0CvuWaWqgqG4OepfmY9A4BdL0hSn53Tzv8cs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336899; c=relaxed/simple; bh=7w3iAi6f4aYkcaMGArtpSXI/cChNvqwhfeHn1v7YspI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=dYNPQvwQZtEmm6hBjUCA9xPAyWKqDmKxEpUg1OVN8JKileKwWyqtfH2bEXzwJ7KOmQ27inE+VJUVircspc/oslBUUSeewHcCAstzlEY69B5MM8d14KcoLP9eMgqbVdgSYAU1uEAvKZEPwmOaySxTuxLNXR+Nhsx2CHCLQ5xLWRY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=e0uhr7mZ; arc=fail smtp.client-ip=52.101.70.30 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="e0uhr7mZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=V5Tv4XfXZh8PX97oKcVqyMX6ks+UUc0lMGQ73H6sFX0eZG36iK+svArLEjiR6yXjYjOMxauKqPkKeefNWzJvEN1rrUHViJwBraFV9wExH6PKTpuzUm1MOED/b3dQ6TkkjgO2r0cnKv3qiTH9lFyY39ziDlNe59JnOoqTb16WPxFOxf98romaFg+sEgmIYfNX8TJXC67GAmwrJl73BYK0poelU/j5wUu+HNapeQYP2ajXT0Owwbwu/2QVRimrT830qq+zkr+RYcQNeaPCIpSUL9I0vRTTn5TeBf+OS+6/Jt8NfrM2dt5FqcTnPZ/zzat4L+kvQzcau7ZhOCNPLXvpfw== 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=eL5tvCq04Na4/Dobc6ipo3/3LL4Y5NHhUhyGiRZAApU=; b=YIua6zb1MzooVzROBX/r6PRt5z+STdJZdVgf1UgnITAYo1CG3X2LCpyiUVtJ9KemOWmD1sPw34pvsu/LyC5V4w0x3zf7aAy5TgPFE2l+AbA5LhtpIRL6fY5jjsXwFtRcA+Rgtt1aVzuOh5vySYE9hb8PKuZg2pxfPBKqPFQU1zegEOjNb1iGqOk6nRe22cN4fSTIELzSLdkXWrNw632le6XHmOqjVAeCZHw8AxWmN3kpxQ/6fVifqzmZ+Ya1kjtbWannQn0arwNNZz6j/pyf25yvDg9umedQA8mJpM12/SjplkeuaFum6/aaDnWw1vPp5Uh6D7IVPsZX8q8fjP67Dw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eL5tvCq04Na4/Dobc6ipo3/3LL4Y5NHhUhyGiRZAApU=; b=e0uhr7mZZWhNQ4RyqrZ2fcyftaBf0qgsenZz+eD8wAMIUVH1oex0cBntUqtZtEv0f9RxFtNMju4sHh9ifw1kSy+4HiWQVU0XI+PoZyep/A5/IBs+wnAvSHx5gbbfGaYdig2Q0D1/HkId/Nz+flegHhhEbhNJEaaXUD1iSpudgH8Yvms0+BGZxfOsOnpJ6zBPS+0wiOYdysyPMGlJEgcwr32/UhGQSFjLIWP9nOmf8Zn7JZpDA4VwrVch/nQSni6tyCQmjRglkPHjprQPgqPOC8M759PQVKRtxsbmJddxq4gc9nrjxCD0GwsoYRYpvbjc3IG6a75a6HF/IQqvB1EBjw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by DU2PR04MB8918.eurprd04.prod.outlook.com (2603:10a6:10:2e1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13; Mon, 8 Sep 2025 13:08:15 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%4]) with mapi id 15.20.9115.010; Mon, 8 Sep 2025 13:08:15 +0000 From: Peng Fan Date: Mon, 08 Sep 2025 21:07:34 +0800 Subject: [PATCH 1/6] remoteproc: imx_rproc: Introduce start/stop/detect_mode ops for imx_rproc_dcfg Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250908-imx-rproc-cleanup-v1-1-e838cb14436c@nxp.com> References: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> In-Reply-To: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> To: Bjorn Andersson , Mathieu Poirier , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Daniel Baluta , Frank Li Cc: Hiago De Franco , linux-remoteproc@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757336884; l=2900; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=7w3iAi6f4aYkcaMGArtpSXI/cChNvqwhfeHn1v7YspI=; b=i2CpGDb5Nugw1PoLwiZHRyJZoi0dhE5EdAGx22a+e/vD7RAJNUxdoCu12/nLqoaJh4UBVLTaQ EIWcJQ1eRvEAHlHaiwdrWInEJLLI2rXJ4pE7/zOFrH5ZCmOrLeYmZBf X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0022.apcprd02.prod.outlook.com (2603:1096:4:1f4::16) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|DU2PR04MB8918:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ed2a457-19e6-409e-7d81-08ddeed8c573 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|1800799024|366016|52116014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Sjk0dERtSEtNcG90TXk2aWN4TDFyOVRhem5TRS9qYnBlWjgyVkhuNnpYb3Rl?= =?utf-8?B?Rk9veitCZ2hISzFPeUp6aVo5eWZmUmJjUGk3eEtwYUdPd1dEK1Vyd3h0VDd6?= =?utf-8?B?VFNFVldSalV6NkI1VlF2dzA4dGZHaWozT045QWYyb2JkRTgxWE5RTk9US00x?= =?utf-8?B?MENJL05qV2IxaFcxODJoVjFxYSt0djhvL21aS00vNHlVL3RWVkhjM1VCS3dB?= =?utf-8?B?T3Zrc29oY0dMTk5SVzh6UVltdWtBUURzREtGcFlpSDJaWlNRY2EvTEJZQ1JO?= =?utf-8?B?VGdWSE9ZQUg5ZWNNK3R1SWh5Z1c0d2JJRzQybFVkR0FkRnovSW42LytYdXU2?= =?utf-8?B?bkprMDU2ZlI4OHd4QzlDeE9JYmFhUkszOFJJTU5vVzhzdXVjeDBaVE5kRWgw?= =?utf-8?B?UnNoUHVJRGxXSVhoWSt3TVVJRGlNUi9CSjAxdnNLUkhBdDBYQW9GRGIybjdH?= =?utf-8?B?QTFXNFZWM2s3REpvUitOb3JmNFVnRCtJRm5yenJsWFllQVpoT3FvaHF0MCt5?= =?utf-8?B?cW1XYzRIUWlqeDZRTHp6bW1XUE9EdVRyMVVlLzUycGQrMmFHTjhZTmUreXlq?= =?utf-8?B?UWpHb0p3MGQzZXgvOHVwWG93aFNYSUZoQkROc3cyYjhOVUFxNEgzeHdkNlQ2?= =?utf-8?B?WFBCQlZaOTFKelJVbGZHa2NGSjlBSThJdGVsamJVYnBpaTR3WjRDY0hWbmVF?= =?utf-8?B?cEZVM0xLQmNOTmErcGpNSHRJWTB0Ykl0RVFaUDRlU1FaOVRkRWZpakxMbHht?= =?utf-8?B?WllsV0dGMm5qVFNOMHIxanZrdWpTMEc0YXlVSE04Snl0cXhzTEhYSFVCczNy?= =?utf-8?B?SEJVbTlUK2tUaTN0T0ZoVEtpTXI1am5DRlQ2UnA4STVmVFZwU2RMblRranpP?= =?utf-8?B?WXYzQkVOVzh0Mko5aWNiSTBjbjFPaDFjYlowT3F5TVpCLzF6a1kzZ3Q4K2Yx?= =?utf-8?B?SWMxbFVCRHVOMGRLS0twS1VkYTBKdXhBU3JvbWFzSFZlSnBOS3FrMmU0azdW?= =?utf-8?B?bGpFWGJHdXVjRmRzb3IrWk0yRmdHbXFrQVRaTjVIWDh5RFhibDRQdnFpRjBw?= =?utf-8?B?VnRXMHBhN3hQRVZUVUlYdWF1b2gwaC9iNzc3V1k1dmU4YU9jUUJWZ2hkMTNl?= =?utf-8?B?VG5uRUxxK2k4dGR4NkVjTXFMdzVHRmczQzNzbXo0M0p0dkp5S0RTRUJFTXQ1?= =?utf-8?B?dVYwVVhvb0NIb2FkZGxHMVlBWnJEa0RsSjVFQk91NFdXaEhRc0xncnRlcHlp?= =?utf-8?B?RzBtMTNyQzQ2SFdCemZGK2VSSDJuTEVsbWcvVzNJSE42SUNXQXBMSmVncnhz?= =?utf-8?B?enBTdFNueVpOSUk2UVNHdlMzVzZyZXplUnA2L3JOeHZNN0QvcTRHTFdnZE1R?= =?utf-8?B?TmVqRjZwek8raFZIcHhjb2RrV2duUFoxbjh0WGNzdDRRNDVGZlo5MUZnZk1P?= =?utf-8?B?V2RQWWdpNHpaalJRQUdHTGExTjdDdHJ0elBPWUJhTXNHYlpjY2EwUXNQdnFr?= =?utf-8?B?ZWtYWmIrK295ellGM1Zoa2ZiQm0xQ0FEeTdqMW1CbGJ1djkySmNpZ0xHV01V?= =?utf-8?B?alNydjRYMmNPS1d4ampiY2U1cEdRTlhaTXpUQmtSSzdpOWlGdTJDR002VE1w?= =?utf-8?B?T1hpOXFmT0VxWDdjNVlhZng0OFlNZzhzcUVvMU1IR0lWUWdYdVVKQmFYVFd1?= =?utf-8?B?V0hyYldHVDRQLzVjYVhkOHFTU1FYNEpJQ3RWYzFad3JOa3NsWVN4NDVZd3cx?= =?utf-8?B?c2lLUlFxbEdtNUdobWNBc2o1S3RCSTNvUkQ0MFhYTHJxeW1TblFrYjBVTEkw?= =?utf-8?B?K25aTzQvNk0reHRyUHNncTRnYk5JLzN4N2lWdlJlbFRtUjZML0JaOWJ3QW5C?= =?utf-8?B?azhhbzRlK0FzSzZycVBaTEx2eTNINEZ6WTBLZERYU3UyazFxblRtb0Y3ZWRL?= =?utf-8?B?WUtIZEV4SG1LTU16T2Jhai9pY0EwSWRuNEpCbEhaTkp6VHRNR2FsZjhDQTR1?= =?utf-8?B?bk9EL2ZEYkR3PT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(1800799024)(366016)(52116014)(7416014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZUMza1NhTERnTzgraHBRQlkzQ0d6MitreHF5Wm8vQUcyanNFVWRLdDU1TVo0?= =?utf-8?B?aTY3bit6cEt3cSt0R0NUSjVqQ1cvaVduaHpoUHVwMG5rS2dmQUs2WUpVck81?= =?utf-8?B?MGlGNmZPTTQ1ajVPRjhGakRlbWd3clBJMko0RW5BVHZIQmowRk56ZUF0blVh?= =?utf-8?B?Vk9kNkZmdGhwSUYrVlNnaHY3TnZ6Z0YwVTVUeDdzN1dZM3JMYVFjQnpjaFJM?= =?utf-8?B?ZU1NRWlzSXpPWmVsRXM1VnFtQ2VnRXBLUVBZMVlGV01aSDladEFFR0FET0FU?= =?utf-8?B?VUo5VVpkRjI4bS9Ybzd3TGkyU1p6WmxUckgrK0tMQ3lhYk9udDJhVGxDbXFw?= =?utf-8?B?WnA1dVhUdmFOc1NxS3VMVmVKR3VTRXdQMGVicGhuYzlSdndYSmw1S3lDUlBX?= =?utf-8?B?cTZnN1FCYTRlajRraS92ZEE5K1VjNzdHYmh2MnZLaXNrenNWK1dVVEF1V3A2?= =?utf-8?B?U3R0VUlHOWZMVUZPYUZxQVhENTdOc2FTcS9mSDBaZEtBQ0tDYnRwZThzdmVV?= =?utf-8?B?MmRKVHRETk1pT015TENIZkhYZ2RmQ0hkK3dkMm1OUmdqaDI1dFNrdlcxNGo2?= =?utf-8?B?Nnd2WSt6OVJ2SlgzQm9CdWxUUjc1WWpVNHE3UVNkQmlzV3JISEhYejE5WnRo?= =?utf-8?B?VkRSMHRHVXZsbXU2dnUxcXlndi9sL1Q5T0QzT29ubWxzcWFrbHlzQzYwd2d6?= =?utf-8?B?cWJ0U0NTbDBNd0E1YWlVYkt6dDdpaFVkdU5MSkl2RmY1Mk1IeFBzZCsyVUpM?= =?utf-8?B?czE0ZlFtQUh1eGtobzFReFp2b1E4a3Biak5ZSHhHRUhKb1h0T3BHRkt6d2E0?= =?utf-8?B?WTZVbC80UWRUbVBkZGkyQk9MT0FTZ3QvYVJ5R2tDK2VVbzVQaDUyR3E1bVUw?= =?utf-8?B?U1BHT1NyeFJ2T283Qm9xYjc4Y2diUndRY3REc1VQTVA3bzdCN2MrMm5BM1ZK?= =?utf-8?B?d1haTjZ0a1pqSVlaenBCSzU1a2FQOVY3Rk5tSk9ZZXM2WkFnaG9QaFlxTitr?= =?utf-8?B?SEpiNXN3ckNTTXhlRytzYWdKVElUWlNJcGhMNkgvaFp6Z2lsTmtmcGZOQ3Vo?= =?utf-8?B?elhYaGF3cXF6MU1MMk1GOUk3VWxsLzNoK3I2L3MrMWFsMkVqZ1V1Q3hKWUc2?= =?utf-8?B?UG9UNWFycXZKRmVpL1VWQkNEdHNHSWtVYng4QmtQZW42b1JndEFVSnB2VGpI?= =?utf-8?B?elZTcW9odjZuWWw5QkdyRWJHR0F6T3hpRVJLckpKKytBSkVrUGJScHRlTzBt?= =?utf-8?B?WmhSMXFDdU9KaWxFK2xqekpYNWdzYXM2a003OHJxN1h2R1NLY0J3ZG02UWJy?= =?utf-8?B?NWx4N1RINUpBcVBzVmtsUWVzblJkVXNFNjlXelc1U2V3a3dTMjVLQjMyUHRM?= =?utf-8?B?VVlVTUhGcEhxak9idzh0ZmFPaWhFSEFmcTR0R1BGdEkvakFPWXYxUGdtVHdQ?= =?utf-8?B?SWQyOWZhTDZ3UFl5QUNYM2lyK2x3dzRzUDVqY050QVUyUEJFZDJVczlzNzZO?= =?utf-8?B?MDhKNE40a3VialU2T09NUGZKaUNVMGFjVUZldktsYzhMYjB0OW9vNEZYeTdO?= =?utf-8?B?dFV3RCt1eU5IU0IrSU1sS2V5bG1pdGwzMllTWWxUMUNYUXpFQnBZaGpPREVJ?= =?utf-8?B?UXRxRmtLZ2lZR1Zua3dadFg5cGM2dG1EdEhieGxSNERsd0pYMHE2QUc2c3o3?= =?utf-8?B?bWJFOWVVdlNLaitiZm5yUlgzNXd1LzJUbGtFRE5rdGFJOGI2cjlvTjZBZHZE?= =?utf-8?B?c2JDVWxEVFVoN0hDTzZCZy9wZjZzYTZtUUt0Q0VZbHYxQWw2RkVUTlNTMDg5?= =?utf-8?B?WkpwbnJmSG1kNklhbWx0cHM3S284eE9CQTc0Wm92UE9MVSszVUt4di8wTE9r?= =?utf-8?B?Z3A3azROQTZzMHZDZ21heWprd1BqTktjUGszQS9qc1Z1b1RDc2dkRStFc0dt?= =?utf-8?B?UFlPcFJWUUtFRm5FWHZZcjhnVW9YWHhtQ29GY1F0UGxPUU1RUW8xUldBWDBG?= =?utf-8?B?SlNvMnlkbXlLU2JTUlJWM01mK1B5bXlYaHZTcFVqY0xMZXYzT3lFcExZNFRL?= =?utf-8?B?VWRycmtSeGE5R0FBOExpbTcrZUVLbmFoYWVKYzh2M0Foa3JleEExZkxxU3Js?= =?utf-8?Q?TDkfgNMnEd71yHayejH0RrxYY?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ed2a457-19e6-409e-7d81-08ddeed8c573 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 13:08:15.0913 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vFxHfx5OZvf7k1tz/fxn6VGFdytYNWRB/S3mdeHkMela6ZhxxEfwuewSRhQqo3WWFJL1b1/9qxee4vW+2Dsy3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8918 Simplify the logic in imx_rproc_start(), imx_rproc_stop() and imx_rproc_detect_mode(), introduce start, stop and detect_mode ops for the imx_rproc_dcfg structure. Allows each platform to provide its own implementation of start/stop/detect_mode operations, and prepares to eliminate the need for multiple switch-case statements. Improves code readability and maintainability by encapsulating platform-specific behavior. No functional changes. Signed-off-by: Peng Fan Reviewed-by: Daniel Baluta Reviewed-by: Frank Li --- drivers/remoteproc/imx_rproc.c | 15 +++++++++++++++ drivers/remoteproc/imx_rproc.h | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index a6eef0080ca9e46efe60dcb3878b9efdbdc0f08e..5cdc5045e57566e817170ed3c70= 8dad6108d2e46 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -376,6 +376,11 @@ static int imx_rproc_start(struct rproc *rproc) if (ret) return ret; =20 + if (dcfg->ops && dcfg->ops->start) { + ret =3D dcfg->ops->start(rproc); + goto start_ret; + } + switch (dcfg->method) { case IMX_RPROC_MMIO: if (priv->gpr) { @@ -398,6 +403,7 @@ static int imx_rproc_start(struct rproc *rproc) return -EOPNOTSUPP; } =20 +start_ret: if (ret) dev_err(dev, "Failed to enable remote core!\n"); =20 @@ -412,6 +418,11 @@ static int imx_rproc_stop(struct rproc *rproc) struct arm_smccc_res res; int ret; =20 + if (dcfg->ops && dcfg->ops->stop) { + ret =3D dcfg->ops->stop(rproc); + goto stop_ret; + } + switch (dcfg->method) { case IMX_RPROC_MMIO: if (priv->gpr) { @@ -440,6 +451,7 @@ static int imx_rproc_stop(struct rproc *rproc) return -EOPNOTSUPP; } =20 +stop_ret: if (ret) dev_err(dev, "Failed to stop remote core\n"); else @@ -933,6 +945,9 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv) u32 val; u8 pt; =20 + if (dcfg->ops && dcfg->ops->detect_mode) + return dcfg->ops->detect_mode(priv->rproc); + switch (dcfg->method) { case IMX_RPROC_NONE: priv->rproc->state =3D RPROC_DETACHED; diff --git a/drivers/remoteproc/imx_rproc.h b/drivers/remoteproc/imx_rproc.h index cfd38d37e1467d1d9e6f89be146c0b53262b92a0..3a9adaaf048b396102feeb45488= cd2ff125a807a 100644 --- a/drivers/remoteproc/imx_rproc.h +++ b/drivers/remoteproc/imx_rproc.h @@ -31,6 +31,12 @@ enum imx_rproc_method { /* dcfg flags */ #define IMX_RPROC_NEED_SYSTEM_OFF BIT(0) =20 +struct imx_rproc_plat_ops { + int (*start)(struct rproc *rproc); + int (*stop)(struct rproc *rproc); + int (*detect_mode)(struct rproc *rproc); +}; + struct imx_rproc_dcfg { u32 src_reg; u32 src_mask; @@ -42,6 +48,7 @@ struct imx_rproc_dcfg { size_t att_size; enum imx_rproc_method method; u32 flags; + const struct imx_rproc_plat_ops *ops; }; =20 #endif /* _IMX_RPROC_H */ --=20 2.37.1 From nobody Wed Sep 10 01:15:14 2025 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013067.outbound.protection.outlook.com [52.101.83.67]) (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 84866309F15; Mon, 8 Sep 2025 13:08:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336905; cv=fail; b=Go3h6m1KWwzbBLNdxponYM66szNkJpZzghNrFiW94U4eksxd6rmToLzikDFUiAbN8qxP0TW5GskNwm+dZ51oEQo4nP9J3Ahexwtx/eg2IHbzJUcGjbK6PQFO0SqUHp8jk6fnBbqAUtbqw98n8tYzgi5bXlwzVUvlkqraEN4SWu8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336905; c=relaxed/simple; bh=K/BZpRKkxI1Ad4HlundfENvmuV2lgxaSLD/nbPG/Lr8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=lmMoHLPaWyHbAb+1EEXe5rumJkFAFwZWdN/N7a/zTAYQKDTd/Pzyu/YDW9KrmYaNXubvlzEELDg5nn8z9deU/hQp+CAGEBby5Fx5Jy8OLICKxOME4hFIW9CbfJXzO0ac61SfOKqkalQDLcv42WeAMyUccFIceUIzwAdT9S9JfAI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=FRyfffOW; arc=fail smtp.client-ip=52.101.83.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="FRyfffOW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PkdBrlBVdRpIPnPLIlAtaq/z1ZCnIcQ8epXEzNixNGzyQPuVZoXFYrHy8LiH4PdBUmodJNsvJIu2bQ/qUhgaUM0W8+QdLCggM19bW+KK5BYsKS9aUz9Bk0BfS8IlZDeanXEdPl4Jv73ohRbdYbKetJsn2FXYDzhvuBQ7LxNTA3/OTjn5HAUHRZ0spPEBEvF53nAj7mYR5MqBJEPHNKSCbCQicLMMZvOeSapXhCh/3G5dCVc1Q6oy3eRbRI6nU35aERaLyMLnkJgYqPSWMVFYuBSFIACPbF+jLxAAXTiBZYyYOxlOBOSDmF5LZpDS5cE3kgkCa7VMqyof3veAJzV2Ew== 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=YMyiB+EhVrdwyX/PlxCpGsoQmBOgb1K+L3LPD6HZRws=; b=tLVkJgcbAJoB8/HZVgWIDmgvsFb2F1X9O0BIU9bIGly3/llEcL964gjE6HkHwm1ripglGrOZguI2zmPUmTOUIg60I2dSpjjleBHs5ZwgOKs32Kw5j5x0NLT3p/tQbIGy8cQnVK/5Doew0q6nNDYHKtwZrkwoq1flQjUoeCOA23uC2gahn6gIoOcOnVSBa7LqLo8vTTKKt3a6CGD2kVJvZnk81u7kx316mIAyBfCmq71H1IMx0Qg/L9s68dbOCVs7S4O/uy9vdiQSR1dmLPninKr67oDgiBzp5bbIRQaMevTAXkqQXZFoUQ/kCt4GHSjjPOKyx63hz+U/hSLY1G9WaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YMyiB+EhVrdwyX/PlxCpGsoQmBOgb1K+L3LPD6HZRws=; b=FRyfffOWPdMJt7Ty1DaWjEdFy6+078vJyXRicwiR1C3GoDlGdSyN+nYoXGvoa8PN75Yk93Z4uP+7yXPF/UYZU22ZSUJm6Wsj0lUwx6OUw9PVmS8syknxfYBY+DertLhKgMGCSgapjXdVK/amUBWvFB0DBVaIsghnZGHkPnOxuCNBNB2hnDmSPCUVhjWKmZ0NbvCc4Q/UT76elQQNEBnXVAsYqvolztCLvIZMtGXrugpLpAYP+M90AF+3sgzlgLFfWlwogwOh/A5gVi4ERbLGKYdFGDDXykyfm+BWB6SLANgaXdQl1UfCmoOn4twoduWDU86MymZ3uagG7FREUDNNpA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by VI2PR04MB10977.eurprd04.prod.outlook.com (2603:10a6:800:271::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13; Mon, 8 Sep 2025 13:08:19 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%4]) with mapi id 15.20.9115.010; Mon, 8 Sep 2025 13:08:19 +0000 From: Peng Fan Date: Mon, 08 Sep 2025 21:07:35 +0800 Subject: [PATCH 2/6] remoteproc: imx_rproc: Move imx_rproc_dcfg closer to imx_rproc_of_match Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250908-imx-rproc-cleanup-v1-2-e838cb14436c@nxp.com> References: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> In-Reply-To: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> To: Bjorn Andersson , Mathieu Poirier , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Daniel Baluta , Frank Li Cc: Hiago De Franco , linux-remoteproc@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757336884; l=6344; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=K/BZpRKkxI1Ad4HlundfENvmuV2lgxaSLD/nbPG/Lr8=; b=QrpmgnYrqTKP3KY/S4kr+Y2O6BG7iTnhvXj04SRvLyiirT/zqTddjmIeVTBw++hvdcLU1Zpat Sbgnhyl90IJCByn+tTnltztZMo2lIH6YfiwSlbAKfiSTbfoRCMGQWgm X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0022.apcprd02.prod.outlook.com (2603:1096:4:1f4::16) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|VI2PR04MB10977:EE_ X-MS-Office365-Filtering-Correlation-Id: 91b8536f-7723-43d4-82cf-08ddeed8c7f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|366016|1800799024|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?TkVlRUFsYVR3bFNXSS9OYXZ5WGZRY0orS3BJZmRMUWVIRGhSdm95d0w5cFZ1?= =?utf-8?B?T1RaUjQ1ZU1aOGVJRHF0R3pQTnN1VjFDUGlLZXY0QTNuMmllK1ZNYkpGN3Fq?= =?utf-8?B?V1I1K0w0NWVlbDVXTWk3dHhMaFhwdzlOTlJERXJmbFdzYW1yaVRiSmNHVnNl?= =?utf-8?B?RWRrMnFGSDBYd0lYNm1qZHhhNkk1SXA4YkVmSHdkWVBvYmVlc2hJU0UrOVdE?= =?utf-8?B?WExTSzhDRXRYQjVMT1o0d2FSK0JOK1QvSCtDUG81cFduTEJsQzdMUHVSaTdj?= =?utf-8?B?SjBTWFpwTzNudlluem5EdGxOVW9zbXc2am9LV0Z5b0JLNGM5QnE2cFFwTWhr?= =?utf-8?B?UFlaSG4vbVZSb0JVOFpLNVhxT1FNQlcweVJjWmszaEwrRE5mRTV1WGZaNlFz?= =?utf-8?B?ZWlWS0k5TWt6TXFjeWRHZldhdDJHai94WWVUM1d2UnJrQU15c1I5bllEKys2?= =?utf-8?B?TUNNbHc0ak13RUxkZ1k3VGVWQVJrc3FnWVI5b2s5ODVJMEM2SHlmMmFnWFpj?= =?utf-8?B?c2NaYzg3NFRLcEhJZURlNUxmVGwrWVBKSVk2UmxFWFNCVjJ6SktaZU9PMUNJ?= =?utf-8?B?QnZBTmlUakhCWlRVb2ZFZmpjNWs5Z2MvazBPS2xRSDc5Vi9JaWpxZ0h6RjVr?= =?utf-8?B?NE1PZ0FLMko5WGZSYmtMMFRObXJaTlJudGR6TEJiSXhKODY1cERYaC94UG1s?= =?utf-8?B?bGt5SzlUaG5lc1h6Z3JuZkwvWWQrNGxMaHBQVVQ3NkptcGVoSmRVQWpNK1Mw?= =?utf-8?B?K1ZJRWNFcVhjNVBZNTkxOXJaZ3VtUmpIYlM1b3pnTnF4c3dNbEhhaFpFbk9j?= =?utf-8?B?Y0JwaUJWNytISVBpVkZLVE1JSjlSd1FpOXRpTWh3dUVIQ05RaGhSVlZKdTJX?= =?utf-8?B?SlE2Y0R1NjkrWkltY2JjV1RsTjdDQ2M3QVh4VHgzYzY5Vi9BWEZKK1UweHJC?= =?utf-8?B?WURkQUtWNVc0RnpkT0NXZGVPQ3RqSTlUKzNLbmxpand1Q25wakM1NzV2WjE2?= =?utf-8?B?ZCtPWERKdVVyVVdoSkdZTXRBWmxaMm4wTnFKWVc5QkpLd3d3OFZPeWxNdFdy?= =?utf-8?B?UW5RdjVKYndDeVBBeElUZnRBai85V01ZMU1kdEF5Smp4dldQRy9XWTNqZUQv?= =?utf-8?B?ZHJMOGhVSDNucmE4TjY4bUFsMTVFTkgwcFhaQUk0K3F4Tlg0SldKNFl6ck8z?= =?utf-8?B?a3RjMlNXUVpCc0V2N3NNYkJBZFRnNnhWMmxtN0xDUkNrRFkzTG9GeWc4V3p2?= =?utf-8?B?RXVldElWak1idmMwTWFkTjNSeHRnVHU5OE8xNUhTZ0xhVmx3M1BwaFlvLzQ2?= =?utf-8?B?SjFCOHpuQTJnelVIRG1VMXA4bVBoZXNrMDdpYmVIKzdJN1dZRE5HWWIxbFlY?= =?utf-8?B?QllSaHZvblMyK1NJQmdycmszcTlaNjZrYzlPVGZjcEFZTUttMitLRWZxZWk2?= =?utf-8?B?TXg4Q1djRGloQmpPclVKMUFiWXVFTC9TbVdyTmVWaDNuR2dnb2Z3blBWZ2s1?= =?utf-8?B?a0hNYlF1WkUxQUl4QmZ5RHpkT2pUcWRTUVAyeVpJMDQwTmJUd2xPSXBvV2Ez?= =?utf-8?B?OUJueW0zQkRwdnJEbWwrV3Z3VWkwb2IzcVo3Z3puRzQxWUZGVk9tditTaEt1?= =?utf-8?B?OFZUUFltQm9BbTZoSDI5Nyt4VC92WGIrSlBrM3EySWdGQTA1M2JsYUR2S2U3?= =?utf-8?B?UmVuTkM4b0pEOWY1cytGTnZUdXBXdHJ4M2tmQW5OekNVZC9SZFBLbE5qTDQ5?= =?utf-8?B?Y3BBVEp6djdFcENSc1U1SVNoZFFkdlkwMHFFeVV4cVdEK2d3L3lOY2c4ME5C?= =?utf-8?B?NExkNXBKWTdkNUVOS3Y0VDJhVE5RdVkyeGZCMU9jZkdFQUtmcEV3aEQrRkkr?= =?utf-8?B?RXlHVE5UalR2VHYyYmNNY1ZISzhnM1NNRUYvRnYyMEZEV05GSnFCQVgwRVJ0?= =?utf-8?B?a2F4b2dndDdzOWJwN1FVTVZrSXMwdXFZL1cwMUNlSTRRUEZHR1Vyb1orT0F4?= =?utf-8?B?eXNaUDdsU1dnPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(366016)(1800799024)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?d2JadzA4eFhlVGNYa05XaUpMOW96YjEyVkI4VFpYUXBBdnpqMXhPRngxUml6?= =?utf-8?B?VTBmYUZERjBnSnVuT3FVd0Rvd2hDYnB2cmtpcW42Tm1SUDljMHE1bmsweU9x?= =?utf-8?B?SXprVDQ2NEJUSWduQ0lNWDAvZDRDOHpBd21BNnRIM1dpeXB4K1lNRDlqa0t3?= =?utf-8?B?c3B4eUVwaGVlZERQZFBOK080OTVNWnRkNGpscHJFb2JFTkhVdlluR0R5MkJl?= =?utf-8?B?REZVSzhaQW1mTGxNdXQvRW5DS3VNN3B6L1JkOHU3dXZFS2JyOGVvOCtUQjky?= =?utf-8?B?eWhUZXYvZFVWNndlakFkY1cvSXkzT0ZrcisxenpNODdoOTRhZEdYNVJyekRv?= =?utf-8?B?WUJ5QTNacnJuVWI1MS9BbjdUOWhialVvZmd4YkkrdEhiYTNDK1EzVWhUOXlZ?= =?utf-8?B?cm9Mb0N2bDdxN0xoL0RvTzk5ckVQUk96NzJMY1Y0RzI1WlZ5d2QvZ3dqZEgw?= =?utf-8?B?dWFCZVNoVEZUKzloR3Z4b2Z2M3lFRGYzdVg0QktFdmV1MStZakk4MDFJZWM0?= =?utf-8?B?R3R5blMwWm9KN2o4S0N4YXVzakNhZ2dNY1pRVHVMUEVLWXhDaVpDeUQrSTB1?= =?utf-8?B?dkxUTW5TcS9QSUZnam1RNWpLNnIzZG05VXEwR0ZuNGhwTWhuQjZtTzBFK3dN?= =?utf-8?B?YUI5TS82WGRYV1FNbGc5ZTB1czloVjZmZ1NmbTRpYWJlR2ZpM1JnczB3K2RK?= =?utf-8?B?eHlsSEdPdkdaN2ViSEV4cTV6eFcycmtneVBwUmdtMkpDa3BmeHI2WWorRFlm?= =?utf-8?B?UVdTdjhRODhBWkNzcmxZcEpKekM1Wkw4Ui92cXRzeE5aOEVtcnRQTlU3SjBD?= =?utf-8?B?ME1kZ01PT3VJQXpnMzBVZWdxZU0yS2lvRXdpVHFzUHdwSnc2SWl2SmEvb2tT?= =?utf-8?B?ckdDdWEyZzUwRDhjVmNVcjdlQVlGUm8vY05Gb1R4TlBBM0VFWVBrWnhudnBt?= =?utf-8?B?azhKaFVRejIxSFFNSFFTZmFneGZ2Vld1L1VSV2orc1d3Y0doQ053VExpWmVT?= =?utf-8?B?K3ZyTkNyb3NpZEJLS1prWEhYRVdZTlBCeWwzaCtZR0g3UytoaGhpVGpCMGZn?= =?utf-8?B?OEk4L3BKSVA1cjlIMHJ5TU8vQXVDc29TZzFVUEFXVGdhUWlKbXpzRlhBRWpv?= =?utf-8?B?STQ4YjNBQnN1WGZhV3ZJN2c0K1dKcHFncmFmdzR3VnIzZ3hITE10eVIvNmJL?= =?utf-8?B?VXhubWdMZ1l2ZEJNQVhrbTRaL3R3MnZmWCs5eXVZNlJJM0M4cjVWNm5hT0NU?= =?utf-8?B?dUIxYmYwcG5hNjdBVXlTUHUvcVhPbEtSSW15cjU1OE4rR1Z5ZWFkYUM2SjlO?= =?utf-8?B?a2FvRWFiTWtpNXpFQ1NaU3p2cHkyTmFvY1BLajBtUnh2YXBIR293OFNONnBQ?= =?utf-8?B?RzFSNy8zM3dMN2lpUUo4THMrd1RIK2VDbWxMWDkvOVluZFRraWJuQnJRVlds?= =?utf-8?B?Y0lqM3R0NitnWWVNN3lhMU9XTVFPem0wb1lNQ05MQUM3T3BqTlVibnFPT3ZX?= =?utf-8?B?NXNHOE93N2FKQVI0S0ZDOUZMUXUzVG42MmVVcGxJQkhFaS9GUUhxSm5LQThJ?= =?utf-8?B?cmp0Uk9RV0Jha2xhRWlYL1Z1Sm5FU0pwRDVyMDdYc0wyTEl1dVlNMHJDRG9x?= =?utf-8?B?ZXNKVFJRSlBKUTVqVEk0NEFtbkhXbXh4b1VKaDZFd2dPTTBVemh3M3ozRXkx?= =?utf-8?B?QSs5YnFhMVNKbngwRDhJdjNiaGpoTUo4ZllDTitWNSt1ZmtDbHA3b1RxQnRi?= =?utf-8?B?QWpoYlJXeTN3dFFGdTJTYlRuTFhQMU5XdmVpZjF4SnEyOVNDUXBCUmtKQWVy?= =?utf-8?B?emZHV05mdTRlcnY2WnB2dUw5TVdkcU5uQ2Q4MXkwcmNuZ1FGSzRQZEF0dXdC?= =?utf-8?B?bGRMOStQeVdzVTM0TFlVNCtuSnpWUVAwbFFIVUlPWGFEVnBpdDgzc1QwNlBQ?= =?utf-8?B?dUNYbVdqNHhGVHo0MlVIeEtubVlCUUpYb3Z2MVRPSFJTWjUyRGkvTW5vdlM2?= =?utf-8?B?RjZvQTlWbFlybmxQNHg3U2R5MHFPbVBaM3pGdnZmenE0ZmV3aGFiUEN2SEFB?= =?utf-8?B?NFd2YkdpUVROZ3pWYTdtMG95NE53V1hpdmJjWnE5VStBckcyYyt2ZklxN3I3?= =?utf-8?Q?IrlIkY47ErZH8hMO8r/qWuNuI?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 91b8536f-7723-43d4-82cf-08ddeed8c7f9 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 13:08:19.3274 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Xzeac7Gq7RIH/veNQkNbI6boLMBq/t56AzTkhlOa/NagdMCCjc5/qUtpfQYtE07aJWBm4yV10KSKAQGpNQUDYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10977 Move the imx_rproc_dcfg structure definitions closer to imx_rproc_of_match to prepare for adding start/stop/detect_mode ops for each i.MX variant. This relocation avoids the need to declare function prototypes such as 'static int imx_rproc_xtr_mbox_init(struct rproc *rproc, bool tx_block)' at the beginning of the file, improving code organization and readability. No functional changes. Signed-off-by: Peng Fan Reviewed-by: Daniel Baluta Reviewed-by: Frank Li --- drivers/remoteproc/imx_rproc.c | 158 ++++++++++++++++++++-----------------= ---- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 5cdc5045e57566e817170ed3c708dad6108d2e46..af7b69d750deed734668cb413b2= 9378e5ca7c64e 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -285,85 +285,6 @@ static const struct imx_rproc_att imx_rproc_att_imx6sx= [] =3D { { 0x80000000, 0x80000000, 0x60000000, 0 }, }; =20 -static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mn_mmio =3D { - .src_reg =3D IMX7D_SRC_SCR, - .src_mask =3D IMX7D_M4_RST_MASK, - .src_start =3D IMX7D_M4_START, - .src_stop =3D IMX8M_M7_STOP, - .gpr_reg =3D IMX8M_GPR22, - .gpr_wait =3D IMX8M_GPR22_CM7_CPUWAIT, - .att =3D imx_rproc_att_imx8mn, - .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8mn), - .method =3D IMX_RPROC_MMIO, -}; - -static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mn =3D { - .att =3D imx_rproc_att_imx8mn, - .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8mn), - .method =3D IMX_RPROC_SMC, -}; - -static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mq =3D { - .src_reg =3D IMX7D_SRC_SCR, - .src_mask =3D IMX7D_M4_RST_MASK, - .src_start =3D IMX7D_M4_START, - .src_stop =3D IMX7D_M4_STOP, - .att =3D imx_rproc_att_imx8mq, - .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8mq), - .method =3D IMX_RPROC_MMIO, -}; - -static const struct imx_rproc_dcfg imx_rproc_cfg_imx8qm =3D { - .att =3D imx_rproc_att_imx8qm, - .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8qm), - .method =3D IMX_RPROC_SCU_API, -}; - -static const struct imx_rproc_dcfg imx_rproc_cfg_imx8qxp =3D { - .att =3D imx_rproc_att_imx8qxp, - .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8qxp), - .method =3D IMX_RPROC_SCU_API, -}; - -static const struct imx_rproc_dcfg imx_rproc_cfg_imx8ulp =3D { - .att =3D imx_rproc_att_imx8ulp, - .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8ulp), - .method =3D IMX_RPROC_NONE, -}; - -static const struct imx_rproc_dcfg imx_rproc_cfg_imx7ulp =3D { - .att =3D imx_rproc_att_imx7ulp, - .att_size =3D ARRAY_SIZE(imx_rproc_att_imx7ulp), - .method =3D IMX_RPROC_NONE, - .flags =3D IMX_RPROC_NEED_SYSTEM_OFF, -}; - -static const struct imx_rproc_dcfg imx_rproc_cfg_imx7d =3D { - .src_reg =3D IMX7D_SRC_SCR, - .src_mask =3D IMX7D_M4_RST_MASK, - .src_start =3D IMX7D_M4_START, - .src_stop =3D IMX7D_M4_STOP, - .att =3D imx_rproc_att_imx7d, - .att_size =3D ARRAY_SIZE(imx_rproc_att_imx7d), - .method =3D IMX_RPROC_MMIO, -}; - -static const struct imx_rproc_dcfg imx_rproc_cfg_imx6sx =3D { - .src_reg =3D IMX6SX_SRC_SCR, - .src_mask =3D IMX6SX_M4_RST_MASK, - .src_start =3D IMX6SX_M4_START, - .src_stop =3D IMX6SX_M4_STOP, - .att =3D imx_rproc_att_imx6sx, - .att_size =3D ARRAY_SIZE(imx_rproc_att_imx6sx), - .method =3D IMX_RPROC_MMIO, -}; - -static const struct imx_rproc_dcfg imx_rproc_cfg_imx93 =3D { - .att =3D imx_rproc_att_imx93, - .att_size =3D ARRAY_SIZE(imx_rproc_att_imx93), - .method =3D IMX_RPROC_SMC, -}; - static int imx_rproc_start(struct rproc *rproc) { struct imx_rproc *priv =3D rproc->priv; @@ -1222,6 +1143,85 @@ static void imx_rproc_remove(struct platform_device = *pdev) destroy_workqueue(priv->workqueue); } =20 +static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mn_mmio =3D { + .src_reg =3D IMX7D_SRC_SCR, + .src_mask =3D IMX7D_M4_RST_MASK, + .src_start =3D IMX7D_M4_START, + .src_stop =3D IMX8M_M7_STOP, + .gpr_reg =3D IMX8M_GPR22, + .gpr_wait =3D IMX8M_GPR22_CM7_CPUWAIT, + .att =3D imx_rproc_att_imx8mn, + .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8mn), + .method =3D IMX_RPROC_MMIO, +}; + +static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mn =3D { + .att =3D imx_rproc_att_imx8mn, + .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8mn), + .method =3D IMX_RPROC_SMC, +}; + +static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mq =3D { + .src_reg =3D IMX7D_SRC_SCR, + .src_mask =3D IMX7D_M4_RST_MASK, + .src_start =3D IMX7D_M4_START, + .src_stop =3D IMX7D_M4_STOP, + .att =3D imx_rproc_att_imx8mq, + .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8mq), + .method =3D IMX_RPROC_MMIO, +}; + +static const struct imx_rproc_dcfg imx_rproc_cfg_imx8qm =3D { + .att =3D imx_rproc_att_imx8qm, + .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8qm), + .method =3D IMX_RPROC_SCU_API, +}; + +static const struct imx_rproc_dcfg imx_rproc_cfg_imx8qxp =3D { + .att =3D imx_rproc_att_imx8qxp, + .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8qxp), + .method =3D IMX_RPROC_SCU_API, +}; + +static const struct imx_rproc_dcfg imx_rproc_cfg_imx8ulp =3D { + .att =3D imx_rproc_att_imx8ulp, + .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8ulp), + .method =3D IMX_RPROC_NONE, +}; + +static const struct imx_rproc_dcfg imx_rproc_cfg_imx7ulp =3D { + .att =3D imx_rproc_att_imx7ulp, + .att_size =3D ARRAY_SIZE(imx_rproc_att_imx7ulp), + .method =3D IMX_RPROC_NONE, + .flags =3D IMX_RPROC_NEED_SYSTEM_OFF, +}; + +static const struct imx_rproc_dcfg imx_rproc_cfg_imx7d =3D { + .src_reg =3D IMX7D_SRC_SCR, + .src_mask =3D IMX7D_M4_RST_MASK, + .src_start =3D IMX7D_M4_START, + .src_stop =3D IMX7D_M4_STOP, + .att =3D imx_rproc_att_imx7d, + .att_size =3D ARRAY_SIZE(imx_rproc_att_imx7d), + .method =3D IMX_RPROC_MMIO, +}; + +static const struct imx_rproc_dcfg imx_rproc_cfg_imx6sx =3D { + .src_reg =3D IMX6SX_SRC_SCR, + .src_mask =3D IMX6SX_M4_RST_MASK, + .src_start =3D IMX6SX_M4_START, + .src_stop =3D IMX6SX_M4_STOP, + .att =3D imx_rproc_att_imx6sx, + .att_size =3D ARRAY_SIZE(imx_rproc_att_imx6sx), + .method =3D IMX_RPROC_MMIO, +}; + +static const struct imx_rproc_dcfg imx_rproc_cfg_imx93 =3D { + .att =3D imx_rproc_att_imx93, + .att_size =3D ARRAY_SIZE(imx_rproc_att_imx93), + .method =3D IMX_RPROC_SMC, +}; + static const struct of_device_id imx_rproc_of_match[] =3D { { .compatible =3D "fsl,imx7ulp-cm4", .data =3D &imx_rproc_cfg_imx7ulp }, { .compatible =3D "fsl,imx7d-cm4", .data =3D &imx_rproc_cfg_imx7d }, --=20 2.37.1 From nobody Wed Sep 10 01:15:14 2025 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013067.outbound.protection.outlook.com [52.101.83.67]) (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 1BC9330B50A; Mon, 8 Sep 2025 13:08:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336908; cv=fail; b=XYQJWav0G+XCStOs00j2VHd668SE+ar1KG6LT+K0HtWumux3OFlRoz8wTcJKrJONM7eGer7TLbc+jRcLCQMR1YJIO1Eq/xTxyBGkGalShY7tomQcC/pa5/vgSrdoupUCxpDGaA9u6fYlyAsH0440EPVLb/9WORBTziPTY7jn5WY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336908; c=relaxed/simple; bh=6GASo9v8yQZfVfwa1TM8JFSiJ4rhYZwtavJNBGHqU08=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=nvLetcW+VYDLvjkJJQVJ/3OUVlNc9LNbDhwcYYC0EMBaMTccGNXzqJZEmRZuD+Z6Y/UFiH5YYnAKcGVXM1BvtUZGmWENe3sCY9fNUHlWsrtC37WwiptG2dqu2egB5dSdYm5zoZiqnFq/3ubUHVhmJqmk9TAtddwBnuC1WOzTiaE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=YoISQueR; arc=fail smtp.client-ip=52.101.83.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="YoISQueR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=n2SMxvGyToLfIGrIphP1e4BnLEnsGYvodqCIlZi82pANw1dRYeCxgtlkJ1UtR+hftT2yY3rboer+D+gU6nzU0P39m2/N1bzUpKow6DUF4FE74cTAhCjdC7JMA6Ts45LVjW31ZusZexQEWORDsx+qxlFRuR9Jz7RUXDHGAKSHxGYTCg5YciDxUxoo4bTcAkeI0YW5MDgZ0ut+MiXF3DLSDb7w/ELwouXylH0MOS9hly3CiBxUvfRl4Puj+isM9aVvrw1/WXCF9CAIDAi1bls2z2JgyzpSfge8Dz5aRAV1e8LUiDv4eJ2Q7J3kbY6gKRlAq8HENRv2k7aL6SToD88e2g== 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=8lX8bcT77AN4kyCi1Y8/buPj/MXD4Nh1MGrcsMUb4Ys=; b=D142K4LMMdcrKRVdGdbCxNy0++dN/UiKL7QAbNAHQcFKOFtAkVIdk4eUQYOhFx6ES00aJA1DibIBKnb77fYUDCWfVf0lVbe5WbdUpUCvajvDotQuIGPhCQ41xt6LU57tVeY8Ax+vE0p9203ERSnqsfWfmukodK4RB6fekVC2hucbD0JyG895jiW6V5R94cFNm2o+IR7RWoYvgl9HvImBSfL2NCqhekg+7tycKUpt8mbCjzUfw4RM/e8jdDssGcA5RyY6vVzVitC5N/jYnW52reKUBr5UPF2chQngQK0fVRlpGaKlAQEAABKP4sPEWntjOH+c1C3TC3/FIDZMM2/Q6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8lX8bcT77AN4kyCi1Y8/buPj/MXD4Nh1MGrcsMUb4Ys=; b=YoISQueRK+b1/PgCJAKZf/1npu/h6B3JhYNVc2NQDf0WRwI9PZD9GoecH8FgK/u0ZFzWD8ElmFs3Cd9SYcXnk6DYZybpwchlLb8DBkMlsUiZkKoc2LbxFoJFndqUzZHjCy/X3+RH+aRRB56ClSI89pitc2fHb1NuXdHPUM3mn/EFDo7nkEm0Gh7zjy2ZtKfOkh/xx6/u2des0L4OUP7Y7uwo5EISP65kTSnTaV5dqZQEXzCLKaLR5CvscnN58sjbeUKBPhTVq38tuNDVHyyaEYnP0AvonWdMYvqe4qSKfq72NcFEgrBeELausbba068BxlL0OtLCmrVqI9x6h/Fy+g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by VI2PR04MB10977.eurprd04.prod.outlook.com (2603:10a6:800:271::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13; Mon, 8 Sep 2025 13:08:23 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%4]) with mapi id 15.20.9115.010; Mon, 8 Sep 2025 13:08:23 +0000 From: Peng Fan Date: Mon, 08 Sep 2025 21:07:36 +0800 Subject: [PATCH 3/6] remoteproc: imx_rproc: Simplify IMX_RPROC_MMIO switch case Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250908-imx-rproc-cleanup-v1-3-e838cb14436c@nxp.com> References: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> In-Reply-To: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> To: Bjorn Andersson , Mathieu Poirier , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Daniel Baluta , Frank Li Cc: Hiago De Franco , linux-remoteproc@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757336884; l=7564; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=6GASo9v8yQZfVfwa1TM8JFSiJ4rhYZwtavJNBGHqU08=; b=9wePspCJP6RV94Wfp7WYziEReWJ/Qk/209fv67Bvtu1fiU37PnQxPu5birIckJwepnkVKo/tW qvsVJ5Ljt+rDjMP3wpslOH5LAWLHWDzo6iyAeewVP8meEWI6KFjlPcR X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0022.apcprd02.prod.outlook.com (2603:1096:4:1f4::16) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|VI2PR04MB10977:EE_ X-MS-Office365-Filtering-Correlation-Id: 32e06693-8df7-4b81-4c54-08ddeed8ca7d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|366016|1800799024|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?YXlTWm00Qkx2SStrSWJrNnloYkFpVENlQVVVVjNRN1pNZG9PZVp6RENSd3VG?= =?utf-8?B?WDUzWTVRalI5YlFWWGNHTnFERXZkOU5yVlNoa3BYN21OSDVaclZlNGtDNDA4?= =?utf-8?B?NGhoa3o5QVFBVmd0RTVobUxuWW93T3FmY3ptYXZESkFBc21HdG41ZFliN0Rw?= =?utf-8?B?dzdBRlkzRGNWckJVWDExeE1jalRaQjkyTGFHTHRlc01BNDJaTTFqWTZ3Z0tJ?= =?utf-8?B?Ry9iRS9sVjFMOVpmZW9ZekJwVUxwam9EMjdiK2JkZnl3U3FISThYV0pUZ1dV?= =?utf-8?B?NytzcVEzOEg1ZHV0ZlVzOGlHWitpMllFTkRsQ2JkT1MrYkpUR3dhQVZnQVJM?= =?utf-8?B?b1hkZ2krS002endHTzFBbWVCSGY5QXBtMlBVbVhWb0xBNExSOHA2d0RNc0d0?= =?utf-8?B?VC8rcEtKVVJKWjAzYjhqUXZqRUJydTI2YmR2dElJdFhSUk8xV3FpV0FtZDNs?= =?utf-8?B?dTB4bUxmQ1Y1ZzBmSHZsZUEvTjFMeXl3VzRSOTAzMUJNYWwrUndhYnU4eWtt?= =?utf-8?B?cUNuN2lkaDBKdHVTUmlIbkRDbWhnTXd6bjF3cTlMU2pqakhhRk56VUZlTVFC?= =?utf-8?B?SHA5cXAxL2xnQ2tuNXNpSHNUWTVSckVCbHFQdmk0dzYvMTI5U1BUai9SNXVw?= =?utf-8?B?WGtEUnprUFY1RVJtemZlZ0R6ZEo4VlhqYkVLNjNVbnZmZjBMejZSN2xxM3ow?= =?utf-8?B?MnNlVllPa3lsNFdCRXNXYnJjcC82RjBxODhNTlVWLzN4ZzhIOU5UeXdRWmRB?= =?utf-8?B?N25QRFc3Q3BUQkpGZUlaTlBaY1FDQUxmdGhUcGVYMTBoZkUycmZGL3NCdXlH?= =?utf-8?B?OGZ4TzVrZ0prQ25IeEEwRWZsa3dPcDIvTFRYSno3SjRpcE1JOVhkYVMwckx0?= =?utf-8?B?dWhxSmFmRGtaL3Y0b3NPZ092cmVzMm5obk91UUNsMzBHRHhsd0xrY3A5ZjNZ?= =?utf-8?B?blZiVDNEVkUwalV3cSt5ZXpxTG5IR0c1ZE51czhtUW5NZDZhTVh5MDU1YTZ0?= =?utf-8?B?YllIc2x2TWhXQytCcXdBRktKTHRWSlRFeng4clB4UFRlK08wVDAzZ2RjenRj?= =?utf-8?B?cEVHVDkrM3h3QTJBdDR2WXpVYVRIcFJrZG5VMnljV3VabXFENjJBRmFhTTRq?= =?utf-8?B?czJsYUREbnBYWFp2dWpzUHRxOU9sOHdZNmZLZjBCUm1teW81TWFPMERyeU5r?= =?utf-8?B?ZzJLRTJZdkh0STlCNno0UWFnRjlJSG9EM2J0Q0wvc0hyam5kZWV3aHUyM3Rl?= =?utf-8?B?ZTN4V1ZHOVBIdFY4NnBPbnhZTGlwaldxcGM2UVRibEgvSDlsanJGbVlyUW5h?= =?utf-8?B?R2RaOXhXaGgxaVQ3MXlkS0FTOTQwcnhubHlOZmE3ZDJWV1N2T25hM3NKNEtJ?= =?utf-8?B?UTY0eHErSVQ2S1FoRFFERnd3czZqMFJlM29Eb1pDMHpzdnNOTzRNUXhzMDJX?= =?utf-8?B?ZjVwdWVvMFdBUnVhd0JzcnVWNmVYbUhtbm5vdzBidkNSWG9JamZ6S1pudFZG?= =?utf-8?B?NzhMWWdpeXdLZ25BdmtVWnZGQytlT0lIamxsaE9Lbmdtb1dYWnB3RXVNWm9T?= =?utf-8?B?eWprMVZocHdsNkVTSG9jVHYzMUYxaVRaTmprZEhJeTkxRFZGYkpyanN0eC9y?= =?utf-8?B?SGtOaklRU1cyWDRCUDIrWU16RmxuZlZJRXZ1SGhvRW16enJhdXUwMHE2Ykc3?= =?utf-8?B?UExzZEdvblFpbFFsUm51TG04aHhBSHRTYTlmcW1WOXJwdlVuQ0J0ZUY5ZTZS?= =?utf-8?B?RE1wVE44QnQraFV5U01aUmhMTjdMYkhycUEwV2NDRlJtZC8zUlZ4YzUzZkdo?= =?utf-8?B?OFl1WEFwcUNBWlRBeU9yN3JFSmlmQTkxbStOYThDRDJhTTcyU1gxeWsvdG9j?= =?utf-8?B?WUJacmFvWitodmUxWVU1QWNXSDhpdkVUYkdxMWhrR3UvbE9lcmFLT014RU4y?= =?utf-8?B?bHQ1bkJQdjV2NlBjUnc1dnU3V0FYMkwzQmZ0Q0JkemdKVCtUbm1uTUhvcG9o?= =?utf-8?B?Q2dMSjZzdEF3PT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(366016)(1800799024)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Zk9LSytJK1BUM2IxaUdLUmFGQXk0eHIyemhMUU9zZ3VlbkxpTXN6d3lYQkpM?= =?utf-8?B?MnFKR1ozTFovUjRrSDVkcFZyaG1HL3UrK0U0WnJma2hITCtSTEVROUFmb3Rx?= =?utf-8?B?cHJ3SUFDTU1aUWhrUmRiUjZPRWsrbWZxNkhSb2hwbVJMNkdDaEtwU0FYSjV1?= =?utf-8?B?cFBpcTRiVytHSnUyeXBpSThjbXVSTzNoYjFqVkhmcTd1Y3hsQ2Jua2dnL2hR?= =?utf-8?B?WE4rT1k5QjA5OHRWK08wSG96aXdEaDJJSXhCcVczTEJsRHZvYmUyS044WHEw?= =?utf-8?B?S1Yza0tOUDR1V202UTkzcU5mYU9BR3RrZFdhN0hEMUxTUWN5ZWNwVEZXS3JF?= =?utf-8?B?eTFiUHI1N2dwRG10RGFlVjB2K2RBeEgzeVh1MDN3Q29Va2ZlSVh0c29xeTFj?= =?utf-8?B?VFVHSy9meHRLblIzK1NwQ3dQSjBlbjZDRXR3N09rdUtZbWkreWhWcjFVWnhX?= =?utf-8?B?enA5VnlPdzVVRkZ2TXhEUmhpUnJocVFqZzFnZ3diQmo0YjRUemhOdTdnNGJs?= =?utf-8?B?eFRsT0ZvYW4xMVBZNWsvTGk0bDBKclF6Nlh0ZzAvSFg3TTU3K25QdXFsY3NG?= =?utf-8?B?cWdrWHFpb3ZQYW5LUkZMR0V4ZU9JWmJhbnkvRnhadEpMM2dydW54ajQxK0Nx?= =?utf-8?B?a1hQSmMzMFh5b1N5K21IUzVOSFNZamFxZXdvbHB3Y2dQVGQwR2pzanhSNlow?= =?utf-8?B?dkg0NkRNM3VLVW5IVjhxVkNiMUdicVBpamhQSUliSEVZS09rNi9WbHlXUndo?= =?utf-8?B?c3JoZTl0cVp1Um0yU1k4N3lUbjI1a1V5Q2pQTUZHOXpkWjJSUEZ1TjJ6Rnl3?= =?utf-8?B?VEhJVThIYWxYNW9PNGI2WU1wNTB0cHVmWlJjQ2JidGVPWkMzV2ZKbUV1UU55?= =?utf-8?B?ZkNtTjhuSjdlTmYvM2FkcUswMFNVNFdpcU94SENwL0N5SGhhTkU4TEpQZFFN?= =?utf-8?B?cUFFdGhNK3FsTUVEK1VPbFZpY0VqWHB2WEdob1orWnlOcnRRNmRQT0RoazZL?= =?utf-8?B?V0ZKdkQ3Qm1YaUxJU0NBaDJRWVI5ZGtibk5SRkc0OVFNandyM0s4NGg4SlFM?= =?utf-8?B?cVZnUkdEbDZENFYwU1FaL0lmeFFIdU5abE1Ud1JUWHY4QXhFdmxicUdKdFdV?= =?utf-8?B?RmhuRDJVc1dmMkM0cERhQXlXOVdDSHEvdnNTWkhjNER1aWdROTYzNlpxQXZH?= =?utf-8?B?L3hvam5jc2tJSHFYcW12QjJwek1IM2ZkSkVjeERQbkdBY2IxZGFRVHIxbU9J?= =?utf-8?B?ajVoSEJzU0VITXBrZTUxMmFDMDBYQWpsQy9RNVQ2L053bXFycXMzcGFpekNs?= =?utf-8?B?UU1HT2hqWktNQVozVDNVaVBHMW1PSnErNVVOcmZCM0hUN3hWZGNKdlBkVUgr?= =?utf-8?B?aHdlOEdCSlRWRXd1aHM1RDdxVHdWby9lcmlEeEVuWlNVZ01LZTFHYW9oNDRw?= =?utf-8?B?VjdmcUwrMlpPZVltN1g4bUVIeFMyR2JNUDZOYjQ0d1hhVTF6V0g2MkRBbGti?= =?utf-8?B?WXh2eTBRY0Z0MjM1QWloWVVtLy9YT0JIaGE2emFSOE81QjVJcytybFp2ZStJ?= =?utf-8?B?b3duMGx2Y3B1WW5PMGNIbHQ4OEp6Q1I1RDVZWlF4L21ncGs3aks0cWE2Njdz?= =?utf-8?B?STFSWFBVL1d6ZFlTc0ZNQit1TThuWGRkMTZOa05XUHRrUDhpc3paWjh5Mjc2?= =?utf-8?B?cW9rWlV1eWNMZjc3cHRIdXlYNGxVSnhTVnNrTVl0Ri9HZ09QOExndVl6ekxn?= =?utf-8?B?N0NOM3V3bHlxeVc0UkN0TjNtY3V5bTNUVGQ2STlsTVNieUUvRXRJaEVxR0Zn?= =?utf-8?B?Rm9JQ1UxdTBQUWVPOUlvT0Q2NzVZVHNLNEV0MjZvdGJjbGh3d0RwaDBobjg2?= =?utf-8?B?RnpJbS91YVNGYlRUNjJ2U1VtN1cxZitFcTRieDZVVVpQZFpzVjY2QWU3cHFl?= =?utf-8?B?eUF5TVNiMW5abEsvYjc2cGlHRUxqcm0zbzUzSzd6cXNXOTU5ZXU4QzBzODR6?= =?utf-8?B?WUNrNFZnRXJaYkU1WVFtbVcxRUVjeDFUZHgxVkduUG12WXdoaVU2OVkvSXkx?= =?utf-8?B?ZUpKOFZBTWg3TDZiTFRuSkRuNXkreUgvblRqUDF2UXVhQVg0a1NCYkVsbkVZ?= =?utf-8?Q?ZgxQKVFoYF202PViMXnEALRFU?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 32e06693-8df7-4b81-4c54-08ddeed8ca7d X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 13:08:23.6016 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mjhsmZyHk+P5pHdi+GTjEEuJzo5otm7L5JpUWm21kRZJmbM/i3IeoMJfoNDr8gtXsP+ptv7LHZemIHkMljysxw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10977 Introduce imx_rproc_mmio_{start, stop, detect_mode}() helper functions for all i.MX variants using IMX_RPROC_MMIO to manage remote processors. This allows the removal of the IMX_RPROC_MMIO switch-case blocks from imx_rproc_start(), imx_rproc_stop(), and imx_rproc_detect_mode(), resulting in cleaner and more maintainable code. No functional changes. Signed-off-by: Peng Fan Reviewed-by: Daniel Baluta Reviewed-by: Frank Li --- drivers/remoteproc/imx_rproc.c | 148 ++++++++++++++++++++++++-------------= ---- 1 file changed, 86 insertions(+), 62 deletions(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index af7b69d750deed734668cb413b29378e5ca7c64e..c37dd67595960f08fd85c0b516d= 0d03855cec9fc 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -285,6 +285,17 @@ static const struct imx_rproc_att imx_rproc_att_imx6sx= [] =3D { { 0x80000000, 0x80000000, 0x60000000, 0 }, }; =20 +static int imx_rproc_mmio_start(struct rproc *rproc) +{ + struct imx_rproc *priv =3D rproc->priv; + const struct imx_rproc_dcfg *dcfg =3D priv->dcfg; + + if (priv->gpr) + return regmap_clear_bits(priv->gpr, dcfg->gpr_reg, dcfg->gpr_wait); + + return regmap_update_bits(priv->regmap, dcfg->src_reg, dcfg->src_mask, dc= fg->src_start); +} + static int imx_rproc_start(struct rproc *rproc) { struct imx_rproc *priv =3D rproc->priv; @@ -303,16 +314,6 @@ static int imx_rproc_start(struct rproc *rproc) } =20 switch (dcfg->method) { - case IMX_RPROC_MMIO: - if (priv->gpr) { - ret =3D regmap_clear_bits(priv->gpr, dcfg->gpr_reg, - dcfg->gpr_wait); - } else { - ret =3D regmap_update_bits(priv->regmap, dcfg->src_reg, - dcfg->src_mask, - dcfg->src_start); - } - break; case IMX_RPROC_SMC: arm_smccc_smc(IMX_SIP_RPROC, IMX_SIP_RPROC_START, 0, 0, 0, 0, 0, 0, &res= ); ret =3D res.a0; @@ -331,6 +332,23 @@ static int imx_rproc_start(struct rproc *rproc) return ret; } =20 +static int imx_rproc_mmio_stop(struct rproc *rproc) +{ + struct imx_rproc *priv =3D rproc->priv; + const struct imx_rproc_dcfg *dcfg =3D priv->dcfg; + int ret; + + if (priv->gpr) { + ret =3D regmap_set_bits(priv->gpr, dcfg->gpr_reg, dcfg->gpr_wait); + if (ret) { + dev_err(priv->dev, "Failed to quiescence M4 platform!\n"); + return ret; + } + } + + return regmap_update_bits(priv->regmap, dcfg->src_reg, dcfg->src_mask, dc= fg->src_stop); +} + static int imx_rproc_stop(struct rproc *rproc) { struct imx_rproc *priv =3D rproc->priv; @@ -345,20 +363,6 @@ static int imx_rproc_stop(struct rproc *rproc) } =20 switch (dcfg->method) { - case IMX_RPROC_MMIO: - if (priv->gpr) { - ret =3D regmap_set_bits(priv->gpr, dcfg->gpr_reg, - dcfg->gpr_wait); - if (ret) { - dev_err(priv->dev, - "Failed to quiescence M4 platform!\n"); - return ret; - } - } - - ret =3D regmap_update_bits(priv->regmap, dcfg->src_reg, dcfg->src_mask, - dcfg->src_stop); - break; case IMX_RPROC_SMC: arm_smccc_smc(IMX_SIP_RPROC, IMX_SIP_RPROC_STOP, 0, 0, 0, 0, 0, 0, &res); ret =3D res.a0; @@ -855,15 +859,60 @@ static int imx_rproc_attach_pd(struct imx_rproc *priv) return 0; } =20 -static int imx_rproc_detect_mode(struct imx_rproc *priv) +static int imx_rproc_mmio_detect_mode(struct rproc *rproc) { - struct regmap_config config =3D { .name =3D "imx-rproc" }; + const struct regmap_config config =3D { .name =3D "imx-rproc" }; + struct imx_rproc *priv =3D rproc->priv; const struct imx_rproc_dcfg *dcfg =3D priv->dcfg; struct device *dev =3D priv->dev; struct regmap *regmap; + u32 val; + int ret; + + priv->gpr =3D syscon_regmap_lookup_by_phandle(dev->of_node, "fsl,iomuxc-g= pr"); + if (IS_ERR(priv->gpr)) + priv->gpr =3D NULL; + + regmap =3D syscon_regmap_lookup_by_phandle(dev->of_node, "syscon"); + if (IS_ERR(regmap)) { + dev_err(dev, "failed to find syscon\n"); + return PTR_ERR(regmap); + } + + priv->regmap =3D regmap; + regmap_attach_dev(dev, regmap, &config); + + if (priv->gpr) { + ret =3D regmap_read(priv->gpr, dcfg->gpr_reg, &val); + if (val & dcfg->gpr_wait) { + /* + * After cold boot, the CM indicates its in wait + * state, but not fully powered off. Power it off + * fully so firmware can be loaded into it. + */ + imx_rproc_stop(priv->rproc); + return 0; + } + } + + ret =3D regmap_read(regmap, dcfg->src_reg, &val); + if (ret) { + dev_err(dev, "Failed to read src\n"); + return ret; + } + + if ((val & dcfg->src_mask) !=3D dcfg->src_stop) + priv->rproc->state =3D RPROC_DETACHED; + + return 0; +} + +static int imx_rproc_detect_mode(struct imx_rproc *priv) +{ + const struct imx_rproc_dcfg *dcfg =3D priv->dcfg; + struct device *dev =3D priv->dev; struct arm_smccc_res res; int ret; - u32 val; u8 pt; =20 if (dcfg->ops && dcfg->ops->detect_mode) @@ -937,41 +986,6 @@ static int imx_rproc_detect_mode(struct imx_rproc *pri= v) break; } =20 - priv->gpr =3D syscon_regmap_lookup_by_phandle(dev->of_node, "fsl,iomuxc-g= pr"); - if (IS_ERR(priv->gpr)) - priv->gpr =3D NULL; - - regmap =3D syscon_regmap_lookup_by_phandle(dev->of_node, "syscon"); - if (IS_ERR(regmap)) { - dev_err(dev, "failed to find syscon\n"); - return PTR_ERR(regmap); - } - - priv->regmap =3D regmap; - regmap_attach_dev(dev, regmap, &config); - - if (priv->gpr) { - ret =3D regmap_read(priv->gpr, dcfg->gpr_reg, &val); - if (val & dcfg->gpr_wait) { - /* - * After cold boot, the CM indicates its in wait - * state, but not fully powered off. Power it off - * fully so firmware can be loaded into it. - */ - imx_rproc_stop(priv->rproc); - return 0; - } - } - - ret =3D regmap_read(regmap, dcfg->src_reg, &val); - if (ret) { - dev_err(dev, "Failed to read src\n"); - return ret; - } - - if ((val & dcfg->src_mask) !=3D dcfg->src_stop) - priv->rproc->state =3D RPROC_DETACHED; - return 0; } =20 @@ -1143,6 +1157,12 @@ static void imx_rproc_remove(struct platform_device = *pdev) destroy_workqueue(priv->workqueue); } =20 +static const struct imx_rproc_plat_ops imx_rproc_ops_mmio =3D { + .start =3D imx_rproc_mmio_start, + .stop =3D imx_rproc_mmio_stop, + .detect_mode =3D imx_rproc_mmio_detect_mode, +}; + static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mn_mmio =3D { .src_reg =3D IMX7D_SRC_SCR, .src_mask =3D IMX7D_M4_RST_MASK, @@ -1153,6 +1173,7 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx8= mn_mmio =3D { .att =3D imx_rproc_att_imx8mn, .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8mn), .method =3D IMX_RPROC_MMIO, + .ops =3D &imx_rproc_ops_mmio, }; =20 static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mn =3D { @@ -1169,6 +1190,7 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx8= mq =3D { .att =3D imx_rproc_att_imx8mq, .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8mq), .method =3D IMX_RPROC_MMIO, + .ops =3D &imx_rproc_ops_mmio, }; =20 static const struct imx_rproc_dcfg imx_rproc_cfg_imx8qm =3D { @@ -1204,6 +1226,7 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx7= d =3D { .att =3D imx_rproc_att_imx7d, .att_size =3D ARRAY_SIZE(imx_rproc_att_imx7d), .method =3D IMX_RPROC_MMIO, + .ops =3D &imx_rproc_ops_mmio, }; =20 static const struct imx_rproc_dcfg imx_rproc_cfg_imx6sx =3D { @@ -1214,6 +1237,7 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx6= sx =3D { .att =3D imx_rproc_att_imx6sx, .att_size =3D ARRAY_SIZE(imx_rproc_att_imx6sx), .method =3D IMX_RPROC_MMIO, + .ops =3D &imx_rproc_ops_mmio, }; =20 static const struct imx_rproc_dcfg imx_rproc_cfg_imx93 =3D { --=20 2.37.1 From nobody Wed Sep 10 01:15:14 2025 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012067.outbound.protection.outlook.com [52.101.66.67]) (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 16A8D30ACFD; Mon, 8 Sep 2025 13:08:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336914; cv=fail; b=WJFb1V+b8IPtrmuNwCsDe0M6vPmSD/BDUlFO6apTfEoLD3XhknyH7zA6bac5EUc3TfYL/a6WaJYxxZVweruSvvfmEds8zdD0oegVcGv3NLOUSLuZhK6Yveu/JYTWHADPF3199wVvuyjUDeexKBasGn7WX/vf1Ffaa6lUZj+xwFA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336914; c=relaxed/simple; bh=fFdy4GWtWZ9gkc+MJDVpiTWuz69q9eCQtx0+SsNyjDw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=RGBi7jb3gs6QnwtiDl8s9rcq3IEGS1fxyGzSxh/hZ484u/e8O1LMikCHmzJBu+KJXHEd2Osydh1Fvwew5Gz0SxaK7yBL7Bj7aWQdkipjQQgUEV8a25RgeXvArvh7TA7zY78g5zmtE2fq1gqm7H0gHVkFGmmGlDb7P+8yQTRagI4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=loQu14/Q; arc=fail smtp.client-ip=52.101.66.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="loQu14/Q" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yyiVzPhxaF52rS1Ahd2Kz/YKVCuH0x9AgLCm5u9z3FjWlW6udd9I45XOccF9NDyebUEZv59pR4KdNiK6UEWfGp0uUBDCmaArmxpjDaS4IiMgK46ic4/gXEws9brhGV9NExlRNj/170EIhusE3zRGluw8latqfTI56BDBHktLd8+yLMbaf2mFml/GIl2iC1YjsGdgCsEcFneeHV/AKTW7BN5p1Fga66Y7k9weqzqG88DGX+2dwSwElCpxwhcE6JmRwdWDeaNkKMs1Ew9A5GiGht4p3vJ/m6Cap6aNJLJAAHQ3/BSnQ+JeQebeZ/RBBTwAjIEhvPJTErSuwOfRNau+ng== 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=dKJW2gF61465ma9yL3dbdHFvemXR2ypy8f0vgNgvkG4=; b=PoCfcCTWO93EoXT89M6OtsPGNmJ7XSlJ7AYFT6hua9jnmoG9Mx8JG/J8jTgspoDPDgboa0obGOlkXTzJ/mSWD2MG2fnlSmR4kU9g7mxynnNQ49ce6thdPPmBlmgsdUPiX+BHAhItciSMnWi1ouoVVwjhGwJmmmc9innnkU6gy4akLHznMi6Jes9wQO8C46o4IjAM7bj5egmWdwVaXiX+f9pTRxgfvRIQ3ia0S2uMfU10rmIkwDP/ysTF/5TOyFsIiwN+Ik8UDBxjXxZvXlpKfTRFQUzpOIxWnHOkZiquToJndjImClDqYQ3CyywD8UA5ioBEyQLTgLQtawv835+sDQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dKJW2gF61465ma9yL3dbdHFvemXR2ypy8f0vgNgvkG4=; b=loQu14/QfWTB4F6IlGxmTXdDLCP1bK4UlVfpuX4p3ScPyJiAoOA1ykPV/VVoIHhSao+9JcKm4hOFuIrh71qu1nTjazbLDKFyJI3bX19NQ8Ayt5LKG7hLmAFjIPmTXCgpY5V5y0PLxM2ggpLI7MmLo4G3e1brkCnC7fXjSnGM2SEvbUkA/Nu730mtXP3loUuxtUil8vIAblkc+TbusFCSoNqaYIe+j3WkuG3gNx41zG2j56JCkL01o5s3yPXGd+ajJy37rxf3yF5Gv6rpX3yTjn6SYnjfWcCWlGkf0uSXd/YiulKzAc1xarN1WU02ZRCW3qIvWoNW4+d3OGXhd3hoxQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by VI2PR04MB10977.eurprd04.prod.outlook.com (2603:10a6:800:271::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13; Mon, 8 Sep 2025 13:08:28 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%4]) with mapi id 15.20.9115.010; Mon, 8 Sep 2025 13:08:28 +0000 From: Peng Fan Date: Mon, 08 Sep 2025 21:07:37 +0800 Subject: [PATCH 4/6] remoteproc: imx_rproc: Simplify IMX_RPROC_SCU_API switch case Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250908-imx-rproc-cleanup-v1-4-e838cb14436c@nxp.com> References: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> In-Reply-To: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> To: Bjorn Andersson , Mathieu Poirier , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Daniel Baluta , Frank Li Cc: Hiago De Franco , linux-remoteproc@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757336884; l=7522; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=fFdy4GWtWZ9gkc+MJDVpiTWuz69q9eCQtx0+SsNyjDw=; b=uvjEwyHLysXx40gHqVJu/UsRj040dgYwBmEmadGSd6DqgCmAiAEOyBd398xCGfZlcmmAwtkrX uhrBU0jpvVZBlSNH//RoJJhbV0/iSosdW8OCFaKx54OxDU208LWA1t0 X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0022.apcprd02.prod.outlook.com (2603:1096:4:1f4::16) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|VI2PR04MB10977:EE_ X-MS-Office365-Filtering-Correlation-Id: 186fdfa5-2a37-487b-5a1d-08ddeed8cd40 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|366016|1800799024|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bmFqcjFrQ0VNNEZRN3UxaHp3bFc1MU0xN1lEMjlacXJhajh1N3l3K2daVHlG?= =?utf-8?B?a1lIRS9JYnMxcXdzQ2RtTDcrK2VhOEd5SGloQ25ZVmJrRU10d1M4Uy8rWEQz?= =?utf-8?B?b20zRHlzWnhCaHVmQWJCanBvUFBPNERWT1UwQU5SWWhiSzR2elI1Wmo4ZTZp?= =?utf-8?B?VEZqSy9jb3NOMzBIZnAwL0Vmd2ZsdTljYkV1WjNMSGo0Mk83eG9iRzA2UHBX?= =?utf-8?B?MklzL3l4b0YrdWppTVZHMGpFL1dMWHZnSVNGUjkrRElBbVpBK205bE00RXFs?= =?utf-8?B?eWt4UkppN0VSK1cxa0R5cWFJUldBSlhjams5dkhjSXlFblhzaERsRktSRCtT?= =?utf-8?B?ZG82ajNvei8zeGw2VlluQ0pGbWlMU2Z3Ymo1QUdOUWIvbE1hYVNMSzB0aFBK?= =?utf-8?B?cnNxb0dEZ1hoNjZNUlF6VUFKVlFJWjVnSm5Ia0JCZmdyMndRVjVPRUdKaDht?= =?utf-8?B?RXJJdXREYkNxbk8wUm93SDNHbHFSRnZjR3VzOUppaDVmVk1XVW54Y2dYVHdp?= =?utf-8?B?MGdIZ21RRDhPb2l3bWUrK3NDajE2SGNrMVI4aTh2SFhDU0VCOU1KSVk0ODZR?= =?utf-8?B?d1ZmWGFBbGJXNUozTjlOdkhEY2g2cGI5L05XMkhqR2xDMzQ0MVVlWmlhajVW?= =?utf-8?B?NGhpNndidml5b3NjV28vUmI5aHU3UUl4UkN1MDJkV0Z4MDYyTWw3bFI3K1kx?= =?utf-8?B?bHZRdUtmbVRhcEhzdmE1VUtYT3dPbXI3c1FtMUMzNGxEOFJpcUJTMk84ZXdW?= =?utf-8?B?T2ZLVmFGQXFxaEMydXFmUFBaOWpGenpvclAyaEx2OHVxTDEyVHhQWkZOU0Vz?= =?utf-8?B?UVRmQ2Z3c3Vsa3BCbGhFWVI0SkliTW1JWCsrTnlkdjc5RDlxMUozOWgyY3Y4?= =?utf-8?B?YVRWdGxkbmhUeHU4SDFWb2lOdVRtT3FlUys2UEJxcHE3ZXdRZU1XUzFjNUZq?= =?utf-8?B?ZW56Zy91eEJZM1FuTHhKaytEZ3QrTGU2ODR4MVEvaUdyNGhUNUxzaUsrUTYw?= =?utf-8?B?OFlZcEdXdmp4Q2VSMDY3aFZHakhXNjlSK3hqR2FseEttTE5HR0kySlJ5bDBk?= =?utf-8?B?STJjM1c1a2luSFJyZHlFdGNLcVBzWDMwLzZhRk5kUmllaFFGWkcwd0FpeWsr?= =?utf-8?B?R1ZPRVpzMzZjVnJhS003bzY2WGFCNW53ZnRFWVpkbkFWS21GYi8zYiticGxR?= =?utf-8?B?MFJWakNPQ2tPMXBGdzMvcEpPMmFhTzZjR1RyOG8yYS9mL1NoVVFMYnhSTHRR?= =?utf-8?B?MnFuYU85Qkh3c1lwQlZBd0FhOWYzY1cveUwyVmxyZDNOVCt3WlB2UzhBWU5y?= =?utf-8?B?Q2NMUUQvUFEzTzJHMW5iajFlcTRTYUFjalp3Q1lwTWUyTlUyd0doT1BkSXh4?= =?utf-8?B?LzI0cC9VbXlTSzd2bnltNndnWW1sQVNaWE54RXVOMmtoVVJEbC8xT3ZjNjBx?= =?utf-8?B?SElvWEllQVJyK1lXc1FqbDdNVFU4TkNWamJxc21icWZRbnNhSkZ3TGJrWTdm?= =?utf-8?B?dFJFanZKUjdMUFAxTkZ1RUV5SHVQQmRFajVHZ1BHRDhwV3pibnkzNk9sN21p?= =?utf-8?B?aVY2S3Bia1F5cGl3VWRHVTZsTkpyTEFIb3NhMmdzNVNYdnZsRmRDbloxYXlo?= =?utf-8?B?ZHc2NEN2RXBvSzNHM3lnc2MxMmhab3dXQmVQdjkvSHcvUEFrMlVDbEkyc3Q4?= =?utf-8?B?dmpHR081TFFyM2ZCRGRGd0tCVVlEYWtYcjI1VTFGQ1BNZTVwcWIwTEphZ0J5?= =?utf-8?B?RjBQR0plbWhXUXBYU0U1eTdzRFVmQ3U2Q0t2ekZrc0Q1ak44UnkrM0xxNGRs?= =?utf-8?B?K1BTZHFISUR5dXBNa0YzWXNuTGlaN2NjS1hvQ0xMM3puM1FyWFNkRVRNSFRl?= =?utf-8?B?djY1SE5UK1BTM2hJN3dLNzhkTlcvYkFGdVdRTFFuUHRoQXkrTVl0MVpIM2VB?= =?utf-8?B?bWw2eDZ1ckFZNlF4dTB4T283Z09mdjIwK2dCODFCTGMyM29JRGVQa20vMVU5?= =?utf-8?B?cUZCanJkbVNRPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(366016)(1800799024)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cSt0NUNVNW5VdU10cGtFMlpjUndhRzlESGtDZGdEY0ZVYkIzelFhTUowbGU4?= =?utf-8?B?K1V1WHN0QUZOcE9qUUIrbTAvUmU5REhzWFlPSnZDUmZHbWZ5TVlGY2xNdjB6?= =?utf-8?B?cVM0YThHRzFrTlVlekpMTUZvczcvcmNoNlJYTnk0WEE5dFIzclh1Z3pYcVMv?= =?utf-8?B?MG5XRm1DYjNvNjI4S3lMU2c0bFpBSzUzemozRG94c0haOVp5ZnIrYVludmEw?= =?utf-8?B?MGYwNlZvMnBjNUNCOFRid1VBN0tmVUl0dkRLZTM0Nk9uRXRNT0NxUzBLVjZU?= =?utf-8?B?WTNPditBNUsybGxmWE0zL1BUcHFqdmpUbDRaWGF2L2Y3TlRFWENaTEtYQXR3?= =?utf-8?B?TFZLRzUwR3J5SGsvNnl5K0VpcWJvL1U2K3Z3MWZIUmFGeTJHbU1aazRqSldZ?= =?utf-8?B?aWt1N1lYV3hlRUlqaDNJTVRNZXlFS1lGbUhmRkNvOE9Qb1VKRngwN2owRE1P?= =?utf-8?B?RHdyYldXUDNLNDdBTW5uc2k0K2ZLVEtKdWtDeG5yVDhrMG9BUlpBOXRManQ2?= =?utf-8?B?UEVZc0JKU0oycktHTEM0bHc4dDA1Tm5aTWlDMkQrOGd5SDlZRXFFVjJzSGdi?= =?utf-8?B?WCthcFlkRzZqZWxkUFBNL21iWGdNVkxxVEdsS2lrNW43N3FMMU5NeEwxM1F2?= =?utf-8?B?TEd3ZjVxZWJYeTJaVkt2OHBWdHI4QVh6eUI3WE5Xd29SVGJxbnI1OTNSZVhn?= =?utf-8?B?ajRYVnhkOHpzRUt0ekluREtMT0h6TGZ1d0ZZRGc3cDFlTGNDcXVuQnZoSFF0?= =?utf-8?B?Ukxwa3RtN3Q0cTYyZHZjc2pYdXl1VzdqZjlvUE1kTU5OUnNEUzRzc3JzT0J0?= =?utf-8?B?eDdJM2FSTU9KeEl6ZkxqaVl5dXFZbXZQYk5IUUVpUkNLS0wwdFhjbUdjYTM3?= =?utf-8?B?TXVPWVhuc2VUdDdsTG94dHVmVXRRY3h6Rjl1YmdlN0kzNFF0d0FqSm5QVEJt?= =?utf-8?B?RExGdG5SVXlmMEVXRCt1RmRRb1EzMEdvMS9nWXQ4Z0lYRHArME9Nd3pXWXBq?= =?utf-8?B?U1FQYmRDaWxtck5VdEdhUWxydWlPMXdpanF5cjhDMjhWbmNSWWkwOXBZd21X?= =?utf-8?B?UUlvcXdvK2tOcHhYM2w1dm9SNnpHSkxtakhpU3V3d2pSd3hvVU0xMDM0S2Nk?= =?utf-8?B?NlpleWJsK1Yya1dySU9UL1pIQVA0MHRyejFROFErWTA5aURsV2RRa251Q3Rj?= =?utf-8?B?bzFsSlllMUordnpPcU9HVE42VFJ6NTZHWXgzZzFDam9SVlNOOHlnUzMwbG9j?= =?utf-8?B?NmNLMFc3OXl1UFJzVUdtSUgzZW1kc1dXNWZvZ3A0TGNPWEloMjl2aW9DTEJ1?= =?utf-8?B?a1F4bFhVSzk1Qlh3bTg3NjdaYThFWkJKeitHYldXM3ZGMk9oR25DRzBoT1Zt?= =?utf-8?B?bkZUL1k3VW5MMERSdXRwQi9YQ0ppbGJCM3JwcHdYVWwyMmxUZGpPeHBPMmF1?= =?utf-8?B?SzFhQklyaTFsbmV0NTVXWnRkWTF4YzlNeERyL0JwSldqdUNlRjVNcGd3TVc5?= =?utf-8?B?VmU3bXh2a3F2WXRCRHJOd296L1BhV1Z3WHlIZTNSN2RsYmNMbGRVVWpZTlhJ?= =?utf-8?B?RUNvU3kxcDhleVptelNBN3I3SGhPTFpXOS8rbzdnaXhMK1puV2VGSlMrM3RX?= =?utf-8?B?L2cveG5tQmgyaUN5OGh2SWUzbWFZVkVFTGZRL0dmQjJlaVR1ZDlmeW11WHF6?= =?utf-8?B?K1RkTHdYMDZhMG1KLzVZK20vUzdHWkl6ekxCUVR0WWloLytqMUVDQTl0aUFP?= =?utf-8?B?aHUyY3kveGRDNU52UFJXMzZBdTMrbjVvZWc5SU1GaEVqY0NYSUpmM09tbmZW?= =?utf-8?B?TTNqdzdaWHRnNjRQaEgvYVdPaDN5aDhXZDZiTGMwZ3pDb1NCSW9Sc2ZuRFZq?= =?utf-8?B?MlQxOFlmN1RLc2EyejExMFhmRGJtK2ZZZTAvVGxBTzg1eXNzekpPQnlIREZp?= =?utf-8?B?OUZhN0ZnQjVqZklIUjh3bjhqekNzbGhYZHptT25ZcWdqeXVScXQ4MGdsREds?= =?utf-8?B?NERqUDN0MWM4SldYdFlEYlUrc1QvZlhucFJaa09Mek96KzY2c1BQYVRLQzVU?= =?utf-8?B?NjlPZk0ydGZSZnJUWmd5d0V1WU1tMjhUUzRNL1I2Q0dkLzByNEt0QktiZVY2?= =?utf-8?Q?9Phn9rxYuL0yHI0Qjuy01i+gs?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 186fdfa5-2a37-487b-5a1d-08ddeed8cd40 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 13:08:28.1704 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cs6h9QHVesfprmyVdvds+g47hZfYBMivN4I2EfamKTEyQTFf5YZQKaQXlaPLXJNZrKu/wZfT6qqoWCc8JIhENw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10977 Introduce imx_rproc_scu_api_{start, stop, detect_mode}() helper functions for all i.MX variants using IMX_RPROC_SCU_API to manage remote processors. This allows the removal of the IMX_RPROC_SCU_API switch-case blocks from imx_rproc_start(), imx_rproc_stop(), and imx_rproc_detect_mode(), resulting in cleaner and more maintainable code. No functional changes. Signed-off-by: Peng Fan Reviewed-by: Daniel Baluta Reviewed-by: Frank Li --- drivers/remoteproc/imx_rproc.c | 149 +++++++++++++++++++++++--------------= ---- 1 file changed, 85 insertions(+), 64 deletions(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index c37dd67595960f08fd85c0b516d0d03855cec9fc..ea34080970c6a5a9b035ef0d389= 014b8268660a9 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -296,6 +296,13 @@ static int imx_rproc_mmio_start(struct rproc *rproc) return regmap_update_bits(priv->regmap, dcfg->src_reg, dcfg->src_mask, dc= fg->src_start); } =20 +static int imx_rproc_scu_api_start(struct rproc *rproc) +{ + struct imx_rproc *priv =3D rproc->priv; + + return imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc_id, true, priv->e= ntry); +} + static int imx_rproc_start(struct rproc *rproc) { struct imx_rproc *priv =3D rproc->priv; @@ -318,9 +325,6 @@ static int imx_rproc_start(struct rproc *rproc) arm_smccc_smc(IMX_SIP_RPROC, IMX_SIP_RPROC_START, 0, 0, 0, 0, 0, 0, &res= ); ret =3D res.a0; break; - case IMX_RPROC_SCU_API: - ret =3D imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc_id, true, priv-= >entry); - break; default: return -EOPNOTSUPP; } @@ -349,6 +353,13 @@ static int imx_rproc_mmio_stop(struct rproc *rproc) return regmap_update_bits(priv->regmap, dcfg->src_reg, dcfg->src_mask, dc= fg->src_stop); } =20 +static int imx_rproc_scu_api_stop(struct rproc *rproc) +{ + struct imx_rproc *priv =3D rproc->priv; + + return imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc_id, false, priv->= entry); +} + static int imx_rproc_stop(struct rproc *rproc) { struct imx_rproc *priv =3D rproc->priv; @@ -369,9 +380,6 @@ static int imx_rproc_stop(struct rproc *rproc) if (res.a1) dev_info(dev, "Not in wfi, force stopped\n"); break; - case IMX_RPROC_SCU_API: - ret =3D imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc_id, false, priv= ->entry); - break; default: return -EOPNOTSUPP; } @@ -907,14 +915,74 @@ static int imx_rproc_mmio_detect_mode(struct rproc *r= proc) return 0; } =20 -static int imx_rproc_detect_mode(struct imx_rproc *priv) +static int imx_rproc_scu_api_detect_mode(struct rproc *rproc) { - const struct imx_rproc_dcfg *dcfg =3D priv->dcfg; + struct imx_rproc *priv =3D rproc->priv; struct device *dev =3D priv->dev; - struct arm_smccc_res res; int ret; u8 pt; =20 + ret =3D imx_scu_get_handle(&priv->ipc_handle); + if (ret) + return ret; + ret =3D of_property_read_u32(dev->of_node, "fsl,resource-id", &priv->rsrc= _id); + if (ret) { + dev_err(dev, "No fsl,resource-id property\n"); + return ret; + } + + if (priv->rsrc_id =3D=3D IMX_SC_R_M4_1_PID0) + priv->core_index =3D 1; + else + priv->core_index =3D 0; + + /* + * If Mcore resource is not owned by Acore partition, It is kicked by ROM, + * and Linux could only do IPC with Mcore and nothing else. + */ + if (imx_sc_rm_is_resource_owned(priv->ipc_handle, priv->rsrc_id)) { + if (of_property_read_u32(dev->of_node, "fsl,entry-address", &priv->entry= )) + return -EINVAL; + + return imx_rproc_attach_pd(priv); + } + + priv->rproc->state =3D RPROC_DETACHED; + priv->rproc->recovery_disabled =3D false; + rproc_set_feature(priv->rproc, RPROC_FEAT_ATTACH_ON_RECOVERY); + + /* Get partition id and enable irq in SCFW */ + ret =3D imx_sc_rm_get_resource_owner(priv->ipc_handle, priv->rsrc_id, &pt= ); + if (ret) { + dev_err(dev, "not able to get resource owner\n"); + return ret; + } + + priv->rproc_pt =3D pt; + priv->rproc_nb.notifier_call =3D imx_rproc_partition_notify; + + ret =3D imx_scu_irq_register_notifier(&priv->rproc_nb); + if (ret) { + dev_err(dev, "register scu notifier failed, %d\n", ret); + return ret; + } + + ret =3D imx_scu_irq_group_enable(IMX_SC_IRQ_GROUP_REBOOTED, BIT(priv->rpr= oc_pt), + true); + if (ret) { + imx_scu_irq_unregister_notifier(&priv->rproc_nb); + dev_err(dev, "Enable irq failed, %d\n", ret); + return ret; + } + + return 0; +} + +static int imx_rproc_detect_mode(struct imx_rproc *priv) +{ + const struct imx_rproc_dcfg *dcfg =3D priv->dcfg; + struct arm_smccc_res res; + if (dcfg->ops && dcfg->ops->detect_mode) return dcfg->ops->detect_mode(priv->rproc); =20 @@ -927,61 +995,6 @@ static int imx_rproc_detect_mode(struct imx_rproc *pri= v) if (res.a0) priv->rproc->state =3D RPROC_DETACHED; return 0; - case IMX_RPROC_SCU_API: - ret =3D imx_scu_get_handle(&priv->ipc_handle); - if (ret) - return ret; - ret =3D of_property_read_u32(dev->of_node, "fsl,resource-id", &priv->rsr= c_id); - if (ret) { - dev_err(dev, "No fsl,resource-id property\n"); - return ret; - } - - if (priv->rsrc_id =3D=3D IMX_SC_R_M4_1_PID0) - priv->core_index =3D 1; - else - priv->core_index =3D 0; - - /* - * If Mcore resource is not owned by Acore partition, It is kicked by RO= M, - * and Linux could only do IPC with Mcore and nothing else. - */ - if (imx_sc_rm_is_resource_owned(priv->ipc_handle, priv->rsrc_id)) { - if (of_property_read_u32(dev->of_node, "fsl,entry-address", &priv->entr= y)) - return -EINVAL; - - return imx_rproc_attach_pd(priv); - } - - priv->rproc->state =3D RPROC_DETACHED; - priv->rproc->recovery_disabled =3D false; - rproc_set_feature(priv->rproc, RPROC_FEAT_ATTACH_ON_RECOVERY); - - /* Get partition id and enable irq in SCFW */ - ret =3D imx_sc_rm_get_resource_owner(priv->ipc_handle, priv->rsrc_id, &p= t); - if (ret) { - dev_err(dev, "not able to get resource owner\n"); - return ret; - } - - priv->rproc_pt =3D pt; - priv->rproc_nb.notifier_call =3D imx_rproc_partition_notify; - - ret =3D imx_scu_irq_register_notifier(&priv->rproc_nb); - if (ret) { - dev_err(dev, "register scu notifier failed, %d\n", ret); - return ret; - } - - ret =3D imx_scu_irq_group_enable(IMX_SC_IRQ_GROUP_REBOOTED, BIT(priv->rp= roc_pt), - true); - if (ret) { - imx_scu_irq_unregister_notifier(&priv->rproc_nb); - dev_err(dev, "Enable irq failed, %d\n", ret); - return ret; - } - - return 0; default: break; } @@ -1163,6 +1176,12 @@ static const struct imx_rproc_plat_ops imx_rproc_ops= _mmio =3D { .detect_mode =3D imx_rproc_mmio_detect_mode, }; =20 +static const struct imx_rproc_plat_ops imx_rproc_ops_scu_api =3D { + .start =3D imx_rproc_scu_api_start, + .stop =3D imx_rproc_scu_api_stop, + .detect_mode =3D imx_rproc_scu_api_detect_mode, +}; + static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mn_mmio =3D { .src_reg =3D IMX7D_SRC_SCR, .src_mask =3D IMX7D_M4_RST_MASK, @@ -1197,12 +1216,14 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_im= x8qm =3D { .att =3D imx_rproc_att_imx8qm, .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8qm), .method =3D IMX_RPROC_SCU_API, + .ops =3D &imx_rproc_ops_scu_api, }; =20 static const struct imx_rproc_dcfg imx_rproc_cfg_imx8qxp =3D { .att =3D imx_rproc_att_imx8qxp, .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8qxp), .method =3D IMX_RPROC_SCU_API, + .ops =3D &imx_rproc_ops_scu_api, }; =20 static const struct imx_rproc_dcfg imx_rproc_cfg_imx8ulp =3D { --=20 2.37.1 From nobody Wed Sep 10 01:15:14 2025 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010049.outbound.protection.outlook.com [52.101.69.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E22B30B50A; Mon, 8 Sep 2025 13:08:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336920; cv=fail; b=swfSw+moyevOsZuB36DmkbAbSw+yrhbTZzk5/rHZFiT/3WeBpZKSW5smdI1UxWVh1+4625um+Ismj3wODsoAKJ9g5ZFVrehQqY0e0VBn7XuZ/Gkl488TK9xSGKVSi/3j62HAf0RsUvifS0Vp2ToY632QlxVHDjlrKNdo22Fi0UU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336920; c=relaxed/simple; bh=QZXlEQikAuUOqUKmc/lGqjDpflBIiIsbMFPmPyBJmGY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=PAAYf23HoNAVX2Uef8tXkPy/MNH0KPZYhW15x+2NZ8Rbw/rhIUDeUF2Ybg1S1KOqtJ8hNb3Rcawqk5XtY+AHr2h5K85StV7E+jolZduT9xpt7iaDNBWgq2Kxm5Mh/25Pa02TpskTZcxUFm0k9Zf/ZO2GFjBJrEL7B6HifP/3b7s= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=DPv4CufL; arc=fail smtp.client-ip=52.101.69.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="DPv4CufL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=u2nt4gZdxneFKA5nlOWQh6VcVTjgijedT2Hwq/+SnjXEwwgrFjlwMaZFO66UTnr1xOQ2bKPp8tdfXYgc6s9eddqNF1okO0qQ/3e7ui83tCy7dnsKPpmwfxjH+0iLdAScqeThxvj5TzACDXAqGCfeeNJYRApZOQR5mJhbrVYA1A9s2WV4S9Yjzg2oFHqd1/fx0Ud15kcgw3A60IfSCtQm993zZuMGpjfBpg7PXFFrJ1795m6kBxiHxf/keWDFVgLCJqoU9rl03hKG1g25E6an+ZQ8t1NhGHYD/0JotubTtNiOEN1MLhNdamUZndwqFYOYRLEVYhD8BQ7ATCPJXQ304Q== 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=taEOQ/PfzJIy7+UcqqVKKPYnzK8wVKYoQ6TgL5CxEok=; b=vI8cRuQmnlINuowKB8meDSsedoQ9w9o0VxXuxQcjgadVkbZRfewPJh3AfjNIgmzZ1go+821xAwzLlR6rJ3NNP1BSpkF8rXQchhKtttT5MD/9kHwRBmV5xwwIs4/9YUFVx1kymqackWRLT7pGuZvOVHcAuF+AOnOCS+AeLHIIv+8O1jzqiVh+lU4PuEGZ+THpT8/f4Di4A+f0jaCDuH4ku36QOsXIyhSYK3Wum42d3TuWh2WP8n7fpA6azpRXQoc+VOYPAWfNWIg1DSZ3b+26v9ALtpgt1LWPUi07iC08Agge1PT9VN+qoEGKRIoiWWGC29c0y7+mglovZVXmCTyU3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=taEOQ/PfzJIy7+UcqqVKKPYnzK8wVKYoQ6TgL5CxEok=; b=DPv4CufLJE6VhwQwdE3yX2gn5DBOy+C0XEc7JNn5VTWb6lSXfEV/O3tDbehjyQPEeTXTeaB/a7YZ4PT/+LXCBIMymL02/BktDTNjye3+5534DPurzrecZ72ECIHpz1YgG/CEYR4jr2smn21vzL4lvoM4u3oawZfs/xb9XCEEd7WdT+RfdeTLaQHakDgmCphhfT0ZAqz8ICu2m7AX8Q9CLH0c48bkC4aKlnTqPUwGBPfHfjjRdVz0YSlePKjEQ4X+kmBha2/H8+G2MIbPsCAY1amxmh/ZTxlRXq5YvAHM1JEOlcU9J35ClZTnCZRYcjToaiPMMfMdKgLhw+zlvAAryw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by PAXPR04MB8703.eurprd04.prod.outlook.com (2603:10a6:102:21e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.12; Mon, 8 Sep 2025 13:08:34 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%4]) with mapi id 15.20.9115.010; Mon, 8 Sep 2025 13:08:32 +0000 From: Peng Fan Date: Mon, 08 Sep 2025 21:07:38 +0800 Subject: [PATCH 5/6] remoteproc: imx_rproc: Simplify IMX_RPROC_SMC switch case Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250908-imx-rproc-cleanup-v1-5-e838cb14436c@nxp.com> References: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> In-Reply-To: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> To: Bjorn Andersson , Mathieu Poirier , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Daniel Baluta , Frank Li Cc: Hiago De Franco , linux-remoteproc@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757336884; l=5425; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=QZXlEQikAuUOqUKmc/lGqjDpflBIiIsbMFPmPyBJmGY=; b=9T/o+1jeG2EIx9rItJ6HjsBZ3PPMOM1DNpnAn6jFfFig/gQBZ23jxBRj9df8jTOLiJzQpijiV b+p+YhXEIP1C0U3m1zFzUgavmzVK4Qd7WyngeL5dHAsoT7p1bWOtg47 X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0022.apcprd02.prod.outlook.com (2603:1096:4:1f4::16) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|PAXPR04MB8703:EE_ X-MS-Office365-Filtering-Correlation-Id: cc7bb463-5ab2-4b56-4f17-08ddeed8cfd5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|52116014|7416014|366016|19092799006|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NkE2Q0pzS2hoTjdrbmgzK1haS0dNYjZmeHE0VlBoRHVCc2kvV1FvaVBycWdE?= =?utf-8?B?NkwvQnNDaThvb2ZMUyttUGh5VUFZbzMyVzNvUTREOEhSamVRenVUaEYwTGZs?= =?utf-8?B?QnNDZmI2ak50Y3ZDSW1NZmx5Y0hOQnNlcHc3OTRXbGZuZGpCSjRFTERpK0RV?= =?utf-8?B?UVJ3dTZ1cThqTXcwWHFHeGhKcEFYYmYzQlVYd20rQW9LRWZaRERvRGc3bDQ3?= =?utf-8?B?Tk0yWjJDdXhkcUN1VU9IQms0bU5oSHBGNFBaS0hjMklYckRzT0UwRkdQZkZz?= =?utf-8?B?ZSt0MGhCdWgranU4MTBEeUZmdFN0dTdtV1V0YTZTL0JoYUtvNjh4Wmo1UzRV?= =?utf-8?B?OElQUzdMazJLcDRDV0VhZWdlSXFKZW1vZW1yRXZEVEhFeGNZaExYM1U4OFBL?= =?utf-8?B?V1FwMVJCenIyK1BmZ29MOFU3bmFGZ21DQUlGekJKMmVvQnFsajMyOVZ6cGRy?= =?utf-8?B?cElQc2Jjcm5YN2JTbUlqV1NtNEhnZmRXS0ZicHB6dHhrQUUvcDluNkxBbzhp?= =?utf-8?B?cWVhNEpoVy9zR1dIemx0YkdXRXloUi9vcHM0QTE0Kzg2QU96TmQ3cFFtc0Ru?= =?utf-8?B?K1BJajFHTWsvbmhkcFJVMHRsRCtwdXBYaXJkWWE3MXg3Q1hRVU9SbHZIK3J5?= =?utf-8?B?SUt1NDc1SVVMc0ZpT1pjRjduYWVxbVNmQmtHQXovRXJOUjFpMGhORjYxRmtM?= =?utf-8?B?WndxdnZxdHpVV0lWQVU2QnUyampQOEFQbmJESG5SZFg3eWZGcklWZkZMMFc4?= =?utf-8?B?enJ6R1g3NDIyUTM2M0V5OXFkR01sYmNmRTNNUWhxTTR6NmlQaDlvV2cxR1pz?= =?utf-8?B?UnZQTEt4c0oyNmU4T0JhZVZTRFRWTlluOGN0aDZiSElwcHV1ZDB5OXIyQ3Zv?= =?utf-8?B?MHgwT3NPYzNhejNSWUF2L0tRVDd3R0dpdjlTRkZmMDVXTW5zL1dENFVrd2VL?= =?utf-8?B?SjBzaFFwV2hjQkk2dWx2cXpwOWgxdkdvampHTk01MDN0UU9ZSE1pTG04Y0xW?= =?utf-8?B?TlR2Skw1WVVXc25vcFR5VWkrQS9haUFEaTBhVUhiczFvR3JiWVVvSDhOV0xu?= =?utf-8?B?czhnNS9RREZ1Yjc0dzlxQm1jb1Z1MmhjeUR5NHRBSEtoS0pVVDhmSHlFVks3?= =?utf-8?B?aHdEa04vVHM1eGZJL2duendYSzE0bmM3cGFLeTZraHdpV29SeHJWUGhHUGNF?= =?utf-8?B?dEpVdUVrRWdGTnY1MTE4RGx5alIxYk9JY1IzSzRtelNJbkNZazR3Ym13Uko2?= =?utf-8?B?S1ArbzIvT0p6M1o1WHZPdTU1Y2VDNnlzZHFUbmVOK3UwOU5HQmxMRy92cmtF?= =?utf-8?B?TTdVU0NpVzBkQlQyNXFnbmI1Y2VpUThHOVN6SDArNTFYeWtKK3pJQmg5VUFq?= =?utf-8?B?MCs3T1F1RUVONkR5cEpJZFgwUzFuSUwzY2ZPc0luQU1lTWp3NXh1UUJTcGtS?= =?utf-8?B?WDlhSmtWdUNoNUU1Z01JWnJRZjgxa3FWdHI0aHJPQi9ucDJVSzVBSWRha0pH?= =?utf-8?B?VFJ6Rk80cHI1YkMvUkJPdTAwdGhFN3U4TXBtV2Nza0NybW13UGlKaEs5Sllw?= =?utf-8?B?YWRMTGFxTlg1ZUY4R0Z6VUxFTVV5c3lCY2drRTR2eHVacXkzd0U0TzdkY2Zz?= =?utf-8?B?blY3OWxPSUdaajk0L1FYa3hTbkVvWGpDYldWN1dYM21aYS95bUovWFJzOE5m?= =?utf-8?B?L3VYbWh0M0ZOL0NjSkkzVUtidldkS21ST05yTHdXeUM5RUloUHVSTHVXU3A2?= =?utf-8?B?azliYXArenlleXM4N2JtR1pmbldPRUZ6ZmsyRGpMY09Rd3hwVjQrR3FkYWR2?= =?utf-8?B?bFkvcWRjTFk3UUI2OXdNUGdxN2NwTUsyZ08yTFZFQVgrTVRBL3pHbzN1NTN3?= =?utf-8?B?cjFHejk1Ulk2cHU0clVGWGNFWFdOWElYbmZPU3A5N2VDNXlsUHlGemJRM3R0?= =?utf-8?B?eG5wU1MyVmxBVFJ2RnRJbllRR3A2MWNPYWNGYjhydDFvUkpsbldGVUNVQ2R3?= =?utf-8?B?c0M0bjIrM0xnPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(52116014)(7416014)(366016)(19092799006)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TWlydXZQVmFDZHBTYUtGOFlQSVcvd0JCelFFcHlTU0FIYmZxMFJha01BNVc5?= =?utf-8?B?SUZjVUhiVGMvVnB3OUw2OFlFa3pCeUZQdHladVFWR2JaZmthdENDcHFGUXlq?= =?utf-8?B?OUo3bVk0RUphNjVsSUlDR0VlMXRHSmdUSGE4ZGNONXJteS95eHJ0WlFjUHpL?= =?utf-8?B?d0Q3UlRrMmI1bFQ5SlVsM2l1ZG9pTkxXbSs3YjJ4UkZYNkpsenJhSlNXMElT?= =?utf-8?B?eVNTMHpXNUxtSjVpZGNXam5Dd1FHd242R29sMEhVWVMvS29sM2tqZkxHSmVs?= =?utf-8?B?R3RlNEw0Z29lS1JvM0xETEZkcEg5b25TSnd2NXZjWWI4b05idzZ3Y040RGw5?= =?utf-8?B?aXVhUjJaVUNlL1MyOEU4d3FwZWpaWk51ZzNGZWpzbWF6TFdWbTdOZHhuT2lO?= =?utf-8?B?dUo3Nk9wZUFsV01KK3ZSYUpnbXB0UzlOc2tGVmdIK1krVGt4RVJHcU43d1ZO?= =?utf-8?B?bGNpRG5qNVdPSXd5YTg1MWlVeHh5ZDZvM093d2dvayt0U2ZmcFYyV0pMUHlM?= =?utf-8?B?R2FCWFhTUkEyZGo3ZWR1TlFvSkhMNlNBeG1BTHZia280aUs1c0dWWkZiU2pu?= =?utf-8?B?b2hDVWU3R0pKZGt5REJscjRZN1VxcDBJN0R4ZFhvdjJRTy9CcGEyVytOeDVY?= =?utf-8?B?TWdzR0N2OUx3K2k0eDhWTkFtMlhQaVg2S2RBekE2ckdjYU55RktFbjRpbkxY?= =?utf-8?B?N1FTcVAvT1BmckhzK01zS1p6aHFYbVhqVWkwN0xDS3dmbEtlMm9SSDcvdUht?= =?utf-8?B?S2d1L1N4a2FGejhlRU1vZFF3a0VyTHgvM3E5RHF4QWV0TlRaRVdkdE4zVk9M?= =?utf-8?B?NHdvbXNqMUVnZWtsclgyMWxJL0pHeVp0cEYwcVlGUVJSU2tmTEFwd0tiWlpP?= =?utf-8?B?ZnhxdE1jR0Q0UXE1VkNIT0tiOHJWTzZ1T1dhOFNZNGZiRFdOYnZUOURqNXVE?= =?utf-8?B?d3RqVlRhYmpTblNjQ2lCRUoyaFJMdkRKak80Y1RERVJMZkFVY3F4RFNPVDRM?= =?utf-8?B?T1FLejI3bWlWNWlCVGMyZWh3RHBFSWF2YlA0eUVZSFlUUUtOSGN4MzA4b2VT?= =?utf-8?B?Y0hvbmVoMzVpRTdtR1RwTTJRVHZPWE5ValNTSUV2cDFmYWhVbHBpTWFFSkpq?= =?utf-8?B?alBUYjloM2xuY2NsOTFkQldiTkxKZHFVY2l4am5vc0Jac1U4L3BQdG5OMFBq?= =?utf-8?B?QjY0YWM2cjQ1bE1TRC9GTkpPSFJZY2tSaGo2RUZCaTU5VjJYQzA4cVVBQ3Fo?= =?utf-8?B?RW9rakVCeThWcmtkMGF6RHgxbHdZSFZvVTh1QThyUXBWdDZkTUw2UG4zeGsx?= =?utf-8?B?UWwya3QySUFXTU0yc1Iybk9hWmp6TEJ6SXBwMkVHMXBSVlJrYXd2MHFUZkNL?= =?utf-8?B?OGpEbHdmSjhNZmhyaEd1ZW5yK0Jlcm9Jb0dpRkNYaEV0cWZFdU1VY29PaSsx?= =?utf-8?B?Q2hXZzYwaTVRdFUzc21ZY0RndkdGYUxScStFZm5ZeG5jRGhHRDZvUkxZNnhB?= =?utf-8?B?SmJVWlQ4cjlkSkpkc0tNa1FWK2NUbmxEbFNKcHBTSnRpNlNmU1p5QmdpVVVa?= =?utf-8?B?aVNjWFFPMkxUcTBxbG53Nnk5VXdhbFFIYXRTRE9VdkV6U0Z3SmFSL1FHSlJF?= =?utf-8?B?bG1kVzRHNFFnZlZqczlYdGdYQk9UWkpRWWZvMkxvUGt0VGxwQUlPNUlINXJl?= =?utf-8?B?QXVrWmRJZzJ3dVlqSTdyYXZYVzJHQXFkSldWOWxhRFMycm82aHdsNll1dzBV?= =?utf-8?B?VzZFRmQzMCtMM2RXZjNPNUJic0I2bi9KYmRqRVlxa3BhWmNPVlFKQjRzTFpk?= =?utf-8?B?bXhNbFZYcnRSQlk1WElXaU5UbzZpeUJzOEF3WnJFenA2ZGp1SHFSOVFlMExn?= =?utf-8?B?Qm41S01VUGZJVThFL0FhQURDVDVBalVuUGRDYkZGWXNxYnB1bGxtV1VCcklo?= =?utf-8?B?L2wzQ3ZwS3AyWW03elJ2VnBpR0JYOWN0Rld6VHRqMGk5ZjZsb0JkKzVOL1V0?= =?utf-8?B?MWx0cWhXbmptaENBeEhCTUtMTUZMMGxhUld4bnJvenVuSzMxZlFxSURUeDdT?= =?utf-8?B?bUtGSEsrSTFXd3RhYktib3d5bHUzQnRWTU80bWRpaGxvc2Q4MEppZkdTemxW?= =?utf-8?Q?ho3prqDdVg4wfe/AQXNLXhVMP?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: cc7bb463-5ab2-4b56-4f17-08ddeed8cfd5 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 13:08:32.5097 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NG2mdC4YkYjtmsCw7ucgJn2a+eqkKo1cmvsR/xoSBcZXd020iEeejPZxlUHI/42uGbUZx3ZU6xsysBPcaRW4Vg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8703 Introduce imx_rproc_arm_smc_{start, stop, detect_mode}() helper functions for all i.MX variants using IMX_RPROC_SMC to manage remote processors. This allows the removal of the IMX_RPROC_SMC switch-case blocks from imx_rproc_start(), imx_rproc_stop(), and imx_rproc_detect_mode(), resulting in cleaner and more maintainable code. Since this is the last switch in imx_rproc_{start,stop}{}, remove the switch-case. No functional changes. Signed-off-by: Peng Fan Reviewed-by: Daniel Baluta Reviewed-by: Frank Li --- drivers/remoteproc/imx_rproc.c | 69 ++++++++++++++++++++++++++------------= ---- 1 file changed, 43 insertions(+), 26 deletions(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index ea34080970c6a5a9b035ef0d389014b8268660a9..5fa729f4286f6ac939357c32fef= 41d7d97e5f860 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -285,6 +285,15 @@ static const struct imx_rproc_att imx_rproc_att_imx6sx= [] =3D { { 0x80000000, 0x80000000, 0x60000000, 0 }, }; =20 +static int imx_rproc_arm_smc_start(struct rproc *rproc) +{ + struct arm_smccc_res res; + + arm_smccc_smc(IMX_SIP_RPROC, IMX_SIP_RPROC_START, 0, 0, 0, 0, 0, 0, &res); + + return res.a0; +} + static int imx_rproc_mmio_start(struct rproc *rproc) { struct imx_rproc *priv =3D rproc->priv; @@ -308,7 +317,6 @@ static int imx_rproc_start(struct rproc *rproc) struct imx_rproc *priv =3D rproc->priv; const struct imx_rproc_dcfg *dcfg =3D priv->dcfg; struct device *dev =3D priv->dev; - struct arm_smccc_res res; int ret; =20 ret =3D imx_rproc_xtr_mbox_init(rproc, true); @@ -320,14 +328,7 @@ static int imx_rproc_start(struct rproc *rproc) goto start_ret; } =20 - switch (dcfg->method) { - case IMX_RPROC_SMC: - arm_smccc_smc(IMX_SIP_RPROC, IMX_SIP_RPROC_START, 0, 0, 0, 0, 0, 0, &res= ); - ret =3D res.a0; - break; - default: - return -EOPNOTSUPP; - } + return -EOPNOTSUPP; =20 start_ret: if (ret) @@ -336,6 +337,18 @@ static int imx_rproc_start(struct rproc *rproc) return ret; } =20 +static int imx_rproc_arm_smc_stop(struct rproc *rproc) +{ + struct imx_rproc *priv =3D rproc->priv; + struct arm_smccc_res res; + + arm_smccc_smc(IMX_SIP_RPROC, IMX_SIP_RPROC_STOP, 0, 0, 0, 0, 0, 0, &res); + if (res.a1) + dev_info(priv->dev, "Not in wfi, force stopped\n"); + + return res.a0; +} + static int imx_rproc_mmio_stop(struct rproc *rproc) { struct imx_rproc *priv =3D rproc->priv; @@ -365,7 +378,6 @@ static int imx_rproc_stop(struct rproc *rproc) struct imx_rproc *priv =3D rproc->priv; const struct imx_rproc_dcfg *dcfg =3D priv->dcfg; struct device *dev =3D priv->dev; - struct arm_smccc_res res; int ret; =20 if (dcfg->ops && dcfg->ops->stop) { @@ -373,16 +385,7 @@ static int imx_rproc_stop(struct rproc *rproc) goto stop_ret; } =20 - switch (dcfg->method) { - case IMX_RPROC_SMC: - arm_smccc_smc(IMX_SIP_RPROC, IMX_SIP_RPROC_STOP, 0, 0, 0, 0, 0, 0, &res); - ret =3D res.a0; - if (res.a1) - dev_info(dev, "Not in wfi, force stopped\n"); - break; - default: - return -EOPNOTSUPP; - } + return -EOPNOTSUPP; =20 stop_ret: if (ret) @@ -867,6 +870,18 @@ static int imx_rproc_attach_pd(struct imx_rproc *priv) return 0; } =20 +static int imx_rproc_arm_smc_detect_mode(struct rproc *rproc) +{ + struct imx_rproc *priv =3D rproc->priv; + struct arm_smccc_res res; + + arm_smccc_smc(IMX_SIP_RPROC, IMX_SIP_RPROC_STARTED, 0, 0, 0, 0, 0, 0, &re= s); + if (res.a0) + priv->rproc->state =3D RPROC_DETACHED; + + return 0; +} + static int imx_rproc_mmio_detect_mode(struct rproc *rproc) { const struct regmap_config config =3D { .name =3D "imx-rproc" }; @@ -981,7 +996,6 @@ static int imx_rproc_scu_api_detect_mode(struct rproc *= rproc) static int imx_rproc_detect_mode(struct imx_rproc *priv) { const struct imx_rproc_dcfg *dcfg =3D priv->dcfg; - struct arm_smccc_res res; =20 if (dcfg->ops && dcfg->ops->detect_mode) return dcfg->ops->detect_mode(priv->rproc); @@ -990,11 +1004,6 @@ static int imx_rproc_detect_mode(struct imx_rproc *pr= iv) case IMX_RPROC_NONE: priv->rproc->state =3D RPROC_DETACHED; return 0; - case IMX_RPROC_SMC: - arm_smccc_smc(IMX_SIP_RPROC, IMX_SIP_RPROC_STARTED, 0, 0, 0, 0, 0, 0, &r= es); - if (res.a0) - priv->rproc->state =3D RPROC_DETACHED; - return 0; default: break; } @@ -1170,6 +1179,12 @@ static void imx_rproc_remove(struct platform_device = *pdev) destroy_workqueue(priv->workqueue); } =20 +static const struct imx_rproc_plat_ops imx_rproc_ops_arm_smc =3D { + .start =3D imx_rproc_arm_smc_start, + .stop =3D imx_rproc_arm_smc_stop, + .detect_mode =3D imx_rproc_arm_smc_detect_mode, +}; + static const struct imx_rproc_plat_ops imx_rproc_ops_mmio =3D { .start =3D imx_rproc_mmio_start, .stop =3D imx_rproc_mmio_stop, @@ -1199,6 +1214,7 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx8= mn =3D { .att =3D imx_rproc_att_imx8mn, .att_size =3D ARRAY_SIZE(imx_rproc_att_imx8mn), .method =3D IMX_RPROC_SMC, + .ops =3D &imx_rproc_ops_arm_smc, }; =20 static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mq =3D { @@ -1265,6 +1281,7 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx9= 3 =3D { .att =3D imx_rproc_att_imx93, .att_size =3D ARRAY_SIZE(imx_rproc_att_imx93), .method =3D IMX_RPROC_SMC, + .ops =3D &imx_rproc_ops_arm_smc, }; =20 static const struct of_device_id imx_rproc_of_match[] =3D { --=20 2.37.1 From nobody Wed Sep 10 01:15:14 2025 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012010.outbound.protection.outlook.com [52.101.66.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99A2030AD0D; Mon, 8 Sep 2025 13:08:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336922; cv=fail; b=kh1pi81bl+5632Xk4FuAc+KFbMO6BqC1SDlo2WiqUGPakHm1b6b4oId5Yp0M3wcA21uxfiB6dD/InUmfAhCy/wOOXkODSV/BB6Qvkp9/fCSedy+rC2ctdtZQ3aC8MkUX59cWfIMGMEAm5gxrGB7ypSb3L46aAQ5GaaFynM1wRQI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757336922; c=relaxed/simple; bh=btfNF7QVJ4Cl79M8roeKhtdEY8e1sUflBqersgubMms=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=LPxmBauo0gWkcc2SRLkAfzjk7fv2LDBoaFm6ZuMzr82WQNUOKs3tYLZS56UQeoZMfNYorXjxk82MfG+2uZK23Amv9zg2wAkxZyluv0V1a23BN5arzYQRIppCeebLL7BAS8xtFlqDNCxBWJGfBp0BkZvS0ZYbS3V7/kQu/XNvAHU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=cN9riF7B; arc=fail smtp.client-ip=52.101.66.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="cN9riF7B" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WR4J4csj9SToNrW67639TyeZn+F4DXjYA0ddJt47X2O5MU26Y2XqNkXUTR63HXDsFzpRvwusUGQv/3Hs21adDJNgT4XXU/sdBVuoXBydx0FwBNS0uFwr4xb6vU7CSROweRLZObNJwZa27W0Dl9Mq7yaooBY5190rVP4iBnvqnVLV8N8sbSL32eJKAhKsH0Vl+3GTVuFQW3usIIrVySPYpAyFg7DkDptQ56+nsB9Nj3FZT+EjRJ6X0UJIqKW25kZcnt69E9xa7DypUSJ+vDjYM0omwBZJQTSpIv89hWHGU+BMaQkMq/6CasW0vNayqXrxi6UDDx+vimZZfzqEN8ygog== 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=3gR3IagXeP+aIDwpNFe56W0MzvLLJJUHVuLYsWNbz8g=; b=vJWd1lAmM01wWnfiXABaSbVthGLug/IB6GrADnM3Mp3P0zX30YnyhWUeIvqSoTDn2cgWdjY+IYTc1hfDgX/wm68lLxsn2/oaT4liarOAe2cMMEx+feIRcwAqD6WjGmS6Nh10BXcZbN0uP/KKPPCRQwNFea1LH/tBc4w8vNU4LK+3cNhFqdHJRkTXQcm60azdbg1LS3Zip1MFcVKoJZcQ8PI9mW/ADcILrxxsVN0ltkTIELuY0X/K8TTsTIS+M7/nhrBzbPqIRnsZlKS2ld4xu5DcpNtbRaE5KYU7MaGNcyaNKT4B6lislj8NJ2L+jdwAx+2zmOeKSdnnpNubpg7tNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3gR3IagXeP+aIDwpNFe56W0MzvLLJJUHVuLYsWNbz8g=; b=cN9riF7BYVe7Nv9yYaPZk9w/AmBazLfyc31uVJQSUfcOjc22SiSB7HDX2A7hXXxmY3LDI+18YckfGndVOPK34Fd492KtKK+OmEEbDiCfdS24OUe7vPLW7tCEaln7WiqLjWBGZbtjNWjvktdinZB2+UXfaw+p1ufS6IPFmeT7BZZvGx46RiI+o7ZfrLaNFOUrstLJqzTjvoKE9qqqdwV2Ab7wxF2GT7ZlXu4tUZPHl7N9C0UdDVCZ7GRKNdSfE1T7Lszyp7qJvnv3I9TDokltApMAsvPCL/D7v9+Oh+RDIr3w1EHdQrHoPbV7bAUFxWROzC+aPC62vI0SLALUToLbKA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by VI2PR04MB10977.eurprd04.prod.outlook.com (2603:10a6:800:271::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13; Mon, 8 Sep 2025 13:08:36 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%4]) with mapi id 15.20.9115.010; Mon, 8 Sep 2025 13:08:36 +0000 From: Peng Fan Date: Mon, 08 Sep 2025 21:07:39 +0800 Subject: [PATCH 6/6] remoteproc: imx_rproc: Clean up after ops introduction Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250908-imx-rproc-cleanup-v1-6-e838cb14436c@nxp.com> References: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> In-Reply-To: <20250908-imx-rproc-cleanup-v1-0-e838cb14436c@nxp.com> To: Bjorn Andersson , Mathieu Poirier , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Daniel Baluta , Frank Li Cc: Hiago De Franco , linux-remoteproc@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757336884; l=1886; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=btfNF7QVJ4Cl79M8roeKhtdEY8e1sUflBqersgubMms=; b=0wpL3ZPUEPPbkYFGD5667pXFs2nM0q6M9AR/8IVvHO44uubdFXcb2b0tOJUQIQYwfm6X5yEtn 9lpZI9GF3dkDuFmgw9g6VwZv0s97dmUErSXgqlNe9hSx/Gegonns+l1 X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0022.apcprd02.prod.outlook.com (2603:1096:4:1f4::16) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|VI2PR04MB10977:EE_ X-MS-Office365-Filtering-Correlation-Id: d2f06977-0c86-473e-ac86-08ddeed8d258 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|366016|1800799024|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ckZhei9oOXVmV0tiY0JlZi94cDhobE5wdHlOUGxmaWovWXdJQkZTcDc2V0xq?= =?utf-8?B?MjM0RHp6cDJaSDArQ3pkY1F2ZVdNa0ppMnMwZzd3UFh1R091M2szMW1IbVBr?= =?utf-8?B?R25IdmNZZ3IvbzhZNXdJUllKTHZ1b1RxcTJRRnNkT2RsbW9UYmNLaFBpaE9V?= =?utf-8?B?cE56WjRPb1NJRUl3bkpvSWZhMVhjV3phVUI4ZkRIMHpqQXpSQnY0aWM5Q3lP?= =?utf-8?B?eTBUM3o0Z1VlSUo1Z0Z3bVB1cHl2d2Z6Q1AwRyticW5mK1R1RWV2bmkvMExi?= =?utf-8?B?YXlIcG5makthRTZISDdnNS9hVXpwV0hocUZYWWd0NW1sOXR0cCs1blFOVDFx?= =?utf-8?B?bzl5Q3o2L2NYNkNKRmRSSGc1OVpCRFpvQ3I5bmVMY0F0RjFWMGVVSXRjczVN?= =?utf-8?B?a1YwMW1wVGl4OTZGOVcvZmo2dzYzUStneVV1OUJWS1NXY3FEUTJKUEY3bjVK?= =?utf-8?B?MkpzaXk1TjRHNjZ4RUppZytkUFhBdytYaUJTRlEvdUQvVDBncFNSNThpQnA5?= =?utf-8?B?azFUU2dlYjF5azdubzhhN3JGdi9hQnVhV2hXWndqZTM0Yk16VnorODlGT0w1?= =?utf-8?B?SC9mazJvVmcxTUZsRnJldzlYSUNJdGxYdVhMVWhJWlVncE5qNW83V3BTL0kw?= =?utf-8?B?WUZJVzhZU01DeERzTzdKR0ozUi9FdUVTbWNzWU5mckE0ZVlGUmpTdk00Y2Zj?= =?utf-8?B?ZjRMZlY4dURsb3lLTU0ybkVGWk5Za2xCejhHMXdxZlVhTHY4aEJJcitDZmVk?= =?utf-8?B?bVU3YmFrMnB6ellzdXRnQ1JxdVdDWm1uZis1dm1saHh2Vis4SVhqWVdpRkVs?= =?utf-8?B?ZUZnKzFEU25hT3pVNXc1dWlZT2t5VHNwT1VGOUNNeUNVTndOYWhzTm5BcjBw?= =?utf-8?B?bWY0UTh5N1BlMGsxQ0hYc1JMRkZ2c1FvenNXdUFLK1R3amVwTEJzUG1vNjhn?= =?utf-8?B?Nmk0RXFDSXA0eGYwb3QreWpEVGFHRFNpQ3JYa2RCREYyT0hmdTF3TU5HYzI5?= =?utf-8?B?TDJRTG9OS2Q4RVIrZHMzekgyd0w1V3JubWRCVG83c3d5dGVZVS9sb05PdmVs?= =?utf-8?B?TURqVFpZbUx5VWlsZkYwcHhuQ21UWnAwSjFnRjdMdURDTHJPMlV1ZTEyaVpG?= =?utf-8?B?RW5DRWdJZWFiQjBOcHBxSjhjOG5xQ1RESXM1RFJYc1FsUUxYZFRNb3NuQUU0?= =?utf-8?B?MVNuYVFnVzBRM3Q3dWlvdDZ1SGEwVy9JZDE0UURObUMxQStOMk5vU3RFS2xQ?= =?utf-8?B?WUNadVc2L1d2R0pnbURlS3dleW8wTjJ4WUpjb3p4VUZUekNYVjRsRFNIVGth?= =?utf-8?B?QzNTYStDQ3E3RFFBMzZjYjNPakJtbzZEVmM5bll4cFJWVUF0UVk1ZUU2bThx?= =?utf-8?B?QlpzRkJGUnY0QVQ0dmxNUmRseWFFNHltMWZrSHIzVUZmam0rajh2RUdaZFF6?= =?utf-8?B?L3BpQzkxR05SYnVGZy9CVzZ5TjNJVDhybkFBMlRBNmJRY09DblFUODUyQ3Ur?= =?utf-8?B?ODZ2TFkwVS8wVzZ4K1J4azArSUZ2N2lDQ3VWbVZUaVFqelU3VkhsZUpFOGxC?= =?utf-8?B?MjgwVDhZWHNaZ21DeDQ5TVpRUy9SOTRsS2JaWG5paS9rSU5QL2Z0SFpnN3Q2?= =?utf-8?B?KzNKa2ltSFVSWURBL2U0eXhXNUVDdm9YRkxycDBKTExudWdBVGhzRGc3dWlL?= =?utf-8?B?YTc2N0J5TU9MYVdSTkY5YjRXaENreUpTQ01UQU9mTkJ4akRKdklNd3VyVys2?= =?utf-8?B?RG1tT0FSQTJKeUtGSGFHbHR0N1ZmL2JVYjJyd1VFbGdPdlBndFg5ejBreWlz?= =?utf-8?B?RGNjTmxNL0tzMnV4c2pNS2dpb0wyY25yT2wyRks5Y1NScFUwV3RPNTg1dmgz?= =?utf-8?B?MUdwdVI1TG1rU2FnYzJob040TXNYdERoMXB3NiswU2s2b3kvdGVXdkNiclJp?= =?utf-8?B?dTZyNTd0VFhqaWlMTHZ3K2VHMjhLRW0yWC9xWGxXWkhLNlNWWlA2WXZFOFZS?= =?utf-8?B?RUZ5SnAvVy9BPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(366016)(1800799024)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SmNBNU92SVRrbnN4NkZzazYrdlZFRDViNnNLK1FKanFsSkZXcFhOQXpCck9U?= =?utf-8?B?dUVHN2lXSEhJMkNxa21ySWtQblVDdGQ4UmZsSW0vc2tSemxmZzU5Mk5STHZD?= =?utf-8?B?YW5wajYzb0c4bmhoZEU0N09zNVFIbHdDdnNHRS9VMTZTMm5QVmR6MXB5NGpX?= =?utf-8?B?RlFEMjY4VDBkREYrT1ZmRlZqcVpFMXRjOGVxMHFNK09oQXZHeTFqNXRFSHpD?= =?utf-8?B?TCt6NjQvQTVnWnhFNm81aUZweGFGRWxVNkZZUXpSejVhM1hwaFZmMHRCNlc1?= =?utf-8?B?WEVCQzViMkVTSks3MDczSjhXOWEvaXlvMnd1SHo0WVNlWjZFM3Vnak1GdS9I?= =?utf-8?B?aTFVQW9CSW5xZWUrZGlqSHo2TEx3RU16NG5Hd0ZuTXVmQk4yc0tjWmoybWlF?= =?utf-8?B?ZU8yTHBzempvM0hOV1BBZmRCU3k4eVNiaTcraWNBUHphUnd4emhWZ0lUa29h?= =?utf-8?B?a1VzNXJMNGczRTVVZm5LVGo1YU01OWdpUXVoL3pvMVQyOEdEMW5nZVR5NWg2?= =?utf-8?B?RjNZVmpKQVp0QUhIOThsVEZFRXlicW1kRjJBcVpqY01KUnd5REkyYU1SVEcv?= =?utf-8?B?WUFMOFo5a250dmc4cUx6eXlzZHhpaTdrcHpRL3ZwejhjaW1nZDhlNWxTZXcx?= =?utf-8?B?V2UvdDFJWjhnYVpKY21iaDNaTkJxQ3hTRnNhV3ZPTFVUZ0syVjliYUd1Sk5w?= =?utf-8?B?L2hIK2ZSOStPZmx2MDVqdDhLVnBUTC9vOWdlMFY3MDBKN2w4U0RmZk1NVzZk?= =?utf-8?B?UDl0d09KdVY0VG9Va1lHUzl0OTFrWEZwOUUycGdtdUVFeW8yb1RUMVNWVlNC?= =?utf-8?B?S1RzdmdhaVBMZUJTM0pwbERBcnNtSmJwZUdJdTQzTmlpaVZDZ21SWGZBY2ly?= =?utf-8?B?d1Exck5ubUhHd0N5cWRYN2hTTm11ZHlHMGhmUHRnbXluTVdmN3Y5ZHd2Y3Br?= =?utf-8?B?SEI5Y05UMjRNMmZxVnE5M1R4MitKNzAyMFVDVmZRVnFtVTVzclBOQ0k4ZGlB?= =?utf-8?B?VnRuNVZOL3hVOEFPcmRxRFVneXF2YlNLT3gwWXBRVnV0NFI4c0l1T3hKdUVJ?= =?utf-8?B?KzU0NEJRenpuWUdsa1FHUytDcm5Tcm1jakZ1TVZ0SUZ0R1N1NkFkTzhnRU93?= =?utf-8?B?MW1Mc1FHY0hEOEhYeVJlakVHekRqZ3dMbzNaekFnY25wZjQ3Z1lIeklqRlU4?= =?utf-8?B?WldnbEFJRFZuOVI4OGlqYi9UTVg4T2pHcERjNENqcDRGbEJudzlnalZPVFVs?= =?utf-8?B?WDY2bVpsTFZ5bkNBMGh0YXpDM3I0c21OS2ZZSEM2OTJOMXRsazNMVnZnclJm?= =?utf-8?B?RmJCTURzejZQMkNiMXRhNkRVZTVDNU9sN3NaSm1aRXBYVkI2U2E2bFMrVndk?= =?utf-8?B?bmF3YzNNSzMyM3duaXhaeTdSd3NHWGRpdzQ4MUNoZVBGdHhqMk5FTnB5TFlx?= =?utf-8?B?amVrTzcxWkE0RWw0QS9yNExieis5Vmp0ODg4eTBsajl5TlROVHc4NVJwV1lx?= =?utf-8?B?ZVRkVmRUWTdSRWFhbUVUem9xaHRmNWZjN3ZoT2s4MWEwZUV2K0VoTXI2UzR1?= =?utf-8?B?azdZVEZqa2hQR1FyQ0ZIUkpJYjdHdk5EWVUyUlFFU3Y5NGV4bWFSNnl1VWkv?= =?utf-8?B?NnNzUEw3ZzNFaHJMcE5oaDRVenRYemxkUGtRYTVQTGdtdzRwdkpkZDJNeW1p?= =?utf-8?B?RzlxZVFhZTFEMXM2NVk2UEd6N21qekUwRlF1cS9iSDFybWRCbEhtVXUwWFNW?= =?utf-8?B?Y092UmJzQW9Bcit1ampuR1htZ21OZlhxZXBLYU8veXkzQTV3THh2c25ZTjlx?= =?utf-8?B?WnFWbk5IYkJrd3lHclVOZXhTRW9RYmRVUzNjMHUraFRZc2grMlc2bjJ3OHFz?= =?utf-8?B?SHNia3pFS1g4bVVkZDh1VUh6MDdnZXhyWFc5ejBmK0dSU2N5bXc2QXMxN1ls?= =?utf-8?B?elJrN3VRTC9qSGcvSVR1RjRDT1d0NmZUdnpZSDJEbVdWUFBxYWxGUWdoVlgy?= =?utf-8?B?MDJvSmNocDhyZURVMXBiSk1JRThpUmVrWjVsOGg1OExrR3ZpV0UyTi82RzBm?= =?utf-8?B?Q2FMSHV0RHdzUksrL0RXMFNUeXdXekZueVE5cmVac2lyS0I1YWRSVDllZ3Zx?= =?utf-8?Q?rKF0nQIruNy48lIrrkH9RzK3H?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2f06977-0c86-473e-ac86-08ddeed8d258 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 13:08:36.7461 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fDrS/HR/5+Srkb5CDcysdkIl/ceW1VQ8V4Rj3IENns3p+5QBg+WDK34uKUEu5SRaeFnJQ0kB4C/JXVwTgwGJXg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10977 With the switch-case in imx_rproc_{start,stop}{} removed, simplify the code logic by removing 'goto'. The last switch-case in imx_rproc_detect_mode() are no longer needed and can be removed. This cleanup improves code readability and aligns with the new ops-based design. No functional changes. Signed-off-by: Peng Fan Reviewed-by: Daniel Baluta --- drivers/remoteproc/imx_rproc.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 5fa729f4286f6ac939357c32fef41d7d97e5f860..ed8395b097d07d02e5323550ff4= 97819f9b95ad6 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -323,14 +323,11 @@ static int imx_rproc_start(struct rproc *rproc) if (ret) return ret; =20 - if (dcfg->ops && dcfg->ops->start) { + if (dcfg->ops && dcfg->ops->start) ret =3D dcfg->ops->start(rproc); - goto start_ret; - } - - return -EOPNOTSUPP; + else + return -EOPNOTSUPP; =20 -start_ret: if (ret) dev_err(dev, "Failed to enable remote core!\n"); =20 @@ -380,14 +377,11 @@ static int imx_rproc_stop(struct rproc *rproc) struct device *dev =3D priv->dev; int ret; =20 - if (dcfg->ops && dcfg->ops->stop) { + if (dcfg->ops && dcfg->ops->stop) ret =3D dcfg->ops->stop(rproc); - goto stop_ret; - } - - return -EOPNOTSUPP; + else + return -EOPNOTSUPP; =20 -stop_ret: if (ret) dev_err(dev, "Failed to stop remote core\n"); else @@ -1000,13 +994,8 @@ static int imx_rproc_detect_mode(struct imx_rproc *pr= iv) if (dcfg->ops && dcfg->ops->detect_mode) return dcfg->ops->detect_mode(priv->rproc); =20 - switch (dcfg->method) { - case IMX_RPROC_NONE: + if (dcfg->method =3D=3D IMX_RPROC_NONE) priv->rproc->state =3D RPROC_DETACHED; - return 0; - default: - break; - } =20 return 0; } --=20 2.37.1