From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 29734FF8868 for ; Tue, 28 Apr 2026 09:05:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=fVJo7fsv1H2xuo2xYnp5lXg0gdzBC3Czk3O6YyTZYp4=; b=LdO3rHyRc4WhCDohYq43V9HkTy FzT92OzM1yLVscB8tTIXG+G05OTboZzMk0NGLbOBykD47xfjJMIN/dFIZghQcl21ESvQt76oqKaLR 07w2rE8jBxc9YWHVPgq7aWBIPT/4pux0vq5OhcoosMv6y0XIj5QKq6ahH4yJT/BsbY6vHS5xtCW+v 91bQ7Z+85ErxPfb3Bwb7goBVyimaDbpWLYal9FfePrSn+0zuBbfzJjsbN21DslR/KeHVgOgm6rJuM 7b92TT9HGVj6kb4KsIOS/uXUjQ68UOnMixmdtAn4eo8nVQsN4iF+LLZKTilv2v6r6Qs+ZEcuR6YZB HWqHsxhA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1wHeO1-0000000114B-3PGQ; Tue, 28 Apr 2026 09:05:45 +0000 Received: from inva020.nxp.com ([92.121.34.13]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1wHeNx-0000000110d-0stn for linux-arm-kernel@lists.infradead.org; Tue, 28 Apr 2026 09:05:43 +0000 Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id C8DAA1A34CE; Tue, 28 Apr 2026 11:05:39 +0200 (CEST) Received: from aprdc01srsp001v.ap-rdc01.nxp.com (aprdc01srsp001v.ap-rdc01.nxp.com [165.114.16.16]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 8F9E21A15F5; Tue, 28 Apr 2026 11:05:39 +0200 (CEST) Received: from localhost.localdomain (mega.ap.freescale.net [10.192.208.232]) by aprdc01srsp001v.ap-rdc01.nxp.com (Postfix) with ESMTP id EB0C3180028E; Tue, 28 Apr 2026 17:05:37 +0800 (+08) From: Jiafei Pan To: andersson@kernel.org, mathieu.poirier@linaro.org, peng.fan@nxp.com, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Zhiqiang.Hou@nxp.com, mingkai.hu@nxp.com Subject: [PATCH 3/5] drivers: remoteproc: imx: add autoboot support for A-core remoteproc Date: Tue, 28 Apr 2026 17:08:17 +0800 Message-Id: <20260428090819.17761-4-Jiafei.Pan@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20260428090819.17761-1-Jiafei.Pan@nxp.com> References: <20260428090819.17761-1-Jiafei.Pan@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260428_020541_383020_1A618EE4 X-CRM114-Status: GOOD ( 11.97 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Hou Zhiqiang Add autoboot support for Cortex-A Core remoteproc. Signed-off-by: Hou Zhiqiang --- drivers/remoteproc/imx_rproc.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 8a3de27c96b7..e8d239bef5c9 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -1286,7 +1286,24 @@ static int imx_rproc_sm_detect_mode(struct rproc *rproc) static int imx_rproc_psci_detect_mode(struct rproc *rproc) { - rproc->state = RPROC_OFFLINE; + struct imx_rproc *priv = rproc->priv; + unsigned int cpu; + int cpu_aff; + + rproc->state = RPROC_DETACHED; + for_each_cpu(cpu, &priv->cpus) { + cpu_aff = psci_ops.affinity_info(cpu_logical_map(cpu), 0); + if (cpu_aff == PSCI_0_2_AFFINITY_LEVEL_OFF) { + rproc->state = RPROC_OFFLINE; + break; + } + + /* in psci on state but running Linux */ + if (cpu_online(cpu)) { + rproc->state = RPROC_OFFLINE; + break; + } + } return 0; } @@ -1391,7 +1408,6 @@ static int imx_rproc_probe(struct platform_device *pdev) bitmap_copy(cpumask_bits(&priv->cpus), &cpus_bits, min((unsigned int)nr_cpumask_bits, (unsigned int)sizeof(unsigned long))); - rproc->auto_boot = false; } ret = imx_rproc_detect_mode(priv); -- 2.43.0