From nobody Sun Feb 8 22:58:13 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 4C35A1A9FA4 for ; Mon, 5 Jan 2026 14:16:11 +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=1767622573; cv=none; b=HEComqQmN/LwqBEYW0FdzHUVP6Qx3FGVgGvIqGXAZbOh8wHo4EJFqamj36pXguZ88VaunShqSGqyAyOFfdGwWApFbUcd2tYW1k5Ry1UUxv4nMwxjJq9cEshWygwZ5ju2ecZokZoOFPTNwJO3ekyzDJY7u06hjMPHW+61rkzlG8Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767622573; c=relaxed/simple; bh=CIWIlhQTdDJfk5s1NJ9/r7kHyl8e+xZMsksyBGoT2rk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GOASdXbVZXjpPAXtJo6r9nwgIuxQHjFvKNjtUMqhs4mScsgOfUCIA0mQ7ATZ4Vl8mviZsB3MMsRIdCfe1ip9QspWq6FInyBmSoKCPleCVy8O+WWW87Hi99UjNeHmbmO4/xkWaSqBeeboDhZCWQGFsr0EbPT69XOXpECDy8iE2Es= 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=jWIh1ASf; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=L3P4prDB; 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="jWIh1ASf"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="L3P4prDB" 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 6058wAce594030 for ; Mon, 5 Jan 2026 14:16: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= YGSpZglEHDg6NBayxPb2gxDkXgHKuQV0Nu+rmaLJWIE=; b=jWIh1ASfUk7urUa4 kHeY948tPAPH0pGam1dgRmO892f5uMsnSN0dijHRBkRt4FHzZzmmfFLa7uVDkdch pKMnUxdW769s7gYAax4xFG6s+uQIzHAzgNZ78KBsAmGEtetkyerQvXGBsy//eUDJ AwS++T9q6ZraZSG/xZLtMO3e8PgeQRh0OXa6+TwPekYhKd/I/J2nvPF2Ljt/KmKe E8YA5wu/vLnpcUKL6dBf7WUNwAu8kH0Q0VE9BuTukfbJ1YIO5j1J11WtfLwHMrs1 FXvP3fRgl8JViatoouwDE+SU0e7pxVvWrFMwLzGVSbKN21sMXZl85NABVyTP+Zq5 cCy+Og== Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bga8pgt88-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 05 Jan 2026 14:16:10 +0000 (GMT) Received: by mail-ua1-f71.google.com with SMTP id a1e0cc1a2514c-93f57cdeb11so17121393241.0 for ; Mon, 05 Jan 2026 06:16:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767622569; x=1768227369; 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=YGSpZglEHDg6NBayxPb2gxDkXgHKuQV0Nu+rmaLJWIE=; b=L3P4prDBXuznt2wQv/Vp4JvsxQEshKVUxSpTzAlFYx4uxdzCbX13U8JHhu2uZDgQSR hrj+UgBnX3RJm68Zy/aUZA8nEGaGpmlZ6rIUErlQghsisrxB4a3ePeRCaJDq4vRgH5r5 /FXxRzbY3tQYo9fjQt3tdzfiIPy60eqOqLBstI9jKNOq2dfeE9p+zvsKc6FsztC3RPfh 1fVIEkv5F4BBPnXZSgwDNHOC/Ze710BLmWfoKLkfhIOdGZAmaYAZxZKHgsiL+7qN0A+t TrCwq8RTEMHEC9p4nWtvPq5YXVAlSo30KZBlhB8KwzAsaD+2PY0ka2RYEJhhI9F5uBtZ zA4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767622569; x=1768227369; 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=YGSpZglEHDg6NBayxPb2gxDkXgHKuQV0Nu+rmaLJWIE=; b=mGnlnRUAcy3ohtuUpST+22FHFIjUcPu4Z4DD3W93cWWIPFgB2DjYzn+BsfvvFBKtCS XEcxdVWJhF88zCA/+ajX3qaUN4G6T3ZRYPgDcGRoDMJ1PWsshrVlLMPSbnstvIkEEx93 3KyIsgYgGAbXDo5xnI5oMO2Lm3MD2X1dqaSeA4lTQOfB8PGzo99EqEG1MrSQCWhhyByq OYTU8ZNcdvSgEUhb7hLhDCNcAgzLVdpdurNE2qFOWJQPQvUpbXDxO7E52FLQOEUI6zBf UkCPywB0y9U4u+c3qcNJNvqZUhJVZRfMhI0xpgj+V308RStFt8/EYnDFvvEv70zDGq8v 16/A== X-Gm-Message-State: AOJu0Ywi1C4jfuQ6F8HRzENr2Fx7yOe+8iPTPWOVbw0zTtJjIWVriG7X hMi80cj06cjuRDSAQxDqerdcMktOFTFU8JYs0BibJHB+oL/iw/8s4Kujww4H8oY/tMduohRTJTk JyxtD4mXIjO9Dj/UTzskdUnUqjlQwxt2khuKNkLo5IKcS8Ph/vKdX0/MBjY/Hida5Mu0= X-Gm-Gg: AY/fxX542ylmy3q33HtLP/fcYvyrbRTegY9cXwf/h3cObQE5N9EvFREoBJy2K+xpY0P o4/sZLPTvFYflI5nu3ANUs5A9kUq9RUNN0XMDTagh1+5c+HTaBYV1VADVmJQVH1qGA0iYH4Lw5C GNCU+AXFXLalJzHLpYFlileLmHgFwNoOv+i8rg6WNKBu1pUuM7vdwgcEdLT1X0PDR5TODQs1wMV 5jrEBTrbUTCN4+GcH4mUtwHvMYd372XnHOxHhiTGRDR6Eh83KQsymKuQm8ipm47dUFW7QNOUYpn jfRgbqOmXklUY/YxazhQmdJVxCSngZr287UFJ2NsJ4Jg0N/mhDbemk51uQmmDg+VR+Vt45ywETX ENw1Z6GPmSi6728t6g0vsSpJCOT2i7Hyz9KdtinI= X-Received: by 2002:a05:6122:a04:b0:55b:180f:fed6 with SMTP id 71dfb90a1353d-5615be677b9mr13542733e0c.13.1767622567808; Mon, 05 Jan 2026 06:16:07 -0800 (PST) X-Google-Smtp-Source: AGHT+IEzo9Srn/bhHXkmM8VEz3sg1ICtMcOe8VIPMnY4n9Al55d2Fw1eWb/b/SYUbe7eyD5pohLiYA== X-Received: by 2002:a05:6122:a04:b0:55b:180f:fed6 with SMTP id 71dfb90a1353d-5615be677b9mr13542640e0c.13.1767622565904; Mon, 05 Jan 2026 06:16:05 -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.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jan 2026 06:16:05 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 05 Jan 2026 15:15:22 +0100 Subject: [PATCH 03/15] reset: gpio: simplify fallback device matching 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-3-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=4445; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=CIWIlhQTdDJfk5s1NJ9/r7kHyl8e+xZMsksyBGoT2rk=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpW8eWRHvuxZW9epZyWu+0MQkyMGu8ZHfE7rPa5 zYw9th+v/WJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaVvHlgAKCRAFnS7L/zaE wxfmD/wI6LfXvJ6bgC0izH2VW6SWyg+TlaUceLMc/wu1DUsPVdCJU7lUZhchtdruQ/yaR2ZMHGC zTQQiLegDhylhnWI4C3fvemCSFxpFOMTPbMqc3Gwy6D0DYTzLNnA1XZuHYQnUvPa22tvjkXPZwC KVDF6D/A+AF5ZJhs0zlqMbTvjuvsHggaXthRftrUl4vBoXD0SxHngJRq+bFsq9ImI5ckkrrli2T +Ur9pMlZr7VNgZmahLUkBDU2WI5M4sNicAlhyAoYm/FB8oh1G1okzHx1Na/xAjmjJ9pPR/56XBo oL+Ye7HZ7d8xGB0LqxWVy6XOVNTa/Qy2GGdO8qpn4qQYLdjI602F1ewIWrWkNMepoqBSyykkYSD HYUvDvNoB/yoDi6XizZ0hSGPaqKjkI8ar3CgESak8O4QRo7Mshu/6swHcvn7DNnZwseHb7GEqwT N2r8KN2SGhauSTqg1ObwP/0QPXIits+/LXig7xpCBk2XC7bD5xLr1GBchYfQqBYPrQgkH14cvHO oUJrwX8VD5s0dzxfVInk1WTDBd6cfg5N0WKt5vV2WuDGsaRxm/LxEsqxPnc1zNfjydaOIAqKuFE e3C8lnPKDBD96OcM4taBUcaVLSn5HFX3HWwr7zFRRP/f9EH2NrgWnJ4PJU6ADv7p4aUJLflhxpm 7C4L+GeaBWp5LoQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA1MDEyNSBTYWx0ZWRfX4BPdgPOWbyZI RrnzNhxssQg7LdyOvGIUOwaVd066ISnDy1IECwCUoZwL85pHRjU5exZ/qmTYhagplw/xYt7GdEB zQiZZlwBcqDaYfVQLMHIuL0ddid7j786PFfS/CzoayS52eJyj1WtLEslwL1Hf2KmIJCKt6JbiXp ZdkgQagbxud4F7A+m53xxCTkEMCixj8/xol/aM1SPBi5v1W84952iaqyGF1DH3iX4BVFA8EkTak T47yAloKhcE1Uh05a65qu/+R1vgP57HvXSfq6is3ptMWGJwd6c8/IwvuwsBPiiQriixKDS1XApg PlK684sjcUp/6uJjfUrcI6+vq70tV2+SIhzl8UzUc0FlTyUe/nNA2ibzGdqziMCQsz8H2YPWG0+ Yjd7hizLhJ9fn5u8BTx/OonBwDJrSWTTDED5vUOJBHH0ADMGysf8yw3ETGSVbSn/HvJzHlZBS4o qYRE5fFXoTrBZuidPig== X-Authority-Analysis: v=2.4 cv=JfWxbEKV c=1 sm=1 tr=0 ts=695bc7aa cx=c_pps a=KB4UBwrhAZV1kjiGHFQexw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=C-6xm7Ge3zJZVfUZFQkA:9 a=QEXdDO2ut3YA:10 a=o1xkdb1NAhiiM49bd1HK:22 X-Proofpoint-ORIG-GUID: -HFSz0lsGDjh4gtFlCMWlqkZiCl6jk3a X-Proofpoint-GUID: -HFSz0lsGDjh4gtFlCMWlqkZiCl6jk3a 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 bulkscore=0 adultscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601050125 The of_args field of struct reset_controller_dev was introduced to allow the reset-gpio driver to pass the phandle arguments back to reset core. The thing is: it doesn't even have to do it. The core sets the platform data of the auxiliary device *AND* has access to it later on during the lookup. This means the field is unneeded and all can happen entirely in reset core. Remove the field from the public header and don't set it in reset-gpio.c. Retrieve the platform data in reset core when needed instead. Signed-off-by: Bartosz Golaszewski --- drivers/reset/core.c | 14 +++++--------- drivers/reset/reset-gpio.c | 5 ----- include/linux/reset-controller.h | 4 ---- 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/drivers/reset/core.c b/drivers/reset/core.c index 813b85cb2758e129c72c09267a387108d7ad683b..ec9e4c39e8debd93d59851cfe72= fcf44a79ed7e1 100644 --- a/drivers/reset/core.c +++ b/drivers/reset/core.c @@ -95,9 +95,6 @@ static const char *rcdev_name(struct reset_controller_dev= *rcdev) if (rcdev->of_node) return rcdev->of_node->full_name; =20 - if (rcdev->of_args) - return rcdev->of_args->np->full_name; - return NULL; } =20 @@ -126,9 +123,6 @@ static int of_reset_simple_xlate(struct reset_controlle= r_dev *rcdev, */ int reset_controller_register(struct reset_controller_dev *rcdev) { - if (rcdev->of_node && rcdev->of_args) - return -EINVAL; - if (!rcdev->of_xlate) { rcdev->of_reset_n_cells =3D 1; rcdev->of_xlate =3D of_reset_simple_xlate; @@ -1007,13 +1001,15 @@ static struct reset_controller_dev *__reset_find_rc= dev(const struct of_phandle_a bool gpio_fallback) { struct reset_controller_dev *rcdev; + struct of_phandle_args *rc_args; =20 lockdep_assert_held(&reset_list_mutex); =20 list_for_each_entry(rcdev, &reset_controller_list, list) { - if (gpio_fallback) { - if (rcdev->of_args && of_phandle_args_equal(args, - rcdev->of_args)) + if (gpio_fallback && device_is_compatible(rcdev->dev, "reset-gpio")) { + rc_args =3D dev_get_platdata(rcdev->dev); + + if (of_phandle_args_equal(args, rc_args)) return rcdev; } else { if (args->np =3D=3D rcdev->of_node) diff --git a/drivers/reset/reset-gpio.c b/drivers/reset/reset-gpio.c index 003bad361b3d32560f931f6b92234de523f97cf7..100fa23b56eaa01d042101b11a8= 23196ae5ff113 100644 --- a/drivers/reset/reset-gpio.c +++ b/drivers/reset/reset-gpio.c @@ -60,12 +60,8 @@ static int reset_gpio_probe(struct auxiliary_device *ade= v, const struct auxiliary_device_id *id) { struct device *dev =3D &adev->dev; - struct of_phandle_args *platdata =3D dev_get_platdata(dev); struct reset_gpio_priv *priv; =20 - if (!platdata) - return -EINVAL; - priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); if (!priv) return -ENOMEM; @@ -80,7 +76,6 @@ static int reset_gpio_probe(struct auxiliary_device *adev, priv->rc.ops =3D &reset_gpio_ops; priv->rc.owner =3D THIS_MODULE; priv->rc.dev =3D dev; - priv->rc.of_args =3D platdata; =20 /* Cells to match GPIO specifier, but it's not really used */ priv->rc.of_reset_n_cells =3D 2; diff --git a/include/linux/reset-controller.h b/include/linux/reset-control= ler.h index 46514cb1b9e0626872fe71357b24d54ff0e81a8b..aa95b460fdf86f10002a465e285= cd0119da6eeaf 100644 --- a/include/linux/reset-controller.h +++ b/include/linux/reset-controller.h @@ -35,9 +35,6 @@ struct of_phandle_args; * @reset_control_head: head of internal list of requested reset controls * @dev: corresponding driver model device struct * @of_node: corresponding device tree node as phandle target - * @of_args: for reset-gpios controllers: corresponding phandle args with - * of_node and GPIO number complementing of_node; either this or - * of_node should be present * @of_reset_n_cells: number of cells in reset line specifiers * @of_xlate: translation function to translate from specifier as found in= the * device tree to id as given to the reset control ops, defaults @@ -51,7 +48,6 @@ struct reset_controller_dev { struct list_head reset_control_head; struct device *dev; struct device_node *of_node; - const struct of_phandle_args *of_args; int of_reset_n_cells; int (*of_xlate)(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec); --=20 2.47.3