From nobody Thu Apr 2 14:08:00 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 DAE3E1BBBE5 for ; Wed, 11 Feb 2026 08:53:18 +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=1770800000; cv=none; b=SM8D7vqC9gIjm2Rw4EeAbgis6mU3Dc7EQ/PQ7g6y8D4AYA4Pw8BVq/ohZu4eW0k8CgS0pqPwxBSBGV1fc2mfFFRvReeYS0vmx0faiw5XbA/zUwYvijcLBdHv6vYmHXY9XIjKeIpjv5SskJDAxnxr/5Yf9g4IhQY7DfEpdtVx4qE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770800000; c=relaxed/simple; bh=a/2liInywBiVyvZH5ZSy1dS+BQtS66ZsSM51lFDwn+A=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=bhez/2Nz92RCym2nsqTYW/3U13LYOH4aX0U/CyXuKxJbVDDgkyW8K4JbdC5Qg4IyVR8/wgbOqLus9nVjXOPA6iS7UzlSySprE3l26XRsyJn53fhS7QuAtQ0Gn0XdSRPWqfaX+pzNYdKeUbDxAt3gJgoa1hR7K421dCHtN1YaZHA= 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=EK8IO9yE; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=L+vXxfyC; 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="EK8IO9yE"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="L+vXxfyC" 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 61B25BiK2943336 for ; Wed, 11 Feb 2026 08:53:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:message-id:mime-version :subject:to; s=qcppdkim1; bh=RS3ATQIauI/NfFT2FuRblu0XJKn0tBFCAKh Kp+3IEVY=; b=EK8IO9yEaUISZAP/8Hx+3MVpdMudQy9iNwnfn209xbur03M3zVf l0ylx1ASlmbdDSs4l0c9SIywwwGHA1xtE9E/xSHiiddHpcgTpJhJQefeiDco188G zWIRGWvklXPW+2rNS9Ta/zPwdJBYKX24IyCybqpZ8g+AWT/0emUlPo8oWBfA7smZ /Dp5cYeCNFTMizCz3pm9S5WDJ3+WC5mgwkx+FJiBu4mPCOo/OT7FPvKH7bXA5h6m c4q0Zape8+ZZ/+Vzgavp43StdOIAHDBUeP+TfmTfCrBv2xIMsYfR/oyZYfIU1QIv COXV24C1Er2i4EYIp+mIcstloxBUUW9jGSw== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c88r72q87-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Feb 2026 08:53:17 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-503810dba87so281940761cf.1 for ; Wed, 11 Feb 2026 00:53:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770799997; x=1771404797; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=RS3ATQIauI/NfFT2FuRblu0XJKn0tBFCAKhKp+3IEVY=; b=L+vXxfyCGfTpdkbZmdQE4xNC/g3vFNCere3a65U0cRbB+inMgKMfo/BbENfjoNgyX2 W5pZ8xkOzrI4X9dKrf6Q+TZkYEUXvz0MqK1r1r2yn9ArMsqa+LJQQUDdSMzC2N7J/++4 U5r+w19A7sg759TmJ8oNJRRB1FnUpjRgyYwxes5a13XsTpw6L2s6iyXvdxGQdRQaJkhT 8rCGUUeRDmvAp3uE4DJM2ZtC3ZHLz29HCzzq5KrfMQ6+w4OcgATnKcJtX1ROjYitncFP 6u9yL89XYYUQUDywiuPTcAZH2mOVss+l9IE5H8stA8z+zx1AyJipmlhavHiKlTC3AfLE gAoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770799997; x=1771404797; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=RS3ATQIauI/NfFT2FuRblu0XJKn0tBFCAKhKp+3IEVY=; b=CwSWxTOMNcW+sVoaGNH3WJFePMqwdzpbNcETujzHxvYBZb/xLWHzUOVfRO4IWemlih 2YzGw2dH9+tyAHye+DI+hbymNoIDEUEV3vC0iguST8V3F6ijJPfCQFAaHU40W2dwZcNm QGXbdLwvQnJ8KdPK9uH0GIpfyFMbYKtii8FCMCPds6JAmICe0e05SdCDNRltOjzbtUb3 VpfxjpqxQsxqupVY+g4bZZIOwNwYxA5P9SqCTy4bszv4TDUWdXcUy7lWlucOjg+nJ66e oNBn4SGwIi1oI47UQ2liV0sik9U0NzfrwHR4AOJWj2f9v7bwBw4xQsl4O47z8knTsMSw DMDA== X-Forwarded-Encrypted: i=1; AJvYcCUnwek+p0N5dPTtBTcyckojSvg1eIo7S9GD5oWzXVnvtCJM/sYZz8adUgx6CSFAAeDpn3eFuryTBJlz7CM=@vger.kernel.org X-Gm-Message-State: AOJu0YzyfereNVvtcyHFXmBLfiVlD1wBLCsZYjD9aKwR+QiCidcGXjJn KsL98yvLLGLfyy1pi0PbJwhdRansXTcR/xMMMk/hWG2h6W99j1d7aNlXPqMEDA8kh4suqchoaiz GDOEPJw+pdC6cQAhcNiSXjT2oDo/DnEkSd1f//Qd3N529aLOi4Xo7tngJvdYrLhK6OeQ= X-Gm-Gg: AZuq6aIaUVx/1uE+9+O2koTxHjdeQN3PaaKg8Szxg4yGKCe4GhgAYLm5R+rd7FmnE2E g6IsISxqa67nqIPwxj8UMGwrb2WE3pZtPvkz2jYBZn0EHEnxYsGs8bWvRowzPbXVdCVCgA9iJY6 WdWnLMPgVt8A/3a/GSGaEID3IP8/1Zf0f3uH7N2CS7qyYIu02nqpjxWJRnW3dMoaxRNoqw69fb4 lHgTRZkqUOzaGHLTwn2iEMNefD5J5DFHZzVntiHceeP5M2/7zx+kyJXuC8VetP+khzbI+T4G5xz IR86cWICsHRzAGEDhpz4fqDKLFOcGiQvrqhyleEcqawLUhO6RqTlx83lG4wtNlyz73Bgbqns4XM pBG7rxDdjk2mJtuu8bmYayCky0Ma8HHcJtR9cLWjpYzp4P1qCaTw= X-Received: by 2002:a05:620a:288c:b0:8cb:16:d936 with SMTP id af79cd13be357-8cb2808f823mr256761785a.77.1770799996889; Wed, 11 Feb 2026 00:53:16 -0800 (PST) X-Received: by 2002:a05:620a:288c:b0:8cb:16:d936 with SMTP id af79cd13be357-8cb2808f823mr256759085a.77.1770799996369; Wed, 11 Feb 2026 00:53:16 -0800 (PST) Received: from brgl-qcom.home ([2a01:cb1d:dc:7e00:d772:ba4c:782c:2fd6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43783e3a9acsm3100770f8f.30.2026.02.11.00.53.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Feb 2026 00:53:15 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Greg Kroah-Hartman , Dmitry Torokhov , Arnd Bergmann , Hans de Goede , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Dan Carpenter Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, Bartosz Golaszewski , stable@vger.kernel.org Subject: [PATCH v2] gpio: swnode: restore the swnode-name-against-chip-label matching Date: Wed, 11 Feb 2026 09:53:13 +0100 Message-ID: <20260211085313.16792-1-bartosz.golaszewski@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: AxgVP7TfE3j0lLKNWJtRWYnOzxnZgHhp X-Authority-Analysis: v=2.4 cv=YaywJgRf c=1 sm=1 tr=0 ts=698c437d cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VwQbUJbxAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=9y8YAwuLlfTazgfakgcA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjExMDA3MSBTYWx0ZWRfX3xLYFcPAB/ug xhVSjmI20fpLHUz7XVMBZ4O1lgli3O1IefxNmSFbfq3gKTwrpocCs8nYpKc4XmPJ5VOoaDYvnnv amnM00IYmfhlML0c4kYqpFxj/AW/iJsnFK7vjk9yFc/mKNCAR5Wl8A2hfsfO25TVddlP4Pl1Hzq DHYm7BPPEs/UO9aAX3TAo5Sr/phJCSWAdiT7Ez7dUgc/44BPpOujFncUrbiObSU0hJ4RZp/Bvk/ HoEg4OTlcUzhOkUfRChvNOC14k4zWw/YAAslSWvo15fjghoFtestI6Y1fpCSyiVzo50KyjxQwVQ bH8GSoqBPxUcJ/shag931mR1Sk+Slr2RPcxRu0DnPMLNI9hZ95ySRjQaBfTxInVBIt7swKoV6e0 NujunLNHY4eV2XKKYoQKBLFM9cEX7AjL8a2eh+Sl5SEhs5efwHxRN9+erCanwBXGfYw8i4ocRb8 fPEDux2ygsQWrkZnBSg== X-Proofpoint-GUID: AxgVP7TfE3j0lLKNWJtRWYnOzxnZgHhp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-10_03,2026-02-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 lowpriorityscore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 impostorscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602110071 Content-Type: text/plain; charset="utf-8" Using the remote firmware node for software node lookup is the right thing to do. The GPIO controller we want to resolve should have the software node we scooped out of the reference attached to it. However, there are existing users who abuse the software node API by creating dummy swnodes whose name is set to the expected label string of the GPIO controller whose pins they want to control and use them in their local swnode references as GPIO properties. This used to work when we compared the software node's name to the chip's label. When we switched to using a real fwnode lookup, these users broke down because the firmware nodes in question were never attached to the controllers they were looking for. Restore the label matching as a fallback to fix the broken users but add a big FIXME urging for a better solution. Cc: stable@vger.kernel.org # v6.18, v6.19 Fixes: 216c12047571 ("gpio: swnode: allow referencing GPIO chips by firmwar= e nodes") Link: https://lore.kernel.org/all/aYkdKfP5fg6iywgr@jekhomev/ Acked-by: Andy Shevchenko Signed-off-by: Bartosz Golaszewski Reviewed-by: Hans de Goede --- Changes in v2: - check if gdev_node and gdev_node->name are not NULL before trying to match the label (Hans & Dan) - use the right link - collect tags drivers/gpio/gpiolib-swnode.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/gpio/gpiolib-swnode.c b/drivers/gpio/gpiolib-swnode.c index 21478b45c127d..0d7f3f09a0b4b 100644 --- a/drivers/gpio/gpiolib-swnode.c +++ b/drivers/gpio/gpiolib-swnode.c @@ -42,6 +42,25 @@ static struct gpio_device *swnode_get_gpio_device(struct= fwnode_handle *fwnode) =20 fwnode_lookup: gdev =3D gpio_device_find_by_fwnode(fwnode); + if (!gdev && gdev_node && gdev_node->name) + /* + * FIXME: We shouldn't need to compare the GPIO controller's + * label against the software node that is supposedly attached + * to it. However there are currently GPIO users that - knowing + * the expected label of the GPIO chip whose pins they want to + * control - set up dummy software nodes named after those GPIO + * controllers, which aren't actually attached to them. In this + * case gpio_device_find_by_fwnode() will fail as no device on + * the GPIO bus is actually associated with the fwnode we're + * looking for. + * + * As a fallback: continue checking the label if we have no + * match. However, the situation described above is an abuse + * of the software node API and should be phased out and the + * following line - eventually removed. + */ + gdev =3D gpio_device_find_by_label(gdev_node->name); + return gdev ?: ERR_PTR(-EPROBE_DEFER); } =20 --=20 2.47.3