From nobody Thu Oct 2 22:40:29 2025 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013052.outbound.protection.outlook.com [52.101.72.52]) (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 DA6ED3081AD; Wed, 10 Sep 2025 07:12:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488336; cv=fail; b=MvvBYybp5RMCpVcp1eKXNpfrx5QAQY/Lud4XIp5EEczxyycE8GlRSttBsS+KbFtKh6fVZQzpZVqp6lG4ECNACkCqTFPMEyTuGPRKAF2jEshlu7ThrknJfqylJuud2ytwoYXeo283H23VAdm85aegs/JbiQBdEeSEoa9hf+c5Rls= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488336; c=relaxed/simple; bh=0xjBtSZ5ekf1YIDlcxCzs9KCl1ptx5jQlh2vwMS/eJA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Lna176mZaat4p4OigF8Fo3KX4bvAyIExnfEj+vjfN9kM61dW4vgLU5dgZm6tl7OhXQuCi/x9lHKezR4dwCimJKgSTK8B62UUp7BAkYaZd/mFSNgJwafRUBnLvUHGBk0OAgjl/rmbOgduIVtIYH9Pb2XdYPRfpFzlEjE+g+JltQU= 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=WrLlVUEP; arc=fail smtp.client-ip=52.101.72.52 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="WrLlVUEP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gkV/JnpU+HGVLVwjoXvHLf2WI/LVfFtrQA9brU8oxjGd6V2KxWAnHoWZHy2BVVy2wjj6pEbBCRTOT88vckiUanSUFjdC6OQoEIhVQkGecQ7sKq0B1pZSVx/UMX5fDXEuEO1eDHp6uBKahI0Atj+4fJ31F65yR+RkIZ3eGTb0ZNVtxX+vOQ/aTAzZzUQifNtTJo6W/AVoEuG/2AguT4cIaHDVmYtrWJ6zIuq7NMUatbz5QIWnQKUZdieYuqo0cg8jxOzQ0ByoQ/HmzGGodm3cc93JCq+v191o39PCmUZKPSxfypxfhTUJ3ncPn+uHslysqxzI5u/bGgQZ0hDTGqscJw== 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=ImVb4bVjB/A1+KddeFa65Gs9tgPppAmz5Tct0ypIBag=; b=uwIawVMlKVcx8HG/P1stqMYbpQk4+TglI0GlcCXktksZ8fmFS9lPzWrKpst2ZmbxlBQqag8qDbrWmuYeqdEaVs17hKuDxxZgx8yTKrnL1Ynrkmwh4Vvm6NLp8cOxLn4Cq5W3/2tREwD+8nZ6kzaPPwpmwwApqndznaOpZdoYm5dkDJI2uQ6QtpxojNXnHrke0ZvBFUhj4K+2teIcCC8C6hSxjSVQqyym8iCF7ZKDz68qDxj5NnGHEbfu0useN7aH4RNZHUh4Lxt0/xkoDeqEfX+IlKViSOx5YisiSbyiGHbCvU1y50NT/V7g7ZHqYL7IOousth5ALoDxgJ0HPotMHw== 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=ImVb4bVjB/A1+KddeFa65Gs9tgPppAmz5Tct0ypIBag=; b=WrLlVUEPpXblhlx2wXJkGzmzxTOwSiRcqrA7wFeWUE7m3R4TlV2y3thD5Z9JNr50SWckDdjS1I4dk/uomNtNx0QuGD7iAjn2embwfnSpYMeBC4IsLlfzACWRDAs+BKeCSm9Hu8Cyl6VX2O7NwYvIfziYsmUjUXDd0h0Vepc0lNPGkIYZP7DUlTv64wPSXnRQrCaB8yP0/uF60+9AtvhmaNC+pTdX54n+vv9rCyP26XevUcyc27iPkQFLxlVjTzIeGRnUSxipaX4Iexn+m09b9s+X8YT+w3EjcIyju/NYMKPjPSlLzYPmm7dRPuKLZ4jksP/rWljS6wONu2ads+/9jw== 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 AS1PR04MB9358.eurprd04.prod.outlook.com (2603:10a6:20b:4dc::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.15; Wed, 10 Sep 2025 07:12:09 +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; Wed, 10 Sep 2025 07:12:09 +0000 From: Peng Fan Date: Wed, 10 Sep 2025 15:11:45 +0800 Subject: [PATCH v2 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: <20250910-imx-rproc-cleanup-v2-1-10386685b8a9@nxp.com> References: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@nxp.com> In-Reply-To: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@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 , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757488317; l=2991; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=0xjBtSZ5ekf1YIDlcxCzs9KCl1ptx5jQlh2vwMS/eJA=; b=IlUdYmItO84jZBACOMeQcy/A3SfouTvYnQXQWXlfUckrJWupPAC8K0sVy65lrc1J8gECEV6kp Nj07LmUwMsQA48RJb9X8Hmnx09qKyHcqIfI2m+clVQTpTM9DXnlp6Dz X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0015.apcprd02.prod.outlook.com (2603:1096:4:1f7::18) To DB9PR04MB8461.eurprd04.prod.outlook.com (2603:10a6:10:2cf::20) 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_|AS1PR04MB9358:EE_ X-MS-Office365-Filtering-Correlation-Id: e0263e63-0908-4baf-322e-08ddf0395b7b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|7416014|376014|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?YnhoUW5yc1l5UXBTVWtvQWhONS8zQ0huT2RiaFFwUGc0UEtUUlJScCtXbVkr?= =?utf-8?B?Y2M0dVFNOVA2aXMxWGkrSVBtYmxObGlUZHBSbEh0VnR1RWh3MGRHbUh0K2Vh?= =?utf-8?B?MnJZNDU3WDV3U053b0lBZjJQbWtOZnhrVzcrUk1rOTk4L3I5WTJwWFk3OGpy?= =?utf-8?B?dmJpaHZSUHFkM1dkVTFHemxyVklFVmgxY0RZUGpHbFdnN3BOSG8yejFSdms1?= =?utf-8?B?V1Q2SzF6VnUvZy9GekFua3Y5NFNzcysxK1VaN2UwUTdUWU8rQ1FzTkNOdWg0?= =?utf-8?B?Y3RSUm9xanZKd2pXVGVaRW9WbEJkY3U5S0ljaEJNakFwSDFiNUc4dmZUcUU0?= =?utf-8?B?d3haMzFQdE9FZFE1VXhQWVkra1NQUSt0MFVuM20xOVBWRWFhMWtqaVFEMkpx?= =?utf-8?B?ZlJTbHJEOFlHT0F1SEdaa1NQcE43SUY3cDVwUDVuSG51bjVYTHNQMGsvMDY4?= =?utf-8?B?eEZNUmZHQm5BS3grc25yNytSdkJQUXgvWlN0bTFMeXVPSUNBUUUrYUdqaTNR?= =?utf-8?B?bFNVRXA4RFp5T1ROQmsyVUwwQStFYTU5aU1JZWhINXRUQTMvQTVHYUd5TEN2?= =?utf-8?B?ZDc4c1RHRG5FeXR0SkxFSGZrMXFrK1p3eFNKN2xaMVJvalo5QzhmYnkwbmtm?= =?utf-8?B?UU1ubWVXVGhMR2ZsTXNGTkxFM0VKclZ6a3duam1oMDhEa21GVm1zRFhXU1l2?= =?utf-8?B?YjJadlFGS0tRd1laYzc3TkJINEVxZmxub3hEVVVMblBXQTRucXJGQWFTSzdt?= =?utf-8?B?RkFHU3ViUVdjRHMrMFRRa0x4aG1HVE9QOFU2SnFVOGdYVFNGdjJvbHorRElo?= =?utf-8?B?bDBac2YyM3NQejdCWVZSWVNyVEhWUzU5d01ONXVtZUsvVnpVbUdmWGlmNG9Y?= =?utf-8?B?ZVJRVC9teWlCZ0xqRS93bTVIcXpMU2hmcVhaV2FVQmVieHMyaE5vMS9jcnZW?= =?utf-8?B?cWRjemVld01BSmxHZ1RMRTBmVm5NTmRtWml0dWJ3Si9EV1JWOEhkcmt1V2tP?= =?utf-8?B?dkx6V25QbXBoc2NTazRNNElKMk4rckN5UlQwZW82NFVLRWdkNU4ySFZHa04z?= =?utf-8?B?RlgyQi81N256ZUEwakVhWmJ3cFdtZUdaWDJIa2hEeTRQN0tkRHIrOGx5ZUhx?= =?utf-8?B?Rk1WNmpTUHA2T0tCOGtoUG81U2s4STdla2pMNEw3cVU5MFZ3djN3cDY3Uk16?= =?utf-8?B?RHl0R2tTS3FUY0d3UDRKVEtlRmxGVmRIUUFzNXBBa1RWOFRGUkVOcXJDSitZ?= =?utf-8?B?ejVOVGI2MzdDOUtkN2Q2dVA5ZjdRV3lTcUZTMzZCbkNKMnJaYTNDcXNsalpj?= =?utf-8?B?NjZOaDJNM3lBU2U1U3ZQVkpMdlV1UTZWdnJyaGdTdzdibkE5VFRTRWNTRTk2?= =?utf-8?B?eEdqczFhK0UxN2ZQZ3gxMkxyZFRNb0gxaTE3b2tRWkNXVlROU2hRVjBOVVph?= =?utf-8?B?ZGR5ekpGRVQ5VG5pMjFZRmkvRHB0akJNS1dYNU5SRnA3WmN2MFlZa2NaS2Vk?= =?utf-8?B?SThjTUJWb09MR045NC9ZS1YxOEYvWW9HVkVxbHVkN2c1dldqN3JGR1U1Mmtn?= =?utf-8?B?MVB6R2pZYks5eGc0SWVveml4bDFDeURMQ0ZIeWU0MFRGT2dvTXJwUDhzaHEx?= =?utf-8?B?aVFsRjVqNnRiaERBR05XMG1FYnhkTzdnRWo2eTFGUW40SkQ2TGd1aGpGK2pI?= =?utf-8?B?YldERWxRVDVzbllTOU1LeHh2dHc2OEc3MFpGOUJkNW9XUm1JcWo0VFd1bHRi?= =?utf-8?B?RGwrcDRSazAyVzIxanFwdDNpTkpXNGxxQW4ybUw5dDduZ3hFWWNLdWFVeHZk?= =?utf-8?B?YTBnSXpBZXBubEpkWEx1WFA5THp2L2FZaXhTTEtwcnJ1S2NjNmRSYzhKZUdX?= =?utf-8?B?RmVlSlFnL0lBVHJlbXFPL0hwNDJsOHlHc3IweXJHOXJ5YXhRd2FuY2ZvcFZU?= =?utf-8?B?L0lIdXZaOXFtNnNsamswcjRVcnd5cnBTVmYwMzZJMEhiK1hVOHJsZXZxRmNh?= =?utf-8?Q?Rqqbfy6Noh2sjw87jZVD24xMqiWjio=3D?= 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)(1800799024)(7416014)(376014)(52116014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R1JmUnBCQXczckw5aGphbkRMajJmNFhmamFzYUJ6UWxUdWd3bDlOeFFCaDI1?= =?utf-8?B?ZFgzK3BCTGFlOEJKSUFMWnRTS1FEc3pybW4rbEpvS09pa3JxODBKSHJYOGli?= =?utf-8?B?ZDhhR3UxbDVhQWorU2cyaXhQY3BFOWlOS0dKazRidU80WEZVdW5YUnVtTmVa?= =?utf-8?B?ajhjZ0U2QVVLMW1ub2J2LzE3REphR2hXSmpaTTRBYTVCSlJZc2pJcFZCeE45?= =?utf-8?B?R3hGaEVJMjV6K3NLUUQ5clJXVm9YMU9ERDhyVkZzNENPWk96KzlITzdyc05a?= =?utf-8?B?eFhSMmYzNnpHemY4dVRLeDZKdVNKeE8rQ1JrMlhvSVBsdC9uN3lMQ2RwMjI1?= =?utf-8?B?S1VtUmR0NGtSTXpGMXUzM3BMSy9PRHM2NUNrTFAvVDJhUFkwaXEycU83VHJF?= =?utf-8?B?RG5ZYVVyVkc0a3pLNVlockFCT0kwcTA2UmVSeHZzRnZkeDZiVmFJTGVjdUxZ?= =?utf-8?B?Q1VZcFNJUW0wUnlVVlgvVEdueHVxQUFGdWZmMXRWSzYxWldYMU1UVmNSajVB?= =?utf-8?B?WFdYQzcySndMU1FROWt5MjhQa0crZEVYdnN4Uk9rM2lCM08zakxubGlZVGx5?= =?utf-8?B?V1A3d0g0SHJiZWxqYS9VdEFqdlFmVW4wczZjM3ZyTFVHc2xlL3JuVUhMMno0?= =?utf-8?B?L3lYVTFkeTJNVEoyS0tzTGx0QXcvemQ3VzltMi94RjNoMmxzR0tmVmxCVEln?= =?utf-8?B?bFoyZDdseUswUWhyeFEwY0FMRkUwZ0VHNCtSTTZIMDVKVGJCZCtqUlpXVHp3?= =?utf-8?B?VFIwWmYzTk5HNmJwek1lRnRtaFlQOWs3QzRrVVpmSVFOZGNMWjA1MWxOMVFt?= =?utf-8?B?V3hXaFljK1kwUFoxNW9VRFVYUHJGR0xUeE1uTzNRaFFkb014Zm1XSUkwaUI3?= =?utf-8?B?SnN2aDE3d1EzVXVUSERVVjVtZkdTTnpmSVhmREptSHA3VDJIa0tuZkdPOWpx?= =?utf-8?B?WGJLcTFKc3JTbTdhM1JJVkxMV3lVaVQ5N2xQRnlpcm53WHRGczBTUzY3Y082?= =?utf-8?B?MS90UmJUTndBN0hJWkh3bjAraWVsTnB6VG1HWXBRaGt6c3NSWGpxcW1JQUdD?= =?utf-8?B?M1Bma0dWMHZXcXNGQStzaHRndFhlNys0TmNQRE5KVURYdlRHUFcrVXlTemh6?= =?utf-8?B?ZkhMTU0ySlZwc1dGS2hCdnRoVnZTbkkzcWM0RmthTktoMXZNd1FSekl2TFRN?= =?utf-8?B?NTRHNDFVOHg0UGlwWnliYkllMUN1ZXB1KzNxS1VNTnd6K1lsWXRwS1Q3NmFK?= =?utf-8?B?TytDMTVFclZ6TXpuMk9XeTVOZ0NCNXFYMU5yRURkNm9yY1NzTHZ2VlUvTnV5?= =?utf-8?B?SUdDbjFBMW9vdmhRa3Q5OUtFMUQ4YnFMMVh4Z2kwU1VIZ2FDOWdBdGF0T2hX?= =?utf-8?B?MWphM0JlSG9nVDN3UXJGUnpMSWpPVXpPeEZZbEo1c3VDK0YwaWpxWW5BV0F6?= =?utf-8?B?RmpPNGVaaE5WRjRlVVNRckJYMEJKUHpOMHNQakZQcno3TTUxdEJUTEk1TUhR?= =?utf-8?B?K2dEeXFCVWxSbmVVOGJZQzEwNXI2Qk4vOGRHTkRTeWlKTzFkdjl6UFR6N2dx?= =?utf-8?B?VjBVNEtPWlZHVjVYcml0SVBFcEQxbTZLTEMySk5wTGJUSFVNQzRlK3BUYWpH?= =?utf-8?B?djl2UkMwMC9pYlE0NkxVT0M4d0pPRktPcTZPZUhjZXZhUG0xMXlTdjcybC9a?= =?utf-8?B?WGZLakw4ZFdZZjdBeFpJNVJONC92eE15UkRac2ZGd0NQQlBiVjVpZ3RXclZ3?= =?utf-8?B?V1RiQTRjK0VWeGI2cC93REFibWwxdEV5d3J1L3RqQnl0RjdyU1B1dDgvUG9v?= =?utf-8?B?OEUvdVpQY2xQTUtGbVNYNkFhK0lMdWU3K1hGaGZzam5weFZYUFUxTjZ2anpt?= =?utf-8?B?MWdWRkVOQ3JwT0lRNTZrZ0NDRXBTdCs5THJHUWNLb3ZCZ2JsQWIwbWpRTVVY?= =?utf-8?B?RzRYQVgxZXBGY3ZSSFZEOVNQTVlwc1hPTS9RNjExdFBkcFcwdlpoVlFWaHpF?= =?utf-8?B?eFFyOStOcmlyTUMwenI0Q0JvVmxUVlI3bm5HSmFYV3dTaEZuT3F1ZjRFb21t?= =?utf-8?B?eWFPZjQ0T1owaVhvTmFWRkpuSTl1T3NQVGp2blBOcE9Sdmx0L3ZNSHFNdkVw?= =?utf-8?Q?JV38kIq3HBAfORchlAcrCLtQq?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0263e63-0908-4baf-322e-08ddf0395b7b X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB8461.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 07:12:09.8437 (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: pcZEyrpit3FPr62RP+8rD+cDOmCNsrQv4MyVuMKCHMFn991EUwblP1ZyCAeWE4eGbrM/qQJl7z5vq/1u2oeigw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9358 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. Allow each platform to provide its own implementation of start/stop/detect_mode operations, and prepare to eliminate the need for multiple switch-case statements. Improve code readability and maintainability by encapsulating platform-specific behavior. No functional changes. Reviewed-by: Frank Li Reviewed-by: Daniel Baluta Signed-off-by: Peng Fan --- 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 Thu Oct 2 22:40:29 2025 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010060.outbound.protection.outlook.com [52.101.84.60]) (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 BFB373081C6; Wed, 10 Sep 2025 07:12:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488341; cv=fail; b=sBG9pWT9RU40sDU64FSHW8kleJJ5SU7GwEqeyxIdF5D/QI0Ec2NU1z4kbVBvTfbRavH/B+P7Mme+4dB1/VMN2/5l2jPHfhivcSlDzEUrhECauZaqim/gXu42OmuR3hDB1ZXM/vEL4T1Ns+ovyJdqbZkhnlgvmRhdhoAmzoEW+fU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488341; c=relaxed/simple; bh=MxPqiI4U065RSyuo0Fc5C1TukjAl3ocnsj1bgtyxtvw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=CLOmXWrcUtboQXSz//ciT8p1dxVv/A6KLaSkC684Rqf393w2IG1T9+9Y+BVHbK2qAxqgtA+36tAfOX8N79pGo7OXgIHXwtx4jQiMoPXXHyEmEYtQDxihPVK/JEx/hTj+xWFKDjia/vJzoB32VkcO2qs4HEkkQIEIvPHkDo/n9MQ= 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=V+a/CVvd; arc=fail smtp.client-ip=52.101.84.60 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="V+a/CVvd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a1yxvHIo2rUxKSQhr0eG+cRQ4U0sAgZIaMPSgHORZ4Ju11/fNmmtsSKR2QQmIAjuFiP94cYV8VmSxnIM5VfDMnZ9yr7Kvi6vQ0pflS8xKOfjI9yfFzcHA2RRA4X1v9qLpRksh21djKGYW4qbc+B+86D+L1PxvFmOas6kws1fnb+UEVgZI71DPjhH6fzvocKmAdril/zOv3wOt8eOR5z4sc3NBhAFFs5TIe+gfWnNVKmIj0VxYV9bwMdaqcjFgkgKf17bFd1sxwHuHM1nPgy1yaIYcRVEuEPSeGxlo4PS7CCWjWHTMlF29hMS3vrvelz/WCf1MSEZRWy/8XKnMivmfQ== 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=XDEKoSArVPdMPuANJoGHAvJ3uo+wS/0ZT6ya2G/PudA=; b=Pk0I2Tw0zfM4shkCe+Zeha5TfXgXxJClXxEgP7kLWuLeNUJntA8zEI4yygrUA9mux2S3kFWVMG7d2FbuD4q1EQRQQvhcSL4+00wZPXNCuh4VY0jneS/X2Qr5P4XGF04puEiivhN/8+0bXHlQFWYRfZ/ZH6+sO3q1+25UeHYlX9VfDtWqQxCc6NKwTow+lNP5MrikXxZejb4mIARbO+3+G2k8TbZ2x6SxAv7AsEp5WAH9wsXtG7qn1okRduLiqja8q8OL9d+ODMcTB9S4c0v3kGY8YsCS6BbgbH3bxy7mw7A2EuJsAEqV0KmEcNBPm6rLUur0Ut4S8qjVYCrVAPzBDw== 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=XDEKoSArVPdMPuANJoGHAvJ3uo+wS/0ZT6ya2G/PudA=; b=V+a/CVvdQrpPz97+NdbVfFhKEyZWjvuUO6lfsEGFRyBrkerjv2H5wrc/xD87e2P+XBQA1lE2q0OI7R8ojUcayVqXOo8d25Ced9Tsznh3b9yRks34lmCd7CqiNei2e7LDqo5Ulk/O8W82N9PQ74opIl7MPW1aSOS5fRvTBLTXnXpWHosz2vbJt6uc4hNPrTneQuFrPNp/ktdg1K0bTWqRBHGSMW+4qp4E1MZLgxriSZ+hyIteZvVzLZWI3cJUNyKMz1bB7Txei1BAuq5im68ascTkC917i/pLSS2JiNMnaeue5fdKBI6UNr8uJgD6HurqlPeyFJv3yuAq4/VUXhming== 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 AS1PR04MB9358.eurprd04.prod.outlook.com (2603:10a6:20b:4dc::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.15; Wed, 10 Sep 2025 07:12: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; Wed, 10 Sep 2025 07:12:15 +0000 From: Peng Fan Date: Wed, 10 Sep 2025 15:11:46 +0800 Subject: [PATCH v2 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: <20250910-imx-rproc-cleanup-v2-2-10386685b8a9@nxp.com> References: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@nxp.com> In-Reply-To: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@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 , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757488317; l=6438; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=MxPqiI4U065RSyuo0Fc5C1TukjAl3ocnsj1bgtyxtvw=; b=ykJbpOA1arBYFksakgrsNK7jOxiiSRfVJjPpN45dgOfPsYUxqoE0b8+x8CKFD62PK8x3qkDXU J5q6BdID1y+BltHgCuhejDc/hp/WfLUJkhhyO2tjdOW92UMAmyk6dUv X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0015.apcprd02.prod.outlook.com (2603:1096:4:1f7::18) To DB9PR04MB8461.eurprd04.prod.outlook.com (2603:10a6:10:2cf::20) 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_|AS1PR04MB9358:EE_ X-MS-Office365-Filtering-Correlation-Id: 66618d4f-b77d-4f4a-fd35-08ddf0395eb0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|7416014|376014|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ZXptRXVZOXlLclg4WEppcUlHZ1NES0lNQnhGaVFQN3NXUUs0T04xTHpLWWsz?= =?utf-8?B?RXp4VmgydDlqdmdjMDF3WmFOZDMybDRBd1hwMi9oNDNWUmw4VUNkMTd0KzFa?= =?utf-8?B?UXNLMmY4ZmRKWUlBWWJ5QkhuZDl5NU9vQkpWak85c05SekJ2dDd1bkdwOWtV?= =?utf-8?B?Rm9TTXp1a1JZd0JQbEcvNk91anNKQWN5V3crajJDSVlkZElqd0pCVEw2WWdq?= =?utf-8?B?bms3bGY1MklZZVI0aEViank5TUhIb1hkRHhDMmhOaWpWSTMwYjZYSG5YbzNs?= =?utf-8?B?Q1lJdWdsMWZYMFVzMS96dTlFV3RFQjFvVitvWFZZSDFFR0pkc0ltTHc1OEQ3?= =?utf-8?B?bURvT1ZsNkRSRlY3RHNwdUZwUmdVeVdhM0U0cmc2TGRVdTRwcHJIWjhqSGRF?= =?utf-8?B?K0k1bUpYUEI3eldlbG5zUHcxbkJwWUkzKzRLNmlvM2tnOFREeCs1czRPWkx1?= =?utf-8?B?Si9DSStMcGs1ZnNIelZjV3hBRzlITWptWENRcFdkVHhCd3ptSDZqV0sxZFkz?= =?utf-8?B?R3RzZDZ4S2Zva0pDaXRQY29MeUMvSUxrdytkcG4vN2JXTmJ5SWxHd3dJTnFl?= =?utf-8?B?US9WRFBxNlhYN1FQek04ZEdxKzBuRE5WMTVXUUFYM2Z4SXBVTFdnbUhUbWdE?= =?utf-8?B?STY0NkpBa0RsRzd6MktORnRpODJ6NUtaVTNZUDJnZUl3NFFTTmZ1ZUJJMEhm?= =?utf-8?B?eHVTZU42YXVNU3g4V0pPaVl5ejFEQ01DRzJzeFlkU0tKNTROUGs0ZEV0YW5F?= =?utf-8?B?V2VUcEhnQ1RTeXFsOHAxb0t0WmF1UzBZK213Zm8reTlya0VDM2xIcVhQYWVE?= =?utf-8?B?cWJhRjVMWExiTTFVNXlmNzF1bm5JZnZmVW9YQkw2RmhFNFlkbVhqZnRqV0Nv?= =?utf-8?B?Y0QvcE5KOHpDT0xPZVVoQ0pOMlc5aUwzVnBCVFlJVEgydmR5bWdRVGwxTXR5?= =?utf-8?B?Uk5iUWpqb29mU01SY2ZDNTNNNGw1V1lEZFJObm1XSGwreW1WTlJubGJZdnlS?= =?utf-8?B?TkorbHNQWGMwV09ESnZCdEpUNk1kazU1bXhEcHJMMXk0N0xrbHplQWJpMWZN?= =?utf-8?B?ZTlKWWV1ZkZlTldSandCY0cyR0Izc0dLYjl4cHlHUHFWRk9nTmhEMDAvc29H?= =?utf-8?B?eXhxZWNXYXpFSlB4QlE1clNoWlJ1U3JPbnZWcmFBaitvNWxLU0Z6SnVlZzd5?= =?utf-8?B?c2RBK2xFWVhxc3BpUnlvSklnZWRuRThHSHpmMFY2MnFYM245ZUlpVDRCbEVv?= =?utf-8?B?MXo1dWxVS1Z0d1V3MGEwRnNWOXgyY0owaFpFN2xnN0ZrS0ZEc01jQjN4cC9T?= =?utf-8?B?VWcxUDZvYWU5Ly9YQmdGWEdCMnJ6RjdtVDFSRkh4ai9odGhNMkRTWkhKTVhU?= =?utf-8?B?ODYyaTk5MUczM3dFcnZSZk1ZMEdZem5sKzZIVHNSTjhrYlBEYlVVaXFtejdp?= =?utf-8?B?R0VWd0JtVHk0RE9KbHFocEdFZzUrYnNLUCs2amVyY0d4WXdCZDhRaGdYYit6?= =?utf-8?B?akRqUUhuQzk0a2k3NUhPQWFBK3Z2eDFQUVZOWjBVNkd1UW1mSnFrblVrQnBQ?= =?utf-8?B?Q0xtdFdjSDM5ZDRmQ0xqYU5vRDVPMnVMdThydVVqMWxjWGlKU3lZUlRtQUpF?= =?utf-8?B?bmxENjhhdjBLU2NqZWpXQVhhdjIwVTdpYVRCVk11WERZS2NaTUFCNjhzOGh2?= =?utf-8?B?STJhcmpIbFBscWlIWVFFZ3RQTThzODBFUkJsN1ErQmt4MTF3R0JCbThjVEM2?= =?utf-8?B?NklEQmVFV3lZdzJGbGlhZlFNN3owYXIxTnRScnhVbW5tOEJQQzJiV2RtLzU3?= =?utf-8?B?UDZwVmg4Q25pWjZxTklxOHh1RlNBWmRQenFBYllrd2ZvYXh4R3E3NVhUQUlO?= =?utf-8?B?Yldkc0xybDZrWUNQckNVL1Z3TmZLQXplaS9pOEpsNlBNYkUxMVcyelB2a254?= =?utf-8?B?NnRkUW81cHIyY0RYVCtUTjJKbnk5T1hyWTZtRDA1YkcxYzZnZDFKdHQ1TkhI?= =?utf-8?Q?P3GWtVwGYBv6NmbWjLIrgkvl5JIuvk=3D?= 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)(1800799024)(7416014)(376014)(52116014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?emI2MmtWL1VHS0FzdFdpNzN0WW4wbERDUWs4cVd2ZUdpRUYrTzdxZ0ZvMHA2?= =?utf-8?B?MUZaNjJlY0lPY1h2S2crdXNNbnhESkkxRDBFLytxQk5LVnZMYUlUdFBxb3l1?= =?utf-8?B?YS9ScWxPNS9EbjRoWjJKcFpNMUJMT29YUjNiY1RyckNWNjEveXlBa0dOcGtU?= =?utf-8?B?MVlBUzRrYzhmdE16UEhqeDVFbTV1RVg2c0s0eGFUUFVYb1B6Mmx6UlhQL0xk?= =?utf-8?B?YUZWRWFpalFsdThyYUdkQjJQMTB3dkN5SG8ra09hVlBuRWQzaWUvWlA3allS?= =?utf-8?B?Sk90QWJYRzhxeHF4OHVmUi9vTVZqTkJ2Ny96aWJDNHd3RHhuT01yeGtFYzU5?= =?utf-8?B?SkphakVzTVVjdm5DVjZWMVZtNVBiUitrQkpxNUdiclgrVGNBQWluVU9FMTlq?= =?utf-8?B?T0l5amwxTzhRb1Q3TFdnUUdzSGhkSWlad0lGN1EydlE0U1dkY1VRRjBPTmg2?= =?utf-8?B?NjhXeVdCY0thTm44T0tJTEVNZ3RNRU4ya0JXbzFmYWZ4N2Q2UThCOTR4SkVN?= =?utf-8?B?RUNkWENvN05SN1NldGU3d0tOYmxSUDBQZHpHVTltWkVmTXNicm9xeEtlVEwz?= =?utf-8?B?VEpmSDdXbGV5bWROdzQ0TTExSGI2V2MyTFhNRlJpOFk2U3k3SkdrTUd6WjZt?= =?utf-8?B?VnJ0a0RxZlgwUHVCR254NXlLQS9ZY3d5clBzOWZkUjVaZ0R6MWk4L0hMRW14?= =?utf-8?B?WnNuWXphSGVIelV3Qzg5eEpNRVNCbjJCRlhUSUxTb0R4dDN0TjM2S3NBVnVp?= =?utf-8?B?ZjBaZXlxa2VwblJwK2ViS3k5c2J1a3JBcDlrdUN3Znc2TEp1OTRaNzR3dm50?= =?utf-8?B?K21aRGx5VkM4UElQOEtsSUF1WXJDRUZsNUdmcXdiYVIvaDJlOFhVNlVqejZr?= =?utf-8?B?WForR1Y1TzV3c2V6bXV2aTNzRmREN1Exc3o0T2ozeXJ5NitJS2xsaGRaNEtS?= =?utf-8?B?K29ZMzdqdzk4aWM4aGxDRkZxQXgvQ0ZkK0F3VDMrQmxVbE9Rc0JOaW91L01F?= =?utf-8?B?a0dNcWRocFV5S3pZTHoxb0ZPalREeXpjdlBrNDV1WDFLUWw1V3pLSXJsWGZU?= =?utf-8?B?TmthQWx0NTFvKytVZytCa2drbE5qUXBMclVWa0dWR1lWUGFIdzhFdng0YSs1?= =?utf-8?B?RDFJOWhuMzIvcExicno3Rmt0c0ZOZ09CbzNNUEtBbWd1eXRTMnlESWRjM0Jx?= =?utf-8?B?a2Z5cWVvN0l5MENjQWIyc1NQKzllSWxVY2NnR2dYYlVtRGRCV24vd1o1RFJs?= =?utf-8?B?bzdWMEV0R0UzRXZBbXdRVktDcGc4MlA0VmFLNjI4cU54a1I0dFg3TVZOS091?= =?utf-8?B?UW1rT2xtNFhsR1VqSmJGK0NIclJhUkIvS1NqdWxscWVqL0pnbWJpL21wUEFi?= =?utf-8?B?L2hWSGtwMmtKRVJxRit0aEIwMXMzbFJlU2VTTVoyVFBsSUtURzVTdFRmYkpa?= =?utf-8?B?OUdjWTdKV1B5eTFzbm5USjFuckZjTHh2bXRLdUVhdHNjbVNmVFNXa2ZZU3da?= =?utf-8?B?b01PKzlaVERmS0k3aXMrdmFPemlSRVVjMDVISnB5ejZ2MzdtZ2lhSXpvZ1lW?= =?utf-8?B?YmU5bUN4N2hXN0hZN0x5NzYxR2hvMjdOR1BmQVU3Umc2Zms0clk4Y2NzZldl?= =?utf-8?B?MFFCZzFsV1lnTWw1dzJPNXdyaGhIT29qNVgwZEFoVjVYYzZoUmVpVDFNSXlQ?= =?utf-8?B?MkhCVVEzcFJXUzVJVktFaDR2NGtoTFcxQUcrQTFzWTBtOVBwTGh2eng3bXU3?= =?utf-8?B?d1pJcWM0WVdJTE9iYk9MYmZuWWoxd0pCdm9QNFpoU3Rrd3VIR1gvSVZpUElN?= =?utf-8?B?WS9ZSXpOU3ByM2IrNThrKzNsK0xJam81bVgwVVM2MkVETFloUGg2WXBNM05s?= =?utf-8?B?MVQ0bDRYbnVzc1hCVnpuKzFUM0R5VXExeGZPMTQ5VUlSWG4zdVd5RXZOckxl?= =?utf-8?B?M3BqVUhNRnAvUldSQ3MvME1mdDFDNFgzWjJOR1JBeE9uV1JxMEoxUjdOanIv?= =?utf-8?B?a2w1eHZHcUEzeVdtT1RkakMxeitQVmFWT2pVZ3lsTWY1Qi9DK3JqbWVzbzZ1?= =?utf-8?B?alk1VWtVc2lPa2dYRHZGQmRFVWIzeHluYWxoLytPbnptcTk4OHNjMStSb2RV?= =?utf-8?Q?TCxmHAbOS+4UAvds94Y0df5nL?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66618d4f-b77d-4f4a-fd35-08ddf0395eb0 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB8461.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 07:12:15.2643 (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: XQguGtGZ4XI+nleOwaxYeAU9j5JAXyLywsynpiCugAp9NbIQ683b3mGR7z+hPi2akeNbrbYaVar30gRT2bmMRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9358 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. Reviewed-by: Frank Li Reviewed-by: Daniel Baluta Signed-off-by: Peng Fan --- 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 Thu Oct 2 22:40:29 2025 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013030.outbound.protection.outlook.com [52.101.83.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 CDC92308F1D; Wed, 10 Sep 2025 07:12:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488347; cv=fail; b=rh3ewRt2fHc+qHD0Pb+IA7qQi+20TSGzGcOJW+fExdtYvatmxFAu9NjaLsEnsFQHD2ejawoIaLj+A7MkLWDEFkHXp3nw+uEayOdU0c5kVg6TdMLwV8aks78FpD+TKZEMGQzF6RHsSH5D9Cs0xTG+ZCIC8PQQDRGZAP/hfEPSPkA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488347; c=relaxed/simple; bh=ZZkSOnmk3tkhr68K9EUIuk1PiLOpl8Ut2xwhvhA5l30=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=RSTNyeYGfDVPGv7Af3JHIVTo8/R8wW3ZL40HuQXriaWolrv2LCbORxRgrxJC9IgaxT6LMecZvod91w3n4Em+j+yvjye2e4WJ23Fyr1TNZBPJoJZgP+0oCNKBQ25mbzFOe7bgCwGpzYZgjp4VNcNitP7Bop27SfqM2C7I3zqjrJ4= 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=fKFO+yy0; arc=fail smtp.client-ip=52.101.83.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="fKFO+yy0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e/YaiU5B95JiHgIHauxZM3AGmndNqrSyxv1PIqwBhWkfVQ/jy2s6xWD3QxXwgBsO1cCO8x0bblm37Z5BuJf01NDKnbT7vm76vERPYiCC4sdARoH0REQOxBnwBufP3PrtGpz9yEssGLDN9Py2amtcRV5hiW0sLlrn+kgIsDDvNeQrAWJai/7AQ/ppJrLRA3nNraRnzB5Bej8uZqlAJ197MqQNYJt4O1ttKRTEGN198EPj8vglbtbKeYtjkfyRJBytU16629KiaKL1PmIoI3SWxfdqnQo7uv7VsnucN0x0uTl0Rkn70fRcQC3XTeB2taF7knci7UYdwT9Ty1m5Is0XQQ== 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=KLcWBc4+6MD1GzxISs5yZQ1dluEnfoc+UbEZRWjocto=; b=ZhXGlKPUWMKsn8cz2i09Oe6m5K+guZfy45SsdAd9SFdCDwlJhE+GlV1VPbn32CU6lAZCGP8qSuGAKRwT2j9PkRN3RHMpsZrBMVMb7atITioxA/pr1i/m2Uyd8vDDWyskFdkDyMOFHKHeKMUGUqMsXL8MfAUKOPIRb/jJ2bahxkDeMtyHIQ20125cl0+l12CXLrWUhpceXZx1xLCyAodza8tqZGsLZLMkLTnRn3+2tNE6Oz8O769B58ztU0dKddScsrerLU2TJh0V0gohGLdqzuHGPiR6eGRxi7pH7+GWJuf8JIRNjrHhxz9a/u82yws53SB4Oet9upeyiL0IB3mT1g== 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=KLcWBc4+6MD1GzxISs5yZQ1dluEnfoc+UbEZRWjocto=; b=fKFO+yy0/nOSyTld1i0OvVZf7d9+60LEFx3oqSPuDi+S64/bA7o5GZG9BNLkGWjWPpxy2eXI2QQ0pJSzhuJytzw3VxdCipM8cm+JzHHYCgzdxqkXpFTpg7E+nbWTi4nIJCp/DmfB5pYxuQGMDF0HxJe9smAPQOW7c91UDMCPTRkGmyeYOuuB9utXQceUY146w2iN96J+LD1e1k6KlP43ncsJ7TQ66zGTH3/Qva3DUOCtDosxQKHad/6W2ddyaD6to2P87Yyly8ugx+u3/UhyprpPQhoAD5FeZ3W6UlMcn5tIV+itK0mOonsRf7WMDN5fC6MdZkgSCl4pa2+Cqa1yTg== 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 AS1PR04MB9358.eurprd04.prod.outlook.com (2603:10a6:20b:4dc::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.15; Wed, 10 Sep 2025 07:12:20 +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; Wed, 10 Sep 2025 07:12:20 +0000 From: Peng Fan Date: Wed, 10 Sep 2025 15:11:47 +0800 Subject: [PATCH v2 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: <20250910-imx-rproc-cleanup-v2-3-10386685b8a9@nxp.com> References: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@nxp.com> In-Reply-To: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@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 , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757488317; l=7658; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=ZZkSOnmk3tkhr68K9EUIuk1PiLOpl8Ut2xwhvhA5l30=; b=Z+eVswz2zLRgxdxPy94l4Hvm9sb99gJmYDeGaGP3/IF/vkFURsKfp8tBl3jxETo+sQuVbcad7 RbD/RcvKS87BzVXqiFYoFSsr2rqIKMIa7rdUDCq8rqf+gc254UI3/fu X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0015.apcprd02.prod.outlook.com (2603:1096:4:1f7::18) To DB9PR04MB8461.eurprd04.prod.outlook.com (2603:10a6:10:2cf::20) 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_|AS1PR04MB9358:EE_ X-MS-Office365-Filtering-Correlation-Id: a70df1ce-4b40-4cd7-10c8-08ddf03961cf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|7416014|376014|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MDI2RW5sMjZJM05icS9ReGN4MkRUbUZkOEFNTEFQeHdMaFVYaUN5d0p4ZERN?= =?utf-8?B?eHVyU3NVUitQSXZKUFoyTm5CbzltT1FSSytrUTkvTGJpaVlZZmdPM2wxRlRF?= =?utf-8?B?Sk1lKzZ1L0pkbEpwRkNJODg3eG5GWkF0YzY2TWczVzhoTkpLbFpQUUhhSkJX?= =?utf-8?B?UFVWcUNIYml1NjNZN0Y0dFhMeW5pVFVoc2xyb1Voa3lYTDFxVzAwVnhnT0kw?= =?utf-8?B?ejdyZFVnajhXbENpM1EzbllJTEtBVFplZHJ0MVd3dEhTbGxwOG1oMGVndHU1?= =?utf-8?B?RjZqZFFVMnVhSkhCZWdqeFFVTkliTlFLWDlUdkxoOFZhdGd3VXRjZW9KY2p2?= =?utf-8?B?MXFRRDdaVkU0T2tITzVmVEljbUxNVmxWMk9WK0NENkUwUFF5eDBFaFprNW01?= =?utf-8?B?b0pIL2pKWkhvZHhTMk1yK2RHVkhzMktMUE9BSHBLZlllMGdiRlpFK3k4SWRV?= =?utf-8?B?a2orU3ZPdjk5OFNkUi9iVXBhTXZJYTlHNElFS1RXMkRobU9aN2hRUlZTaitM?= =?utf-8?B?aWt2ZkpvMlI5ZFFqa1VhbHVWMnhhTGZsRmxmMTAxdkRrdU1XcEZrb1NiMjgv?= =?utf-8?B?NDF3OVhPNTdtRW1OckV2OFE0N3lMZmRYbUdXUGQ0dUp2a2lnSnowdUNWSDVS?= =?utf-8?B?WkZtdFprblFDWHVBR2hyUUVwVDEyUFVuRFJKenhkVVZNdjFhVkZBN0ErekdC?= =?utf-8?B?QVA1THJHcXFIamluQnNBK1F5Q21lNGlxb3FwU0h1WnlIYlNzZlBSK3ZMV2tx?= =?utf-8?B?QTZLVTRqZHJHNmJ5VXhlYUFidlpyTjhXeGJkVGNvcE9objV1RnRZeFdEdXk3?= =?utf-8?B?Y3lvckRKL1lMRW1BSE0yOFlIUVJwaW1nY1dvQjF1R3lzdGlPRnhJOVhjTUZo?= =?utf-8?B?WExkOGJQVUdrWGdVOFRaQTd6UEJWdkhtSGhFUFQvYUIyc2I2Q2gyTVQ1RURZ?= =?utf-8?B?bjRXSE4waGxSSjN6TWJwY1hSbHlWK0dzZEw2WWxxZFZTMGw5cGNwKzVIdHF0?= =?utf-8?B?K2NxT2JrMkFYRkJtbUlkdlVYZjB6bk1pK2kzNmdIWjJSeEY2czNiY2k1MXZZ?= =?utf-8?B?ZHdsQzdtM3pMRE9zbW5rSXh2Wkd0SXpSSFFyVmxVOFdtYm0wMHhOaWRzZ1Fr?= =?utf-8?B?NFh5R2VMVEU5ZWJtTFc1VGRCS2dxV0Q5UExyMDdBRjAxZFJSa0w4NFpGazdQ?= =?utf-8?B?cXlabFhuTm1URDR1dnFRTTI3S1JtcUI5NTJnYkxPTVFwU09iNU9sY2lvdjNm?= =?utf-8?B?R3FsbG1FWEdOUWp2R3ZrdUNHRlRGVWVNWXl4YTUyV0h5RmM3SGFMV2xiRkYy?= =?utf-8?B?Q1gwT1RZZnZvTmdSL2R0dHA3Qjg3VzhtNEVXVUkxYjVTRGtWaEFkMWlmY0Jt?= =?utf-8?B?NTJObmIrVmxhSW1tZzdWZ0hRdHNja05KTmlaQi9jNm04QWVNd2xIRFpOY0Jv?= =?utf-8?B?RHJxOTZ1Wk16S1FMYVcwVE04L3BmTEVta2JPWS9RWnI3OVFxTEJBb014VElV?= =?utf-8?B?SVJ4R0hGTElGRlg5NXNQTm91blFSUXNUZ25YYVJUWEM3TldDT2diYzlRalFD?= =?utf-8?B?TXFYNFhoeDFVaS9ZT1dyZ016cE1XV2lUbFlndUxTMTF0ZUtqbHNEUXNDdlVk?= =?utf-8?B?MUloTGdmSjFrRVBOdHFhZ3JUQ0dxYmgyVzhTN1JnU013VEJsOHgrL3FQdGtI?= =?utf-8?B?OHBkRlNBT1U0NS9JQVJTR09iL3lOSTdha3Rvc0o0aFYyMzBCRjV0aWJrUVZB?= =?utf-8?B?R1pESFhXYS85cEtaZTU4M2dqNk9aNGZFRnNPNWkzdnlDTmt4MHdsUk9tVHhK?= =?utf-8?B?R2VPeGMwREtjS1FJd3JmbFh2UjFKdWNyaTJ3SEZRTC9ITm90Q3JXUmxsaVk4?= =?utf-8?B?YkpYeU5uZ1MySXhrRWZzdXYycm5tK0ErVkY1RTBZT0FQa0paRlBlazc5TWZM?= =?utf-8?B?UDBUMkx0UFkyeTRHT1lpM09JQ0ZmZFlNL21qVWpUVUticW91dDhHbHN1bEJL?= =?utf-8?Q?p7+kPzk6XS5SjjbY5WwSh9nhZKVjAI=3D?= 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)(1800799024)(7416014)(376014)(52116014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RzQzUFd4SHFUQk1zQ1hUSFRRWUxZMnQyQTM0Uk82NS9wNjR6YUZjNGVvM0sv?= =?utf-8?B?RmZLMGErUUU4M1BGNC95WDREc2k0dzI3ZUhQVDkvVVFkVVZ1NnhIZTRFbXpL?= =?utf-8?B?NC9Nb1dQdm5CeldWdWZodFdwRGVmcHk0MURYcWRNM3NFd2ovRGY0NmtVb0to?= =?utf-8?B?VmRMbnc1L0FzMWxnZTJXSzdnTlo5TFdZRlBNK21MRFhOVXhWYXd5ZXBXYnlT?= =?utf-8?B?N0ZOY0J6VTJyV3krbzRrcmJYeGtiMUtsNFh4VWp1RTVmcVN3R2JNblBLaHZh?= =?utf-8?B?SWNBUXBvd3NpRTZRM2ZLcXBDM2VWa1B2djhnR0NZQ1dKdDh6cTQ1RThiQXhi?= =?utf-8?B?MnJhNlFBak5zd1VvRWNYZ1hUUDBoNUlqKzVTaktlT1l5cStiNzNXenpNNXBx?= =?utf-8?B?VGVoeGl2ellNakUwMkpzUmpwRXduMUJkSkp4cFlMZ3RSL08rR1c3VWRvVndW?= =?utf-8?B?eDF6N3UzQnBMblBJdy9ETjBIbm5nVGNia0plaUlKeHdiOFFic2locFZKTW5z?= =?utf-8?B?R29OQnpicTk0dDFOQzBXKzdpVWwrRnAyNjR4MjV2YVMwb2VUcCtLQlVZN2dq?= =?utf-8?B?VCtON3EvcVlrOUkxdHgraWt2VUVvUUJCOEZIVlpFSk9sY2dSUWhSdnZkZXEv?= =?utf-8?B?M1dCc3FvNmVDMjViNVkzZWhBYmFiQUk5d3NxSCtpUHcvR0dJQ2JacEwwb2Vr?= =?utf-8?B?U3NHSHUyamZMVlloeGpRWk93dzd3SHA3Wk5kTXBVcCtpWFVHTHIvRmlsNVQ5?= =?utf-8?B?N2FHVjNockN2dkJoMFFIV284djdNeVdMbDF1V1JBellqU1BwZU5qYWd2QSsy?= =?utf-8?B?My91N3RYUlBzcUN0VFlCZXBQQ2kvUE8rMTFOVkhrOGl3Nm5WcFlCeEdiUjBC?= =?utf-8?B?RzA0VndobytEazBhSlg2b2NBV2t2cmVZQ1VkTDFZNW1iMFRGaW12MlgwWnVH?= =?utf-8?B?NVRqazdnR1QyTUM0M1A4c0JrTlptTjgzeHJ5Y0QrOXNwbUtPY0RKQXFYbllB?= =?utf-8?B?c1NwR0ZLZWxXb2haVWpqSEswN2hIVWtuY2pMck1SQmhBaTFwNDlkUHdYZ3ps?= =?utf-8?B?dDlwVkFZbUxLZC92b2x5WXZaYmFodTFqVUJDeDN0QXY1QmpqRjB3d3VOV2hj?= =?utf-8?B?V3pOd00yeUxjMHFtZkdkaG1sbEFDNlRvTTBkOGR6aENkSDdVUk5hZm41OHNH?= =?utf-8?B?c1YxVHFGY0lZM2pUOGlWWk8zRk5oUnRKd3ZlVHZEVkVQQ0NHSlJnNkowRkpC?= =?utf-8?B?V0tkekw4emdnM3NmbjVONFVKNUtQZWtEbXphMGthcFVpU3JmbWFXSlMzdENv?= =?utf-8?B?eGd2L2piOFNUcytsR1dlaU5ER3hGVTlwUEVpbTFGOVZNVldoTHQzQ2I2T3hE?= =?utf-8?B?cXZJbklCQ1VvcmFsdDBOOGlVNjZibnRmT3NMZWxOUkg2TGx0ajZ3RXZVQ3h1?= =?utf-8?B?a1VibzRYMCt1WXBkUjNlQzgrU1VNbFc5UWFtSFpDdzFvWW9QZHEyQkJDSk45?= =?utf-8?B?M3g0VDUyK0pqOHhXNnI1cTBpTG45S1hYck5kb08vV0cvUlpGdEV0ZGg2QVNX?= =?utf-8?B?b1ZhMi8rdHVjaGN0RmRTTEoxb21wbHVNNWY3a0ROaG5uWFp4aFl5QVpoQXhS?= =?utf-8?B?S0w3NGQvMysrUXZSZWkyWjRxSlIzbUIxeS9TaGowOUp5TnZKTXdWREVGNi9K?= =?utf-8?B?N2NhMnRZb013aEZpRUVjaDJzcG0zaHo4ODl3cVppNGtEVVZRbFA2cGZkZXN6?= =?utf-8?B?bFNrL0QyWnlsS3pKd2NTYTNhZEhtYllSd1pZNWZyZXo2eHhYUmkvY3FnT1ZC?= =?utf-8?B?MHhtRmFnTXJIMitKRE5SeDN3aUJvS0ltVlprbEZYcGxBY2JHS2hFT2xoNW9L?= =?utf-8?B?cEt3L1FjaXlodzhidWRVc2JGOUw5TERHTXpteFVCM2twOUtldm0wMGF6YWRo?= =?utf-8?B?SFYyWFNjeUtaWENLTXNzb1hSVUVwcm9NSkw3VzZNZ3dUTDE5VzBkZ0JZbTEr?= =?utf-8?B?dE5Tb1JmN05DQS90d0U0TFY1S241UGZzQno1ajQ3akE2Sm9MVnN0VlhIaGc5?= =?utf-8?B?SnZMaWJCMi9Mem1DOTNETFlWRHFCR3VrdFFMM0dJWW15eUt1RG1UMk9WUjhE?= =?utf-8?Q?ZKL6g+TrByBMAaveQa/uwkJXJ?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a70df1ce-4b40-4cd7-10c8-08ddf03961cf X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB8461.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 07:12:20.5029 (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: Zjfjjj6/6gdHeCTKOhToLvIaVy+D+A4Y7GJdoZHzXDIqxX5XaHdkhFN6gF/IaFXCPWukgK6r+Urchh7/FZDaHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9358 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. Reviewed-by: Frank Li Reviewed-by: Daniel Baluta Signed-off-by: Peng Fan --- 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 Thu Oct 2 22:40:29 2025 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013030.outbound.protection.outlook.com [52.101.83.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 40F9E3090C1; Wed, 10 Sep 2025 07:12:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488350; cv=fail; b=fuS5wDHO7T1XBT7BEMzjoZSq8uB/yDVzlwv3JW5tOtnGI66obNYZGYYstCMK1P9cO0hksepfi2Wgk4y8sicaWoP9B/WI6XDClRwAcoTJTOOO9oHMPhqET/xtHgj0HgFypD5o1d0l1dBib67yTwuI8OypxMGgVvn6QtPXAiYoHwk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488350; c=relaxed/simple; bh=1uFIwURMmiAR4CvvGclzmBrRh3oZCC+95uxrgqJn4rs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=theaZ6yuL7x7kqNV/3i1mBOfkqV6x8afEnW9aDm8fye1ixMX01Gnn1xb2yZpAZnSQD8F7cYkx4KxsJCr4213Psls8qEMK2LuRdowoksFylYj5Z57eZg5yUd0focIOj1YZCQ52/7IV3EhmY/DUDElUe7NjiyDQRsWmcFHhSlaR2Y= 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=M04i48gU; arc=fail smtp.client-ip=52.101.83.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="M04i48gU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WcJD+uCijQH0ZH7f9pDXsEoWjBlbcLdudPD65aNS+itCmkLjj/a6bm3UIHh8wclrc7OAEF6OGzjTBCXBo8gWVJZOD/G00+cFTlOYwELvPgJIlZAbxubruOXgurDbGBWRDbhU/PgknDbPUC+uLW0K/WUhLXsEVA+vdbY8Q6ORawKKgNV4F+6akg/+pwL7yHWkrAMTZW3VfpMvfWPdUqLNJLgl/VEhAMOKjqIegdd5cSy2RfRuoYbOem6q816UOYPPae64XgLrCKd+f0C9CMd1OWpppMtUxbkToVfHIqwIc0xx1URlk5kAN/MBzeCebugoDalcrJ41y9zHED3FenvMyA== 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=sNk+opEe21BYpBWRaoyyYUV+dXTZUlyuViIL1zdiPuE=; b=AkNJwZJmaCQI+tQ6OcHWI1nHmdvMVRHDbp4WCpmsx/Pi0Invfy/wLFxNFg396KtxBMbHwFZOY/JLV4T9rDbG9vgdzT+zMIi4r8bfn0UcZQvR7Rm+iwMePxyooZX6xp88hgVQHA77e1MdJvJikOIQ20cF2UR5Ag7GIwmdLYanFmoYAmSpqUjbmNpjBEQSPJKVVoRT7mYgtCiL/nUWTxrhnUVe25k3hEQrZY9FgOFjsU2VfY152jjs8Mr7OICn9hAaaQeUo4erffATq4pYlwzO9IRDLnCDOxUkXH0O1mv9LsrQ0huiRCH+iKljnLjBd008Q/gtJBdLiJ57U5puUMCS3g== 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=sNk+opEe21BYpBWRaoyyYUV+dXTZUlyuViIL1zdiPuE=; b=M04i48gUWBeDAkogl6FQ2IjF41H1ii2d1oUsn8yb7AXslCPTQaYraVLMOHthIA67k35aJiX9RpteszjphLlxwHWHth/HnFWPJE/trq+N/BiHMlHMiYWHp8Rd0b0HEIsIVwYP7rdG7MN4ffuQJ/cksexh3laZHHOJErLZ/oQf/B0/ajmORn1YiGDVECD0vYT0AuTqbQtbtAhtth2sPidYXkjBK4neh4YFJJPGZLhmjHiebaD2EOSjtku/XHu0tQ2BYMbXFFd28T3lFiFgQLmqab9XZWoTSJiU79Hr4BfD+105tPVWjkFkVDBC9x8mhNsUdgXLAwRCKWuDqeFkOBjI3Q== 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 AS1PR04MB9358.eurprd04.prod.outlook.com (2603:10a6:20b:4dc::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.15; Wed, 10 Sep 2025 07:12:26 +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; Wed, 10 Sep 2025 07:12:26 +0000 From: Peng Fan Date: Wed, 10 Sep 2025 15:11:48 +0800 Subject: [PATCH v2 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: <20250910-imx-rproc-cleanup-v2-4-10386685b8a9@nxp.com> References: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@nxp.com> In-Reply-To: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@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 , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757488317; l=7616; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=1uFIwURMmiAR4CvvGclzmBrRh3oZCC+95uxrgqJn4rs=; b=z/Pvf4GHKdwk73vSZYVkwPPoPYUFGZNtft0BT42sm4n41Pd632vgJQLuCgxtaBMw0N0LH8K+y Mh4P7rDnhNNCuKScnAylswLnzyR7IMQrkkUoVXSfJBv+1YrFj405wup X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0015.apcprd02.prod.outlook.com (2603:1096:4:1f7::18) To DB9PR04MB8461.eurprd04.prod.outlook.com (2603:10a6:10:2cf::20) 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_|AS1PR04MB9358:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e9526b1-5273-45eb-302a-08ddf0396531 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|7416014|376014|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NE1JdWJsUytFVEdWSG5sQlZOcDRDa2ZBczRNeHFvZ0taSlpNT3p3NkRRd1ln?= =?utf-8?B?Y2VGdVlzVEUxVGNSZzhYWmYyMTFINU0zQWVyREFrSGxCOE0vQklkeVI4bFRU?= =?utf-8?B?WXdtVzFoZWltcnRGYms4VHBTYkZVZGhZNmVVME5GaDBmdThWWDVOc0MydlFG?= =?utf-8?B?OUc3K3Z6RWVvMmVqN3ZmNTJtblMzTW54N0NmQUFyR3lkeU92M0dZcDlEdk5y?= =?utf-8?B?Mmo4T2VyUW1FZ2FITld5TWpsVkVwWkRQaEpNdDYzbThrbzNscDc3MDFVMzI3?= =?utf-8?B?ODF1ajlJc2hDbUxFRHBTNmFzZzRqKzI2TVN1eHFzMnBmQUoxUDAyZEFaMW5x?= =?utf-8?B?b01UTmFJZTYxcExpK1F4U05pWkVYZHRBQllidE5zQVl2QjF1VEdCbytReC91?= =?utf-8?B?cWNDbCtoWWxKcDFuWDBSakw1S0VOVG9oYSs5RUZpcW8xcDR1K0NTUzJKR0RG?= =?utf-8?B?b0xPU2ErNlJqa01FNEdlWlVqSWczV1licXhpWEt5eVZHVGVZbW9qaUw1bi9R?= =?utf-8?B?citUUi9BRzlkVEY2WE9pbzVFNU55dGVqNnlGeVZDWDlVTS9WLytWcGNoRXFp?= =?utf-8?B?eHZQZkh1Y3p3WlZ5ZElDbTVMOTZKVmxpUnJYU3hnV1VBOGlwUjliZHBMa0I5?= =?utf-8?B?Mlp2ZjArY0pqY2xxM25IL1czMnpYZVoyWmdOR3JDS0RBM0lQL2RWNGpyYU90?= =?utf-8?B?blZyUU1UNGZBUk5rYUhHSHY3dlVhV1BIZGZBMjNvL1F0UGxIQ1NSbm4xV3Iz?= =?utf-8?B?WkJOZ1NHY3BsTkFzaEhQV09zUStmVlkxYmlHRTJoakNMRk5Ydjg4Ynl0SmRN?= =?utf-8?B?bkRUK3gwVDZ0a2NPbjRNVzJNNnQ4TER6U3RwMVhvNjhBKzhjakxQeElHUnEv?= =?utf-8?B?QTVHUnYzTlB6OElSTSt4am5RaCs4ejd0Zy95dURycUw1WVBhZktYRlpkdGZM?= =?utf-8?B?Y1lyWlFDWDFlWW1QWHVQbTRFV3l4RUkwMHJOdDFKbDRNWGxnTWRmVEdEMmxY?= =?utf-8?B?cXFkOXRYVUhDeXc4c09iZ3Jrc09vT0d1UWN6N3VBekF6a0Vpa1BOU1JmaTF1?= =?utf-8?B?V3ZaK0Jld0pqYzc5YWdQL0h4VFZnL1ZNRnYzMHVOdTE3WU5IYmdLMm1pazcv?= =?utf-8?B?VkNwVFI0bmR4WStDdUYwQ2VRektZU2Y1SW9EdW43SlJVLzk4RXJ0eEdmNTc3?= =?utf-8?B?Y2swd244WTJFbzVUNnFIdEpDK2RSbWFrOWg5UHNuMUFKNnRtNGI2cnVQakpV?= =?utf-8?B?c2g4NDRiTFJ0ckllNW5sSFVoNTNqSDZmcVZXQ0xtT2ZPSlptQW5jNitnM1d1?= =?utf-8?B?MC9kZ2w1UzV5bnZJaGdXY09MazNGcVhQQWdBZFRSUVIxZ0lSZVZDMjhFZXlX?= =?utf-8?B?b0VGWmVRYzhFbjJsNUZrT1F6aGRDcmNNZWdSZHp0TDJwekR6dS8xNmJ1VTdk?= =?utf-8?B?cWJqaTNmREFiRnYwV002V1FUbVBFNlczaFlVamZ3cUhRcjdOeXNtNittSWRk?= =?utf-8?B?ZFpnbE5RTmEyWkhIbEtGSVRER1pRaFZmT0lnNHJDZGJmSmFOQzJOMllRVVdy?= =?utf-8?B?N2VqVHU2V012UXlIa3NNT0hzZ0xoMGFmVFY2K1F5UlpTdVlHa0tHYWkxNk4w?= =?utf-8?B?dkNjRnZxYmZtcDBBUUl4andEb0dGbGxhWE12OVNxeC9kc2g3Rnl1d2pXVGQx?= =?utf-8?B?K1orRGUwTjM2ZVcyd0s5Rml5b1RBTkV5THBEaDBVTVVGQVZpNENhb0hGOUlM?= =?utf-8?B?UXZlSW5lUXhiMFczZ1Zwc0tMSVV3MEEwRDc0bC9Nc0xBbHVmejBheTVYYkhB?= =?utf-8?B?d2sxOTdLSC8xRlNrMkx1N1duU0k5QzdIVUdoeVlORzRiU1dSS3J1SkpYREc2?= =?utf-8?B?Q2pTNVZuNnhnSzAyUkhZa0g0UGF6NEpnSHliRDVnU3ExQXEvNjFEcjNBb1lF?= =?utf-8?B?QWF2T2JLYmdOcHBQMzRqV2RBdDVMaGVVSTlBbEZvRVJuUE8vQ3dIM2JQeXU1?= =?utf-8?B?L01FNkNkbzJRPT0=?= 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)(1800799024)(7416014)(376014)(52116014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UjErcVREa3ZDNHRwc2VrZXFLb3VXMnUxdkJVK0EwUlRpK0VKNnVRRlo1Mzdm?= =?utf-8?B?VXhYa3cwWHRaWDZMeU8wQUJVTENnN2NrWnBubFVGaWdKZjVqbUU2N3RNazE2?= =?utf-8?B?R2o2VnltNnVSNXhSNWpXZGZyQ2YvMkduUlE4TGVPdC9lS3BPQ215VUpyNEVn?= =?utf-8?B?VGFkY2NNN0hTa0dTQXZjYkpNaUwwUzJtL1VzSU5MS2VPUkszT0FmYnkxMkFN?= =?utf-8?B?dm9GYmNWTDhxZXRnbkh4bzBTVitNcUxwVDBsMk5Ma2NaZ0FaQXozUUgzUlll?= =?utf-8?B?RnpTSlNnb3VuVmNKV0ZhTm84bmJXaUxjWkhMWldDQzdhTXlKZnVNNUhmTzk2?= =?utf-8?B?bzI0MFpBTW5mTVA1cTlucTV4ci80RzI1UHRrZ0h2VENma1MybkdaZnQ5VDFx?= =?utf-8?B?TTcwQ1VVMzdCb25vOUNVRXdyY2NUTzhLbzFIK0VhUlNKcmM3VytxTWpCbUJM?= =?utf-8?B?THArSlAzMVkvbjFyZDlmNU9jRURobFY4UWRuQlZ4Qndwakd1V1RGbVc0bk13?= =?utf-8?B?cDM1c1FTWkpGamRobXpMb0J3RHBJOUpiUmc4OHViNE8rQk9TKzNuMmcxK2ZF?= =?utf-8?B?ZU12dklIZDQyOHJkaWg5RUZoU3hPMjFZM0lCMjlESVBKK05YWjdoRXZzdUtv?= =?utf-8?B?WTV1NTNzdEl1SUZZSVZNc2tFMjZlSDh5OElWS2p1Ri9RSE5hZ0RET0RiQVU2?= =?utf-8?B?b1lwNFNpcWgzWEpQZ2JmVVBJUnlRd3I3SjJwMUJwaGxZb1RKRkxUT1VLa25B?= =?utf-8?B?SE5QMWxpeWtoeWYzZ3VrM09TM2dxdFZQdlZuaEhhZmRtQnJoMnpVVGJQUDRE?= =?utf-8?B?S0Y1UjRhNCtXUzBZclhHd2w3c0YxSkJaYzcyRzFIWHEyT2JmbkozWFRnVHYw?= =?utf-8?B?cXJvTDdTdVFoZ3JvS2MxaEZ1MEZJem9CNlk2RVZQZ21hdVNPdS9SN3Q1ZGtF?= =?utf-8?B?YXdpRkl1eTJQVkpLQ1lZVkloUkJsbGRDTDFmV2NCZHF3amFhOXZKYVdTU0Z5?= =?utf-8?B?d21jSEpINCtESUVFaHlRZGZHVzd5NVFsYXVBS1ZmcEh3cEJmTXVhVVpqbTZh?= =?utf-8?B?eVByclNBOXlTdjFLalEzUEFEZnVoNEpjaW5WVTIzN011YlpDNGVjNFJMNDJk?= =?utf-8?B?NVZxb3JCRVVwOGRhV1VDUzFHdndMcXpTTzY0QkIrYWtuem9nd1J4ekwxSVNT?= =?utf-8?B?M3lBeEM1MGtYalJXSXVMQ1FpUFVFQWRtbDhncERscmV5amNEY0I3VnI1UTAw?= =?utf-8?B?emdGbC94S3EvLys4QUFMZzQ5am5nQXpBOWVRQzB3VkR3NEhzOTE3a1E1ai90?= =?utf-8?B?MU8xUlhlZ2crWk1ndk0vajVWWVVYM2tyamd0NzFuQ3NTNkFkRzh3WEc4UHQv?= =?utf-8?B?bFZ1UUllRm5TbCt6ZlI3bm50dVk2aElCOWlZN1RFVTJoZ3NrbUkvUk5GOUpX?= =?utf-8?B?QU5lMFVFVGcvODJaVXdjeDFpK1hVVE16SDBBN0ExV3JrZFdCWHdRSnlEMFhy?= =?utf-8?B?SmhWcXR5MzZhaDl5V1RGVkY0RmxwYmdDbVVvQ2dwMEVNeEMrVjMrQm1UeWM0?= =?utf-8?B?VUFwK1kwclJpWm9UemlDSFhhRTdKeDh2WDE2d2thRXpkR21TRzd0YkgwQ1Fk?= =?utf-8?B?MmtTQ2p2RDBSalV2eENkZkUxTUlFQmtPenVUYUkwZjlKZ3NXZkZLdklHK0cr?= =?utf-8?B?SjVUS1hKN0xZOFMwdWNCRzhmcnlyWVBTR3ZGdENPRURKbHJRMEk2NFZycmhz?= =?utf-8?B?RDZCY2VzTVQzdHBRdUFWNlFjRVYvdlN5SVpIUE00M3lQSG0xU3lnbEVRZzRO?= =?utf-8?B?aEJZZ3h0dEtMZzQrODkwSmhWU1N5cnZBdys3Y3IyRVlOMGFXK0JuMjY4UEt1?= =?utf-8?B?MmxvQW56QWhWMVVMQjhnUXdZL1FwK2lRcTNHOVRKVzcrbklzL2UvakhDa2hQ?= =?utf-8?B?WlZDL0o2bmoyWDNmdFhhbGpHT3JDWHRheDNla2w5MUkyM2k4cERid3lRaGtw?= =?utf-8?B?QURtcHdoS29VdHAvMExCeVExUDBqaEUvdmhtSDdrL2p5aFY2ZkJ1WmVOeXhV?= =?utf-8?B?NlVySlpQa2J6cE56d05udVVwa2N4V0Jvb2h0VkhoSEtOa3FmMXl5UzBTdlZi?= =?utf-8?Q?oSuX/GQvTe1bpwBZr+Cpa9mu3?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e9526b1-5273-45eb-302a-08ddf0396531 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB8461.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 07:12:26.1973 (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: phQyMn30P+TBlTtt82SK9TCNuoEm6dITTyV5wvZhdpLBCoeknZbIPCtvYkH9n1aqi8sdBD7DkwUflsPPmv34iw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9358 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. Reviewed-by: Frank Li Reviewed-by: Daniel Baluta Signed-off-by: Peng Fan --- 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 Thu Oct 2 22:40:29 2025 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013035.outbound.protection.outlook.com [52.101.83.35]) (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 E935E3093C7; Wed, 10 Sep 2025 07:12:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.35 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488357; cv=fail; b=O+GGEDYnkYqLMlzG/QLkHUFS1H9Ed/m9cPhFlcCTjDOkG8k5VJFEnAxbOyLU3bSoK2L3Ka0fR2ldoDiAxQHLI6NOy6bluwWbS7Qjj1PooJxcIBJ+pugEmTHQT5o7vJMgi0OhroUoFydvJFAwi8n56tRkZEH/YdeXU0X1AErxaEE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488357; c=relaxed/simple; bh=8/aZ8qjJZahIT0NKJek5f3HJpuX9oelkHbxCYT1uLQA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=tzHdi6/ZXX6WLyuotbFxRpsznYwpvWM3wI8uYSbq+qYLW340o7tODNqifUIOrtiIqYiVtMGNt19PilsebsPrtql392+qzldGk8ENnzFSzZ5Lpzwu3ANetJ/BoXkv6FONPExuEqAiDrhpbBXBXF4YwTy9ZwDZognXEk1T3o0HEN8= 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=Zjz2yhhx; arc=fail smtp.client-ip=52.101.83.35 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="Zjz2yhhx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ziz0pjMAqL3ljyYc1UtpmJaZqr30HBZQQNj1w7L5A5L8aHyzTrPB8d9XAme7iazflkCcTLm+LNBmvM2tK+UCRA+gmdVNw7x8h3fPvJXWx/RclkDC9wHIr+F/qhoRVjkj4X7BtWs+TWjDicj4UgxluCH2EdqJ/ezvfIAWEalh7ejVrk3aCLKU51i3sdg22bqYaIzGn4L7khdatKSluAKo7FJ68061lDfICNls1nFbYZP9ibMxjaxvXyjeIc2aMhlMRF8JCWerxH1jebK56dDvuellJ/BNassb82Y50Up6gYQ/XOqrdbHPNopPvFZA8ppilYt2P87ui6rLeCMptMHn8g== 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=d9bdmQ9MmODDgHDgRwN3HuyeWeFJNaZrX2/WQ344XWs=; b=w4NZ18OzDrUyDwF51A7WoDa9QPj5GsS2P6XcBScZiLPyBtXjOXJ/2ug/4vqIi942eqaAiR5XpfAOSwXsdT7TXmL+MqoH42p+PAviwRudMlSHmnjbaImh6cjMjwWjUd2y2uzIhNA8tT6MLDR9+VODKZUxSf8gvzd+Qi+rbKa4AW83mbDtZMBnk6WNt9gy6LKld3Yfl1dut+Etxk6nl7G3n6x/cMbTryVQ5+YRrm4rZBZVFnSAOr+LLfg4ssTng6dGOSCxa4opWO1m7HmOuly3yab/aS+36khR37nqMiH/e/ympTtiJk8qnJDU5DKLdMoqykIqNu4JrEZFWBvov9Hmcw== 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=d9bdmQ9MmODDgHDgRwN3HuyeWeFJNaZrX2/WQ344XWs=; b=Zjz2yhhxfs4dLyKUUU28HSjU6yymf1+/dnuCq0wOEVczJIoWolwZPDLxm+NInhXygRAy4TKFRxWMj0ETHRy+T2VbiOzdH/oO15GKb76nbsrZuP8ZDulDjdzhokSFLYpytj8b3FLt7LBPxHZBpgKJVHsjGaPeoSm9zbKNe04ZEXUXAsmZdfgDH6Xt2bZaBJcdywgUi3tGCSfvM5PAXQ1zZYj57nhAAsttvSRy4HNeWOzEJtjhqrmf4akDrOYGpfTW/ZCTgqipYo+C41YHlJHhp9a4wrFPu0Gxe4uy51qPYt1GzZbSRFUHUI+eH0WM5E00EaBsMkhXn3MNs1i+ZRQgig== 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 AS1PR04MB9358.eurprd04.prod.outlook.com (2603:10a6:20b:4dc::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.15; Wed, 10 Sep 2025 07:12:31 +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; Wed, 10 Sep 2025 07:12:31 +0000 From: Peng Fan Date: Wed, 10 Sep 2025 15:11:49 +0800 Subject: [PATCH v2 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: <20250910-imx-rproc-cleanup-v2-5-10386685b8a9@nxp.com> References: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@nxp.com> In-Reply-To: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@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 , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757488317; l=5519; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=8/aZ8qjJZahIT0NKJek5f3HJpuX9oelkHbxCYT1uLQA=; b=VWMDvLd+pb3dviNX89gSYI0Z0gVlIPvjiGqbCf5EUEXTwB0JQnFzho5uT8gL1M1cemu4e/Pbr pJjDst6qI7OBSuWsgXSheMuDud4u1IuOAaq6NM9CH0Y2UK8lswA/DA9 X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0015.apcprd02.prod.outlook.com (2603:1096:4:1f7::18) To DB9PR04MB8461.eurprd04.prod.outlook.com (2603:10a6:10:2cf::20) 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_|AS1PR04MB9358:EE_ X-MS-Office365-Filtering-Correlation-Id: 71605327-c9ef-423a-375a-08ddf039684e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|7416014|376014|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Qmt0K05NSzhFS1FaMVAydWEydit3U2ZmUXc5YnRYUVRNbzBCQ3lZNTdDV0dt?= =?utf-8?B?bitWaVlUSy9uOWw4V0NZODIrd0R5Z002QjJ5cWNPN1ZkKzRqRXFRcU1nYmox?= =?utf-8?B?VEdCNGt5RXFTVFJmTWhtSkszYWV2R1B1dFVOU2tGd0FHUTJQWWJVdmRVMXF3?= =?utf-8?B?V3JoaStQaDFqWWUvVE51Mk4wSkhXdUZQVU5aSW9SUUhNSDE1TGpTRjlDYkps?= =?utf-8?B?VUJlemZGYkp6eXYrYTJJSlN4VDNNS0ZPS3RXMXIrdDBLWXN0a0ZNVDZtRHJ1?= =?utf-8?B?Y1JXTDlBeVRzUUFoVFo4OXlCSm1RbjllTHdNT0E0WlpTNWZwN2N2N2dzekZU?= =?utf-8?B?dGlLcDNxNngxQXBOS1UvU1J3dHB1UnJJdzhyMlQ5Q3g0a1l6bkVkVjZ1bDF2?= =?utf-8?B?dHg4ZzlGclFRRHdrMUUxMmdZMnJFNGV6T2dqa2g0a2QzVWtTRGdaQ3k1TzFX?= =?utf-8?B?NEcwQVE3cWxTcjdBUEJRL3IxdmxtTjVIRTNMckg5N01oK1k3TlJiTUQzT1NS?= =?utf-8?B?SW5EK21tbjBRdzhzY3M1T1RpZi85RGVWOWgrR1dpQ1JoeUJYQzBlT2UzQ0RF?= =?utf-8?B?WnRHUkVjb0o5NnRqYzBuTG01dmY3RmZ3Z3pTQkVCNHZ2TU9zL25NTmNydHkr?= =?utf-8?B?dVBxQ2I0citlbFBxQnhMd0xzb25IVkNjYlJBTTgxbW5lbEFqMHdocHltcm9N?= =?utf-8?B?NkJYWE5zNnRVTmZzRUcrWEJMNWpCVlhyc0lNbnV5c21FRGxIR1pFaTh1YTlU?= =?utf-8?B?L0JIR3ZoQXN6bE8zTWM4NkppNnpvSTY1ajRKOS9PME5YWE1kR2lkVk9xNWd0?= =?utf-8?B?emZNVjdyRzJ4dVU2cHA1M2RXMUVLbGxJOVEzeG92cUtOellPc01MS0s1dmd0?= =?utf-8?B?VlVNQ0wxbThXN24razNtWWdCaG9HZzNuekFYcjFzWUpiNVNwUjAxOE9rcWNs?= =?utf-8?B?T2tQNVFabUhzOHFCaHdKYXNuejE0SHkvREZOSmpRMVM4L0owc003ZUJTSk54?= =?utf-8?B?V2VNeFJqRHE5U1ozTEU1d1dCWG5CNmlNODlTQU5lVjVEZFdnelJHZElwUytW?= =?utf-8?B?VGRHWVlPUm1wUUQwT1RIYzUxb2hJMjFDcm85ckNFdU8reTdvWWNROWxTdzRX?= =?utf-8?B?Unl5RnVIWkk5VEREQUQvZ3Q5NHN4T1N2V3NmZEVFSlVWeEZhZjJxSGtBSXZW?= =?utf-8?B?a0toeVVlTlU1cjhoOEE2SHRzRjhOL21KTjYxZjNRT1NsVkw5OHlPazNmVStt?= =?utf-8?B?bFdURWM3YUs2UDVDeGtjZGVGU0htaDlGVGJoVFJLT0x4UC9BM3JXak15aHJU?= =?utf-8?B?Y293dkVLVnk1TFVaV1hFbmNjdWkzaHhJV1plQ1orMzR2bSs4OVgvL0syT2ZF?= =?utf-8?B?TmRCUWNieXAyVXB6dkJSaW5CeDlBVVRTMVVpT0FYM2p4WTB2OG03OGU3ZjJ5?= =?utf-8?B?b1J2NEc0Z0Q0S1F6TkphaThzK00yS1p1RXh6d0krUnlmelF6ekxudUhhNUo3?= =?utf-8?B?cFBZdHV4YzZOcFNnbWVMMHROekhDZ3B6ZkY0Z2libWRRS3M2RU9od0lQSlB5?= =?utf-8?B?TDFicUhiMmRLWmpaeWRva3FaODhwQTljWDk3ZlM0ampreXZPbVNpZWVpUFFH?= =?utf-8?B?bVQ2Nk5EY283cCtBTmgyNUVsc3oxTjZKbk9xQ0lFOTZGR3BCSXE3LzM5VkVo?= =?utf-8?B?V3NQeWcwR3ZibEp5YmpGRDNGYUZlYUp2enhZMXRESldTaDhOYWRET2Z2MEtI?= =?utf-8?B?YkF6NXpEQ2IzYlpxbFJ3UGVUMmxJeXRYaUN1dytRLzJyM0xZMUY1VFZOWGZl?= =?utf-8?B?RUVweFlTYUVLdFhuZXRJTkQ0UEpFUDZvMmk4QzVwYXVod1FWOHBQaFZ2QjR6?= =?utf-8?B?ajlWZmlST1JxdXB3N0VUR0lxT2JUenM3K0hZMUFobG94R2NRUThQRkZTaXIz?= =?utf-8?B?eHRaU2VaU0hGNjEyK2ZnK1plY1djR2NpS2hCSEJ4MFlzM25LR1N3Y2szNmhP?= =?utf-8?Q?pk4GqaLh+YwsHn9lr6VMAfLnC/N4Zk=3D?= 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)(1800799024)(7416014)(376014)(52116014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Yy9Way85dmEvWG9rQ3RORjdYdmlIWWMxMTFkWUhYQnBIbzdhbmNWWEoyV2xa?= =?utf-8?B?NVNZRUFJTmFJYkFSeWFQSDZPRWRXRTNKWmdLa0dlR096ditqRFBMRzBIUkVr?= =?utf-8?B?dFZpN0pEeSszWTM4eVpycktJeFJjWVF1NG9STTJnZE5EMEhSVmRJTlNVRTlI?= =?utf-8?B?eFhUb1QzUDNwZ0k0VmRZTzZqRlQ0cERpMVdNRGtWUW5KUHdENmZWUTRMRlhl?= =?utf-8?B?d0FVNHdyTlU3MStXYUFQMU95RThYK0tZTWQvTS9tV29GSWJrMFpPcCtQWVp6?= =?utf-8?B?eUZaNC9kWkJwS2tDQmZSeHdJNk5zMkxCbHBCYjRJYTlPclJSYm9ZSUNWcFNu?= =?utf-8?B?RldxWjZwVjM4OHdqcGJkdGxOb2h2Y3M0NnVoVFc2dHdpNGN0TDZDSW5FUCsv?= =?utf-8?B?a1hsbE9UU2dPS1pnTGE5b2lOYnQranhYZ0VhWWZqOEdZOUJaUEEvMEY2N01D?= =?utf-8?B?cEpqOHVsa3ZkV2lWY2NCVWpsWWNoUmQrUU5HR3NZMmJXN0ZjVXNVTTN5SlBk?= =?utf-8?B?ODdrdkZJSHdLTGpTb2NMSFBvNi81TmlTb1ZBem9NVGxtYUc1YTArMko1Q0lv?= =?utf-8?B?cFB5YTJ0eDAxekxMa2Y0d2YzSVcrN3NqM2pEeEhrazFTZDJXbHNiOGlTQUpL?= =?utf-8?B?elNHWTNIU241Ym95QnZTV1gwK2llcWxXQ1JZeUJwbU1zTC9GWDJ6NThXYzBs?= =?utf-8?B?bmM2YzEvcHdnRG9NMGR6OHJTMFdSaktjUDhLSzBUWWtCQ0hNdUgyQkFvd3dU?= =?utf-8?B?cnZHSytlMHh6R01GNHBsSjE0enE1UlZ1dFRHaTQxcXNnb1QwcGR3VFZIUEJp?= =?utf-8?B?eCtsdytSbk4vaWdXVGs2TGtKa1U3SnE5RVZZdmpFNHpzTUNzWFd4dE9CN040?= =?utf-8?B?MU5wQ0s1UU52SStNejJ6NXNEbmpock1NRnBKYUdZRG9DcVNtRWhUNldseUpE?= =?utf-8?B?SkZJTkovSWJ6V1J0ZUdrVmc1T3BmaDFrK3R6eDllK3psblptM2tuVzIzTDN5?= =?utf-8?B?dkdtTzJTU1JWbGF2b29kUEVWaVE3dTRNRVVhbU1FTkdQS3NFV0tFSnNrZlpz?= =?utf-8?B?ak0rRDkyR1FNNmhqM1dHMWVXQWJxVmZVUG85RzVqMzJ6a0tqSUJRbDA4YkJq?= =?utf-8?B?TmIyS1ZhSzRjR2FSS2lhMUFDUnljUXNCTDhHTERjUWZ5WjBuY3B4Ui9VSVZX?= =?utf-8?B?ZlEzN3JjU3RJZkVPZWJkOFhSUGc5dUhzLzBWWU9RSWxUVFVrVHI2V0pWd1Ez?= =?utf-8?B?UzFvakVhNFF5WWtwQkpwMDUxVjBRUHVTYnlBL2ZZS3FtNVp6NGhMa2p2RW5W?= =?utf-8?B?MFhLcTU1UE9pQllQdmRQMlJ4M241Q0VYTVIveG1jOE9OS2VGQnhVTllUcTZJ?= =?utf-8?B?ZUVJeTNaSDZsSXg3OGRKcXlRc0hrKzFuKy9RMTVKUlNWNEJoQWJZeWUrT0JU?= =?utf-8?B?WFNXNlphSUtsWUNrdVcvUXY5bXpJcjltZ3VwSEtqTDBJODBEcnp1TURVeDZ0?= =?utf-8?B?V0x3ZjVBQ1JEelBkTXNwTTNFUWZLK1VlMzM0akx3NURBUkpwajdFekJtYUF2?= =?utf-8?B?SzBSN2czMGkwa3NZSVVmTVVqUGltTnBVY0x5RE1BNFp2U1RUNmZLUlkrY2ta?= =?utf-8?B?K3FzZFJwS3ozWnROZFJQOEVvK2NIRDg3UE93b3E3KzR0TExkbVkwcm0wT3h2?= =?utf-8?B?V1NIOGZsMmRaSHQ4NXprWTkwcHkvYTdIOHI3aHozL2JhNXJVdkg1L1lacTFF?= =?utf-8?B?UTIyNi80Y0pnb0ZzNkJ1dWN6NXdvcEpxTmdPc2pJNTZqdXBtcXQ4T2ZCdWFw?= =?utf-8?B?WDVaOFRrUjhtZkJjN0lTZTRmSEhVd0lVbHcvbWhqZnNOQitQd0hBVzlYZ1ZB?= =?utf-8?B?ekowTUpSWlQxRXRFdFpKZi9UdlI5NlhFZHpkbFZ1MTJGd3VHK05lb3hYSkdn?= =?utf-8?B?Si82cmhwdmdFeU1rSFBmMkZrcXU3dzMxUmlwd2UxNTlOMXBBVFZlOFlCMlMy?= =?utf-8?B?UEE2WXhXQTRqY3ROZ1c1R2xPOHdZQlNsb0ZWNnQvQU9PbjZYVG1VVXZLelFI?= =?utf-8?B?VitQYXRFOERRcThzaXIxWTBzaUo2b3hBUjNKSlNXcTZpLzNVcTdoQUtFYzR2?= =?utf-8?Q?uJg0ij5pL/KGWwvN+f3ulIQ3K?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71605327-c9ef-423a-375a-08ddf039684e X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB8461.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 07:12:31.5186 (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: oAL0ZZlAqJWwIGBGIEWMPx5ojrUjJselKsVacw0hYA3rffLjBdQnDUin/g2afNLVdFa84W4FI8lcxMm6cyyUQQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9358 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. Reviewed-by: Frank Li Reviewed-by: Daniel Baluta Signed-off-by: Peng Fan --- 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 Thu Oct 2 22:40:29 2025 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011070.outbound.protection.outlook.com [52.101.70.70]) (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 08EA6309EEF; Wed, 10 Sep 2025 07:12:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.70 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488363; cv=fail; b=eoEE/WFmgEN3kjsUDywRSw+s0l9BMFS1AJhp9ZcxTyV9V/0cWdHeE+buuYUuoRQYLOSRocKOJUtls12E3y2yuYkL5Tyy5VM0BnPMo7eNcTJtLCO25K9002RjUakbYbszHFQlsPZgPIdGWNKCmWzD+SMa/HQsuxn7hoMuLpcAeGE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488363; c=relaxed/simple; bh=6bUT57s9fapRCG926oPzv2uzLrH2NhQ1Hw6lDEDb254=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=dVFckaliDp974q2iHsIJx7H486F4mzZVmDpZkdZL0HuieYhSGN5RYHqmvKUhBt34ij3k++Osp0AoCfVBhmNUvxgFr7I4OXvCdwC6gnjgQvTQLRuF8b1Mo9Sh1Z8u+6or8miihKh6y6ukRi99zayU4BIYf4BcqD6kjQmn1+gN05o= 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=L0+OwibT; arc=fail smtp.client-ip=52.101.70.70 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="L0+OwibT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cz4WIvQd7d6T2ihcgMHmpamz7LijTGnKHtLHUonJblDHom/pNlPyCZRmaGRjgP9pn/u88xNEgNh9ha3Ls+lhQpXJNYpkzm4QkS4pzGe1jKlIxOxPnvrxYYthx0U+4ihNc0nocXYv+1dzBSZTpmFLjhJI0dazh2oKeKDN6D3r6M6OC1QLSjPqlb3sNhnOBaYrCOpEsc0eHLl0YViCRsvUmOTXCHhTC/d3P3uZq6AhK5P0M7pSB5Ye2PWGbyQO5wHJ60NG7VwsMbcm4MjZfI9Fyy3WSgzpQrDMEPIeY4jowIfYN7uPvIfdB47yHPIPWLoiF1Ahz0BZogSCd86uV1RRKg== 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=yxuOz1cJ7Yy+WziRSFQ+FYeaQapncnxwqIwD3jZRdmM=; b=aXmxIHX/8vflYe1RsZaei4016GyziyQ5+wSDmsb8xj9f87jjOIKjoGCECOW7RTZcy9bgMm5nXBmrh0DZu71KEGhwhZemYAYr1qCUwrouftPLBUQSCjjWO2jwgCt8CacwzMxEU4GQxHrR//yNhx4qIfjIt4w1q3ihAuCTZwU63ee3dPfhTaePytt141Sye78h6YvFhvg+/ligxwl2hyJTdhaon+DEzcu4H9FwkOZVD1m+ZXG81/5jQ923UUef4OsCp3jMJ5SYOyIX7VS6MWcMSGI9EaOmZYy6haWTKgfobBwrJcRgsGeIvwjR/lemtia/6r9/KMa0K3mzBM8nwSpZaA== 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=yxuOz1cJ7Yy+WziRSFQ+FYeaQapncnxwqIwD3jZRdmM=; b=L0+OwibTI31+b0OJvbiRuhmTm9i/VNGz/skUovRkLgX/XIQDDVn1vReI+RPwLLQb2gCyven0eQiAtwkIwC1c+LnN0niGLnWG3u8rHvPfk0UKp+MEvu0R1FHvcXNSEzXQilJInNi4SWm87MemnMTyY9j3CdVThsvQDWruCqMtiWDuj0kbkxYOyv7imvngNVgn/2fmXPQbmM8M1AjHcRWQMosfMa5UXN3L4rHOMPO/DdFB8Y/s1kW6y+bk3hrRkrA8MBwTjXdnLcEPrkiv9Q6YNUxNpMicki1qfytmGn+KLBsspEOb8OyNgO4xrfUEwziBSzlGB5EQu6sABESKF3TV3A== 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 AS1PR04MB9358.eurprd04.prod.outlook.com (2603:10a6:20b:4dc::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.15; Wed, 10 Sep 2025 07:12: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; Wed, 10 Sep 2025 07:12:36 +0000 From: Peng Fan Date: Wed, 10 Sep 2025 15:11:50 +0800 Subject: [PATCH v2 6/6] remoteproc: imx_rproc: Clean up after ops introduction Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250910-imx-rproc-cleanup-v2-6-10386685b8a9@nxp.com> References: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@nxp.com> In-Reply-To: <20250910-imx-rproc-cleanup-v2-0-10386685b8a9@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=1757488317; l=2326; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=6bUT57s9fapRCG926oPzv2uzLrH2NhQ1Hw6lDEDb254=; b=K+YlsDxS+mxD+Dey8D3G314a+8EvB+tfIDn4Ei+SaDgBhiONPh+JjlQJoWD1crJjgoH5/aI1G oxzdS00a1e1BBcr4GduAmbjoCSHcnqR36G6PoIOIQumaJuMiNntS+k+ X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0015.apcprd02.prod.outlook.com (2603:1096:4:1f7::18) To DB9PR04MB8461.eurprd04.prod.outlook.com (2603:10a6:10:2cf::20) 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_|AS1PR04MB9358:EE_ X-MS-Office365-Filtering-Correlation-Id: ea0f8fcf-40d0-4ea9-9234-08ddf0396b59 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|7416014|376014|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VnVSVWlhVDk2NnlpcnVRa3FDSDh6WHU3U2hmNWo4VHNsWHI0c1gyK2JFd0tN?= =?utf-8?B?VDdjeldiazlBUTFiR1prRjY0YXJPQ0RTL3BxVWV6N0VUeHVnaXIybHIyYk83?= =?utf-8?B?N2ZueFBrcEdDbXhsQ01ERCs4VTlKUFFXTzhOeXdpOEVpb3JTbTZIU3JEYkdT?= =?utf-8?B?eTNBUnpVbkdha2VlaCticHl2RUp5aTBsbjdXbEdzRkN1OEVXR0E2aXE3T3ln?= =?utf-8?B?cEJxQnFvczhESHl5a3REZDFWdUoyVnBJeHJBNVBXYnlSeUpVZDVvb2lRaklP?= =?utf-8?B?VEhrUlpkdjVDenZSMWlkdmdCc3JUNWpoSXZHaFJuVDE1V1dVS0pLR1FmQXBz?= =?utf-8?B?NGNpSGNCTitSV0E5dkduVTlLemI3WGRSWXFvdmp6bFRhNjBlbFlsUFN2ZzQ0?= =?utf-8?B?Yk1vMTFxTlo1T1BkTHNWRVk4Y2s0VlJKdng4MXgwMkY4WVpNYU5wTmJZa1d1?= =?utf-8?B?NCtKdHhUcUszSHNZNlhEQmk1aUFtaDNmcTRxYWgwd0Z3UTR5d3pmeDFKU25G?= =?utf-8?B?WUU4M3RRUzVQVk4zNjBseDFray8wWkRxaENBNDlBU3ZoT1JBcExRcCtLMGZH?= =?utf-8?B?cjdKU2pEcWpHZ09tZEE5Nkx5TnhWN04vdER1aWpiVU5YT2U4Tld2NFZrV2hI?= =?utf-8?B?Y2VkRDJKTEg0cU1DMWdGOGE5Z2sxQ0ZaYWlYdzJsbUZwYmx6aWNSOUNMSDh2?= =?utf-8?B?QlJHRlloK2VMNDQzSTE5L0tReVlVVW1NdkM2NWhqamZYNWNxTFg0Y2pnbGNC?= =?utf-8?B?OVJjWUhmYVJsa1l5TUg1ZFEraDQrblVqczNjSjd5elF6d29BRDNlUkJ1U21m?= =?utf-8?B?YXVkdVNqZzVEYmphYThqNnVIcU9CVXRMU3dOYXVublUzL2RXVUJpRmxMLzJW?= =?utf-8?B?NWxnZStZL1JLZXZWVUJuaGI3bm44SCtlSnR4U0draTlvRWVPMlgzUFhtTmV4?= =?utf-8?B?dm9oNWZYQmNveC85eDRhVTVrd3NkMUI1U1BBTnZqcFlnTnJsemtUbi8wQWlj?= =?utf-8?B?Q09YZnExOUc4NjdnVExDYnIvTXA2dXNyWWk3MURyYXRRMW9wODR3TEVqMU9y?= =?utf-8?B?M3B2WmloK1JLTmZ0a0JDeUkydktXVEpKZythdzhFa0V6VFJnalJ3aW9zWWpp?= =?utf-8?B?dUtPM3lOcTVmem16TlBSQUlBdnBqOHBiOXhUNTZRc3B2TzZVMElJdngrYWM3?= =?utf-8?B?V1gwTnZMdC9ldE04T3FUS2M0Z1JkOHVCazNMYnNLcEJHVmgrSTFEOFp0V0xG?= =?utf-8?B?K0ZvYU44RVl2YndMTE1obzc5MEljKzI5UW5kWnJZelhJOFY2YWJPVVV0aG9o?= =?utf-8?B?eHllVTFZa3dycW9oNE9nYTFLYUIxV3pPckFaazRSTEFncGlLQmNJYUJkdUdD?= =?utf-8?B?QXhGZ2h0MU1GbzNZWEFKUkRaN2lOaUlJMnpzOVpXZWs5cm9NdVlPY0dONm5m?= =?utf-8?B?SURJRTJmeUNCNG96MHVtMFQvL2E1RVBVUXNSL1YxSzVnblMzZ21ZVGx5Qmpi?= =?utf-8?B?RnFxV3AxU29rbkFYdCtGSDM2aGI4VlIyd1B0TTNFUWZmcURTN09EQ0xBMkZP?= =?utf-8?B?aTBMUlFqcm0wNzRDbmxZL21oVFJDdGRLV2kxYkN2VDhVRlBNMkhOc2RyOUFW?= =?utf-8?B?QmI4akRWdmVTUTVsaGwrZzNzVk0xeFhqOVNYNzhISDgvTDdlREhyVHZZakwx?= =?utf-8?B?b2Radzh0TmpMK2JTMkRJYVRONUVWSE80TlNUQzFGbzlpbHFkYStzTDEwbmIy?= =?utf-8?B?RFdFWWdSWUprNGx2SkZPUVpBVWZhRUx5MUU1MEZreVFFT0pxNjhLelprUHF2?= =?utf-8?B?SGJFaXNKMjlKcGdUVkZBa1RIb3V3T0t2Z0x6WlNLRUVka0l5Q05ZQVRJQ2U0?= =?utf-8?B?RFFSNHhtRXVSZ3hKNFBjTStMR0gvUGRwYjRCaElxdnhya1BhOGl3NVpSWWt0?= =?utf-8?B?L0dGR25Qc3VKUnNHcm9KTWtjaE91UHdLN0ZNbzNuWWNNNlViTmZqdjVGL0pF?= =?utf-8?B?UU5jU1JPdEJRPT0=?= 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)(1800799024)(7416014)(376014)(52116014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?enJtUzJTSGdBTjhvcXorQkxxZk44VGFOellUSjFuVC9vSmpaaHEwMjdzMzkv?= =?utf-8?B?L0crR2QwaEZqbVBBYXFhRWgzOVdVQURYTWwwdCtmZ0JEYmh1L2xUakQxMExT?= =?utf-8?B?emNJUlFqRllGaFJuUDhsUnRwNTRnQXdUVDZITzFMZE1Xd0ZXZXR5SEtnUUZ4?= =?utf-8?B?b29VK3V0cnRoQ092K2NBcVJsVDNYelpRaXFNMTVjdjV3UHRXK05YVTJVWHdV?= =?utf-8?B?OStpV3lwTFZybDR0cGNYUzJEZG5QanNYMmhtN1U2clNCY25vTEpaZUV1V2Mz?= =?utf-8?B?ZGhzNHNzZTVkMkRhOEVweTFMS3BYMHVFZFNDWHpYR29VbU1PZmtzZzA3aTJC?= =?utf-8?B?S20zaCtsRmsrcGwxWkc3aW50NjFqQzhoZkIwZDVTMy9Fa2lCZU9NMXQyRW40?= =?utf-8?B?MXpqTy9jdHV4NS8xS1RDN2thT3NSZEJEdUhMZHVZRHhoanVUNUVEODhlVUlX?= =?utf-8?B?SS95aFpNM0F6WjREaG1MVk9aRTVabnFXRmlIay8vbEZyeTRXRVF6SUlldXh2?= =?utf-8?B?VUlBcW9DMjhQdUtNTWYwWjRsVzJjRnFjd0hDczByRVliUDlySDVhTTc4di9N?= =?utf-8?B?a3ZtL0pMUFUxczRNMHh6VmlFODRtdmNKalZLVnE5WGoyVHJSQkt5VEg4Mkp5?= =?utf-8?B?MDBzQUFTek5FSk5VRmxxZUdvMkZhZWlhUmgyYXhaN2twLzNNS1gzNlJ4NXpm?= =?utf-8?B?NjRmUE9DcHFURWpVWGpqMkozVGh3MFlkVU9ibnVIeG45SWN2ampXWWQ2U2oz?= =?utf-8?B?MWx0b0pPbHZVL2Q2SDFoL2R3a2wzcEdqeXJ6T1o2bVJTUFVGNmRpMmhsbHk1?= =?utf-8?B?SFVCdnlQejl5VGxWVzVxb0haajBvVEFTSDNTOTdNcDJSMmo5ZUhrN0JNZ01N?= =?utf-8?B?QlY1eVFJSUJOM1JjMitSRUc4MlBVWnRkMHo1cG1TUndzWVdTTGxYbHU1TXlX?= =?utf-8?B?NWZkS2FPTndtOTRGbnN4YlhNUEo5V1pnSmVVcTY4ZWplcDZ4NXpoc2htWmY4?= =?utf-8?B?QnozYmhsNmU5N0RkSGFSSU0zMVdNZ21vcEo0UU15ZThMWjA3UWhGSWpHSUdi?= =?utf-8?B?NGNWZGNsRHhQbWZvaTJid3YwL3hUY3FYbXhPSHNYdDNFQ2NUY3RJQVYxRzdu?= =?utf-8?B?bUFxL2grNmsxWGhjcitsZjRDWGRrd1VKbkJjTlJlMG5IaUE2V3kydE44eEEv?= =?utf-8?B?MEJHbFdWRmVOcEpuT0VoaDFqdlRSanYwWWhDUkNvQWZWejJpL2QvMVIxZ3dj?= =?utf-8?B?TFlWeXh0NS82YWtyM0dLamRhQ3VHRmJCZUpjbTlzVWpCQ0FmcXZGTUJFRTlD?= =?utf-8?B?dTkwRnpxSXp1SUVvTUFXSjFNN0J5TENyR1NTZjFLV0g5YlMwV0NxUGVIcGpx?= =?utf-8?B?TkV3TWJubHRUUU5IaDlkeDlRZFFXZ0dneG14WDJJSnFrOWJEZTdKMlB6M1Ex?= =?utf-8?B?a0o2RFlsU3Z4dG1ObThPUDYrSEF3Y0ZxMysvdVZVYVBleGl6amhGaEM4QjEw?= =?utf-8?B?REMxV1pJZ09yZGZtY09zRi85UiszbGtDWDU5ZEFNZGFYbGh1bGV0Z0JyYmVX?= =?utf-8?B?YU9pdkY3OWw2S1pEdWVJRVdBVGRYRkRNZlNheUFqSFYyMXBIN1hpOEFpNk5y?= =?utf-8?B?eG5mLzdnQ0oycUNrWW9JT2FQZjhwNm5RdmNYT0VhSXN5L0I0T2lJb2lQR2ht?= =?utf-8?B?TWZnVU8vWG9vcmwyU3hzdXlialhYZ0VpR095MisrYVN0SFdlRHd1RzRwbUQz?= =?utf-8?B?cm5DNGhzOEFWWndISTNWdXpVV2V5OHJ5NGJzOGZ4OEFMdit6czF4eHhFMkkz?= =?utf-8?B?QWNTbmZSYkFMYyszQ1JNZVRRMEwyeUJzQUpjNGRFa3FXemgwS2pwc0E2Nnlz?= =?utf-8?B?SVJJZncvais2MHpza2JwZUpESnE0LzErSU5rQmNBOHN6UTBndmFmVXRBRGVn?= =?utf-8?B?UWJyM3I1NDVhcWwrbllVWWgrNDkwRUFNUVYwcEVOSVRzbTc2T2RiZ3lsUzBv?= =?utf-8?B?VENPdHNqOGMxeWY1M1RNdHc1QlRRUkNHcklzRk5HWFJTa3hQS0oxeHRVRy90?= =?utf-8?B?NG5NNXppV3VlNHNhR3JlU0FhaVZzazEvcW0xUzVoY2kyakNjeTh3MlZsajV0?= =?utf-8?Q?hOA6yWVgdIWg8eewT1qyLddKC?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ea0f8fcf-40d0-4ea9-9234-08ddf0396b59 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB8461.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 07:12:36.5302 (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: SorHm9fKZyjDh5TnIRgofOH/YdjEppN+He3X9AWiwgNIQz6FqZhhh3UtP/bm5A6VkSK9Le4nBmzo31b2pMbzzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9358 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. Reviewed-by: Daniel Baluta Signed-off-by: Peng Fan --- drivers/remoteproc/imx_rproc.c | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 5fa729f4286f6ac939357c32fef41d7d97e5f860..bb25221a4a8987ff427d68e2a55= 35f0e156b0097 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -323,14 +323,10 @@ 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; - } - - return -EOPNOTSUPP; + if (!dcfg->ops || !dcfg->ops->start) + return -EOPNOTSUPP; =20 -start_ret: + ret =3D dcfg->ops->start(rproc); if (ret) dev_err(dev, "Failed to enable remote core!\n"); =20 @@ -380,14 +376,10 @@ static int imx_rproc_stop(struct rproc *rproc) struct device *dev =3D priv->dev; int ret; =20 - if (dcfg->ops && dcfg->ops->stop) { - ret =3D dcfg->ops->stop(rproc); - goto stop_ret; - } - - return -EOPNOTSUPP; + if (!dcfg->ops || !dcfg->ops->stop) + return -EOPNOTSUPP; =20 -stop_ret: + ret =3D dcfg->ops->stop(rproc); if (ret) dev_err(dev, "Failed to stop remote core\n"); else @@ -997,18 +989,16 @@ static int imx_rproc_detect_mode(struct imx_rproc *pr= iv) { const struct imx_rproc_dcfg *dcfg =3D priv->dcfg; =20 - if (dcfg->ops && dcfg->ops->detect_mode) - return dcfg->ops->detect_mode(priv->rproc); - - switch (dcfg->method) { - case IMX_RPROC_NONE: + /* + * To i.MX{7,8} ULP, Linux is under control of RTOS, no need + * dcfg->ops or dcfg->ops->detect_mode, it is state RPROC_DETACHED. + */ + if (!dcfg->ops || !dcfg->ops->detect_mode) { priv->rproc->state =3D RPROC_DETACHED; return 0; - default: - break; } =20 - return 0; + return dcfg->ops->detect_mode(priv->rproc); } =20 static int imx_rproc_clk_enable(struct imx_rproc *priv) --=20 2.37.1