From nobody Mon Feb 9 15:08:22 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 E3E1E137930 for ; Mon, 5 Jan 2026 14:16:18 +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=1767622581; cv=none; b=Q93yIH5XXYrr4h+MNykSsJKVLKDOItVHLXxMggRQm+f9h+vWNKqTMQR43z6u7WO+G7fg4Ox8QFq3T7dO0MlK3jjCSU+HBPAWx+NJTDS0jV2/+vCOnq7vZGNw6/46JC5gKb4Mg+icCKX1wVREG9BzCgQVuLUXFWQgiaGcGZxE8kY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767622581; c=relaxed/simple; bh=9IphWuAB8jxPLxh5orATNPyne2wf5XYDVDfrxVCS5wg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hup0Aea4iBOcqK05y2tQgSDkuGQhYfsWKxHOVr05pdCt6BV2XLP801BykVIeNQbtfcql+KUyN4Lw5GlY/8Jr1q8NduwXxGTOQS6SQ2NZymlqChopX2sj+gN0X9ITJvqIh0hB4XdujMnblOKOphjcUACT3vmldunfRy1BKQ9d9v0= 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=Uu0Ww3kk; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YITokqAd; 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="Uu0Ww3kk"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YITokqAd" 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 6058NV563819432 for ; Mon, 5 Jan 2026 14:16:17 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= aJMlJWojOww2XVpQXBRvybNLvUzPxS+CbbYSA4bVPpc=; b=Uu0Ww3kkck7leIa3 k365kuvSXWkdhRSLldTON9lhX5lE9carIvb3C2JH+jkjcbIsdPsTqjgk21Q1s59I vNUt22mz+bW5CBN6Rnb/BgbJMfqWzsLNHmn/C8JpaRLdJ55FUpzvqxd6ls7dRLcW LRNK+9Bf8+4NF66EV7KU52SkqD0dAZiYZwI31nWipoQIDYhHujVkammhEse5runO aJw9t/2M/9uiRu2TlljIL5Sm0C/Y6rVed0BXAfooMgO6MHqz7fJfz7IAzgl6qO6f ejTtuxHAV0/faZ14gWP1xhmaAj/KRsTpyOuBWUKOXewuWNsEK6LiRwAhD3eiG5Tw SYgkMw== Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bfyx0j601-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 05 Jan 2026 14:16:17 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-5e9e12601d1so13656138137.3 for ; Mon, 05 Jan 2026 06:16:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767622577; x=1768227377; 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=aJMlJWojOww2XVpQXBRvybNLvUzPxS+CbbYSA4bVPpc=; b=YITokqAduxIVZ1fmdxg5qqmELLn/nQlMF/GCfzriEyHu6atTjetCsF/Jx5zeb+Yych RwwcWk++UgOzGa9zFJKhe+D6jPEYlYFvE4tuyCfkvsYZgKiUZ2FmbwvngCxWbdY0paYR 76EmV7HJD6RgwLiT/CLanZQdl3d5+jK22IwkSu7hqCFKYmoxPZN9GJzrAZXHNzxfuYSh wuwZ0GPMEQ2Am/zHNTvkAagzouJ6P4x08NNVwLci8GtEbOp7UQ4ZmpGYTqEPiV3AnJYW LLJCK0gMp3smSv4pcW33lAKi8dih129yLu63l/ZCypujrquVX80bxuotnRORRbZuBZYJ VoeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767622577; x=1768227377; 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=aJMlJWojOww2XVpQXBRvybNLvUzPxS+CbbYSA4bVPpc=; b=fTKyY/dJ4FReS4Mqhrfd24n2eWhUQTACcazW7XmcUcoIAx5GU7VLReyu+AwPgq6NyJ //Yjt79xfH165xdvGe65EkVD+Ays6GdlIN29+2BPlHeLOIOEZ22xn8uRjFeszDy6QXLk 2ncNq8fCRkgyMV0PPvjwwmaLkahSWPldhPGFYsjg3e3c+frkAV9Rrqc9KJMO+Yyt4Bk1 cyvK4MEHOk9FQ2QLo5xN4s9VyRMQxUlP1ZE+nJeydhRGyeP7CNTtLDK1jR9C3c3/ApQX coPKGiuuFRUrGetOdduYqVdygww+mxw2A4CS3eAG5x+8z28mU07g5UStAFbLpz9QYEl5 zi2Q== X-Gm-Message-State: AOJu0YznqYsyCsqUN/bpjwOGVMkJDAMGui1vQ33bwLn5VJ5RBY/ZBKwV 7RdG/56P6YjE6JhSXpBc3FOHfpt0OueRUWhlPgGjld00wyYPIV6+Ne+qbuHlnXtvqsiSLejEi5R eppE6E82nTFkQH84FiPwGvOkXN7Rltubd6QH87bBpHz7XkMcTY5DVzcA9UCQKmYgvjzA= X-Gm-Gg: AY/fxX6ToT179Y9UFFgpb6ixOr0pIw9IqUqGAKuGjOGHzDU37oye/Fmc3B3ZWjYTGHi 5z35QHOfP+inPNabiCJrPUWjuLfx6cRi4fKqajXXaXzQ7xqRptvCl3I9PsVSG2moiG0J/5PLryU JEB4VLeBSiZt0AhM8uzLNtZV/11H8gjlRYtaYf7eChGmqXTOPLQ+JpXJYDNug/k2FuHyLpartVJ e4AxWq43lb8aOBIBVD6Zx4z8SK+mwMN2ABSD/LYE6B5NfotmA9jpzEGwd8Yt+Bp/ZU3a+T9NDOo /n9WaN0fGt1xQJi9SUxpxPMnqn2P5DdqiPAW76lbrG+1+2wIpfC5WeGBaWtDqubVDdyCIidya/c 5Y2Zum9xvX939AxkP3z7cyDG7JGqtqrR02+lN7HY= X-Received: by 2002:a05:6102:c91:b0:5db:e96a:8bfe with SMTP id ada2fe7eead31-5eb1a6436e0mr12382471137.13.1767622576817; Mon, 05 Jan 2026 06:16:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IGLh+TBlfX5NhZG2zYMkKz4F9qjzontEibu7x33xdSM0tRAyAbgo3sDJI2vU9VIAPtynWHVGg== X-Received: by 2002:a05:6102:c91:b0:5db:e96a:8bfe with SMTP id ada2fe7eead31-5eb1a6436e0mr12382445137.13.1767622576308; Mon, 05 Jan 2026 06:16:16 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:dd3b:c635:dd06:9574]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4324ea1aef7sm100774703f8f.7.2026.01.05.06.16.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jan 2026 06:16:15 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 05 Jan 2026 15:15:32 +0100 Subject: [PATCH 13/15] reset: convert the core API to using firmware nodes 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: <20260105-reset-core-refactor-v1-13-ac443103498d@oss.qualcomm.com> References: <20260105-reset-core-refactor-v1-0-ac443103498d@oss.qualcomm.com> In-Reply-To: <20260105-reset-core-refactor-v1-0-ac443103498d@oss.qualcomm.com> To: Krzysztof Kozlowski , Philipp Zabel Cc: linux-kernel@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=11270; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=9IphWuAB8jxPLxh5orATNPyne2wf5XYDVDfrxVCS5wg=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpW8efp49gTtD5p85DGCMAe8c2eo7n9gHpTciRL SInTYX0AsKJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaVvHnwAKCRAFnS7L/zaE w8YUD/4s6vDLL+TcFbxbwN3RVcYqUxxqQf10Nts1dRIJ8yaRZZnzxKgM9hXmcQ8vWLpw7g3UBG3 IVHGxMwIfdZBqbiCwywaLk6+6BJV9xILtU7oecn0gisMV8ExDTIzrEmRpgHAMOKnUjg9YnZljjM kTAyrW6tx227Vx1QMxiWIgsUQ9aOm/g0MlJEkx0E3mw3Z+ZD8vWPedU5HCgHwUoFWmjjytO9fmN 4C6k6xEYm37gxJhgtITu9YSzuCaFe6cjua9qyTFKmgQ3GPIuoVaWGQWoZT6x+XgA2nsd9Ldvrmm stiWhGCbUkDpkeVCLXPW+AH1q2SSPc55xkqTYet1Dx/AvtVDP5HjxfSARz8VSw2hkIJ0lsv85gJ omKOX6DS7ne4TTkhRToQKzGaPoHt+/EWXZsQoXVDCfE43kwczT+3cFcxR0slgb5YH9nrn+PPCwZ 7t1WVaaGggfrbe18ambHDrrUUHd1u9molvfSYsWqe3/avgNnTLxOiGbWSbxqTdkR6kGyqIrlmQE 6cI3K0thwYC4mwfQTBt58K0b0Kkan3o5xaNAsEGnXLIzhEbOtxZMW38fNgDJao3Y1ZPOyWMkuiw BTrSSVUch4FjLyN+R0HiurH+jwgVH4Xa7+Y7qvbtlyjpPP5GNGpnBM7W+4dcIeAQ8Z5vaF5KriE bjcH5Y2U7KCIKcA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=CZYFJbrl c=1 sm=1 tr=0 ts=695bc7b1 cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=jmokhBh6uMhyoXQoT5cA:9 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA1MDEyNSBTYWx0ZWRfX/e89ebZngYY5 Asjv8uJvcClgCCivWvL1G4rHtS7/5SBnzuyrMA/zG1PkkL2HYAkjhtfJNly7zTWwrbyKeQOB7Ai I7+Ukhl0FMnQU30b/JHlSlK0F6EHLQ5/rQAB3o20LdCbdMnNjQVij+m6K4tqUycmDZ+6cWoyC27 4KQ5n2YtnAm36fRgv8BgkmpK7x8VMguaMW29t/iTHKvnst665QJKbnUmaONf5iNv826egTyTfOI mq8ta24dIWQkmaA+TBVf6/biMI47Gcz4o2qKWETLvtqmxaJZTNrNwZKGymdJcpor1RBKCB986ZZ eWwSsdlcyia8Fo29HspFSDAfp3Iq5RFnJkqyVcc2sN7BTRzKLDms1+kStwps9Z3Be83o3yboDi2 0hHhk0Vukk36ksXhB3Gd9qyoW/uAgiLTLKs2QcFf7XzsiwbZzTm8993S3l7WgvgaPjZXoloWhTP 7IgGYKGlOb2kfLEXPmw== X-Proofpoint-GUID: wfFBG1dsJfkcgqbBZJrwTm6CTMRUtIkp X-Proofpoint-ORIG-GUID: wfFBG1dsJfkcgqbBZJrwTm6CTMRUtIkp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-05_01,2026-01-05_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 spamscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 adultscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601050125 In order to simplify the commit converting the internals of reset core to using firmware nodes, first convert the user-facing API. Modify the signature of the core consumer functions but leave the specialized wrappers as is to avoid modifying users for now. No functional change intended. Signed-off-by: Bartosz Golaszewski --- drivers/reset/core.c | 33 ++++++++++++++++++--------------- include/linux/reset.h | 43 ++++++++++++++++++++++++++++--------------- 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/drivers/reset/core.c b/drivers/reset/core.c index e29b305e4f80558e0ea33efd547ca3f4eed1cfd3..11c5bd0fe2b23e76db0b4739c5e= 34e478d83608b 100644 --- a/drivers/reset/core.c +++ b/drivers/reset/core.c @@ -1047,7 +1047,7 @@ static int __reset_add_reset_gpio_device(struct devic= e_node *np, rgpio_dev->of_args =3D *args; /* * We keep the device_node reference, but of_args.np is put at the end - * of __of_reset_control_get(), so get it one more time. + * of __fwnode_reset_control_get(), so get it one more time. * Hold reference as long as rgpio_dev memory is valid. */ of_node_get(rgpio_dev->of_args.np); @@ -1100,18 +1100,19 @@ static struct reset_controller_dev *__reset_find_rc= dev(const struct of_phandle_a } =20 struct reset_control * -__of_reset_control_get(struct device_node *node, const char *id, int index, - enum reset_control_flags flags) +__fwnode_reset_control_get(struct fwnode_handle *fwnode, const char *id, i= nt index, + enum reset_control_flags flags) { bool optional =3D flags & RESET_CONTROL_FLAGS_BIT_OPTIONAL; bool gpio_fallback =3D false; + struct device_node *node =3D to_of_node(fwnode); struct reset_control *rstc =3D ERR_PTR(-EINVAL); struct reset_controller_dev *rcdev; struct of_phandle_args args; int rstc_id; int ret; =20 - if (!node) + if (!fwnode) return ERR_PTR(-EINVAL); =20 if (id) { @@ -1178,7 +1179,7 @@ __of_reset_control_get(struct device_node *node, cons= t char *id, int index, =20 return rstc; } -EXPORT_SYMBOL_GPL(__of_reset_control_get); +EXPORT_SYMBOL_GPL(__fwnode_reset_control_get); =20 struct reset_control *__reset_control_get(struct device *dev, const char *= id, int index, enum reset_control_flags flags) @@ -1186,12 +1187,13 @@ struct reset_control *__reset_control_get(struct de= vice *dev, const char *id, bool shared =3D flags & RESET_CONTROL_FLAGS_BIT_SHARED; bool acquired =3D flags & RESET_CONTROL_FLAGS_BIT_ACQUIRED; bool optional =3D flags & RESET_CONTROL_FLAGS_BIT_OPTIONAL; + struct fwnode_handle *fwnode =3D dev_fwnode(dev); =20 if (WARN_ON(shared && acquired)) return ERR_PTR(-EINVAL); =20 - if (dev->of_node) - return __of_reset_control_get(dev->of_node, id, index, flags); + if (fwnode) + return __fwnode_reset_control_get(fwnode, id, index, flags); =20 return optional ? NULL : ERR_PTR(-ENOENT); } @@ -1453,23 +1455,24 @@ static int fwnode_reset_control_get_count(struct fw= node_handle *fwnode) } =20 /** - * of_reset_control_array_get - Get a list of reset controls using - * device node. + * fwnode_reset_control_array_get - Get a list of reset controls using + * a firmware node. * - * @np: device node for the device that requests the reset controls array + * @fwnode: firmware node for the device that requests the reset controls = array * @flags: whether reset controls are shared, optional, acquired * * Returns pointer to allocated reset_control on success or error on failu= re */ struct reset_control * -of_reset_control_array_get(struct device_node *np, enum reset_control_flag= s flags) +fwnode_reset_control_array_get(struct fwnode_handle *fwnode, + enum reset_control_flags flags) { bool optional =3D flags & RESET_CONTROL_FLAGS_BIT_OPTIONAL; struct reset_control_array *resets; struct reset_control *rstc; int num, i; =20 - num =3D fwnode_reset_control_get_count(of_fwnode_handle(np)); + num =3D fwnode_reset_control_get_count(fwnode); if (num < 0) return optional ? NULL : ERR_PTR(num); =20 @@ -1479,7 +1482,7 @@ of_reset_control_array_get(struct device_node *np, en= um reset_control_flags flag resets->num_rstcs =3D num; =20 for (i =3D 0; i < num; i++) { - rstc =3D __of_reset_control_get(np, NULL, i, flags); + rstc =3D __fwnode_reset_control_get(fwnode, NULL, i, flags); if (IS_ERR(rstc)) goto err_rst; resets->rstc[i] =3D rstc; @@ -1496,7 +1499,7 @@ of_reset_control_array_get(struct device_node *np, en= um reset_control_flags flag =20 return rstc; } -EXPORT_SYMBOL_GPL(of_reset_control_array_get); +EXPORT_SYMBOL_GPL(fwnode_reset_control_array_get); =20 /** * devm_reset_control_array_get - Resource managed reset control array get @@ -1520,7 +1523,7 @@ devm_reset_control_array_get(struct device *dev, enum= reset_control_flags flags) if (!ptr) return ERR_PTR(-ENOMEM); =20 - rstc =3D of_reset_control_array_get(dev->of_node, flags); + rstc =3D fwnode_reset_control_array_get(dev_fwnode(dev), flags); if (IS_ERR_OR_NULL(rstc)) { devres_free(ptr); return rstc; diff --git a/include/linux/reset.h b/include/linux/reset.h index 44f9e3415f92c9d7591b898cdb4bf7f05f2b0568..9c391cf0c82298a06a4d84eebd2= 93864ef8c48da 100644 --- a/include/linux/reset.h +++ b/include/linux/reset.h @@ -5,10 +5,12 @@ #include #include #include +#include #include =20 struct device; struct device_node; +struct fwnode_handle; struct reset_control; =20 /** @@ -84,7 +86,7 @@ int reset_control_bulk_deassert(int num_rstcs, struct res= et_control_bulk_data *r int reset_control_bulk_acquire(int num_rstcs, struct reset_control_bulk_da= ta *rstcs); void reset_control_bulk_release(int num_rstcs, struct reset_control_bulk_d= ata *rstcs); =20 -struct reset_control *__of_reset_control_get(struct device_node *node, +struct reset_control *__fwnode_reset_control_get(struct fwnode_handle *fwn= ode, const char *id, int index, enum reset_control_flags flags); struct reset_control *__reset_control_get(struct device *dev, const char *= id, int index, enum reset_control_flags flags); @@ -103,7 +105,8 @@ int __devm_reset_control_bulk_get(struct device *dev, i= nt num_rstcs, =20 struct reset_control *devm_reset_control_array_get(struct device *dev, enum reset_control_flags flags); -struct reset_control *of_reset_control_array_get(struct device_node *np, e= num reset_control_flags); +struct reset_control *fwnode_reset_control_array_get(struct fwnode_handle = *fwnode, + enum reset_control_flags); =20 int reset_control_get_count(struct device *dev); =20 @@ -152,8 +155,8 @@ static inline int __device_reset(struct device *dev, bo= ol optional) return optional ? 0 : -ENOTSUPP; } =20 -static inline struct reset_control *__of_reset_control_get( - struct device_node *node, +static inline struct reset_control *__fwnode_reset_control_get( + struct fwnode_handle *fwnode, const char *id, int index, enum reset_control_flags flags) { bool optional =3D flags & RESET_CONTROL_FLAGS_BIT_OPTIONAL; @@ -242,7 +245,7 @@ devm_reset_control_array_get(struct device *dev, enum r= eset_control_flags flags) } =20 static inline struct reset_control * -of_reset_control_array_get(struct device_node *np, enum reset_control_flag= s flags) +fwnode_reset_control_array_get(struct fwnode_handle *fwnode, enum reset_co= ntrol_flags flags) { bool optional =3D flags & RESET_CONTROL_FLAGS_BIT_OPTIONAL; =20 @@ -500,7 +503,8 @@ reset_control_bulk_get_optional_shared(struct device *d= ev, int num_rstcs, static inline struct reset_control *of_reset_control_get_exclusive( struct device_node *node, const char *id) { - return __of_reset_control_get(node, id, 0, RESET_CONTROL_EXCLUSIVE); + return __fwnode_reset_control_get(of_fwnode_handle(node), id, 0, + RESET_CONTROL_EXCLUSIVE); } =20 /** @@ -520,7 +524,8 @@ static inline struct reset_control *of_reset_control_ge= t_exclusive( static inline struct reset_control *of_reset_control_get_optional_exclusiv= e( struct device_node *node, const char *id) { - return __of_reset_control_get(node, id, 0, RESET_CONTROL_OPTIONAL_EXCLUSI= VE); + return __fwnode_reset_control_get(of_fwnode_handle(node), id, 0, + RESET_CONTROL_OPTIONAL_EXCLUSIVE); } =20 /** @@ -545,7 +550,8 @@ static inline struct reset_control *of_reset_control_ge= t_optional_exclusive( static inline struct reset_control *of_reset_control_get_shared( struct device_node *node, const char *id) { - return __of_reset_control_get(node, id, 0, RESET_CONTROL_SHARED); + return __fwnode_reset_control_get(of_fwnode_handle(node), id, 0, + RESET_CONTROL_SHARED); } =20 /** @@ -562,7 +568,8 @@ static inline struct reset_control *of_reset_control_ge= t_shared( static inline struct reset_control *of_reset_control_get_exclusive_by_inde= x( struct device_node *node, int index) { - return __of_reset_control_get(node, NULL, index, RESET_CONTROL_EXCLUSIVE); + return __fwnode_reset_control_get(of_fwnode_handle(node), NULL, index, + RESET_CONTROL_EXCLUSIVE); } =20 /** @@ -590,7 +597,8 @@ static inline struct reset_control *of_reset_control_ge= t_exclusive_by_index( static inline struct reset_control *of_reset_control_get_shared_by_index( struct device_node *node, int index) { - return __of_reset_control_get(node, NULL, index, RESET_CONTROL_SHARED); + return __fwnode_reset_control_get(of_fwnode_handle(node), NULL, index, + RESET_CONTROL_SHARED); } =20 /** @@ -1032,30 +1040,35 @@ devm_reset_control_array_get_optional_shared(struct= device *dev) static inline struct reset_control * of_reset_control_array_get_exclusive(struct device_node *node) { - return of_reset_control_array_get(node, RESET_CONTROL_EXCLUSIVE); + return fwnode_reset_control_array_get(of_fwnode_handle(node), + RESET_CONTROL_EXCLUSIVE); } =20 static inline struct reset_control * of_reset_control_array_get_exclusive_released(struct device_node *node) { - return of_reset_control_array_get(node, RESET_CONTROL_EXCLUSIVE_RELEASED); + return fwnode_reset_control_array_get(of_fwnode_handle(node), + RESET_CONTROL_EXCLUSIVE_RELEASED); } =20 static inline struct reset_control * of_reset_control_array_get_shared(struct device_node *node) { - return of_reset_control_array_get(node, RESET_CONTROL_SHARED); + return fwnode_reset_control_array_get(of_fwnode_handle(node), + RESET_CONTROL_SHARED); } =20 static inline struct reset_control * of_reset_control_array_get_optional_exclusive(struct device_node *node) { - return of_reset_control_array_get(node, RESET_CONTROL_OPTIONAL_EXCLUSIVE); + return fwnode_reset_control_array_get(of_fwnode_handle(node), + RESET_CONTROL_OPTIONAL_EXCLUSIVE); } =20 static inline struct reset_control * of_reset_control_array_get_optional_shared(struct device_node *node) { - return of_reset_control_array_get(node, RESET_CONTROL_OPTIONAL_SHARED); + return fwnode_reset_control_array_get(of_fwnode_handle(node), + RESET_CONTROL_OPTIONAL_SHARED); } #endif --=20 2.47.3