From nobody Wed Jun 17 06:29:43 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 C07B73E5581 for ; Mon, 27 Apr 2026 17:35:25 +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=1777311327; cv=none; b=Fgq7jf4xYMfnNIW2x2UFnpezhYNPoMqFV3g4Vu7yOwY/kxGmYjD+hzOwJL2EJGBCBQm52e8bMIX4yyI/tvxYcTjnn68e7z2yBB1Zpeko8T1NyZ0Xof6o8RFGXAW5PWmqcZuN5ZF1Chps6B1MkKhp6CWL55UjHoGcsObjn4Mt3XU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311327; c=relaxed/simple; bh=3TYOHMcToCIVpsVU2Bo6DmB6sqgmdebWzZn/F1m0e+g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=i5j2BWOwTzoXLlr3z89HVdl2gUIB1ozOBY4RI0e4Lk4qvqA6UnszQ3hVAW3kHVbypvXcu0bjoieZwXScq1xmH8pQ30aAbYriEPF0Y5FqQhcEHB4I5npjc8tkCBqFg/kvnuDV9WTA/cnOnsbCGhTBY4UWxBjE56+eDcuK7OwRbGg= 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=lRZIIfxy; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=C7dOqJs3; 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="lRZIIfxy"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="C7dOqJs3" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63RDte8k241140 for ; Mon, 27 Apr 2026 17:35:24 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= yLDNWZoJ4xbnRu6GNfsuL+e+3Ruoq1OnR+K2jzbSWN8=; b=lRZIIfxyLmSdHEI1 2wK9QYlFisa7A3/TZfGTApXbHOkOhRixgMzzkZh0Xm2+PiAepXQeodVY/tFdNGyv 7ll2LzC/ts5bywDNMKoUoYUWqjZYM2sBaXVxodQORlohMBntTinYX3OGr7W6thoW fd2Tag0MhgAJmHZa+R3MlEdBZHHpQ4yyDoPXzImzCeplEfE9JT94AQuoaGg40jji 3lMrkzm8BdsNhzyymzjBZCTQKE0u9pDjG5ZrwUU/8B3UDUczpEDxkmFqbRiLElEt Qs701sG670k2PFWgODLGAbzf/6coazRSyiBv4s3Q4aSs0lxiguBLaT3xyWvhQz2M Es8/cQ== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt946ruem-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:35:24 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b4654f9bb6so109425215ad.2 for ; Mon, 27 Apr 2026 10:35:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311323; x=1777916123; 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=yLDNWZoJ4xbnRu6GNfsuL+e+3Ruoq1OnR+K2jzbSWN8=; b=C7dOqJs3MkupgcmVrueCVsljEY4p/sL+3qgKvYCiWIhbX09lNr9DzTyrFzDA8s4//y uI4tVRYdzpfktoMQfR8M2nz+0dROL/AHr0KZilBxyycJgNAzOke1XlI+XlnDPlZ7wOwy 4BTLNp8wpvE9k1bwmTQqmVBm4lvQ2w9rZ+qRqVgaMdaRheOGDW02ApcE6j7D4I6wn5u+ 8De3QBH3l5IQHXKoCTSZPkpz6I6KoPTAtbJzjbD09HgTeoijzewammHJi2ELEAaOBpfu lazX71ybw/RFyrUSEXo1Q5PVOXy1z5rSYrklc085nR7XuvbWZj1y9Wpwgi2TP/TRq7zr xsMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311323; x=1777916123; 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=yLDNWZoJ4xbnRu6GNfsuL+e+3Ruoq1OnR+K2jzbSWN8=; b=I28klWO+healTy9t7YrN0LSQLv3hQ1TSLf3OpObBmsK11fI1XrnztSHLy+v73zBxT/ Nz9KHg2+RzshK1R8cMhwVwUt35Za1mdNWrFZ15Fa5iJKiwRVN1/zArD1FMh40IWm5jXK w6Zncg/g4bpz1QGggK4IAibyA/0Oka0O8qqTOrUWmiTjf4PArHoMPkFzdg86+WZqmwm7 lGel9Zi30K5k9UORaRvoOUSyExqs6QqcoPqyio9hGVvOcwKdbMsHdxq+PqUMTe5rBVRZ iAMV0RjtdM3MGXL9T3TeWs+tvNOAjmxRnSwF6stLGHkwnC/EJ7X9lcX0wtQmTuOHSBnm LVdw== X-Forwarded-Encrypted: i=1; AFNElJ98+yo2+iFHg6Lv3fNCyYX5WC339tFK/Gp77ws+QMHDIeXuyq0iJW8l6Wp1PIqAkhiY93DcFr8M74ANyIE=@vger.kernel.org X-Gm-Message-State: AOJu0YymZYnaERUhxAsGx6PfAY6G+Eh3yJKaLep1YWySxomp9V9yMWdB B6CQZhkTw2VzoJAKmtXdpYoMENP8mF3XkKwc1zq8XyE4UtfKg66B9lBXkn5RwigGHbdpxzEHera 1L/J28UcyojXCL/gvTqfelLIe9gaEWgYNzZL1jBn4jNUtabl96XKgmoRDrS7DF5qwXIg= X-Gm-Gg: AeBDiev3QdEuA/3A2WAOyknP3n01GsCk8tC2ZerWrcS+L+QHlCa2PtlhHU8rUqgFRK7 a7jMpShTTT1hsAn/BACtiY5V3c1dDuJAD0XpP8ftdy+oK5mfu2AyO9cMMca58JvLzx3cK8gItOJ 3TZ0S5bRP50NdGt5D4vyJ0gRkcld4Ltqm78HN/AXD9JrUEkVtfWvCN4pIw7KKSlg2Iu1CvgRPOO Gadkur4X3k+kZZAkogueBCovipVC8sFe2O+ahNuu10LtgaKeXkLSSFkQpNt6VzskzCK5uYnk8Z2 ja3zNIoyoF9I9j4v+WltpAeSnG3r+a6/ukQT3SCsZqzBP/MAD0oUYtsi9hfz5VdFyZCf5/P5fcw SxuZiXETW7gvGnelImufF1wyrdjO0A7tyDweah5WJ18JLZ/6czkEvOtstBZzJBDK1guBT X-Received: by 2002:a17:902:ab8b:b0:2b0:7e4d:f43f with SMTP id d9443c01a7336-2b97a97167bmr1109955ad.41.1777311323436; Mon, 27 Apr 2026 10:35:23 -0700 (PDT) X-Received: by 2002:a17:902:ab8b:b0:2b0:7e4d:f43f with SMTP id d9443c01a7336-2b97a97167bmr1109465ad.41.1777311322756; Mon, 27 Apr 2026 10:35:22 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.35.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:35:22 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:41 +0530 Subject: [PATCH v21 01/13] 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-1-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla , Sebastian Reichel , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=4001; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=3TYOHMcToCIVpsVU2Bo6DmB6sqgmdebWzZn/F1m0e+g=; b=32A+1VzoGWg9FSbHynSX81qbLupW/hUgrYzIQsaZuSIHuB+n0hQE8ta4k5laVXIaKpofnQnvs +fICXcpyJbnAy+fAxeBYskqTifNlGwo64pkQbTOArzTafR9aiuPkzPz X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Authority-Analysis: v=2.4 cv=YcWNIQRf c=1 sm=1 tr=0 ts=69ef9e5c cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=QX4gbG5DAAAA:8 a=EUspDBNiAAAA:8 a=QIdouwm7mKRySFGJXRQA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=AbAUZ8qAyYyZVLSsDulk:22 X-Proofpoint-GUID: mt06ndDR6ZTr4Svi9JRz0-Zpqb3_T1y3 X-Proofpoint-ORIG-GUID: mt06ndDR6ZTr4Svi9JRz0-Zpqb3_T1y3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NSBTYWx0ZWRfX8wdS54rMdy/w 0C1UiEdoT+M1PFxEhBuj+f2P4xIjBL6tl+gluhJwAPQZRklcoC4QhgpK4O2XK17N1uem533HPOq SmDckGdQpYlclXUBvEaDNNO32B9kOfv774C3B00wsw4fFsmdsXT2vvSL1uJrhCVlVNw5IJ7vXYn 5hZ1HBtSUqT4HGhHnGXJn+9ubIZYtjxLBMexKWxbnxt9XPIJJEY9Lvp+6bj3sZGoQ8ADLgbO6a5 FH6D/0BBlh07RWvGU5UvqBzrS79/amExwQ9Qx8cIqMBaYH7Su5wF7zyMsyAVOdCO1B4+vZ/8PGs LWL+d/9LNgrtwM9RVsc3M28n1nF6ueHMi8eF5FW0JwXLhMiOzqb8lU6ZIfRReaHxmrQ9pBMhLTq adio4wKaUPwmLpqwjvqvTyt4+O9OR7A79lsH2HL5Ghjhib4HJ7dzbK7jAnK/8nksY0DJF3xxS2T KI9WNR2Yt5DvLjz6tGg== 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 spamscore=0 malwarescore=0 adultscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270185 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. Reviewed-by: Sebastian Reichel Reviewed-by: Bartosz Golaszewski Signed-off-by: Shivendra Pratap --- drivers/power/reset/reboot-mode.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/drivers/power/reset/reboot-mode.c b/drivers/power/reset/reboot= -mode.c index d20e44db053256d87ad8034ddab233e49d36072d..7a74f72a8313b73c3e0930a426e= bcf7ef6eed99b 100644 --- a/drivers/power/reset/reboot-mode.c +++ b/drivers/power/reset/reboot-mode.c @@ -3,6 +3,8 @@ * Copyright (c) 2016, Fuzhou Rockchip Electronics Co., Ltd */ =20 +#define pr_fmt(fmt) "reboot-mode: " fmt + #include #include #include @@ -10,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -168,10 +171,11 @@ static int reboot_mode_create_device(struct reboot_mo= de_driver *reboot) */ int reboot_mode_register(struct reboot_mode_driver *reboot) { - struct mode_info *info; + struct mode_info *info =3D NULL; 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); @@ -180,19 +184,18 @@ int reboot_mode_register(struct reboot_mode_driver *r= eboot) 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; @@ -200,12 +203,12 @@ int reboot_mode_register(struct reboot_mode_driver *r= eboot) } 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 list_add_tail(&info->list, &reboot->head); + info =3D NULL; } =20 reboot->reboot_notifier.notifier_call =3D reboot_mode_notify; @@ -218,6 +221,7 @@ int reboot_mode_register(struct reboot_mode_driver *reb= oot) return 0; =20 error: + kfree(info); reboot_mode_unregister(reboot); return ret; } @@ -261,12 +265,16 @@ static inline void reboot_mode_unregister_device(stru= ct reboot_mode_driver *rebo int reboot_mode_unregister(struct reboot_mode_driver *reboot) { struct mode_info *info; + struct mode_info *next; =20 unregister_reboot_notifier(&reboot->reboot_notifier); reboot_mode_unregister_device(reboot); =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 Wed Jun 17 06:29:43 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 0DF143E5578 for ; Mon, 27 Apr 2026 17:35:35 +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=1777311338; cv=none; b=BNeY7m6cGD4KCedToeXq+/KToBJ4xFEN4bvy/mm3bqgKlpl38eI9U9Owa7Cv5YMWU7kzCrvof13B7stQfA0kMfGCsmCPPZlHDJePO0LCMm6SR/9cmbOHUdfvcaIDTwFQrH/EigwazzAfpUsttQITuC68q/Wc+DTcZKFmZJBBMB0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311338; c=relaxed/simple; bh=epX38EKVbjs0anz2F6GQvKIGua6Av+7y1nPKAGgUGPE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZZhii9wYcWPhNRzCm6jqqIGhraMLG4HxnxIVzfJBK7KFuXvGw6/m+U1pY243KMpf4qzE9oJWsTsFgjtRn487EnjeLzR+k6C4AWfkkuVcMF0Uq5n+lnrIuhShtj3rmToQOsEH/tfnKIzhN2DdH7NmTLlCDQ3blhP0QJ3olHMX8Lk= 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=iv3tv+Br; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=I7hqNLhS; 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="iv3tv+Br"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="I7hqNLhS" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63RC5iu12006325 for ; Mon, 27 Apr 2026 17:35:35 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= yXsc+PIueYPSfML692Lroz6KSkf+okTIEVnmlIfO9iU=; b=iv3tv+BrP5qbp4hs Qqa2XXX9roh7EqIO5ex+vUtClHplWuGgIWAjnyz/kA5q3VhQnGGdZtePOGt+28KN q4+ivdTNT4jdK+hKf+bYdzebm+JEYqiBOA/Wx1w/RJLwc/rVjssI7bdk4vXT/ttY 6OtPpwQSvqPQaaHWHilgeZ+N44J3Fa3qhQdmNy9JYSMA5A9stdc+vkkHYlnXB43h s2kNfAgRiJNVU+0NqKDMSpqOIz65zYTRiNOZux9ct7jYqOXGh/8rA33pGcTEP/8J ItZrggqptNUTmz9TQ+H7M1yYfolYt1951GO//AhwDXuIRFWRxDCWh37Er+NPeHsP SFlF+g== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt7gkh88d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:35:34 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2b465bf993cso107394105ad.1 for ; Mon, 27 Apr 2026 10:35:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311334; x=1777916134; 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=yXsc+PIueYPSfML692Lroz6KSkf+okTIEVnmlIfO9iU=; b=I7hqNLhSKzQKMZ3b0VwFEy5UMbrZanQtE+T1wnAnM6wrIa3SLm/wnw4hmGL3Hlr4R4 Gbm/yXi2xGfa5sV3iKgRErSqvMVOlFxqwzIGyjGOJpHXWm1io8ylPiCZlvbQST9t7LBS IpQN7RwCC+2AE9JMSKrGOI8SUTVB52nWfBs9b6tp9S8W3tSpsFNXvE9UUNxXFLTIIang K1C9nLDJfvdYc4mQwLzxSL9has41RhAig4Ys1cMvEVuiuuaMndtiP4t9guQiAe+v+rSY oDDJFaMtB7ah0s43Bp6UJgUClKUHrzxyyGTNJK584G0sPh7w6XaJm4RxRp2g3PBhOR9w KsPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311334; x=1777916134; 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=yXsc+PIueYPSfML692Lroz6KSkf+okTIEVnmlIfO9iU=; b=JcxjjrLTJP0/fdrUHag3S7i/739bEgbQcr9PgjrOfzPLZSlcrEQVbcTyI4jwEmC+mE rLN/8/CBVo5/G0tqX88/S4jgS1S7jdXCUTUcQcnWUwDs6/hGTp5sYlLAkUGECHDG0V+l qjstiIOGJBXDDMiK+K/mygNkm1XluN8cj1Igoolt9oJ5sJyu7wNUuwk8HhHUyDDmdxF8 fkbjyNGxuyusQLzlRVD2Z1tTRUMHo6+s1LH9qcWPaorHcFmFL0S8bYrJ8SVuhlWRppgy NWfb2Axx1onMPIaQ34N57c+8DPiR02o+Pe/ASvj03h5/gYGYi6mBgRTbroO6TMhDTAr9 UPzw== X-Forwarded-Encrypted: i=1; AFNElJ8sfIly1DSr0rU38P/RPypWd7zdZ2MN/G/GiUAIBut+C26kPv1oXVeOb0obXW0xmWxq6F9DyepRwb0y9Qo=@vger.kernel.org X-Gm-Message-State: AOJu0YzOMIfBTmCmEzobet0IS+OEuE5LGU5u697rnOUc8sSHzZfMNjBG /Uy5RypwZZTZ2UaitXeGbzMQkIc3Dc0x6fchtIArRvxxkXtj+5n08BL1z/FphE5OlyS1sH0ouVC 6M951W6gNiwcMoyORPzzSH6DM6bgSgdjYEBP5mQDG48BT4Hlbf+Us+tSlMXDtze2xq4Q= X-Gm-Gg: AeBDieuDDrI5TnWWST2lToPow9JJeabnIrcbGJ6iikp7x8qZmvUFOEYJcu/Nhp2pihA WxKLtBNjEvzlen6yuUyffge9Tm3srBpDWXRuPkkGNhPwSiXxpKAc5Iy6RZGps5zjsFlGDpEfivx pwPl2KeHse9hkpQlVGxg7G3ineOVxa35KnpStAw+tusCR9KPjdkvZ37E17wRA9E6uGXgqEboVgB PN4psPHYZtc4jAOeTlbdR1lqG3VtoKboblsH3Tx4oS52ncTZD99XfMFLO17Nb+SMD9n+8SUN//K OwKnb02mcTcJlKfvcoTnlAfsHcZvPZgtlB20oexQlcZRasTX1Z+1Vx2QWN2yiE9BEBQseBs2ZW7 2vKuI1S4t6uswKRrc4Ih7oGau1cFC6aNc1lujePMfmHseS1RE0L8UnV02UUQ5CQZlSUjJ X-Received: by 2002:a17:902:bd0a:b0:2b2:45b7:307f with SMTP id d9443c01a7336-2b97a9022f9mr1214445ad.9.1777311333756; Mon, 27 Apr 2026 10:35:33 -0700 (PDT) X-Received: by 2002:a17:902:bd0a:b0:2b2:45b7:307f with SMTP id d9443c01a7336-2b97a9022f9mr1213985ad.9.1777311333091; Mon, 27 Apr 2026 10:35:33 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.35.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:35:32 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:42 +0530 Subject: [PATCH v21 02/13] 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-2-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla , Sebastian Reichel X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=7590; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=epX38EKVbjs0anz2F6GQvKIGua6Av+7y1nPKAGgUGPE=; b=m5ZOeq6F78Xee5gkp4Cbx0Si2fuqN+exU1DnHk2VezQF9JDzcilSqh69m+FFLnMef6bdtd+03 6K4VTfsER0PAkXLYFc5J8pgS1uhAuoKWV1djCl0OHiDSFc3B3oCvTSI X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: bBVVwE2m1aa__L5_b_3KAtOf_BXuP06M X-Proofpoint-ORIG-GUID: bBVVwE2m1aa__L5_b_3KAtOf_BXuP06M X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NiBTYWx0ZWRfX6DFA40+sAg0H s4FomRZwoGOVUO8ZxNhaQ0aBSysd7VPfKxwTRJr35JQB0EwRomXc28rrIQ8zYnAH3sud9Al18hv goUy/cr5QS0y8lRyWPoNiSwqgpOZ27Jx9n5qJT+3sgzBzhzM9SAncHPvlwxGokO+AJvV3ZESW4p XASjIZAzOksFQau+zuUFJmPxF5TEGXh3v6loSTKBJCqfpATss0ojq4kvrb1BE2RyifALlYArG8M oKnHZP5ptIRgNiZuXvUZORdgR/VIQBz/PAKg/bixZOFI+ZUkurz6vMQKxaYXN0SuJKZK6DpxOfJ rxXPxGNStUDn+oUD8xkvSbg3oh15pA6EwZnb0UPIXELtJDoyCOfLlV1hedfr3kJpekAsvEEo0XR O52bk+iOw4Zp5MvOse+lmLp7ANy+X23b5MsXCtTZhUh37WpZcWgfaRPgLDPSPAX6lWehPuG3WHr GSOAN4avkayAvwY4GIw== X-Authority-Analysis: v=2.4 cv=bJsm5v+Z c=1 sm=1 tr=0 ts=69ef9e66 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=QX4gbG5DAAAA:8 a=EUspDBNiAAAA:8 a=MO_J9Aa4ypbE8kPWTcIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=AbAUZ8qAyYyZVLSsDulk:22 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270186 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. Reviewed-by: Sebastian Reichel Signed-off-by: Shivendra Pratap Reviewed-by: Bartosz Golaszewski --- drivers/power/reset/nvmem-reboot-mode.c | 8 ++++---- drivers/power/reset/qcom-pon.c | 6 +++--- drivers/power/reset/reboot-mode.c | 19 ++++++++++++------- drivers/power/reset/syscon-reboot-mode.c | 6 +++--- include/linux/reboot-mode.h | 15 ++++++++++++++- 5 files changed, 36 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 7a74f72a8313b73c3e0930a426ebcf7ef6eed99b..f1372dc700e48043320812c3d36= 19ab1539e1854 100644 --- a/drivers/power/reset/reboot-mode.c +++ b/drivers/power/reset/reboot-mode.c @@ -22,7 +22,7 @@ =20 struct mode_info { const char *mode; - u32 magic; + u64 magic; struct list_head list; }; =20 @@ -74,8 +74,7 @@ static const struct class reboot_mode_class =3D { .dev_groups =3D reboot_mode_groups, }; =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; @@ -107,7 +106,7 @@ static int reboot_mode_notify(struct notifier_block *th= is, 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); @@ -175,16 +174,22 @@ int reboot_mode_register(struct reboot_mode_driver *r= eboot) struct property *prop; struct device_node *np =3D reboot->dev->of_node; size_t len =3D strlen(PREFIX); - u32 magic; + size_t count; + u32 magic[2]; int ret; =20 INIT_LIST_HEAD(&reboot->head); =20 for_each_property_of_node(np, prop) { + memset(magic, 0, sizeof(magic)); + if (strncmp(prop->name, PREFIX, len)) continue; =20 - if (device_property_read_u32(reboot->dev, prop->name, &magic)) { + 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; } @@ -195,7 +200,7 @@ int reboot_mode_register(struct reboot_mode_driver *reb= oot) 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 Wed Jun 17 06:29:43 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 3294F3E5588 for ; Mon, 27 Apr 2026 17:35:46 +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=1777311350; cv=none; b=oridR4AVz/vbnciNQrCPi0HVZYAuJGYV1DaVASbn5+b4guoKoZJmHC5qbHdC1cJFz1miTM78yfUtnHfySTAQxZ7CGbSkmRUBWzYhpgbjXvlQV1vw+mxvuGsySuvTtkp77cqoLdaT5pEXx2LJAlz07t7S7lKYlhETC38odEF1XAY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311350; c=relaxed/simple; bh=EC3OzX+vlwTXZBvlIcPgyWjHlhMJkLSif/QwxZigrFk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bQ8kkNJe6aXzadPt5dJwNYktAlKuuM+QohmUBwUfRrF6cT8DmWPSJo2HyYcLSjeZwcdhQxgdokHegeUuxp5/aYPTqsjnOdkpJPYGxvVAjWWhMZm1kvCansBvXIAeyY/21ZxHTgamVgfljWgGZm6puWt/GiCVlydSLcK6Avw7hoY= 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=QBKosTeO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Q/Rqkd6o; 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="QBKosTeO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Q/Rqkd6o" 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 63RDxnDJ2913820 for ; Mon, 27 Apr 2026 17:35: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= fxZRWFWfF2A2YEPPEjNfyo8rVBY3ZeJbdzkncV/rJ3s=; b=QBKosTeOF71N9QCt kLy1Efm3v4kFG1+wh8nkNK/kyONRsZ4ZbzHnfXfaLDMkcJKzDiF3b1XvZGzqzs1r 85Zbj1DDir05ZpezCuH5kpZEX18cmOpIwQHSAuzYFX8p4kBVCcy4izHAFjRttx4p OLktxLV0QltuiBGEVbonzR0iTGZk0UsQ122K+7WXxX+n+nGL+qw5c4JdCSFKqzBY m+Kyq+EgrM/7b6GBSXhRBhdOkKs7keHAPP4VQl+rHBhC/baj0vZKK+QpjP/t1Bfy gG4DV4ITl5TpQidR94hNWp87dvZaMvqQD+CA30l4/GfH+W9rE2oQZ0WIMDYVqFOP 0pI4zQ== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt26xjmhc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:35:45 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b2eba42b8dso93498275ad.0 for ; Mon, 27 Apr 2026 10:35:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311344; x=1777916144; 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=fxZRWFWfF2A2YEPPEjNfyo8rVBY3ZeJbdzkncV/rJ3s=; b=Q/Rqkd6oEKSpjtHhzSn2iaLC/Dd+NmWW+ZMEh49W7Xx3yvmRVDSjHuy8KfNZjgVvth YaGv/KmuTh7t7niz+SYFp7JuEtwwttnyC7BeqMiv09KRyKfBekolvYTZn/EoZsFChzQV IIgIncZzHshyav85VfkSLZimFuDQZLQaLuXETvESBAJhBCJl9v+bNjn0lF5ztGeQIODb VbJNIZdhwAOU4caCX6rNYRkJgX1H9k1bRSdyulfnCNBkzP7TfVVoB5tYfox94fc/H3mN VfrkHxa8dkes856iWcfkAa2QppaqtHmejEn0vznyvKjdOUKD0vLH0mvCQhMWUru47zhL GjQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311344; x=1777916144; 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=fxZRWFWfF2A2YEPPEjNfyo8rVBY3ZeJbdzkncV/rJ3s=; b=i73Xk1ZF2mJatm6MtKNuOR683dJy+otOnSaKZ3QP4SIFNqnJykIlBExC+G6b9dBien yxnTa/eIoON9q27aMtV9VfaC1/zeAQQGdb4TgVjZfVr0bocacQU1TQpPvu6wBs+gvZG4 lVw+LfRz6lJgo111khy+uV1Qo6ZmLVqX33BZ5ubFnqEAU28RxOMKWZg7V7VnpBfchQwa FoxXHLDCzN+RHjUhB6LEr1vZlqdTywUlZYunrZ39RBhE3WA0qrIcpYKHFS6KbRQL5ctO VEpZZDGzup3UFD8TmVvilemPvcmEhMkXBdHxgI06n6FxXadFsWJGKjw29rxWjmr3smDq aF8Q== X-Forwarded-Encrypted: i=1; AFNElJ+XW60aDf6wHRt5/f5Kbz3ym5j0qAQ7QSS7W+a80PNHCYA56Vv4et0d7BCLmg86DqChZf0LImMwJnEMM/c=@vger.kernel.org X-Gm-Message-State: AOJu0YwzAR82dC85eMFOMHYRhWkdgiAPTdt9ITV9dBiYPIq6ar8S2VAe 9NUzp+IbFUV35KbnFQwxUuwJS0FMqYB48bG/B6VnuldJLmS9BKGMGV/UZwSGYzAemPfwjb721ZZ HydWD/9tQpVB3espA0Wmv4gBF8pPD98Y+TYwZRfLe961RBv5X2rT76MsoWEl3V3H9m+o= X-Gm-Gg: AeBDievFiwIE70tlejJtbMG4kb8d/QlQ0SsnbqfBkacixDSVzawpoe3i3c3Ubhs4vts PvLjkTwoK7EIhjD1ANTqxDyw2oAt6YiF1IuzWBFl2bWgseOnAEiX/SPkW7n5PJo4p0rad0QalKE t1A7dUvWAJuNpkoa6ZwY0XNmQtQzUXjX4ACrczMVtNJcCz1mm3uXAEWlAC54M4dlM/pQeLC5VYu pAmjB29rrNiWNqD6FfI/+4QJBEWlIj7BKceHRUUCZ6PNmq8EhG6M2cW6qVv34IiLCCWsnwUMeFF jofKvzxhghmc/PWBh0ec50fivY+e85oh4BmZ21xTZ/wMYCeSra9rUJ2hih5CL/hM64H6P4t+2IU 3ZP0ZslWh5ETkDM5yddPi4RTA1hIg28itVoPorJnI8UhjltSMl0iau4DyMSEoP8G9eR5u X-Received: by 2002:a17:902:d701:b0:2b2:45b7:306e with SMTP id d9443c01a7336-2b97a78f4d7mr1241605ad.3.1777311343922; Mon, 27 Apr 2026 10:35:43 -0700 (PDT) X-Received: by 2002:a17:902:d701:b0:2b2:45b7:306e with SMTP id d9443c01a7336-2b97a78f4d7mr1241385ad.3.1777311343260; Mon, 27 Apr 2026 10:35:43 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.35.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:35:42 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:43 +0530 Subject: [PATCH v21 03/13] 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-3-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=6644; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=EC3OzX+vlwTXZBvlIcPgyWjHlhMJkLSif/QwxZigrFk=; b=v35u8Vt9MgTrbyAf/bRq2etw0DetCOIumFaOM7bzxAKqnOpnWiOGSWotj3nmrczUNvz4EL1BJ duqswEM53jlASaft5eijjxAoyI6ICnmXloH3LZyieplndeuH8v5S8Wm X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: 9BXFSI3p2DwYwRcxqHTp-5R0l7eYKv-K X-Proofpoint-ORIG-GUID: 9BXFSI3p2DwYwRcxqHTp-5R0l7eYKv-K X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfXzwWE/CzmFccB kV3MCdphevmBnY5v6w3TOwTHT2OBS0G2OrAHxlaabY4565frAEczQ6+3BQzQvoZHDef4UUdy4eD 6a+lC2GclwbAn1radhZCZfNK7E+40PDfQFxqf4J8RuzhytfFerxYdjlYLHb3a9D8fzDE74kd5h+ BQd5PKAdsViCHQdUGm4Ahibr6184j51UivKVmHcbW+afZ7lX7IxEs8WC8UCy1LltBkcVRVaE1Qn P91sitGm5APNuCFcPGRaXCUYkObEFoDqrTQJKvlLIGk+WocZt+02hFB1ZJ4my5MVrAixGyDxLvx E/vm3F+1ydR99KKzOPqBvQsBr/EhbQ1sZWQNVa3iqqe+q+T1MqLYsWeBxbrtHIpoqN/cDKjRuK+ 8/R1cOfEWJZs7AxMaCHXyCzTbKNLz70YUzrwZJmhlgvSPmjCkliR4doTJkK/w73QpfberTMifZJ e4YrfL0/ydVjQEHiVNQ== X-Authority-Analysis: v=2.4 cv=FM8rAeos c=1 sm=1 tr=0 ts=69ef9e71 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=Z8KYaV7TWDb2btNTYxwA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 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: Bartosz Golaszewski --- drivers/power/reset/nvmem-reboot-mode.c | 1 + drivers/power/reset/qcom-pon.c | 1 + drivers/power/reset/reboot-mode.c | 66 ++++++++++++++++++++--------= ---- drivers/power/reset/syscon-reboot-mode.c | 1 + include/linux/reboot-mode.h | 8 ++++ 5 files changed, 52 insertions(+), 25 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 f1372dc700e48043320812c3d3619ab1539e1854..a84f7c67a4746d4d5c932d4df01= 8aae10bd5518c 100644 --- a/drivers/power/reset/reboot-mode.c +++ b/drivers/power/reset/reboot-mode.c @@ -20,12 +20,6 @@ =20 #define PREFIX "mode-" =20 -struct mode_info { - const char *mode; - u64 magic; - struct list_head list; -}; - struct reboot_mode_sysfs_data { struct device *reboot_mode_device; struct list_head head; @@ -116,6 +110,33 @@ static int reboot_mode_notify(struct notifier_block *t= his, return NOTIFY_DONE; } =20 +static int reboot_mode_add_mode(struct reboot_mode_driver *reboot, + const char *mode, u64 magic, + const char *name) +{ + struct mode_info *info; + + if (!mode || mode[0] =3D=3D '\0') { + pr_err("invalid mode name(%s): too short!\n", name); + return -EINVAL; + } + + info =3D kzalloc_obj(*info, GFP_KERNEL); + if (!info) + return -ENOMEM; + + info->mode =3D kstrdup_const(mode, GFP_KERNEL); + if (!info->mode) { + kfree(info); + return -ENOMEM; + } + + info->magic =3D magic; + list_add_tail(&info->list, &reboot->head); + + return 0; +} + static int reboot_mode_create_device(struct reboot_mode_driver *reboot) { struct reboot_mode_sysfs_data *priv; @@ -180,9 +201,11 @@ int reboot_mode_register(struct reboot_mode_driver *re= boot) =20 INIT_LIST_HEAD(&reboot->head); =20 + if (!np) + goto predefined_modes; + for_each_property_of_node(np, prop) { memset(magic, 0, sizeof(magic)); - if (strncmp(prop->name, PREFIX, len)) continue; =20 @@ -194,26 +217,20 @@ int reboot_mode_register(struct reboot_mode_driver *r= eboot) continue; } =20 - info =3D kzalloc(sizeof(*info), GFP_KERNEL); - if (!info) { - ret =3D -ENOMEM; + ret =3D reboot_mode_add_mode(reboot, prop->name + len, + REBOOT_MODE_MAGIC(magic[0], magic[1]), + prop->name); + if (ret) goto error; - } + } =20 - 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; +predefined_modes: + list_for_each_entry(info, &reboot->predefined_modes, list) { + ret =3D reboot_mode_add_mode(reboot, info->mode, + info->magic, + info->mode); + if (ret) goto error; - } else if (info->mode[0] =3D=3D '\0') { - kfree_const(info->mode); - ret =3D -EINVAL; - pr_err("invalid mode name(%s): too short!\n", prop->name); - goto error; - } - - list_add_tail(&info->list, &reboot->head); - info =3D NULL; } =20 reboot->reboot_notifier.notifier_call =3D reboot_mode_notify; @@ -226,7 +243,6 @@ int reboot_mode_register(struct reboot_mode_driver *reb= oot) return 0; =20 error: - kfree(info); reboot_mode_unregister(reboot); return ret; } 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..f4518528fcc1fac49209de91cec= 7e050088ef8ec 100644 --- a/include/linux/reboot-mode.h +++ b/include/linux/reboot-mode.h @@ -15,9 +15,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 Wed Jun 17 06:29:43 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 3AFE73C5522 for ; Mon, 27 Apr 2026 17:35:55 +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=1777311359; cv=none; b=owQuV1eN9J/XmOHaQ2UxN8et4mwxZqak+d72U5GhwUP2U3IM0UOFYkV2P8ak6ND5H2qaEjE6iC86W5cZ15ph6WsHFkT7Ia3sP0X6bXVuIiAzhf37BmdtjzUHP3ooAQsFuRjX/OD68Cu0HCqNEdWpT3VOs8oUOBn1tldUPsJUy2Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311359; c=relaxed/simple; bh=IJaAfFoD68Hrp8z3QWdwMvJoK/M04B/XNqX7mDYzhJk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jsCMVNav4pmOg1Q/oYKg6kFHusf19UctszPwhWuXk10F8RxnDjlm2dtwJuhJoji8z3cjz7h76UtTfT5VjtWhSMg290EZ8wvn6i30AfNf1Sk4us02ux5S0cXL7Eix1G5F77Z55FaTgCo3Add3H8C1TQ04RdRxxan8sZTSyenJei8= 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=lCz2QCez; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Hc/HVTz+; 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="lCz2QCez"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Hc/HVTz+" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63RFLYaa3760758 for ; Mon, 27 Apr 2026 17:35:55 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= +CUiM8EWNjsOey3D4G6szxSNMyY47RvHNq1zFsclMX4=; b=lCz2QCezMCNeSYCU dLbGk4kqlKhZdcmkwgfG6iSUrW8Wwks7bnL/QLRt5pyP3OP5z0ehCJWxc5GWeD1g HUgICg9pMNEd2M/02RwvZ1YyDRFCGPa0xuMXDKjshmKJX2m6wKZTt5rUw0i/Prek 0GP7xCF7f20uLp4K6eLgOZ5u3JrFSy913GqS3qNBPsS7HvrQtaL9LmLQylCvMH5H wCGbg9NojDwUXg1KsZ7V7i48XmbtAGTlOwi+RIm67AXL6VJBwJhbH5fujEaGislg +f3M5zDYTw2XZdjBAAob3LLxZpoq/4I6zGLXzr669Fd2TaqAAWs16V2ePeeJfwzv AMWmcA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dtacdrgku-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:35:54 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2a90510a6d1so86448865ad.0 for ; Mon, 27 Apr 2026 10:35:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311354; x=1777916154; 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=+CUiM8EWNjsOey3D4G6szxSNMyY47RvHNq1zFsclMX4=; b=Hc/HVTz+xsEQz0XcWjg/H2rahk1N7W3TMTA2mdei+PZBAB07DOQzKDX/cA84u1g9WD ZbsaFwaJKaB1YblK4DND3I59tlpqbTgzH5thP0ekli1JYRHKaeqDtNo4NrezmV937RuF P2jPSQ6vh9VQyiAkWFijHwJUzkYDHqvjVh1LHk1c6odxTz5bxuckhjum9fpYzZ4wQ78X QypLuwHfypzOtaG/CSkfme09lEaH9ca1lvT8NNqX4w6yAbAry4oCHpdxLL57lM/nbpQH 5Wm1ybWji0+IjYApfzYKxNcEei+QAqeMULYP3wNK/jrLvMTwsY21V57TZCwhmzVB5mI5 8fNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311354; x=1777916154; 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=+CUiM8EWNjsOey3D4G6szxSNMyY47RvHNq1zFsclMX4=; b=kzrNGS6CW9op2P2XyCNJG1Rzy6vsXpD5B3zTYSul9JSi2ZyANYGwdrbT8+OQUaEpsL EuMhD8m+csN7vu04gxYNHVuwKDg+l9dEnqAtJTwgEFhEl008IfoLfJHyPtpcsQ7HpDmt fDli/Z0qaMPA0jxol5HOq++UM5L2dZxvpOqQAOiXnecM/cx+CR/c1aWb3i14nzgeuC3s 6JcksvjuxQmVycipKlGe9ZPt1CmB3zYvlXp/R3iAh9Q5XH8otulnJ31pifHSsDpsu8+v FB2Kftn7xVAZDHfK+8tMPsAnqrl0JEi1xKAYYHLwZb0TrpUbMH7uGVcJeOe4R8EUzHql HH1w== X-Forwarded-Encrypted: i=1; AFNElJ+TRagIufLH2ik623jsgZvCMbZQ3rO3WQeS/GBNNsMZZ7k/6XxP8gozc45m3f8jiJoaQGjiUElMoN+LR0I=@vger.kernel.org X-Gm-Message-State: AOJu0YxVzzIuCtLoldIm5XkKjY0enHV+d1EF4pbO2lanCkfSn6AAmQJu xLVRzJIKnx4OhTMQ6IWOoWlJVYW191fndbrRIsei+4BWwK4mNn8afOGLigdkvFnh98d7Ivj7fo/ O7oX+XtbkAifRqZWJ8JC8R/f7JMcIUZ7O9rGOzm+uYpWg2xsuB8Kou1IQ8Ym1OFDnuNg= X-Gm-Gg: AeBDiesq2Tq0ec7yk9YrMc8jIkpOXU3a6jRut7wLpK5q20XHyi1owkml4vXmpCx/1xk sAPEry5ZNFjwuALaxbufpYWW8L/p0ZXUdh4MFmNKRKClTuy1aF+L09xzFJC9D6pVx6UJeOul911 7S9ZQRx9lHYRCFDD6cCu6HJ0lwQvkGnF2Ow8zq9/TPxr33JjLu1Cc5dIBMiUm6mbnrLLYBqpRyV Cbps0gmh88W7H2Dk3AoNgVdhnPUtP7SBALPXOGPh6p83fjanFSXPVa43/lL3f9jfX9S42XBruxu 2rCl8cBBKwOuWzwnXO4LrBq2r2BMKmIgJ8+AwXGLwoafhyPwlP5ECvXVadHhqfpVsVQ2UW66jlk FVBmSuAGg6FVFYcjVvISJQ/atWh3sDRduQayM7L1k/P3GVPC6lU+axz+cOAN92YDxG7XB X-Received: by 2002:a17:903:3c44:b0:2b0:4f16:22f7 with SMTP id d9443c01a7336-2b97ac74404mr519155ad.16.1777311354062; Mon, 27 Apr 2026 10:35:54 -0700 (PDT) X-Received: by 2002:a17:903:3c44:b0:2b0:4f16:22f7 with SMTP id d9443c01a7336-2b97ac74404mr518555ad.16.1777311353383; Mon, 27 Apr 2026 10:35:53 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.35.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:35:53 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:44 +0530 Subject: [PATCH v21 04/13] firmware: psci: Introduce command-based with 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-4-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=6677; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=IJaAfFoD68Hrp8z3QWdwMvJoK/M04B/XNqX7mDYzhJk=; b=C1CJp2wthLFqASyPaBoz2bmtc5z3yh2Vt0xyY746fg44zr0TjDFSpuJDS92BW6Jsg0sUhMzDf 3hqs005mGwXBPy0tEuBhaWKEwjimbSOSNCPq+NE7ukFuc7O3+sNU6/U X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfX+gNy7DftXgQW IIGwDFD5p4vy5uBbToD04/vLv7pyuA9nQAwEIUVFoMnYR40XuxkvJfq8eHpE/4W4WaKlUIoqY9F E7Y+FIyQrLnzttALlhbdtyhL0Pwgm1oEMKWUTNFBeJ6BOcFAnjuOlNDDeEiVpUI6WVGaB41bjt9 3wpy8VYFtU2oOfIGvajkv/MRUC1eEcC6sT96DIkXal/t0nn5nQaepwFFxIKUUMB5psMe4KNTI+o oQKM7aRYy9ismbTKrQEc6N/0cwSEZrJWJxpRm4QxAJ52XHHKX/AohHEArL9QAOqQqnyAFjOIgVx g7gFVPsvUgA53JuyCmWufVPMcQGBzDoR9x1CCejdeQBpC30emkW3K3Fbl/Cap/xPWRQzY+Lq8So WV0CRm5ps5Fwz6WLPhJbylhbxk6dMrcv5iXvZswcaed0o9Ua4F2pG679LO9CCiRQpLj2arpqpSl 9XcMmSBtkmj9Oyh03tA== X-Authority-Analysis: v=2.4 cv=QsduG1yd c=1 sm=1 tr=0 ts=69ef9e7a cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=dfwn7jY9AU0u4DHcGkkA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-GUID: K1StYCgBccHXPefBxwNCHswDW66MccPo X-Proofpoint-ORIG-GUID: K1StYCgBccHXPefBxwNCHswDW66MccPo 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 PSCI currently supports only two resets - SYSTEM_RESET and SYSTEM_RESET2 ARCH WARM reset. The reset patch is selected 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 exported psci_set_reset_cmd() function. Define predefined reset_types - PSCI_RESET_TYPE_SYSTEM_RESET to map to SYSTEM_RESET, and PSCI_RESET_TYPE_SYSTEM_RESET2_ARCH_WARM to map to SYSTEM_RESET2 arch warm reset. Interpret zero cmd_reset_type, for predefined reset-command selection via cmd_cookie. For non-zero cmd_reset_type, check for valid vendor_reset_type and set the psci reset_command and cookie accordingly. Disable PSCI command-based reset by default and treat invalid reset commands as no=E2=80=91op. psci_sys_reset() follows its original flow based= on reboot_mode until a reset command is explicitly set by psci_set_reset_cmd(). In the device reset flow, psci_set_reset_cmd() is called in reboot_notifier phase and the device reset happens in psci_sys_reset() which is called later in the restart_notifier phase. If a kernel panic occurs in between these two phases, the reboot should take its original flow based on the value of reboot_mode. Disable the command-based reset in such case. Signed-off-by: Shivendra Pratap --- drivers/firmware/psci/psci.c | 75 ++++++++++++++++++++++++++++++++++++++++= ++-- include/linux/psci.h | 19 +++++++++++ 2 files changed, 92 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c index 38ca190d4a22d6e7e0f06420e8478a2b0ec2fe6f..cb37c39e2b4b1d99f0080f6a5cd= 6c92a070beda8 100644 --- a/drivers/firmware/psci/psci.c +++ b/drivers/firmware/psci/psci.c @@ -51,6 +51,16 @@ static int resident_cpu =3D -1; struct psci_operations psci_ops; static enum arm_smccc_conduit psci_conduit =3D SMCCC_CONDUIT_NONE; =20 +/* + * Encoded reset command: + * bits[63:32] =3D cookie + * bits[31:0] =3D reset_type + */ +static u64 reset_cmd; + +#define PSCI_RESET_TYPE(reset_cmd) ((u32)(reset_cmd)) +#define PSCI_RESET_COOKIE(reset_cmd) ((u32)((reset_cmd) >> 32)) + bool psci_tos_resident_on(int cpu) { return cpu =3D=3D resident_cpu; @@ -80,6 +90,35 @@ static u32 psci_cpu_suspend_feature; static bool psci_system_reset2_supported; static bool psci_system_off2_hibernate_supported; =20 +static u32 psci_fn_from_cookie(u32 cookie) +{ + switch (cookie) { + case PSCI_RESET_TYPE_SYSTEM_RESET2_ARCH_WARM: + if (psci_system_reset2_supported) + return PSCI_FN_NATIVE(1_1, SYSTEM_RESET2); + return 0; + case PSCI_RESET_TYPE_SYSTEM_RESET: + return PSCI_0_2_FN_SYSTEM_RESET; + default: + return 0; + } +} + +/** psci_set_reset_cmd() - Configure reset request for psci_sys_reset() + * @psci_reset_cmd: reset command encoded as cookie[63:32] | reset_type[31= :0] + * + * Save reset command. + */ +void psci_set_reset_cmd(u64 psci_reset_cmd) +{ + reset_cmd =3D psci_reset_cmd; +} + +bool psci_has_system_reset2_support(void) +{ + return psci_system_reset2_supported; +} + static inline bool psci_has_ext_power_state(void) { return psci_cpu_suspend_feature & @@ -306,8 +345,24 @@ static int get_set_conduit_method(const struct device_= node *np) return 0; } =20 -static int psci_sys_reset(struct notifier_block *nb, unsigned long action, - void *data) +static void psci_handle_reset_cmd(void) +{ + u32 psci_sys_reset_fn; + + if ((reset_cmd & BIT_ULL(31)) && psci_system_reset2_supported) { + /* PSCI SYSTEM_RESET2 Vendor-specific reset */ + invoke_psci_fn(PSCI_FN_NATIVE(1_1, SYSTEM_RESET2), + PSCI_RESET_TYPE(reset_cmd), + PSCI_RESET_COOKIE(reset_cmd), 0); + } else { + /* cookie part of the reset_cmd decides ARCH WARM RESET vs SYSTEM_RESET = */ + psci_sys_reset_fn =3D psci_fn_from_cookie(PSCI_RESET_COOKIE(reset_cmd)); + if (!PSCI_RESET_TYPE(reset_cmd) && psci_sys_reset_fn) + invoke_psci_fn(psci_sys_reset_fn, 0, 0, 0); + } +} + +static void psci_handle_reboot_mode(void) { if ((reboot_mode =3D=3D REBOOT_WARM || reboot_mode =3D=3D REBOOT_SOFT) && psci_system_reset2_supported) { @@ -320,6 +375,22 @@ static int psci_sys_reset(struct notifier_block *nb, u= nsigned long action, } else { invoke_psci_fn(PSCI_0_2_FN_SYSTEM_RESET, 0, 0, 0); } +} + +static int psci_sys_reset(struct notifier_block *nb, unsigned long action, + void *data) +{ + /* + * Command-based resets are configured at the reboot_notifier phase. + * If a kernel panic occurs between the reboot_notifier and this final + * reset, ignore the command-based reset and let reboot_mode drive the + * reset flow. + * If reset_cmd is zero, there is no command to handle. + */ + if (reset_cmd && !panic_in_progress()) + psci_handle_reset_cmd(); + else + psci_handle_reboot_mode(); =20 return NOTIFY_DONE; } diff --git a/include/linux/psci.h b/include/linux/psci.h index 4ca0060a3fc42ba1ca751c7862fb4ad8dda35a4c..c2458291a3faf5ac89b1528dae2= c9b805a2dd075 100644 --- a/include/linux/psci.h +++ b/include/linux/psci.h @@ -21,6 +21,21 @@ bool psci_power_state_is_valid(u32 state); int psci_set_osi_mode(bool enable); bool psci_has_osi_support(void); =20 +/** + * enum psci_reset_type - PSCI_RESET_TYPE for SYSTEM_RESET. + * @PSCI_RESET_TYPE_SYSTEM_RESET: Standard SYSTEM_RESET command. + * @PSCI_RESET_TYPE_SYSTEM_RESET2_ARCH_WARM: SYSTEM_RESET2 architectural w= arm reset. + * + * These enum values map PSCI_RESET_TYPE_SYSTEM_* constants to reset strin= gs + * issued from user space. When user space requests a reset, the cookie + * carries one of these values, and the PSCI reset path translates it into + * the appropriate PSCI system reset call. + */ +enum psci_reset_type { + PSCI_RESET_TYPE_SYSTEM_RESET =3D 1, + PSCI_RESET_TYPE_SYSTEM_RESET2_ARCH_WARM, +}; + struct psci_operations { u32 (*get_version)(void); int (*cpu_suspend)(u32 state, unsigned long entry_point); @@ -45,8 +60,12 @@ 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(u64 psci_reset_cmd); +bool psci_has_system_reset2_support(void); #else static inline int psci_dt_init(void) { return 0; } +static inline void psci_set_reset_cmd(u64 psci_reset_cmd) { } +static inline bool psci_has_system_reset2_support(void) { return false; } #endif =20 #if defined(CONFIG_ARM_PSCI_FW) && defined(CONFIG_ACPI) --=20 2.34.1 From nobody Wed Jun 17 06:29:43 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 87009399365 for ; Mon, 27 Apr 2026 17:36:05 +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=1777311367; cv=none; b=UDirlHRqzf4+RVCOO5/OvNy8Yf5te8t4Aa7EVdRESzkvR46azZTWpFSEd/n146ZenoP+pA5gAsP8tTRypRAlOyemFYY4bV5PyPz9ebuNpxZ33uRagMBd3FUi86NM9a70X1tWEG9hoJIKNkumgJdIdbqUQlqnb8BDXEaTaLNFnEA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311367; c=relaxed/simple; bh=lzropSLLuEUOTlXB3lVSMDCK1IZ7W79RN88MySMJil8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HmocsgftkFPOECIsZCMewIWsMFATneWU5tTIvaokwrtDTcH3QshOnMm7RcunZEclpbH4wdCOfziHSnq532snfw/tEz87OymmMR991gd4SQrKIA+4OXQOvGj9J0rwzYO+OBXySdtX9G0Qt4xyq/xTMDkktcXLfGExF2IXyYlHWrA= 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=BswXOTsk; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kxOGN/C0; 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="BswXOTsk"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kxOGN/C0" 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 63RFLPSP440983 for ; Mon, 27 Apr 2026 17:36:05 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= GCiNA24JLGnW+ALPlEr94KdNN1Dg8+VWxK2km+y6x2o=; b=BswXOTskG+3prOc4 FTddRVN2lV4PCYS8uOSTVqn5NxfgTYMz0v5f1fcQefm7AjKbL01cOo57B7+DMJrz TofHv/LRT2uPdMsgdYap+BiXQkTRAWofVxb13DDLUx+gj+FOR5lyGvbkOXphd9KJ q8wGlIVErkHWUKIVsBPDsZyYIDIomm+8y/Jvv5D9QXIjH8lNr3CcIIiujiBG8pW6 eRaB5xfihyzp/4AlUK6Lhfjs0hMi4YAezUOasbKKJfI0HCEWFP2+X96AhYlktmvx JJsT73MLpTzNEZtCWCTx56k8b5jRxIfsxYn8vGVuB+XKvWwop0NB117Egu7h5h7+ y/7yNQ== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dtac40gr3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:36:04 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b7aba0af02so44109935ad.2 for ; Mon, 27 Apr 2026 10:36:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311364; x=1777916164; 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=GCiNA24JLGnW+ALPlEr94KdNN1Dg8+VWxK2km+y6x2o=; b=kxOGN/C0hM2IHgggZ9CZDY2JY0dw58E0Vf9P5vrUM/O2u8dtPdYzWBt9Muh7gObHd8 +V1vovKsab3+f2kK1AOwq/H0onKI+aJVC+UgGtEbojKuqNfRT+xTko5vScpnEF7/EfzZ rCM9MyoK19fHyVbTyKHuMsRcWYvKPLN5LJlb3RJJNV7wG2mCaKWbxYjjg+jg15TYN1HV KHg1F2eIjlTs0YAZEQWnZtm/nnJGZvd2Pn74TA3zg6y2Rj+XN4K1yHreC8tRqgbwTwlo RWcl3/SJN8GYLzE6jO6gXBJ4tvxuiJXjud6Utb8dOMidhPSEGWXkzx/YsTwWKNZn2aVZ 2BZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311364; x=1777916164; 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=GCiNA24JLGnW+ALPlEr94KdNN1Dg8+VWxK2km+y6x2o=; b=jLvQuYd55nmBGn5Tj4o0v0yYtelxgt8Jw02M+CIiuEJWA+xOwYPAWtTMpHNWiyoG/A qKGtHTHaaKFmb+SZUX59vFlaRMUpwtUoki6+Vm4H8gSghZ9IDKTZ7l/CoCvtlspjLfnM KofIdPMp1Xf3DbxJU7/5uFWhVn2e3EWaX5VUm1lQQO4v5qPhbP4pZqfz/9RHuyNYsNyd 0MpoZ7GEmmWwCK0ogT8WzFHAo5kFH1Vmd34Ug6/NCHzFF8cFdBHBykJqMD9RRrNk4kvc deDTYuh/dp5L4CNlg7nfIOBkO21JUdKK6L1gRXZ/SaiOPp2t67vb/0hZM1f8A8CfMerz CIAw== X-Forwarded-Encrypted: i=1; AFNElJ9foS5t4klRTIY3//FVPWCZ8WLD4gwuKx9DKVx0RyZzRm2GHdLOKMdD7jnGiRIDf0CpKh7KvR/vTnK5ccI=@vger.kernel.org X-Gm-Message-State: AOJu0YyChkl/NG1W0/Um6FpW2GnZcyuykzrHcdccWGpmUL8JS1AjRIXR j5fwQHXvJwjJosv30QomD1dppguMDrVSVrgnZW8zU2DZUkv3GlLM26z56+dBwKyBDnoCpZHjBP9 v4VzXnzPHwXQg311ilYyw265NDY8zuaNhNdVtYHHIv8PTnUkX79PhMe7EGXEadZZC0e0= X-Gm-Gg: AeBDietxr4wuOp7NA2caEsZESBZyUGvYwSIuwPoYh3zvlXzFwDb80RmcUk+BLkwuzfB fT3KzTlFgjpTkuxQyfWol0AALa0NQlIRTvOhIuk67yi0etgnogXUd+H87kVVrVQjndfU/2L/yyt 0AHrobRV4PvSzMDmTs6shMC0ifXh7+Ez1KCvdVbfXGqiHMZD3Nvj94+NwWbVaqZ+l+W9nWWD5TM LP/LZnvDGV5EcICA+N7Rsj2fhlX4dAgeFeToLOgKMZkHuIo+aBFTxh94zXo7nWIoUiwxAF3oEqR 8Wln7hdeqhya8nV7+kl8iKALD2ocJzAU4oO85SrlOKfe3Z13qG/UYDQ+j+7E3Dw6LO8QZNom3jh 6U0ZRl9t43+lh4r/jWNYdZnAqsbqhAT8/Cd5TPSuCSB0MxjSy7p0BW27/6K2oNx1zm5Ke X-Received: by 2002:a17:903:3503:b0:2b2:4ffc:a7c4 with SMTP id d9443c01a7336-2b97a9661cbmr1763655ad.24.1777311364015; Mon, 27 Apr 2026 10:36:04 -0700 (PDT) X-Received: by 2002:a17:903:3503:b0:2b2:4ffc:a7c4 with SMTP id d9443c01a7336-2b97a9661cbmr1763215ad.24.1777311363460; Mon, 27 Apr 2026 10:36:03 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.35.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:36:03 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:45 +0530 Subject: [PATCH v21 05/13] mfd: psci-mfd: Add PSCI MFD driver for cpuidle-psci-domain cell 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-5-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=5704; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=lzropSLLuEUOTlXB3lVSMDCK1IZ7W79RN88MySMJil8=; b=Yax9prFDQv171HwJK8GhB9i1LBifVuZuKjaRqdRPhgOa/XGkco6ROfooGv8bt0WStsk62OajJ 3ndcItGxp8SC2hfvo1UlvIJlnuM8CXU8VJPMMcPr5ymXTPII1gaX4s+ X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: Heh7k4bF_SIs2R-z5zuCYaJd8hmGvAkU X-Authority-Analysis: v=2.4 cv=D7J37PRj c=1 sm=1 tr=0 ts=69ef9e84 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=JfrnYn6hAAAA:8 a=_6Fr27BeRXDgthG3VUMA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-ORIG-GUID: Heh7k4bF_SIs2R-z5zuCYaJd8hmGvAkU X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfX6oCSKrz/pYnm Gc1SpvGuWsdNZCSLNaA6+O5R2JuvQ3N/NplE/YiggZEWstzGDZIvrkRUJlYN69zoVzzVp1hrppa YQfGTTnlViKDJDSEIK6bFOEHM+uq0FPv/HkJQmupjq6NwHQN/DJyqiM2EPXhyAgvUyu9T4LDAeV vKckGXyxoY+ZO4nzpxvU41ChWF+fBKXBkk/pzT3QXh1Vdxx367c12yWZD5faDzjYX/lo1bNgZiD uVtd1GI9F/UYatmkM3J0Ltn23RL/LXOlZG5n8suV+q3Xq9SFRdH2dmsT/tWrItPQSsqeTZ9tanP VR91vlB+OosKrRVnbddc8O/UNiyjeAsWGluTbXnQ08eTuPgMkpfPu/yRybN9nrmBNNlO6AlCGJ9 GKlroRPoRmDSVyJVSXTLHgVoxl7MPDNo+thW5YarQ+z6lmf2vWF7qFaUSgh3wg4IigQ87B5+4Lq Jxz7gUDeArhneO3n5KA== 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 PSCI has multiple kernel consumers, such as cpuidle-psci-domain. Currently, both the PSCI core driver and cpuidle-psci-domain bind directly to the same PSCI node "arm,psci-1.0". Additional consumers, if introduced, would also need to bind in the same way, leading to several drivers attached to a single device node. Introduce a PSCI MFD driver that binds to "arm,psci-1.0" and registers PSCI child cells. As the first user, register cpuidle-psci-domain as a child cell. Update cpuidle-psci-domain to probe as an MFD child and use the parent PSCI node for power-domain traversal. Signed-off-by: Shivendra Pratap Reviewed-by: Bartosz Golaszewski Suggested-by: Bartosz Golaszewski --- MAINTAINERS | 1 + drivers/cpuidle/Kconfig.arm | 1 + drivers/cpuidle/cpuidle-psci-domain.c | 9 +------- drivers/mfd/Kconfig | 10 ++++++++ drivers/mfd/Makefile | 2 ++ drivers/mfd/psci-mfd.c | 43 +++++++++++++++++++++++++++++++= ++++ 6 files changed, 58 insertions(+), 8 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index c871acf2179ce16c80b404027e6b969c7787a6bb..333b01fa00b8fbd15e6f31a6b9a= f47600411624e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -21239,6 +21239,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated = for non-subscribers) S: Maintained F: Documentation/devicetree/bindings/arm/psci.yaml F: drivers/firmware/psci/ +F: drivers/mfd/psci-mfd.c F: include/linux/psci.h F: include/uapi/linux/psci.h =20 diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm index a1ee475d180dacab245510674514811aec337ad3..1a1316d11e0a2e4f61801586229= f5104e2435865 100644 --- a/drivers/cpuidle/Kconfig.arm +++ b/drivers/cpuidle/Kconfig.arm @@ -36,6 +36,7 @@ config ARM_PSCI_CPUIDLE_DOMAIN bool "PSCI CPU idle Domain" depends on ARM_PSCI_CPUIDLE depends on PM_GENERIC_DOMAINS_OF + depends on MFD_PSCI select DT_IDLE_GENPD default y help diff --git a/drivers/cpuidle/cpuidle-psci-domain.c b/drivers/cpuidle/cpuidl= e-psci-domain.c index b9e4ad7d43a3310a76ce62018dff0af1488e33d2..a2d01810f2957abdfa52ae66503= dc0cbb205f163 100644 --- a/drivers/cpuidle/cpuidle-psci-domain.c +++ b/drivers/cpuidle/cpuidle-psci-domain.c @@ -17,7 +17,6 @@ #include #include #include -#include =20 #include "cpuidle-psci.h" #include "dt_idle_genpd.h" @@ -122,14 +121,9 @@ static void psci_pd_remove(void) } } =20 -static const struct of_device_id psci_of_match[] =3D { - { .compatible =3D "arm,psci-1.0" }, - {} -}; - static int psci_cpuidle_domain_probe(struct platform_device *pdev) { - struct device_node *np =3D pdev->dev.of_node; + struct device_node *np =3D pdev->dev.parent->of_node; bool use_osi =3D psci_has_osi_support(); int ret =3D 0, pd_count =3D 0; =20 @@ -181,7 +175,6 @@ static struct platform_driver psci_cpuidle_domain_drive= r =3D { .probe =3D psci_cpuidle_domain_probe, .driver =3D { .name =3D "psci-cpuidle-domain", - .of_match_table =3D psci_of_match, }, }; =20 diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index 7192c9d1d268e93d1557ca6519ac96056e37e221..75ea5b47315cedfd1153899eef2= 8614a165a14f5 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -2376,6 +2376,16 @@ config MFD_KHADAS_MCU additional drivers must be enabled in order to use the functionality of the device. =20 +config MFD_PSCI + bool "PSCI MFD for psci child cells" + depends on ARM_PSCI_FW + select MFD_CORE + help + PSCI MFD registers PSCI child cells and exposes them as + platform devices. Child drivers are probed only if enabled in the + kernel configuration. Select this option whenever a supported PSCI + child driver is selected. + config MFD_ACER_A500_EC tristate "Support for Acer Iconia Tab A500 Embedded Controller" depends on I2C diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index e75e8045c28afae975ac61d282b3b85af5440119..36e872b11b995135a04ca24c33f= d3a4d08e4f49a 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile @@ -24,6 +24,8 @@ obj-$(CONFIG_MFD_EXYNOS_LPASS) +=3D exynos-lpass.o obj-$(CONFIG_MFD_GATEWORKS_GSC) +=3D gateworks-gsc.o obj-$(CONFIG_MFD_MACSMC) +=3D macsmc.o =20 +obj-$(CONFIG_MFD_PSCI) +=3D psci-mfd.o + obj-$(CONFIG_MFD_TI_LP873X) +=3D lp873x.o obj-$(CONFIG_MFD_TI_LP87565) +=3D lp87565.o obj-$(CONFIG_MFD_TI_AM335X_TSCADC) +=3D ti_am335x_tscadc.o diff --git a/drivers/mfd/psci-mfd.c b/drivers/mfd/psci-mfd.c new file mode 100644 index 0000000000000000000000000000000000000000..7affd6bb09dd83452664edeccb0= 9290fe4f43186 --- /dev/null +++ b/drivers/mfd/psci-mfd.c @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include +#include +#include +#include + +static const struct mfd_cell psci_cells[] =3D { + { + .name =3D "psci-cpuidle-domain", + }, +}; + +static int psci_mfd_probe(struct platform_device *pdev) +{ + return devm_mfd_add_devices(&pdev->dev, PLATFORM_DEVID_AUTO, psci_cells, + ARRAY_SIZE(psci_cells), NULL, 0, NULL); +} + +static const struct of_device_id psci_mfd_of_match[] =3D { + { .compatible =3D "arm,psci-1.0" }, + { } +}; + +static struct platform_driver psci_mfd_driver =3D { + .probe =3D psci_mfd_probe, + .driver =3D { + .name =3D "psci-mfd", + .of_match_table =3D psci_mfd_of_match, + }, +}; + +static int __init psci_mfd_init(void) +{ + return platform_driver_register(&psci_mfd_driver); +} + +core_initcall(psci_mfd_init); + +MODULE_LICENSE("GPL"); --=20 2.34.1 From nobody Wed Jun 17 06:29:43 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 4D62C34CFCA for ; Mon, 27 Apr 2026 17:36:16 +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=1777311377; cv=none; b=Z9KRbqAk8g2f7iiNJbit0RUzZDx5gew1t9MktwPvdz1MgmGIl3HfSSMigCNn+UcF7bLguTLduzhP6YYF3MQDflyTJvBiG/zekeowOLeUwfv2K9k2R26FJEFB/boz+v9W+bbUNsyMSZIg6DfA5zQgEXDRxaSVNlK370HueSs42g0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311377; c=relaxed/simple; bh=yBVN4FEHADdTSQ++LEmhmTEyByZ3pz1DEJtf2+BqO1w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=esUzDAWJQ5nFd75pkIww4dVjQ6wbfzqQ604Xh6zu8gMT5yRIT4pSuVQoMNCu/pm9GQyiJJ/4w0OLTSMCuOLAVpE6q9qdTaz+LMfh8Td82mAlYnbFHmTPdVdb5nOq1yWmAXWeDmnMQ3d2EOJbHnbb97jIhOUO7pETmjHoO1BEhzg= 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=gIabg0Fw; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=akNrQzMb; 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="gIabg0Fw"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="akNrQzMb" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63RC5ao52006188 for ; Mon, 27 Apr 2026 17:36:15 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=gIabg0FwLPE9SRzD 3tRU9MsWqNjMpmEiRRi/3sk83rdVBYVO5cpgUkPZDn87Yr9f4IT3fEMVshLO5U56 9BKM+gB23Fi4JYl+Z5msoS45PR1WyxNarhcke91MbRu0tRY1IZ0Jq9QJRRX1JZMQ G+1MxNiV9OX9MjVo/KLF1wncTKJP2y7ZaqRAWIRhMNvBzpVqgfWWxEKpNmLGX9wg slxAeFSw+5trK6XrLkcoDOVLdQSlGy8j41NlGT9NZcT5l21dS9jm3S6DSTSmTO3f X5jyMGYUFeFz10iuXd5WdNrzhuXJUKz3Q7OK4V5l4rcluTtswwGen0Z9I49CNEyc +IUupQ== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt7gkh8bm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:36:15 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2adef9d486bso96123545ad.2 for ; Mon, 27 Apr 2026 10:36:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311374; x=1777916174; 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=akNrQzMbPhD7AX6Vp6RbVcbDEJqPbXRRzDJQ+iHkKs8lvdS6L7EGll2ku2V6aSl6bd gfvGSsaveJvkZLtvbxIvH5tO1Fof64nYIEd+/iOxeT484EoNNi21ibeDmtDYnG4qlNwB q8LdtsjIES0F0xJKiLeHlGNgLU02iuPQuFfILB+C+S54q3/T4LpU/+XOhwwNekGqAwF0 XiNmfGDlsIWu1cBW8xlDXm13PCe46tmv6tNd0MPRpwzg1bA/gTCn1wTjW9iUv/17qq4i CaUVtxV/iS3KaNESWjQTr0aidTmYdoqu5ev7wNuMqe9BefX1GrnBHjMs6C0uWXs6y4BG 3TRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311374; x=1777916174; 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=lILh6Nz+DpR2rd1tr+R76ZivKk+4r2/FU1Exa2rRK9zx5C9jNlhrrKOab10x9KXZwF 5jtUztqBE+U3eoTJG0jaraRnanmPfxbUASxgy21FQoUQ38/I+tf+xDQZKb4iEaWlzkf4 clV0Tk4dhQ+RYP41foxGD/eZtoLfhQqgkHISKSzUrq7/90cFwRIyzSPKLZhpelwFMCOt vRbRg3B4ELzFqgjXmGmKfgzAORXIeWLuEH7ny179S5CAJWE5EJt2TGVKPOb5j4NtviSh UXFdYEptluco2ebq06PBUY0gFtBwsQZnUBqJkAXhMASyVEPsh7wn5+rVfLfLT9GJIdKG Y3sw== X-Forwarded-Encrypted: i=1; AFNElJ+adHpbR4AkNcM2WK1JYOc1vHkDqrFm3FCK8jLxQucv/n+2zNsGITg3V9qInrec+cfps67KHne52pTjwMc=@vger.kernel.org X-Gm-Message-State: AOJu0YxFOnFj8Zd+Vq4DxK1Ks2KhYEFkZvjGUo/Yp2a22C0vdh5A0NtS 61mEM5aYF+Wpw796eNWIQdspZtO2EwnD+3VyrUqiP9d9Btz2DrQ85hSZZYymakHGAYoK63Tyuai bFcRuXskvaYuuXR/Tq1XAORiBdoYfaJXB5iANLZDaXxmX5U84TcCSOBvSi9v9giDL3HA= X-Gm-Gg: AeBDieuTwnQJzwdwZ314Z3ZxrZKC8fqoqHIMns7b5bEQegrRiUJ4MjyY3m5aQPKHfNP 9pF8JJ0XyIDlg3BbD4M1Z03vYxxxHWWjUbKCaTsqzrNAgjQdUkF42fM+l8OZsEBaX1kIwy08UB5 JV8gvssd8Tx7kzbvdhgLYXtcbjVHz5XagV7q9ikMdfV8d59TmLtWOgn2B8dV4sCFFp7DZMBDUwM ECG9y95YWjhIMtfHGH61dX0lvbX/mlanI8L8fvs7iQ1XwCOz/qprUmgB7W4kYX+MLTSSYRZ6wFt anLgt2Jzgiu/8AiA7BvTNG1qJJeQBSmR13WrEEa4BUDHptyAk39/c9FqaurNN9UCeTaQK+cd6Bo Bx3boIYucqKWib3/0Z8jUZnEuhfjU1fecuRlq11JKe+BSN9/vupE301ye+2WYWxTRdtRd X-Received: by 2002:a17:902:c40a:b0:2b0:7d3d:756a with SMTP id d9443c01a7336-2b97a951600mr1695495ad.35.1777311374226; Mon, 27 Apr 2026 10:36:14 -0700 (PDT) X-Received: by 2002:a17:902:c40a:b0:2b0:7d3d:756a with SMTP id d9443c01a7336-2b97a951600mr1695025ad.35.1777311373686; Mon, 27 Apr 2026 10:36:13 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.36.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:36:13 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:46 +0530 Subject: [PATCH v21 06/13] 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-6-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=2477; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=yBVN4FEHADdTSQ++LEmhmTEyByZ3pz1DEJtf2+BqO1w=; b=lmkiWsLFoZiVy+q+yRqg9SpaKjLQxt8Mmp5CQJoF/Ii4uoBHHfeoTnxYq/6ce9i3yob3pcaPr anKDkGgjULpBrTuJ097A+tFD1/IfB8Cv6S2JKHq6y8M7Wxpx75aljAe X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: qfrbmA6uY4Nx0Z_hMP7jBKIqmNfTSAeD X-Proofpoint-ORIG-GUID: qfrbmA6uY4Nx0Z_hMP7jBKIqmNfTSAeD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfXyiT3k7vxd6mT /f1ahZmPaiKtgV4nZs+XN4GEVN+7VXSo0e+kIqOytjC+MGIXutE5DbVrWS4c3QtUJ8YGkSBLGnQ 8CHsLhd2pbD1nrRthXaPvR61WXw1W5eNON10nimcQXbAJnsuWoHod9ABOgLSDAe29OvWjZXzP1H mO0AB2uWxpvcQhcR0ABQIfs+G9SIDD8YUnoJsdSPXTiekO7oY4BPYOn63pFSEL1J5aA9upDJLNB 6vshmCULJfy6NaNfQ5C2XeLTzeAsKEj+n6to6QVs6KXxfm50WHqmmHafj3Y5mT36pDdWTcF7p5w dTwnNsFpqyP0Z170UaaQAdNnSjLQ16km+CpKk0y56fGyVXlHZM4dVvD2qF3Cdta+PM2HM1gqT85 ekceqDG5WWAKkK0mQemg5f+C6UXo2el8yEcoD/bfbWfeNAgoIIVVH3B/Lj7Uh1mTFcc5k82obGj jrWhOVBi+Xb5xndJIeA== X-Authority-Analysis: v=2.4 cv=bJsm5v+Z c=1 sm=1 tr=0 ts=69ef9e8f cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=Z1E3qa2j_4PWJv3PNLYA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 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 Reviewed-by: Bartosz Golaszewski --- 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 Wed Jun 17 06:29:43 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 B13F830DEB2 for ; Mon, 27 Apr 2026 17:36:26 +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=1777311388; cv=none; b=iid185Ac26Wagw3rkYZqbpseBfKLw0iwHAleXq+7SHZ2rOVxwlaxjUqWmZLp7L81SWEkMP+XTFFcJWwy7VaGCSXy6182pux1VLl0thsHJqEZcrs7TYx7f+/3DBIwbiJ44F7Oglke2FNyc7fqojSYah3b8dXRwALTKEf+jCypMys= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311388; c=relaxed/simple; bh=P5d6Br3dWmkgJQvTmqm2xZfcEwgYOHL0jl0KY/yqwaY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cxS0EbYbJb8u/7YmoGW8bSlHcQCGdW6RqHKuQndpua2fTHmkP4pj6G+5a4amCSHr8Ckj4M6IyVRmY3jZe6lCwEMSou0j85ehToLpNMz5vyHcN6KTofRcj7zSjgTuU1hujVMxgeN8mH95iy8jVGLqG8o33xNwPzatjQWj2QOOlvA= 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=nLfgE/n3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ITU+9Vck; 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="nLfgE/n3"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ITU+9Vck" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63RCYOjP429010 for ; Mon, 27 Apr 2026 17:36:25 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= wRd/LNkrvRz1DsBjodx4Y6wMCeOUpdwMyOE0mSsx0jA=; b=nLfgE/n3NLAQO07H 0zosDqQfqEQjScnNt3HdiF+haVytSMbYo4fPnVXcRyUW1JhILaI+0VmSR7TD+aUt +wd2Vmy2IVb2duRtoifqu2NTR7IK64zPljOp6OcUSXzXRs2hYvYTSuT7VTT3tIQC jL9Dkw3XxIMSItcQqxc3iUFy+1SHqS/4JoJjFGEkw8GPQPkVMmAREyXzWIh59r3D 0n0epqwsHtnTiv5etpMsum036WWDncxBbmer2B+j4riNIKiaPr514/QcXAi7xnRl 8yCrbuvjl0LJpiBhf1bzPfscJiEGk6H0aW35roRjHNKgxZcXJDWQXwpbd/nPHLte EXj/FA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt7x3158p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:36:25 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b258636d16so104388435ad.2 for ; Mon, 27 Apr 2026 10:36:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311384; x=1777916184; 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=wRd/LNkrvRz1DsBjodx4Y6wMCeOUpdwMyOE0mSsx0jA=; b=ITU+9Vck4uGiaBuGFVzjftjYYzWEXI9Bi0thw0kHswtXySmvpq1u+wCyFUJZY3J7Kb 50GP9XiQgKuEs/93driHfOOOeHpcYUUTmYvABbp2EtgGGdmIxcUMmvDx+AXD7GzCdV/+ JhZx0ywgqWJK0rMe+kkgnfHMt1AAtoCwFz/8YPhnCV3AfveiA219niQZAuuW8LpYySla OplMQ/7b+9OL13o/NG1stHwUOvKbHFMKyg0B+Zq70Lp3A1xYPE8IX6mGKEvq5Hf3VhnS x/OPmP0qLfHIZX8hGFwPny8ZrUTGs+vlHPiKVj/Won9AChICQCxua0JEmQSX8lHf20r5 lt7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311384; x=1777916184; 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=wRd/LNkrvRz1DsBjodx4Y6wMCeOUpdwMyOE0mSsx0jA=; b=bygoZFlHXsvvlG3e0JiblRAMOH7uwp7R1bAw2W5UZdFxLPhe9/VBjHC1Td0XAjq3YP AA5Ha31tn8FrsIY7L9erWyK+mIU8LWB6PvDQjR7XpdNO6Wi/QAOsfEwc31y49lHBFYwS 45+TMe1lux+0/c6OiwWvNJ+EYEQ3ucVMvSY0GsoMLr/RFXZWZCjEuuzYrtqtvZchGHs9 HRS0lZtaI+JXrb8PnQFkrTKATrx2fhy7Q4CvmfNk5X1YOjJSOG8QrVp7Rp6ynmSUaOMo bfOIXzl2ibQ7ZueNl1iz0vK5Avtq7gQqA986XlnSZyzNh7Z+vO9Nal20vZNQJQtIx7Hx ZNrA== X-Forwarded-Encrypted: i=1; AFNElJ+Y1w+oZF934nBI1OkgjVR5My8A6rbJ97DjWxWiabsNMNRc8sGeLG4t9LiihZLtwPnNhgo8tyV6DAAXmuw=@vger.kernel.org X-Gm-Message-State: AOJu0Yz/mSyjq7HrLB8ek4AQIKDweX7ecgRGO1gO7HnQPde/ykU1x18w ZXyraNQaRzHP2nm8lQCrvg1HGVjqLK4BIZ2mZSvIhMwR+5IiGPPGk9eeFjF9KR5MG3ecLxkhLAz OFIDId+UcDrb1L5GgchBU95/1IP8m3fiUDRHk9/nieGvhaQwR2tqEnHxVL1hE34xRdjU= X-Gm-Gg: AeBDietXXVNOzVtFn4fccvW9hahsUrSbbfiuCbGWmLCyWAe7iWdB80sP51+XjNu10cv PusIRAXeGHxhgFG51TIn5gERGrfoqB6ReFVAGN3MlhW95DpEzMelLXcefm7SRgo3CEfpuIjlerk mrB+oNt6VbCIdOWnY1SrIwjgQaUlFGlilrGAWVvfJ0nhP2wxVxqOHRwtHZXmnaed5obiSBnfoCP s1877pbKzVn0V/07H3I4P24548HPZMoOb0Tp8gC0PlkpyVB5s44vHkSiJoEXdE6BBa1tZKMpvKf JnrJSd/mlv6G4WOHUnoi/nZxvXXyCPxB4Ww4Ybs34LYgRBgYy6owllKJjk/CWKm4O9Sj21yd+4H a8sVsies6/jCPUVo57iIT1EinWqlJ+nSfBJMYr66skh4WdD4atK7pPfaJAayPstDVDpLi X-Received: by 2002:a17:902:ce11:b0:2b0:afbe:4e14 with SMTP id d9443c01a7336-2b97a960cd2mr1555625ad.40.1777311384263; Mon, 27 Apr 2026 10:36:24 -0700 (PDT) X-Received: by 2002:a17:902:ce11:b0:2b0:afbe:4e14 with SMTP id d9443c01a7336-2b97a960cd2mr1555295ad.40.1777311383693; Mon, 27 Apr 2026 10:36:23 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.36.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:36:23 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:47 +0530 Subject: [PATCH v21 07/13] 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-7-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=6423; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=P5d6Br3dWmkgJQvTmqm2xZfcEwgYOHL0jl0KY/yqwaY=; b=+SQenioOGcW7SFDLo6mJbiDF2OjPf6L5ZwJ8rzJ2IHrPTqZFE9/b7EOq4UW8Y0mSKF95PGCxY F6xXYyiRGuFD8AOML3Jm+c2FQF43heEHHn353zsVf967jshES3lBeqB X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfXwxNMminQWUtK O6Ve2NMKQ3PYAvYSxTmdvcZ8Xc0umc2Pz69wDvX7bPIjREeFSVlcdQ2sa1Yb7aIe5bZwF8Oukyt hxaLl7eZryplyxto4NPgpRmxRheuXl+Lok7CQRwHKVpryYJbLSsPXXX8jk62H4OT9YMzHciCxEi IaEHaJT4cQ3wftSBd2j9EF4t420AIrXatJ07RrsjEgPMjEc6b69A2RejOZ+0uWrlTLMf6+3r1ZA Tl7p/vMUz7ZMy6MDOAP3ycKHLRb3WfxLvDQF3yzGddVZfLchc6EutM0IY6rd85xuo1QjbslSyNU LnNT3tT0BRdY1gn0qzb51ZrmaMLf4matKeSlLsK/jtKGnqWEtMGXfvxyPoNockQLPDU/LBYV1RY mTd/C4tLKwijtz7mHVdi9zfghvT/UZ1/ekcJpJ8WZRKB4CNZkOx1vGi7hAq9dmZnjSw0qoR0FIO KP8Yrdt3XC8lVDz4J2Q== X-Proofpoint-ORIG-GUID: QV48FURrGPNKsFKFlQor42Zst-szH9AR X-Authority-Analysis: v=2.4 cv=AJEsYPsu c=1 sm=1 tr=0 ts=69ef9e99 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=ywhReTWICjBcZAfHApEA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-GUID: QV48FURrGPNKsFKFlQor42Zst-szH9AR 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 PSCI supports different types of resets like SYSTEM_RESET, SYSTEM_RESET2 ARCH WARM reset and SYSTEM_RESET2 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, predefined-resets and vendor-specific resets. Predefined-resets are defined by psci driver and vendor-specific resets are defined by SoC vendors, under the psci:reboot-mode node of SoC device tree. 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 --- MAINTAINERS | 1 + drivers/power/reset/Kconfig | 10 +++ drivers/power/reset/Makefile | 1 + drivers/power/reset/psci-reboot-mode.c | 109 +++++++++++++++++++++++++++++= ++++ 4 files changed, 121 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 333b01fa00b8fbd15e6f31a6b9af47600411624e..8cebc2c7e161c8a226802a41027= 56b4ed6034395 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -21240,6 +21240,7 @@ S: Maintained F: Documentation/devicetree/bindings/arm/psci.yaml F: drivers/firmware/psci/ F: drivers/mfd/psci-mfd.c +F: drivers/power/reset/psci-reboot-mode.c F: include/linux/psci.h F: include/uapi/linux/psci.h =20 diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig index 124afb99febe92450b6ae322aeed3b63fa2070df..d9d1f768b8691abc3b32f267551= 9f2ddbaf19b84 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 d7ae97241a838fe1b536b2f911868e7590d12e3b..02948622fe3d00e165f941108ab= 92ecb66b0f0e8 100644 --- a/drivers/power/reset/Makefile +++ b/drivers/power/reset/Makefile @@ -40,5 +40,6 @@ 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 obj-$(CONFIG_POWER_RESET_QEMU_VIRT_CTRL) +=3D qemu-virt-ctrl.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..29f53d2f50da8e34e714adef950= 7d340bc4130e2 --- /dev/null +++ b/drivers/power/reset/psci-reboot-mode.c @@ -0,0 +1,109 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include +#include +#include +#include +#include +#include +#include + +/* Predefined modes use reset_type =3D 0 and cookie in magic[63:32]. */ +#define PSCI_PREDEF_MAGIC(cookie) ((cookie) * BIT_ULL(32)) + +struct psci_predefined_reset { + const char *mode; + u64 magic; +}; + +static const struct psci_predefined_reset psci_resets[] =3D { + { + .mode =3D "psci-system-reset", + .magic =3D PSCI_PREDEF_MAGIC(PSCI_RESET_TYPE_SYSTEM_RESET), + }, + { + .mode =3D "psci-system-reset2-arch-warm-reset", + .magic =3D PSCI_PREDEF_MAGIC(PSCI_RESET_TYPE_SYSTEM_RESET2_ARCH_WARM), + }, +}; + +static int psci_reboot_mode_add_predefined_mode(struct device *dev, + struct reboot_mode_driver *reboot, + const struct psci_predefined_reset *predef) +{ + struct mode_info *info; + + info =3D devm_kzalloc(dev, sizeof(*info), GFP_KERNEL); + if (!info) + return -ENOMEM; + + INIT_LIST_HEAD(&info->list); + info->mode =3D predef->mode; + info->magic =3D predef->magic; + list_add_tail(&info->list, &reboot->predefined_modes); + + return 0; +} + +static int psci_reboot_mode_set_predefined_modes(struct device *dev, + struct reboot_mode_driver *reboot) +{ + int ret; + + INIT_LIST_HEAD(&reboot->predefined_modes); + + /* Always register psci-system-reset. */ + ret =3D psci_reboot_mode_add_predefined_mode(dev, reboot, &psci_resets[0]= ); + if (ret) + return ret; + + /* Register arch warm reset only if SYSTEM_RESET2 is supported. */ + if (!psci_has_system_reset2_support()) + return 0; + + return psci_reboot_mode_add_predefined_mode(dev, reboot, &psci_resets[1]); +} + +/* + * Pass the encoded magic to psci_set_reset_cmd. + * magic is encoded as reset_type (low 32 bits) and cookie (high 32 bits). + */ +static int psci_reboot_mode_write(struct reboot_mode_driver *reboot, u64 m= agic) +{ + psci_set_reset_cmd(magic); + return 0; +} + +static int psci_reboot_mode_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct reboot_mode_driver *reboot; + int ret; + + reboot =3D devm_kzalloc(dev, sizeof(*reboot), GFP_KERNEL); + if (!reboot) + return -ENOMEM; + + ret =3D psci_reboot_mode_set_predefined_modes(dev, reboot); + if (ret) + return ret; + + reboot->write =3D psci_reboot_mode_write; + reboot->dev =3D dev; + + return devm_reboot_mode_register(dev, reboot); +} + +static struct platform_driver psci_reboot_mode_driver =3D { + .probe =3D psci_reboot_mode_probe, + .driver =3D { + .name =3D "psci-reboot-mode", + }, +}; + +module_platform_driver(psci_reboot_mode_driver); + +MODULE_LICENSE("GPL"); --=20 2.34.1 From nobody Wed Jun 17 06:29:43 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 E21BE3DCD99 for ; Mon, 27 Apr 2026 17:36:35 +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=1777311397; cv=none; b=AkWXVoTp+leOVQSikXfpTJNK+fqj8Og4vVWTXWbUUiz80gTYH6kB998KObULn9HUNabw6+TyUnAGZPuRFGujDg0pwcQWtyl6yeufG5KsJ4GmkYtiKHyeGBZaJNIxOe9MvUbYEOakEuF9ZTkDDZsVvQCxAxj4ZBNGfXZkFPx/P1w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311397; c=relaxed/simple; bh=fNH9qCYe4Y0NmzftG8HGe9p8tkk1iIJgMKEMMVyfJQY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dTHMyyJUskmroStjqPvgvvHVTxzIlMlFhGr2KFwo0hiDB4kjEn2zU+aP80Zz4nU6oufzIYci5SX/cJjeuLS2vDJ3QgbRUO9t/YlkJUwqpFNIMpcNtxCyRAVZ0fC1v/j0Q0ijeAIxBIXp4zlJKVT132Jseoh0C4k9DA4bQIFUzyw= 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=T12Xypqn; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JOWHG9GV; 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="T12Xypqn"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JOWHG9GV" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63RGbkaQ3123625 for ; Mon, 27 Apr 2026 17:36:35 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= mTylmpgaZ0jhgYjEQvu43uNWIUtaitxie7wYdhQCPmM=; b=T12XypqnQnquQ8mC ng1tcHHYGf3IDDJ0HFnTlGkA0m4XQU3DRNKv8t+IFWYJJSaA8EYdx+pQKyJgIkkb QYb+aTcPHcmLzZMN/+saSCSmi8+bAa5wu//Xvpq6sECD4pgbLPw/zBavv6wc6AeQ gojy27n40JkkXRLDuqf/HBrVM3HGIntDvAeyAdTDXGF5OqEUSez/FB6nR/5oOGAA QEt5bTJ8XiTvoLLXBQ4sMF8QVFf+5tuL35rJF2OjSvM0jo0QDvJfPZ9q1o9VFnl/ rt5RZYkzo2NJqlxK38YECYUl6WzlrGcYM3z7ESuPPl3YHQPUjDnqaaGUNg/jbFUU 2WCB7Q== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt5qghpa8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:36:35 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b242062308so195442985ad.2 for ; Mon, 27 Apr 2026 10:36:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311394; x=1777916194; 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=mTylmpgaZ0jhgYjEQvu43uNWIUtaitxie7wYdhQCPmM=; b=JOWHG9GVEQLyz41T7jjOsUpXyE5v24UbowPqvQca/XDDos2I0GLoobJCx2EEMdyk2y c9adcnSr2B7Osn3EuPjAkRb5owr47cHcclW00UwYkbB1PlaC/61YQLkHUeDVyBLXsWUC JdMKecoZqHHuc2Z4nBkwlVGDKCOZNvLvvdHm8NZwOc75+sUk9wARk9ZQxHMgx3Di6uai e3W4gNBpgyBmzTWHK1mhSWch75sO9fxfD++aG/GfQa8butlFITqVBwcfb8bd9wTYj77M L0djfrfYyHkdT/LozYfcx8gAkYhEG7evKevLPAdKRWr2xZp6018iCBsOmZE2SzkQnKYo rLJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311394; x=1777916194; 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=mTylmpgaZ0jhgYjEQvu43uNWIUtaitxie7wYdhQCPmM=; b=aE8MRkzRXjPbjZYOLDVfRnm5vNvf0gPr7WgzAFC/c6661YcQAP0ASXoms3T+6OU+Ug y/nreGG+C5kIZb7XDumZMCGoZwbuQD/h27DgxAKsCJa8DPIhx5+Uj9JH4ft6ZnSJBpTP 5Tf7uUVLIIIq3zccK86Nnj/zMEDHETTt5V30KmWjnfyYSsBPQ4ZWIjUji+8LlbEA5oG2 xoraNR3OMK8gB6h8usgb44/PUGzwOsKVFUN80W5BVAYHkvVgpkGJeA6QtN9k0iTAW+Vr dfbFkuncORh3cpBMp8BHLwXLCPIC5cAxBzK9XqerzTDuoRiegmZYNV79UN0Km84FTLik GJBQ== X-Forwarded-Encrypted: i=1; AFNElJ/t5tDpWPKugnzofmtzs6ogGahmMlfPqGC+8mN/ZxiClytjDS/dx861ZiJAZtV+ARrJzx57Uoze0OGWhyU=@vger.kernel.org X-Gm-Message-State: AOJu0YwpnIL9yQ+zitBV/fyE4k3GWcpvzVGlFNR1PiH2aXnikNygTv/L EutltCQQizSdFXOXkfnkk1nhQTHUSQzCPA4cwLCyXJQ35fu9vFQA6fr3M1jW/z1GnkFjLou+W+g zjrdyoU97lQNg44P44R+dG+uTgmWQnXHqovG19+LmFoyXyL8D6qwm8i9XMVya0hDsm/s= X-Gm-Gg: AeBDieur/K2h89lkV1+REo0Fv8bT+HelhD/Ck190FFvaJgbhe77Rr0jLLIiJNpPveIJ MmP2nwrNxNe0BPHY8uxRRO5jumA7TdgSAMcJLKHQqUEluy4f2LIbhhxU5f07pOQ1bmXZsw3DWa0 6KIH4Wajzxe6aEaCywQ6tcrpUdHbywuxPYMoqTEVcrsGoVxbAYKrdVDIAlfxSHttKT7tQjpVVmy 8YMNlNCoFzthCw+xXjP+/A69EXUkr23sY689vJ9i++J8rxylNVItMRzzS5vdz5S03X9TsX6TiDA UhQcL6tCAP4ROa7YMVAlhC/N9RlTVal2YuGCgMuHci07Jkrd6gEXPBqNc1/S6zrHSCuMh7UU2gr MP0ei2hH83zKqO1df93hPQvw2JB/Ez96cAegLFBZFpVUnpV6OuWcHcNporfHm1U6cLLmZ X-Received: by 2002:a17:902:968a:b0:2b2:5091:1c0a with SMTP id d9443c01a7336-2b97a97d026mr1052235ad.41.1777311394465; Mon, 27 Apr 2026 10:36:34 -0700 (PDT) X-Received: by 2002:a17:902:968a:b0:2b2:5091:1c0a with SMTP id d9443c01a7336-2b97a97d026mr1052025ad.41.1777311393841; Mon, 27 Apr 2026 10:36:33 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.36.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:36:33 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:48 +0530 Subject: [PATCH v21 08/13] mfd: core: Add firmware-node support to MFD cells 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-8-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=2427; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=fNH9qCYe4Y0NmzftG8HGe9p8tkk1iIJgMKEMMVyfJQY=; b=ZRQqaXwPk9eM6B4nM1bogpDoTT6JjboYi/afKdttQA9pSYuU0vd20Tg8Ykkl7Zc2sqmXOR127 TjkQY84p39bA3wuq+0W6rtvlHbI8XeqZqvU4Lvz1j5Jn7/SwHMWXP5G X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfX/6AwsyWugkiI +UY9t6d5nXtF0bCQsjurL1+D6Lw2enLAwx01winEGZYBtAs73aM14I3PhPMOyS4NHtJJ+aswOAJ i97GBsxqho/ijKrWiaKZEQ4W97HGv/GCv9QPW4AO21vBMEUM3i779Q7e/t6/J2nQt0CKuWMaL9G CqOddYwLhH3cCCW/QvUYpZM+O4CucK9XtiSDKOXd8Ca1JHuEtjwjpvSWJsoFft60f339pc9UpNZ wNTmDrJajz9ryE4c6T844uvKimXTdHpAtbZKsXRqIuc6VL6HefKEhHI6OU29HQP14v/xBfGOxgF mGJjTNJycpMcfACODZyzJzc8zW98sjI1aOAGz2y6VbTgBvyArL19cmYzj3fMKhT9Z6Ah1N0RyoA uPa07GTS31urSZpxkw4bF05QoU84DEbJcbKeINif3hfZQZ3/SsL4/2Te7nsRiR9acDuVLBG9Aq3 j0rG0RrW275h0JXpJ1w== X-Authority-Analysis: v=2.4 cv=V69NF+ni c=1 sm=1 tr=0 ts=69ef9ea3 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=JnGLTex25XOQSkTSfOwA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-GUID: Jqn5F3dXUeWey0o2o842dvIVfU8ZAI2x X-Proofpoint-ORIG-GUID: Jqn5F3dXUeWey0o2o842dvIVfU8ZAI2x 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 suspectscore=0 adultscore=0 spamscore=0 phishscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 MFD core has no way to register a child device using an explicit firmware node. This prevents drivers from registering child nodes when those nodes do not define a compatible string. One such example is the PSCI "reboot-mode" node, which omits a compatible string as it describes boot-states provided by the underlying firmware. Extend struct mfd_cell with an optional fwnode pointer and attach it to the child device during registration when no firmware node is already assigned. Signed-off-by: Shivendra Pratap --- drivers/mfd/mfd-core.c | 10 ++++++++++ include/linux/mfd/core.h | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c index 7aa32b90cf1eb7fa0a05bf3dc506e60a262c9850..d2153d9b6dd75a5f55d232ba87b= d9e4abc93c8be 100644 --- a/drivers/mfd/mfd-core.c +++ b/drivers/mfd/mfd-core.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -224,6 +225,15 @@ static int mfd_add_device(struct device *parent, int i= d, =20 mfd_acpi_add_device(cell, pdev); =20 + /* Use explicit cell fwnode only when no firmware node has been assigned.= */ + if (!pdev->dev.fwnode && cell->fwnode) { + /* Get a refcount if fwnode is a device-tree node. */ + if (is_of_node(cell->fwnode)) + of_node_get(to_of_node(cell->fwnode)); + + device_set_node(&pdev->dev, cell->fwnode); + } + if (cell->pdata_size) { ret =3D platform_device_add_data(pdev, cell->platform_data, cell->pdata_size); diff --git a/include/linux/mfd/core.h b/include/linux/mfd/core.h index faeea7abd688f223fb0b31cde0a9b69dfe2a61ff..8a461b43fac360672a489ffffeb= 8d0e1acd193ac 100644 --- a/include/linux/mfd/core.h +++ b/include/linux/mfd/core.h @@ -50,6 +50,7 @@ #define MFD_DEP_LEVEL_HIGH 1 =20 struct irq_domain; +struct fwnode_handle; struct software_node; =20 /* Matches ACPI PNP id, either _HID or _CID, or ACPI _ADR */ @@ -80,6 +81,11 @@ struct mfd_cell { =20 /* Software node for the device. */ const struct software_node *swnode; + /* + * Firmware node for the device. + * Caller owns the pointer; mfd-core takes an OF node reference. + */ + struct fwnode_handle *fwnode; =20 /* * Device Tree compatible string --=20 2.34.1 From nobody Wed Jun 17 06:29:43 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 75D8A3A9017 for ; Mon, 27 Apr 2026 17:36:46 +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=1777311407; cv=none; b=rXlnRQhpsC8tm3CqpLHBARfjzLFF6EtRvemar+woYUfq2HJ9GbLmDNcJ87VjLg/lEYuJW1lSREal/oTa4Js7F8pM5DOaIZ1nEwgl0ViAebs9xgpeR2AUrRVyZtnMjOEf/0Rkao21rlJYZil1uq+IQIEtTh/50utyP+qPEz5cSv4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311407; c=relaxed/simple; bh=5h0sjs2AZBoFyTJm/Doy48a/B0F/c/N7jdCV3GRQDUw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=u0mTQikVLSNj/sjfK/bP061JSYiq5P3EYbKgLHzLR9q4E8PPaAxgvzPKcZS+aLXOFwbWW00Yd+BNYf8VS/w4tZh7hZwq0JDwhMsv7hEexRh82rwpgaPJ4VSYe0qk9uZtOIzzke3Vq8wz6aayfWgdcMO05SmfNbKrOcEhpNvc4hA= 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=ft0GGhE+; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DDTKXKG5; 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="ft0GGhE+"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DDTKXKG5" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63RCYVVm429172 for ; Mon, 27 Apr 2026 17:36: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= 1rRdDX/+Ei5K81nWEVyfEKN/cB2TrHg+BZ3igx5GLKU=; b=ft0GGhE+1wbfjrdu 3UjvbIr8PduzRljaiMay81Vl1zPBrBHl2MUbHVJybpCx+zzNnfuvrdosPj/umQBh KH70qUsgOv77c+6mLhBQNTtzEXsjusarX3To7O7lowp9puR/ZEoePpO8efJiCBk4 YNTaR6gYakUMoU5fwEo6ydW/0oGKch5VcOvjSzHn/iFiCeuuzDjVeFgO9JFpXbmA RRoZSBeosb3UMRWi8F21MhbWc05fpP9h3pROU79uxevHNZeEPxMWF/IcEXKQ2rmV lfagU1dmn+nL1fOtmhoFLTdRx1RaFzohsi9cCk8elCs8aRHtFrA8mHOPRQdJDSl7 lZOu1A== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt7x315am-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:36:45 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b242b9359aso105060185ad.0 for ; Mon, 27 Apr 2026 10:36:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311404; x=1777916204; 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=1rRdDX/+Ei5K81nWEVyfEKN/cB2TrHg+BZ3igx5GLKU=; b=DDTKXKG58apamrbBUecf6WGrV0ayeZVcBEfD3qHqmLZMsLaKEIfPR9FF57JjvqwP0Q fFCmVzY+q99Gqy7vsyWw0BOGQwfN0U0z4fhRPD9Bmi2ZiZCulghRR8WjpIMoR29j7OeP ZK4u2Y6twCTqQioEZ6Yb44HdSzj9K9tJRUv9IOOStNoke0zKCTW9jYOXRdEDUBQaXQ/w x1fHnEJYnXgnG68jBDU7Z7lihQzCylBasHeXwDAqXIAecU6sUf56AwGZb5AwysmljSAW fXcwQEWCujU0oqlGehMC5s8TEQgsG7Fus8oPvxhsYrc7CcEVFAgkrIG+qhjkheuvCR/6 Wvnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311404; x=1777916204; 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=1rRdDX/+Ei5K81nWEVyfEKN/cB2TrHg+BZ3igx5GLKU=; b=PujDISQ7f9/QRFViBJZOpx0EV2Q+et+/dZ6aU72gcHlvuM2hVn2DxztuwJeJdt7cED Rzvb4dVlid8zMja3e1s59Re3aZrHOsmraDVoSoTa8oAwdbnDfcAJmc0NyrY/qhF4FFyZ ekSDYUaVSHZL2ccEkIEy1fYFqXRL4LsRTuBGYSjoir9uz99FVYAkxa3KEBvOvdEK7HHB B9Thshxb7GxsCOai9sVKo/UeRkO9BgixoBfQZjxVPZEO7STQsL5BZaX4e3wbT7eow5ol 0TnclgcioTIcS2VOmHIor2SvhJpF9Jih9bhXlsIP1AcY1KY4NKzUkFGi2qA4EcJDdmip GEyg== X-Forwarded-Encrypted: i=1; AFNElJ+/PErjzh01Dl6SRtHiW0hCjhHodairExoWRUnNeeBi91R+lcYMJcrjmquhsx9kk8AuIpwssdMNQ1JlTiM=@vger.kernel.org X-Gm-Message-State: AOJu0YxlmjQ3oJeAqFNYZ53b2l/J9oKLWNgfcOpN7ASPD6YfBEaxDZrv 79K+KzvtG+7P3WtCcws6DooK16OfI8UndD21JoXuuNTY43T4HIzSb1I26B92lHGzJThSQ45LJzw R3l3hakCocGqI3+1WW8veXNnmU938eek2IKYleYC9m6wGiz/bwWL7jamJdHYyT990vqc= X-Gm-Gg: AeBDietRr7gpf8xlfHm8TP+nJEVCkN7PyXr50Fosb2jK9ldVWNkrh+qzZPMkth1Zsb9 6cHXl+IFTsnFh1zp2vTgPMjVvY1wOH6QlQNnrstJyyVQAWf6zifQWMvJPbZa5QdW12fabwMomiq XCBRADC7YuEx0Vv8Nb3nyBUFa67p+yq/pO2X8dkpuE2jPh/avm2+A2+xOQEk85fQjeBdrK6+8UE 83lUEyc0WvU1zLH/4IloG1KQsnTHEen+bT+aooVcgyyFHMuWm2v7Q9X3mvDCcmY3HA/r+p45Xym caJpvVszsxXBojbVlg0R8PRi5qvGLSceSz8ARqHcT76OpYQLzHgtOFsrDIFIyBHCzbumHt7Mq+F c/7tQyx1TiyBr2ZIm0zxebgyNFyUKtru2W7vnStES/SD02xSTrLH8PF4Ywd+9nJ/8Atn/ X-Received: by 2002:a17:902:c40a:b0:2b0:7d3d:756a with SMTP id d9443c01a7336-2b97a951600mr1711515ad.35.1777311404434; Mon, 27 Apr 2026 10:36:44 -0700 (PDT) X-Received: by 2002:a17:902:c40a:b0:2b0:7d3d:756a with SMTP id d9443c01a7336-2b97a951600mr1711145ad.35.1777311403899; Mon, 27 Apr 2026 10:36:43 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.36.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:36:43 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:49 +0530 Subject: [PATCH v21 09/13] mfd: psci-mfd: Add psci-reboot-mode child cell 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-9-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=2384; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=5h0sjs2AZBoFyTJm/Doy48a/B0F/c/N7jdCV3GRQDUw=; b=Qqi4nd9Oe7ndBnF8ZRdQ3G26kUFOzIzSxH9DDzNSNYCgqcDhJbsJtVvuTk/fVa0pziIz8yF/2 8/c9Fcztj1LBvM1CFWuC/OpeCF2cn5Yk6nAidAkkX+114fRCTDwy15I X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfX8mMTr88IxP5g 8JmQNQsmbeS2Ddz64vXJOkvqWCVxtlsM/38L6dexJIUrYAjtQO//CwV4qgSr1PEmB+4gHRUy0ea raFBCOqj1PgNY9klFqOIrzVD6uqySbIgbD2jf3mk09Ph4Bc4S8rF72p8krsL1x/nk2fm5DYljd0 tBnWoQqC6AyyPASUVGZnwpsn9AutLCcs5cxm0YCAWSxNCCBNq59kOVg02ZC28fMPrvGDp7nOHmJ 1MhfQxs0v+aaaI3qydEs+mBOGwinIow25FbskyKsw5Dj9YFSNRh/kEAF1t1/3WtaGza1C1iAKhy kLsXhp13vUQwPsksUAjIYXmYCeM3DBRnrXG8dPnIOgyFAjo5KiHqsPtNhRne1vDHcGOfw7yzBJY TSC7XDs7BkQEczh1c4YFcrDz7cBflJzTMH3br63UBX9XqW8kMj5WsmMpp8pcZookqYXIBNh8x92 ORY0zX3yIDuCGBlFurg== X-Proofpoint-ORIG-GUID: ZG7N_BpbGhcV7kZoi2eH9TwVIrAUSqPD X-Authority-Analysis: v=2.4 cv=AJEsYPsu c=1 sm=1 tr=0 ts=69ef9ead cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=tQ_U0J7R6L3XYHxJwYQA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-GUID: ZG7N_BpbGhcV7kZoi2eH9TwVIrAUSqPD 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 The PSCI "reboot-mode" node does not define a compatible because it is a configuration of boot-states provided by the underlying firmware. With the new firmware-node based cells in mfd-core, this node can now be exposed as a proper child cell. Add the psci-reboot-mode child cell to the psci-mfd driver and associate the reboot-mode node as its firmware-node. Signed-off-by: Shivendra Pratap --- drivers/mfd/psci-mfd.c | 23 +++++++++++++++++++++-- drivers/power/reset/Kconfig | 2 +- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/drivers/mfd/psci-mfd.c b/drivers/mfd/psci-mfd.c index 7affd6bb09dd83452664edeccb09290fe4f43186..dbb7c23b57d89765996ac887bed= a24fec76e8373 100644 --- a/drivers/mfd/psci-mfd.c +++ b/drivers/mfd/psci-mfd.c @@ -7,17 +7,36 @@ #include #include #include +#include + +#define PSCI_REBOOT_MODE_CELL_IDX 1 =20 static const struct mfd_cell psci_cells[] =3D { { .name =3D "psci-cpuidle-domain", }, + { + .name =3D "psci-reboot-mode", + }, }; =20 static int psci_mfd_probe(struct platform_device *pdev) { - return devm_mfd_add_devices(&pdev->dev, PLATFORM_DEVID_AUTO, psci_cells, - ARRAY_SIZE(psci_cells), NULL, 0, NULL); + struct mfd_cell cells[ARRAY_SIZE(psci_cells)]; + struct device_node *np =3D NULL; + int ret; + + memcpy(cells, psci_cells, sizeof(cells)); + + if (pdev->dev.of_node) + np =3D of_get_child_by_name(pdev->dev.of_node, "reboot-mode"); + cells[PSCI_REBOOT_MODE_CELL_IDX].fwnode =3D of_fwnode_handle(np); + + ret =3D devm_mfd_add_devices(&pdev->dev, PLATFORM_DEVID_AUTO, cells, + ARRAY_SIZE(cells), NULL, 0, NULL); + of_node_put(np); + + return ret; } =20 static const struct of_device_id psci_mfd_of_match[] =3D { diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig index d9d1f768b8691abc3b32f2675519f2ddbaf19b84..79559206d5852ae5eae4c8eb2c3= 90901cea7531c 100644 --- a/drivers/power/reset/Kconfig +++ b/drivers/power/reset/Kconfig @@ -350,7 +350,7 @@ config NVMEM_REBOOT_MODE =20 config PSCI_REBOOT_MODE bool "PSCI reboot mode driver" - depends on OF && ARM_PSCI_FW + depends on OF && ARM_PSCI_FW && MFD_PSCI select REBOOT_MODE help Say y here will enable PSCI reboot mode driver. This gets --=20 2.34.1 From nobody Wed Jun 17 06:29:43 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 E050C3148D9 for ; Mon, 27 Apr 2026 17:36:56 +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=1777311418; cv=none; b=jFpSDox3HY+HJAy05N0Gfp0I7j7PBTufGEk33Zf9FriKJcL+urDjKJv/clAIvV6YmMIBf+JhnJvrZvTBO+L4WiGwMEmATEDEGFNrX97NOkdkMMWEb6hG5CXYBCtMjIELcn5hsfl7lpdr/1Tjs5AdQmvjUnRZWWRu5wnQqljteQ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311418; c=relaxed/simple; bh=lzFmHffITL4MZ7Zhg3ubOyGGeoOeSnOg+B50ouxJsO0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=F/zb5cYo7nqCUXIlvgPg6c53Qsq1hhI4TZX2jIg9g0pdfQBuUs93r1LrUcrp62ob5FqZQRivKA+SeAIREvNTN7RUr2Tc0Rwxc6dDjugGtptVcqpwytgECXEl+U+uwR6/9mX5McUo4zvjMWMmU0YN2ZfR77ld9Z35Pe9sP+1IjLM= 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=oNmIGO0/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UjxugvnD; 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="oNmIGO0/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UjxugvnD" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63RC5dPL2006215 for ; Mon, 27 Apr 2026 17:36:56 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= q/yZ4bIJyOI7G4zqRHN1bsvi00G0rNpCoyBy2l1oBTs=; b=oNmIGO0/RbQPH5mY JAzuBa9qDcZ5+3btq1ypb+yXum2qudj6qLr/7W3ovxv71MyXPsqvLIaQX6+/tglJ 7Yv/ed3eh84VHBS8J51wBfNertGUzw893ZTwItDPNZwWNAuXITblVhFsD1rGsrHr 2n2Satt2oMFq5AxEDc0HgSF1z+rVFvdfmB9owAJAojCgfofdRqfqYZvYFd4QrhbZ +r9fayRmSH+2CkqgKYmypRQGy+V8eFWciJDGhQdjwwD5vU+B+w3l5IjC5Wlv0D3r 3LfakyVZATidcLQxflcjm9rYRmb7cdz+tJBWpGNB2RIOG5K5KY+HPHVcr56O6nhN ARzzEg== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt7gkh8ff-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:36:55 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b2e8bba2e6so149756115ad.1 for ; Mon, 27 Apr 2026 10:36:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311414; x=1777916214; 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=q/yZ4bIJyOI7G4zqRHN1bsvi00G0rNpCoyBy2l1oBTs=; b=UjxugvnDCpdw2hjcD7FtmB6Cn+JwnRAvQof9tjS1MwPjjyccpT9Sg7+REZV8c+GsQm FhYtN3StaIp5/BlG4qe0KXygiaRrtgVz5VAGd9ZXwfclDrNVq2oyYyt8xJCbj/bY3qlJ ew+E5WmVyLdPlswIIWT6RjCWF1BLTEVvuOBCmR61XvvLxBmFzJYtCNTPEEYT3djaIbym +XCWIAuQoIt9JBf69FqOfoiB2NCgOHAeIUMES8eDAaRpHi2nxi9lfBQ0Q18ZJsLBMJ1f x/jxG8JVdfduBYq5BRCEURAuTBRlaCfb9ReFJVrY46ARgm0gDbLfVoAfBpLesdT2MxQl 0feA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311414; x=1777916214; 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=q/yZ4bIJyOI7G4zqRHN1bsvi00G0rNpCoyBy2l1oBTs=; b=sAy6sY9pyMxmqCE2NCsmQSnYr0lLtK1nW0oFaSVGg0vd0jrtE7qT/jUsRp4MvG08ga Zk65qHxOWN2l4K6Bwt/O+ORaZFjAJ0nM6wS/ZWXnN7Y60YyNlJbBH+6BNTrK8FJ3tHC5 AVDVykFARUq903aQastXikAwl5X63NqJPI2lvZ91siV/dtzDhY45I6jOdgjRpQDVBcR8 eAC9reXADFeSK7vcFyDK/w2GeFwLbVfBy5uv6itHEB0QfHznQce8olHZuu5BhbgGcyce T5Kj/ZRx9EG5fCV74vx3uXf+PeDCkAUKDddel7HV+Q0k1kJ/WDoEzJ4c8V/8KxFAVnGH VZkg== X-Forwarded-Encrypted: i=1; AFNElJ/T+ioeHCXgZg1Fkm2my06XBo7D0q3AaQMLeRhxujKRSMc92ZpLYjStQqIhLaYscndACUJwJU6KekvW85A=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/SONXYewnXE8uA9AhEm60ZAnnl9bazPWBltCJ3fzctFSq2otC mRAE5YNcYij9a5mxwhrQzAZmy/4DcPG15WWn4sBnbh6okLOwlcK5ceroU1avnSnXlWrmXliMuA6 jSi72NrdOgtQG1MWcSs1MU61syJISE/sDzF3zgBkx7rPjZunvaJTNdZlqFHAvhqYAlAo= X-Gm-Gg: AeBDiesflD6B+/Zpdwzg6rTPKitu6N2qUvNuYZtK7LS7SNpbanwS/nfMv4gYp0ZuFsk 6LlOkh7czj6hGDNPLV635kJSMNmdaPchIe419kiBf79rmJOG8t6I2on0itkhohvM8OcghUAiOT/ gbVE6hSwRwin+rMz5Dq5O/CEdiBUrz+myA/T27u9f3IgGzsr2uVaUv8FFReqYht0caeuinkXciN 2nNctHZtqxtQ+JwKl0U/EaGuwbyDfKsPMZz/f9+NxWhgXQpbhHOfWxOdbLhKkg2yBA8KEf5/k4P RhKMCKRWimjh/YDguBa5M8BPy3pKqvomL3vOJXmuc+YSqMLJsBJgn14IrMSXXj1mfYRvmraWQ0r eG4Gi7FR0e4gXh6RJ+d/HHnlJS414SfgLu0aPApAB3T7VNHMfRiNZ16KMIAaHnftVJGzv X-Received: by 2002:a17:902:930b:b0:2b9:5d1b:73da with SMTP id d9443c01a7336-2b97a9498d1mr1240305ad.30.1777311414261; Mon, 27 Apr 2026 10:36:54 -0700 (PDT) X-Received: by 2002:a17:902:930b:b0:2b9:5d1b:73da with SMTP id d9443c01a7336-2b97a9498d1mr1240115ad.30.1777311413824; Mon, 27 Apr 2026 10:36:53 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.36.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:36:53 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:50 +0530 Subject: [PATCH v21 10/13] arm64: dts: qcom: Add psci reboot-modes for kodiak boards 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-10-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=2240; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=lzFmHffITL4MZ7Zhg3ubOyGGeoOeSnOg+B50ouxJsO0=; b=98cReqLFE1VvbI3WMdumayFbZvKuX+6jokI+ZbKawI/g6LlmRmm1VnxCiGnVLXZwxNIU5qBGG YfhdC626zMjAwn8yAogRwMIqB5/RL9mpWKk8xilVRkbwq7id7zsCDrI X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: 2FHqF2xsm2q-L-9pwpVw3l2Gh2eQSTJ3 X-Proofpoint-ORIG-GUID: 2FHqF2xsm2q-L-9pwpVw3l2Gh2eQSTJ3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfX8W9gnm65ki1P EyTGuJ98e8xiN4jKQd7QWZeodhd7vDHhY4El/BIUcW/A4FjuNTKIA0w9TB+7u5EG0bAumgvqVhf SjX3OGK6wLTZCza2jv+X36HPva9rHidR+jx85CXxolvZM067ZHxtRHg6LHPERv38+Z0CW/XVMrs pwww68UqRD3tqhvJkC41oyP3pbgZvr4+deh3sNIG0y0qlPn1uhWGLhVudE0614tDNl1xBR7X1LA 23lKc4tNTWU+DJ8ltdBIB2oNPlK5RzkD5HR89kWmxfvCNdLd24caJZc5ye8VCfwK+X4hKDZG91A E0XO5XXhQewuTJMwcIGfFDLCV470gwqqARaiI5JbI29l3lQOuHaBCjl4QAEJn+jat/nrfBjHSyz EvhmA+4KFiNE/NwDAwH8lqyNhoAQ9EcTiOtpzzAJwciz4zhPjtBgfBtu6qVoVc89vbayJqfmrxN FGEbIPGzUurGCSZ3CSg== X-Authority-Analysis: v=2.4 cv=bJsm5v+Z c=1 sm=1 tr=0 ts=69ef9eb7 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=t9IVmYW30V31rltyR78A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 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 kodiak based boards. Signed-off-by: Shivendra Pratap Reviewed-by: Bartosz Golaszewski --- 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 988ca5f7c8a0ec5196c88881f529236c321ad617..72bcc732ab7b64288e1848edb8a= 55e2c7fe34f98 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 bdc02260f902bd37242ba96b90a858ff091e0c80..b7a0b53476395c25f264f280817= 6588f5943c4c7 100644 --- a/arch/arm64/boot/dts/qcom/qcm6490-idp.dts +++ b/arch/arm64/boot/dts/qcom/qcm6490-idp.dts @@ -786,6 +786,13 @@ &qup_uart7_tx { bias-disable; }; =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 e393ccf1884afde7816739053d41ca789acfca91..ec614003bd83664b5485940edd3= 66c9ddbd57340 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts @@ -1088,6 +1088,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 Wed Jun 17 06:29:43 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 BC2DF3E4C8B for ; Mon, 27 Apr 2026 17:37:06 +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=1777311428; cv=none; b=kTfNuBzHHeEsu1sS/ZmSnCtKxbeT5iKS1REtePZo4UIpmya0V+lIKDZNNM5vk4IPuRaqAwxm6etcYPgyH3rH+AjdhahE3pMXD2uYVfolGrmG9WlFl7AomDovgYABGGEdEqPdCOzI9N3SqorhNIUodfPt0hHZEPwqz8qwGvneQjc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311428; c=relaxed/simple; bh=h00z8eJrG9Om/PVeRuYJqWqHHclJ/SVVNDy0H5KfL9w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PLevYSsXFGTgOgxxF8hjfkXsEs4GQRCv00f6dfgIfVPo0ZMgSvrmaHRiPyT8268Q0mEWfMehpAVpiP1LIQrhImYMHSmtvMLciDb9+FwvCGC9QvCmq/4QbVRqaPIoEtg0yBzW/M3CSRVCNAqRqxjEZBmS7u8gMRajY89iIo01/5s= 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=SjH4Qx0/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=aQkYblrA; 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="SjH4Qx0/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="aQkYblrA" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63RC5uGD2006990 for ; Mon, 27 Apr 2026 17:37:05 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= oiKYNjR7tdA5pwtW1ikVn9/8qKjQhXp6ICOArgh9fU4=; b=SjH4Qx0/YBGE9Pkz +EvcyMX2J6ffdxIzk5k0z3txVMhYZ3+ebNnCGADmPm5bIzE5xeTMCJp1zEKWIvDb vguIHW/RwUljNF1tSJZXVOceMF1PCUxOhSjz/1r4WZflca10YE+566I4yRSdnBDH XdcdHI7V9sStsz+uplme0GiTWypJjVIp/10lVPmMKp+uLFhe+LUTK1fL9M973Lvw VUor2HQU5pADclP9Ja4sSDrl8AGF/7tNvWDtWNsBuQ5RK4TGw6GJrrau78FUUNad iwyQ2Lfe45gCYIkEspU6SW7l0Ja3GQjqQxlatAimPicyDc8T818zBvjF67Xrw+Qs igbFIg== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt7gkh8gg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:37:05 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b249541063so93778515ad.3 for ; Mon, 27 Apr 2026 10:37:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311425; x=1777916225; 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=oiKYNjR7tdA5pwtW1ikVn9/8qKjQhXp6ICOArgh9fU4=; b=aQkYblrAcr4kQNgNSUuA98+GsCd3mFkakF9/nY+Sd7v9ecmoaUUl7WbCgEjfwm4BF+ fiEyq1fQZ2oQuDIrhX8mokigqz/0GRlVjKq3eoYXwCLwDW9xM4cgtdr3E+PSQOQsNyBQ xDCuzt0UV7DHwF7KOl2xBmc/b9vllA4FePBBYyjh2yij4c3xDLid5OsQwnA4Tm36fkpy m8SOQJQewsvmt3k8yXXRVdVLMNyLEkMV8lw13ij+EINVYsZShW4NnLOaoVlg6jvbYxGL MtcLlBiURaacKdaLGjdsLWOX9U+396SSbE6PviBYss5tLBTbFe7G/3rjuaTuWu26BI0o KHPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311425; x=1777916225; 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=oiKYNjR7tdA5pwtW1ikVn9/8qKjQhXp6ICOArgh9fU4=; b=QdQdKikfVNrDLGXswAe8OdkGwvRUOVmZ8zhSuOraBaBIGIPpUscoz7ztbvSfeXGVmo xevCOjC7davlXKehoDppW5By2GH0pA4gRb1uBlDUaBaoq5+wg3wk5TcuBV7EQcEj1Fm9 s0PljPIY1Un0e728k0IOiGE+NRj/Y6ahfonWrgQ+j7xTiW32aOlJMVhE3uycfEHcRIve sd71xCnwLZ3PLdS7fIcjbhSsx1sJLYdDmH/nFIjt0YevuHfARGuwhLRz/5WC9LM5kqjP FQxZt8C5UcjM2JL6D7xDHl0GVyjFTtW03//2dLSmEyO2Tl/5PybyeLPIyaYsJCGi/l0z URmA== X-Forwarded-Encrypted: i=1; AFNElJ84Nw870gYCiZGZTxi1EwYNKaFfGZh2aYN313desHItigKTTTVHaFXvfpACcfxmf9HQEwfiBSVIdRWghHo=@vger.kernel.org X-Gm-Message-State: AOJu0YzXVY8WIOJOqhHeIN8d8wObVUKmjW9FvT5WrHexTWg7+61rBJAp jMpPy7sG6xH6DHYnwjKntw6hLzsy4488j0NP1s2XRW+t/+6aJGh2S8y5PwfCXmclKhXWDuGi2x+ LnGmYjHSibjtV52RbXliueUWOYikeAnmXq4c1qzzQNPwyxCauVDQ7w2SRZkbPyTCjOR0= X-Gm-Gg: AeBDieu9DqaZp3kBpqmKxeBwxabQmAHH3NPmyy3oF99UjTJwnBW+lA//RHPJkJm4e35 l5oqYvSB/GH3if3epoCnx8UdRCgYpyPVeWT3A8GMyLaH/J1rLKN12qspu23YpfVzeur/cM59pBp KQTV8KY+gQfUlDVsLQ8TsiSbCiMYOcTGGdkqBpo3VeD8t1rHAEJi5fJyxg35F9MLCoqH87ztpnJ +5RPL4rOqUImAHKDxW8g3YDg/WodZOtB734oHRgqVan4whsE52O5c+h0/X5mx+6bSO6zu60FCT2 n3lj6fV8q+4C0aL0Qf0HGgJ6AcwdjYBOHsUB//Cbb43pAAenXvCsSqQ2BtGJZ1WAuj++Vo+q5gh 96bHUc9dVhB0VR8CndnScmCSR5IgOPtUAkFv8lCxibKBC5O+8PwjNiBTQ/DIDmTwJtvZl X-Received: by 2002:a17:903:1a6f:b0:2b0:61c2:8e83 with SMTP id d9443c01a7336-2b97a924669mr1660005ad.20.1777311424500; Mon, 27 Apr 2026 10:37:04 -0700 (PDT) X-Received: by 2002:a17:903:1a6f:b0:2b0:61c2:8e83 with SMTP id d9443c01a7336-2b97a924669mr1659515ad.20.1777311423818; Mon, 27 Apr 2026 10:37:03 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.36.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:37:03 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:51 +0530 Subject: [PATCH v21 11/13] arm64: dts: qcom: Add psci reboot-modes for lemans boards 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-11-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=2273; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=h00z8eJrG9Om/PVeRuYJqWqHHclJ/SVVNDy0H5KfL9w=; b=Q35HP/J2vtbEzUDMZsMZbyjq9HYtQfZXXwSbRotBnbtk6hYnUlUP8WvO7OSd1uQ/nBxMl0dss ABpqvPjag7pDem3Sei7AtCm5F8E1ZQvfuNpYj2jLju6vlzV4BYHiHVt X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: t8hYOLyeG3KyO4NQu3ZX2zpr3KxS15z9 X-Proofpoint-ORIG-GUID: t8hYOLyeG3KyO4NQu3ZX2zpr3KxS15z9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfXwo1Xk5zkwWUD viRqaqHzBj/h2+rBxLVoFoT0pptAKXfat3qKReofmFqxlIYeNqQ45+wL4jwS5YagxEgHkLG9Hgx vVI/TbMpZf5+fcZhLdsicS5DMMqXMOKe3LZNTjqlKvtUkREIdteA56RmxRw+lPFfaubS6g5+VCu vfGsqU5Qco2VCifSZwDrSEDYzVyZ3X2QTcpXooZei7XFjG9NgXeRy13FXXtq3c3W7v6fImLjeSu w9SwiD8om0sc0entOPLXnYg6bc2B/htF5IGJOq6ZgLbaHz1MIuK3x8Fwt1PtVCqbG/ilTKkPAmp iNsZSLoYq+wfx+tsfR7ZoAJtv9AjmnwL7xCtM8qrJSmM0q8iS5SMvWG9heqzSWM/spPkcTM+LsM suVVzJdGgJikVot74P88bzJg/JgmfYKmxr2JHE6+k98yfm2DSskZwj5hGQ4Mi+oRPu1ntEwlJFf vB5oCJb/n6JwdQ24ojA== X-Authority-Analysis: v=2.4 cv=bJsm5v+Z c=1 sm=1 tr=0 ts=69ef9ec1 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=t9IVmYW30V31rltyR78A:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 Add PSCI SYSTEM_RESET2 reboot-modes for lemans-evk and lemans-ride-common(sa8775p-ride, sa8775p-ride-r3, qcs9100-ride, qcs9100-ride-r3) 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 Reviewed-by: Bartosz Golaszewski --- arch/arm64/boot/dts/qcom/lemans-evk.dts | 7 +++++++ arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi | 7 +++++++ arch/arm64/boot/dts/qcom/lemans.dtsi | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/= qcom/lemans-evk.dts index c665db6a4595cef441f4bd5ba21fe133652b97c6..8be0f50188839e6301e33a50948= a523825fc5a6a 100644 --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts @@ -758,6 +758,13 @@ usb2_id: usb2-id-state { }; }; =20 +&psci { + reboot-mode { + mode-bootloader =3D <0x80010001 0x2>; + mode-edl =3D <0x80000000 0x1>; + }; +}; + &qup_i2c19_default { drive-strength =3D <2>; bias-pull-up; diff --git a/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi b/arch/arm64/= boot/dts/qcom/lemans-ride-common.dtsi index 31bd00546d55f4e37f6dd8db58f0adc36336d873..ff01f71fad54dab735e799eeb25= ce9d0938031c6 100644 --- a/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi +++ b/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi @@ -704,6 +704,13 @@ &pmm8654au_3_gpios { "GNSS_BOOT_MODE"; }; =20 +&psci { + reboot-mode { + mode-bootloader =3D <0x80010001 0x2>; + mode-edl =3D <0x80000000 0x1>; + }; +}; + &qupv3_id_1 { status =3D "okay"; }; diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qco= m/lemans.dtsi index fe6e7635182307386c06b16a547b52e5bc4dc2ea..e3ba8a4b57df02687e1321e3df9= f1e9856a8588c 100644 --- a/arch/arm64/boot/dts/qcom/lemans.dtsi +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi @@ -559,7 +559,7 @@ pmu { interrupts =3D ; }; =20 - psci { + psci: psci { compatible =3D "arm,psci-1.0"; method =3D "smc"; =20 --=20 2.34.1 From nobody Wed Jun 17 06:29:43 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 7ACD93E6392 for ; Mon, 27 Apr 2026 17:37:16 +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=1777311437; cv=none; b=CEuyJZzT9rYzzWPrQUSwv/tS+t07dA0pS2skkC10/mShC5eAzo87MFuUJtK0aDem7pTz0WPzzkbMPqY6m9bAJygQKEeyENSnQZ98VIVU6n3qp/X+dwYkJV/X7gzdMThUb/zQal+cVFdhslTD0LxGtNAxl6ve4T86slP/4eAZvQw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311437; c=relaxed/simple; bh=5QIzxz7gWGxheo3NhPJy7cnaOZvXTFo2HH4ZUk+68mM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RYL2bCsyfHYpGbo8+vv5tUrx/JqRNWF9we+QrcpE6W0go/klMcWzmkhwf1JYALldZpYdYV7HrgikVYB72G+PeuwQzYOg4bH+qM+Qp+/EnOwvmLFBIA0FCY6oTnA4y1ds9IDaXum8bKgYnei1pP4F7P7rhd3FItrYvSH/IYz+OT0= 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=pa1kiRR9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kSQ4Yvkc; 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="pa1kiRR9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kSQ4Yvkc" 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 63RE7VFT2913817 for ; Mon, 27 Apr 2026 17:37:15 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= xbPQdWSvpV1A9Kh3jDfv9xIG/RX44VAlr59SkR3C6Vo=; b=pa1kiRR99pQd0rw/ 3Io4uUb5Ect4M7AQha7O+U9rTWTepqY+VdZPBtStrlH8sbijExxwtHilnTjbion3 y/RhL1XNQJYxFOnOqA3AQFwgx+ts5LWckyghw/wvDcu5TJuYftDfbsZs2cNBsa4h GN9s0xbyjUc8n3onvZqYi9uJQbkA79yS0e5xHCauGBO4CZNPQKM/T8HNqycel9nT CHa+zHfJgmLp6gGhfEXfdo9NxZioFXUz6WZvzCGsrhys9sgyIqPDrgZ6qEUx3Zvl enYQjfLRNHStjulukiCgLJS++Le/1r7kW+dvriqHmb6gy3UD+CS+5YxCI0jQZMYk 5Oal8Q== 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 4dt26xjmsc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:37:15 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-354c44bf176so12293990a91.0 for ; Mon, 27 Apr 2026 10:37:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311434; x=1777916234; 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=xbPQdWSvpV1A9Kh3jDfv9xIG/RX44VAlr59SkR3C6Vo=; b=kSQ4Yvkc8q2aQ4Z1IBP5EH79GFaxgN/BE9Snz6hxws36qOCf8tDwKFms/FMrcqgGo/ r2Hhj3zKLFUN1ZHuzVYCmy3zSwXtnM/WSJfDz68XvP8ap0Tn++poSp3u5IuWTwU9YAm5 jh2eWV6tSfWqxDL4MM4rVFPn5N8W4TITd3WnU41gHJyL0qRuSM+1UQ359A9HgvHwrUnS VCCkszUkFpaqorUoxIKGf9N2bWfELFk9nza3mgjFkroBR+cI4seshCjR/nAxnIr3sE4T pUDFyxl5IIj2e4fWgjCN1clCG2fiDPiZu+YiFtQCvqsDplnzIgd8LtuBVT8UfgCuUb27 Dubg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311434; x=1777916234; 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=xbPQdWSvpV1A9Kh3jDfv9xIG/RX44VAlr59SkR3C6Vo=; b=AvVzFp55zCk0qruCB01tPxba0DR3ykfOQpzbuie0AQ11/Xq6x7XcPB/22kKGNqH6oW orn7Nr4Cm1IDtMoJkS9cWGOtB3PhQMjtpOhNeGH7gTCZJx91kSBadKD6AlXL5LvwUMA9 A82+pES+l7DMium0B7iMeO1xn9xoH5fu8RZeXMk/kT4IFHFNFPPQvY0VwZXJQeKqUF7+ Mb7Vg6koj+lv3mxJL/fZ3tBrWjO/ftE5TWh/SugaanZ0PsSpSVdi1p/UAaW0gDrXL33P HZ0drBwh/NXbuK7r7n5p/sjSmKNx4Nq3u0FVuCv4qjr8k/eMVG+Qi5tFmHioSFoiH3SG eNLw== X-Forwarded-Encrypted: i=1; AFNElJ9XOD4J0kTght8nqh2X+s3A8/cxBFVBKTMF9hfWdd9iMPxLSKHR0z3wmgfJkOZP3AQ3vFQdYeUMLeYw0RE=@vger.kernel.org X-Gm-Message-State: AOJu0YyxIxYZ0VuEbTXRc4+C9Lwk3PpuDsW9ld6DOyeX20kVI8JCcn4i xllearBo65vqMX4MtGD93F6IvdY9wnGdF392c/rNy+Ljk5XJuiUXMQZbtZiN5S5Dlec5CuRNdWm IvxMYTfW5lvEFKTI4tpqqBVIk4DyVpJGz+gtFFyjLS40lassMiyT8EMzC/K+Spb1VJxk= X-Gm-Gg: AeBDieu71Z62MCtRaBUHr8IYNgS6eSyNSDOl0xBSkGhtFgLNXOK4Hs5kFlySTByAUKz 71MladpeYzLFsnvB1t1G0TNZ0axGN3g7rKmDbwvTEyt5xqMTv2NUGyv49CLHIuuwdIHhG3u5i4m Zthb0iFUxWQhYAYYagSS59CzldZ6rB9VHuHMyEEVVhSOrlaFMePdM9gGdfh2GuuO02mF3hchASL vmtefYvzdGVCV20lguNQLkJPjwNK5yr1+/F/vGTmnMw+fLm5Gz4nTNYJuvh/CDKLZoHUqhvfb1S fed9RN3uaag7QkxMmx5divPPcFxPUhDFgiauMMG2MVHwvK2aqkGZ8RkIyZX06sMsjPlsESZLiTl oGKLbFwlCU/GnX1fOI8/GM8MSekcOUKVVvBgEvpKUf4sEuD75YA7U0G47o9EIl+Bfgk2j X-Received: by 2002:a17:90b:2747:b0:35b:a7be:ae47 with SMTP id 98e67ed59e1d1-36490caeaa9mr35347a91.21.1777311434388; Mon, 27 Apr 2026 10:37:14 -0700 (PDT) X-Received: by 2002:a17:90b:2747:b0:35b:a7be:ae47 with SMTP id 98e67ed59e1d1-36490caeaa9mr35301a91.21.1777311433790; Mon, 27 Apr 2026 10:37:13 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.37.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:37:13 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:52 +0530 Subject: [PATCH v21 12/13] arm64: dts: qcom: Add psci reboot-modes for monaco boards 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-12-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=2171; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=5QIzxz7gWGxheo3NhPJy7cnaOZvXTFo2HH4ZUk+68mM=; b=325D48bjWTKLlbPLVqjl4k3qXSzuj715BcxjqaXLOtBtLhOIIX41XNRMTpsTte806BXO9r4FM h4AC48/o5MuBi+c5QrFZhPxIMh+5eaRSzd3aPipb6c/EUTlGKfAshkt X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: WJhTzVmNm6F0bFMJ3xYHhfwJADjt5roQ X-Proofpoint-ORIG-GUID: WJhTzVmNm6F0bFMJ3xYHhfwJADjt5roQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfX2BxCu7yTrEvS +VpqLXkkMOJLZhSWsWoSn/6nJjQYgVUXDmQQ7f1yyvv6iJoJZPAjQML7Yh7olOTzhsvBtu8NKNF kmnaDJwGAF73+VluwUZOrRZtPkGlT7wQ4q2rpp+c0bJgxlrlL52Cdnuhgp8DJqBfJSwyGwWZ94E EL/ALntCeMe4C1VTtNaYgnf5GHimSMOOprUFHWSbe834OlPWSgmtw7cVhb1/iuA/GXF3N/Tk6aD rNkZSGoeQh4X8ZhHwVShbi1cKBknEZmQItZhxS2p5L8efCKaxrwJ1fgIfC1EIZ5wVB3QoVPfgFn wv9sGzIkHQltOuHXWJcOxu7B0sOZf92QJho13881mftRSq04Nj6Nbz1LDa+hm1UQM6RttZEYe5m Ur7Hnfg4B1P4E2mcq0V4DJ1JM3rtyd67fheAFQEh2Mt1seLz6fuxy0NsAEwTzIaLj5/RtbJDfzz vysInic1dJvD9qB3NKQ== X-Authority-Analysis: v=2.4 cv=FM8rAeos c=1 sm=1 tr=0 ts=69ef9ecb cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=t9IVmYW30V31rltyR78A:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 Add PSCI SYSTEM_RESET2 reboot-modes for monaco-evk and qcs8300-ride 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 Reviewed-by: Bartosz Golaszewski --- arch/arm64/boot/dts/qcom/monaco-evk.dts | 7 +++++++ arch/arm64/boot/dts/qcom/monaco.dtsi | 2 +- arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/monaco-evk.dts b/arch/arm64/boot/dts/= qcom/monaco-evk.dts index 9d17ef7d2caf130564efc2d0159ac0de39126e80..df668dbf2bc60175c36cabfa310= aff625647899e 100644 --- a/arch/arm64/boot/dts/qcom/monaco-evk.dts +++ b/arch/arm64/boot/dts/qcom/monaco-evk.dts @@ -661,6 +661,13 @@ usb2_id: usb2-id-state { }; }; =20 +&psci { + reboot-mode { + mode-bootloader =3D <0x80010001 0x2>; + mode-edl =3D <0x80000000 0x1>; + }; +}; + &qup_i2c0_data_clk { drive-strength =3D <2>; bias-pull-up; diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qco= m/monaco.dtsi index 7b1d57460f1e6953acc7fa06d22a1f83ab24edb0..da675f7a8f2d83f3598a6a7ad71= a99206213d03c 100644 --- a/arch/arm64/boot/dts/qcom/monaco.dtsi +++ b/arch/arm64/boot/dts/qcom/monaco.dtsi @@ -674,7 +674,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/qcs8300-ride.dts b/arch/arm64/boot/dt= s/qcom/qcs8300-ride.dts index e9a8553a8d821ca88a38ac59a78625707850bb5d..3ab5ae3124ed5314f04202b6b24= 7fbbbef665053 100644 --- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts +++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts @@ -678,6 +678,13 @@ &mdss_dsi0_out { remote-endpoint =3D <&dsi2dp_bridge_in>; }; =20 +&psci { + reboot-mode { + mode-bootloader =3D <0x80010001 0x2>; + mode-edl =3D <0x80000000 0x1>; + }; +}; + &qupv3_id_0 { status =3D "okay"; }; --=20 2.34.1 From nobody Wed Jun 17 06:29:43 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 83A643E63BD for ; Mon, 27 Apr 2026 17:37:26 +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=1777311447; cv=none; b=TOgQxM8wS7+q6PrhLxl6zjv3C12ftiOXf+f/KV45eHuSTVEq8j+9keV7GcPA1wjrryrFxU67y30PFEMKNuxBRMLmon2LfqWf/pFCjqi234SyhpgdMGZtV3eMKvU5GEpNFIKuv59mOkwMXtJ6KT3meoWKXX6EH6iYx06W1XZySeo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777311447; c=relaxed/simple; bh=3BzhTvgErlfjD/MREd+a1QNRoNkGhIpRGYMAT4WSFWQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=U2RJtl1lp5vTXDzMMvo0Li4LwD+UnBzstde7NOZhFNOF3yAh56m+BbEQJ1M43jy0jlSkB++WtQtGMyGD9m0kv2G1J5AU7SZ+CamBN3sO+48EsdY4Kjx5Om2eG2ZstzKg7ie7z8UvLs5itEZMwH46iVwiSheGdCWZQPVSbEQSqfE= 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=Ee90QlmK; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=aPXDiHx0; 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="Ee90QlmK"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="aPXDiHx0" 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 63RCp9PV2382917 for ; Mon, 27 Apr 2026 17:37:26 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= c6VbKKP68YJjXlE++Nlt7wjf5OWIFB06XgENwyM8iY4=; b=Ee90QlmKOKIevaNT g+6xaGj08ZxfGRvhKrefY4D6mEzNX/znFaG1hWabxVvm2leF9p+oVRJj8LZqFLuI tuJJePzDM/RfK7SCkQ13a+525RbJ8H5n9J2yklgp4PKjCoN9D+5wOPpisVGHb9ia tTrz4pR9pCWZDlVWgwU/2jn86oZsk5pFjzRHoX7QRZXJ3VR1ZzfoQ/E6/gCcW3ZC wDtZxRjc12e3y2RoN28lwPyIfqZwmdSpP99uGABBmJeJ603yeSsE+sMa7+NZbL63 38fc2FtWwEWIXHLMKZ7JdZaANbFyinyiQ7SUGY58Tdh3rH5ajLkCvGwZF18rBBIc tjrMKg== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt85xs4h8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 17:37:25 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b24a00d12cso106655705ad.1 for ; Mon, 27 Apr 2026 10:37:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777311444; x=1777916244; 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=c6VbKKP68YJjXlE++Nlt7wjf5OWIFB06XgENwyM8iY4=; b=aPXDiHx07/nx4pAUrCfkEosFbgst4JXaaE6H1gXL188ch051+wrVZmXcOAZxF+n74N j89Rv6X/5EnpVOSdLaE1KKFC+7EufJR4gS7RfT6Ksptzka7lQVoWQ7JUGj+pvsiZ2RNm JD5iVo3HuQD2nNfv+U5WITQAIIUEN2Vgp/fEc+sPbjc3h3uAgvOABbB44Z40VHK11UFp Gz4AncPI1tUReItxmWZw7EnOVgkfFnMXrAReoOO5YufMNrB8Ch6/EtqO+aT5hyt+FttF oAuGYSik6YEI4rF6GVOjTpF5opuvvduzFmQiED0tlk2z2rtMtqOJmkQ8M8d6u9Gq/kid urJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777311444; x=1777916244; 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=c6VbKKP68YJjXlE++Nlt7wjf5OWIFB06XgENwyM8iY4=; b=SZJi06XMYzgxH/elb3x74WUjGAmWEPsvaNyVeGY9eagNsxXuCr2yyLihw2fPmg+YFN /r1hngAvbrSZL3BJW0Bli4PYfl3ktpoXXQsGe+bh68ayl917l0t36QotFKl0K7fMlVZD oP1R2FTLvsMpSoqAHgAW8/FnmGURfvyZg5lHTPYWMoWqv+zHE1nXFL86KJuW8sFdFehY M1Mx7Rf68CWYrj1D7aLBTOomik2lRFLlycEtqiYlpFjlQE5zBrSR0m3uCxH2vazI7xSg QqwgQhXb0T3Wk52KAgHh+JhfDBXNZDh1BkpikKZd6ryzagOoun6T+3tyDUDayjpOJ0nB 2PYw== X-Forwarded-Encrypted: i=1; AFNElJ9Klrk2N/hh8lINWl8xh3eUOk4PmYfEo3/rM5OwRuMVhchaDCWG3Qqe84b0xM6yl6joahp0AxpQJQn1IG8=@vger.kernel.org X-Gm-Message-State: AOJu0YxrYMBXM7TGp/HjWLzBZD8CPV24YFzqkQBx5InNFkvvqIsjTB1t fhWYrWtFtVi8CL7D0ZBzNWFov1FJPeq4+KJsNBdgqVPbta2DF0newU3Vb9dSZP+kWqs1WHZZyve Kl/XFaERecS+VrMfviYY/rYSxJw6YHG8HTuDvmTCk7yIgEXqLjXDGbHc6IJAJwXk4PwM= X-Gm-Gg: AeBDietIAqfumzcx0fiG2KClgWmv8Iu3WswDuEC6eyvuMd3wWREhD19OgZwzykcCRz/ KU4yW/Z1pYh/w8O6/j4BRqok6IZN+I/hZPb1ig9RVbA6nKpl///YWIk9JMeH+18idnY6VIdUD7w 38uaWuJ8RO8XMQ5QCJhOFMN9WlMKpCrLafPhpUkKuYpvN3bXLT+f0OnfH7rB0G7EY/ei5c05h8J 9AovYB2hoW3pe/6Marog21pvTnwQRki4o6uX1WunaVQsn+1OohXhk1yc/8eNBiZLgGXTUZtCpD4 WedCD6ejCe6ASna4cGqss7Nkc9K1nN61C2T0sPuEnfD3AJNkP0wHLUjNh7AlbPYgqIf0TvChMcS wSgxx/LXfplu13Aawa2DwnLXrOcGWl5LHkF1AYaiupBl+fmnrRi/dhKRoaNtAPkGRYDaS X-Received: by 2002:a17:903:2f50:b0:2b2:5491:e32f with SMTP id d9443c01a7336-2b97a8b5beamr2077795ad.16.1777311444531; Mon, 27 Apr 2026 10:37:24 -0700 (PDT) X-Received: by 2002:a17:903:2f50:b0:2b2:5491:e32f with SMTP id d9443c01a7336-2b97a8b5beamr2077465ad.16.1777311444013; Mon, 27 Apr 2026 10:37:24 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aca8369sm329115ad.75.2026.04.27.10.37.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 10:37:23 -0700 (PDT) From: Shivendra Pratap Date: Mon, 27 Apr 2026 23:04:53 +0530 Subject: [PATCH v21 13/13] arm64: dts: qcom: Add psci reboot-modes for talos boards 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: <20260427-arm-psci-system_reset2-vendor-reboots-v21-13-dcf937775e73@oss.qualcomm.com> References: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> In-Reply-To: <20260427-arm-psci-system_reset2-vendor-reboots-v21-0-dcf937775e73@oss.qualcomm.com> To: Sebastian Reichel , Mark Rutland , Lorenzo Pieralisi , "Rafael J. Wysocki" , Daniel Lezcano , Christian Loehle , Ulf Hansson , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Souvik Chakravarty , Andy Yan , Matthias Brugger , John Stultz , Moritz Fischer , Bartosz Golaszewski , Sudeep Holla , Ulf Hansson Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Shivendra Pratap , Florian Fainelli , Krzysztof Kozlowski , Dmitry Baryshkov , Mukesh Ojha , Andre Draszik , Greg Kroah-Hartman , Kathiravan Thirumoorthy , Srinivas Kandagatla , Song Xue X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777311301; l=1603; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=3BzhTvgErlfjD/MREd+a1QNRoNkGhIpRGYMAT4WSFWQ=; b=rvn05Gu5bqUE6iUv9sodoL3hQhfRwlgTa3Cm4zjZRZac81OqgAH14XDEWkx+l9/fHu5A2bjHx nw7c+wgzdRID5zsDH3CkO5wFDgB8jbP8ZS1xVZ/Zpc3wmTkAnb+9Z5r X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Authority-Analysis: v=2.4 cv=Zs3d7d7G c=1 sm=1 tr=0 ts=69ef9ed5 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=NtfjKPfcWimlndMDSJoA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: megPHCARQhaWmD8YP4sQST3edGSomc7f X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDE4NyBTYWx0ZWRfX27xoH+Oy5UAN 39wfSFLZVZJlpdMP5ZtFSY6t0uWFgEWHS0tcACkHN9qfXjlhkE8Ob+EwsY1XDILy1PU4CthATvS 6+RyDfARhfYI6bEaz4/2c/s8wxejHy1fcr8SOVLpk/44jeim5XYGxpf12p8Aut/QCK5/YIq6+G4 X+vvOW5hIM+U1+X7QYIV7C7jvoEfHcWoRU1a6tt+TNdnIx7VtQq9W7xRNSiBHnqZ6EgxHufhD4B s7SY6v1EJsI+R6zo7klvn8UrN+1CXPtzfi0c0nXEx16dxMVJUOG2RmIs+KZwPcczB6nLRosuuy4 4Aun924OK1foZrezVIInAdE++dp/STkwrI9TZsg4b1RODhr2fkXnJHu6dGGlJ2T4qQEamavbb5K sDXex2NaqhrD2wfwuVCY+X4Gjy/9P5AYHvpAZVPGkaRtv5sntoxUjzXdRmJgwZDhyzJiD9V9UAI xEn/oseXO0VuFPb+2PQ== X-Proofpoint-GUID: megPHCARQhaWmD8YP4sQST3edGSomc7f 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-04-27_04,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 malwarescore=0 impostorscore=0 adultscore=0 suspectscore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270187 Add PSCI SYSTEM_RESET2 reboot-modes for qcs615-ride, 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 Reviewed-by: Bartosz Golaszewski --- arch/arm64/boot/dts/qcom/qcs615-ride.dts | 7 +++++++ arch/arm64/boot/dts/qcom/talos.dtsi | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts= /qcom/qcs615-ride.dts index 7e05f873194a0b61e80281104104079b4e0f51a8..8e0c5235f6741b80f975326e2b4= 268af068c0ae2 100644 --- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts +++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts @@ -498,6 +498,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/talos.dtsi b/arch/arm64/boot/dts/qcom= /talos.dtsi index ff5afbfce2a4744777829a1938754f02a5f6cb5c..83ba8d3bc40731f54d71b689204= 5bc1dd15d320d 100644 --- a/arch/arm64/boot/dts/qcom/talos.dtsi +++ b/arch/arm64/boot/dts/qcom/talos.dtsi @@ -560,7 +560,7 @@ pmu-a76 { interrupts =3D ; }; =20 - psci { + psci: psci { compatible =3D "arm,psci-1.0"; method =3D "smc"; =20 --=20 2.34.1