From nobody Wed Jun 10 10:36:58 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 87C733E1CEB for ; Thu, 14 May 2026 14:27:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768831; cv=none; b=qGKjQRWJ0WGaAX4NRJPwFt5l4XF4NEH1LFRTU7cn3WyIbREqjuqvmGlNwtFuVKyEOwtqsbh/Txi5dqI0Y49r/XEnx0Qpz+ZqOl+/hrunhllkTX/Gkb6QvMmGfo31I7fjrjPo9D7wFcMbh1Fl8redpoli4FErXhymbwRgEW8Urn4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768831; c=relaxed/simple; bh=3TYOHMcToCIVpsVU2Bo6DmB6sqgmdebWzZn/F1m0e+g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nhJk7CrPlOj6Wa7UY6G2iR/bsl9qycAgi2SoY66FxIWnXzzhcxrZJSXV5BXqRzUTUqMR88XD00zDFh5EsitS8L6twFC1G3L5b3nWFyF9u66wQSuPB3Yt3YEU0wZouECis1JuZUj2Mmzq4KxMCssti9OBuaHeEDNB/1ZeDyKuxp0= 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=jU57Hsc9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hH7ooRNU; 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="jU57Hsc9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hH7ooRNU" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBeRir3951631 for ; Thu, 14 May 2026 14:27:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= yLDNWZoJ4xbnRu6GNfsuL+e+3Ruoq1OnR+K2jzbSWN8=; b=jU57Hsc9Cp+8w9s0 CGvG16i8lIutD7VhNK4+CDEjGWZRymQ6x1co06YI7nnSqkdKIs/HiNRRLEO7Pt9E gOJKvbpQR2B82eB7NA39SHqJAXDW7IufZ5hH0LiscTGLub6A66gnxnDqgpTOk+hj 56noyvHc3WSofy0NjjnrKxSlfT3FtYVUy/ocxi2P+Vsaq1HfCc+u38V/4mtAI2PV vaelzXd8V9qQ3gilUk0FY/4ut+8epEVdYW0I5CSwFPEEwDmJZNOk76TpfmCR6ptc cOTHx+aHR4fG/xNniazrfsvpZoumzpizZ5Rll6cAmIHiCMYPyaLJ6QI5+dKEd5vX WQbqtw== 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 4e57kssxcq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:27:09 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2ba5f794825so67333355ad.0 for ; Thu, 14 May 2026 07:27:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768829; x=1779373629; 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=hH7ooRNUSMcfEEc8Sp87Mez6HdXqQvSCzAquS2/c1zwI45RjGqn0oUZtt85wPAJ60t 8ptdeQF207QGGXVXbG0yYB4OvnXne5s/vSrTMlIFSFaroDVqG+/8gj6cG+oejA0Vlsgw XMfUB0zVbmsKj8FrddPKruohUtskgswrYk9FSIRZVHyb3hGwj3g5Sx9t/X+IdTwb2QA0 IyVwzDz8Td/gNIgp7/QN/0MjBGUEX9L/PLD/2OB9hY7Foao222asxGX24G7hzUXNCOWl gyUFZE2jUud+SUvq9sqe/jvxb4/B93dshiO3qf4LUGl3A++RYZzZCC4Sg6Pbzvt1yQiY t/jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768829; x=1779373629; 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=S6MaN1eBbcdWp+dE8T9Ft1ZLU+RgiZurkqkrTkBMOptmcKFwbfQvDlOkWay4QzDz7G jLPto7NuO5yR4ryIywZidfsSif2GRym+30OfPWYfImN69UiUxuTEc+RlcVT0w48G6eT9 9AegujMKHQ9HVOpD2f1ydL0Lybf3VxU60GAbUGi0mASweKtQim9McUzLm9XD174KnmFi tE+3JmFJH6ElIWQkYyssYXPT875X5/GNGLk6vCSIMhIhE6tS27+B3mpvnU89FD88KnDh dmQCon6eMj0ocLfqLw4iO39h+0osmrE2Evzs+JKY/gIqG5i86XGqjFCARGN2h/2CEVXC 27cg== X-Forwarded-Encrypted: i=1; AFNElJ9VLBie1rlBlrEVCrChuqHCDhv3FglzRGQSHaNmsXKNpaJfc/mbwk7J/WL5IMoYU9oybtVDJnBtQO22AJ4=@vger.kernel.org X-Gm-Message-State: AOJu0Yzz/gK6kD/xkanIfXN9NNBiJZ5QaG4yLySBklBU4mdGprbCl/EF mqpFuH+ZMd5wA88QewTow0EATt10ySFN0ASwX3B68HQ7epObzLYWQpgABMBfjCvT/fDWqWyr+T8 dHOeOSF1Ahxibr+ac4uwg261oEM62QCt6Qp8J5z5YJh2v7JhccyT5QholC9g3bePx+N0= X-Gm-Gg: Acq92OEX+NK+MgfBxyOcYbs2vB0hHIPlo3uqs4oPZp5ovvgLhOBGIWd+6p5mBMLbLzs DrelwnpA2C/6WkgaViSu77NZsGSZ9m5MualClDu5Im1gDawdeV2/Z1vp+v+efvDNxU/8Qzvl/Ac 4lVyu9vuWoJOtg1zOPfxiEE10ponttohLSfIBB3MhlkjQkDvy95qRSnucXPFSS6XSWfgjNGFyJx NO6f/ZTrhub0dNKa7KJ56Df5dadxRfQI8Gx0qhze9ZM87KSZ4x7JQ4v4xT6mjcssYD9+5hlAG7R OEsLqQLiGnExZXvxBxngqEV0/oq6jNsrxwRN5GSiNby42623STRBOk5EaZfzrkq1l7x+wfy1yB9 edbxdBNAMI00o0+LRubtc6St/MT71Icdly9Lz0CDqH4njOvh1dxtERqYwoQ== X-Received: by 2002:a17:903:1aad:b0:2bd:5026:ca11 with SMTP id d9443c01a7336-2bd5026ca9fmr51787465ad.2.1778768829054; Thu, 14 May 2026 07:27:09 -0700 (PDT) X-Received: by 2002:a17:903:1aad:b0:2bd:5026:ca11 with SMTP id d9443c01a7336-2bd5026ca9fmr51786675ad.2.1778768828397; Thu, 14 May 2026 07:27:08 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.26.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:27:08 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:42 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-1-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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=1778768806; l=4001; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=3TYOHMcToCIVpsVU2Bo6DmB6sqgmdebWzZn/F1m0e+g=; b=YkzrmDnT6IWVQWvAsPWyXkGv3PUv6QacptH7QqP+Tjs99Ct+BZ8eqQmoQSIZra/PQKUTaAkUh swxtTXMqMYBAPyIh6JKWAQaN49fbiVTXcCgIb8O4A7VKn2jvOAYjvG0 X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: 1utEAu974QNw9PyRv1dnaTXlX8vD_uEj X-Authority-Analysis: v=2.4 cv=KZbidwYD c=1 sm=1 tr=0 ts=6a05dbbd cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=QX4gbG5DAAAA:8 a=EUspDBNiAAAA:8 a=QIdouwm7mKRySFGJXRQA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=AbAUZ8qAyYyZVLSsDulk:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfX/ZSDXdIG+siT AYd0dbFLZC9CO+QXv7UT5hxQBxGkcgRC4nVS1t/5zvqU7rky0cAxqMQ/fxACWtlhVgIR+ubl9m8 O0Pp+tP4JcU35c/BH2s49LMWSD3mqv/gg5yhcirCHOF4GJDk/SZd4nSLg5rgo7Cf35miuUR66dH h268p4aDVGJBa3LzNh4M0wHe9gjguhwk6aq0+BDGI+hSRGhyqaqD3a6iyDpH7v29OJ65QBnfUA0 dvCqNb86WCbhKQu1KU1m5G0bJ2E8RF3KTrP2mU5QCcbnsV1Uq8haxZd6I/k+JhXyMGyoPjcLe20 Lm98M2vs0J0f9mFxwqzIcjLJ+4ksE0zNRv3iHBL+g5bqgx3TRXqIyKVWZcdvARfJwio2bT5Qdc+ T0UGJ+Pu5IR5sFJhulvnmiGUtB43X7akDg1yXaqGOSA3tiE+IaATB6BWKwWhDKCt4KzwmgukD9s OnhLzN/H0KqGBDOAEog== X-Proofpoint-ORIG-GUID: 1utEAu974QNw9PyRv1dnaTXlX8vD_uEj 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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 10 10:36:58 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 4934E36A35A for ; Thu, 14 May 2026 14:27:22 +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=1778768844; cv=none; b=YM/K1OjcrqapvG+vjCn+XC8ch5rdw+PxIhQKpj4Yg9A8XayJVdhjPgvT7/1ziqlvXSbril5M+fTK9Y6dN4L91qvXrz6dVc30170KkZu1QNIhEJcp8ZyshTT5Xb/DiDOErEDJgq2VqWh8JQwGp+qH8pXTFW6QeU6I1RYhjG3r1e4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768844; c=relaxed/simple; bh=B0ZtyTNgrcb6Ah4fiJ7wnTmXZKRQjY+hrvqL1+z4Iq4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A/vI0RnY1nOqYTyVAaBFd1R81NbFgQ3D7DiERoaGejx+RPLyGGiafik9M0YQ5XIwZYkv6vZrsuKHyr0InJp5/KBLscxVzx6raz4pB4Rl9ZFub0xEsozuYkyl7CyiemUo+1J+W+Q4HP3g1nbW+wqIUKI1bJhK/y3PXhKzqTQNX4A= 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=R+2C2e50; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gH129KGq; 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="R+2C2e50"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gH129KGq" 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 64EBeWsI2554571 for ; Thu, 14 May 2026 14:27:21 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= 2bW6YUTzOuvBu0eaOmgGwPbSA1PvpkOTNmX5GKSvx7s=; b=R+2C2e509qoekEce bZ2+7KiT8IkfXYxYalO9rmWw0aiqjQY9d0dZU20J9hlylPmSsuWeKo01sU36YYui U25fAcrou+Wwe1j9fqswsYasZ3Yhp0caScniO4X5b2hO1IomYAv367rmQEeIJ2PS JFhtOwuQ3MDg/38n837LBRKmKbKpGdsc6PZP/rnJNTblN7CZOZn7QifKTTtkKuNr woaohcEbr5YkeIheVjrvB/81TViaYFsLWsU8vkiCk9zoMsEenn04oQ95Lv7B2JcF C2bSOP8Q9kK/pHG+BN47bKPIQHokMR45JlS21T8epCaG7Lz2w2qNiN92UbbF54KV NSeYqw== 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 4e5b0bs6q5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:27:21 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b2e8bba2e6so104869575ad.1 for ; Thu, 14 May 2026 07:27:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768840; x=1779373640; 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=2bW6YUTzOuvBu0eaOmgGwPbSA1PvpkOTNmX5GKSvx7s=; b=gH129KGqDqTMPUDdjLyiN67d9UJwRLrNA2YV1cfdggswNGPdEJVLNHDYBF3B8kgVG1 cy4KKIkRGuqKJZKjruZEE8JIm/Wi752Y4+6sbsenD6FQM8LQdXvlcFkgpHzcQLtidwe3 Hpdc8jJjQpeZGcfKFMD4XTGTfdyC2tWrfIBrfqIo1sS9c1RSqUZ8M73Gsm8s4bRM0QnE GDxCMSIZ1EvElTBNFG0hqUMAeYU3aeW1yqaPTQlJbP6EdY8hUBBsKlbBhWLJhtZ60QHx KtZBxFuZuVN7AdM8K+1O9p2WJuVmOUwsKwH8SMrBAMfe682qAhtKtO104Y3R/y+QHIr8 jThQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768840; x=1779373640; 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=2bW6YUTzOuvBu0eaOmgGwPbSA1PvpkOTNmX5GKSvx7s=; b=rwKBKkIK8LL6FIx03m1hih3mBKwLLBC6+89wkd52MNmTUcjRLW5BC7qgOsVjgQ9Fdk qDJR61TEBx23iyyIunmoNKq065sANFngVlhUu4wXUUkHLV7Ur0RI/a9+9I2FzSjGW/c7 t2RRv/l9V8btciOG+7XGhsL6bVMU4dneLaMuebaGsWnu32OHnGP7AyM8TrjD5rXZDo8d xXNWzSEqCBGurieF1UcAioVlTz9IDUaf+Wm9yXX8s65dCpHKQsxFqhXRuSSICZN8Ni6f r0RNhJWzhKHKZxIXAu07klKHCgexdEmsREt8CnnHy37yiXIEOaIGbQW0BxAsW7ZKe4F2 BRPw== X-Forwarded-Encrypted: i=1; AFNElJ9g76vKZcsCO64Ey7yj3V5RAwEIHthNiR9Wy0DzEiOpKZEddg9Z/uR3bkNnLfJo9Axd09waMFCHsREadi8=@vger.kernel.org X-Gm-Message-State: AOJu0Yw8EsTxgSjOXsJZqGGREatAtHHZ/XriowoekNLwsTZ71KRKkTTy rnbyhlAkEIqFmdqlWJzqTHQUNIBJ8UecFaZQ3jrHdlW+v10s+VA2+2NYPPdaJJbakyrbJz5y3N2 im+We5148S+UD7vg9yzwqJcJ6cCjPKimuCOfT9Uj+n3bTwqjn04IiUYfeDw7e4LTV+w0vLqlLKz Q= X-Gm-Gg: Acq92OHtP02B2mQ6pkCqiqawBuPbvRfLORZQnz8mB6nYDbhQjkeoNHGM0Koq0RG5Q/v l5PR1MJThuTT2SlLcxEXT1TB8kWqOgFjmAsNkyXEsumQ6gFminCy2CL7Gxs83ty/WMQ+wN6Kyb0 PdqCGFdXv11jmc5a/mvn7o0LopyImqHKLvwE7cYkhyEEjs03xEjcxSQRUolr1vrzNSqhMy0PzMk PQcmtB2SrozWh6kAsOoBi4Hcd6k0tqupXZwuG/mHMk1Qr1wAAIj4RS8cCnQ1uqRgaYoc1uJCAiz GbQszGHOTTilCasb55uUcB1iilBPjNPnlhuo4Gr0RUlu7q6EZOXB43q9LXXChH3raHqZ218Ir11 Xs2frAnKuXD8KYwBe3g1vFVtgZmceMG4HOcx30As0FLkvhE/2ZBrB60ktvA== X-Received: by 2002:a17:903:3e25:b0:2b0:6a22:5165 with SMTP id d9443c01a7336-2bd2718bf33mr68336645ad.7.1778768839505; Thu, 14 May 2026 07:27:19 -0700 (PDT) X-Received: by 2002:a17:903:3e25:b0:2b0:6a22:5165 with SMTP id d9443c01a7336-2bd2718bf33mr68336245ad.7.1778768838912; Thu, 14 May 2026 07:27:18 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.27.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:27:18 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:43 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-2-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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 , Bartosz Golaszewski , Sebastian Reichel X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778768806; l=7663; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=B0ZtyTNgrcb6Ah4fiJ7wnTmXZKRQjY+hrvqL1+z4Iq4=; b=HifSlQTw1nZj2bR6K1yArNohiisd4k/0HAIfMlCLb3nui1xiTM2XU6zK7HvyiYUoablEHqTK3 JNQpO/hl9YLAalBlclzFzd1yht+VBoc2HceBdu3evEOXSfE1duZ/8mS X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfXw/35UK5MDgrE yA7KCTduU/AkM7UvA/Ul7P7kyuORMA0Ewml90pmkBUhmizUqaN0czEv0mPsoQQF4utv98yJSBOJ PnpjuOxQ0PZmHx6WXx4CvzeZ5U5qmCYakAed/GLp6JMNuJz2xVI9MbOX5iHeoGKSWg551y9GlVP kBZTdSngOBLjd36dxYdEkr/+0ZH7w98s28ny2kRvddgq0NyD8tHMwC2LBqwOAemWf834Iry+Eyo rMKufejDizK/eOMzUnadZ9TBEG7gEyV/8pLf99cr7XQvSKlgIMYUCQqgb1C3SrtZpTN2DWf70DE luO9xldITgrUikrfcfuTPo8+/BYl7UKWXknccUFBy3G9ucNYn6ftsgKzmDdGms8lG0apgjwxgUN Z2BJurOnBXJ0LmaZ04exkRvvDw3LMTdfuKJ1+2HjXykqCdGTBbyhXXXGISHwEMHTxrP/jRFTQAB zWjsKeZbbDJpNF7Xg7A== X-Authority-Analysis: v=2.4 cv=b+2CJNGx c=1 sm=1 tr=0 ts=6a05dbc9 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=QX4gbG5DAAAA:8 a=MO_J9Aa4ypbE8kPWTcIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=AbAUZ8qAyYyZVLSsDulk:22 X-Proofpoint-GUID: rEyC5oyTkEFIFx_poT9Qy9F168wrR-iW X-Proofpoint-ORIG-GUID: rEyC5oyTkEFIFx_poT9Qy9F168wrR-iW 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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: Bartosz Golaszewski Reviewed-by: Sebastian Reichel Signed-off-by: Shivendra Pratap --- 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 10 10:36:58 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 220AC3FA5DD for ; Thu, 14 May 2026 14:27:30 +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=1778768852; cv=none; b=aUR/bHPv257ko59Wjo3fMmY0POzwgNl4kIlNtPhySo8ROvEjqZXJrjvrCwjZoiSksL8dchxgVW2R146pqh2i4d8o2ozk52DGzXPP9Wf7o6uOPoUioHx1F3EeXphr1yeKsDADVePJXF86LvT7/SQ3c1dWvsM00JzrquoJqniClE4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768852; c=relaxed/simple; bh=c0E+9Z2fyXM2CTKY2rFdNofWBhkxlwIO4amIwNdSABM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=b8Vyfxy7AIUxNceFJQUGBuUAG5l9bPQRShOnlXbtH6wOQ+6rIPf8h5NQawc9kdy2+3EqUymh96qNMp895jHm/JukxdFddn0OKSDmll7eAAqAJbw7Vjvm1bpcLJJM9qWNp30q6u5Ezey4VzPdsL9E2JmT4ZnDh+96kPcJRyp5fJ0= 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=XlROFoIB; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=M69h1C/u; 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="XlROFoIB"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="M69h1C/u" 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 64EBeXj42241739 for ; Thu, 14 May 2026 14:27:30 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= NTa5Z0fUDWnU+L8/u/WQyWQDpDzKW0OBql8292A1sZs=; b=XlROFoIBkPohB195 KgDer0B4WWYjFLnsTCTJVxh7rJFtEL5BmKAfz/u4PvqV7ByMa/P4na6JHCCsPN07 CERLUxffjKbHGaotq5dWIigouKgGUJHMwI4OL4SlihaZFlZF5wSQJmQXw2t5V4Og /axZGT4zQfoQ1xRVfh6JpIz8mPGvAAxLpiXcSMUPnWkoZeuQpcqsqdx9bEsVWZnN dSN994+qOwP7w41mG731OjIcCgHEzieGSzMmnnHi1xh4p3k0tf8nnLWdFASi47cd hSjHNU16RvqbAWLJRs2ppdNxaHOzmUrM8CxBz4yKck/1XNZUsrwnjND7ASNVgHdK OzpMfg== 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 4e513gb20s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:27:30 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2bc763c7256so119503075ad.3 for ; Thu, 14 May 2026 07:27:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768850; x=1779373650; 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=NTa5Z0fUDWnU+L8/u/WQyWQDpDzKW0OBql8292A1sZs=; b=M69h1C/uzm15RC48j6srIdKVK3u4uxHyBqbHenfeBNuNpFaBYy7CkEgN7eFAjDwBEg XuiV6Ups2sgKg8cERO75R/yH9gnIfEktRKZ5nWTDj1DnGcDgm3e8TKxkhrOG2q1Y1m6z OHZWsiFDNgLrRi2rfDpz81+snTMWB0lpUjQkcpAW2kt4vuhIwpZMxYoZEPXaGaiSSgUR T8Fs3E+l6N4+OhEEB6jimqvMqlPXEz2xrPLeAkGoB08A9y7L9VkvvDckrBDLXgpCNt6p St5xqV7ObTL+gdtx0ULdzdkRvl059t0mhYe/6Cq4d9d8obMh70Ac580mev6OilfbUYPo nNag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768850; x=1779373650; 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=NTa5Z0fUDWnU+L8/u/WQyWQDpDzKW0OBql8292A1sZs=; b=Wlls0PD1oFdzcyPtI8PorUHARMGMDZTbcXIWhp98G+4/BE9rhbfifiuIopQGxfVcYk kDvF7F/NcbL7uhM5XpACIdUnBTjfzsNT6lPUsqrOLbXjjP5mJhd+5P7SfYqlwVrQDfGK jXxJk6rq27rKVsv/mls6dNyp3/fH2xKhHPfB2f21HGhhVL4c4Vf8v7tL+4VGjlM0M8u0 KSwkXPim9IdLDlTArll9ib/iAfDWy/GCDMTNbvRbzG2grCuyPep/etLp7fKy9oFu5rfG WDaNZQGRP3wDTp3YKSG7SwPwfsP9evt2dvM8xliDP3dhsO3fgvmyXiSoEfefvQqkMKWP h1Ow== X-Forwarded-Encrypted: i=1; AFNElJ+zSSGsbAOeiTojC25ow6GAO/NcB3xv/yitweARA4drblmjeBoF+IwuTl+9t8r3L+J7gNCai/+VEXaNsO4=@vger.kernel.org X-Gm-Message-State: AOJu0YwPaC6OQtWFZvX4ZUdW5ElEfU9LePllNElYSj2q5KjmKQxnHSxt X5Rxr2XwlIaYmMFN+hbm93/YeGnvUpQ0FpEUBXYGWhUoHbws/Z6JxaVGZ5DKrt7w3pyquVHQrfA itJs+WJt5fI/Ltvty91TyocMIM0SCAqT/OGKHADDWFZ9WZ245SqS+77HwBHCKOeSLcpY= X-Gm-Gg: Acq92OGn8p9OFEikX8nTrOUdp47nbx4cIDLxk3Ycowsm6K4NFc9OOvwx1tOpGWbuJA6 0sFQvsr2kMbXsXgRgWQSUd/zcOE1pkffYwQGMXgdXCUUmYKaTCLVqM2w+F+Y3wuTp9Zx02z5XoH zg7msC4C0C0xfmw2DKIiNlbdsdxttrncdIjbMUSZbRQvv6QZtwBjE+fZ6BPwVa/YPXVHucSia6y MhMbR1SnNJiwPGoyVX5Anm1Zp0XAd+uC9qyn7PKmn+md3m7+5kvDtoQ+BrJf1ITEnD+AO691s5J 7CXGhApJA+EiBOl/zWlsDS8srh3GiUs0b4gLBegmHfkOgt4uNOTuLJ5PF7ZAQP228n1zA58j2ie +PWOG7ONkeAIXkdB0lwi0gM5un7aVkgTNsz3iXMhLnu7MpuWiXlovVXV8nA== X-Received: by 2002:a17:903:3d0b:b0:2b4:5aff:de60 with SMTP id d9443c01a7336-2bd276f2a6dmr95801605ad.22.1778768849463; Thu, 14 May 2026 07:27:29 -0700 (PDT) X-Received: by 2002:a17:903:3d0b:b0:2b4:5aff:de60 with SMTP id d9443c01a7336-2bd276f2a6dmr95801115ad.22.1778768848834; Thu, 14 May 2026 07:27:28 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.27.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:27:28 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:44 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-3-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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=1778768806; l=11586; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=c0E+9Z2fyXM2CTKY2rFdNofWBhkxlwIO4amIwNdSABM=; b=ZX/qRQMIKdlkNUrKGzne/vk8+ntfzJi9dYdwUsB3kK1cBmW3G5xbdgok6qfqVmFISWk/uhJbl b85DPBsEbqiAEs1k71lUHnmEKHdU01FnndhhCnBhPyJa55ftE5krjl3 X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfX6m4YHgh0jBBM aA5+V1cF+aqrmauTC9dep2C9xeV0Vk7iw8nHEeeLNO6GLVSe8fuAmO3NphET5EEWC9K+xOP+lQb 9Hy+Ka10mBu4S0NxZSikGIckt16Td75kxsBxskFIOKIbE0KnTRorI1aRSnolpMjaUpO4OiYUAqq krrg1g4Q8v030yowAaFJHCeMRRfG6QScKpO6IGoIGaZmSpVTvx5onZCgvJCArxKFYrOA6p6LCLn skCsqpJOWlOjZSGwPiIldxmuQmWyWMOgPatQ3Ko7znIxPpsFFblND4XOUMbbUqgVznAqd8bzvgO 1w0azxJ1OriWUFlMaVjjo9xwBil1QpENKn6l447rH4cEAaEfFBd2VH0UoyYt2Zk1QvEaxx3g3AJ DM/VLYQhLYRl+ra8GZo5cBeDkOgF3DB11f1Yty5mT1w2qIrHHkY9v2rHXEt63cIFVg39aQeRD6i Z6brXEbF7ErctlWz83w== X-Proofpoint-ORIG-GUID: kTsqyPhQ7T1n3ubo-NNtlyjLlUW64rRu X-Authority-Analysis: v=2.4 cv=Iba3n2qa c=1 sm=1 tr=0 ts=6a05dbd2 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=sGFwGsstBXFWfJrNqcQA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-GUID: kTsqyPhQ7T1n3ubo-NNtlyjLlUW64rRu 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 spamscore=0 adultscore=0 malwarescore=0 suspectscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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. Extend the reboot-mode framework to handle predefined modes alongside those defined in device tree. Drivers can now define their own reboot-modes and register them via the framework. A centralized init call has been added to the reboot-mode framework and adopted by existing drivers. This ensures driver state is initialized together with predefined modes. Signed-off-by: Shivendra Pratap --- drivers/power/reset/nvmem-reboot-mode.c | 4 +- drivers/power/reset/qcom-pon.c | 4 +- drivers/power/reset/reboot-mode.c | 142 ++++++++++++++++++++++++---= ---- drivers/power/reset/syscon-reboot-mode.c | 4 +- include/linux/reboot-mode.h | 13 +++ 5 files changed, 130 insertions(+), 37 deletions(-) diff --git a/drivers/power/reset/nvmem-reboot-mode.c b/drivers/power/reset/= nvmem-reboot-mode.c index bd05d660490c686b43134f82f1eadd7665403d20..50e5e1ff4cd3b14f634dc50cdad= d97472cf0b1d0 100644 --- a/drivers/power/reset/nvmem-reboot-mode.c +++ b/drivers/power/reset/nvmem-reboot-mode.c @@ -51,8 +51,8 @@ static int nvmem_reboot_mode_probe(struct platform_device= *pdev) if (!nvmem_rbm) return -ENOMEM; =20 - nvmem_rbm->reboot.dev =3D &pdev->dev; - nvmem_rbm->reboot.write =3D nvmem_reboot_mode_write; + reboot_mode_driver_init(&nvmem_rbm->reboot, &pdev->dev, + nvmem_reboot_mode_write); =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..95d6f5dd134d54783f5ab6c600d= 455862e3d39f1 100644 --- a/drivers/power/reset/qcom-pon.c +++ b/drivers/power/reset/qcom-pon.c @@ -70,9 +70,9 @@ static int qcom_pon_probe(struct platform_device *pdev) reason_shift =3D (long)of_device_get_match_data(&pdev->dev); =20 if (reason_shift !=3D NO_REASON_SHIFT) { - pon->reboot_mode.dev =3D &pdev->dev; + reboot_mode_driver_init(&pon->reboot_mode, &pdev->dev, + qcom_pon_reboot_mode_write); pon->reason_shift =3D reason_shift; - pon->reboot_mode.write =3D qcom_pon_reboot_mode_write; 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..d76aee524749a6ec3dff9729c2b= 678b7244e4f09 100644 --- a/drivers/power/reset/reboot-mode.c +++ b/drivers/power/reset/reboot-mode.c @@ -31,12 +31,12 @@ struct reboot_mode_sysfs_data { struct list_head head; }; =20 -static inline void reboot_mode_release_list(struct reboot_mode_sysfs_data = *priv) +static inline void reboot_mode_release_list(struct list_head *head) { struct mode_info *info; struct mode_info *next; =20 - list_for_each_entry_safe(info, next, &priv->head, list) { + list_for_each_entry_safe(info, next, head, list) { list_del(&info->list); kfree_const(info->mode); kfree(info); @@ -116,6 +116,51 @@ static int reboot_mode_notify(struct notifier_block *t= his, return NOTIFY_DONE; } =20 +/** + * reboot_mode_driver_init - Initialize reboot-mode state + * @reboot: reboot mode driver object to initialize + * @dev: backing device + * @write: write callback for programming magic + * + * This function must be called with a valid @dev and @write before calling + * reboot_mode_register(), reboot_mode_add_predefined_modes(), or any other + * reboot-mode framework API. + */ +void reboot_mode_driver_init(struct reboot_mode_driver *reboot, + struct device *dev, + int (*write)(struct reboot_mode_driver *reboot, u64 magic)) +{ + memset(reboot, 0, sizeof(*reboot)); + reboot->dev =3D dev; + reboot->write =3D write; + INIT_LIST_HEAD(&reboot->head); + INIT_LIST_HEAD(&reboot->predefined_modes); +} +EXPORT_SYMBOL_GPL(reboot_mode_driver_init); + +static struct mode_info *reboot_mode_create_info(const char *mode, u64 mag= ic) +{ + struct mode_info *info; + + if (!mode || mode[0] =3D=3D '\0') { + pr_err("invalid mode name(%s): too short!\n", mode); + return ERR_PTR(-EINVAL); + } + + info =3D kzalloc_obj(*info, GFP_KERNEL); + if (!info) + return ERR_PTR(-ENOMEM); + + info->mode =3D kstrdup_const(mode, GFP_KERNEL); + if (!info->mode) { + kfree(info); + return ERR_PTR(-ENOMEM); + } + + info->magic =3D magic; + return info; +} + static int reboot_mode_create_device(struct reboot_mode_driver *reboot) { struct reboot_mode_sysfs_data *priv; @@ -157,7 +202,7 @@ static int reboot_mode_create_device(struct reboot_mode= _driver *reboot) return 0; =20 error: - reboot_mode_release_list(priv); + reboot_mode_release_list(&priv->head); kfree(priv); return ret; } @@ -170,7 +215,7 @@ static int reboot_mode_create_device(struct reboot_mode= _driver *reboot) */ int reboot_mode_register(struct reboot_mode_driver *reboot) { - struct mode_info *info =3D NULL; + struct mode_info *info; struct property *prop; struct device_node *np =3D reboot->dev->of_node; size_t len =3D strlen(PREFIX); @@ -180,9 +225,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,28 +241,18 @@ int reboot_mode_register(struct reboot_mode_driver *r= eboot) continue; } =20 - info =3D kzalloc(sizeof(*info), GFP_KERNEL); - if (!info) { - ret =3D -ENOMEM; - goto error; - } - - 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; - 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); + info =3D reboot_mode_create_info(prop->name + len, + REBOOT_MODE_MAGIC(magic[0], magic[1])); + if (IS_ERR(info)) { + ret =3D PTR_ERR(info); goto error; } =20 list_add_tail(&info->list, &reboot->head); - info =3D NULL; } =20 +predefined_modes: + list_splice_tail_init(&reboot->predefined_modes, &reboot->head); reboot->reboot_notifier.notifier_call =3D reboot_mode_notify; register_reboot_notifier(&reboot->reboot_notifier); =20 @@ -226,7 +263,6 @@ int reboot_mode_register(struct reboot_mode_driver *reb= oot) return 0; =20 error: - kfree(info); reboot_mode_unregister(reboot); return ret; } @@ -259,7 +295,7 @@ static inline void reboot_mode_unregister_device(struct= reboot_mode_driver *rebo if (!priv) return; =20 - reboot_mode_release_list(priv); + reboot_mode_release_list(&priv->head); kfree(priv); } =20 @@ -269,17 +305,12 @@ 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; - unregister_reboot_notifier(&reboot->reboot_notifier); + reboot->reboot_notifier.notifier_call =3D NULL; reboot_mode_unregister_device(reboot); =20 - list_for_each_entry_safe(info, next, &reboot->head, list) { - list_del(&info->list); - kfree_const(info->mode); - kfree(info); - } + reboot_mode_release_list(&reboot->head); + reboot_mode_release_list(&reboot->predefined_modes); =20 return 0; } @@ -344,6 +375,55 @@ void devm_reboot_mode_unregister(struct device *dev, } EXPORT_SYMBOL_GPL(devm_reboot_mode_unregister); =20 +/** + * reboot_mode_add_predefined_modes - Add predefined reboot modes + * @reboot: reboot mode driver + * @modes: array of predefined reboot mode entries + * @count: number of entries in @modes + * + * Add predefined reboot modes in a single call before registration. + * + * @reboot must be initialized with reboot_mode_driver_init() before calli= ng + * this function. + * + * Returns: 0 on success, -EINVAL if @modes is NULL, @count is 0, or an en= try + * has an invalid name, -EBUSY if called after reboot_mode_regist= er() + * or if predefined modes are already present, or -ENOMEM on allo= cation + * failures. + */ +int reboot_mode_add_predefined_modes(struct reboot_mode_driver *reboot, + const struct reboot_mode_entry *modes, + size_t count) +{ + struct mode_info *info; + int ret; + size_t i; + + if (reboot->reboot_notifier.notifier_call =3D=3D reboot_mode_notify || + !list_empty(&reboot->predefined_modes)) + return -EBUSY; + + if (!modes || !count) + return -EINVAL; + + for (i =3D 0; i < count; i++) { + info =3D reboot_mode_create_info(modes[i].name, modes[i].magic); + if (IS_ERR(info)) { + ret =3D PTR_ERR(info); + goto error; + } + + list_add_tail(&info->list, &reboot->predefined_modes); + } + + return 0; + +error: + reboot_mode_release_list(&reboot->predefined_modes); + return ret; +} +EXPORT_SYMBOL_GPL(reboot_mode_add_predefined_modes); + static int __init reboot_mode_init(void) { return class_register(&reboot_mode_class); diff --git a/drivers/power/reset/syscon-reboot-mode.c b/drivers/power/reset= /syscon-reboot-mode.c index 9f4b18c5e46f6a8bf197773ceceb80b250f57541..55f2fd33e0d2abc599848c93661= 9cb6cdbaed47d 100644 --- a/drivers/power/reset/syscon-reboot-mode.c +++ b/drivers/power/reset/syscon-reboot-mode.c @@ -45,8 +45,8 @@ static int syscon_reboot_mode_probe(struct platform_devic= e *pdev) if (!syscon_rbm) return -ENOMEM; =20 - syscon_rbm->reboot.dev =3D &pdev->dev; - syscon_rbm->reboot.write =3D syscon_reboot_mode_write; + reboot_mode_driver_init(&syscon_rbm->reboot, &pdev->dev, + syscon_reboot_mode_write); syscon_rbm->mask =3D 0xffffffff; =20 syscon_rbm->map =3D syscon_node_to_regmap(pdev->dev.parent->of_node); diff --git a/include/linux/reboot-mode.h b/include/linux/reboot-mode.h index 2ce189fdfff4b396d7cc6f175b30016781ae4fe9..4503ee388cd00d5e004600d5105= 6d623ea23e345 100644 --- a/include/linux/reboot-mode.h +++ b/include/linux/reboot-mode.h @@ -15,18 +15,31 @@ /* Get 32 bit arg2 from 64 bit magic */ #define REBOOT_MODE_ARG2(magic) FIELD_GET(GENMASK_ULL(63, 32), magic) =20 +struct reboot_mode_entry { + const char *name; + u64 magic; +}; + struct reboot_mode_driver { struct device *dev; struct list_head head; + /* List of predefined reboot-modes, populated via reboot_mode_add_predefi= ned_modes(). */ + struct list_head predefined_modes; int (*write)(struct reboot_mode_driver *reboot, u64 magic); struct notifier_block reboot_notifier; }; =20 +void reboot_mode_driver_init(struct reboot_mode_driver *reboot, + struct device *dev, + int (*write)(struct reboot_mode_driver *reboot, u64 magic)); int reboot_mode_register(struct reboot_mode_driver *reboot); int reboot_mode_unregister(struct reboot_mode_driver *reboot); int devm_reboot_mode_register(struct device *dev, struct reboot_mode_driver *reboot); void devm_reboot_mode_unregister(struct device *dev, struct reboot_mode_driver *reboot); +int reboot_mode_add_predefined_modes(struct reboot_mode_driver *reboot, + const struct reboot_mode_entry *modes, + size_t count); =20 #endif --=20 2.34.1 From nobody Wed Jun 10 10:36:58 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 98C543FFAD1 for ; Thu, 14 May 2026 14:27:41 +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=1778768863; cv=none; b=oruU62ea3ITvLGtm3wjbtDTO0E2/Pj5A3UGp50hD062Q5g7k0AriepFLT3brTOOwGX7dODIIunVL/RIy0MTcoHrJMvXax9DGnCvGnscb6wiRIoyklIrnkLUIfnFFzirCbGhLqAigkSHNTDcbmw65fmpY/mio46yUW468qT5vK0k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768863; c=relaxed/simple; bh=bfZxbVm6xwqrZva4/bjqZKtMacFd3ZN//N6v7LMpV10=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WwUpFttgMdTCBXFobeSrwjJfVXzaf1f118EK47vy7wYHQntygBjbpqjve83ooYPhPI4Dx/PLGRrIOI2oRPghPIDSq3EKBFjqustyHHGyah+iF368H4dIEw4V9xY6MqOodbUlXR2cH1xnRYxOboDSgpHG7lwlDpA25RKnyjnKWt0= 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=Za9oxAA/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=apHmfJ1z; 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="Za9oxAA/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="apHmfJ1z" 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 64EBeTgJ2554525 for ; Thu, 14 May 2026 14:27:40 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= gE3d/1mqNsHcbczvOKMFyfwo4Ec0LoAPoKWOy4Q3dy0=; b=Za9oxAA/rF1GkL7y +mI/3RVDP6D9uz3lcEGB+fbN7gbNSHIyw39ynDpsUMR8QWXxUQWyTVsVJy9UElHf 7HeMFJZh/3h3j7vWu+zv+Yi/smAiz6I4ygvlI25wm/GiVlde2p//43DlhdJEMP0D KHsj2nkBJDVGWGqpayU+6c5x0DAKqjZah6TQOyzDj3tqnx1YGpOSPmhsPFxIbZkr PczI1101hpvJDFbM3j6C1zuGsI6UG1cGHsTaJK9vD37fkeai+24a9A+Y66zBzzIz 01+759ZIIAqOw2RhCv937VNgHNiWH+L0SlBsC4KoIOHv8Th5rJ8x6SED4CSio8XP dUUuHg== 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 4e5b0bs6rx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:27:40 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2ba838d3fa4so87723925ad.3 for ; Thu, 14 May 2026 07:27:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768859; x=1779373659; 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=gE3d/1mqNsHcbczvOKMFyfwo4Ec0LoAPoKWOy4Q3dy0=; b=apHmfJ1zOdSeDxUnqZGPhVN7cT8cSHdPt2r8A5tmpYOVXJwtbCk9ft4MiX6Tv6bSc/ ge5y9e/cKtaUr3Rabd4+xvC8JLwYaRQ7GBNVpISmIJMNCR+OOZHLYX+bmuYJ8CgrJuaK jIO6nxSh4YXIqsTsYAFDhD4aFciQdb0Qt1pEaDR/GyIvsWLeKKkG4tU0tdmnVPLOO0v9 PVVWF8GcEf7JKlJp8ivQBMp+Uvf38Gz5o9bmXe6njoEGkw6IN6a1lkwLx3oY49W7Qz8P QUdVQhex+kshr3WglUBcWa6YY7THVX+T/KxsrMdg8kWXjHpM1NkqLaq2V7D84Op0G+se esbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768859; x=1779373659; 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=gE3d/1mqNsHcbczvOKMFyfwo4Ec0LoAPoKWOy4Q3dy0=; b=CRY2xjseLZHO7Bam/LlMRTw4xYS853pXzI+oQSZ8697k5RUM7CPevlgIl84XIfqF71 oyRpGKkPiTCs7r5VkuU+HcCkwD/rger30hkyoVEiFLXW2OvBxzQQJXSNTShlpmIcbM4B EjH+vpJuFL8Ws24OKe4d8QW8WYTs+vL9xdxrXOCfvKYyPLAt/88FQll1wvWYhnQ8id4n ck22ZmdXeL17hW7G+YKq/RSowQpzTuNFysbPx85iVA0b086jiL0ATPmlFjHe56yMLKJE xHBF6g49c2Rv6DKFyNSpyx4y/BMyZj8rvi1z3AgkqqxJl2uKFp+oJYOi8euwe15Mt9jN 1xeA== X-Forwarded-Encrypted: i=1; AFNElJ9i55Y3DhBNhaEVflVkin1mDjYIaFbBkuU6eB4fEnXMhbuNimqcQIif+0M8cGb1+2X7nM3wdqxP2mMzMoo=@vger.kernel.org X-Gm-Message-State: AOJu0YylCRAXBtisePVADUl+LKxUfLAmeP/ysq1RLK0Pj2ZOXdqWxGbB bv3SU6CiEFWH54DD1l2IzehOY92rDyLHe4eV6ZognO0EoDLXBFdzV6LsD2dETgxJbtAK1iZdmce M4F+hNX1CbvDINkV2FPGnvltTpVRhzSs/PUDrMOuiniJRQSsg2QagXQCI4uXtdvqRYr4= X-Gm-Gg: Acq92OE9vDn2zn+R0Q9TeNeYgEC5eFlBjAxIuqRaTWcG2gPMjLx72Uoo5v+cZSFXSLu Cpt+za0itsSjAxnipk5Cp5SA8/KqH1KXaQEUkgPWpWbY6m6SXKVFXl+PrX2ECwmBgBRWYszqUkO zOQg//7jWvP55qDJOw2dib/6S5I/aUlYTM6icgmvyC+5yQ/OIOXuB4hcXRagwDRVTJO75SmPD2U lSFrfg1VxcbfV7IASx8LxeCovAVo8zAV+SCVhlnQT03oYovm3kzvZ5DNxAIsil8bx+RKyuOJ7jG bwZcvjb1IkOe+b1a9vZZmNZdekmvDkwrJqcNr6Ren+L991/fijulPdrqKDuV46M4U+RDjbVlGIw yHo+Atej6pWSoKnXugRQazrOEGkud546oF0vfez0UYaqqjVgQEDl6ORVgaAxn5ZMHs4GG X-Received: by 2002:a17:903:120a:b0:2bc:78ec:54c0 with SMTP id d9443c01a7336-2bd2ff2a51emr89557335ad.31.1778768859262; Thu, 14 May 2026 07:27:39 -0700 (PDT) X-Received: by 2002:a17:903:120a:b0:2bc:78ec:54c0 with SMTP id d9443c01a7336-2bd2ff2a51emr89556465ad.31.1778768858626; Thu, 14 May 2026 07:27:38 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.27.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:27:38 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:45 +0530 Subject: [PATCH v22 04/13] firmware: psci: Introduce command-based resets 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-4-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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=1778768806; l=6677; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=bfZxbVm6xwqrZva4/bjqZKtMacFd3ZN//N6v7LMpV10=; b=9VP2h6vkEBUeop0sGH+o9wi/BYjMPJpDm4SM0A71zlJUWo0XDTwDWz2RdsH182u6VrBzGPm6m uAduIwm2DyGBXkPoCr07IxmqXWX2D4r97bu98kkKpDuxmVeuv6PtSxo X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfX8b7F0lKqzKaz eZEAta7g5YAuGP53wTd/pMo0SVgrfvywPU7HFKvHpNkfebvNyNwaqE6Bp2lHW7lNRiOnQJkZKed 4MW7GHqP7M6WG9NXVvOD6l2CJ1mwmoBjuP84TVXoVNQZy0MOJ/Q3IooVFifXx5liwampgRX/egN xiROO/fzblKcitwgXyYEBRlVVCY6/80EpPuc7efbS+NB9uzoDkx/2W3aq8OACe4YXtWdY515CBK n9zY+q3UdQ8D0qeS9RkR5LEha1dTMbO73jKhXWADD0dzaJCGs7VzKWtrvqI3TqwFvOUpuuTL31N rX0ZY56PtkYEC8JABQxI+F1MzTOOQP3/P3YMB5l1OwyrZ4EnYQBNzhRmDqJ0KrQ0NWeOItyB1oE X1vzWz/cGq1GCwjwo0xGwvyFQwDlM+sg89jCPK9kc7GOzFdLd6F6ZFG21gYIUGtRyIJXmR14CdF UY2Fl/p4ydwOvBcv0tA== X-Authority-Analysis: v=2.4 cv=b+2CJNGx c=1 sm=1 tr=0 ts=6a05dbdc cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=syBxKCaIGq6wZv0syL0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-GUID: TdcymOhY43LLk6hGaW49soqWjGPKyoIQ X-Proofpoint-ORIG-GUID: TdcymOhY43LLk6hGaW49soqWjGPKyoIQ 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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 e73bae6cb23a3bfa6441503f667b0ffdfcd72536..4e0710ab09cdb0af7280ff4334a= a1ea1bfe95aff 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 10 10:36:58 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 971533FE34A for ; Thu, 14 May 2026 14:27:51 +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=1778768873; cv=none; b=OIsiUoUrqhfMe/Gdiq1ONHecTFzEH5DuhrIl0z7W/DOd4czOdYH5XZTBT4RUnAXqLVVRWccs1slfK/KnLWRCfKf10s5MXsUkAPX23QWTVlkVs3BFFrX69pUN+slxUHG7vbISyuADzH1nKWW+BfwDBHpj2JpQ28dHrud441umezc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768873; c=relaxed/simple; bh=zy6phBmn6YUnIF3yMbnynygcUzKc7Xs5rKA2+rssLxA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IfJhZr4cyo3pOU35SkB1eXX3z4Nr7EBmMXatMiYG8kToseJOnvgySfJOiuQ4s/QA2zKRlodCYV09rlzogo6yumgLCprLs/pnxJ9qGwcGOHv5apKpVGldDzzIs0xkqKqRL5yad7NleMOW+LAWz5IFAJKs76shuQjqIwhwYS10MiU= 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=SenOmO3Q; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QM47F2TI; 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="SenOmO3Q"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QM47F2TI" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBeQBH2841032 for ; Thu, 14 May 2026 14:27:50 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= Co9KGzjyAfh6/8ptbNjM0OYv30ONMomjFd65fkZltNc=; b=SenOmO3QnE63wWhA yRPJJdzXKOQzkLrZILzZun0TFusH2kWCvrLSBLT3MktU6UfbacTNPEm4B02WsULt /pj21sCQvL9RU1fFNrxcDvSZWDNcYpH4ZPMAwegLoFXfI9MD1EsILT2k5b9mFP/4 DUKWSS3ZYJBaqxAfoN2ySBG5PvLk03oixYlmJzjMCyPUELHhGT2o5B6c1hosVHP9 0/U6S5NBKigII8epskKYgw1hRzsxgJUmh4CNXlxaqTkTdKL4hAsMd3EjVlJwYOcr hmWF3JTmkFSeZQUGejIe6YVRHkwEG3IUuk0fq+13IBp+DIEfeJ915AwPaxGUvpRU 9x5RwQ== 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 4e5899ssyn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:27:50 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2ba3245a43dso73534295ad.0 for ; Thu, 14 May 2026 07:27:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768870; x=1779373670; 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=Co9KGzjyAfh6/8ptbNjM0OYv30ONMomjFd65fkZltNc=; b=QM47F2TIBxHyts+tkwSKnK1a9qCzi83f9Xmc72kz9CGvMCT4D2YXYugiPGKfMdzUb3 VF2Bw84Ff8aE2SY/B5XvLny53N/Alytir+DHsr4UCc30WkWffmnvcZkhdCP6KiKdXQde ZzFuPM6ec9QEiOM0Pg1Mrts3LiR6zkfz1VJwvPNMri9ToDIugB2olq9tEBY5o3Bj3qk7 meqyHjoO/3bAT9ZLmnz6+JSwaYpHT5kfmtvSlnPQavOW2H8EfcFlw2VdTAKoG45ipboT E+geALm/5JL1SVYyhuR5rWwyRotwH4pg2z+Qpf+JXKtlAI8U0pef5n23oOcqh6JH0/lT 2WoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768870; x=1779373670; 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=Co9KGzjyAfh6/8ptbNjM0OYv30ONMomjFd65fkZltNc=; b=tKS8tfh8dHTjv3x7JQausIQHiSqhDkvR2vWyDI02QgyIOAvuPIgRXbe/dXUhupj3zT IfNfXKEcQZQ4bgInC71xO+3wo+NgfNTKVSl5vN0pHTadAKFXBHbUueHwxbf0+0kvCMt0 sCeEpLxrwNWpOZXNMoL4MnQCK29VB7VeTadvjDkhbCAkv80pHXXx5Z/z7NCAzEbOGzdK uuYJ/h6BkD3HLzS0lETdFsrzvE/YAc0dUaZAQznBlwINtXQP+QMAxTjnJZ5F9wdCSNQi RND/SuPTyO8eKuWRk5lPOa/sVrsQJrygtwyYMITbPj0AXtbdrBaELSP2RUNtfw8+eSkd WVtw== X-Forwarded-Encrypted: i=1; AFNElJ+4YgfrkmOj2NkLHalmy9NlBB4EAKTO1DN2Y/BGRfhsAbKijjfLCmHDxwlFZ20jcNMGWsqUBpDf09hPAqI=@vger.kernel.org X-Gm-Message-State: AOJu0Yy5CvJxmdX75eozn1Kx/o74Jm7OF0SXhbIZU+Lw2eQQxeiFSwvQ XfzeP25b86RCBJg3hVhZ2n/a9EfwyWOz1OX2s2FrGaF2IdjLbuZACmyFZeLQw8TH/L8yFAUM02a x1oHbycX0mW94LmBmLAVAg0bgQ5hiyJJuq28D0QepR1T9XZFiPcxP0PFb7fr6bpBk+wI= X-Gm-Gg: Acq92OHnEb7L0VGtcWukzoGjToK2fsMqcElCJVP+X0/TV48uEwQKoxK92ki3kRDYlzb ZbHdfdantjlMuW2sIUAzF/m2luXrot6HT1TDiWWQZXxIxHG4e0RkLUqDiicNmW66D3p/rxTSZOo faKoKDjqMLAkheWnt1Sx/st1AU/YzhZ6f3x9y9miSLwQLYhOxYYR1+W50V4E26QiPE2ICd1Xm0A m2Mq6GiBoQfLRtjFw3DeynS05jI49GWWuNNxGv9eBDf7u/x7C3DH3Li2lJLcFfeZyHStxGGqhIK +9cUjnPygCq/zhfC8RZlMgxPTMT2BVb19EVb/Aq7gB9mU0djjPEobAlCH034zaBVrmV/9BXTOIH BjYsCS3JbKu0tHecmaK7C+AfZJQ5RzApryqnemU815Oo65ecoesFkgm5K9g== X-Received: by 2002:a17:902:f545:b0:2b2:5515:661c with SMTP id d9443c01a7336-2bd275d92damr87019425ad.31.1778768869399; Thu, 14 May 2026 07:27:49 -0700 (PDT) X-Received: by 2002:a17:902:f545:b0:2b2:5515:661c with SMTP id d9443c01a7336-2bd275d92damr87018725ad.31.1778768868794; Thu, 14 May 2026 07:27:48 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.27.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:27:48 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:46 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-5-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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 , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778768806; l=5883; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=zy6phBmn6YUnIF3yMbnynygcUzKc7Xs5rKA2+rssLxA=; b=SOurAsIULUWVWnJZOndTZMct4VFZr1u2Qapeo+oUrIUQwcqZ5plrR3in3w2SSdcmSeiomghti dBATCO7Obm2AUFSeYeVbBRsuAT6XlSS3J08SRbq7QHtjGuIgIwz+5Im X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfX9MIVAoIcxtkY 9MDkTXeY1cuaTzGujPV/4YgbLWlNao6NKP7lLWJAk3SzYEbH/bQrUeuU+RgzRJMVDcAV6Ox+dqP K7alLRFWZA5LhUyOqvl0MAgi8rxx47BCB3WNx+3eBeXU/32PSBhvwH/o50ayXa2WtKFl/VyqbLg e1pVmJhsLuxbMNtVuEH2MfITtNNExamM/jrYRW1mwvAJiu1YyPRdncuTl6pa+Q/qywfteEGh669 wtENKmI8NupJs5R5o4F/T93L/bCR2av0Po1f/+pCe0nOwJ+Imzb7jCQxQttFQpqSCDxPgVBzEmU /3Wk1kX3O9VFHyrz5kotk4tBr0wSsRPEZNkM28lRARgPgeQovQpbJsWRhGPCxhkJFCObO3pc+Yt 8VXaBhz3IfOCqPKx6RJdRQ95FbQ8K8Gbzbv3CMxxz4PpgiG4u1ei9qSVbyrkNIO4+yLPNH7+VFE I4p39eLyd0TuCp2L8sQ== X-Proofpoint-ORIG-GUID: IcHIL5pWCh5YpRMl4Sn6FkAsclXgDMZ2 X-Authority-Analysis: v=2.4 cv=N6AZ0W9B c=1 sm=1 tr=0 ts=6a05dbe6 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=JfrnYn6hAAAA:8 a=wfThnEy5_2w5d1iZ5YkA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-GUID: IcHIL5pWCh5YpRMl4Sn6FkAsclXgDMZ2 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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. Suggested-by: Bartosz Golaszewski Reviewed-by: Bartosz Golaszewski Signed-off-by: Shivendra Pratap --- MAINTAINERS | 1 + drivers/cpuidle/Kconfig.arm | 1 + drivers/cpuidle/cpuidle-psci-domain.c | 9 +------- drivers/mfd/Kconfig | 12 ++++++++++ drivers/mfd/Makefile | 2 ++ drivers/mfd/psci-mfd.c | 43 +++++++++++++++++++++++++++++++= ++++ 6 files changed, 60 insertions(+), 8 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index f877e5aaf2c77df8dea7135ffe3617dd61504fc6..36ba42209c0b332813a296880cd= 55798a5592d2a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -21341,6 +21341,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..df912b3391459a78e958fbae585= 2fd93ce3165ca 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -2376,6 +2376,18 @@ 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 + depends on OF + select MFD_CORE + default y + 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 10 10:36:58 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 E669B3EDE5B for ; Thu, 14 May 2026 14:28:01 +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=1778768883; cv=none; b=p2Ym8Ymw0X9WzL+F2aaYSfDAAahxdPT0Z1j+EEZK3bCDRL1kXUL0ahcxJ1fGtvZkISLYa4woS1MApJelaT2ZmxZaKr7m6cWsX7dCuchylkHOatdE2ptB63iG7N+cgVQf0PrN985bqkNatU1ouyi2KlLRc+MABJ2PUJfHnDvQnBw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768883; c=relaxed/simple; bh=jyTFGQNuJYDeqEOF9acNm3SghnFKZKEJruoHnHRlxUU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YU9I2e0bwVI1J8Pc2EHDb8xbycOPiVi3tEn4RnRfLmJqtzPIfqE0JLZL1bxEm7q6HcDZgJ1rWciqHvpJA0Iqe+qx0jcDGh5YsFzB1+6saC+lXv0ByMlUN6YY+vnLUR+XIg6A7SZ3+dEopuoP/Yid6EgzU0kpcKoEmwl08GH/W3I= 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=PPeFw+1i; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=TDnypQ8o; 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="PPeFw+1i"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="TDnypQ8o" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBel8b3952443 for ; Thu, 14 May 2026 14:28:01 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= ZTI9rMPHkHzypbPrqZDsxdlgYSjaGzo8RGPBYAYLgmI=; b=PPeFw+1iqoK7i4yD fpYlsdG3ljxy+3sh4dPRJHCnF1kZZGq0pbTpOg6NpRdQnSQnalBmZl2m4VZwwo1W MfzxtHAegc/+9SunKU+Yza9G09LpF1+4WTvkFp276pddt5T/Ffest7Agvw+WrGVK Qz/pH7Opwlpwx6PHf7TVBEmoBJiyXGRD+YRmn0crjUbP+XnTIxB3lpheVxqZM7oE eBntI/3hF1xM5qoKqAznBEJJKBoHgbh1TQNYfKaO/a9SXzL86zUNhyALPAU6FvYI P0CUSed9YbKmaj4JA5KN/+HqBZgNFHcZlK6KOCQg0nu3UFAGQ5BmyxunGVcpTB7T 9JV9Sg== 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 4e57kssxfx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:28:00 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2ba5f794825so67340645ad.0 for ; Thu, 14 May 2026 07:28:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768880; x=1779373680; 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=ZTI9rMPHkHzypbPrqZDsxdlgYSjaGzo8RGPBYAYLgmI=; b=TDnypQ8obk5EeBGwP7HCeAc49QoTJIEMYjJspS4+Bpf11VvWhnmIfQ8Yf1Gvlb7llf uVakMgSyUeVE/C0HvWlLSn/ccexQbcRVvkr/rwhCBYA8kM9BOfXKWA6TJ7cVzE1HT2rJ s/B/1CdAIbvrSWrBsWm1pHQzsf9UkNiUe60rsql6Ki+FWYINK/9j//tbFDZs7GvhpwwI aad3NHogekUZaoWqUV7dcd/iXsmXElxMoQcMhzRKPaQPfemHl1KeubwHfowe5I6mkGYL dDo3aulxXdrQ0iM8yNjQU+CqVExsfclXBhhAYu122jUoj1ZFqOH7CwiO1sWOOAJj9zqL xXuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768880; x=1779373680; 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=ZTI9rMPHkHzypbPrqZDsxdlgYSjaGzo8RGPBYAYLgmI=; b=g2OzNdASeQTpHFibdNKvh8aiCYJMt/13myWTuDJpQ9IchD4COg8Smdy0I9K6NVmmyF TaPqWC+GROLrjjVc9IQY8NqCMRGaEgExPcOZqqS1550N6UoM22UDalfEvDtRlrmkQgZO Gxw7zKylB+W0amx7r9m0LlpWf4c7XSe68Lvfgnd/+oZen/YkUicc1+iBbCbZUL/7nB2B oYr2KcHn0ypqSXcJhfzKn1KaojsbpmkpFsPav8paqvjD9hz1l1DNKgXBLFBze57ScZA5 4ZMFc13Onbs+l6JGgznuIx4pu3b4F94nTMFqso0+bkNRRlgGKiKlULFssLQTvbiDzEuL x0xQ== X-Forwarded-Encrypted: i=1; AFNElJ8hBVwXy8RoWfHvO8WMxeRZkvgJ2kkzBya0IEENA6FstROf1rHRLSUKpVC0iqY8k7O3GrXJb5swVI3n1Lc=@vger.kernel.org X-Gm-Message-State: AOJu0YztOjAnm5Hg7DycRIyzUi9aitzUFAJsb8sWncPghd9mA+gRINt2 JPLVww8SU+o5HKOlIUZ/cCApfnSMcKxIjeqa7ngD6+JZ0aFSpRHmaZFF68L29w7DKVo8tvKwgqi zmVnJcTuE/W9EA1EUoVQp7Q6bmLrENMSS9CiNWIxvIz+7T3DQuiYupBUOf1fa5eYMjFc= X-Gm-Gg: Acq92OEBpW14P/0usFHKd1UIKE2Us+Sj4Z+dYhz54YY+P30CgdcVyEEoCBIkEP5NBp8 JVe52XFPqM4clmq2QMKUEc1WHT8ESiT510czXMAbQ3uusOVPtUSCEGRhuzYGhEOxeX4UyZ6jsiu nHCM8e2OhgtpDNKqyacdTmYwsQkrR+zZnPOx7CjkQvKovTpA2stPGNsqp8bDuqgmyQ5qRhBtBem E3m9iKn6fHHuFYqMtfAVRjM9pYJFCtAO+N945e/Stgec7qyYRIxLjJuwincFGRVG7VcWN48D2gI 2jJc/sfNTD665zxCOAeQ0yEWemivIsVf+rdCsEXZU7prLbHQZDQzQhj9A5N+EIrbu5+9zVS66ZM S7TYafuH3SCdqGxYvJ5fxUk6vMzj+t8tHi0RJvroUOCvMm6QCsh0goWE63Q== X-Received: by 2002:a17:903:2b0e:b0:2b4:689a:e411 with SMTP id d9443c01a7336-2bd275c658bmr90014185ad.22.1778768879583; Thu, 14 May 2026 07:27:59 -0700 (PDT) X-Received: by 2002:a17:903:2b0e:b0:2b4:689a:e411 with SMTP id d9443c01a7336-2bd275c658bmr90013575ad.22.1778768878890; Thu, 14 May 2026 07:27:58 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.27.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:27:58 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:47 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-6-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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 , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778768806; l=2550; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=jyTFGQNuJYDeqEOF9acNm3SghnFKZKEJruoHnHRlxUU=; b=nou4cMkQGTWvLWiMi0xLAiR5Ug05Cqvd2yNDa5Czcy0sg0oQS4mbWoXgsTyUQkZGu/yUH68ck NEZsvAztiXxCcsCVfzuUP+ujvrxuvi6T/yc1+H1QmvujhSyFKS83E8u X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: pQONpMWylVVSbYF0kRyfIMsPL3s1bxCR X-Authority-Analysis: v=2.4 cv=KZbidwYD c=1 sm=1 tr=0 ts=6a05dbf0 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=Z1E3qa2j_4PWJv3PNLYA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfX2D2TbPQatHvd pu2qX+nowCioLhim/IdfBCA+RrNXf9rJlHmyvzuY0hMCooHQqDZNAMf0k/lP2CG7iW60lggrlne nZHExYmSFxlKfOl2nh5j2NBql+c3h4rA0UQhZzktYSJZ4MAh/zekBoRRIpRt0dXrD6FIGKfLTPC 2xa5Wo+mKPfs2KkjMsylihN4c36nwdkbZPX9+cWTX8peEOdSzjnRKTZj4bwMS0o5gwXtzE/kB8c BhL/bqdmnGsdykoCz9C+ZNQImdi7vMpSolGATBHgo0bKGUN4jitTuCC9fxOpSfxjPmduQW2DQk6 t7/THj/i+D1aNmvXNda8IpgGYa5LNcfhjRuzPFPFrulJUbiStAQ+4qQTIJbRjj9OIT98Jj2Fcmu QRBQwZAlalCEQWC9Py4QIKRHSWbD6N3zTBiPxt3PTY+RImJ3n1q99mwkPRosi/KztYyrOgKuCrl qItDDoXhbQKJagDTXuw== X-Proofpoint-ORIG-GUID: pQONpMWylVVSbYF0kRyfIMsPL3s1bxCR 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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: Bartosz Golaszewski Reviewed-by: Rob Herring (Arm) Signed-off-by: Shivendra Pratap --- 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 10 10:36:59 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 88FF83F7A92 for ; Thu, 14 May 2026 14:28:11 +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=1778768893; cv=none; b=AeEe/7MwV4D7gzRRuVCe+pK4hp3kOCjGC/6+xFiEvWEfB1AsWZfamv+QAICoABBY2tG8Ww1sczUear5hH9xOXcOwPB7pxvIL7Gk+nUMR2Yhm8rfBTg5zL3kkciUGFnC6CO65WV3rldTlrkGeCh5n1pa5bzv2Azbn930OzyGqw7Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768893; c=relaxed/simple; bh=3BU+OmQY7vwCKgtP7JgVodTFXWx0p5HRBbSXZG9v7s4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BD9aEVWylt7lLP5dsNoI3mGqVJpv1QO87y3TPBq/MvLr3DtDAJD0FkU8JVO9/J/WOP/tqp+kxibLArNuwaZed6AlpzYPw7VFUPPjScVj00l6r6D8wjL71yVgGnLwj5Oa98uQQVr6OcZnmsebhZU2mPK5pMbeAMdKdotTIWxST8Q= 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=bo6UGY3d; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Urxi/C0k; 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="bo6UGY3d"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Urxi/C0k" 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 64EBehhT3048844 for ; Thu, 14 May 2026 14:28:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= e+wctK5RZ9TRw0ESOwHfyBsEr+rYwllu4QgRLTyrtk0=; b=bo6UGY3dqyOl8c3l 8g9HWrYTAUoTWrEDIQfx0wSB2ZG+T+Svkxwi4ZpPPr/RdSN24VkVc9ZV2MYKb5lH lbacdMZ2SgbGim17+UK/gAVlVEH8tjjFHBNVqbq8IjGVNj914W6WwjeZOsbmDe+5 wYVK2Ec3MwThhd7bb8lHktSfiDg4T/E2F6/G1KyvTL/mz+vEOe55YrGDSLDLZ0QJ d/IvHWV8kW26wGrEfvXAAm0xRT9nKLOV6Udwz4tnJ0+AMNthdmY54jHntI1KVRAE 1AWVjQGn9bOpmuXt42jMlwu2gQOANr89N2ag38elj53trshzo84kLzyeVpAURaI3 Z8Us/g== 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 4e5492the6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:28:10 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2ba115ab6bbso78307925ad.3 for ; Thu, 14 May 2026 07:28:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768889; x=1779373689; 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=e+wctK5RZ9TRw0ESOwHfyBsEr+rYwllu4QgRLTyrtk0=; b=Urxi/C0kwv9W4TkpWSwxWlKIfAp2OEd9Qx+dOOgHkaypQvLq63YrasxzZgNmwHibFf NosY12lA+P7MJ+5Atx+fMMe0wPWIlfOkyJN4MHBb1lylX+B461MBQ5/WugLTP2Mn2gwZ ne4YDjr4f5RaMBcVdU2Y+DfKHHxRoutBhBWZWPeGQd57BEIsY8HOkkWlyZbOLgs/+tTx cKvXWtWWUNPSUVmOQ2HFWMwjZKcHEBqCzPE/g7Pvq5Fn9GW8lbq3n7/zuHP4hKNjfJ5K NSrW7wNz+zFDisUKZUkH8kmm177FhKyYT7a6+YkgomyPXl6LVVvQhj6/axse6zYTsFGq ljbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768889; x=1779373689; 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=e+wctK5RZ9TRw0ESOwHfyBsEr+rYwllu4QgRLTyrtk0=; b=f/v5x/x+4XSzQKMMJ+qZwfH0iw2O0iIXthSYkFsES35ZhTZxdU4JZkvTm9PMtGJlhp sJProo2ApBM9NT3pPhKt8iKUovzENPEZbig42RuipOSmyIQP+RvSQKjoCtawqFM8VmoC hdnqI/id3aTeeQ1ZDhx7j7XIwiU2OvHsq/ZaryrDqmDoaerx1c9qYqrTGPyPC2Fnkgkc fc21xU1z8NgrHz+D5t8kWlKXeqctMMityKssK7M5MW8YgLEyhmBNn4IjDBwzx88/tLfN m2aLvCIZuMAOLkG/PbmO625tNrhe2+nMz+dyy5vV1TtCvelnO8pFdVdRMk4Wr10UMBXE hpfw== X-Forwarded-Encrypted: i=1; AFNElJ8rR7KLrAUNYDSqNKabKl4OIn/bz9gM7J5MXYprw5NqycSACP1h4mNsQ8n11dWsY9C9PW2msW1AQ90rmPo=@vger.kernel.org X-Gm-Message-State: AOJu0Yz613GJ/5KBRnsLi3TEI5z7juqg0yNQXYwkhPH3SbPr4GED7TtZ ySliGZE21CuKxi0XCbN86rWY7GuBCCpCyPVpejHqetoOgPns7GhFwUi3XWyZHhIqbUTl9BvdzLL jHPDmQ9f+ybsf8k9QnPlqhHC7UC4+ggmIN7Z2cxcr4IgwVQ4Gjovd6zOtlowC3NDpSvs= X-Gm-Gg: Acq92OFr1h5MVzPZxQO1qcBuyM4FocFtVFcB+2DqDKoFxaDkSfVIYkMF0BxEy0PaQ8z d1KhqFGLk9prC9VUWlmjxOKBV84SQJjfAylWN0ALXP46Q2VaUlrmqo2pIgAPk+emJwSCel8bVzB WJwmWAcIMT8Saw3Ee4h+J3fau0055Y+TFMd3t7okOw5ZCZNHVvMzfv+9m2QqDQeAV67l/CDdakV nrmAqwMQ74/GNrADvuIv6E7TT7lOeQmwOWGJk/Kk5Dy9zkT1JSYY0pl3W+HOrhyHR+xVMQxIMpo KPXtrwR94IcikiLkWJjIuIIi5UOiVgTfj8ovq8J7xOqWjtXOfvaq39nqrHabWjQKcyc8PKXCP5P PFXLrK2f5whrkHIoumi0yPsF3S1eS9D+mbZgze/NSk2QbuDS4gwvSnmvt5g== X-Received: by 2002:a17:902:da91:b0:2b2:67ca:5fff with SMTP id d9443c01a7336-2bd275dbdbfmr86311985ad.28.1778768889312; Thu, 14 May 2026 07:28:09 -0700 (PDT) X-Received: by 2002:a17:902:da91:b0:2b2:67ca:5fff with SMTP id d9443c01a7336-2bd275dbdbfmr86311445ad.28.1778768888758; Thu, 14 May 2026 07:28:08 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.27.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:28:08 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:48 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-7-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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=1778768806; l=5430; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=3BU+OmQY7vwCKgtP7JgVodTFXWx0p5HRBbSXZG9v7s4=; b=O+mpM9uK5VeT9kC1EvBdS580IgwUL/WKhmZyQHzqE6bMvpgOGlDCcxQInGtEf9FjtiyLgNt0O 0ePmlrWLCBEDsrZLPPtYJj3kDH6ciDztOjQttWT3OwntVA9B/fPs4yD X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: RYXoXo1t00erC_ydVfaPHKdZT9D77t1X X-Authority-Analysis: v=2.4 cv=R74z39RX c=1 sm=1 tr=0 ts=6a05dbfa cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=5CqnhzuZLWPXzHx0y-cA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-ORIG-GUID: RYXoXo1t00erC_ydVfaPHKdZT9D77t1X X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfXypa+Teaf8z8G vAxmoyRRBmWB2afDwvHB3P/NcfyW74jd8W7jD/dhGTQ2BEaHq764dmkK2QySbPhJiiutp35P3rj lE99MxSqLIQQXJUebSNy4It+veew/94J17CBc2RSes81JbFVyxySTsODaJv/Lck88ytVg7H4tim CLeArjTtjr7l87u3bQw+0r58if3ocRcdJiQ6Y4x+M3SmgKHcF1WSQyWcXHRoBsBZRNczOxkEb2I m2OQgX7lQ9y7911OfCvFRZjgn+rAfErFFPouwkshRyzwhE8RXt2tus/j3aYRg7PTP9rHRBrz83J AvUH5PKrGMOGxCmOwZWrDVS3c1ODp1J922KN+yCKSYzwWvb7ymCu3Gmz6BlEX+wEQbPKMV8v9GB ksR384c/7iT3hy0b91Sf14+bHvqiU5RwC5U7x85hONIcvW9DzXjgPc/vuTFwey/gK7exNVDfH04 hjVrT6tndg5tjcUUAVQ== 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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 Reviewed-by: Bartosz Golaszewski --- MAINTAINERS | 1 + drivers/power/reset/Kconfig | 10 +++++ drivers/power/reset/Makefile | 1 + drivers/power/reset/psci-reboot-mode.c | 72 ++++++++++++++++++++++++++++++= ++++ 4 files changed, 84 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 36ba42209c0b332813a296880cd55798a5592d2a..4b0815c31679550f5ab719de4a5= 852990c7cc643 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -21342,6 +21342,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..845b2a1816ce53451dea8dfc4bf= fffda0d3e9293 --- /dev/null +++ b/drivers/power/reset/psci-reboot-mode.c @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include +#include +#include +#include +#include +#include + +/* + * Predefined modes: + * reset_type =3D 0 + * cookie stored in magic[63:32] + */ +#define PSCI_PREDEF_MAGIC(cookie) ((cookie) * BIT_ULL(32)) + +static const struct reboot_mode_entry psci_resets[] =3D { + { + .name =3D "psci-system-reset", + .magic =3D PSCI_PREDEF_MAGIC(PSCI_RESET_TYPE_SYSTEM_RESET), + }, + { + .name =3D "psci-system-reset2-arch-warm-reset", + .magic =3D PSCI_PREDEF_MAGIC(PSCI_RESET_TYPE_SYSTEM_RESET2_ARCH_WARM), + }, +}; + +/* + * magic is a pre-encoded value: + * reset_type in low 32 bits + * cookie in 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 reboot_mode_driver *reboot; + size_t count; + int ret; + + reboot =3D devm_kzalloc(&pdev->dev, sizeof(*reboot), GFP_KERNEL); + if (!reboot) + return -ENOMEM; + + reboot_mode_driver_init(reboot, &pdev->dev, psci_reboot_mode_write); + + /* Skip PSCI SYSTEM_RESET2 modes if unsupported */ + count =3D psci_has_system_reset2_support() ? ARRAY_SIZE(psci_resets) : 1; + ret =3D reboot_mode_add_predefined_modes(reboot, psci_resets, count); + if (ret) + return ret; + + return devm_reboot_mode_register(&pdev->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 10 10:36:59 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 DC3FE3FA5F3 for ; Thu, 14 May 2026 14:28:20 +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=1778768902; cv=none; b=dnnh4AJR5cCCZ9vDfG9WYAMJtWiLNjdnnMB8Ckg9UvcAY7rrVnnuAXkayYmx24qPNRMvW1J37LGSFb61PwSwv/cq1w37zW0oENjxy9X7VsSl0jFKdOri71AiVKOSv1Ub9wFW44GQIGEJ7vvKSBfRjELghXvT4NZmFKBrVoACuyA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768902; c=relaxed/simple; bh=vbRU67UVOb7vag0urLTR9CGL8NDqWbK8p17LbDC+cW4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=b2NTSZPtyuz7X3S/8OcB8rK2HTg5ySk8ocLwBL9bX9+KXB23ivXGDPG8F6iRz58c9t40Ar6VUTcG4778WYUTeXcPdSdJ7DzWhn4FBu5SQhVsnP10ccclQkd81YBQA7iH7zW1lTIRKksjvynFNSqzqNHSIEgADxEXhwd8aOnYFq8= 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=NRpVxQYT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eE1JZ6/Z; 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="NRpVxQYT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eE1JZ6/Z" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBeSo73891179 for ; Thu, 14 May 2026 14:28:20 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= lVT+6+ENhr9QUbosk5DVYlfO2a3L1c21Y2zL0+4Gp+M=; b=NRpVxQYT9bG/uPQF IBuTkRhJd6b7AEoCvbiiiah2eseNeMWXBfRh6XkzBc2TkJj0XCvMUuxtSyq79p0W x6k2e16XJ6avvZOTM2OdyoPWqX0R/5UbPx5sNOVOHiyLGlN5V/+Y9wLUmp4APtRT I/2+Vy8cGkquGwNSAMnCyfqOVXJds3blolbsKx6deGrLmb1xMM49xWJ97iEcNQKe 64Lu2DznOWviMAl5stx0twPMuMgU033Y+8BvLqCtVDogd0ukPjhJBMjKGyf0j+Q2 Okl1dqQz6UA6Szci8urtWmGMinZKoTEMCt1+WkJkOseU+WkxcIb+UHq8gZqPquqA MXUFjg== 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 4e4v4tvd07-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:28:20 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ba86e35aa1so124856075ad.1 for ; Thu, 14 May 2026 07:28:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768900; x=1779373700; 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=lVT+6+ENhr9QUbosk5DVYlfO2a3L1c21Y2zL0+4Gp+M=; b=eE1JZ6/Za1drFK+ENuqd58x5B1Se5WufVPmUokU8ikr2edX14ihos0+4goRq8oI8k3 B+8rWOygxGtIY0/Kvc9aEjJJd4w8pWYFjZbgoGrnNkythVFMyfth5uL2QsvthmQJ0Fmc gGdGmMIdLnIbwhO4UFRcshqQF/1y/BlCza+KDiuRkVXWs8PWrtv07XmgkKSxnJIbeLaI DwPB/0I+oSdZwy4nP6mJu6dBc4rczcRVZzExTCIeKkRQZU2bnB9zijOoWYlnW1ZT2yN+ +Auau9rX3wmORmXYdv8LQm2XwNcFOlt0uNqhC4KHRier0HvF6+zHX9xretM6sZxsm+y4 vEog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768900; x=1779373700; 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=lVT+6+ENhr9QUbosk5DVYlfO2a3L1c21Y2zL0+4Gp+M=; b=jpV27aLWv9e/3fhgvXdYyWOjCWqiv9mcXmvaZdnpgmoBjUzngqfkpJ+4tPuiwkoR2v b7V38DbEmksfHNAkgVSYFVzY15yr2vlFXKk2nRWebzYPvSTvbzeilAlX6PuV2RpjhECy yd4kw4U96PEHzfxfIvSdlxMnbBBwf12MGZEgOLrYlYt4OszPPgSuZcQFKbBz35m8nj4m RYP/HFBpaZsXzAVV1GQjwWQIOFFGWDif854mCvadT7tle3wJY8ryfYZAN5w3fT+SV8xo 5MyGtedqdUSjAagJwnZQWS8fPl/pGaCY9GU5f6RvOuhTnjuq/hJAl0171pW9CW6vtdJO bAkg== X-Forwarded-Encrypted: i=1; AFNElJ8qlVP4x/9Rocuv7g4tK5HVveIxsk6PS3Gbx+kn8jM8IAKqz2sBC4a9bSOKBIgaoheD4erzk0gu/N2faMk=@vger.kernel.org X-Gm-Message-State: AOJu0YwPNd7+dh30k9EzARe3bAx9Htti7iO4aDwTSeRL04ORbJ61kBvb nRc5/ab+VHb8rwbfTyF66qWk7n5j7SHVm9TqZ9oTN3uJIZoNNVQlD4P1m0x8C+A/tGD7DJp6ZGm EyJvtcjFgX1/Z0JIp0LDF83qf5/GXvTliBbSPLsybri7mvTqfyzKwrCq1VMTHZn9lD0g= X-Gm-Gg: Acq92OHgR59aZB9PWj2iVSBIvMQp93+2eHHKwVppOt3OKuvBmP7dclS3+3/fm19obLT kmjcjEY02zWNdPbfcjps9xtagkad4+CNMxVEfNOchOSgK8lTB8RMQQrGDL4WBKI084ZM1lfdrWi M1tFHBFBKkpLcLAw7dovBodtbEGeNILCdYaGUoEMq0mXgyRYhmSBCFI3oKjriCdi0N03Kk2bq08 Srf8Pm8jFvb+XnRsjm+Op+haXPBfbZPV1BkHsoubIfb4klbOiw5fmHsimwLtPP6qADwU+nyr20e 03gN4kC6WMSXtvPlDGejU8F98i7wb/tijJFHN5wQOrVdSxOum6qMNJ8sE24OIDC4ZVQ8GPBctOT ynGQBZtMPAi5hsTmy+pLAwpSf8dAiMZ3WGDAC0FNx49WbRqOTVI0xci28Bw== X-Received: by 2002:a17:903:2910:b0:2bd:2439:25fc with SMTP id d9443c01a7336-2bd27147127mr50114035ad.7.1778768899356; Thu, 14 May 2026 07:28:19 -0700 (PDT) X-Received: by 2002:a17:903:2910:b0:2bd:2439:25fc with SMTP id d9443c01a7336-2bd27147127mr50113845ad.7.1778768898844; Thu, 14 May 2026 07:28:18 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.28.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:28:18 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:49 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-8-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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 , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778768806; l=3848; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=vbRU67UVOb7vag0urLTR9CGL8NDqWbK8p17LbDC+cW4=; b=1ujf4JijpapWH/nOjxZ2QgZuRc0mQFRmg1998wEzgTxxWNXW+Wu6uTuV3aIgaDfjFZ74E/z0z sUG4/0XD4kBDQ+Rg5DzfQ2CFoovpR4etLcGo6OPdUtObyR6ZlRz/Y1x X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Authority-Analysis: v=2.4 cv=XIIAjwhE c=1 sm=1 tr=0 ts=6a05dc04 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=n1cGDs2KZ32Q86TtW5UA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfX2359OoOwGRNL +z/19yumQPCHJsNObHB2dEkh6s/sr7BiuENU02PMmEznefh0J2khaI6IWssQydTGdEdlCvPOOX5 e2jnZglaqWKqFYkp2lEDBRZO9bWxGbmGYb0zP2nofSne97TO/N13Zk9JrIC5Wmajk73vd/iqB1g 3QFd3FmbIg5iMfFCR+PZbfLrkDFx7pt0ulexHXHeEenEaA+xL9ZOvRuOe6C/eyAr+mdpt5jUGSN mzw0abLOxmnQrnLpJWV5cp+Gy8wGpCreUkTNKNApoB+SrSj2GXAmRl4xI2FfwyI1jRmkbr69o7m W9ME7jnBgB51AxCkqJVSG0t/Ehyjp55lBe0/KfopqQ+KuOHTuFY1xSZgBrT0HNLpuRH1SPalytl wrsbT21N1pOOClctht2Z4qVcLt46xoSeqZhe47n/g7nGuSSkQUQUI0htn8Bg/3QFcoq3JkcTqAh by3/TMWITt3RxjpkTxg== X-Proofpoint-ORIG-GUID: ycWO9O5nWcw7uwM84hSDy6L0PzXQVVYS X-Proofpoint-GUID: ycWO9O5nWcw7uwM84hSDy6L0PzXQVVYS 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 bulkscore=0 clxscore=1015 spamscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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 a callback that allows drivers to provide an explicit firmware node. The node is added to the MFD child device during registration when none is assigned by device tree, ACPI, or software matching. Suggested-by: Bartosz Golaszewski Signed-off-by: Shivendra Pratap --- drivers/mfd/mfd-core.c | 30 ++++++++++++++++++++++++++++++ include/linux/mfd/core.h | 14 ++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c index 7aa32b90cf1eb7fa0a05bf3dc506e60a262c9850..cc2a2a924d6d3044e29a9f864b5= 36ee325ed797b 100644 --- a/drivers/mfd/mfd-core.c +++ b/drivers/mfd/mfd-core.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -148,6 +149,11 @@ static int mfd_match_of_node_to_dev(struct platform_de= vice *pdev, return 0; } =20 +static void mfd_child_fwnode_put(void *data) +{ + fwnode_handle_put(data); +} + static int mfd_add_device(struct device *parent, int id, const struct mfd_cell *cell, struct resource *mem_base, @@ -156,6 +162,7 @@ static int mfd_add_device(struct device *parent, int id, struct resource *res; struct platform_device *pdev; struct mfd_of_node_entry *of_entry, *tmp; + struct fwnode_handle *fwnode; bool disabled =3D false; int ret =3D -ENOMEM; int platform_id; @@ -224,6 +231,29 @@ static int mfd_add_device(struct device *parent, int i= d, =20 mfd_acpi_add_device(cell, pdev); =20 + if (!pdev->dev.fwnode && cell->get_child_fwnode) { + fwnode =3D cell->get_child_fwnode(parent); + if (fwnode) { + device_set_node(&pdev->dev, fwnode); + + /* + * platform_device_release() drops only of_node refs. + * Track non-OF fwnodes explicitly so they are put on + * all teardown paths. + */ + if (!to_of_node(fwnode)) { + ret =3D devm_add_action(&pdev->dev, + mfd_child_fwnode_put, + fwnode); + if (ret) { + device_set_node(&pdev->dev, NULL); + fwnode_handle_put(fwnode); + goto fail_of_entry; + } + } + } + } + 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..abfc26c057d6ee46947ba2b6f2e= 99f420e74b127 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,19 @@ struct mfd_cell { =20 /* Software node for the device. */ const struct software_node *swnode; + /* + * Callback to return an explicit firmware node. + * @parent: MFD parent device passed to mfd_add_devices(). + * + * Called only if OF/ACPI matching did not assign a fwnode. + * Ownership of the returned reference is transferred to MFD core. + * + * Return a referenced fwnode or NULL if none is available. + * + * mfd_cell must be zero-initialized or get_child_fwnode must be NULL + * when unused. + */ + struct fwnode_handle *(*get_child_fwnode)(struct device *parent); =20 /* * Device Tree compatible string --=20 2.34.1 From nobody Wed Jun 10 10:36:59 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 2AA373FADF1 for ; Thu, 14 May 2026 14:28:32 +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=1778768913; cv=none; b=TFUCSc12XCBQKOH0fALseFQ8mdO7wga3lBhh6DYnuM4gIfLNY6xZBzPYIwhhs1dPtzVX8ccHTEfS69i+dgGIlmBEqzFqA3QhSSB+QgE2AN1zOeh9F2svDXMEmMWz7OnvbBmppQkDJUDuZSXc5GXZgSV3AD9PED7wP1Oo0tYcF8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768913; c=relaxed/simple; bh=qY5ZcIM5rzFihKNnoujQTEksmxgJGl5ic/lCFibX6G4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Y34EvrqLWJqYXnLn3UH/WvU5tEiFccGtjH1Jy4mL3tHLaUd0MKDBaVlpNbx0s/vKP+3ZPYUf/poo+HyHPYQ8aDkOeg/L+41h4/daAMr/yeo7UcTke+pkHUaZixlEvkl8V7wddZy5WCZIb9I7jGBeGtrJMmmfDlJ8T1wvim1//8A= 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=hFaeiy8z; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZAgjo+sR; 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="hFaeiy8z"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZAgjo+sR" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBeVaM2261560 for ; Thu, 14 May 2026 14:28:31 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= oWKxom21haWgZdoOhFhN3R9zZKeJdr2nkwKtgHCCEbY=; b=hFaeiy8zlR5ONugv 1yPO1AkOPlVK1PSqAn6ZLWegn7vvi0LDcPXk4qyjoohpMiPJk6sh0vokz/1dhUWc NpKYv9F0SEo/lJDeP9xIefhisryqZoJlcYZIiJroaZGPy5l6MVtRTtvm7A+hfIFK 4I2s82PHoqFxC5fmy+n6p7zdb98YBeD39VqWeQ1uV46PDd2myJc7+t7YFCbL/F/S vBVEJ8TOFX4DkUpPsiu/SPYRIaS8f2r/Dh5EeGRlrzjYtfZzwo+RXv4BVQRXRzmH AZ7Ulka+e+QYjD2gxqcfwHlIde88BozUDHCWRUoXoZ5dex1HEZeBgOCxEfBX9E6P zJf5Sg== 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 4e563hj7qy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:28:30 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ba3245a43dso73541395ad.0 for ; Thu, 14 May 2026 07:28:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768910; x=1779373710; 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=oWKxom21haWgZdoOhFhN3R9zZKeJdr2nkwKtgHCCEbY=; b=ZAgjo+sR3H8ibtbzZ0vhmwDzdt7vVmW3q6ZraZYfNHlUgXtLuAQ46kYSYeE7BEFISl gUQoAJovk+iYxpZ1a2uAiwro4fGVzdk0xfGmKGNpYQ/06cBAo1Ruzw0AfmdWiE7e6f0E DfWMnoKeWFe2hgw6gZ5sRjcxNxH1p+Odq0yCFuomSnOha2RPw6JbqHjcsOpELEVrSGEb dZaxSdQQWr4huFGfyFyETkkFPwdiLJfScICzyBoDUCkcNBOGzDQGbDgSqybIEK1SNk7K YwOYYed0BEZLe6WxequlamvC/3m+suXWnVbvaTVQjrl253skuuXgJWdk+eWTsUlFmVAs Shzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768910; x=1779373710; 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=oWKxom21haWgZdoOhFhN3R9zZKeJdr2nkwKtgHCCEbY=; b=ryu3eSmABfC3dsmK1iZQuciUpFpdiweRuSWnVIqEzGFvGmlNe4bouevfPyPbtmjgfu 63DEoXvNW2adblk4nVKR5UFHfqGcgGKR64P5amurqSHLjajCgRO1iusgM5X51ZhgPq6H ztdcgc/lvyo+iUFXDQ/1EqqM+jgJSFJxma2UAzG5PGFNt0YLeNcm8pCICDrvEGaZJJar 0o+lSqJcl8KJXFbqrdFOrGB7Cwz8cGcHn5bZRAYEBWSeiFznRwQmSOjttO1RHK/kOrjF gytReIDCAMxbwdZwzjifZL44v2A0Jn29g1P2DFevmRO5paKJXhJCvHJTG0x1L6AZdpN9 H7Dg== X-Forwarded-Encrypted: i=1; AFNElJ+/oWSwTEeVYi7q5HRUyRyYjNomQEfUXZ/xUuqmC5pyoldItKKbHERixW1jKSCtFytIh2Uclf9xwnxcoMw=@vger.kernel.org X-Gm-Message-State: AOJu0YzLRsCo8GPE6NgjJ8tW7FCNRgpGvFZYJibtpW2zkqb1p4+EoK7j t4RXypx3wQ42/SgZg5nkizhzT1Ua0qnWBiKF5vcEWny9vwaqywHLCq5IEqI2zgFOwof0nECqhXz 15eQISLreWkjwuZXjf6Yp0zvFz7Y3nFHgr3UONyF5yXtxtlWLUWFNZ6SSUen8bOgtKcw= X-Gm-Gg: Acq92OF6876zUNI/HOpWAY8DINB4EAj1iOZ0Rvgtn+r1PugO+70ILEFpTe5KayZiRl2 ujoKodtz4cvSpIJ3j4tIlHGUrSYnmvm4EBG9iW/E5CVfWKWkocNhGRJPqpIBh1C71342t4tS0Kn fftgv0iws4OfyAt/LULzC3xncPzvVkiIXPUTdd9jFrsYsaNm+heixcdqcV1g2FMhMw7pdwzar+P WqDXHETX7IFnSuyhytgaktQ7ieNRPS5pV0/mYplPNPaPuix/h4az1SGYsomKR3Mzr7hDNvajkF5 fBR5/sg6BI6RZuqI61Za2QKCScthb4fkReNY1iZj5cVJuklfdi3wu8Scc4vUFvOI5/dJRex93OF GibXa9+6Bz+dsYptsaQTJ0onXlRf3ydVnryJ013T9aUsx/G6WhzbXgfql+A== X-Received: by 2002:a17:903:198c:b0:2b2:57df:264d with SMTP id d9443c01a7336-2bd276d9763mr89889495ad.33.1778768909596; Thu, 14 May 2026 07:28:29 -0700 (PDT) X-Received: by 2002:a17:903:198c:b0:2b2:57df:264d with SMTP id d9443c01a7336-2bd276d9763mr89888915ad.33.1778768908917; Thu, 14 May 2026 07:28:28 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.28.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:28:28 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:50 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-9-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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 , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778768806; l=2150; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=qY5ZcIM5rzFihKNnoujQTEksmxgJGl5ic/lCFibX6G4=; b=AsfuP37SwpufjnSF40KcN6LpuME+xnY+R0MQ14SYIMGvMHlu2Pwe3lLn3lm1X4iWvkci3GH2i IRF/AV0XpY3D8SsYxoOayVLFsJWfiPo4qH0uHWQ5tiisSVrbhHY/E5V X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: _n1J0oMG6hIQsO3WouPs8bbivkzpOkcO X-Proofpoint-ORIG-GUID: _n1J0oMG6hIQsO3WouPs8bbivkzpOkcO X-Authority-Analysis: v=2.4 cv=DewnbPtW c=1 sm=1 tr=0 ts=6a05dc0e cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=wFQm1DtpZAjkPzv8fpkA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfX/4GjYT9m0wXY 1yUEzB2CfQJnDwSzQ0WaNr5V8vHypts2Igstr1KunNv5U2ZkZYIhOrjwV5oq1NTCbLQ/aaMdE8U xSWkr2GRfkJ07SmDtjTHZAhrBFlWyWCMGfoEC0ne9oTuVLaKWKSAk670IznZ4AL4vf7pUsz8QO6 ERXBW0kx+sFX+sQSpaXXqznCIVPREDnUk+y+E3xRjPWroIkwTb04F982B0IQxiE4joweu2kxRn1 DfUjKEB+EtH3uABbDN2fPeoBURqw0+96v7SNdEqOSI4VMpqgJc/7pDvd5ONbka3iMLs40iaD04l bZ91R0m3dAa7Staw5tVeY28iUxmeZ633zC2SXJ52n42aqbK9vZ7ZEQWlNjzzLjzbi7b5lhNBi22 F8w3VSyYTN45E4A4Hu51cA9PLo+4FwKJEiYkj8mBg1zbUB1rxtjntZVf3hgy1Eq6mbSBZ0eP7vp K97svrKvJYUL34FVRBg== 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 phishscore=0 spamscore=0 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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. Suggested-by: Bartosz Golaszewski Signed-off-by: Shivendra Pratap --- drivers/mfd/psci-mfd.c | 18 ++++++++++++++++++ drivers/power/reset/Kconfig | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/mfd/psci-mfd.c b/drivers/mfd/psci-mfd.c index 7affd6bb09dd83452664edeccb09290fe4f43186..852d8e294a438d4ee6789c556d1= 6a83739af2013 100644 --- a/drivers/mfd/psci-mfd.c +++ b/drivers/mfd/psci-mfd.c @@ -7,11 +7,29 @@ #include #include #include +#include + +static struct fwnode_handle *psci_reboot_mode_get_child_fwnode(struct devi= ce *parent) +{ + struct fwnode_handle *fwnode; + + fwnode =3D fwnode_get_named_child_node(dev_fwnode(parent), "reboot-mode"); + if (!fwnode_device_is_available(fwnode)) { + fwnode_handle_put(fwnode); + fwnode =3D NULL; + } + + return fwnode; +} =20 static const struct mfd_cell psci_cells[] =3D { { .name =3D "psci-cpuidle-domain", }, + { + .name =3D "psci-reboot-mode", + .get_child_fwnode =3D psci_reboot_mode_get_child_fwnode, + }, }; =20 static int psci_mfd_probe(struct platform_device *pdev) 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 10 10:36:59 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 A90CD3E63B1 for ; Thu, 14 May 2026 14:28:41 +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=1778768924; cv=none; b=p0pCopuewxScRp25N+n8kr4LV8uMZ68U6IEtWDn5IBlwkOc+LK7hvI/WBdnyve/DMHMVpAPBKKmkVERLl6qJZCyZ0QW60BxQnlG+0v11PjGJgM2RxE+8q7Cv4KYVkO2R26+N1SRyKKGGInn2U8M9cUjM2d9WIFdwzfvKgbAbrNk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768924; c=relaxed/simple; bh=Z4ZuPORDaKmwW4HgxyAXr2NET55WZqUTE31cMVs09oQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=frh0Z7tpojtZ2zfY130iRQ7CNExOqZFHoPeLIvcGoAmI+jjfYKQD6xXijzvLA7Fa7IRwyW3gdBvLjGqKxlNbbELF0ksd/cESJRjCoYC1V7OsFpdPaodK4sf84UMOC92lnzwhF2y8slDg38el//l5G6KvRFM8EEVW7ajM/GNR3xU= 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=GMboUtuG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KMavS7x9; 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="GMboUtuG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KMavS7x9" 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 64EBeYlg2238429 for ; Thu, 14 May 2026 14:28:40 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= NzWlaO04yyHlsdDuTucopP+bIfNJCQRkBOIVvtEthBc=; b=GMboUtuG1xj1VF/0 LZjDrzXIme3PohyrPVBtWygHkd5e3XWG1qMA6PRmHGw0B2XxxfhtErGq+3LOjNNy m5sqPOp2CSljODTxNyal4QUAhiREKwpC/LauH25c2jTwP0GU7hHP8DxOJyIySNtu JHnpaMLhaw97ZIKe0D0S7CJyplUgi6avGb6BF7Ds+ZxFXxWBgBfWg4Gg/ratDCOv dmYOh1dYR5NlkhV6f/nI/GiqYWiGiXPgb7aK/rZ95+P37kcCWLDACoPVZFZA1rTD rDii4jX8gUC/9InqVgYyF3Mfa7zUHgNR6yzKy7NUW0SlOmg1UdWQ9PyUA4eZ1KgL o4+y3g== 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 4e566bj697-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:28:40 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2b4530a90fdso188542735ad.1 for ; Thu, 14 May 2026 07:28:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768920; x=1779373720; 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=NzWlaO04yyHlsdDuTucopP+bIfNJCQRkBOIVvtEthBc=; b=KMavS7x93CBFn9Izz+uAhF9Q40Tj7izmfx6DXJAXkpL2Q2VtWmW6GR+CQF4sX5swve OedDkw5aSrtrC+67Po03k9UeX+heIHIyQ2KuXF8f1+cE9duQtHcRC/lu9nEjTfZVsPQn oV86lEBOtnLr8MC6aENkFeL+xwq0pzjRoP8WWYGi1RIZs+eIyXYhmJt6kBkfbN4YHCkz EwZyDX5XkKP+wFNnW38EabSJfV09ezLW7myGD4fv8ioxibR1yAsg+dIQ8dFv7cZy/rC0 7kkFLPmOd3jXYFJaHMKnps3R3zf3dCexvJDh8SUykcAtaM/D9QTve0VAa+gs47GPumsP NCDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768920; x=1779373720; 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=NzWlaO04yyHlsdDuTucopP+bIfNJCQRkBOIVvtEthBc=; b=AZOU8btPZTUyv6yYjwrgY16vfCrg0dBv76ck2kh0DofomOMoXLTgYkrsq4XdwbHi2/ Q6xrbI95Q7D8Fnu2W8nJNIqv+N6sNIGNSuiE/z2MDpd33UUv9yDDRAL03Zk5ENkH6hfe o9LeIwavEvXWfKYkUMVvJXVNnfVFt/W5bTuo233AtugdKLvNDnEiTa34+SKow8qi8Onr m/AjMN3rZRagaeVSM3gnZIyr4AGpz0IXct1DuoBhoSahnKBYB15xNlH0mPv9nyZseB73 J1zl6dDgcgtvlr46hULe4R/bdFaRsEVB0fSQRbaAB7488px9pXbP2lwYHNI4sH+h6sif oXWg== X-Forwarded-Encrypted: i=1; AFNElJ/N2U5iLpsCJeLSwbOqNlVYRavF7+kdqFCtFVl5gTWEql5jDd6n2faIPRAIqRJhd0adfxo7ds3GKvCw1Ik=@vger.kernel.org X-Gm-Message-State: AOJu0Yz4qPF+Zxzq8QN5v0PzkwyJf+P+iacfVQUUtk+1VPwNSj7FVFyV qggC+k0nErfSgLSzWYKPAHQPc/CmQZZhE507UrLdBfkp8Cdy30TRIbJrek1EsQSwGQBr5Fvwum5 5n6ucMERRIqWMlQiVK5reAgD5BmLYNgEh6uj2z62xZSQ9lkLp4ffPQFKH4YPnoycXrUc= X-Gm-Gg: Acq92OFlCPVPvnvOqeoepI8TfBQfTHSAXzjILGcRHpyBmD8iG0DSjBPTR3Wi/rHBZYj V5Ab3mW2+HEElYDOTLnWBYJymzJ6wlRxvop+oFMKROKnLryJSrQL+++HzNhjyeYV+PpolFTnDh2 7DGMkh8Z62pECVlTd1KzkuXv8RCZ1jOPfptFp+1bIyJe/xulgr1pUqC+JGFRz8/LmU9m49eDmNt mkkASOIlCQZA28y4ec3usCPqS2kalzcElZrz3iwVTjVdE5m8jfd6GGXSd16MZi9n7u469jsNKGg syv40a/idZgXzfsbr6hfcHG19fwJcGwdsA9WorS68vvA6LR2NH+tg7Y5ZkmMGwxPEqY65/u7hRa 5jgaf6kR0A7iqMVTcUXBpBG34cK+QiJKB29gMKAIZMa8R/2lXWNg/OuenyrRmtCy2fyOT X-Received: by 2002:a17:903:388c:b0:2bc:e62a:979b with SMTP id d9443c01a7336-2bd30333de6mr84520015ad.30.1778768919642; Thu, 14 May 2026 07:28:39 -0700 (PDT) X-Received: by 2002:a17:903:388c:b0:2bc:e62a:979b with SMTP id d9443c01a7336-2bd30333de6mr84519645ad.30.1778768919132; Thu, 14 May 2026 07:28:39 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.28.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:28:38 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:51 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-10-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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 , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778768806; l=2313; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=Z4ZuPORDaKmwW4HgxyAXr2NET55WZqUTE31cMVs09oQ=; b=UV3YrYW7ea7IDtY3mvFFnc3oM4mTHIzbv8vLk9734m6TdveIxgUI2VsXxYkgt6YmsWwQrXH5O 7md8+BNAZT/DDonxcGbchOqjnzcHx957S4NDCLNDmMDE+9AuEo2Hg+C X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-ORIG-GUID: 30Bd2gsKocygSgCrFg769OBHspYVY4dL X-Authority-Analysis: v=2.4 cv=WsMb99fv c=1 sm=1 tr=0 ts=6a05dc18 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfX+Zq3P4ZGTZEN xYqhiFfd3K1FXLozAWFT7mOBHTOWThBhERK7N+YAHgNUORN0t2Trn9HKmvpZX8utAJgmUomi7Ik e7c1suNf4EwSD46T67dsm/dSfRn6jyKrKWcE03Akew6Vv0CoXVNurgLT4jm/tqlysOzOytStCZe 9Vm9XXsZIlrSGEGc6qQqt9y++uJ0SEi1dXxwqSuQYRTSOa0NC9NtyqS5N0I3RV2tun5RtGAqNCI 0TwnL3oI7aeve8R4t5Z3uRbPr5kmFX5G4gMXjfaITgGVmaiNlNW7XU896b1YTIjgsmZdvhh/DSn onjBWK+36S4iPRGYWdLqSlrel8l9j5P9SywSMyH5Y8KuA6SoKyQjZQVCtXKWdIs+otBXQMsuUqx MuMNCVlQ1wee4vlnSpxJlgu3r/UwsEPQchLnz6HUl9rxLR8anY9xlaD+Nl9Ia7rjqbRrfK8CG0t PWFS1Q5rIZIyCFkv9Rg== X-Proofpoint-GUID: 30Bd2gsKocygSgCrFg769OBHspYVY4dL 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 malwarescore=0 phishscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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. Reviewed-by: Bartosz Golaszewski Signed-off-by: Shivendra Pratap --- 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 ceb68a890bf401ca1d0c787a801d6b192f4e0743..f4af4d1e9bfcee0bbeca892d538= 6bcec5663c20a 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts @@ -1096,6 +1096,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 10 10:36:59 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 AC3863D9686 for ; Thu, 14 May 2026 14:28:51 +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=1778768932; cv=none; b=bAbPKemHJ6V7AILcWk07wJuwm6vqqBvl+JLd/hlU6pKWSDJKRa668KDQR6zy8435G9hEU3DNmSmqshbR/KD56U+G1IXWgQeq6GwHNv59QpQndn2KmYyVFArqeYsNio3PceY5TtCbglrVTN+4j3YZY3lH0/r2Fz3ubjICsG50Tg4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768932; c=relaxed/simple; bh=hQWk5GnSgPwZS2e2a67KLI3RcOaWHf38dgj5HvuzzxY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FfP7SkQJhvcTj2/P1Hg/QBBzAOaISgS3LC6uuCYyXf3dXBNPzHkvRxh8VL4COqnJfkW8rg7YbtHr6bNUSUs4R6N8jSnA2hFkPghmoZjuPXZn8FY3+mPWVJ6Xvoqo43WZgR9+++leLOcONdkYRphrFXqTcxs4jVquPLXHQqdSjaw= 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=gnaUlrBt; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=V2Sq7VMw; 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="gnaUlrBt"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="V2Sq7VMw" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64EBeS8t3951677 for ; Thu, 14 May 2026 14:28:51 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= Z3gmXevIZBqHz/6HbBP+YQLOenk6XainQhMGwbD9zac=; b=gnaUlrBtcmS0yLMj vnRNkqwnm2zN+h3FF5X4ixzhDVvpd0mG6TP/s5+7fOYUaDQZRnLmj4VvKeKKpoor op+2LjuHq6qdeQMCZuiU+0S53gGhSsTFWqqA0mGixkqkZVw/2Iwo3KQh0y+IPAWk ATJ96uE57gT/luf7y5L/5DGSAdXu7nm6ttZ17nhyo7g44pryVTy0uJNfUr75tmG3 0oI71fdz4XFj2csQjgQGHxshAoP3Sc5CWVps31rAs8L3XSiO26Yrc7aapFcpxDU0 +QpKtMxx/bLpQhrWpXP9d5gSgb5F6JTht42+rejUgKDiQMAEOMAHe8ojhNEAhS9T jQd+TQ== 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 4e57kssxkm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:28:50 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2bc6899bfb1so67388035ad.2 for ; Thu, 14 May 2026 07:28:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768930; x=1779373730; 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=Z3gmXevIZBqHz/6HbBP+YQLOenk6XainQhMGwbD9zac=; b=V2Sq7VMwpC8x3jANRCDeUxejcU36ry6+wC8p3xmajwW6a9w1xPzMQrhSugBFQmAOP6 DzCYLgH+6i5OJqj26pfVRj8D/nf2nbE/QEJu5yUDdyN091AJyLPybfsM9yjUpSYFaWN4 aaDQvferhYxTbrx2di5A8OqQIGAe0Eu3XjaM8jZV21MWNgPUkJ7kEEJcAkQ9zXXWndRb Fc+HFD5XPl+sSSf8nB4HpV7PWcfi8rBhI7man0DEOc1RIBg1Ua0GHUyAMdSBY990bRdZ 3Tz7L7i/1fS7/HYoIQO4h5/JIz7vx8fNV/WruF6h5jqIsq1wry8I1OmZcDLmBydAWkLu R7fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768930; x=1779373730; 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=Z3gmXevIZBqHz/6HbBP+YQLOenk6XainQhMGwbD9zac=; b=FvSX6F4OCTgBIbxSOBlWlt4az6ifwlEqml/Zo4V1xRXCDUOUCmXbcPRmQ8ExjchWOt lNwdQgEUw4pWvULTwjVg/TyH0OIZXfrX2FgNmzrKuCaFVFQSGy/i3oHN1h2cZT2ZZx6i 2NimD17CuwsXnYmnnKBi8U0xpVUyOvte/wwS3HsCEBQoo0JkEFDIKOPJ3Apw+3zVanGl hKYv1gPkB9DfyTdqdnSbJn9cVdOmHb3POIqS9lWkU82I5Zbn4Do9dFXZXOITfn/XmQt2 SzDh3ZUgqnArrhaTcvq2sYCM0eyC3zefjWCSdmFVpPmuTkCzrKWDHaFcJL5Czyje+TSf 9EMg== X-Forwarded-Encrypted: i=1; AFNElJ9eFrhUaLwCsBDkzk8xw8jbd/hNL94ZzbEFPaiMVnHZSoNmmdIdB23XzJZRqJli2zRlvhRqoRneQjtzjpg=@vger.kernel.org X-Gm-Message-State: AOJu0YzUKfvh95kA/xRqwfbs2j7vNkDR3+WnvSM3vzMhtDL1O9U/qach bjDlQkrqxUTaUKzz3yh0r2j9b/QxRQH4vmpF2IouwNZHAGfoURp/7aGc0uOes0ENOqkR4n/DfeY ctXUItqOvh1BQ6ZV5Jt6duMu+MeRXKx40mp9xe9DtvWSHcUNwzdy7p0NTkN+ZyfcUAjA= X-Gm-Gg: Acq92OGO/R0a0P1NgYmIWHvlqWl1wxVVRw78dVdL7LzkhAJrCUm1iK0lNQ6a8q+Ykul 3yRh/fiHfTpV9r03g1Haps8ACbU4EQcX1zkzEdNyCkDZ0SNEq2yTI/Dqx2yWKyXV5SnjT4mLVHr xr/peca62dXh0/4LRJ9dgqh8lzIhESmII3DFifvakrjIXiE5wQZkUPD7JUY3FdfLKbE+KzQYudI 4PhjbyopA1ftwX6RnDwsRscPdvcelfK+Cc+0aj0W90aix01L+mKV1L0jl6M5MnxW1u3vQPYzhq9 4IDgyF5OWqGaVHC2keZ+8lEYQ/wFYec0E1hqT1yDFywCJdnGxi7KNIyfRtdTAF74Ccp9WORM4Z3 s66X/s89h2OzDI5A21rKAKOYy8XDzQtvtm3dErPDSv/cyYzuWSpLrh43nLw== X-Received: by 2002:a17:903:fa5:b0:2bc:f3f5:a6c3 with SMTP id d9443c01a7336-2bd276f2a78mr89745915ad.39.1778768929782; Thu, 14 May 2026 07:28:49 -0700 (PDT) X-Received: by 2002:a17:903:fa5:b0:2bc:f3f5:a6c3 with SMTP id d9443c01a7336-2bd276f2a78mr89745225ad.39.1778768929231; Thu, 14 May 2026 07:28:49 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.28.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:28:48 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:52 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-11-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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 , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778768806; l=2346; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=hQWk5GnSgPwZS2e2a67KLI3RcOaWHf38dgj5HvuzzxY=; b=8HTGNQ569NTCRAx7lz4yBrYgkXlEUi/4SOkrgYaKZRigAugMeSI6jpFJU4nygrEPOBC4fE1SH 3jYOuzc8rIMDsTnHivJRdKPKjx/MAVpDeDU87PiKaiePS32/DUYOZ8J X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-GUID: OXx9VwYSpgd98f1J9ClKSkQl_d2t8emP X-Authority-Analysis: v=2.4 cv=KZbidwYD c=1 sm=1 tr=0 ts=6a05dc22 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=t9IVmYW30V31rltyR78A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfXyWkhrrYW97tb ll9C0Zo+N4dkhrQBOXzErNUt6K9LOaB7yeAf9UPl+Yrd+dmUxM0a2hpAG4G+rnVGwUNnkQcGt/h phvnzvv5Fd5QrmEAy48uzEtJharR0OsRBJFPu5zFC67nSn/G/qtk7ohA0Hh7eaf2RodcKmlgz12 n4zVMDEgkjzg9XWTy9oHfL9k3iYcAU2bBZfznxxzKK0SUGpmqVuaSf260G4/BeUglhuJ4MrzXbU QaDOzSVei3f3wZlpL7OZ8nmgyKlDmgvAqQ6MaX7S50DMi9lClsIG6LENL4mFx+qGT/NpFKxmCHs pnEVi0XcIbmlYQQ4POdm6+6/bVfqBI52yhgpQ8w68SK0PCH+rRDy89V6cBcl3SwHgQISBkYmtKr p1txeoQ2c3hvEKjLBmlIFV3AKcULO9QWSXu5fXGVw07mc5bBWxbB4BV2Lvn7dXgVBoeCaDdgXO7 8AHpKJS6+Z2jRTDEEsw== X-Proofpoint-ORIG-GUID: OXx9VwYSpgd98f1J9ClKSkQl_d2t8emP 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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. Reviewed-by: Bartosz Golaszewski Signed-off-by: Shivendra Pratap --- 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 40f88498999bd89e030a6685e6b84e7283e866c6..2a9ef170f654b1e270b1fa6d4b8= 61dc0c4642760 100644 --- a/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi +++ b/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi @@ -800,6 +800,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 84a1e5ebbf5e58b2fe11978c3af08cda614605f0..447d80aec5bfa1fcf11a933669f= 4740ef310c9c2 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 10 10:36:59 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 6AE5C410D26 for ; Thu, 14 May 2026 14:29:01 +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=1778768942; cv=none; b=LUqmGLPCkcw9Ff18xtOse9yICzJX/ugvsSG/7relx+XhXFSKrMqOSK8Okg9R6hgoVrEm2lsakjGcwsESCj1lILngz/jYGag2saV1ZkxHqUb7jzCyDLo4dEgFI4oofiKFAGuD1cdWjPVDC9uTeGbf5RMrmeBHXgZZb+Y79y5OW/s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768942; c=relaxed/simple; bh=0UqGJToy0TBXJ6WPFU7lKlAFIhpopdAI0eFI74nJSqM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eNvS29hs+mhxLtWdgVQ+3UoyIHfJKgsu491ZY/DwDV8r1CZjeNaF9q+AaTNThMrTB7hZZvT9m1owwxq8z6wBhaxShG509VDLIQZZROGSQ7X7ZWHC+K/NS6DpUOOWMWoalfmHPxpy7VmM6stfRGV6F0ry8gP7ADpyDQrfsp+5z6I= 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=QeQM63iu; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KQ9SbyOZ; 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="QeQM63iu"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KQ9SbyOZ" 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 64EBeRhJ2713180 for ; Thu, 14 May 2026 14:29:00 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= oTNot2G6UXK9KjvKbPaeqUks8bb1J/oblGSXDP2sQRQ=; b=QeQM63iuLk/7LG7Z M4Kp+xld3oR+w1BZnykV7HZRxxUscupSqZWv+NxtomStZgmTLEQbV/Juf8JezgDY DR/VvbfEebXjbFVtGyih5I0zB1GzYG3v90Z8Z4kojHxRv7nIKqMRS/XUu+NWwkLh 7LBaeLZx8HkF+1WxfMypBu+WCdi6fpDu3TvOtPJpx/Sre9RCmTatPUJc9OJKs7A/ wGyFnlv838TVpKzz0wbYHh9ltETQq0F4c1XdTa76/YdtCqsyVMYkE//dPoKsoTtt 2Y2MVpBGnMirHmLDL4XVGWp42GkRv9Y1fBXzpnWR7J7wVh8AVkpjQYL+H/mSeLSE 56VYUA== 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 4e58v89pqm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:29:00 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2baf7748d0aso73732105ad.1 for ; Thu, 14 May 2026 07:29:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768940; x=1779373740; 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=oTNot2G6UXK9KjvKbPaeqUks8bb1J/oblGSXDP2sQRQ=; b=KQ9SbyOZ0hSJmFobCdfHsqggcT38FotnsswP4MMGCCp9uqNfVcfgF5F4ved/eXJ0Sf yVZIJYqRgqHNA6RJN+LuG7yHQfGqisoIvZV5RxVu4+VKpA3rdKE8FdWV1559WLf7lCnU xwmqHThzupb01p2tjQIMOfdBI29vncp8oFjy0MAHsnqmh8DF5ptFx1BufUM+dvh60wrv ze1meLkGWRtL8sXszt9Wi7OgskwGsU+38Gj09DLz0SB+ft/axrOExS/WL6tfjRdFJnD4 lRs0hnOld+3H1yXKcrfL6TgHjpqQ+pRR5gyHOfH6cj35702oIFzsZYlLkXTI/WtLPbHD zYxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768940; x=1779373740; 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=oTNot2G6UXK9KjvKbPaeqUks8bb1J/oblGSXDP2sQRQ=; b=kP1HXphol0bv7RKZf014HoWB9WH/3U87EAryXLHD7fYqIlsGUCFLPL55bELAovwLew nTztI5qpXB5xTy7Tb1gaoUmhJPjmrwBnswxcHLU4R2TEYW96tY7JpFjNUFLtcEe+ggve ag/Qykv2TsLu/UWglfnpcXXCET1vtUDoM2Lj0EoBJz/MBL+dESjw2rw9WTO3KSpMDai0 f0QDaf00Rt2GWOFKaY/WCFEkgrL8+qa4Hq6LVX+QoZ5a9xQhGh/WE0q/+QFZ1o3sV0vN +qNxEjqME2x00CnVJpbZayL8wzfegbuVhv7h0B7/pUT8NfDu9gUvlPBbVVDAZI7gloBN uB/A== X-Forwarded-Encrypted: i=1; AFNElJ+VcsVIBo5WMIwJc2HMOyD1Z1etUsp+wI1plg1RV9qHpYAEdKyDW6x1gY5WzNAkzN0tb/0EmYBQyNkyZCg=@vger.kernel.org X-Gm-Message-State: AOJu0Yw5/wtHTQqV/KvcdW3wpF6OwFJr0kH5p+ri6cOw7WrE3hIhca62 dRJ0IFwHwtLTqNhqZRl81YNplmGLkbhroBz0sirU9+e5Z9JSdSrX3c2XYT1A2j3c/ljOTwlYq1f 9PLO4c0/3uj6HDuLV/4APyVRhVg1zF2TA2EnRPaKJsiLM3veI8ZHG6GDfGjkWZNMiv3E= X-Gm-Gg: Acq92OHymViHYrog9CMeb+PnVVr+nc/uwUjFjqeNLH49CIb+hG+ArOL/5Fs1lw9ERi0 BwnMkDWXl3bRTBXD3Gl4pZrZtRz0ES65Hxpy7/UWoxDPlHRtGCPpJKKLUamf2pmsPcktkbX9tU3 sI3N8jQaK6Q2FkHpXx/t2DyZNIvd1TfGHeS0ugclZQVrRHQsmf9BU9YcC3HRZk+8++5byCTQnbq M3Kg093bRWBUBePrldHUlab1y8GOHKY/me+ntdQjAylg2P21eCH0bGRZ1N0dAXwdMwn2lh7uHcU /6rz/IyjQAaGHunRsii6Zj7BVq6Pxm57kq+m98I4ROqZmsQRrjYM0sGgZRT1o5nf/6CR74wZeKL IR1iTw/f8vGgACa6VA7Y/Fox+ivmEEqkxMrMrwWfwKRu1WNc+UBszj7vNzQ== X-Received: by 2002:a17:903:247:b0:2ba:1202:4fa8 with SMTP id d9443c01a7336-2bd27291ba0mr83863495ad.20.1778768940020; Thu, 14 May 2026 07:29:00 -0700 (PDT) X-Received: by 2002:a17:903:247:b0:2ba:1202:4fa8 with SMTP id d9443c01a7336-2bd27291ba0mr83862895ad.20.1778768939331; Thu, 14 May 2026 07:28:59 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.28.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:28:59 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:53 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-12-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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 , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778768806; l=2244; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=0UqGJToy0TBXJ6WPFU7lKlAFIhpopdAI0eFI74nJSqM=; b=mc2n32EA1551rOvh7McfKD4VQShAaZJi6Mm1+QyG4LG1g9r/Pp6mbhT0nsgCYpFPHBED8gDSD 4eBSLKFcKEXCJfpEeyPgXtkIksK8OgGl2nUJzAaCxihw4VD+s4uRJlb X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfXxbnmTHk5l2W3 7GkTsZTX/qDh5Uyatq3Wyy82xWI6axWe2ItS3LkdcC2L7lZoofEXUzZjqXyrjk2fU4m2Nn4l/l8 s0grZFUzE6S/IndFQ6JOV2LArSrlCADKV+EPqcw38EMbmmOR0y2UvKpEpIMwCabsOM7yhxhThOf RSa7YjnbxuRyWZoCQ2nmoJYTreb95SWi5EdC+T999PcM/Lw8VlvBZnwhfGXdctNBY5f+HCJwYJY w6s9B4Aa+2SE1ff9qoNmEVxID9cEDKXOBK2x1oUE0On92byxi1gUzk7hMm42RcW5Z6bzGvojCCI gySfQt+YdRgSrrpezW5slBoTgy2ksjmkMc26QxBe9n8OWWzCP7Mv7Q1JDaAcKspUTuNcIN+OIe5 3PuLprDg1HQn7F7gnwALhhYBGHVCuWsdrkZuSijDFebyCGrLzHzF7kGrOJ4ZR7HeXZzYe5wCtdf B8f5m6mm6skWinwsOeA== X-Proofpoint-GUID: VQ_NHIITVUhDpTVzsxDId9UMNsEdvPtI X-Authority-Analysis: v=2.4 cv=YZSNIQRf c=1 sm=1 tr=0 ts=6a05dc2c cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=t9IVmYW30V31rltyR78A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-ORIG-GUID: VQ_NHIITVUhDpTVzsxDId9UMNsEdvPtI 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 impostorscore=0 priorityscore=1501 spamscore=0 bulkscore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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. Reviewed-by: Bartosz Golaszewski Signed-off-by: Shivendra Pratap --- 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 10 10:36:59 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 5C8E940628D for ; Thu, 14 May 2026 14:29:12 +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=1778768953; cv=none; b=r2+wpWpLYEvTxekQ7wSwTW0OPbzoc1cCFtDlkZSEu+sb6SmKabXi/kBHejnK1el3RMX9ZyQq8Y2ykevCmeCbDayDi0qm0cyKsiPidyky/97Qt50VhKAGf2tU0N55AVylOcN7Fl2PsjveOeoRr7Xf3SlvSiMiU6+TRwDEKOxUVQk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778768953; c=relaxed/simple; bh=fv/5hA6B5h6bSFJ3jKPW5Yj8V7+yiEtiEsQ3Jf2Ak5E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qjSIKtTdODGyuZtYyH+fCBkaOZ6dowskuNg3kVdcIaW1bL0ucDQo2Cb7wWPXm+oW2l1Zruuz03AB6zf0JrXyf+EDaW3HsIVi1DvpHLUtMAU9wlyW2Z0NvNceCO6UEyk9DV4DUFIhjdqj6FvWpZmvdb+G2JaW07n7KWo06xwpxf4= 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=i/7XF9ck; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iEdYyYl4; 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="i/7XF9ck"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iEdYyYl4" 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 64EBeUCn2713281 for ; Thu, 14 May 2026 14:29:11 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= o6KLS8vHiombqosDZEYpdFeq0nG5CyaHud+DvpMo+CE=; b=i/7XF9ckTQVND/dC TYkq0l/GzJfcDmNbkYBgu/dmSahdZq+voxXEMKcAkQ9jb3/EwuGoHCDIB9g3hBoL q9hjln/GwV1tjG2/W5JoAHU0+pq9IWdB/WR93kiDXc/zJZWyhGwH2aTxEy0ZaFvS rPqIeaNy31v4dslLkEQWftw2+af/NBnBK70hNs7ebp06nZLJUVKF7AXg6Jdk/NN8 5cms4Qk5F2qvkU1BJ4CexyQUXHzxVce0pkvKcF3umunCg1TvR5t2qS1jiqGF8xps BX2OmFHWyceJkJzvPJRDywNzES0NDADXC/Wo0ktlcdA7dcPe4HeFe67OTqd7xfSi BDLE6A== 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 4e58v89prr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 14 May 2026 14:29:11 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b7aba0af02so84354575ad.2 for ; Thu, 14 May 2026 07:29:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778768951; x=1779373751; 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=o6KLS8vHiombqosDZEYpdFeq0nG5CyaHud+DvpMo+CE=; b=iEdYyYl4lphwBFbtQ1IbURYtbPQF+A18cAGAxmobfi4MON7iuVyDf/sJS5bWGjaE8A +JV45Bzl9MX0uKlu3XIPiVioGg5jYH8j++5pP8VZNjYG548kRbLBmITO+GKJfFndO3k/ NZnkrea54xyHWMspgO8fsVcneA+EI8wAoJAEkVsATu8oHH5mFMcMkRwuOeFHfEhjH106 LVp/GxmsgRPSaGciWHSJY4SLkfN/odIDqm1MOv7D5HRir/F1OaJIXrKo06usyV+p8qkB BrahTJxg2ubHs7LVNSY9K+qpazL66qnRqkii6KpQ1BU2AlmZT97nBF3AGFsuut81hLwi VRLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778768951; x=1779373751; 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=o6KLS8vHiombqosDZEYpdFeq0nG5CyaHud+DvpMo+CE=; b=k+n6M08LPi4Se9x+J3ltfjvoO9tZ3beozubyHx3JdWgRErR6R+dFczDIuS5vPq/MH9 2bPkTHH0zdyX/G54IxOKiXMRTdGM/DR82tKjsUv1U6Es7Md0l88AXJIHup8l69lW9Huo rjEuRmTWtzSl+Pc0q14X4Ys0F3qI3lwpzYS+QmHRrUfepJ4uccrkjnyhW2b0lKY2jkYe zHGV7C+PVYHCW6XT7MQ1CBEi3Z9e7DYh9Ab5CdOxJ9e4q9iRBQ/UvmKKopP275HGVd1r miw21hJh0ehfdRQ7N7/Iu8htu239PkiI5T8zH9B/vvGGbbClleP7e8OESnApBEtMz76i I65Q== X-Forwarded-Encrypted: i=1; AFNElJ99dnMc6b8GTWqaNg8mVn3EfNmNNBUJf7IoL0ZjRRitbTYyr4I6IE4Vw7QG95t44MjakKbaJOeegoWZAVA=@vger.kernel.org X-Gm-Message-State: AOJu0YyFhUfnkRzun6Xj6tPwvPtWuPhO+/q8AI65syVBMtzDzFfkmqxO 1dTDojV1Zh+DGgNYWP54CFHzSM2aZDO2yM1F84ZwaSdRrwCxG+Sb+Pbtq7PmQ1PV/uimisShk7s AZVWiugnaZtDG0x3gCaLIKa6dPhoMkMdvo81nMqeOO5pGlL/7Cy5a//TMOGPK7PMzXrw= X-Gm-Gg: Acq92OEMTgNuUtaWfisirQUD6ZvXdtlKdkLU6khSrLv4dvYsSIUwuxaK/3+pC02Htip Rq5Zk+uYPXywYlHqldooqSeE7pVVvhn1IQ66O7H/taEaQezLxKwsLqFtuQQkK3RQWTmBeJz3KFN 8rCu9LQfTQF89JXo816z4C1czfS7WkT8i2/P6P3FeY+8ETAsOU8NsYfMbFCN5R49PPO/x545+EH LANuRWdYYNGPZJ0X0btPhDOXzDXKgPpFTniMca5JvKxHdz6e/PL6AGHVSdw8+rv31Cy0o0HdEm7 Ifyu8e/djZGpQR7wbLAhLqFPtRLp438aZRqT1b39ZnGmStCwWSL+D9mRiU84Qf0Ho4Za6OXeF3s /OZNfX3Kyba21r9PsQ8vm2Zp8iABicDBC1eEA58a+dMU3EcNa6IObavESog== X-Received: by 2002:a17:903:120a:b0:2bc:78ec:54c0 with SMTP id d9443c01a7336-2bd2ff2a51emr89626555ad.31.1778768950468; Thu, 14 May 2026 07:29:10 -0700 (PDT) X-Received: by 2002:a17:903:120a:b0:2bc:78ec:54c0 with SMTP id d9443c01a7336-2bd2ff2a51emr89626035ad.31.1778768949767; Thu, 14 May 2026 07:29:09 -0700 (PDT) Received: from hu-spratap-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c05ffbesm28566485ad.27.2026.05.14.07.28.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 07:29:09 -0700 (PDT) From: Shivendra Pratap Date: Thu, 14 May 2026 19:55:54 +0530 Subject: [PATCH v22 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: <20260514-arm-psci-system_reset2-vendor-reboots-v22-13-28a5bde07483@oss.qualcomm.com> References: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@oss.qualcomm.com> In-Reply-To: <20260514-arm-psci-system_reset2-vendor-reboots-v22-0-28a5bde07483@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 , Bartosz Golaszewski , Song Xue X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778768806; l=1676; i=shivendra.pratap@oss.qualcomm.com; s=20250710; h=from:subject:message-id; bh=fv/5hA6B5h6bSFJ3jKPW5Yj8V7+yiEtiEsQ3Jf2Ak5E=; b=DTfcdvmuHlaXJOFI959VmgqyKdy4KwC74h60uKvEJMgANVtVK6agBUfCB1qK6VdTsL7mvl14J T3zgl6il8yIDiXblCoQ5QJIMe1V8sJGmhryAweJi3aC5fMddvtrdDHs X-Developer-Key: i=shivendra.pratap@oss.qualcomm.com; a=ed25519; pk=CpsuL7yZ8NReDPhGgq6Xn/SRoa59mAvzWOW0QZoo4gw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDE0NiBTYWx0ZWRfX1NLsCCyGCekv UW89HFAbtquxwpVqp5WqbEAdPKCi57H88xG0w22z1iJcuGyi+GaknaQM6WQ2/bFi3AzGP4Y8DrA zl9q7aFoo3EBamlzq6ygFtIMUuXPmagtgjSnGp52aNccQWEqYBq0EBEbLInSa3triWz8lRSCdts +ksa2zfPzDd2qiLROh0roo63h/ExicqcbXxCBex7aLgNKoZ7KE6U5SQc+TUGKARhuhIKyvSEk3b DPAHhv9F6aM8V0SJk166eGmB2tIxY3U33kTrNT4sBpQO7lH4bugU7CRff75wD6fHXLNCiMwGP4+ eXy9vnV5StYPa5vJ4Dl7jV5rkexf29Pqpy6CoE6ZkZJBJQxtsk6Az6mxlYC3xrldHnasWERps9N cl/5Q/Xx4pO4Ro20qUJIVE9av7z1gOlu6Cywy+E9EwqtquEnDMYNTI88fpIkF2m83qEmcG98L71 /Jzbp7GmhfBjO90wGrg== X-Proofpoint-GUID: n0s2WHOvWKuUEdBu4Ggb97N7-G8bfGFr X-Authority-Analysis: v=2.4 cv=YZSNIQRf c=1 sm=1 tr=0 ts=6a05dc37 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=NtfjKPfcWimlndMDSJoA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: n0s2WHOvWKuUEdBu4Ggb97N7-G8bfGFr 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-05-14_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 impostorscore=0 priorityscore=1501 spamscore=0 bulkscore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605140146 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. Reviewed-by: Bartosz Golaszewski Signed-off-by: Song Xue Signed-off-by: Shivendra Pratap --- 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 831002789838033ff6c4135f2d558a0af0d3ec83..ad488570135591eb7a9e5dec5fb= 1924163a159e9 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