From nobody Fri Apr 10 01:03:34 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 67C0C3DEACF for ; Wed, 4 Mar 2026 18:03:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647418; cv=none; b=FUWqVr39JSRvy/tZrtL9Z+sGoUz04WALT2bgFcS8igr8QN6w0zQJabc9XizauEaMNWdCya6MNBna/y33tL2sDvYIQezmbv0AMWAX4QAG+S9kDYXc/DLWiro4OUS1wK4OL6FkAoMlg65GU3iOQLVQv4j2BLwDp2XGBjDwcpM5Hc4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647418; c=relaxed/simple; bh=nI413mpH4Vny/jDMl6dShEe8rWIdtCh49blRabGf3jA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=komBIZB9Pg9ExxgoKCNPzBb1ADIr4Z/mSCFc87KvbskXwiSds24I2twcLhZ/F/iaZsmKbeWedeDox1RiPN6yKFFYsqlFAKB4L2D1ldWaPEVfqhMMNSXA0UlZe6IKseJotXJQqTbNp6K6RBjsK0N8738ecmm1Fi/noIfux3cB0Ps= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=GTl/xsZh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=h/313gp3; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="GTl/xsZh"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="h/313gp3" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 624E0chc029451 for ; Wed, 4 Mar 2026 18:03:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= R3mGKt2hZAc1/fLOvPOaHv4o+LhU4pbbCYTJr7cvoC0=; b=GTl/xsZhfZm+uECM Cdv2UOoxCyv/FNB5aHi0HOMmTs/tdFSMn+u+2HlMSZcdsQsaoIGdoXX5CUfXM3nU RbuKM5FoBt/MY9FodKAiOT3Ah8/frxa4ewWsP1Ve14Ud9k3gXNQsP6GWTVnyDQcs r9RgSDhnO/yaIaP8RdeB03NzWHdqxgVyZIDzKt3iqly4GvRVRVHPf8htg6/lT9w4 q9L5smyFl9f/16FvcbSpURF7f6MZdvGmkXeZNv+ktHQipQHeonV3fQ4QWt3tUEqp ePM72MVA3rFC8+Ivu/UGmegFrg6voFc11bgULVPnMY/O86SEOUY5SQFRAT9sK9Vd 8Rw9kg== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cpp4fgv0a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 18:03:36 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-35449510446so6739913a91.0 for ; Wed, 04 Mar 2026 10:03:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772647416; x=1773252216; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=R3mGKt2hZAc1/fLOvPOaHv4o+LhU4pbbCYTJr7cvoC0=; b=h/313gp32WINqznyLbeaP1Qi0hOHQNX3HBWS45oPsG0S77qSQdWQhRXoXWQKwo19eM EhNsGGPFjBTNKqRbF80qStnAyXkslP2SLbitglbt3oV0uH4v1G7bPFLfaqNgz2jUjSVE SnUWBnI14CHFJAtV1K+HexiWDTcizXsQgCXell7+TR73hlx1TcKIzsLISQycVKHZWs35 AXpPnZM9tmAOGg0ZJG2eenGkEj3SDz4LD5SQC4Yv9vgWTJYM9hf1aLYY5HvMxxhHRpbv mYQ5w0IQr1TKYOfVr0w7lsSNTf/RzBM2eOsNbngyTZASjzlYJKb7ZSUxH06ZrK5v5fnw VOrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772647416; x=1773252216; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=R3mGKt2hZAc1/fLOvPOaHv4o+LhU4pbbCYTJr7cvoC0=; b=E91+uveD5lz2YFbL4JZryTjKdx+OYEvwt/DsE/ek4K+FRUw/FfxuZW9tvJDlo78nVJ 1PE+wwJT4FCvHp2tQtNER26t1YEM401Xt3HUy7/DU1gkJHjWG+hgiP7/jSOFjowkw79N s8e5F62jOOfd3fv1L/Iem7kIs2gqppkEL+4tcvX+amV6Z/UZEBD2T+r+cwo5PDGdmpxw IDPIM1Qo2Qktkwc4esHTF92Z3F8tcA1ZaLTRzRKNqepLHNRlCqb0+Xa+xOtjco3A5T4L yAW7vZdf8ReLUcqaytGIy8QlnEH8QzcaPFWFiNrwNbbMq0XfLppQVIiUEAAz0zVy1vly /gMA== X-Forwarded-Encrypted: i=1; AJvYcCXI/01C2FdFbpuikIiUyZCVcM4KrzY4qJQK44HaqAS/oind5HvMU4u/xB6kJUH0pBmMAMJKLc0Y75jsm4Y=@vger.kernel.org X-Gm-Message-State: AOJu0YxVWrfDOjEolfRGtGyuZ8uSDnESFxInBs6uqhjR/jPgX0aFXoZC UTnD4wo8qTXf3jcijjj6AtgwaHxZmEPcg4PxNOxqpfzssSPUaEUvryTosufgyEXi+z6BNX4Rf68 EsYqiWTF9Z+I7ZPfgkVgNhZqiqajM2IT+QC49MrDoXtjHeAwip+iUM8ZzpED2/g4beCs= X-Gm-Gg: ATEYQzwfeUccK/YqqOj01uLVtdeIjm1qcWSfrwdUBoD58+TlQG7j9HWBWoDQ/tdXuWo c9vqKcMTyplZvqSK3nwcdRPRQdbVJB8k/Vd4xzxOaXuHELYyrSTU5ijI3MS6M7RAFZ+sLcr3vgn Pf2BIZxNOwMSvst4UlS9Jdj0AzK/QdqIUS2kuX0NHmcpvbEKhkxqqPqyHGyXepbxIrLsTpIfujC bfNZluG4nNxcZp/IxWcj1vKFnzLx3psG8u8olH+9PgCoge1s3Q7VWgq+Tm+aacpwXWehHQev1v9 kLU+H986nFAVHKhDHRf8O37E4T4aWXZAtDvG0v4CjvloNO9w8gLTIZqRltrID/t+SEw1NIXsKHv 0nad+3Vh00HCSiG03PvrZeeSyGe71bOA64uUtNHK1Byi68mgIeROpLsOM3Q== X-Received: by 2002:a17:90b:1e0b:b0:359:2d1c:9206 with SMTP id 98e67ed59e1d1-359a6a97876mr2870327a91.33.1772647416118; Wed, 04 Mar 2026 10:03:36 -0800 (PST) X-Received: by 2002:a17:90b:1e0b:b0:359:2d1c:9206 with SMTP id 98e67ed59e1d1-359a6a97876mr2870305a91.33.1772647415618; Wed, 04 Mar 2026 10:03:35 -0800 (PST) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359a8f22062sm1080606a91.1.2026.03.04.10.03.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 10:03:35 -0800 (PST) From: Shivendra Pratap Date: Wed, 04 Mar 2026 23:33:01 +0530 Subject: [PATCH v20 01/10] power: reset: reboot-mode: Remove devres based allocations Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-arm-psci-system_reset2-vendor-reboots-v20-1-cf7d346b8372@oss.qualcomm.com> References: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> In-Reply-To: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> To: Lorenzo Pieralisi , Arnd Bergmann , Bjorn Andersson , Sebastian Reichel , Rob Herring , Souvik Chakravarty , Krzysztof Kozlowski , Andy Yan , Matthias Brugger , Mark Rutland , Conor Dooley , Konrad Dybcio , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla Cc: Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Kathiravan Thirumoorthy , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Shivendra Pratap , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772647398; l=3628; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=nI413mpH4Vny/jDMl6dShEe8rWIdtCh49blRabGf3jA=; b=tmuPFucdwo0CFgiVjaW74q0jpCSADUah6j2tcoEU889L00rSI3hCZWyRg9lYeuJLkbzcgUbMl lLhJoaewZdSC5aD3/VNXRx2t/86PDFYYBGaT//NQg9dHrzNMmUC8aZ3 X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-ORIG-GUID: jCK8jVLd34XrZAlbAwKvKz4KH8W0yCYI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE0NyBTYWx0ZWRfXw2OBUfSyx6Vu rPu3rnHlkMMptGoT6jUv2FVewERkWSfFQuaUBJ+A2zg09djVXGRBFmFD1A4WLpbwxDkD2aq6hgd jmchqhqiY8SIQcHIXc84WUtulpWx8f7gGDGavjcqxfKvCcywxJaDflSjNODrgW12urXqL8L3h29 KsXeWe8Q0v6rFCl+vZJLZbOvHA0CdNnQENqGC1hYZUjgHoDcfQx+v5A33V3SCWLpCnuhvuInaE5 Xi0Ip+vsQCYX235hETRSQlvEuEgqAfCbcpwH2e8o2iKMGNWlo9y36K5ChuBxkikyY8y/P+QUtvQ t1KWtoBf+E3d6U6uoRW2FfSgVDPePDVOJhvWJO6QQqiDZvmG5PeVsb/STm1XQyAqG3M0fBYOZMX 97aWctEjDZ1dzzMogVwdzmHFBsCb2TesHyZzzxyntg0Z8MP2p/iJkHAfnS3ei51aY5ueMOu2GUP ShpRu0wWbhsk4Y8AB3Q== X-Authority-Analysis: v=2.4 cv=CdMFJbrl c=1 sm=1 tr=0 ts=69a873f8 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=QIdouwm7mKRySFGJXRQA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-GUID: jCK8jVLd34XrZAlbAwKvKz4KH8W0yCYI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_07,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 adultscore=0 impostorscore=0 bulkscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040147 Devres APIs are intended for use in drivers, where the managed lifetime of resources is tied directly to the driver attach/detach cycle. In shared subsystem code, there is no guarantee that the subsystem functions will only be called after a driver has been attached, nor that they will not be referenced after the managed resources have been released during driver detach. To ensure correct lifetime handling, avoid using devres-based allocations in the reboot-mode and explicitly handle allocation and cleanup of resources. Fixes: 4fcd504edbf7 ("power: reset: add reboot mode driver") Signed-off-by: Shivendra Pratap Reviewed-by: Bartosz Golaszewski Reviewed-by: Sebastian Reichel Tested-by: Pankaj Patil --- drivers/power/reset/reboot-mode.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/drivers/power/reset/reboot-mode.c b/drivers/power/reset/reboot= -mode.c index fba53f638da04655e756b5f8b7d2d666d1379535..d033043f5250a4de152a7786ef3= 7e88a0ace3bbb 100644 --- a/drivers/power/reset/reboot-mode.c +++ b/drivers/power/reset/reboot-mode.c @@ -3,13 +3,17 @@ * Copyright (c) 2016, Fuzhou Rockchip Electronics Co., Ltd */ =20 +#define pr_fmt(fmt) "reboot-mode: " fmt + #include #include #include #include #include +#include #include #include +#include =20 #define PREFIX "mode-" =20 @@ -74,6 +78,7 @@ int reboot_mode_register(struct reboot_mode_driver *reboo= t) struct property *prop; struct device_node *np =3D reboot->dev->of_node; size_t len =3D strlen(PREFIX); + u32 magic; int ret; =20 INIT_LIST_HEAD(&reboot->head); @@ -82,19 +87,18 @@ int reboot_mode_register(struct reboot_mode_driver *reb= oot) if (strncmp(prop->name, PREFIX, len)) continue; =20 - info =3D devm_kzalloc(reboot->dev, sizeof(*info), GFP_KERNEL); + if (device_property_read_u32(reboot->dev, prop->name, &magic)) { + pr_debug("reboot mode %s without magic number\n", prop->name); + continue; + } + + info =3D kzalloc(sizeof(*info), GFP_KERNEL); if (!info) { ret =3D -ENOMEM; goto error; } =20 - if (of_property_read_u32(np, prop->name, &info->magic)) { - dev_err(reboot->dev, "reboot mode %s without magic number\n", - info->mode); - devm_kfree(reboot->dev, info); - continue; - } - + info->magic =3D magic; info->mode =3D kstrdup_const(prop->name + len, GFP_KERNEL); if (!info->mode) { ret =3D -ENOMEM; @@ -102,8 +106,7 @@ int reboot_mode_register(struct reboot_mode_driver *reb= oot) } else if (info->mode[0] =3D=3D '\0') { kfree_const(info->mode); ret =3D -EINVAL; - dev_err(reboot->dev, "invalid mode name(%s): too short!\n", - prop->name); + pr_err("invalid mode name(%s): too short!\n", prop->name); goto error; } =20 @@ -116,8 +119,8 @@ int reboot_mode_register(struct reboot_mode_driver *reb= oot) return 0; =20 error: - list_for_each_entry(info, &reboot->head, list) - kfree_const(info->mode); + kfree(info); + reboot_mode_unregister(reboot); =20 return ret; } @@ -130,11 +133,15 @@ EXPORT_SYMBOL_GPL(reboot_mode_register); int reboot_mode_unregister(struct reboot_mode_driver *reboot) { struct mode_info *info; + struct mode_info *next; =20 unregister_reboot_notifier(&reboot->reboot_notifier); =20 - list_for_each_entry(info, &reboot->head, list) + list_for_each_entry_safe(info, next, &reboot->head, list) { + list_del(&info->list); kfree_const(info->mode); + kfree(info); + } =20 return 0; } --=20 2.34.1 From nobody Fri Apr 10 01:03:34 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 021DA3DEAFE for ; Wed, 4 Mar 2026 18:03:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647431; cv=none; b=tSOhJOeXFTmxxXq1t5TEkJ4k5F9REHEdTsTpXn72MuzUY9UrE0jFHYdMIZz/11k98igLbBI7W4S/uonzdInhNS8xkmAj4OVOeqKS3EM8Yb2dDGZ9AqwBHQOlJFRg3PXNjCRKXy5EbjaQzdxv9ArWxQQR25NnzZkTYLiYQzgeII0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647431; c=relaxed/simple; bh=8KcQuYEpP24a6WBCDAg2F+ny1MptqZFFDATDZNiqhrY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qGhTt/ME1ni9TmN2rhYlXJpIEADD3kpleZqPeXfA1VA6uwepnd5AiobG2TBX5DQqSvoA+7+hIADtIAjpi1xdlldfW3vMtLVZf8SgxaMYUGbm4HH3IjvCmqjm2zesKhQJtN+LV2uUbfrVDT0kJyaVWLD0/r0DdpXpzq4kPMya0+8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=BLBRchu4; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=h8TlKbHK; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="BLBRchu4"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="h8TlKbHK" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 624CMwkH152512 for ; Wed, 4 Mar 2026 18:03:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 5leCT/obbHTfFTbu8A2pbgBO1nV7mxacWx4r8X8VVnA=; b=BLBRchu49Q7lOaah r2rUqDTXtYnhAoypPmnBKbLt9v0/T9mDZmB7OCm4b8m7HhnNJLpUbQtqiFjcL9lf FicUQSKttndKvp6osG61QMRJJ2Dx3jwiXoiH4cghUJAKQCXUilS0Rm3CYgYfTD+J 2iWghoxgzijDG2rXxaJHtfEPQb9dV7tzF67M93oQnAGzsxxLOJKgPaYrbw6aqxzv x5rV5NXJSCRT4tW7vKpe2HYGFCyUR5z5fE5PbpSqq6AHdVap2NOyWVraFYpmwlqR 4LuUIFBYRlewridfWbROb3cQO+F85OlwjIbrh9eoN8x/DSa2x0cAeam0+FQEMHrk 9EQr1g== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cp3tvmpqe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 18:03:45 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-35641c14663so7424919a91.2 for ; Wed, 04 Mar 2026 10:03:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772647425; x=1773252225; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5leCT/obbHTfFTbu8A2pbgBO1nV7mxacWx4r8X8VVnA=; b=h8TlKbHKt4CvxKV5ERtbBXfQ4EUErGLkPouieN42dl5qa26PIrfCtSLVfUDC0Y+o0u ex6Ag27Fa2kRddmB8Qcrl5u7Lo+rPzsEHSmmrFlRc4c3rm4G6aVkFHsTamstKGcNOfXw dyBMROye0Xa7n0s0aIv8DwQ+jxCFgGwPxZmixI6qXBR6mhHlNHJ/PCBMOsWsso4xqBu2 PzS1ywI6htfY9+zxUJnaL+rBh7GMEXXn4e8FI6dtiEoJjQTF8g6gesrZkM4BVhpvrR0U gR2h68tGJSUnmiqbY54azF6fSETGraqtnRRXoxKTbRGZPjCmU1QrpExs0PWAUlEBjVeA sOAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772647425; x=1773252225; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5leCT/obbHTfFTbu8A2pbgBO1nV7mxacWx4r8X8VVnA=; b=Q848Jd84MdZO8jjFtRhmONJjDq8kD33VQpX9+YiVlRJvhgIRXipPK+leNiodRKrbFt Ae6oGFnelGRTX4yb6Tw/GCKf2rJgmvKhXYiabGMQalvQkF5fnCqcj6GNpymda1ZumeH8 srKBxIrzPBcuohRgzcdga9weSwZSIOqEA0tcDkeSawUsGvAQ496uIOxDmAR4YEUsHcZr bgkac3Drzv5iZ1zqBMmVgl64zpz86Ol6AZOZj27LWenfDnoB4F28jUDmr5iH6cbIXFHq Q+FevvB7N974yJbqnZ7BrNGL6ZNcDV/c+uL+NdGY/49B8JMYHy6GHT9+KBo6bTiP/1V7 3qDg== X-Forwarded-Encrypted: i=1; AJvYcCVtLQIuzN2JVYiVXm+6mB/HCA3P07opr83tCxVWZ/HsYXZ0XMJGQYNxmRYo9vZu09/LoaY6bQHpPOUb5w0=@vger.kernel.org X-Gm-Message-State: AOJu0YwFo4wpGFuWD9rXpRFfvYOYsn5giRhiSqg7GPnfSFlFNMwpZBj4 oEVSLv/N/h6Ll19/juqqaw5iXTDOYK36GdFzNta5ynUdr0NuyTZEtzFIXHm+iKHP3Ix4Rp5etMe 06JPPQB2Oh8uEcd06xiqXKMeOWaLHc0zKj5dqTpVuTuaiAMLyH67zpCHxbYge4RN6v7E= X-Gm-Gg: ATEYQzyEWY93/NKOGOCWmci97/FK23PU0UbZ/X05t/b33XTKJiF60NwKAJUQm1bMID+ BF7kgUXe1KS/83A9QLrag9nY8bhHXwFe1vMP54OOGASmyg4ss2Nn+3OPletjp1G4cizc+dOzkXw oZtEhjPUSgjisRNrNRTlNlaWsVSYQaDTJ1b6mAXQL+8rY7oSs9gRKTqtBsNGpRKIInOZ1O5Pjhn VzIbHbolAM4jxw5EKFX3Aj6IeqNkBTOtMHaI+T4ak7YO2CCXBhpKCNIKy/ggeB4o+7s7pEH9zjd LNVsUGaIr0H1EHFiaoXMg2GOZCcHl2HavcbuMDMS7N4QVbWbXuG+MdOUtiMXMc7NBnqCCOi0sVx oIs5zbIaWG0fCMkbixHK6XXP5gxkExpXfRVNtJJT8S0JOfagU2nEVJXz4+w== X-Received: by 2002:a17:90b:3fc8:b0:359:dd9:3de5 with SMTP id 98e67ed59e1d1-359a69ae7e7mr2522695a91.4.1772647424477; Wed, 04 Mar 2026 10:03:44 -0800 (PST) X-Received: by 2002:a17:90b:3fc8:b0:359:dd9:3de5 with SMTP id 98e67ed59e1d1-359a69ae7e7mr2522654a91.4.1772647423957; Wed, 04 Mar 2026 10:03:43 -0800 (PST) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359a8f22062sm1080606a91.1.2026.03.04.10.03.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 10:03:43 -0800 (PST) From: Shivendra Pratap Date: Wed, 04 Mar 2026 23:33:02 +0530 Subject: [PATCH v20 02/10] power: reset: reboot-mode: Add support for 64 bit magic Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-arm-psci-system_reset2-vendor-reboots-v20-2-cf7d346b8372@oss.qualcomm.com> References: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> In-Reply-To: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> To: Lorenzo Pieralisi , Arnd Bergmann , Bjorn Andersson , Sebastian Reichel , Rob Herring , Souvik Chakravarty , Krzysztof Kozlowski , Andy Yan , Matthias Brugger , Mark Rutland , Conor Dooley , Konrad Dybcio , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla Cc: Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Kathiravan Thirumoorthy , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Shivendra Pratap , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772647398; l=7396; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=8KcQuYEpP24a6WBCDAg2F+ny1MptqZFFDATDZNiqhrY=; b=Quxdo+gN7haqmu+eDMts1IZ0ljKit/vaTkr3wMfpYRhp8casQAkwwj1uz2maGX4edprwxn4sU 2UFOUZ+rj+vAzN33bwNlxHfyCrttyCETbo6UYJ3f3OZB75WXP7ppGpb X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE0NyBTYWx0ZWRfX3DyFQ+iDcDaR BRQp1kJNIl530e6Ubl3MasapdZpmg80qFhZvRisvnLs/HykgXU6eh4CH34MBUUZPpt9yBYZIycP aev1ng0q8OSWHMRL8wzF8qBIi1fMyV3KGG2eMTBAR5m2zrPNA4sMzd30UJfFUI8zgnTeCr8BB3R eWnP6DwDglq+GBF7418Lj3nFXbj9bXwox/d2zE3zZ9Xrcztd5kssYJAIPFKFkPrE8PrLbl9Oi2k hTNQky5o7waoGevNeZBDVqTIC2kMvn4Kuu2Qi/4A0UYdKwB4tF6KkLKYg+yTE5+Dld38IUTLdU2 mRPZJh+FQyaX0l1aMPbY/rfYjwnJ9Tqwo6HX1r/FLVl0AFdEx5wfMwWWey+VBXLbgUDUtItFejR /pr9K+uJeo6gNTcOyQVlaZC0/+EXZ7VxYqZHvb+ZmvWr34ff/6S0MMLfDGG22koXB3HPpGc94Th aEVE/5X8l///CYYSB8g== X-Authority-Analysis: v=2.4 cv=VYv6/Vp9 c=1 sm=1 tr=0 ts=69a87401 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=MO_J9Aa4ypbE8kPWTcIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-GUID: Q89jSAc9EvB1GwoIHf1E6CmoBJue4Z9f X-Proofpoint-ORIG-GUID: Q89jSAc9EvB1GwoIHf1E6CmoBJue4Z9f X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_07,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040147 Current reboot-mode supports a single 32-bit argument for any supported mode. Some reboot-mode based drivers may require passing two independent 32-bit arguments during a reboot sequence, for uses-cases, where a mode requires an additional argument. Such drivers may not be able to use the reboot-mode driver. For example, ARM PSCI vendor-specific resets, need two arguments for its operation =E2=80=93 reset_type and cookie, to complete the reset operation. If a driver wants to implement this firmware-based reset, it cannot use reboot-mode framework. Introduce 64-bit magic values in reboot-mode driver to accommodate up-to two 32-bit arguments in below format. | Higher 32 bit | Lower 32 bit | | arg2 | arg1 | Update current reboot-mode drivers for 64-bit magic. Signed-off-by: Shivendra Pratap Reviewed-by: Sebastian Reichel Tested-by: Pankaj Patil --- drivers/power/reset/nvmem-reboot-mode.c | 8 ++++---- drivers/power/reset/qcom-pon.c | 6 +++--- drivers/power/reset/reboot-mode.c | 16 +++++++++------- drivers/power/reset/syscon-reboot-mode.c | 6 +++--- include/linux/reboot-mode.h | 15 ++++++++++++++- 5 files changed, 33 insertions(+), 18 deletions(-) diff --git a/drivers/power/reset/nvmem-reboot-mode.c b/drivers/power/reset/= nvmem-reboot-mode.c index d260715fccf67f9f072bb56c5defbf885750650e..bd05d660490c686b43134f82f1e= add7665403d20 100644 --- a/drivers/power/reset/nvmem-reboot-mode.c +++ b/drivers/power/reset/nvmem-reboot-mode.c @@ -17,10 +17,10 @@ struct nvmem_reboot_mode { struct nvmem_cell *cell; }; =20 -static int nvmem_reboot_mode_write(struct reboot_mode_driver *reboot, - unsigned int magic) +static int nvmem_reboot_mode_write(struct reboot_mode_driver *reboot, u64 = magic) { struct nvmem_reboot_mode *nvmem_rbm; + u32 magic_arg1 =3D REBOOT_MODE_ARG1(magic); size_t buf_len; void *buf; int ret; @@ -32,10 +32,10 @@ static int nvmem_reboot_mode_write(struct reboot_mode_d= river *reboot, return PTR_ERR(buf); kfree(buf); =20 - if (buf_len > sizeof(magic)) + if (buf_len > sizeof(magic_arg1)) return -EINVAL; =20 - ret =3D nvmem_cell_write(nvmem_rbm->cell, &magic, buf_len); + ret =3D nvmem_cell_write(nvmem_rbm->cell, &magic_arg1, buf_len); if (ret < 0) dev_err(reboot->dev, "update reboot mode bits failed\n"); =20 diff --git a/drivers/power/reset/qcom-pon.c b/drivers/power/reset/qcom-pon.c index 7e108982a582e8243c5c806bd4a793646b87189f..57b36e6186f80aff947fd7f5aae= 5ce280c65dc6b 100644 --- a/drivers/power/reset/qcom-pon.c +++ b/drivers/power/reset/qcom-pon.c @@ -27,17 +27,17 @@ struct qcom_pon { long reason_shift; }; =20 -static int qcom_pon_reboot_mode_write(struct reboot_mode_driver *reboot, - unsigned int magic) +static int qcom_pon_reboot_mode_write(struct reboot_mode_driver *reboot, u= 64 magic) { struct qcom_pon *pon =3D container_of (reboot, struct qcom_pon, reboot_mode); + u32 magic_arg1 =3D REBOOT_MODE_ARG1(magic); int ret; =20 ret =3D regmap_update_bits(pon->regmap, pon->baseaddr + PON_SOFT_RB_SPARE, GENMASK(7, pon->reason_shift), - magic << pon->reason_shift); + magic_arg1 << pon->reason_shift); if (ret < 0) dev_err(pon->dev, "update reboot mode bits failed\n"); =20 diff --git a/drivers/power/reset/reboot-mode.c b/drivers/power/reset/reboot= -mode.c index d033043f5250a4de152a7786ef37e88a0ace3bbb..f5ab6eab210bcd9670441a4d2a3= 01d9efdf2f322 100644 --- a/drivers/power/reset/reboot-mode.c +++ b/drivers/power/reset/reboot-mode.c @@ -19,12 +19,11 @@ =20 struct mode_info { const char *mode; - u32 magic; + u64 magic; struct list_head list; }; =20 -static unsigned int get_reboot_mode_magic(struct reboot_mode_driver *reboo= t, - const char *cmd) +static u64 get_reboot_mode_magic(struct reboot_mode_driver *reboot, const = char *cmd) { const char *normal =3D "normal"; struct mode_info *info; @@ -56,7 +55,7 @@ static int reboot_mode_notify(struct notifier_block *this, unsigned long mode, void *cmd) { struct reboot_mode_driver *reboot; - unsigned int magic; + u64 magic; =20 reboot =3D container_of(this, struct reboot_mode_driver, reboot_notifier); magic =3D get_reboot_mode_magic(reboot, cmd); @@ -78,7 +77,7 @@ int reboot_mode_register(struct reboot_mode_driver *reboo= t) struct property *prop; struct device_node *np =3D reboot->dev->of_node; size_t len =3D strlen(PREFIX); - u32 magic; + u32 magic[2] =3D {0}; int ret; =20 INIT_LIST_HEAD(&reboot->head); @@ -87,7 +86,10 @@ int reboot_mode_register(struct reboot_mode_driver *rebo= ot) if (strncmp(prop->name, PREFIX, len)) continue; =20 - if (device_property_read_u32(reboot->dev, prop->name, &magic)) { + size_t count =3D device_property_count_u32(reboot->dev, prop->name); + + if (!count || count > ARRAY_SIZE(magic) || + device_property_read_u32_array(reboot->dev, prop->name, magic, count= )) { pr_debug("reboot mode %s without magic number\n", prop->name); continue; } @@ -98,7 +100,7 @@ int reboot_mode_register(struct reboot_mode_driver *rebo= ot) goto error; } =20 - info->magic =3D magic; + info->magic =3D REBOOT_MODE_MAGIC(magic[0], magic[1]); info->mode =3D kstrdup_const(prop->name + len, GFP_KERNEL); if (!info->mode) { ret =3D -ENOMEM; diff --git a/drivers/power/reset/syscon-reboot-mode.c b/drivers/power/reset= /syscon-reboot-mode.c index e0772c9f70f7a19cd8ec8a0b7fdbbaa7ba44afd0..9f4b18c5e46f6a8bf197773cece= b80b250f57541 100644 --- a/drivers/power/reset/syscon-reboot-mode.c +++ b/drivers/power/reset/syscon-reboot-mode.c @@ -20,16 +20,16 @@ struct syscon_reboot_mode { u32 mask; }; =20 -static int syscon_reboot_mode_write(struct reboot_mode_driver *reboot, - unsigned int magic) +static int syscon_reboot_mode_write(struct reboot_mode_driver *reboot, u64= magic) { struct syscon_reboot_mode *syscon_rbm; + u32 magic_arg1 =3D REBOOT_MODE_ARG1(magic); int ret; =20 syscon_rbm =3D container_of(reboot, struct syscon_reboot_mode, reboot); =20 ret =3D regmap_update_bits(syscon_rbm->map, syscon_rbm->offset, - syscon_rbm->mask, magic); + syscon_rbm->mask, magic_arg1); if (ret < 0) dev_err(reboot->dev, "update reboot mode bits failed\n"); =20 diff --git a/include/linux/reboot-mode.h b/include/linux/reboot-mode.h index 4a2abb38d1d612ec0fdf05eb18c98b210f631b7f..2ce189fdfff4b396d7cc6f175b3= 0016781ae4fe9 100644 --- a/include/linux/reboot-mode.h +++ b/include/linux/reboot-mode.h @@ -2,10 +2,23 @@ #ifndef __REBOOT_MODE_H__ #define __REBOOT_MODE_H__ =20 +#include +#include +#include + +/* Construct 64-bit reboot magic: arg2 in upper 32 bits, arg1 in lower 32 = */ +#define REBOOT_MODE_MAGIC(arg1, arg2) \ + (FIELD_PREP(GENMASK_ULL(31, 0), (arg1)) | \ + FIELD_PREP(GENMASK_ULL(63, 32), (arg2))) +/* Get 32 bit arg1 from 64 bit magic */ +#define REBOOT_MODE_ARG1(magic) FIELD_GET(GENMASK_ULL(31, 0), magic) +/* Get 32 bit arg2 from 64 bit magic */ +#define REBOOT_MODE_ARG2(magic) FIELD_GET(GENMASK_ULL(63, 32), magic) + struct reboot_mode_driver { struct device *dev; struct list_head head; - int (*write)(struct reboot_mode_driver *reboot, unsigned int magic); + int (*write)(struct reboot_mode_driver *reboot, u64 magic); struct notifier_block reboot_notifier; }; =20 --=20 2.34.1 From nobody Fri Apr 10 01:03:34 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 92D243DFC81 for ; Wed, 4 Mar 2026 18:03:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647437; cv=none; b=ZDOjw3qzCHq02KR9ApsKv1R4W3k8dA5SUO7q1z/tgUxbgQ0+5OxuC2Jm9pY/eWOvPrWutIWQ5DWds0iD/gEVuy3GV5pb/aTpmku+DtbwU4N+dagnzpHEdmOS+d9zj+4kEbIv6kftTUZQSZrNKLx3fPg0efokJoyTeWIaTxYiIYE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647437; c=relaxed/simple; bh=ppOwiZTyFwlfDH5FcjIV48AYYNX/eY4c7Ah69UnX22I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=txUeM8okfuSNgBvKdJ52vMGqD2cGtqqY4IE4jo9SDqez0FfJNyVP5EscfscrKKirGS6a+2d4LSsFdRgS4Te5LnPplFzsowoKClBWd52n580doAhMa1Vx0KQT/6ZIR4L52gMp8h7RdYF+9Rc++Ux17lnLGMbDdURqt8Vf4P4zEJc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=XflvQ8Op; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SspFAjBo; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="XflvQ8Op"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SspFAjBo" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 624E0xks030127 for ; Wed, 4 Mar 2026 18:03:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= OnqEHP+yGGninOeiIPQlRgRIHub8vI+/1VIN6MsbMTM=; b=XflvQ8OpLxjrfHDE e3DZYCDnHBv1EdOWxwvBzR79D3PvjiyLm0eEfvPpV7B/t0Eli7QXzIw4s5cA9RBF IQz2lZKJRbMqkORMJz3f1xftDJ2E4Ki2MJrYUcbbDydMe4ipKkwKpai4orqXOlpe 4PVLUdwjtBNfDcgJxFUxJ6gpGdKsccp2RH9ajiMyk3rNzyCfkPFiEUGiM287xJWi HbcBYx5CKfxcwdSrHk90Ov6a1m29Blfm+DZr78dULH5AbYnbgKFSjQQI9bmP6KqS zsYbuCoQQdp8//lWMT7HyFlTlTuTpY257TAxjE/7wMInhBcOPZWxjAIqyRnaeQX5 +AuLKQ== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cpp4fgv1t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 18:03:53 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3594620fe97so34363243a91.1 for ; Wed, 04 Mar 2026 10:03:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772647433; x=1773252233; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=OnqEHP+yGGninOeiIPQlRgRIHub8vI+/1VIN6MsbMTM=; b=SspFAjBoZW35UmqCzz7ecKcUmFRfuoUopBfDCrp8ZFm9AKhmZPZGZjqLUscfrCUA+M F75tHzPFe207cydfMuzVucgd6NEKQ6jSZRcPgDv+pNM/3FyBzbXwiC3CygcDg/7mXQvx sjHqU8VXe7g859d/wYShjequK/fQ2IGtp2Ofz66gB3lVuemviwdWIK1wJUbHv+jUoYu5 pqccFpja/8WnlfR3oGobJPdk/NIv+YEUsUIv1kWB2PXuAFKUb+e108qm+sqhl4rxVDaC rApHfDclu+km+X++DQAy0oz8mQFQ0+Tv9bNzPxy8V2c1J8C6HdUQoQa64lVXdI5yP2rI 3NcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772647433; x=1773252233; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=OnqEHP+yGGninOeiIPQlRgRIHub8vI+/1VIN6MsbMTM=; b=bvbIICMPOUE+PuiIWqoV9tZIENQJKtO2CIwC3uRs2Ny/r2zyeH0EFRZ2r31xmwIRyB VEsOeSkUmlaydDIhTTcyeR6+nUbKbXPuxBbTMz3aXtVi39Tcol/yY1y2tSmwv9axRryc w6UQNUh3rlooVmg4CP3L2TJpamkYUnxxy/3TlpHcE2jKIBGTKbLzrV62vDhQ43VWqlAp jp+48Lh5uzsNStN3BQouCBDWQH2DxYxWA9naXlA2a9gdJub4hOzF0bfGPj2hJEhEvT5X jOEWWKId7lsqkrsDUiFJbaqQxeKlWdgWpexygZrApGDsSbyqHApujWP0E/4YbmLXN3xp QSGQ== X-Forwarded-Encrypted: i=1; AJvYcCU0JhLegRgWI5ebRNVZhTpeBzltL3TBZycUghG2MwtMo49UbMyq39470yNBwwFufklYhdqVw1fhTRQvnW8=@vger.kernel.org X-Gm-Message-State: AOJu0YzdDuByMf2jpGpZy1qFbsW+Y8OEnFzFhAOKaamdWu4nYzl4ClpV Mm2Ij2nrFgx56KvV5eWCmYNsjRDQU+4rCc9IBoqx49A1x6a/4CHwKZzh1DacHYIuSNxJ+TiPmsZ yWjamT+8quIVAN2GsAXsA5MJpoetguujICwdlZYy9Jd5Uw6xDng/qdaWweXgCfHx9dOpfG/9BgU E= X-Gm-Gg: ATEYQzznIcRloILcWLUeEQ/3dDV+JexEREOdpMw/GMrncFriwYKLbDtuALdKkP9RET8 pVapghvZuBr1Gt99ue937W+lJcsId9bPyHsA3P/q8K7YdAA1rAUKeoPVAzoiJeI9z9alnlKevj1 K3hWGadNAmhDMJR117J4DRyAPs2OdVZSJVKfQIEwIIB5C9lN8wKFV2t+pvhU1it6EtRwDgyuDT9 BuXgF7gPdupBOoltitp1a99ALMaJrBt+HtwN/v3+vJAMpAEfF7zIfsICpRd9fAucgcMKrhXY9pK jdsCabmygWxwSWxtV6iTwQsMb1SSGMeRleJBqhXh15AdcIASElVUDPbRN4xZOCVWcIYF4wCB+lw AYYCyT+1/gkGvplk2b8D7z08GguCAfIGiPJphK3kXsQiF7CYrw4preikKfQ== X-Received: by 2002:a17:90b:3fcc:b0:359:8d95:4a4f with SMTP id 98e67ed59e1d1-359a6a92272mr2248864a91.32.1772647432959; Wed, 04 Mar 2026 10:03:52 -0800 (PST) X-Received: by 2002:a17:90b:3fcc:b0:359:8d95:4a4f with SMTP id 98e67ed59e1d1-359a6a92272mr2248813a91.32.1772647432343; Wed, 04 Mar 2026 10:03:52 -0800 (PST) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359a8f22062sm1080606a91.1.2026.03.04.10.03.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 10:03:51 -0800 (PST) From: Shivendra Pratap Date: Wed, 04 Mar 2026 23:33:03 +0530 Subject: [PATCH v20 03/10] power: reset: reboot-mode: Add support for predefined reboot modes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-arm-psci-system_reset2-vendor-reboots-v20-3-cf7d346b8372@oss.qualcomm.com> References: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> In-Reply-To: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> To: Lorenzo Pieralisi , Arnd Bergmann , Bjorn Andersson , Sebastian Reichel , Rob Herring , Souvik Chakravarty , Krzysztof Kozlowski , Andy Yan , Matthias Brugger , Mark Rutland , Conor Dooley , Konrad Dybcio , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla Cc: Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Kathiravan Thirumoorthy , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Shivendra Pratap , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772647398; l=5777; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=ppOwiZTyFwlfDH5FcjIV48AYYNX/eY4c7Ah69UnX22I=; b=UK+o0a464RE0NcYd20AKEXW3fuiIRJKZKzPHnn3vsW/wNnqvFROEKIGq4O1lR9YFR5Ypvgsv8 bbnR0T/8gqSBANw+nV1dGkeCQ5BlLIiILnarbjQNO+rbyIscetXhEiG X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-ORIG-GUID: SvEHXBXDkfAubRW7TAU1-DCdRcOgosZs X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE0NyBTYWx0ZWRfXzjpxunyAZ2W8 jRS1hq58avelhEM9XZDoJn2o/xISzJpTo8jIQP9ronAJpqOOFBqmCQjlyGVuisFkbPZ5cnVZn4B 6lwoOe4JAeeh/kQo9uC3RO2tbWyKp9XUoYciE6miBquZZ2slNtcpqthPtQZx/VSweZoqMNeNsp3 jmAe4etPVdoH/cMPhFCXWUvP/m+JJupaVVbWGKWwn4sa/MZrisfFo9UKStWfZE3DDdPw4hRxenq 0fgZ9t010x4hQu2Dl2vSpsYzbFsYXfRb0/ZvGaDmJ03uxongbIUQJAHWMFvgDwYd0S146BMLSbN yD4OfOXaIv0+zoMNTNgPyxaCb05blo099AS1eoKnAf/KuyOvijBvW8FO2GXEUb2gpQK+dbtKnDs 0N226v2omUV7QPMgEkANh489VDlreS6+xEoCqj1kaPg2gP0NwHwiQPu0Cyxo7fFPGFpSbYsnBdG mNZ7z+2Z2a3s+a5ZdbA== X-Authority-Analysis: v=2.4 cv=CdMFJbrl c=1 sm=1 tr=0 ts=69a87409 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=iyrUps-_NMxi75ASTaIA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-GUID: SvEHXBXDkfAubRW7TAU1-DCdRcOgosZs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_07,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 adultscore=0 impostorscore=0 bulkscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040147 reboot-mode based drivers can define a reboot-mode by adding it under the reboot-mode node in device tree. This limits such drivers, to define any predefined reboot-modes statically within the driver and creates a dependency on device-tree. Introduce a list for predefined modes in the reboot-mode framework and process the predefined reboot-modes along with the device-tree defined reboot-modes. Modify existing reboot-mode based drivers to initialize the predefined list-head as empty. This patch enables a reboot mode driver to define reboot-modes through a predefined static list, in addition to the device-tree based reboot-modes. Signed-off-by: Shivendra Pratap Reviewed-by: Sebastian Reichel Tested-by: Pankaj Patil --- drivers/power/reset/nvmem-reboot-mode.c | 1 + drivers/power/reset/qcom-pon.c | 1 + drivers/power/reset/reboot-mode.c | 28 ++++++++++++++++++++++------ drivers/power/reset/syscon-reboot-mode.c | 1 + include/linux/reboot-mode.h | 9 +++++++++ 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/drivers/power/reset/nvmem-reboot-mode.c b/drivers/power/reset/= nvmem-reboot-mode.c index bd05d660490c686b43134f82f1eadd7665403d20..83a8d80fd7d1ccb1b736aee5f2d= 675246a63b8f8 100644 --- a/drivers/power/reset/nvmem-reboot-mode.c +++ b/drivers/power/reset/nvmem-reboot-mode.c @@ -53,6 +53,7 @@ static int nvmem_reboot_mode_probe(struct platform_device= *pdev) =20 nvmem_rbm->reboot.dev =3D &pdev->dev; nvmem_rbm->reboot.write =3D nvmem_reboot_mode_write; + INIT_LIST_HEAD(&nvmem_rbm->reboot.predefined_modes); =20 nvmem_rbm->cell =3D devm_nvmem_cell_get(&pdev->dev, "reboot-mode"); if (IS_ERR(nvmem_rbm->cell)) { diff --git a/drivers/power/reset/qcom-pon.c b/drivers/power/reset/qcom-pon.c index 57b36e6186f80aff947fd7f5aae5ce280c65dc6b..9d0e3fc621a6173438c6da4cce3= 8394199451881 100644 --- a/drivers/power/reset/qcom-pon.c +++ b/drivers/power/reset/qcom-pon.c @@ -73,6 +73,7 @@ static int qcom_pon_probe(struct platform_device *pdev) pon->reboot_mode.dev =3D &pdev->dev; pon->reason_shift =3D reason_shift; pon->reboot_mode.write =3D qcom_pon_reboot_mode_write; + INIT_LIST_HEAD(&pon->reboot_mode.predefined_modes); error =3D devm_reboot_mode_register(&pdev->dev, &pon->reboot_mode); if (error) { dev_err(&pdev->dev, "can't register reboot mode\n"); diff --git a/drivers/power/reset/reboot-mode.c b/drivers/power/reset/reboot= -mode.c index f5ab6eab210bcd9670441a4d2a301d9efdf2f322..a0cd463cad42cc08c55a9d1cc11= 174b513995104 100644 --- a/drivers/power/reset/reboot-mode.c +++ b/drivers/power/reset/reboot-mode.c @@ -17,12 +17,6 @@ =20 #define PREFIX "mode-" =20 -struct mode_info { - const char *mode; - u64 magic; - struct list_head list; -}; - static u64 get_reboot_mode_magic(struct reboot_mode_driver *reboot, const = char *cmd) { const char *normal =3D "normal"; @@ -73,6 +67,7 @@ static int reboot_mode_notify(struct notifier_block *this, */ int reboot_mode_register(struct reboot_mode_driver *reboot) { + struct mode_info *info_predef; struct mode_info *info; struct property *prop; struct device_node *np =3D reboot->dev->of_node; @@ -82,6 +77,9 @@ int reboot_mode_register(struct reboot_mode_driver *reboo= t) =20 INIT_LIST_HEAD(&reboot->head); =20 + if (!np) + goto predefined_modes; + for_each_property_of_node(np, prop) { if (strncmp(prop->name, PREFIX, len)) continue; @@ -115,6 +113,24 @@ int reboot_mode_register(struct reboot_mode_driver *re= boot) list_add_tail(&info->list, &reboot->head); } =20 +predefined_modes: + list_for_each_entry(info_predef, &reboot->predefined_modes, list) { + info =3D kzalloc_obj(*info, GFP_KERNEL); + if (!info) { + ret =3D -ENOMEM; + goto error; + } + + info->mode =3D kstrdup_const(info_predef->mode, GFP_KERNEL); + if (!info->mode) { + ret =3D -ENOMEM; + goto error; + } + + info->magic =3D info_predef->magic; + list_add_tail(&info->list, &reboot->head); + } + reboot->reboot_notifier.notifier_call =3D reboot_mode_notify; register_reboot_notifier(&reboot->reboot_notifier); =20 diff --git a/drivers/power/reset/syscon-reboot-mode.c b/drivers/power/reset= /syscon-reboot-mode.c index 9f4b18c5e46f6a8bf197773ceceb80b250f57541..0218b71541a0cefe1534e306f95= 6ae51ea9ee870 100644 --- a/drivers/power/reset/syscon-reboot-mode.c +++ b/drivers/power/reset/syscon-reboot-mode.c @@ -48,6 +48,7 @@ static int syscon_reboot_mode_probe(struct platform_devic= e *pdev) syscon_rbm->reboot.dev =3D &pdev->dev; syscon_rbm->reboot.write =3D syscon_reboot_mode_write; syscon_rbm->mask =3D 0xffffffff; + INIT_LIST_HEAD(&syscon_rbm->reboot.predefined_modes); =20 syscon_rbm->map =3D syscon_node_to_regmap(pdev->dev.parent->of_node); if (IS_ERR(syscon_rbm->map)) diff --git a/include/linux/reboot-mode.h b/include/linux/reboot-mode.h index 2ce189fdfff4b396d7cc6f175b30016781ae4fe9..f07696f9439063a04fc180e9531= 14ea09475805c 100644 --- a/include/linux/reboot-mode.h +++ b/include/linux/reboot-mode.h @@ -4,6 +4,7 @@ =20 #include #include +#include #include =20 /* Construct 64-bit reboot magic: arg2 in upper 32 bits, arg1 in lower 32 = */ @@ -15,9 +16,17 @@ /* Get 32 bit arg2 from 64 bit magic */ #define REBOOT_MODE_ARG2(magic) FIELD_GET(GENMASK_ULL(63, 32), magic) =20 +struct mode_info { + const char *mode; + u64 magic; + struct list_head list; +}; + struct reboot_mode_driver { struct device *dev; struct list_head head; + /* List of predefined reboot-modes, a reboot-mode-driver may populate. */ + struct list_head predefined_modes; int (*write)(struct reboot_mode_driver *reboot, u64 magic); struct notifier_block reboot_notifier; }; --=20 2.34.1 From nobody Fri Apr 10 01:03:34 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 8FB933DFC81 for ; Wed, 4 Mar 2026 18:04:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647443; cv=none; b=AOwAWp6tVXrILbTeZVGpAVCxPGCDS6rwTqKQR1YPdFQ5lP+8SyauO+yX9pTNwRGxUbi6WBy7dz8zdish9KAWonZEFa/qZtyGR/dn1tNd1o3Fl59ko9tVmA0KSEyLLklXLDxhJs43X5d/mcmukNgWHxeBAneOnUWpPz4dhodJvT8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647443; c=relaxed/simple; bh=AmJ/4s4g3aYrMbA4gYXXe4kt530xNpdozBMOFvrv/ik=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tKEjooRpxw4R6lnD0U23XS/bFqwqQw7pN3otRNGXyn1WLrB7Qk+ODg9HafxaQ80FPNOOqnBU09SRTQ0Pm89uV2rCcQDyw71rpor9Ewocb9S1nmUKFn5NgyG/UczoLaw7H7PqQ96bRjfCR+p65QOP5AfJ5TjZLWnK0szimkk/nNs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ocSBfwS7; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=e80AEgbj; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ocSBfwS7"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="e80AEgbj" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 624HH6pL3837881 for ; Wed, 4 Mar 2026 18:04:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 6K2GYPaT0CXFc6s+49BofuLoHb7MJAM3YjniV/PTVb8=; b=ocSBfwS7W/Cqi/ue ZKO60KY+TP+VXwxHOycgTe49YR91RvnTVgtJIm5D2HRSguOBT3tG665Jbaicvk9y ROgzKVtPamxVB6dT66ls626XYV/icTNUpXk+Au+E8BmQshznRl5b+3ljI2NxU+DC BwepL6Y5b+daHg7u+CyeempgDqkX2lEfulkHaVMwgETG0MZot7HtIFaikaqTbxjV 0/LtASQp3Dm6R3PvHjtOzvPSU2NoD1ReT2K1UgHbYYqQazU8IUoP4Ty+b6LfqyEY xt2Jpw0jDQSjztCZibEHmOLrTjt6hvYAu4UYgK/BTdy/ecj8UEtiYFh0TDtPQlTs kJMFVQ== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cps0m04qs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 18:04:01 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-354c0234c1fso5953135a91.2 for ; Wed, 04 Mar 2026 10:04:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772647441; x=1773252241; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=6K2GYPaT0CXFc6s+49BofuLoHb7MJAM3YjniV/PTVb8=; b=e80AEgbjvL9UHPUi8L9oM0mxI7MUQIenA2c/uC14U3DvbmIbV3FVAv731WdhzmURcK zwetes0tspmaq4CPlSSZUua2gja8yVYJbgct8DR/O2bRUG9UvUqIcK84GEXJWcqNgP50 gRdHpCFnW/qpbaukHtw051m7wMwnAASaWgsIhcD0oUfEZo/afWcR0/p/cG+FY/UKIw++ dLQxUiE/dKDUksQWiwkObM0YCHFnSLVlDvhZvum0hWYcfmbK+Mz6mo3QBNYif0Jt/S7w ULoCx2TDHmP6I8vcsOrPHYPxNCInIOYNltuOxs7FIapYEmFncGJdXBa76NvZD7uDy5tX sTSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772647441; x=1773252241; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=6K2GYPaT0CXFc6s+49BofuLoHb7MJAM3YjniV/PTVb8=; b=YAX5pMKxBGTgSJSsLBmhBJzN0nYKjjQ5KfNK0Kgp+OfNkd3oNzoz4GXK4aW2QfKqMo iJfK1bZoiR01C7RHbyukBNiFQRoWuvNX/eMfma9jBR5rLYzjqrJqFDt4ZVVBgWgyTUuG 4kknyCn7p5jv3iyXz+ev++DLICt9NMK1cUHQcuNCmeLSdie+dB7OstN+w7BrWPcM0xZF bAInYFnIk2PVcVHIir516H/0/uzq+G3Gd8DivXImYrFwAogBKG64q6+uvyJAuY+Vkvfe 7OR0+1N2TT90dAv4v5S76YstHT/RcPk3mId5LwnTf8yOLYBVpaHpTP3nNUahbGj8YQmA aNGA== X-Forwarded-Encrypted: i=1; AJvYcCXUQWyfkXfAdr/V2aebLAT8xsTAbRizW8SqHglmqfjLcHnmM3z+Ur+v5be917vTEjGu2ox5dULQBy9HPB4=@vger.kernel.org X-Gm-Message-State: AOJu0Ywxhr4EWOPfDMCW9XOsuccazwFCUUwLOj9DLXjNi3BbU3qvJ1HT sWzxEULq1eBzjwMbm3MIcC7nPMzuymhqgkTtG0DQzVohcrjOTFSI0U556aQm35pa0ylp3LzrhIE q4BZM/MVY9ieAK21ULCILi+gkLHTANmR8RQXJFeLtPla361nIc+39vBuaA39uomgWohM= X-Gm-Gg: ATEYQzyndjCQPCai+1kqy4KR/hjs1WPxoxGMHG8H3lXRVXSnOcZyTr4AL8Od5wIe7p1 phSyErvdQUn3fNbaDCf4GYsDR5kDOC8dDI4bXdiZLILtpuJBT8m/z42KQSPQFdxOvujVlwk881P UUmko31vv14FRI66Y8si8FVuHBLX/tDjIn178jkmBqD90Ej7XKIhMeXUFn0ZWNN3TrBQBoOejFq HDLwI/L0NNzteaN3RTXHIf/O0nXOYoZLuSlGR84lKQbN6UdS8iuYJxdVcvndwavPYpjm2uo+l/w eCg6CyqtHrnZ8QJwAENpYyOfMjp3f0J1Lm2l5GebNcgzGX/FtTfVL/gFccB2v1QGofNhLh+b0UG lw1+RGxVQphgUKceGgytfNT6pY6XLFncULaaDlkHD3Yh68xtauEZmE3Ec5A== X-Received: by 2002:a17:90a:c2cc:b0:34c:35ce:3c5f with SMTP id 98e67ed59e1d1-359a69a2776mr2352335a91.5.1772647441142; Wed, 04 Mar 2026 10:04:01 -0800 (PST) X-Received: by 2002:a17:90a:c2cc:b0:34c:35ce:3c5f with SMTP id 98e67ed59e1d1-359a69a2776mr2352313a91.5.1772647440632; Wed, 04 Mar 2026 10:04:00 -0800 (PST) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359a8f22062sm1080606a91.1.2026.03.04.10.03.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 10:04:00 -0800 (PST) From: Shivendra Pratap Date: Wed, 04 Mar 2026 23:33:04 +0530 Subject: [PATCH v20 04/10] firmware: psci: Introduce command-based reset in psci_sys_reset Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-arm-psci-system_reset2-vendor-reboots-v20-4-cf7d346b8372@oss.qualcomm.com> References: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> In-Reply-To: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> To: Lorenzo Pieralisi , Arnd Bergmann , Bjorn Andersson , Sebastian Reichel , Rob Herring , Souvik Chakravarty , Krzysztof Kozlowski , Andy Yan , Matthias Brugger , Mark Rutland , Conor Dooley , Konrad Dybcio , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla Cc: Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Kathiravan Thirumoorthy , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Shivendra Pratap , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772647398; l=4337; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=AmJ/4s4g3aYrMbA4gYXXe4kt530xNpdozBMOFvrv/ik=; b=PjZRL0pismwX2J7LSY8RYJf4oRN9Cgr6rxdBO9Kub43Gke8+/H2QuB/RnbSvXRgPxUMIJ1JCK g0qm1UeINtEBiRYrjScfhqXYtH4z8Of/X/mu89uj6JPBnVbU+Byt2jf X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Authority-Analysis: v=2.4 cv=e6wLiKp/ c=1 sm=1 tr=0 ts=69a87411 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=eczEI0HPkUfQIoTEgvMA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-ORIG-GUID: 7l7ppbqyIFcaYOnAUCGrJvOAg5jfzxt8 X-Proofpoint-GUID: 7l7ppbqyIFcaYOnAUCGrJvOAg5jfzxt8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE0NyBTYWx0ZWRfXy9vkK8qZLT90 uTbqQEzWjmnHhF8oM1xUSUomSjq43+WFosWZdlX4zbgyJI5YD41FXBrCEliBQ6hxJTM0PtfUdJQ or1QT03LaZQ/VhyfKlBSNzD8m6KJHwVngmqd4pND8jKE9Ckw6ZHyqCHHhtMmZi0+Yd03pdEGb7/ z9mIiG4/YKfbGvTsPxiP71JdCXVZiHthDP7R1znsHi1Cxq63Ti3o0CZ5/UcGBUNpt9EFQvwFEA7 sJ75pi9Dc1Sja1tZ9TGDPbN0m2ePilSUgAcXigpfndjVpY7TgyR/SvEnwwNa5mV6uYr7tRz4nD0 fCfbrw7sAl4JXz0EgWI9vULKXHfA6cBKb6KwTzDIcpjbOAbxUJpYMdN33rdkvXmJ+c0M4xr4K4o 8Bv/cWZ/ZrmcoLwtR79hngTdxWfzGgl6yQeDUu+NRlK79B0hWC+SuoAUGm6yHNPXugIyr1V/ono HJfpu6+LWffbkLPX5Tg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_07,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 spamscore=0 adultscore=0 impostorscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040147 PSCI currently supports only COLD reset and ARCH WARM reset based on the Linux reboot_mode variable. The PSCI specification now includes SYSTEM_RESET2 for vendor-specific resets, but there's no mechanism to issue these through psci_sys_reset. Add a command-based reset mechanism that allows external drivers to set the psci reset command via a new psci_set_reset_cmd() function. The psci command-based reset is disabled by default and the psci_sys_reset follows its original flow until a psci_reset command is set. In kernel panic path, psci_reset command is ignored. Signed-off-by: Shivendra Pratap Tested-by: Pankaj Patil --- drivers/firmware/psci/psci.c | 45 ++++++++++++++++++++++++++++++++++++++++= ++-- include/linux/psci.h | 2 ++ 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c index 38ca190d4a22d6e7e0f06420e8478a2b0ec2fe6f..ae6f7a0aead913d740070080d4b= 2a3da15b29485 100644 --- a/drivers/firmware/psci/psci.c +++ b/drivers/firmware/psci/psci.c @@ -51,6 +51,15 @@ static int resident_cpu =3D -1; struct psci_operations psci_ops; static enum arm_smccc_conduit psci_conduit =3D SMCCC_CONDUIT_NONE; =20 +struct psci_sys_reset_params { + u32 system_reset; + u32 reset_type; + u32 cookie; + bool cmd; +}; + +static struct psci_sys_reset_params psci_reset; + bool psci_tos_resident_on(int cpu) { return cpu =3D=3D resident_cpu; @@ -80,6 +89,28 @@ static u32 psci_cpu_suspend_feature; static bool psci_system_reset2_supported; static bool psci_system_off2_hibernate_supported; =20 +/** + * psci_set_reset_cmd - Sets the psci_reset_cmd for command-based + * reset which will be used in psci_sys_reset call. + * + * @cmd_sys_rst2: Set to true for SYSTEM_RESET2 based resets. + * @cmd_reset_type: Set the reset_type argument for psci_sys_reset. + * @cmd_cookie: Set the cookie argument for psci_sys_reset. + */ +void psci_set_reset_cmd(bool cmd_sys_rst2, u32 cmd_reset_type, u32 cmd_coo= kie) +{ + if (cmd_sys_rst2 && psci_system_reset2_supported) { + psci_reset.system_reset =3D PSCI_FN_NATIVE(1_1, SYSTEM_RESET2); + psci_reset.reset_type =3D cmd_reset_type; + psci_reset.cookie =3D cmd_cookie; + } else { + psci_reset.system_reset =3D PSCI_0_2_FN_SYSTEM_RESET; + psci_reset.reset_type =3D 0; + psci_reset.cookie =3D 0; + } + psci_reset.cmd =3D true; +} + static inline bool psci_has_ext_power_state(void) { return psci_cpu_suspend_feature & @@ -309,14 +340,24 @@ static int get_set_conduit_method(const struct device= _node *np) static int psci_sys_reset(struct notifier_block *nb, unsigned long action, void *data) { - if ((reboot_mode =3D=3D REBOOT_WARM || reboot_mode =3D=3D REBOOT_SOFT) && - psci_system_reset2_supported) { + if (((reboot_mode =3D=3D REBOOT_WARM || reboot_mode =3D=3D REBOOT_SOFT) && + psci_system_reset2_supported) && (panic_in_progress() || !psci_reset= .cmd)) { /* * reset_type[31] =3D 0 (architectural) * reset_type[30:0] =3D 0 (SYSTEM_WARM_RESET) * cookie =3D 0 (ignored by the implementation) */ invoke_psci_fn(PSCI_FN_NATIVE(1_1, SYSTEM_RESET2), 0, 0, 0); + } else if (!panic_in_progress() && psci_reset.cmd) { + /* + * Commands are being set in psci_set_reset_cmd + * This issues, SYSTEM_RESET2 arch warm reset or + * SYSTEM_RESET2 vendor-specific reset or + * a SYSTEM_RESET cold reset in accordance with + * the reboot-mode command. + */ + invoke_psci_fn(psci_reset.system_reset, psci_reset.reset_type, + psci_reset.cookie, 0); } else { invoke_psci_fn(PSCI_0_2_FN_SYSTEM_RESET, 0, 0, 0); } diff --git a/include/linux/psci.h b/include/linux/psci.h index 4ca0060a3fc42ba1ca751c7862fb4ad8dda35a4c..d13ceca88eab8932894051e7c86= e806c2ad8a73a 100644 --- a/include/linux/psci.h +++ b/include/linux/psci.h @@ -45,8 +45,10 @@ struct psci_0_1_function_ids get_psci_0_1_function_ids(v= oid); =20 #if defined(CONFIG_ARM_PSCI_FW) int __init psci_dt_init(void); +void psci_set_reset_cmd(bool cmd_sys_rst2, u32 cmd_reset_type, u32 cmd_coo= kie); #else static inline int psci_dt_init(void) { return 0; } +static inline void psci_set_reset_cmd(bool cmd_sys_rst2, u32 cmd_reset_typ= e, u32 cmd_cookie) { } #endif =20 #if defined(CONFIG_ARM_PSCI_FW) && defined(CONFIG_ACPI) --=20 2.34.1 From nobody Fri Apr 10 01:03:34 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 C85A83E123B for ; Wed, 4 Mar 2026 18:04:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647451; cv=none; b=eEEsjW/XUKijVdJpw6lXWArPekh4nl2RZkSOzj7Qsgc9wi+oYK1OMMjWABzH/QyLCqXBdM9jd7y7bPCYNuVhb1qqYFVg1gIDxNxKtyAZY1Z219RHQRuZjFDJdH4Gd6L3NuOj4FQv8JYdD0glot6e4u9cOIN4Vka4tpGHdMmLuJI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647451; c=relaxed/simple; bh=yBVN4FEHADdTSQ++LEmhmTEyByZ3pz1DEJtf2+BqO1w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tcGpAYkoVuBfbC6IlZxnA9dapxyHu+pAIWQObM4wacHcFu0HcRtLXz+L2oqkhDjGwFbGKKTS631kShrH04cnHya8FVnqZD3ozmjN+mv/S5zAQIt4AUD1pjR2UWksHuRjhvHYC2o9hmuMpMSusG4xqGMhK0/TD4tzSFnh1nKgLZY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Da9I29IV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=c2xediIL; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Da9I29IV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="c2xediIL" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 624HH9pN3837917 for ; Wed, 4 Mar 2026 18:04:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= PO6gg0/IWEmCTv8xrfB/fKl5SzRNa5BhzNOETtSDJoo=; b=Da9I29IVMwGbl9Ea c72WmDPOX5rt5CF0pF7Ff1EjoIZ/RQpe64bonHHhQxHdNQx4ThPTmq/Xx8Wi5DjI KOQXKwbU/zqDIn/38cd1q8wOH8y4BXd4xTrdBbUrnpb55XHTrYfdFZcfaN+K7LLO L6ShCmfOASQeQh3/Kn2fZRVsnSq11UOOuGhOZXOP9+D9E7nHZ7ApV1dagKXA010a Vv4j+MV9m9sTQRbP4aU2HzO2wqO0TICpddRZ5oDruTm60HgT2fdgnko9uROAaSIF U/dgSDQU4ZKesjhP43MSM+lKVyO+us1TWWRzxy5xENAQn+x5qp5NOrqO9cMrVCDc Wyvqmg== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cps0m04rd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 18:04:10 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-359918118ebso8786694a91.2 for ; Wed, 04 Mar 2026 10:04:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772647449; x=1773252249; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PO6gg0/IWEmCTv8xrfB/fKl5SzRNa5BhzNOETtSDJoo=; b=c2xediILSvnAdd0GcM9ISUl2p5iVmQxeTBHGiNiftBfrXiJqEm0hEE3uCbNfvNPZnh 4LGr0FEuTTgW+Hkfccxl+X2t6dU7iu4xd9o0pWsp4D4LgVk5ULZcma1xlvn+kdL5Uav7 oFrw3Z15AUzuGBTj+nPMlsi06MqUwDL8qBENWhY+hizJrYcVW3Xm1ROlRInBpQwuHFvE aGscM31tOY3CuZJx6qpm1w3f8SdGoMqxbxTSQjUw2gTOy/CGBMjcKb39c9MJWHjNMnOX avhnsBoQ2teNAKcFDZJvSuT1e0YTa4mCY2ohVzsozhHSSMNXxqe6bLzDuROLC+SuUk5T JsjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772647449; x=1773252249; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=PO6gg0/IWEmCTv8xrfB/fKl5SzRNa5BhzNOETtSDJoo=; b=DNOIW9MMt41Ih15QS5vOI1weGfM28dD1Gu6pXblHtw+tl8UEtJ9shQcUTm/EO3t/Cb BLqE04zzNq/vyePfW17ji2ERHZS/m3hZrtvXzrTnbpnDo+3j7mklHITbkibXEbpPMqpT AkD2q5pje4fQKuLLHYWBeu/8ldtHKNDNsDG4/HnCO43YEneNKqWTOBchnEjsFq/gIMmJ O4kd71V8qmG71PeIjaNs8hEJolT0q959aAzoyChSIGPlAZSWNakIc7bfY+e+jE4xgzyb 7hC9cRxfS1QHF7hYOcvts05YQJ3TjHiv8oOG+d8K+quM6fNYRKQBpmFrDfj/n8mdZVTR hZVw== X-Forwarded-Encrypted: i=1; AJvYcCUThEcHmBfVpT7ufGmh+8IwpBkN4LT5l57F4tgU6+b8VrxD4dKNtc5v0NnCg52xIIZ4Q0NKlHxoATRaJmw=@vger.kernel.org X-Gm-Message-State: AOJu0YwVk68QzE/k7QT4NnzKRScciq678Kq9s0W8s+outce3qs+AxCjK bI5hIO+bVDzz7sbVOkfevXbSj2nkfrka2RPFkishD76AoyWiH9t8QrzdMTa4hI8i5yVUxBdPO52 WUivFbDgE2Boml2wr2kSOK6LPty7En36NiRiNsx1X0+mX6e3eWfAQ3+ClLbd3x7jdDj8= X-Gm-Gg: ATEYQzwoakJlmne8DIw4E6mrPokAvYjAjau6w8sJdEePWOYuPl1mhb7EMxCc1U9bWX+ T9BT+UwgGFq/3Hd/2b9WsstxJiD8vuNZaU8/Whr1rF7hpwUZr+PG12gCu22fkk+yU53GJCTHQNt fp5cF7CIdYa+XDntZTmj4TgXGwEDK5aa9JnfW92FsSeoNIZecriIcPXDiyeQS2k+wU40HT0Yn4y OBtwfz29xULi8ZKDQGusADdh/VknvzIEzLD2DtafQe2OKSJbbL1YEoVDxF+gYkBgZtsgSQLuP2B n82fv4K0Fp7hU++nAy3BKUKwv7Wn1NfNyhSxa2sR8mdbcINXX/GgD6jek0wU/fTcZeJhmy1CrbO xMBcaEUHLSsyf3YV14IN/6mZOwUbfoP6daSPhLojmaaJICPq4UNsCqG1oyA== X-Received: by 2002:a17:90a:d604:b0:356:2c7b:c026 with SMTP id 98e67ed59e1d1-359a6a661c2mr2569406a91.23.1772647449520; Wed, 04 Mar 2026 10:04:09 -0800 (PST) X-Received: by 2002:a17:90a:d604:b0:356:2c7b:c026 with SMTP id 98e67ed59e1d1-359a6a661c2mr2569368a91.23.1772647449023; Wed, 04 Mar 2026 10:04:09 -0800 (PST) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359a8f22062sm1080606a91.1.2026.03.04.10.04.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 10:04:08 -0800 (PST) From: Shivendra Pratap Date: Wed, 04 Mar 2026 23:33:05 +0530 Subject: [PATCH v20 05/10] dt-bindings: arm: Document reboot mode magic Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-arm-psci-system_reset2-vendor-reboots-v20-5-cf7d346b8372@oss.qualcomm.com> References: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> In-Reply-To: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> To: Lorenzo Pieralisi , Arnd Bergmann , Bjorn Andersson , Sebastian Reichel , Rob Herring , Souvik Chakravarty , Krzysztof Kozlowski , Andy Yan , Matthias Brugger , Mark Rutland , Conor Dooley , Konrad Dybcio , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla Cc: Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Kathiravan Thirumoorthy , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Shivendra Pratap , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772647398; l=2477; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=yBVN4FEHADdTSQ++LEmhmTEyByZ3pz1DEJtf2+BqO1w=; b=OZx6ByiWkGv3E+6If5hWQp0cKX8PXq1wNtaOeIuzjnr5JeFhAImHn/a0+xFkU8UG/ps5TFj2n 9Jc3aA3+ZH0BjMvyvVjj4Darm9xBnR8dtDsVx+MXkx4rc34mEfbRabt X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Authority-Analysis: v=2.4 cv=e6wLiKp/ c=1 sm=1 tr=0 ts=69a8741a cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=Z1E3qa2j_4PWJv3PNLYA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-ORIG-GUID: nFRfq0ixxHl1XiejigysMwRaTOkPlSno X-Proofpoint-GUID: nFRfq0ixxHl1XiejigysMwRaTOkPlSno X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE0NyBTYWx0ZWRfX/HcchZ2co8s8 I6ZnZwLFmL6OzHR6SPTjDZfGe+Lxp4TiKWkHStZL/u8cwL5Y29kdH1kPsC1MHhJu1aJaLmMLEgP 48OwQFLiteO0kQypNxYmmFwUoNSrA2U+tDTYQz1Hx2rvNOgZHp1dofkCkzQifWg4NCpk6Kkg9Qr ExRVwQTb3xsum1Y+YukzVIOyva79X2jNFQhdL2pQzO2Fz5xFAWr6gkyF3IqwuanNUMdsqEb/NDC JGoobBPB3X0IvE8zePLUkA7TC2s6TYM2JjbzeSrDHfwVIVm5etlNPmJ7YtOj1d9zDk3DM8qJWwb 9rk/F/QSKwR/ccreOP7s68IrK3oMfBQcD0YISFpYqOf+mPsR5zZaT3JlCysIDUlhHnaHzlLNku1 OUairuo/QUgHjpxEHI2vzYFPxJ8+wsu1yh/4XDGStAomp56c8cTaW3qTgJfqnS9/o4Vv9JxXpDO ugjGq47txstGwaTqF3Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_07,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 spamscore=0 adultscore=0 impostorscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040147 Add bindings to describe vendor-specific reboot modes. Values here correspond to valid parameters to vendor-specific reset types in PSCI SYSTEM_RESET2 call. Reviewed-by: Rob Herring (Arm) Signed-off-by: Shivendra Pratap Tested-by: Pankaj Patil --- Documentation/devicetree/bindings/arm/psci.yaml | 42 +++++++++++++++++++++= ++++ 1 file changed, 42 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/psci.yaml b/Documentatio= n/devicetree/bindings/arm/psci.yaml index 6e2e0c551841111fbb0aa8c0951dca411b94035c..5fdcbf331ea5620363638feb6f8= 105427a87c00f 100644 --- a/Documentation/devicetree/bindings/arm/psci.yaml +++ b/Documentation/devicetree/bindings/arm/psci.yaml @@ -98,6 +98,26 @@ properties: [1] Kernel documentation - ARM idle states bindings Documentation/devicetree/bindings/cpu/idle-states.yaml =20 + reboot-mode: + type: object + $ref: /schemas/power/reset/reboot-mode.yaml# + unevaluatedProperties: false + properties: + # "mode-normal" is just SYSTEM_RESET + mode-normal: false + patternProperties: + "^mode-.*$": + minItems: 1 + maxItems: 2 + description: | + Describes a vendor-specific reset type. The string after "mode-" + maps a reboot mode to the parameters in the PSCI SYSTEM_RESET2 c= all. + + Parameters are named mode-xxx =3D , where xxx is= the + name of the magic reboot mode, type corresponds to the reset_type + and the values should be provided as per the PSCI SYSTEM_RESET2 + specs. The cookie value is optional and defaulted to zero. + patternProperties: "^power-domain-": $ref: /schemas/power/power-domain.yaml# @@ -137,6 +157,15 @@ allOf: required: - cpu_off - cpu_on + - if: + not: + properties: + compatible: + contains: + const: arm,psci-1.0 + then: + properties: + reboot-mode: false =20 additionalProperties: false =20 @@ -260,4 +289,17 @@ examples: domain-idle-states =3D <&cluster_ret>, <&cluster_pwrdn>; }; }; + + - |+ + + // Case 5: SYSTEM_RESET2 vendor resets + psci { + compatible =3D "arm,psci-1.0"; + method =3D "smc"; + + reboot-mode { + mode-edl =3D <0x80000000 1>; + mode-bootloader =3D <0x80010001 2>; + }; + }; ... --=20 2.34.1 From nobody Fri Apr 10 01:03:34 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 88D733E3DA4 for ; Wed, 4 Mar 2026 18:04:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647460; cv=none; b=PBrwFeVhrt1UqPmvVAlUkHahbJLKFE+FzTQPyKprvgX9zboN88+ZpzFtDg3P9JJ7/aSDfyThrm+NazSHTpFsk2cgGMlKu96buOrPCqXP/bE3dwx6B6VXc0S47bmvNk3gOH2o+yD/Q+QTL6LlPy4znFzioo8sQZpaiVam4/u8JHw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647460; c=relaxed/simple; bh=NM7cOAWz/hLiiDI5r8UMeAd4BHN3hlmXiVPhRwzC72M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SkJMXBWLFm63Ft8n/hz9TeM16QTN6+6suf0zZfKlLvDfOA5tCv4GX22DlxDUn4Q3DFmk8/6DSd5hIG+CTfYPSpeb1Yo+mSoKtYHNgPVphXLleyaFLbgo9CPaT0/t4ImteLpWx+BiPP2V8Mdor653kzNB0KqAoK1ZrmcyHE1G6rE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=pbsZk+aG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hM+h8wpL; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="pbsZk+aG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hM+h8wpL" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 624E165W030493 for ; Wed, 4 Mar 2026 18:04:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= W1QU/6KPKUgk2iLlcEujLmkn3VsstnPbt073tBLoZVE=; b=pbsZk+aGi+gxjrK8 N4J/vjUUTN0UbYZSe0fEU1RbFFflmLGkdHwSb1M7elIS6NbkactzNhBX5OAeeBME yC3at+uSxCUnGP7KiDs3O8JWoYOxRy4prmbJdDJ/wkzXaz3+Ubmcym0M4dqQ8o6G N5YDL57moKLePiG6SwkDE8ncuUIvqGWD2JjaZc67gHYAU29MOXfYhhLzIMXZL6N5 oq8oF8qWtyt6SIkqeLm5orqzzwMncQVwErpUss0Y7fFvN+l6u89rjiFq7fRKEtlr mUjr6HWv4VKGeTILHnfOVTTltbGZ8h/TRkA4g/O5GSiHfR7L5Yv+T2xwiASX8ver 1LTVrw== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cpp4fgv3e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 18:04:18 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-35641c14663so7425768a91.2 for ; Wed, 04 Mar 2026 10:04:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772647458; x=1773252258; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=W1QU/6KPKUgk2iLlcEujLmkn3VsstnPbt073tBLoZVE=; b=hM+h8wpLK4/dFwEMG1cWAlyr1XbNHfiOnmGVdHv/0Hiv6oDBUJbN701jdZtxMPI0Vq Di2pvlL+iPK97m02QdfBaDYbjdxf4f/6L+HAhMe+eBVCXxBfxH7O3BNxX2AoPsewdwzp qECR2LHqv1F1QTPlmikLkOmE7n+QxvVRpnQaB/pVEKk39qpS0aIrD9nBRhVdaOsobozs OkLCaHNe1v+g1KU30E4Ur+YySc6xWbSJw7u4yxbNTIwxxgzAJNWKBqPSXwPVDCO7MMkT GZEJHfk80bVAYbfeoMxJj3OUx+0l6P6V1uKQZmmFbYc0AORNdEb/F/JBMcYUVwbCX83y xLxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772647458; x=1773252258; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=W1QU/6KPKUgk2iLlcEujLmkn3VsstnPbt073tBLoZVE=; b=m1cxdrbbkaJ4jK1JLAQXgA7TJfgX0+XOWHA3bzCbAxZmNBYj2rN/RJvNk5hkVyKTRG yb6u3iG1RadckEMgElciYGkLivibAJKbcojKS3LRTWOYrCRlffACIHwr3bYkk7YVX24i cZ4w/FMUbixNuxUJvFrEiIWCRAsVTT9kT7rAv5q/6G0rfnqtA2+OTGq6wLPuzDbTvOp3 5TXWWDNW9S3tk2KY7dgYouhs1hgRaxbYKgEPCGt8eFdcMrQJMI0MDSeyS2+EN4EwYRtE bXbf6TYHp8S8dee5+c2zDJfurxAAXfNBr+uGXQiffEW15Qw9wbRV4ZTbJuyKIDfFMUuc eOpQ== X-Forwarded-Encrypted: i=1; AJvYcCXIZRG/aHKSIjawLZ0QviGTE5Y/WpX7BXtFbe7p/60VEg6mVdu/n0cxQ+usB8BjaboV08ntM5A0gqLlYn0=@vger.kernel.org X-Gm-Message-State: AOJu0YzLatihvcduLP6zJmhaXB2ce+a9qryaVy/Tt8cVaotrDv/5ClUM G/lleUdqAPBLDuNK41IqvGy8dUXPXQluvWPMKfrHtqm03Jz17nQaTXMCADSLad5bDzhmiDVP/JV iuvBdAt8dmWMe3GDtSdeTwSjO3HQpEfKUR5xG7HYweyCX6ihQuIjy5J8GOckC2/fxVVw= X-Gm-Gg: ATEYQzwgfZvcgxNyQfE1tI++GGdqCsHg096oe72VFv/Nz+JO/sapy88kOyB6IykXK24 VDUcE3b7jpxgOWa92b7TMdXGF57l6Fw/aoSfVfKKh4fIhAC4FoaKb9dwiiSqm6P+iDERJ3kTKzl T1Hf+kwlX4usnHrwmpYWpN0+tkuhufGMlrig1fhmXvXgDgd/dLmJzSiRO8YqCelvidO7Qd9oiWE MaZn7+HVzZJJjFrTOwXc+g/knPlDPVfZFEKYlfS6Yan4SDuhlx3JPm4nZvm89+TRFMxh3VhZ/CB mJsV+CYwL9sBOWuG7+VoAxnLDkrFKLeCrFKdbwDM02GXmfkZ2Pbr4r7qf3Rfup9Yoh93L3WRkC+ SWK3oV9EwoRl5AfHi2SVsKtSKmowlJeMg8yC8t7VXdR4RmolYq651bzkHKg== X-Received: by 2002:a17:90b:1344:b0:359:8e59:16e6 with SMTP id 98e67ed59e1d1-359a6a9f792mr2009643a91.32.1772647457877; Wed, 04 Mar 2026 10:04:17 -0800 (PST) X-Received: by 2002:a17:90b:1344:b0:359:8e59:16e6 with SMTP id 98e67ed59e1d1-359a6a9f792mr2009614a91.32.1772647457338; Wed, 04 Mar 2026 10:04:17 -0800 (PST) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359a8f22062sm1080606a91.1.2026.03.04.10.04.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 10:04:17 -0800 (PST) From: Shivendra Pratap Date: Wed, 04 Mar 2026 23:33:06 +0530 Subject: [PATCH v20 06/10] power: reset: Add psci-reboot-mode driver Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-arm-psci-system_reset2-vendor-reboots-v20-6-cf7d346b8372@oss.qualcomm.com> References: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> In-Reply-To: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> To: Lorenzo Pieralisi , Arnd Bergmann , Bjorn Andersson , Sebastian Reichel , Rob Herring , Souvik Chakravarty , Krzysztof Kozlowski , Andy Yan , Matthias Brugger , Mark Rutland , Conor Dooley , Konrad Dybcio , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla Cc: Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Kathiravan Thirumoorthy , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Shivendra Pratap , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772647398; l=6255; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=NM7cOAWz/hLiiDI5r8UMeAd4BHN3hlmXiVPhRwzC72M=; b=oD6nxBX3PrcdFEYrXB/z/9OA6OCArQKPjMUTNPBsYMzHjGuI+CLe3jdhs2EGceNA0PTw/Idg5 kR63U0YmZh+BKfLFEJY5xadmMaMt1JIpKkR+gmqSqWPlNhp3uylysAu X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-ORIG-GUID: -rg8gOLRZsZKwOHJqcN3qwrLjta-ZGhi X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE0NyBTYWx0ZWRfX2wU1+z0KWevc 85d6CdlgAc8eSTYyYujHd8db/hMNLhZR0isjeb1tbNBMgz36mxlrnK4TZPjCoB7fMipfmFNcJld qSYiPNxN8Tgf1/Al3StkxJcHIyIghQMR8fG2Dbogt+/Xx0+IfuyCB0PrwbHyTqZWB8pYNZh8syV kOSB09copvbqam1XXfOS8SPJ0CpGiJMTvA1kWo/xlbPgBZ8xYNbNp3DareRKZ7ZJ1N7/ED/xK9c 3uTrSHB4xbAfmKElxSShdShn0UmZQc5aN9HCjlcXdjWza0DekIMgJObwjny2BXtlATXg8bt+Jgg pEZWQJpSCzLhm8vomGx0iI5nxiCTxX/OykPvaBCYTf/1TgF1LiU01wxSu+eN71SawzkzWTc3YI5 RWergXTu3mwIBQgoVgvVSc0WboqX+fD/zzJCbEdxhoYlI4FsQAP3JNRQZHbjjXfqfoU7Z9EfXA+ Ftm9JvC+dp78lIGIoFg== X-Authority-Analysis: v=2.4 cv=CdMFJbrl c=1 sm=1 tr=0 ts=69a87422 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=wQXJ-QnpPWzAIZmQQd0A:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-GUID: -rg8gOLRZsZKwOHJqcN3qwrLjta-ZGhi X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_07,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 adultscore=0 impostorscore=0 bulkscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040147 PSCI supports different types of resets like COLD reset, ARCH WARM reset, vendor-specific resets. Currently there is no common driver that handles all supported psci resets at one place. Additionally, there is no common mechanism to issue the supported psci resets from userspace. Add a PSCI reboot mode driver and define two types of PSCI resets in the driver as reboot-modes: predefined resets controlled by Linux reboot_mode and customizable resets defined by SoC vendors in their device tree under the psci:reboot-mode node. Register the driver with the reboot-mode framework to interface these resets to userspace. When userspace initiates a supported command, pass the reset arguments to the PSCI driver to enable command-based reset. This change allows userspace to issue supported PSCI reset commands using the standard reboot system calls while enabling SoC vendors to define their specific resets for PSCI. Signed-off-by: Shivendra Pratap Tested-by: Pankaj Patil --- drivers/power/reset/Kconfig | 10 +++ drivers/power/reset/Makefile | 1 + drivers/power/reset/psci-reboot-mode.c | 119 +++++++++++++++++++++++++++++= ++++ 3 files changed, 130 insertions(+) diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig index f6c1bcbb57deff3568d6b1b326454add3b3bbf06..529d6c7d3555601f7b7e6199acd= 29838030fcef2 100644 --- a/drivers/power/reset/Kconfig +++ b/drivers/power/reset/Kconfig @@ -348,6 +348,16 @@ config NVMEM_REBOOT_MODE then the bootloader can read it and take different action according to the mode. =20 +config PSCI_REBOOT_MODE + bool "PSCI reboot mode driver" + depends on OF && ARM_PSCI_FW + select REBOOT_MODE + help + Say y here will enable PSCI reboot mode driver. This gets + the PSCI reboot mode arguments and passes them to psci + driver. psci driver uses these arguments for issuing + device reset into different boot states. + config POWER_MLXBF tristate "Mellanox BlueField power handling driver" depends on (GPIO_MLXBF2 || GPIO_MLXBF3) && ACPI diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile index 0e4ae6f6b5c55729cf60846d47e6fe0fec24f3cc..49774b42cdf61fd57a5b70f286c= 65c9d66bbc0cb 100644 --- a/drivers/power/reset/Makefile +++ b/drivers/power/reset/Makefile @@ -40,4 +40,5 @@ obj-$(CONFIG_REBOOT_MODE) +=3D reboot-mode.o obj-$(CONFIG_SYSCON_REBOOT_MODE) +=3D syscon-reboot-mode.o obj-$(CONFIG_POWER_RESET_SC27XX) +=3D sc27xx-poweroff.o obj-$(CONFIG_NVMEM_REBOOT_MODE) +=3D nvmem-reboot-mode.o +obj-$(CONFIG_PSCI_REBOOT_MODE) +=3D psci-reboot-mode.o obj-$(CONFIG_POWER_MLXBF) +=3D pwr-mlxbf.o diff --git a/drivers/power/reset/psci-reboot-mode.c b/drivers/power/reset/p= sci-reboot-mode.c new file mode 100644 index 0000000000000000000000000000000000000000..86bef195228b0924704c2936b99= f6801c14ff1b1 --- /dev/null +++ b/drivers/power/reset/psci-reboot-mode.c @@ -0,0 +1,119 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Predefined reboot-modes are defined as per the values + * of enum reboot_mode defined in the kernel: reboot.c. + */ +static struct mode_info psci_resets[] =3D { + { .mode =3D "warm", .magic =3D REBOOT_WARM}, + { .mode =3D "soft", .magic =3D REBOOT_SOFT}, + { .mode =3D "cold", .magic =3D REBOOT_COLD}, +}; + +static void psci_reboot_mode_set_predefined_modes(struct reboot_mode_drive= r *reboot) +{ + INIT_LIST_HEAD(&reboot->predefined_modes); + for (u32 i =3D 0; i < ARRAY_SIZE(psci_resets); i++) { + /* Prepare the magic with arg1 as 0 and arg2 as per pre-defined mode */ + psci_resets[i].magic =3D REBOOT_MODE_MAGIC(0, psci_resets[i].magic); + INIT_LIST_HEAD(&psci_resets[i].list); + list_add_tail(&psci_resets[i].list, &reboot->predefined_modes); + } +} + +/* + * arg1 is reset_type(Low 32 bit of magic). + * arg2 is cookie(High 32 bit of magic). + * If reset_type is 0, cookie will be used to decide the reset command. + */ +static int psci_reboot_mode_write(struct reboot_mode_driver *reboot, u64 m= agic) +{ + u32 reset_type =3D REBOOT_MODE_ARG1(magic); + u32 cookie =3D REBOOT_MODE_ARG2(magic); + + if (reset_type =3D=3D 0) { + if (cookie =3D=3D REBOOT_WARM || cookie =3D=3D REBOOT_SOFT) + psci_set_reset_cmd(true, 0, 0); + else + psci_set_reset_cmd(false, 0, 0); + } else { + psci_set_reset_cmd(true, reset_type, cookie); + } + + return NOTIFY_DONE; +} + +static int psci_reboot_mode_register_device(struct faux_device *fdev) +{ + struct reboot_mode_driver *reboot; + int ret; + + reboot =3D devm_kzalloc(&fdev->dev, sizeof(*reboot), GFP_KERNEL); + if (!reboot) + return -ENOMEM; + + psci_reboot_mode_set_predefined_modes(reboot); + reboot->write =3D psci_reboot_mode_write; + reboot->dev =3D &fdev->dev; + + ret =3D devm_reboot_mode_register(&fdev->dev, reboot); + if (ret) { + dev_err_probe(&fdev->dev, ret, "devm_reboot_mode_register failed %d\n", = ret); + return ret; + } + + return 0; +} + +static int __init psci_reboot_mode_init(void) +{ + struct device_node *psci_np; + struct faux_device *fdev; + struct device_node *np; + int ret; + + psci_np =3D of_find_compatible_node(NULL, NULL, "arm,psci-1.0"); + if (!psci_np) + return -ENODEV; + /* + * Look for reboot-mode in the psci node. Even if the reboot-mode + * node is not defined in psci, continue to register with the + * reboot-mode driver and let the dev.ofnode be set as NULL. + */ + np =3D of_find_node_by_name(psci_np, "reboot-mode"); + + fdev =3D faux_device_create("psci-reboot-mode", NULL, NULL); + if (!fdev) { + ret =3D -ENODEV; + goto error; + } + + device_set_node(&fdev->dev, of_fwnode_handle(np)); + ret =3D psci_reboot_mode_register_device(fdev); + if (ret) + goto error; + + return 0; + +error: + of_node_put(np); + if (fdev) { + device_set_node(&fdev->dev, NULL); + faux_device_destroy(fdev); + } + + return ret; +} +device_initcall(psci_reboot_mode_init); --=20 2.34.1 From nobody Fri Apr 10 01:03:34 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 7D1D93D7D9C for ; Wed, 4 Mar 2026 18:04:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647468; cv=none; b=IJ4VEXAos0kaAYtALiko3Qe++DtN4gP99jwuPYyf1dT3OXecdN6YTOUzAgHO93jS4SLzqvJIj9OgOs+f5M13zSVzZrcu7kHhndQXTFRf48wtZDzXAz+Go6FkvHArY9YzABcpcvsqWmjXMUy7vzS02vYwwujWDPj1jzuRUlJVyV4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647468; c=relaxed/simple; bh=5Re4Fcu614uHWQ7uwIVALFVPUqCLosVU7TPLzsP+VBc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TYtekK7Cj+iz3SDDcnC7aljZjVsjVflyVO4Ag0KqAJDRmtNByyf/BVKFW/OiOAhCa44xAGEx7Yz9JpN2fU16mmMHLHssLs0vgAEHvHPqVpJot2n48UAOoOZdBbYctS3p5zNsSMNSrapxTWgza6j7KFpYyUg66xW9aPTdsxMF6bc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=JVeeyV7A; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kIjbtPa3; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="JVeeyV7A"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kIjbtPa3" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 624CNa0r152520 for ; Wed, 4 Mar 2026 18:04:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rdU7H+Ufp7jUqtoufnsWZsR/aNT10n8aiLapu1wjI9k=; b=JVeeyV7A4bR5mH6U WI4ug+RaEtYXuDq5K1HEv/LKxrppZpkKx6x/Rp6A05ma9lINah7T7s2Ih9HjY/WC w2pxuaA5G5O1Qa7F47ngjkedSO0uTmRBljU9My/5zmXId7Xc/t5g6TXT43Mg0+sX DXcfjSZuEKju8EeJr15SOF29xPuQrnZEEjFGM/49FFfxzTB2biHMrjbThxlSShDv FtzzH8bmJQFkY6h2fJQxIAR8Zws9RaZ/QenpiLzeCc2k9Kn40bUedEFEtZZOkMZ1 R1s2Fikom6HN01ELnR2oNiMy0fUcOn3HQWAvp26JDBeWo2EanqGtaxJmOv8OIIvN TPUMCQ== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cp3tvmptw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 18:04:26 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-358e95e81aeso33116678a91.0 for ; Wed, 04 Mar 2026 10:04:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772647466; x=1773252266; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=rdU7H+Ufp7jUqtoufnsWZsR/aNT10n8aiLapu1wjI9k=; b=kIjbtPa3aASGMY5mWgQwOG4v3fgyz+TfhwhL8vD7BND21T/ObH8IsWxcvJSce+A+B2 ArDubeuJ5Nh7LDec9n9S7KncwrBx3s5QgZ+lQ/bTFVW4Pkl10vq1i1h76iWRp0KvC9IH Tej3ZsZUQ43BV19fqTkktmsvH6/vo/7kCnrz48odebeaLi/F+lrXEWJsgVeMakUDRyJz dkn6CXZQWDspcf7EHWI2QT3HH/nlZf2GTDgn8QMu0Hi01ENSoi0MwjN1nN9vypgv7fJi 6mFQllN0ZvbrZa+61RsEbOkzvQEfn14OiELF7wIPygSvlCUcHQe6uKm5gg5FClZD5oSz +WNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772647466; x=1773252266; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=rdU7H+Ufp7jUqtoufnsWZsR/aNT10n8aiLapu1wjI9k=; b=Hzlw8Orr0lRz3ViojPv39gashwDNZTVaPSC3IvW5PaMgZMfFx8lkYD7vJeuldrLdHF sf9EC6/0EDKNWJTxgEjyxO+V5DvyIGcirzsv7dObZz6fgLMzf3j68yFtfyPzyu7C/rl9 C37dW7wcXh72vUTCSX/2RKk6KBBD9/MZqBUmNrXV8GgBmxVfpCo6z+wfuXkG64xG84xb pJeksNy3DUl+ozobaK+QHvaPYVgN/VCfHDxIPpEUZDJSLYcwoJxLJwgrnmuIYz9PO8Rp ssdIdPzUpo5vbE00LGRhgXkwmybi5MAsrX03poZFI7deYVPzq1vJw6RCLqVuWdbJDjRy hcBw== X-Forwarded-Encrypted: i=1; AJvYcCWTAVmhfQVJ0M8qwLYxgxGKZfJbSXc5lWV/RiVs/qyFz/laFDXyCRZatrMYl5FcFOjtdpdMmXprlm6mqTs=@vger.kernel.org X-Gm-Message-State: AOJu0YwAYhTrHHUsUZaEAx8zGk9+HpwoQNKDnFJQOf6Ss9xh2rgNbljG EUmyeYbXDMh9ddtrPb5UrAtdOO1ooRj1kpivfg/68W005JNltl2HlCkfyUbbc018wxAheefBjEP nyXaskg8U+ic8r93Nk1ft/0nn7Limmm9xwLI411kacEJwPKX9l9cAv/9TqkdE7Xt43iI= X-Gm-Gg: ATEYQzzdzgbas3t1of5pENh9oU2Y6YqSUmkTAJgjdlwkqSElJfaM6Lw6xDEnoye1xeZ kSno3zcpWLg7UqsnUgRPUSLU4e/XaVUHvPgaQw4aOQnQ9WBV3XnOEioyR368S5GJrQ7czOUoj1c fIzLeHNhQr1Em6Ya95r2qQbtxHE7Wr0u0zFNqcyRJBhFfPfOVZ8XKUWxpVxJW+glVb7eu4wctoe cYlqagtpajZDGDHDODIwdh0MQtciFQ/Qz3Aydqp9AkVDpHOMgF1mbRxIOrPDfU3qV6sf7rBcGKD 03kLyGyRAq7TZaqM13TZBDw4ByM5EsaWqyRZCk2t2trUmRDLBh7dmHHWzfaBEoEP6QxZ9WAFBK+ wLvQm4+Im8MRRXcUcxTmdSR1I8lkxJIYkpkgU5Wsga5T0VzufkjFs1LdoPw== X-Received: by 2002:a17:90b:2e85:b0:359:7ae5:89eb with SMTP id 98e67ed59e1d1-359a69c796bmr2658574a91.11.1772647466221; Wed, 04 Mar 2026 10:04:26 -0800 (PST) X-Received: by 2002:a17:90b:2e85:b0:359:7ae5:89eb with SMTP id 98e67ed59e1d1-359a69c796bmr2658530a91.11.1772647465645; Wed, 04 Mar 2026 10:04:25 -0800 (PST) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359a8f22062sm1080606a91.1.2026.03.04.10.04.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 10:04:25 -0800 (PST) From: Shivendra Pratap Date: Wed, 04 Mar 2026 23:33:07 +0530 Subject: [PATCH v20 07/10] arm64: dts: qcom: qcm6490: Add psci reboot-modes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-arm-psci-system_reset2-vendor-reboots-v20-7-cf7d346b8372@oss.qualcomm.com> References: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> In-Reply-To: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> To: Lorenzo Pieralisi , Arnd Bergmann , Bjorn Andersson , Sebastian Reichel , Rob Herring , Souvik Chakravarty , Krzysztof Kozlowski , Andy Yan , Matthias Brugger , Mark Rutland , Conor Dooley , Konrad Dybcio , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla Cc: Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Kathiravan Thirumoorthy , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Shivendra Pratap , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772647398; l=2240; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=5Re4Fcu614uHWQ7uwIVALFVPUqCLosVU7TPLzsP+VBc=; b=5o65AVsItHdOKBx5+J9aZ+vWyhKmaBgKRSV+ow+UzhDZhopfM4hoZbNUWmmtA54/gbX574Wk0 jNFiJGqo78hCznF2kzQcdMNiuiEFY62XUNoOcP3KH7Nq9bsl6r+yh+V X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE0NyBTYWx0ZWRfX/jyPVKizL8B/ 5Erp5zSVdBdIIj6zn0Wb2QWur8qtvl0XLiNae3MktqDvwBlsR4PbrtFcZ8Matq0p2fMSyCXWexo 64sLoke+wQ+KegxWEGKcGxWhfsM5IkKUX14tBJwC/wDAgadp0z5wqPqVNQ7SHWWZerb4rjx4src RxatV2jI55FxSqFBV+s1Iory4JCeCYB79qh1vt+UhSQp0uwiZtvfhhddQNr2oy71eczY6dOibDE oIBbaSq+939KpBmg9i5PjvGjaiu74ZnwDYV9ANZDpLAAznAdYtWp8mGJXrn6I7AfguIIDy6LmJO d5CBeBsczK/5FkNVVhklH/E0lpq8cKhuVT2LWTaR1whU8kKpY6CW0CbVEemhPjJxT45nF5XIRVR xyxVtkRYiRzO0dbSZQFt3/N5W88TcNO9UkzzogbfRkBsY1EpO+6c/ZrTksL6kCYOJqZwRENt9o6 zIrGO977MQhaPup4iQg== X-Authority-Analysis: v=2.4 cv=VYv6/Vp9 c=1 sm=1 tr=0 ts=69a8742b cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=t9IVmYW30V31rltyR78A:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-GUID: BjqSdoDuvJ4XbJWtWji-bLG3njODZPS2 X-Proofpoint-ORIG-GUID: BjqSdoDuvJ4XbJWtWji-bLG3njODZPS2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_07,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040147 Add PSCI SYSTEM_RESET2 reboot-modes for qcm6490-idp and qcs6490-rb3gen2 for use by the psci_reboot_mode driver. The following modes are defined: - bootloader: reboot into fastboot mode for fastboot flashing. - edl: reboot into emergency download mode for image loading via the Firehose protocol. Support for these modes is firmware dependent and not available across all sc7280 based boards. Signed-off-by: Shivendra Pratap Reviewed-by: Konrad Dybcio Tested-by: Pankaj Patil --- arch/arm64/boot/dts/qcom/kodiak.dtsi | 2 +- arch/arm64/boot/dts/qcom/qcm6490-idp.dts | 7 +++++++ arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qco= m/kodiak.dtsi index 6079e67ea829b5233bb87fdcb37d8a05d30fb87b..44dc8eb55a213f8120558465038= 2b6b7f79f6e88 100644 --- a/arch/arm64/boot/dts/qcom/kodiak.dtsi +++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi @@ -863,7 +863,7 @@ pmu-a78 { interrupts =3D ; }; =20 - psci { + psci: psci { compatible =3D "arm,psci-1.0"; method =3D "smc"; =20 diff --git a/arch/arm64/boot/dts/qcom/qcm6490-idp.dts b/arch/arm64/boot/dts= /qcom/qcm6490-idp.dts index b2f00e107643dcc79da89e40206f86a834da9e33..5792cd75b61a53f321d3348eb66= 945f17c84153c 100644 --- a/arch/arm64/boot/dts/qcom/qcm6490-idp.dts +++ b/arch/arm64/boot/dts/qcom/qcm6490-idp.dts @@ -695,6 +695,13 @@ &pon_resin { status =3D "okay"; }; =20 +&psci { + reboot-mode { + mode-bootloader =3D <0x80010001 0x2>; + mode-edl =3D <0x80000000 0x1>; + }; +}; + &qupv3_id_0 { status =3D "okay"; }; diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot= /dts/qcom/qcs6490-rb3gen2.dts index e3d2f01881ae05f17796f9c97f10b53cea50daff..bc7814ad62b824bef148bec4cff= cf10f89a21c96 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts @@ -1031,6 +1031,13 @@ &pon_resin { status =3D "okay"; }; =20 +&psci { + reboot-mode { + mode-bootloader =3D <0x80010001 0x2>; + mode-edl =3D <0x80000000 0x1>; + }; +}; + &qup_uart7_cts { /* * Configure a bias-bus-hold on CTS to lower power --=20 2.34.1 From nobody Fri Apr 10 01:03:34 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 386403E5569 for ; Wed, 4 Mar 2026 18:04:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647478; cv=none; b=pDHrgskZ2M9vbFlRkxecgT3fFB3jr14ul/Pou/oJUZD6FleaPdMhuKkD/gnJ3S70ZkoMmr58h3u4FYE88LeCB6tknBT1x06yXHr1W4xbQ81SW7I9iYksjJyjwxuquLTX/hh7UpZTGMnlM81/y2Awz6G0tw1nCfgMdFRSsfz0XAE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647478; c=relaxed/simple; bh=UhQBeFgHwK+VhUEZZ9u/QamtLLiZ1oP9pqxntRK57Dk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eAo9JZDcZeAyhOMlcj+5q1ZdlXU93KiB5UhmORiYdha6sGX09MKFmElPZE9aYuccvXBSjyI+6UwE3NrAWw2tr2rcZ/LRziR5oan1A6IfDFJiiTPYFLPZvYG2K6tlcGbO+lXI3QmRVF3VIbGACYHeQN35wkThOIN6wqOtTaUsoUU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=jJaMHWVj; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=H6FojKtP; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="jJaMHWVj"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="H6FojKtP" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 624Ced8S1421902 for ; Wed, 4 Mar 2026 18:04:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= NhDn1FDSw+c7UhbFQL/TJrvi10/P8i7V+vblELzHcoI=; b=jJaMHWVjsJjwa2u/ aC0yykYaleCxm8NyrmFR3Bz1NCDL3FH1w5jjPlOadDOkQZ8sV73EyQTln5q6t8xs 0J/CxMm3EwxgqY/1f1cmgFUn6fIR+jS6xNKbmxxyoXqoHODkTeE6Mifwo8/pejad J/mLYl+r7ThQkqBFMAsGhiNP8tNbNuOQMWZ3o02f+UaXf+QKdlIoFRKb2h/Yj58l FEek1ZSYPYjrScpyziIF5Q+XuuVr1SrbjSNufoah04obrMGzgDj1IAiBdrxK10qZ LlWO+ncPE3RxMNOrsVRhuZX+HWdPFXoS7erpNwHDEeOiHQIkBi39OUQA7EMUKqPF L5oQ8Q== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cpe8u2dtu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 18:04:35 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-35982c5940cso3019874a91.1 for ; Wed, 04 Mar 2026 10:04:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772647474; x=1773252274; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=NhDn1FDSw+c7UhbFQL/TJrvi10/P8i7V+vblELzHcoI=; b=H6FojKtPvupiNRHdmSZubsgMrBFftskYhZpYaU480NsSh10kbugwoRuaetq0CDghZ4 QsFe+WaiLaa3YDKRojgSvo3HRQb8ePG04ZOlOdDLTVwHvpzuNzOGy3033OoRoGJ5OZkM ntZRN+Lg5d5keB4K0h4JqiiIFnNBSoWcXy5dZfDHYAk7euag2kSJeXr1GxR+xs90oXvp EYoEvBxiDsr+f10BA5Qsx5uDewLBQoq1UbPAN35YUV0ePZFCHV6v/E2uhqqDxPlep4U8 YYQ2PCQ6MMUMSnFGvPBatXdtqsMZ44PYLAJXeLu40Fs85Zd1x+1+D41gYWj2b8o7AdAG 8VNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772647474; x=1773252274; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=NhDn1FDSw+c7UhbFQL/TJrvi10/P8i7V+vblELzHcoI=; b=CXtyVjcm7wiv0U02FAqXqxIk5SuOu/nPIWNwNrl8NBkHdWVNiGEO/2vzTHXOXf/G7a 6pbebDaakofx+8ajLM2RCksbhSP4ClLfx1MTB8b2SdGR9niskOLF+FLdZoOQe9+ZCt/x EFxGSWyMvDIZVkeluxJUTpJImlBH+SZrsRJN9YcX7kXG40NBbo3WCCLUVplo0Nq70+ha vTKykaJYHZkbGM1GnW5ahid0wZCq4bBe+wABcAFCHepj6p6dBRn2o7po5EoZ6377fF48 JdXqDd71IRVSDw0jJkWSoB1rztRoG6X9SVIWbbsrqOBdUFzSWuKnh9gOA+ZVs2N5EeVA 16VA== X-Forwarded-Encrypted: i=1; AJvYcCUy3UL6bkpuBAZ0GZvv4ru16spCB0jGkYmMRHG7OFz/O26K2LV7BzthbV9hWcatAHw6bP1KtMr0GbVtoj0=@vger.kernel.org X-Gm-Message-State: AOJu0YwntEJl5A5GrJKY1/Xiv3r2sIrq2V9TF2T/HoXkc2HloHMb13AY Xxf0gA3yLC3EcQQ3HVAs/p73fjLXZasjJ6nb/47PvIpvYExutV7c/LfwGfdKMtf8S+RO0p2FLOx 5ry3mjL6Dm0Eo/d64/UXW7/UQdrElb8GvZ7urrrVDHBCeRr0HfTsZSadIm6rKrEHdCjk= X-Gm-Gg: ATEYQzx0lmEyOhOsqg/b199IXxmAA9EG2XMjPEQGfeEOVtYC2iFd4AY7iC4wu4+B4JV 8HQJlh0aFZ1zI9mifgN7WwV9fMIw176GKuQeyB8FKkiJahmth17tDK+loisH1iLX2ADr1+8qPmy 93Y/MixUA/gSkagahdUx/CRdPeYRGNvRnsJP9Zm0TfncrHyGoX4vdSctSiLpTRSQL9BdP6yyCz8 oi3fxYXB3QFEfF29I7PLIzULLy8kwzKDWIxNpAtwKMWXMzIp2o5Y1hMdLDrQs1NnOmxXsoEyr1I pcwTPCVt+WgCpyr7a6qDDUyE0LAxI7sZwfJ0EpCQjq0jLtVzPwSdcMoJkQmVMz4coyaPd+wRcsm 4c9S396id/HrAFTPCy1E48AA6rrGLLQZd9CerOrpb6HYwJCjcV6tSWukGpA== X-Received: by 2002:a17:90b:3d81:b0:359:9669:c879 with SMTP id 98e67ed59e1d1-359a69cd901mr2630726a91.11.1772647474545; Wed, 04 Mar 2026 10:04:34 -0800 (PST) X-Received: by 2002:a17:90b:3d81:b0:359:9669:c879 with SMTP id 98e67ed59e1d1-359a69cd901mr2630695a91.11.1772647474050; Wed, 04 Mar 2026 10:04:34 -0800 (PST) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359a8f22062sm1080606a91.1.2026.03.04.10.04.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 10:04:33 -0800 (PST) From: Shivendra Pratap Date: Wed, 04 Mar 2026 23:33:08 +0530 Subject: [PATCH v20 08/10] arm64: dts: qcom: lemans: Add psci reboot-modes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-arm-psci-system_reset2-vendor-reboots-v20-8-cf7d346b8372@oss.qualcomm.com> References: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> In-Reply-To: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> To: Lorenzo Pieralisi , Arnd Bergmann , Bjorn Andersson , Sebastian Reichel , Rob Herring , Souvik Chakravarty , Krzysztof Kozlowski , Andy Yan , Matthias Brugger , Mark Rutland , Conor Dooley , Konrad Dybcio , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla Cc: Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Kathiravan Thirumoorthy , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Shivendra Pratap , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772647398; l=1079; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=UhQBeFgHwK+VhUEZZ9u/QamtLLiZ1oP9pqxntRK57Dk=; b=RcmoQ1fYDcRXvDooluVeIsqC7tRYg4rdhmuADpGjwdfi7jgzmdro1TicHjZj8DieHX9B5HeQr oPFfLSLbZ/PCKjddL8VgGur6YGNV74s8lBO/Y3lhg+hfpieOYAYNN56 X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-ORIG-GUID: -WtAzzNSHox-WRMe4e6kuB6eGsvVvhhT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE0NyBTYWx0ZWRfX5lpV6qOHemKE YhNVArvHcZatT+o9Aw70txiHmlxskOmHxYMPDufgScdzDWpe0SvdcQhnIFYrl5JCpIA4AVg6SxT HdKNjRgXfP46fakZSXOZ+33uQDGCVIQShnUlX/VwOArHVCGdsSAhPFr5oq3Acgy54n/L4ibBa0W V6MaGTnFFtv6mK8eOrpq1eqDzzA6IqH25/4l4dF8Z+Wly/20Rlas+yEw35k2B8B77fsg/CtpTL5 MZpNn3K6A6/4s1kJaj4olZNjn7ZTsU9C6IJuXC2uYBPwZPaSdDYTAqD/IAX0zbJ3bXWi99Eit4j lpp1cMMJWpTYMjitWCJSo8K9XUXAvI0uWeZ6fTJfARFCWi1A+YVfLKFlOo0aBh46AZelwIgf9j3 CfFZt5VY2VPvkhMGEKoi1hfvdGfYHMCMnKd0V/oAcZ6RVsoTkKF8kRR6pBbFkOtw3NvPgP2OeDU 0KX+ZnGkGRCovWS6Smg== X-Authority-Analysis: v=2.4 cv=FpAIPmrq c=1 sm=1 tr=0 ts=69a87433 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=Ld_RF3OM1xByVwKNVVYA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-GUID: -WtAzzNSHox-WRMe4e6kuB6eGsvVvhhT X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_07,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 phishscore=0 malwarescore=0 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040147 Add PSCI SYSTEM_RESET2 reboot-modes for lemans based boards, for use by the psci_reboot_mode driver. The following modes are defined: - bootloader: reboot into fastboot mode for fastboot flashing. - edl: reboot into emergency download mode for image loading via the Firehose protocol. Support for these modes is firmware dependent. Signed-off-by: Shivendra Pratap Tested-by: Pankaj Patil --- arch/arm64/boot/dts/qcom/lemans.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qco= m/lemans.dtsi index 808827b83553dd70904d771cc1da784c85fdc1a5..b5234a1b31761a6565299733a30= cf3808c439976 100644 --- a/arch/arm64/boot/dts/qcom/lemans.dtsi +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi @@ -635,6 +635,11 @@ system_pd: power-domain-system { #power-domain-cells =3D <0>; domain-idle-states =3D <&cluster_sleep_apss_rsc_pc>; }; + + reboot-mode { + mode-bootloader =3D <0x80010001 0x2>; + mode-edl =3D <0x80000000 0x1>; + }; }; =20 reserved-memory { --=20 2.34.1 From nobody Fri Apr 10 01:03:34 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 476CD3E5EEE for ; Wed, 4 Mar 2026 18:04:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647487; cv=none; b=Iugz9FMFaXKMF0x7n7HeqMbmPK0vBqBd19jdAdrPTd6SmxMACGIVEDFULZqOxjJLNILYF9n7DNpHGP5ITf/ge31euXLiicykZUVmaUisGIMCe2+7jB3EppvL654OaFYbFLokwVvDDcWjYsv8tVYyrIU3znDvtfJk9EteODxG3Wo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647487; c=relaxed/simple; bh=Padqu+PvS9ADlI3cueabj4f23ybpQ0vF53i2fpuD/lw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hdq4tJ4oCn+B3OcER3snfpm1jKpaUCZkuzjmb/ZQkiNjM9zl4O5vpAbWKwYXrQp6bv94Sf+NgYt4939vC3MjtnMpOEYXmB2DFsUfFjCUI0f9vAd8PjdIfs0+UOPLnI2FRi7MZst4fG+lCUmSU3PJnuvjppatkvbuE/7tdx4c3F0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=UPeSScBH; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KzWKkZE0; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="UPeSScBH"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KzWKkZE0" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 624CIfrl152532 for ; Wed, 4 Mar 2026 18:04:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= kTTNZDsVcxtX1XnLnS05CMFNUc+dltAX8MCcE9nX8jo=; b=UPeSScBH9jwnA4bR Ni03xOurnQYCwd56akYIQPKVvob6IqeVx8eE7xEnfrYQ9ACfVbgbXbLd+7mqoX9D p7b5GBqXXg/D0x8ZL3xkLi90jOTXARtsOvqzP/hM0JANggQ2Ue1sdtrNR4KLOE8n MH7WgUCGJ3FvZbo92NFsd0Bb5s5URXXzTGQcqmVgLuAyPgWWKZSXABzKvaT9y6bT H3AH/uk3IqKd64UgqzZ2V3RRdFW7iwd5hRwK3WL35WYN8noduI/AYJsv3zq0JKZK qH0eypK4kOS7H692C8CmJ13WnwN0/KwfiZh02Z5bwx0yRjceeiayUAjoXj9JZSxh 4UdWog== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cp3tvmpv5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 18:04:44 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3598c05c806so3517171a91.0 for ; Wed, 04 Mar 2026 10:04:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772647484; x=1773252284; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=kTTNZDsVcxtX1XnLnS05CMFNUc+dltAX8MCcE9nX8jo=; b=KzWKkZE04FedBPHi+DVxpn6kIMbC/WK2I0CWX9DWESrvFJ+10ZbhgbORa9x+pBiTNp nzvMNJKQh95Yb94kqM3VViZi0iPrNnUnQVHJ27D5ZF7+ekXbUmr9WjvVzjE/m6jgeTPJ LEREbD+vnoXUSnjlcwApI/vVsvExZ95rpxNcOE72IabzLoTy5vfBeaAw54l+C2utVOJ0 SkAXaAEQVOS7uXsmX0T5SM4g1Ou7aXWum5/+stw+jw4oi5Slv6SXfzCmyt3QPMMyLLwA hv7AXY/6YOc68hNOGd2Xd7qMHGajObl09bBxqc3z/hc4psNfxf/++E0VOGNGYyxpLZKj hYtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772647484; x=1773252284; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=kTTNZDsVcxtX1XnLnS05CMFNUc+dltAX8MCcE9nX8jo=; b=HgpC3XZgKku3astkuzKgRIWrZKWjRCyWByNVJCQgrBX0dSODwxfdpiuNklQkDQMOaV yHhegMtaq4bF2ge+zYvUVrDgGnVjbY0xvemL6zQsphoCHBqUMVKxCDDYKzhAptqJnr3H fYXYvsJ5osYRhajiqLojPAE2eq9XrntN5EAcljRZhq6dXohmHIPZ/HzEqoU0o+nFSgZP U43r6RRZhBVTnwUol4QmbUoRIofMTH/NbGKa8r83mNGZuPKL9l7db7Oq2U7pReD91/wN hCB03ykEg+RYVkVdhWrBVctTgzSdZZK4Trs3qH6Udy99U5oKy39Ad7+YYHb1YFbrSvhy uFsg== X-Forwarded-Encrypted: i=1; AJvYcCXX0z9rzqceHuBXoPtMOcwKp2HiyUpqHjiQpFfJLyKSxGomkyZmJXOshaKyYZRPp1CPMQq2M/DbYF1+Voo=@vger.kernel.org X-Gm-Message-State: AOJu0YzQYo71dq+x4Xzv+v3Fr3wdqoUiww1zXSoaC/x05y9gum5fBKbh GNr6BGq1MR/52+mQBJLzXc1AeehUEl+hdTtQM6BSBhJoxSMYGmGbAPS6AYIu9ceV3yrD6RHzYDG d9ztjM8wJe3M0pugTuGykTqkqhetBi/QY5CngchE8v60j9NcEMjXrEDoC2/Es648Cpvs= X-Gm-Gg: ATEYQzw1sKdlVMe4yLDFzMUwEXy9r0bS0v3xkwqOONv7YTttaswFx62tYVaGnLXIb7d EG26dRAgm4/QHKlkgB9uKpl1UXaz1In8CHRVX+PuI+hbVSJgGVQHUKnE+vbCHNYEBzmeO+Wrwna vxm8XT2WWc2caLjrgHY6wH0KriIiOV5Fis0WcYHj9V0Y1i+fKcvR/XTzF1WwtslbfxjirTce1Nl ILKRKqauIqPdzKvmh4P685khh1vUcm9SN21HwjJBClonJubMGyL28yo5hEtdOSfL3K7md7uf63j yudyA/jHWz0XwU6wDVOiphD34aiSd0/NoztphSeF+yAIY7I1Gwh/HelD8TJD70gMwttkMpnmMgj Cgz4LVuCjBik5jGLW2D3ow+i2NKqtiAypRjbNKDoKVFemWB0SD2KAFeDILA== X-Received: by 2002:a17:90b:1d51:b0:359:8d2e:6f79 with SMTP id 98e67ed59e1d1-359a69e4ceamr2610468a91.14.1772647483925; Wed, 04 Mar 2026 10:04:43 -0800 (PST) X-Received: by 2002:a17:90b:1d51:b0:359:8d2e:6f79 with SMTP id 98e67ed59e1d1-359a69e4ceamr2610419a91.14.1772647483396; Wed, 04 Mar 2026 10:04:43 -0800 (PST) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359a8f22062sm1080606a91.1.2026.03.04.10.04.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 10:04:42 -0800 (PST) From: Shivendra Pratap Date: Wed, 04 Mar 2026 23:33:09 +0530 Subject: [PATCH v20 09/10] arm64: dts: qcom: monaco: Add psci reboot-modes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-arm-psci-system_reset2-vendor-reboots-v20-9-cf7d346b8372@oss.qualcomm.com> References: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> In-Reply-To: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> To: Lorenzo Pieralisi , Arnd Bergmann , Bjorn Andersson , Sebastian Reichel , Rob Herring , Souvik Chakravarty , Krzysztof Kozlowski , Andy Yan , Matthias Brugger , Mark Rutland , Conor Dooley , Konrad Dybcio , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla Cc: Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Kathiravan Thirumoorthy , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Shivendra Pratap , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772647398; l=1066; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=Padqu+PvS9ADlI3cueabj4f23ybpQ0vF53i2fpuD/lw=; b=qRU8pwtXB6YToHNyc5AW6gfYjLZkEIrjxg1hQxmiDTVXZEto3zgV6elR626vGLihxk595WpII cfyi/8WtGvtA1BOjl70TJ/Ijiozz76laP0WmYq4RdUc2G/RypRpHdNU X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE0NyBTYWx0ZWRfX1O3MTybbF3Ax tA4IwMt/gMBA8mxjvnmWpfLlvbFhiSWzS+k/AlwHdGBAoI++aNhhVnae4Cin74zqqUtlsBG0Bik S3p3ai7aL5mHp9/XFghXeP8rk1mKl+Vcz81jkOzRv/FUzrlX2I0dsoht4UdfyvBdiWfPnfT5hJb Z6tDn67zT+ONA8A4/Foule9V9mJOhskct6aV2101DXylYn/3S9lzMVKYsisYc7i21hk1I4hTcO0 6uTo7VXsEkNzLrYDR6AvawrHF81FHpOUXABg7LQAQyXJ7bKA8ic3G8Eav2uHwQkfEoVHHRydHvK pKxRxaMyusGWXDepUGBXzOw1uKPPN7u8cNZW8JIINQqqmjDXO3T8KD7qlO9knaH7VhK0uWWrpwk xaeqNAkgbQaLJFnXJd9EyF/thGBQdSHhadUBd9not9VKPpWWtzfLqmcVhipR7uscIt+m3MqR1yN zaBb3oCbctrUD5REBlw== X-Authority-Analysis: v=2.4 cv=VYv6/Vp9 c=1 sm=1 tr=0 ts=69a8743c cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=_PJuSq69R3b4qrRYkJAA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-GUID: UbEeSCcNcvJceu0AWqILPMoifRsJ3qlU X-Proofpoint-ORIG-GUID: UbEeSCcNcvJceu0AWqILPMoifRsJ3qlU X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_07,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040147 Add PSCI SYSTEM_RESET2 reboot-modes for monaco based boards, for use by the psci_reboot_mode driver. The following modes are defined: - bootloader: reboot into fastboot mode for fastboot flashing. - edl: reboot into emergency download mode for image loading via the Firehose protocol. Support for these modes is firmware dependent. Signed-off-by: Shivendra Pratap Tested-by: Pankaj Patil --- arch/arm64/boot/dts/qcom/monaco.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qco= m/monaco.dtsi index 5d2df4305d1c1c450c7be53614da9d8c08123e66..a3542a300a27715eecc46da9b2a= 82ac7e76e6232 100644 --- a/arch/arm64/boot/dts/qcom/monaco.dtsi +++ b/arch/arm64/boot/dts/qcom/monaco.dtsi @@ -740,6 +740,11 @@ system_pd: power-domain-system { #power-domain-cells =3D <0>; domain-idle-states =3D <&system_sleep>; }; + + reboot-mode { + mode-bootloader =3D <0x80010001 0x2>; + mode-edl =3D <0x80000000 0x1>; + }; }; =20 reserved-memory { --=20 2.34.1 From nobody Fri Apr 10 01:03:34 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 ACC7E3E717E for ; Wed, 4 Mar 2026 18:04:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647495; cv=none; b=sJ/Zk3A8EkY0k+i8gd+96zlwpoIClSsEvaHs7zT8R0bFZEsyn/RXVqalc0rLPw883aGL/yXXORx6g+D66wFnwFoRiv1UJTLPGLb0Q+wQ9fq/78oo2l/mduj8jb0MfIhK90dHNS2azqHbIaimQIFNvqsTn4B0QyHOloYT3wI92o0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772647495; c=relaxed/simple; bh=3KcpMftv/JE0g+EzWaIo/3jzOWEmXkeaFO3VA+Q+II8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=C/oFHXr+VVDBD6vyGkY9etdWgpP0kBWN6MDKXYeHgDLfU2/btZkpeo5zk6wk/3i7Awk65IuoTw5QPOj9XNckUgajYnyN3JhLFYApUHUK2/lY4WCuOjZHOaZ5VmZTwZaVLB83zd5AAw0mcByD1nfiM494gcyNqDU/I8fHGqdRoRE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=eSkmZLD1; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CiDCp8ZH; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="eSkmZLD1"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CiDCp8ZH" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 624I4M2G1213650 for ; Wed, 4 Mar 2026 18:04:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= dkAGVLxymyDw3qYaLpCIZMTPmgwUM2iPvtUgmWLOhvU=; b=eSkmZLD1PtTRYS8D FUwM6t5pTV07XIo7u4bKENCGovjEdmuCLAzKmK7LIJie4U09aqW9EoGh3ZskVsIK 0uZinK31+L5YfVD7J0hEbm/PZb0DyPAhDL2Bi7hiwtKDL/y0Kjru6ZrwUxKN6+oM bZxnFaT3HWV/ZJoSFm/5ln5RIw5/2r+I7R5HypIPpTVnPmA71bOXhoJuhdmMepdt 7KyCXMNIVBaMIG4JFJpT3w8dQQroOn89099M2xuXntr2lDsk2is4ftVz/kBr7/2I m5GUeBrV28LLz/ODL9Sfi5WlQYrw5GJPbMc0EpquLETmg5/z1NUmjDFeoKwn8vg+ IO1GfQ== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cpjh5sgh9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 18:04:53 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-3598f4fbb13so3356576a91.2 for ; Wed, 04 Mar 2026 10:04:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772647492; x=1773252292; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=dkAGVLxymyDw3qYaLpCIZMTPmgwUM2iPvtUgmWLOhvU=; b=CiDCp8ZH5shXR+4o0yeMV4eoyk5wePzLPAx/s2OYyWe+zcH0np1Gm1qzggnYlsVDpW S2Se+X5QZSKRHB5ht9Wqf8QmKxsBoCe5F5PNqevZZX7TF6f51RJOlOsspjpEz5DpnrC6 4gNoCL45w8JKn4XleKODoxtrMhA8kY9OcOoKqCunTS/4idR2n0uQcrKwbo5s0yM6ckLP +qcu/DEDsSnWWaaKdYqWGxV8dk/eW3s3ZDUqP/YyDwT3eZMZWxp1jjAkopPXvJVh+M7D 86q8giKQE2PFv/I+I3txv7WG2WkLZHfZ2wF9yYO2RZuMEz4N6rgk0CnvbINQsoHMBRS6 F/lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772647492; x=1773252292; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=dkAGVLxymyDw3qYaLpCIZMTPmgwUM2iPvtUgmWLOhvU=; b=cJCCPeyCdX2Znx18byToNsyWG9z9kcjQksfoMpuVRr3Xe1R1v7v3VD2KfuxSYhRAcs GBNxEkUcpAkW2vaEdt73NZQWLRzCMh8h85C9AnDOVm4VWn/T9qPtN2Btq6DLxfhE13Kc TbqtSJMf5JzBDY78s/1MIgQwX+sV+JrEOmhJkpFQuArMYs7Pz/+e/ePC0iiR3df2XnuG Eyrbkxk8cji/FbQKRtxRrFlj2oYp9B/GeWxTRphHymstgJC6aN2e2XHmmnMJZOLHxzCa yjRK6TczfkuJOn9Z4D5QmqDVu8AtoLeG8F8CNRFX3R/SkYUEGrWFVMWD8PWGUOKG/ugj tN/A== X-Forwarded-Encrypted: i=1; AJvYcCVX3FRZG+s5U1zSI/H/vlebtH/yMIYdg6kAL8CPd2aofH17mdxOPzXDYLCxod/IgM2Vg67FGJEmbK1p8YA=@vger.kernel.org X-Gm-Message-State: AOJu0Ywa/H9/s3cy3364ETerRJqkG9KMtYkWCs2vA3990ZQj+py2tPF8 HI0LeD52Lv3xghgMj4mxFEgBC0ABOdtPM6DuVfwLFl3OHTTXtw/LCOr00wlEWjcKfAYAo3kd3f5 0PTtJozumgJ+e0MGjmJbcimhi68VAphmk86ZCktiAmmRLmOKNkIuIL3dk7Rv9AK87ygE= X-Gm-Gg: ATEYQzxHMGrClNCueOxBzLtXbjEfXmufVmWxsvBJ8V3ZXdV0Djw414ja3JvACtwuRAd VjXigr4/cfPNI+gfOJm24M+zd4GkMMeHNijDCCNNFrpJ4FLScm9f5HaL59n3JcxGyLyI+FL68V6 1Q/wBR/IUMLVLv2yTnsG/abbaIAV5snOTd65Rvl+FPOSCV4uw48y0IxZjppffLcIVRRA5HORoCB SFJkUiP0R/cxSDkA63+CDCayhpk9vLZw7i2NojRKhp0JqnIoHq/yQhoVnXj8NLLvWbH1lgekb88 hAcB8dXm0nPPu2eepK8QJZh3Kb4R6FqA8LuOeAdMeUR89IWvOCMvwfzTjOEcmmUp41Ky5xASVQ+ /Rps9Z0xRPZDNI5eu9xouXj08ZNste/R2OZTz6XD3x6c4H8FeuTWos52Nmg== X-Received: by 2002:a17:90b:3910:b0:359:97d3:5c5b with SMTP id 98e67ed59e1d1-359a6a4a348mr2127985a91.20.1772647492460; Wed, 04 Mar 2026 10:04:52 -0800 (PST) X-Received: by 2002:a17:90b:3910:b0:359:97d3:5c5b with SMTP id 98e67ed59e1d1-359a6a4a348mr2127967a91.20.1772647491976; Wed, 04 Mar 2026 10:04:51 -0800 (PST) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359a8f22062sm1080606a91.1.2026.03.04.10.04.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 10:04:51 -0800 (PST) From: Shivendra Pratap Date: Wed, 04 Mar 2026 23:33:10 +0530 Subject: [PATCH v20 10/10] arm64: dts: qcom: talos: Add psci reboot-modes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-arm-psci-system_reset2-vendor-reboots-v20-10-cf7d346b8372@oss.qualcomm.com> References: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> In-Reply-To: <20260304-arm-psci-system_reset2-vendor-reboots-v20-0-cf7d346b8372@oss.qualcomm.com> To: Lorenzo Pieralisi , Arnd Bergmann , Bjorn Andersson , Sebastian Reichel , Rob Herring , Souvik Chakravarty , Krzysztof Kozlowski , Andy Yan , Matthias Brugger , Mark Rutland , Conor Dooley , Konrad Dybcio , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla Cc: Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Kathiravan Thirumoorthy , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Shivendra Pratap , Srinivas Kandagatla , Song Xue X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772647398; l=1101; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=3KcpMftv/JE0g+EzWaIo/3jzOWEmXkeaFO3VA+Q+II8=; b=cUCn5OWA7AvhELGq4rqhhkW6m6l8Vo0pmb3w38wCUmkbw5BJmSxyims7SLPYd4bnB05+gyiSD QNYkDzzoUC5C0bIcNG1ei8wkNS/WpiXw/SJz+yWy24dY5ssr4vbXUgq X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: 4vGyh9ehglfVuDXiPh6a0LPQdwXNpE7n X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE0NyBTYWx0ZWRfX61iY6sqOWu7p fPFaS/3lBHpyMFgmnn9DEJnSFE0nbVfFG4mZagSbQXZT3J2N5W6kv9qyeTuEHhoK2UzWTI+o0wL NqkSlskXHYJ/zG2UreJJ6aLcA8Nne9LHi/0tiKhdedVV+0zdZIfvkawhLOvysBatqjkGeG15Ui4 Ks7Io0d3tc9axD6k1rZaRAh4XyrtEHZJ/CmvKILfZ8nDnj35KpdK9daP+Wi01gwd8O7Tymmoqru 5LMJvEhDj9egTZl0wHY6rOWqTQX4dwmGo7PPfvq15iqFRyOoKOfA6pribVSMTYlm4JDTJKxZJIR XQw694vb3hGYSwmBK6wdwkkB3clHeFzl1gYqvm3qQZlJy9cMQPScFiEfVfExJJ+uVOa2gvn7G50 8F0pW8Ki7xEKfelyekElagrQ49dvhYfzQ6D4VxOF5jQpmn4VvniuJ3dq18Hpj9Pee0xF/YvQx1b UzZnQh3u6oe8P5JKxVQ== X-Authority-Analysis: v=2.4 cv=JK82csKb c=1 sm=1 tr=0 ts=69a87445 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=4cuBwC7xTQKafrdxVH8A:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 4vGyh9ehglfVuDXiPh6a0LPQdwXNpE7n X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_07,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040147 Add PSCI SYSTEM_RESET2 reboot-modes for talos based boards, for use by the psci_reboot_mode driver. The following modes are defined: - bootloader: reboot into fastboot mode for fastboot flashing. - edl: reboot into emergency download mode for image loading via the Firehose protocol. Support for these modes is firmware dependent. Signed-off-by: Song Xue Signed-off-by: Shivendra Pratap Tested-by: Pankaj Patil --- arch/arm64/boot/dts/qcom/talos.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom= /talos.dtsi index 75716b4a58d6d331337f8a4f3f41f62a45416ec9..4e12d19e282f81b7e18ecb2868b= 8fd9fe3975651 100644 --- a/arch/arm64/boot/dts/qcom/talos.dtsi +++ b/arch/arm64/boot/dts/qcom/talos.dtsi @@ -617,6 +617,11 @@ cluster_pd: power-domain-cluster { &cluster_sleep_1 &cluster_sleep_2>; }; + + reboot-mode { + mode-bootloader =3D <0x80010001 0x2>; + mode-edl =3D <0x80000000 0x1>; + }; }; =20 reserved-memory { --=20 2.34.1