From mboxrd@z Thu Jan 1 00:00:00 1970 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: 7bit 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 --- 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..4374067f621ed782a7e1549f7b0b7e44eac04930 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 = swnode_gpio_get_reference(fwnode, propname, idx, &args); if (ret == 0) break; + 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); } if (ret) { pr_debug("%s: can't parse '%s' property of node '%pfwP[%d]'\n", -- 2.47.3