From nobody Mon Apr 6 12:17:53 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 6949B30FC1E for ; Thu, 2 Apr 2026 12:54:54 +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=1775134501; cv=none; b=dLbGwcGnV67wBadFqLAoOPg81Z46NTOLv6v3CPN84WoeRmYAVc1Gpw6Wu1xL4PbfFeYldjMx2pdbajavXI/F+A/brEEjYwN2UopqXybXKE7baShgvyZX93VwCoOagGrHlgdc/tVJtbnhA66331cVzX3F4TyzYu3OIXG1/Y4J5xE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775134501; c=relaxed/simple; bh=OBCo64whRbgHvAnjQKSCb3nw5YJMBTL4o4QzfncDFbc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AHhvBv5B6xfhIRKcjjewJ+erKXGVZB7DPikxZxPWNtnaJlbFFjxo3Yo5jl02KGn44H0+5AMeLwJ598Sp9gsHA8Kp+De+KjwDzA+HuAFlqSPrf50VDLWQpp0XhJkzIg2BX1OyHJAdexGNjEWRfzAdzzVSZEjQFbMnLuv2Z0x2edE= 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=LWdMWym1; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eNGKedHW; 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="LWdMWym1"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eNGKedHW" 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 632BWQk9949610 for ; Thu, 2 Apr 2026 12:54: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= SnZdOD/6HrlBeelPSBeiJj//LPmq95XUDWd5dyu/2k0=; b=LWdMWym1AetmCDBi ub4pTKElBowU/8h7ic3JvUb1TE//Nfv8Wd3uzFUuWrh2WHuGtvoyf/677VJSiEmh l44O9Boa/Rc5y58+ML8hP/VBFiyU0fLwtn1Ggwznfpj7gPbmlVsgKc8Q6OFGX4JX E40DrSv12SX3ucjuDJR7kYkcQOUESNUwgzQrj4qM1nTKuTFuoQaDLe5Pg+dI6/XO hXg8oSaf+mBOiNOlkZ5gi/APJCY3BCCDMhL2iynuxrxJBI5yov8mTstwQCS8ilgz 9gjlDVOM/ielNUM7BnL9wYNRaRQThwjlPBXR2uu28enI7AYDg4ugcQAo1xhrPJ40 0spX8A== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d9qnu0c6p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 12:54:50 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50b781542c1so17053381cf.1 for ; Thu, 02 Apr 2026 05:54:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775134490; x=1775739290; 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=SnZdOD/6HrlBeelPSBeiJj//LPmq95XUDWd5dyu/2k0=; b=eNGKedHWVEpKKkq1t1BjVFBMJXR99AmhkpMTSZAC62jSLQ0ljYXhXFuKyiPBt746tX JP5tzqInfcPWdoA0M+0Sdov3FzslzxkAKir3SGaNTqEk3uzou3T/LrrpiuKfi4cSAQtM j1acTXBC9K0xcuDtsTG9Qemo3w66CH735+EjqPlQVbvje+Qkl0qdMxASp1WRW4eQZZve ZObnRzL4DwDR0viP1N6Lo08TZ8PLvKr3rcQj7VZzDtsywl02GR7er9nA28netuvSAmmn oYWYdCUwLTCYfEnmnd8v40iy9ehs5pxoEQam0vuFo8MTp9ESkxpMIaDOT51e8OfpaokP zIqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775134490; x=1775739290; 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=SnZdOD/6HrlBeelPSBeiJj//LPmq95XUDWd5dyu/2k0=; b=jdrwepZpvG8RXHdqalmhr4lhfSm6kBb55Na1n+Vg1MSjyc+yBwnhcNcyBP+mheLoj9 MmsSxxvb1pnQpeK5EavCDNY6gz3V+2LLdMKNW6U8AwLZiRkxynp/tHynUQtvdslWRn1g libnYbmtQ3QotbFYzctUN8zT38PItj54wAYDDv71wVGfKx3vco58JLjfTkA/+5f24LnE BtR6KHLf3A4KKDzGrnYOCQLl6z56WN9bz+SJQxaL76niXLtiYTb3sdV6Q0MPqX+dEyKG tZDxvPnkcz9/givfRoX6RJqBVjJauIrDvnlAFu2JS1rWk+05fihYXfYvGfh4w+G22plt 21kQ== X-Forwarded-Encrypted: i=1; AJvYcCX/VP9edJkrwWkxmB7yb5JSfYK8JLL3WNoLWJri0srHEcjHVIB9AH5zK9QJYwL3+/AS6RzqHHvXGOcY2k4=@vger.kernel.org X-Gm-Message-State: AOJu0YzPaF3wkYHqDu3CVbmoEKEE00IaeEFqqAX3gXYvTp9zBbMHk+JP ag3uXqpwHgGHQxosm6DzGTmLUle7W/FVBPpIFQkbOvZ2X0hiuXohWwjGU6CHc2zWlZfmrn8uQUk eMzsr3Ec9T6HGNi32la9XOYPHt6OXO4H94tJiWiEfi7Eu5jtBvY06zx1pyPL86hD3CeI= X-Gm-Gg: ATEYQzxy6DHssB/2CvFCLD9O+68TCWc7eaWYzOfgy7haLHuxeGMWvZI8yMEA6kscNpK zJs+kGQ50WEtKC0TF2OYJjHJV2r8uz+WAM+orp5iYVsYvIYTRFZ8A6ljm8FeVDSUmJzq5J+kEkP izzKRUxyRXCzSgnjwCq/Sc6Vx0wb1cgYjSphEpa+z9FeklY/kT64s0EgTOCuHQG8f7fh3lGzXBr F2F2vlOtocc2V3eGN2Ox1FC6jlnAKtemYK+l8iycEwLhqEnBE/X8wUDzuYWekIu6nr4P6LbBHQh TTZdZ0kMEXWORZpWwSOfJdSbxaIsG1FoBHLxa6W+21DDNvfLvLTpuHW+eeGwkGnyG9DCQE8z0Qm Dn+exmlIcWF13ogq2mhLVUZZR17MtY1Jt0yZk6/PxBHBaQZ3rzhJX X-Received: by 2002:a05:622a:1489:b0:50b:2a1e:a442 with SMTP id d75a77b69052e-50d3bcf3e18mr102684451cf.52.1775134489891; Thu, 02 Apr 2026 05:54:49 -0700 (PDT) X-Received: by 2002:a05:622a:1489:b0:50b:2a1e:a442 with SMTP id d75a77b69052e-50d3bcf3e18mr102684071cf.52.1775134489432; Thu, 02 Apr 2026 05:54:49 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:4ff1:3e57:22ec:dadc]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4887e735532sm235790765e9.0.2026.04.02.05.54.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 05:54:48 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 02 Apr 2026 14:54:27 +0200 Subject: [PATCH v2 2/4] gpio: swnode: defer probe on references to unregistered software 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: <20260402-baytrail-real-swnode-v2-2-6f5054a4cc07@oss.qualcomm.com> References: <20260402-baytrail-real-swnode-v2-0-6f5054a4cc07@oss.qualcomm.com> In-Reply-To: <20260402-baytrail-real-swnode-v2-0-6f5054a4cc07@oss.qualcomm.com> To: Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Mika Westerberg , Andy Shevchenko , Linus Walleij , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Dmitry Torokhov , Len Brown Cc: linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, platform-driver-x86@vger.kernel.org, brgl@kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1419; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=OBCo64whRbgHvAnjQKSCb3nw5YJMBTL4o4QzfncDFbc=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpzmcQUSEE6XHDFw8DGdZVpyLl+CaFoSdIrorju CiIynNOhIOJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCac5nEAAKCRAFnS7L/zaE w4RuEACB5VBkwCHcQ7BZCbTI/J9CdJ2yvC4mBxOlZ0uV5SppzmOiQja+z/Vz87C+5xa2o551+ON vYXEmO8A1CeXzPFkxkBYtB2m+V5pE5O1CO8c2UtrzVvxsSF/YQKId+9/l2b+n/X+GNbGuTUScum +5PExp0Yo1/6ulywtRM3aZ8a048kun2M2qwvRCgDefYUzj2nJrCau/mWu3kNkUBWeJsiI9rBM0T DvTF2jVhzzVsHLrJgcOFSOeZGLgyP1nOf/dGVd/S+dmadTLV3CPTg3dAN6ZpE52zRb6n+jq2hsQ gSIOFSdhoUKWOns4thnlVkUJCcISVJOgDxgd0cyYr92mjZV9fqfvEe2VRIpEmdNXXqnyNllIigB UW2wYoNcLfM9StWcLPSrTW3ooK+ZPheP+Hd5nfrWw3ZShS1dNOnZKCPKT2IgINhrplluYrn7A4R kfopULdzFe5ED2H8NhwEzPA7+EB/R6hfv3b3vxHnyq72fZ3+GQF3JGKh6IL0hRjLrNxeVltp4L6 hYEtBkCuP8fNzCyRkb0Ww02+vaTTP2SJcwdD0ryBX5GPOdRW2aU1ZlIKimDX9sr5sVZ7nRvKZVI xNmXYKEIXGN2HxaPcliFZD3aSYk/ARhrr1xPu/bqu2BYzz5Fa7tN4RkBzGg7t2K8MAFTAMZEk86 faSlBrvQVKIHitA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: epy96z0R54gbxEHfK-IJjCdQ9g7ZyxBg X-Proofpoint-GUID: epy96z0R54gbxEHfK-IJjCdQ9g7ZyxBg X-Authority-Analysis: v=2.4 cv=RoLI7SmK c=1 sm=1 tr=0 ts=69ce671a cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=H5P8rdbTNIBZEmRUth0A:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDExNSBTYWx0ZWRfXwJ7CfsU1lMv0 PtYMV2Qwv68mt5RKB3Wo5ZfK5qjzPTdOnZ7qrMejCBoATK/DN3Qfv1b452enkazvL9i0cgWZE+I C5dsTEL8MF/EADsOWr7c9HTC8DpP4NFYdE66reYRArSgKuPdxcn35IT4jqLpgM2FG7CZ+iiRQd6 eor7jWs06ydKvXwjzoEvQ8YK4nPLLD1xXU2G/0ER45lhv/nyERGoUYwnEOpW+lvuuyTCpLfBVxN YY4bc/sjCF1j1sUyZ6elIYrZuw+tagdfuXceWPYdb2lAWmoG3RyxJq4627pqe8rdtb2ZUCA53R5 DlrIh/TpKA3jZL4/bhKz7e5Obdsh5WIXVs+8alKenv5I+MLjO+Jvl79cVTHy46jyij2Bv3hohJv XXlHOvSqPmP5i0y8m4Vby/TMzh7tCFDzTTX2hkctzjcm9uB9X99B+wOQLcDp2yTmK68y8N9nOZR mCXM9XiibWgfC2hgezg== 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-04-02_01,2026-04-02_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 impostorscore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020115 fwnode_property_get_reference_args() now returns -ENXIO when called on a software node referencing another software node which has not yet been registered as a firmware node. It makes sense to defer probe in this situation as the node will most likely be registered later on and we'll be able to resolve the reference eventually. Change the behavior of swnode_find_gpio() to return -EPROBE_DEFER if the software node reference resolution returns -ENXIO. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpiolib-swnode.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpio/gpiolib-swnode.c b/drivers/gpio/gpiolib-swnode.c index 0d7f3f09a0b4bee0cf1bbdaa8b7b8ae4cd5de581..06d74e9e199de0b91a019e5e15d= 4b83d330291e7 100644 --- a/drivers/gpio/gpiolib-swnode.c +++ b/drivers/gpio/gpiolib-swnode.c @@ -95,6 +95,15 @@ struct gpio_desc *swnode_find_gpio(struct fwnode_handle = *fwnode, break; } if (ret) { + if (ret =3D=3D -ENXIO) + /* + * -ENXIO for a software node reference lookup means + * that a remote struct software_node exists but has + * not yet been registered as a firmware node. Defer + * until this happens. + */ + return ERR_PTR(-EPROBE_DEFER); + pr_debug("%s: can't parse '%s' property of node '%pfwP[%d]'\n", __func__, propname, fwnode, idx); return ERR_PTR(ret); --=20 2.47.3