From nobody Sun Jun 14 15:53:21 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 5B67C3B7776 for ; Tue, 7 Apr 2026 13:28:15 +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=1775568496; cv=none; b=eMoHC4cgZgj+/ja1BlAkYF4WIZFb2xpKhnWGc5CZq5xZnj/o1RFkI0Hz6MTxSrbKsHo0Z6R/AHWZHakj1zFCy+jLQzlH1blTK4Bio+wHs/wqB8Zye/tWxB/p8n3OWdcDjiGj5/v6RqYitOs+kuhTbnoITHaGn6M24f5VbL+iPNA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775568496; c=relaxed/simple; bh=hmYdGZ8QpnFOuKeBACyvFyEsCOerFDJssZtlQSsutkA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hWercYwSbS6T517Xcr9zmfayH5BUhvNXfQ04V/Rf7yoIWmU7n6IzrLGWyr1vH0AmZ4b3r1CAuIiLHn409vcZN2H0pnATWh+2kAptakYv/t0nv74F0nu/qouyOGA10oxU1SbQbFCcliMecLfp4LU9TgvtcuoeYBwnCmfM4YRFDKo= 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=MLfpq7QY; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Om5AgSl7; 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="MLfpq7QY"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Om5AgSl7" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637CbI2g492497 for ; Tue, 7 Apr 2026 13:28:14 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= 9liLF/qYXrQRfW076cbmGme0YBi1d5hYrDISi+SmGbg=; b=MLfpq7QYllDjY0ZM SIHS3wCWLtMZ7+OxG/CJTumykAa7Elpe7PryoJzPlCseiK/akd7reagxujTUjjyo pg6OSFmOLvJ80W3P2u3QXZQSBGwbmlYwgk0na1lSvGYpARWgtnEQtLl361LZNO2h qUm7TjaOL3cR9W2qZsQORvc1ydWVrIUnq8VPghh8JnjDN4qIPJDfhnTisZLgNFFr B+sNe48l1552wvMr4nHy4jMEY/4gGNWcgMRnSsRAtdQXyUDvMX5ezODVR+dd6Rt2 cmOMJjPROf1NQDZj+Jmw7PBKAtJ9nSarSYnbislIYqvR4OwS8PDWqaoYcRtZJ+Jb VHC2Mw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dcmr8tuhd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 07 Apr 2026 13:28:14 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50b220c72bbso39627561cf.1 for ; Tue, 07 Apr 2026 06:28:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775568493; x=1776173293; 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=9liLF/qYXrQRfW076cbmGme0YBi1d5hYrDISi+SmGbg=; b=Om5AgSl7h9Dd7eIMHpAImatDLqPlFRHoKiVawirrbRgo3xp8LwObL+veJaimJsxvtK i9AHSl/Vu5dSjnojd0QothnLtZ+mwDpztWK8bGfu1FrSKmdDYNykcRFsfA1gW9mObqOf 98lNIPv6wvNza7goeQwt6Ev0Hwbdo71y6zkJGCde3RfdRpfk+TYLDwcWcv86XWDrp2fw we+GwttbHbpbcSmdK+YRS7xnzRN81c1+vmg8Bh5Awwdub2p6XGkSE038X6fIK/4tm5S+ u5i+itiCEb+yK2hG9dptRBl9nXCaE9vPMv7/BUFnsMBo2O07P2b+ND4EIikAd7jlkCmb od+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775568493; x=1776173293; 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=9liLF/qYXrQRfW076cbmGme0YBi1d5hYrDISi+SmGbg=; b=sQoEH1T4J8zwPYQETHhlHPZy6LwRIHTlu/KRMxQug/QSIbXj/O/2SySDxOT0gEPqcY V1olhs1XVHNFC9vV+u0cO0gkIWTPYsGwLohRx9pbkvdUuKg+tfegs0shKra8JpvIBKG2 jtxqoQVGmPtR9VSGoWpa9LpvkiU8gkzLvsxm4xzlBBzUalmtYekze+C7QnuROBbni5WC qwOWxcsp54qKSU2kcDIjSWmND/qQt9szsJiKjGpO7KyBKV8qT6ujKffSB9OV5mnVsi7G E9AKlPGYe3H13djaMPdKbnp34hd4SgUSS9VwWalcY7OqUMMMnYkW7t3KroRdVgkthh2P xhhw== X-Forwarded-Encrypted: i=1; AJvYcCU5RD1sHRYXpT8M9Bvsui7rhRIDNQTOYhcfMpcDS+vcsm0EPMlf10Cqj2LuNWeY3V4xACtrksBxlYLyXZo=@vger.kernel.org X-Gm-Message-State: AOJu0Yzn6TWR8uifhf6ZIrIpMNf3DWo666IBoP2edfYf22KVAD7Vc9a5 gOArbR3Es1NpL4arFjtJF1LYBkXrKPmnOdt6uTo5K4KVEt3IViauPC1h0ON2xw83YDCnovGAR7/ aZzE11TWIgIaq/bTj5mVVxY/ipouc4wG7VHyxHGzD4Ig0VaVTl4/7BB3T9r/9Ug23TXQ= X-Gm-Gg: AeBDieslOplThi/4xHNS8W+g1v39EWk3LG/Q7yMXyJsBKm7slR+EO61ZDnG67tJlYNV v8qGSpXZhv6PTF3u201iBlwr76G3ivbTjqXvsreGTi/BVWBXA3//z9Owmdn8DVycRNyUHDnm5f1 VH2UbLnLhzK5nY+8KEhgdhyeHykX54MBBHEE51bp5+waIw3GYFQaH+Ih/vMflPx00raGQY5Mg6T KPaODVivT4v/TCx3tWnSK9m/RXhI5iIFKezAlqU30PJ8mHrBlbqdGp1FBoRd+SJ4727q6onrBOF VOMMHPuujvCUcSN8hsdj9iPEfC/jI4Paxkx4bdsH7tWEXgq1T9yY6DzTOuI2EnVl+krhlgLXIsm EhnKWXvtXx26sVYojQoPubnY/HCIjCR7Lnb3DXBqPShKYjZ6LmO4= X-Received: by 2002:a05:622a:4106:b0:50d:7a6c:7d4a with SMTP id d75a77b69052e-50d7a6c8951mr191328311cf.31.1775568493547; Tue, 07 Apr 2026 06:28:13 -0700 (PDT) X-Received: by 2002:a05:622a:4106:b0:50d:7a6c:7d4a with SMTP id d75a77b69052e-50d7a6c8951mr191327611cf.31.1775568492894; Tue, 07 Apr 2026 06:28:12 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:b36f:5370:5f91:2d5]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a2c6cccd2dsm4073807e87.67.2026.04.07.06.28.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 06:28:11 -0700 (PDT) From: Bartosz Golaszewski Date: Tue, 07 Apr 2026 15:27:57 +0200 Subject: [PATCH v4 1/2] software node: return -ENOTCONN when referenced swnode is not registered yet 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: <20260407-swnode-unreg-retcode-v4-1-1b2f0725eb9c@oss.qualcomm.com> References: <20260407-swnode-unreg-retcode-v4-0-1b2f0725eb9c@oss.qualcomm.com> In-Reply-To: <20260407-swnode-unreg-retcode-v4-0-1b2f0725eb9c@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=2195; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=hmYdGZ8QpnFOuKeBACyvFyEsCOerFDJssZtlQSsutkA=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBp1QZkjA7X1+jc27SHeZAK7S1NEcKZXxUiPVu0U wtyyi+csk2JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCadUGZAAKCRAFnS7L/zaE w+leEACnZABJzFjgUe801nNvDd9J625XE4Ufxm6zNPtDSZPwoBpkoqY+sXqtHY9NWff2zOKp2gF WdCK5Q/REfC+Ha7bdGdeWeJ3yS/+Gj1IIOJCJIpMAsbZm2TIz13/l54D2Y8ihOQl65rBxRsEBwT A93IuL2OzHhqj/KS+DFfBhHsLy0WoJWw00e4hT/dA8eLNmVrA25vOEnGqfMFsiDS8U+zqYeKsBK UIAXYmjsJytLXtJguzC1JDWUf7qeGbFFmNwLEXQRY3KadwzqwISCItcIclLbuUB1DaKrCTA3FM8 6Yz5/OixAHYD6G/oGVL+PkAAw3KVIYc9fbNwR1JVaWOhRH4VbyBMK4bavqvPSoOUyAVwiydO6xZ icwm21qpZcx9GGu6l9A03Gy5xp4wt/LqMlWX+JB3qf5mZUYb5O9tS+xwWedQhxdxiwEPQ8WmhMf ejrRaRqxfFBrcUCZS7R1lp+n+BDPn7/6szRNq2uuia9j1+0IfbpRC2i+jc97MrHONK0ANMSydLT +MrMWPBfCOb5aSru7GnPiWST88G9KMhQ7gTezWVW4zPTCbXOGSGkar76Eg3kndXy/HL6QzgdTOT A/Yn8KiP2N/CeRwWJEJB73rzB80CytsMI4BCmCcoNZaIL43b2y19by6MejUBafCVCZikLuIA1H7 0I6tA1MR3U3qZPQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: G9fx3hPZpzYQiAMcoawAd0Qdt39cc2yA X-Proofpoint-ORIG-GUID: G9fx3hPZpzYQiAMcoawAd0Qdt39cc2yA X-Authority-Analysis: v=2.4 cv=c9abhx9l c=1 sm=1 tr=0 ts=69d5066e cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=75m2fMeJeqiFL9RjkDoA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDEyNiBTYWx0ZWRfX+IBzJ4K+jEzT An72xaLbfx2gtu0ERYigFhqDFHD2IwMDWFkDaqvOzDMG4auXKhBJukq5pAoHsFEszROGRCPMSDD 1U3tbEZNS6dQaJ1fjYrIVyrGGECWVq/A1F8BNa1/jg5Wj9xAiorTdMmME0HjWAM2AFwnD8OkEqe JTcJonU6jYF+WMaJJKzaKpQ4LoU932LsfevKiZGfzLQLya7DW3BIR8DIy5a9XqjjiGfpCimWdLV OygP8kHK6M92Q2G3XmYb+yv5jkbWUb2VsyaCO29E7RHNo10gUXHPblYbYQtBrKRawT9VNmaa1Jk vB4Cu7g3TWaTRwLQRtgPO6j+18T6CtOJ+dTUigab4xpbJR83JriW6Grl7ezD911TuanNc8EeUAN s7MKKZbbzqxlDf9fRK8bfA0gg6TQvOcOonvrZsK1Sm/6saj/UuEBNzOnaXkxegYVj1Iq8q3NNEG 9QN10gtgxflb73qtMTQ== 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-07_02,2026-04-07_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 adultscore=0 suspectscore=0 priorityscore=1501 bulkscore=0 spamscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070126 It's possible that at the time of resolving a reference to a remote software node, the node we know exists is not yet registered as a full firmware node. We currently return -ENOENT in this case but the same error code is also returned in some other cases, like the reference property with given name not existing in the property list of the local software node. It makes sense to let users know that we're dealing with an unregistered software node so that they can defer probe - the situation is somewhat similar to there existing a firmware node to which no device is bound yet - which is valid grounds for probe deferral. To that end: use -ENOTCONN to indicate the software node is "not connected". Acked-by: Andy Shevchenko Signed-off-by: Bartosz Golaszewski --- drivers/base/property.c | 2 ++ drivers/base/swnode.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/base/property.c b/drivers/base/property.c index 8d9a34be57fbf185e639c70cc4baae4510ba70ee..51394b7d44e31d0453e9c0084bb= 7ddb25b14a429 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -594,6 +594,8 @@ EXPORT_SYMBOL_GPL(fwnode_property_match_property_string= ); * %-ENOENT when the index is out of bounds, the index has an empty * reference or the property was not found * %-EINVAL on parse error + * %-ENOTCONN when the remote firmware node is a software node that + * has not been registered as a firmware node yet */ int fwnode_property_get_reference_args(const struct fwnode_handle *fwnode, const char *prop, const char *nargs_prop, diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index 51320837f3a9f1bf4f65aa161d9b941affc74936..61e73417aee89feb855b0f429e1= 12ca0af78a003 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -554,7 +554,7 @@ software_node_get_reference_args(const struct fwnode_ha= ndle *fwnode, return -EINVAL; =20 if (!refnode) - return -ENOENT; + return -ENOTCONN; =20 if (nargs_prop) { error =3D fwnode_property_read_u32(refnode, nargs_prop, &nargs_prop_val); --=20 2.47.3 From nobody Sun Jun 14 15:53:21 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 CBFF93B8944 for ; Tue, 7 Apr 2026 13:28: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=1775568500; cv=none; b=FK3rLSR1V4cjzn0TfjHrSgX0YkEvl0ky0RebWDWdLLNWld9BevyTVnLa8UxQ/gdtJ0b3R372Ii+Nw9T+Vo3YPsedb2mszt1Ngp0qUIBVTu0gTBRl7iCDTYfLfbTImC42Ic8h+JT6D5Njqn2spnAmlnakVlxQ05PDyGXTcRqqFVY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775568500; c=relaxed/simple; bh=OEfrFqY10EtQxTVjSrDWnxKhZ0dRAZ0uYSNJWN47ZEI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JPA/pNBmH1I3oD1eH5C9/b56eB/qAHGdDJ+Ipp3TDhTDcXGbdsiW6AX2zuIaFbmZv1qKFNQWK+ogCFTAl5vF6jerBjHvlbVeh46g/dWO0EDLPRJ2Boi7As0H3m8HVffiwFurRfNEnQrUHxSFrVW9nZgytSavBTyXrk0Kg43gXA0= 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=eNC+pgOD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=F5Q8b0fT; 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="eNC+pgOD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="F5Q8b0fT" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637CtdCc2328170 for ; Tue, 7 Apr 2026 13:28:18 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= w5c8MEzhdr4cVa+dIv0sfjNJqngruD2IfC4W4N4aSpw=; b=eNC+pgODrXDdH9Nx 6RcG9TXWfqCBBPfRmXbLWe6K50yACYkK83ngffbftT1gbltBVuaqcCK62uNdKOnq lnCoy8W81mSLY10LxTEBCoZupcilNsSmOb4yUf1iAMikF4mQpAcpAGjL8Vyoj7ak TDz+LOjlXEIrcWi6dYaxQDZN9dC616vistiEWhQBaw0ca+z4Q0kzh0PxSF/g9Nj1 LgY0hoYH2ancptfm9mBkj6NSTXQ827XG1kGX6gLWDwWqveZV7tln1+L17DGUEw4R L62F/NjISBK/H/RMVZQ419XCWK4Zc+PZMX/EOkdtiheogulxgPTPVXlbwNoW9rnW YooYuA== 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 4dcms4tvd9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 07 Apr 2026 13:28:18 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50d8e8c47a3so37195871cf.0 for ; Tue, 07 Apr 2026 06:28:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775568497; x=1776173297; 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=w5c8MEzhdr4cVa+dIv0sfjNJqngruD2IfC4W4N4aSpw=; b=F5Q8b0fTapYTYBxouJamTQQsN+FIR8wvc0yzTdNjMKxBSokBn16r0Kz2cfF+0SiDea sOxFE2Mu70TbUS6y0s2axFdq45hjkTM5+q8chn++cbO+l39gQGq+fZFZp1mB/yKtcBhh KW8b7XpA4GJGQyL/0ElCZZnJ/CIv5mjBrOuryMehwFgAoKVvmbmDDTO2QPB506agFzSE XJmmqP2O7IbL2B2QJ54WqFIIXzEEnx7t0LglgukhxLFmkCdsqi4FHDHB+yiC8hj2saZB FlWjxzkgNOf/K2Cf6JgTDPyTo5mwfavJ5jGxZc7eDv3oClenzTyxnW8gCzWemCcT01gW oD8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775568497; x=1776173297; 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=w5c8MEzhdr4cVa+dIv0sfjNJqngruD2IfC4W4N4aSpw=; b=D3KTn1jhlhRJnmoSQtG/dGr5AaRO5d6QzphqRBDBkU7DSug4VZVij/4/OCv2eKgh6J 3S8x4uzfkLz2qbDGkwN7IbtzU8/D/seD3NJJQjmvq2+Pq3yTJ7ADOnNBGAc1BwrBKvPB HAObi1S8w2cj+nDnb9H88HGcxTvWw7dgtBlB6v3IpERTsLb1IftpNucltNN0UqEVOo50 +2kW2CNWwR4yyd4QGg2u0HbtlbanCiusPdJ7uWff9DpXpqd5cjRmn0HieLuPk9IDuuJp n5QxgyRnMHcYZeiqvXq3zqhR+fdAh7tlliqH76mNLSgTZQQMLMHVZtNH7m97vNgcvm/8 F8Sw== X-Forwarded-Encrypted: i=1; AJvYcCVNH31nGXAN6n78viBwU5H/bVu4spjxCtkLyVZJkTQ2LtZL7ANj4bYMIHDDgGoU6A/w5bNO9j6QPyfF5TI=@vger.kernel.org X-Gm-Message-State: AOJu0Yz6+qNcem8vdLsSxCFf21QElj3S9ifX/u2t/o82ooGxZauP8apN OMX8/U+6Gbkdcrc6UTxfpYS6EFEPl3Tce5yJgeOWTzxpIXBDG1kmh8UqZXwTAv4jW0bq/tSAqEj q0LrfE2/Yj61tsOZOcinWN2EncZ279OJcjD7T4F49JaUzXv2Jji7igmB3nsQDARVdPbs= X-Gm-Gg: AeBDiesQxsgKMl++ueks7RC++XCSZ/z5X2pj9H1noBSmOaDn/jojjRo/b5vc0OOX6xt RLYo1xzWibaiRGooRefBFstjYAN9GKgrWwRH67BA1KJcW+yzojeDdBUKhreV3qd6gXqjCynz9vd 8b/7iqiv+JYZMltpoW86xyqAB9h4piNrxnFoC30JuduikMTKjVYkPLCfXjKpr4TmDn1UD6CJq7G x0Losld95CNhJe61QCnc/FTi0NFT6BR4wRkFOjLzQDT5yvhxFwuNRgtbuvLu5B39Y56SGMrIkqe DC8X1YmcdSrhg4pkpnV0b3UIDjf5KtJWr03XzxtHez3RXtV40PXInu9zBLx6lNuMjekPOV/DOCs GY27TNy4oH4Vng//QJpT0MMBUk9aZWTylMiQ4FZsl8XehA9BoBdM= X-Received: by 2002:a05:622a:4c8c:b0:50d:82bc:d2b4 with SMTP id d75a77b69052e-50d82bcd411mr164477451cf.25.1775568496518; Tue, 07 Apr 2026 06:28:16 -0700 (PDT) X-Received: by 2002:a05:622a:4c8c:b0:50d:82bc:d2b4 with SMTP id d75a77b69052e-50d82bcd411mr164476841cf.25.1775568496031; Tue, 07 Apr 2026 06:28:16 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:b36f:5370:5f91:2d5]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a2c6cccd2dsm4073807e87.67.2026.04.07.06.28.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 06:28:15 -0700 (PDT) From: Bartosz Golaszewski Date: Tue, 07 Apr 2026 15:27:58 +0200 Subject: [PATCH v4 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: quoted-printable Message-Id: <20260407-swnode-unreg-retcode-v4-2-1b2f0725eb9c@oss.qualcomm.com> References: <20260407-swnode-unreg-retcode-v4-0-1b2f0725eb9c@oss.qualcomm.com> In-Reply-To: <20260407-swnode-unreg-retcode-v4-0-1b2f0725eb9c@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=1448; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=OEfrFqY10EtQxTVjSrDWnxKhZ0dRAZ0uYSNJWN47ZEI=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBp1QZlY5tTT9u7707SEUVxT4SUMKUdcSw8KweqE EqfOSvq9SOJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCadUGZQAKCRAFnS7L/zaE w86YD/0bskC9HEQp6u4n9iE5eHUdzj88nnBi8+E7bXgshffGQMjUkgQdC9LsraAR7ZsNIUUGMfv mvyn6HMSeU33eudv9g5ep7QGJlH7QPQKNgjTfhoJ55Ii/WHa+PVdzVESRDAGN7O7t58rW6SQDCy VngmqBnhvIg7oYlJPcbvJBqKJJNSidTDhk+DfHNvZnq2/mCsJGUDkUyglz5Q1WfT/CW3155Fz1U YBb0S+u+QMxbWG0Eh3MGovvhyGq3+0DpdQ6/i4N7f9jKcpyVLh1IhJvlyesswqzUH5S2wSpb859 dcsgdTChI0yPEbV6K/lamQ1iC5MjvUZFciAYeApzYOwOzb8z0OT3RbFZDoWcFkUve/oJRYqpMaz nDSV/KCKDiH6Vq3EeO+2X47tjMrodSWhRAa/QTN3/hcl3ib3krTHyKhxIg9XdYq7ZI91ZRrSiio ra7IEuNGp9Pjhkc1RZlvf4UrRpoj5zX8uQ/R/OxTPro3H8m66SB1XJKtoCx8vdIfeYUEhvm3Vhj iqGRkBiquItARHAjuCPajV2OLCh7QSlf/fwQjwwxR0P3a5K/NX1rkEiDE8gwYX1WHVXbQLUHas9 xO/ORkmqRvMAefGJztED0ifhQ420kzAkia2kShoCRRAFD9ukWUc3cJTzD4Ut3lrpfAlhES5bHA8 3tPRAH2wrClAw4A== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDEyNiBTYWx0ZWRfX/plCjkHS+e5v iYC+nHkl+OFzSugo5eqgQ7VNiv6ERhh/u/1AHNpxgXFoyEaqVQoGbmJKxr7pL4diHzxJn57GMq9 eXIPIpewKG6cubqW3bKayzbaWVRXsLeGeVyCRGKHa9T0YXEwLQsGlDoufT2Fjf0HxSa5UyUUfAs 4zPFBDX3j59zH0skeIzvIwqksH9tv7kKu0in99EaWOnpUn4N/su2+EG6s65/VvQcmdJHgQNZLwC yM12dEt7FfburXKwpZOcvVvbmvPmThdaYygozBPcp3lLhTAX5Rx+3667b3eVQ4Oj4CIDrL8ivkR tK47cZhMb1eKUaADDdRpH691tcD8W1mR4iWVteEqsGFbxEoVayHc+hdsGFP72jcH8Z1MM6mab5L 8lzOZZgQD5XZYiR8MmzR5rWfkBPu3F27/sEvsVHxbSNj34adSwFeWrhxuxh8BKshkIEj8FBnGtX eBy90Ag8amAM9xt5stA== X-Proofpoint-ORIG-GUID: KSa-ThFs41sDukWFALmhZIoXZEmN9GTx X-Authority-Analysis: v=2.4 cv=WNZPmHsR c=1 sm=1 tr=0 ts=69d50672 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=H5P8rdbTNIBZEmRUth0A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: KSa-ThFs41sDukWFALmhZIoXZEmN9GTx 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-07_02,2026-04-07_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 phishscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070126 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 Reviewed-by: Andy Shevchenko --- drivers/gpio/gpiolib-swnode.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpio/gpiolib-swnode.c b/drivers/gpio/gpiolib-swnode.c index 0d7f3f09a0b4bee0cf1bbdaa8b7b8ae4cd5de581..4374067f621ed782a7e1549f7b0= b7e44eac04930 100644 --- a/drivers/gpio/gpiolib-swnode.c +++ b/drivers/gpio/gpiolib-swnode.c @@ -93,6 +93,14 @@ struct gpio_desc *swnode_find_gpio(struct fwnode_handle = *fwnode, ret =3D swnode_gpio_get_reference(fwnode, propname, idx, &args); if (ret =3D=3D 0) break; + if (ret =3D=3D -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); } if (ret) { pr_debug("%s: can't parse '%s' property of node '%pfwP[%d]'\n", --=20 2.47.3