From mboxrd@z Thu Jan 1 00:00:00 1970 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 749E3336894 for ; Fri, 3 Apr 2026 13:52:10 +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=1775224333; cv=none; b=ZY54OU1SVQbBVAhv7NrWzktlrO6kmoSOmMOZ2c0COA8GuaDnHn0YyRAKWtMamYm0GY8vW4+CH9IjykmXq+JkmekBL/XTg0EZL2boXNe/Q0tomVJyWtVDdJWVg/+PtNQcFJ1pOCUgWn0lf4inLbId0pGkFrHen+RmPHGelYtWBIE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775224333; c=relaxed/simple; bh=tSBsw89+EgLqL9rsGM6nffcOTxXCKvBjsnCc9VJADCU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GCmPJZANQzcZ0A5C3dC2czcHQkmu4qaHdsXinCEVUevP0jnmHeCzqmsrGxoOWODWPnwWt5zV9GNbDCSXzDL3rRbU+3ERQVjqtC/ZDibyYk3/kSGaXPqkJSYCzt6Ap0QyQP67vKLlM8GbVde9NCxx4WwoEQNhKT7RtO6f732u7Gg= 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=kA4hAnnZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UhQEiPBN; 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="kA4hAnnZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UhQEiPBN" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63373qop3449814 for ; Fri, 3 Apr 2026 13:52:09 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= QVHUekEa3pqz/senHC7o9aOSki/Kup0i+jAEW3TxX5g=; b=kA4hAnnZmv5H94x/ OTYim2w+MWizJGnpmVBblBDjCY9Ah8uQeLEo+7iB9qhrzm/zZgfLY2s/YZ4G5Z5r iRqP5tgj3s87OM+I61p/MBUqcs97aQ88XPHIq6ONTUnG1m040D9U1m2zJNGT8wEH z1Pig7dAfbRcELP+uJJj7sOaG5RWTRTvkzovCieE4PMejVV14FKg8TEO0bqRrrfA lDjRUKAq4JfMWiv4mTZw0yKL1Mw8YRaRw12rCsJF/0T0pLiJVDIzKcKjnEE1ReC4 dIx2qA+Y6ryIqjQBONPEENriM+qUZZNvy9a07DUD2cteSjNFma8IEAB5IbGI/WmC mnzQIQ== 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 4da8u59477-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 03 Apr 2026 13:52:08 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50d63962d83so23600701cf.2 for ; Fri, 03 Apr 2026 06:52:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775224328; x=1775829128; 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=QVHUekEa3pqz/senHC7o9aOSki/Kup0i+jAEW3TxX5g=; b=UhQEiPBNuGaxFudCbA5g7x1FOPoc4GVCKVev0AEFo2AN8uUzmUp2SZjbRIZW8elxSN VdVuwnztja6QlBOLl7SXwDsacA4T/2Z9axl+h7y2TPLUcN8Z1RgAJdC7GGQB/uFv+ImM nEGkTYMS0FKOfDlAe/JChpZJjuhLcmuR41qWjSnkx2dbUOKtNPr8rKhO0JDLu3n2gL8/ 0TO7MybACl41JhDLaCt3/HpdiIygvHtzfqYW4dATyFrQe+2q2RFcJELbCha3ZyqvLGWy eWS4XjHBMFUUgh2IGz7DwsR+YVc7CD1f15/W5A7RQXSlNSzcsIPcY7gJC//iH4w41F+u 0qlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775224328; x=1775829128; 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=QVHUekEa3pqz/senHC7o9aOSki/Kup0i+jAEW3TxX5g=; b=qX+dRH6wu3IojtYWvARbjm+WSwfMsMCWfRPDjXpDp77Qdq5ILwVBElhpWQD1v4TMRT MN/oj4Xh4Jww4+vsGhNTuSdmTj9rpjn69zN98yU/aX0beLeBMM34grtLCG6o01gNe3e0 B1Brb4dkmkA0yRg8WTFyIKdaaRwY/WuaiK5OmH9QpfqqZs32EkBna6XPxxLKyqAahHe8 alqTKjjKlGB9mBSbTExHASU2pqP7yG8kLgavzlua639bShbPq3AkptGOzkw6WAV4vpyJ 9QC0tpLcwYnQoAz/KSt9+QYbWaUSX/Q/HE8/BcjHGD2VfR211SMNpHS2eS8Y/eWerQw+ V8JA== X-Forwarded-Encrypted: i=1; AJvYcCVOF0bwal4BwBE9GS/czo4YXmfn3e/37XFgulzw74nueESJA2Z0+nc2s0yW4TgCI908x1OoTjdDCmJ1PU0=@vger.kernel.org X-Gm-Message-State: AOJu0YzQwLvS1umNFXTSmJhqUBhH+WC5QPHBUWlDlAviW0VfPwps1y0i 5WvsQ6cxdGMMnz7NHyUhZUyNFOGdID7r4LxDJIVTUDBMQsB2wmFE3cSJO1lME+sDhwAy9DSromU 7loeHB6M8N6FLQL7Ks/x8nERTm/6mLWY/85NKiiLmj6eUScof5X/oX0p28Kqg9lL3aTc= X-Gm-Gg: ATEYQzzOsJdHeRLB3I/2ttrBFcvDd7BxI2AxYQu/7Vrkq4pYd5KckD0F/p47qhQBwFl RHGK5LEApcEbRxnzQ+INHxkkNS9t8T2vsWmC4icW6k17ah+RRgX7CE+LVcGtjyit0x5Pi5m6rEh uE4KvWqNEtD2om5uhyf5ae5ctAoRkNmINZCcKjiKctERyNb4ZFrdMfVNg/m7+6lhT7WbQZOp7T1 yn/EVc8TZm+v+/xHO6a/j9RYahO3+SOGulBboXudLkCnwlQ5zMZ5NZdUuRYxkSDVUbG1i3uRy9R jPJXVVAS5yUDKsQiKP8w8mZi0y/y7qZDRhgnU3RRhAMs/uZWvgJPcD2cq3g00xCruDvVqAXI0C/ tVHeKjb/vfs7hiLf0V65IgyLhl1qeiXJq8vylzabWs0adYDte+/62 X-Received: by 2002:a05:622a:1f88:b0:50b:6a79:45c5 with SMTP id d75a77b69052e-50d62b4fa9fmr43413091cf.22.1775224328255; Fri, 03 Apr 2026 06:52:08 -0700 (PDT) X-Received: by 2002:a05:622a:1f88:b0:50b:6a79:45c5 with SMTP id d75a77b69052e-50d62b4fa9fmr43412841cf.22.1775224327844; Fri, 03 Apr 2026 06:52:07 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:129d:59e8:f7c9:47ca]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e4d29bbsm16948132f8f.21.2026.04.03.06.52.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2026 06:52:06 -0700 (PDT) From: Bartosz Golaszewski Date: Fri, 03 Apr 2026 15:51:51 +0200 Subject: [PATCH v3 2/2] 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: 7bit Message-Id: <20260403-swnode-unreg-retcode-v3-2-7886092b28b4@oss.qualcomm.com> References: <20260403-swnode-unreg-retcode-v3-0-7886092b28b4@oss.qualcomm.com> In-Reply-To: <20260403-swnode-unreg-retcode-v3-0-7886092b28b4@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=1628; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=tSBsw89+EgLqL9rsGM6nffcOTxXCKvBjsnCc9VJADCU=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpz8YAvNkQYAMYU2+XmQ39EqvAL7D+Os1c/agWm lWlplJNjyeJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCac/GAAAKCRAFnS7L/zaE w79xEACi/EvAOBokb2UlYyvQLhzNY58ORTrHqYEOL5dnJ0LMUFJxnRi1gRZPM8kds3AFjqK6s0b z9z+08cH2hhRHbHZxxAECRMT+T7StWLJLK7aSMAjsaSvZTbteomdkmQ6QSBYcgNrjx+T4DCGXEy XdZZe4WGT2wIJr9c0tvF5G0dKKwJadko2QHV1UBEKkpkmliH1NBD90hCgNoqxriU5v2zVUnM7fh pvlMidJ9IQwTBN9tQzHZ2cNdtL6IRIAGXOIdWll9yt0Qjx3q50Jfe5DTdm3MpR+RVFg14neZsBO p/dlY3E7/8FzUm9HUWJeNA0QMrauzjLbDegIFuBKDnKEw1t1goj4IeMTF1/wMQFi+f6XELvJ/QX SDOGbXxkZafCChsb9luUjhzdwH037EOqsuFKUnN+NfAk+TScsBOsle4H3RUZXGtWedCcXaVE+eC n7a8qMWaWBr3nVx3hEZjMDk2dxmqawVHBsJos1xWbHlyGOIjvH5Bc4h4ul1+x43mgWwkkU3BNvZ pL9hFxvLwySDRvZbl6H49UmlkLc9UxTDa6Ph6DAm8BmsBMISprLDcDSH8VvFPLbssyyVwRLND7R TRyJvIB8CzTBAtuB2XZV3VSUQ6+uGpLqQd/abQmrHqqeWWjk/M+Dd99SYX6lZDBgtA2z4SWuTSB sXc+J9OMfBcep9Q== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAzMDEyMyBTYWx0ZWRfX7GlZ5ftbfbdH rj0JfsQb46W285MjYk1nXff3aqHp6kn3U5kcoU5tHrRlus5dgWBdYDu8Gj3fM9BEljNOfz0sQFi /OX4DQIgAn+d3zemmCaYhtE5wFykBnRBwBvGOOgwHM3vJZA48PXXECf1KZZhac09xEh5Kr8U3R2 DxJFd5rkkbALyqZMNgIMniRIzf/5V+Nwhm++lUQTazgdQruK6iUF3wdjIW6E5CrJs2QY+/74HqT A2MizaR8b2bs6c/SLJtQOE9sEzAOfyNKGASWQKkg2z4BLsdV0VoxAYUmr49enJ1bjImVEIPcgWa SYrX1Poy6rj1h9/N2V+35s+IjZLGTlWcKvfVt1z6Z34Ca+q0Gq695ytWf2rFk+wvH188hCLnZOr Pphq9oKUXkGWU+Luf+t6xWZQwEchli42f3Fi6HfbisjMJIifiLotNNIpSG1phZJZ0RSQravkRx9 quFqNr5McJd3VwhXGew== X-Authority-Analysis: v=2.4 cv=W5g1lBWk c=1 sm=1 tr=0 ts=69cfc608 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=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=H5P8rdbTNIBZEmRUth0A:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: UfjuVo3EGVCYZeL13Et-JcAgLfRXIcBF X-Proofpoint-GUID: UfjuVo3EGVCYZeL13Et-JcAgLfRXIcBF 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-03_04,2026-04-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 suspectscore=0 clxscore=1015 phishscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604030123 fwnode_property_get_reference_args() now returns -ENOTCONN 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 -ENOTCONN. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpiolib-swnode.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpiolib-swnode.c b/drivers/gpio/gpiolib-swnode.c index 0d7f3f09a0b4bee0cf1bbdaa8b7b8ae4cd5de581..77f4a3b00641bc9535ec32f8654ea7f547c34153 100644 --- a/drivers/gpio/gpiolib-swnode.c +++ b/drivers/gpio/gpiolib-swnode.c @@ -91,10 +91,19 @@ struct gpio_desc *swnode_find_gpio(struct fwnode_handle *fwnode, for_each_gpio_property_name(propname, con_id) { ret = swnode_gpio_get_reference(fwnode, propname, idx, &args); - if (ret == 0) + if (ret == 0 || ret == -ENOTCONN) break; } if (ret) { + if (ret == -ENOTCONN) + /* + * -ENOTCONN 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); -- 2.47.3