From nobody Thu Apr 9 17:58:38 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 E5BB4426ED8 for ; Fri, 6 Mar 2026 17:23:34 +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=1772817816; cv=none; b=j/3/EQjDDduZ92V6+eIySrSdZ2Sm70qyNtUoix6MdSP81hHoS8uCx7OnMi15vYTHCS2+8/1RZLol9LL86avZGvEWWsEOJL4Fr5lX2U/F3ZZ5A0kIgZv9iaVCG5hMllcgVD29pFhfAzdVdLlUPBqkdk76jYAFa9BT1keMDzW3Lx4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772817816; c=relaxed/simple; bh=4vN/CH/Ew7F6Yrlk1iGPVHH8dyM6IgQN0K5btZhTK6E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=raCB90RT+RDM2qbM6JDwHOh4UP3eNZnuopQ0TMmvF3gry3olGdahs8lmN8G9tGUgsks+EwAJ/wlUfZPhs4JG6g4tp0rFgdsfuO2dIEXXjf4l2KUPxiMjAGPDe7ioFU75PEf6Be1XkKU5/HKEm0IPOlBH7Q3RporNHvH+Skb/eNY= 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=Ef986gxe; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Cfy4CaeZ; 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="Ef986gxe"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Cfy4CaeZ" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 626H1q7Y1898370 for ; Fri, 6 Mar 2026 17:23:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Q/SFmN0fSeYUX8mnZDbivqXkUlI6+o4LvIFTJM1awn4=; b=Ef986gxea7bWr+XN jix1eatl3S5OwAtD0K0Dc8LYfalsSNGVE2/9v+veul750dYOZsdoNW8oF8xRT2Iz oP3tCxKqVYorcKcQAM+XEzAPrrQzNmEfgwVfY9HAPSI16amgvRdOiTC9GRm1uX/R eECBwLnthNE7MxnXt/m5dyz2IZ7pOCifU3++1gSkS04b5R3UfcsjNWfPdV0z9d0Y A3Vl+ZzBtBtEsORZ1HYOXTbBsr7JIfhBPLyrHmIeqKXuw113F+UPg8fkOz2o+0XY 3kA1+HPAEqtloJIGF7K7maWX41MDcMHzGxsLpXAm+TNqzuXGvExYxS8wzwvj7iwQ 8CA5OA== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cqx14h5ee-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 06 Mar 2026 17:23:34 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8cb413d0002so5942541985a.1 for ; Fri, 06 Mar 2026 09:23:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772817813; x=1773422613; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Q/SFmN0fSeYUX8mnZDbivqXkUlI6+o4LvIFTJM1awn4=; b=Cfy4CaeZSp1Fbm15xItO7CMRZmFqAZDrP1AR7yE8uSG+Wd9nASozleZGkfYGWDm0RX C1dOTakllFC6+DoKS9aidRfiHE9AUCxPVjkAyxnGJXXrkPpuVVJ+Warr0fW42t4X+HJQ X9p4R0K3KytMoycvn7fgE1MP675zxS4dLHdvyz2H9WCLD1dWEt9Pnc+G+WlTx2ALWyh1 T7SXMHhNH5TN9AXMETIvVVchJYmpMlP+wp5C3TWyHySmDrHkcpOYuBTjmk6JO+pPTxAg pchZa9tRFux2XF4oqD1Pza0Ja5NW3OCBeh643d9Tembq69fnLlVkvIIHa4KAAG8wQQX2 7u8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772817813; x=1773422613; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Q/SFmN0fSeYUX8mnZDbivqXkUlI6+o4LvIFTJM1awn4=; b=UbOaiD9T3edlUFqIB7m9o1RMUUP8EfFjJKT0QuVh9wAu+UnuWNLoVBg8H4zF1D+v3M rRYvQPH1oiWoqQPPj8tGdwoZ++s0GC4XEqjk3vW2DPOwSjpbeF77FrQwk8R1zeGPPea/ 9BXlAI2e2qY7Ei2mdZodZ2BtCxD7pS4I4Gm2AnA4vOLSa+O7WlV6oEUOuCYmJJCzyobm JNOvBGbR4DQ5HPM/AwuyhLBFCoIDNc/urdk8BVyaMTkfSXld2hFPE/JntL7CmeXbX/1f Y7XdTJB3REZAcjU6F1gZI3TmXoNE3/rEREsgbZdgfLH/NkoUcB+s61wNPT54aNPikak4 a4gg== X-Gm-Message-State: AOJu0YwbZhHMyCUlafY2huCvRqD9BWFDj+a9y8AXyo4fgB3wucp4yHQ1 Qd1LtxB0m0PJvMVxTQLG6OEni7S7ZeJ+Pzk7BDtl7GKVGQfrAaAUpUUQKYfVch6ci+JuDE9dBPS I15oyTsL7gNHyEO1ClAEZpwGd7FraL4Tv+TF54kRfYKSGNfQ4aacL+egvyfqeCQ4mYf4xdlrZQk A= X-Gm-Gg: ATEYQzxnE8HT3jsKFgMLWCE7eCa4mG5J+huVzT62Bl1uURxsJsKf+gWgTPUCnmG7jPM X/XVpqIPIm51DVLzARzsVHZNgWQJIfMgzYplAnMDg0yvqz5Gis89Jskc/ARAc3+Y3u2qadc5DNY fsUrO+77oaUIoeQUK/W0CfuFPkd6+FVEd/11vUka2s2OtNBKOZaokTQNpBYyKQBI113zDfeu4g9 OIzQWU1VcZjtY5GmYJBjUMFTv+HE8mTXjWjJK7Zts19OukOfBcOedVPngJwB+OXiFAHOoqSjPXz iNH5AdYTQMOYOoxhDaF9lp712PHUhtsZnV8UYjVI9erOJ8i8u3ZzrP8laKEKc6rNrE3+DNljvmk Nh35TaZYWW08E4OlVLRM4w9tnPI9ZAysEvNmTmkHKoJm0/jW8Zzsh X-Received: by 2002:a05:620a:4591:b0:8cb:df8:e86c with SMTP id af79cd13be357-8cd634bc514mr809724885a.26.1772817813007; Fri, 06 Mar 2026 09:23:33 -0800 (PST) X-Received: by 2002:a05:620a:4591:b0:8cb:df8:e86c with SMTP id af79cd13be357-8cd634bc514mr809721385a.26.1772817812406; Fri, 06 Mar 2026 09:23:32 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:28b1:4950:7702:bb20]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48527686fa9sm61488475e9.8.2026.03.06.09.23.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Mar 2026 09:23:31 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 06 Mar 2026 18:22:56 +0100 Subject: [PATCH v3 12/14] 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: <20260306-reset-core-refactor-v3-12-599349522876@oss.qualcomm.com> References: <20260306-reset-core-refactor-v3-0-599349522876@oss.qualcomm.com> In-Reply-To: <20260306-reset-core-refactor-v3-0-599349522876@oss.qualcomm.com> To: Krzysztof Kozlowski , Philipp Zabel , Jonathan Corbet , Shuah Khan Cc: linux-kernel@vger.kernel.org, brgl@kernel.org, linux-doc@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=11980; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=4vN/CH/Ew7F6Yrlk1iGPVHH8dyM6IgQN0K5btZhTK6E=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpqw18EEbJdpceXE4g+P1BycAU6/88ZL1gLQuHu 9rYGzLN2hWJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaasNfAAKCRAFnS7L/zaE w3HUD/4xIc9qZ363fHU7vClyoIa74LIcUe1uB8lTuL4sRGi3l1rty7SBXHygZ1hEFSEEAwmtVfF 6eP2MCawftRtSf6TS5uatBSfiGCWgf9sCny0v2Ayza5KHU0loIOi8PvArnZZxiIzZtv257CWWxP n+0kt4AyqPcBxwd4/TZdwsA6wsVctlDwSanWFcINYfTkV7x13oHdYiVAJbYNBJ01ba7nSd7Nh27 7naQFexf2lMCA6vzWQWhR3+3iAQH7BLl1cNGoLhVZx6wRRb8UbYN+EM7P73Krfito3J4a2AHrsM S3DgKvX4TLEGJUAESVZTVtBVI6eG3OIGmwxE3O22CFIghvOsrEUxWS+3RkOGYd0tL6brpFCGU/y B9hyfV2XhVq2eIN3XZbavz/qHRZGBiWMfof+HljRjuybK2ZZ2Bqfyg6jbUB1WxwlcVeaQFaaUtc u5Cz7pbYNd1FNiATZcnB9+m5qZYfGo26GOJiROERmOq5xc941VoI/EaTwuM813XRZZKyBXqABAw oXx/OHfUOlp3WLihXjlZ/aCxwlbOLkzzDIFRodCdnutxrei5R1bOeF9jrtfpwLjr26LbmRk8YDF Nq4xbRZVq5F5IOLbJwvwUrsQKPYfPl+nfMFKLYikJ84x6ykI5dFFnPapd/kl0b1NohfIEsb1sGJ 0JW2dnDAr+6ky+g== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA2MDE2NCBTYWx0ZWRfX3c6xwlj1ZHyp qbNPpvqjijKD9e4yv32jem20CSw/w0gAluSooHW4EKVxeWOn6PL9Vbed8zyCJJK/iJIB+8Xvf1p FSZt+fWToufDRwJO6sVTlv9TL8RxsJYdyThRT2Q0M/MXq5jx+jB5mmjx3XCcoDMQjnr4Hw0BADT 4srv70Ldhbe/enU6apWkFeb5M5l3noi5BbDu+JHZ5nipTxw/8C/BimtjQJuS/8XgUWq7jx7OBki H0ypxxLopQ+In6BHXTiRfng/qqKdlPp0ISuNhKSCetTeZrxC5N/3bKsrSqR8U4WrnRYNyt/rig6 8Hw8h4+cDQ1J0RWf60QyEyd/QathdBnEDJaaQu5grdqk0zI8tcQS/+wvB44xfb1KlkqJHrmfdca 8J5TAOLvRVvoL2ItSkvehv8cGAIaStLkcbhCDEMTNCIppMGKRGZA1TxFP/uxb5cDygJN+o1arR3 iKwHt8ESbyNjBBKK4qA== X-Proofpoint-GUID: P9NX5HzkZSZjgfWHo6wdED0LdverhpyU X-Proofpoint-ORIG-GUID: P9NX5HzkZSZjgfWHo6wdED0LdverhpyU X-Authority-Analysis: v=2.4 cv=e/MLiKp/ c=1 sm=1 tr=0 ts=69ab0d96 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=O0KKrJeO1xfbjrHHZ3QA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-06_05,2026-03-06_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1015 spamscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603060164 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. Reviewed-by: Philipp Zabel Signed-off-by: Bartosz Golaszewski --- Documentation/driver-api/reset.rst | 1 - drivers/reset/core.c | 33 ++++++++++++++++------------- include/linux/reset.h | 43 +++++++++++++++++++++++++---------= ---- 3 files changed, 46 insertions(+), 31 deletions(-) diff --git a/Documentation/driver-api/reset.rst b/Documentation/driver-api/= reset.rst index f773100daaa415ac2c74b7b0db7a4f6f05d736d8..7a6571849664f08758a975fca3e= 078cd45967c8d 100644 --- a/Documentation/driver-api/reset.rst +++ b/Documentation/driver-api/reset.rst @@ -198,7 +198,6 @@ query the reset line status using reset_control_status(= ). reset_control_rearm reset_control_put of_reset_control_get_count - of_reset_control_array_get devm_reset_control_array_get reset_control_get_count =20 diff --git a/drivers/reset/core.c b/drivers/reset/core.c index a00a08b3ca9e90853659a4a94607947fddcfcff4..0817afe72de75f795d62e024515= 20726da7c9844 100644 --- a/drivers/reset/core.c +++ b/drivers/reset/core.c @@ -1061,7 +1061,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); @@ -1115,18 +1115,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) { @@ -1193,7 +1194,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) @@ -1201,12 +1202,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); } @@ -1468,23 +1470,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 @@ -1494,7 +1497,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; @@ -1511,7 +1514,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 @@ -1535,7 +1538,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