From nobody Mon Apr 6 10:45:06 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 F346F3C9EE9 for ; Thu, 2 Apr 2026 12:54:50 +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=1775134496; cv=none; b=PiwB5N9aKu7J18+pmUURWo6Qm+DrjuWzr6T87xI9lFcR/1b69i/fJnOSejmWNAyAcRfDsmSuNuN4IMXUl36UdTvzw9L2ZAlve4kX2EoW5ajw6dohF1ZeTAOOXCcmG77ndQYN4CCtdCYk0UuW19NuohHE9YNmUy0bPWPH8g9JkZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775134496; c=relaxed/simple; bh=UyVNL9BnEdBHdX0N3vE7Axbnavw0KwKZ6JYxOrxh0qE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jGxXnCbebly5ztlabpLayfYVtoXRd27NTU8u9hEnwij7KN/VGT4pEXtn+n6A4d2evbqojJw/R0szbTbq5axhboWfRzxADjJ09pZ+B4gg+aOQkUPV4V0WVD9FDbMSDtrF0VuleIjBq9wM8ZUxPRLLln0yrzWGEN/gyoRKKuq/dYs= 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=ePkQ+ZLP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KIr3iE/8; 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="ePkQ+ZLP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KIr3iE/8" 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 6328d8od1249469 for ; Thu, 2 Apr 2026 12:54:48 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= pkL8PdXGCakocYTcwKJcJZjn9BQ6YHeW55eR2rIFD0M=; b=ePkQ+ZLP/FEEdUqP H6rB00iOq4YkhjbsYVp2JtMsefxRY7b0V9eVTf3Ez0WZAV70+m0YTiwYG8nNuvIF iFul5qEmOsylzEiBKDDnGMQh8NleDFmgi5hoSil74IlJAkSh9iRWxyF2/ZKf3MaP 1ideIovgSzLm5CWcYpZDZHs/PrgafdP/j+2+Hg9JzTbO2YOIPDsRb9tE4HOqEWtS p/rcKlKUVTCE7n4KvLl2oGdbXISZ4nasTbSwoFdzIxNFnajbUZ/aIW8G45N0EHSp 2vYMAQ59TxBMh0iDTXI/xkCkJEkZPmwhK3+sQziaZet6rrYP2adYw/OZrzpAr281 tFthSA== 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 4d9n4t11gu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 12:54:48 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b44f7b7bbso23811591cf.3 for ; Thu, 02 Apr 2026 05:54:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775134488; x=1775739288; 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=pkL8PdXGCakocYTcwKJcJZjn9BQ6YHeW55eR2rIFD0M=; b=KIr3iE/8hjg0dPI6EVYwaQuwpJPMFkhloiwH+PAGYW0CqlcTmhO9jeeshVf1khL3ne ly4/ALZ2ydq9a2omi3e3Yd0J1MsvmUGu7IXDTQH1blWzk4GUeRm8LjU/ecXpynMbe+SG mBT8v4l5L7hDMDvUxD5VsIpBFJJojR/4SsDLL3s9pIMXnPApgdWWfETmrXK0UdqQB9ng MmJdAAkdVTRNHlHzP010dSJoZa6nI+0I1f/GjGJ398XDN0v1FerK+VAOqM5isypeT+SX P18xovdHj3FpZz+iqZgwWOIY4JZlRDYoSaTRz06NEL0Fhag5+01QUfJOdNg1LbYO0BAt REag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775134488; x=1775739288; 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=pkL8PdXGCakocYTcwKJcJZjn9BQ6YHeW55eR2rIFD0M=; b=bfUpVp6AJ7q67AIxSF9H4hCwA61QeBMMSCqQk7lixn6o+ZOk3iMPIjn5/1wyMtBLYH o0zor7ljhs81sJ4ZwgKzV171qlQQq8RfCtl9aroZfK9iUOa4n5/9Ml5N8KeIvYaeY55v 7eZYtDHOs7bUPCPfzz+IsBcUbDOYYDPN+t367H62zc2jSb01wwCLBbl9BHpvO0t4gsu8 BkgeZYvxP5pPYfaORIubo7u4RpOXhcs62XIDfIQd2LEk411DvpiyOwJkgnqM4O5lPhCc 3DbX1QZqJb3L9j1HeSso9X7E1+h+9OWX4MAVVGPJk5PJXBp93dO+TbAQKCoFrMJPHfWB /BmA== X-Forwarded-Encrypted: i=1; AJvYcCW6+B2mNAqVZgkw0/MWLfLGfrAlexIlGsjDsDd8ZwQbUadZ4dwJLRvoiTIdVDnP7PF1dpOgJjCazdW6LAI=@vger.kernel.org X-Gm-Message-State: AOJu0Yyu0VgrP3aRHg8pm5B0VJA51fih1pMcP36U0L7A57lQLgJHmW3J qeEd0Tm4pppqvz3HSIFSltKaAdNPStuTlrSpkP7AobNiTQJlxsDzrOws3EFHnZJP4I2arq0m+jj bHX/ViCGzCejHdfICls4VyeIuhYgP58INrHH5k24EmXk3ttx3TX5VHWtotIs989kdRTk= X-Gm-Gg: ATEYQzwRq+fTOuM68uiM37PTtYTneZfrVFbEYp/3x/PH02Gm7H3IT+a5ojZb0k9FtfG 3+MQzNCZJM9/VQJi7LbalE74FBS8wMFYjYStzln0pIk736dgyT8QS9UjNopWvlYO8vbKnvWLwKu RyBHWoI7RHtP7IMbgJvehrMAi67iQZtFA9y+MGA5pjDqj7CzjhBtnE2IO6Kn2TwsVaXQ7jnA4z4 JriTl9VdBQmbLEJ+ASWq9nsDhmpqpn6077d6LGPx+w8dpXZAhuo/fnS2kAL7XTqsaMoBYlRBFBg j0B63MdkRaVf/QGX1zhrX+aWA9yX2YDdN5IPqdntlikbdGuanBAatEJpkGaAiZ3G+GzVtJhzcRI 7136A+f2+t0ffSEiwW0X1MRuRiIE+vr7vQeoNE0KoPF8BXlsRKu6/ X-Received: by 2002:a05:622a:a6cb:b0:50b:41ec:5e84 with SMTP id d75a77b69052e-50d3bb64de1mr92118211cf.12.1775134487708; Thu, 02 Apr 2026 05:54:47 -0700 (PDT) X-Received: by 2002:a05:622a:a6cb:b0:50b:41ec:5e84 with SMTP id d75a77b69052e-50d3bb64de1mr92117751cf.12.1775134487297; Thu, 02 Apr 2026 05:54:47 -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.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 05:54:46 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 02 Apr 2026 14:54:26 +0200 Subject: [PATCH v2 1/4] software node: return -ENXIO 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: <20260402-baytrail-real-swnode-v2-1-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=1371; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=UyVNL9BnEdBHdX0N3vE7Axbnavw0KwKZ6JYxOrxh0qE=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpzmcP+BIY8RXS90a3xjPBNtfvQM3pMaCvv1JGW DHGPZ60AjmJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCac5nDwAKCRAFnS7L/zaE w3c+D/9KXhdti1SkyEeKtFYP4j7R8J0b/1Kk6OkPjGG7BRkDpTirvmAyIzGLElaHdSVbHQcPO74 DCSwW+mnvKHj6K4iHOHP0rF2HbRvmpssqmUzxXUtZU66ePHgn7e+KFt8a3KtTwUJ4AirsIvv6wU oumWwMV4qVfAHVWQlL2mI2jh8guD45k3hLBhzk0JZBCwY7/6JeWmHJn+F+bws0i6SrSq28+dze5 hEaf6mlV6rlYCRSWs8IqPSPEF2fRl3eKyEBq6Hj/tlQrw5G2JkYIUbPWcSV4WHi7oGmvXPLaP+7 SzI7yLSLRk6KHMnSO2IcR3QqWoVz9goR9rQWcrnrCT2QoDVSyCG3dXG9H7WL+JRv+BKhwr4Mgss X12f5wJ3DgkvsRFQOyXlr5x7Tm5i/yZVsVDnAwv//syUuKfJ4F/NTuoRA2nC+AZ8oY2KVEkSCa3 CL+s4GIP5epDDogjQrgsSbpKjyNROsAs6JD64+1zQlOmo0LZrMaRLHXFqZC1+TGIHTdoyrHaPZ0 YbEsZhIa6Grt2aGPQSVXMGrPHzAlajh/YOvhhpBI0u3ST9CeMfhDq4vm9Zec5wCgOSr4m6cyEDW CeXrKv2STM1mS8Dl/A1gPR20qWh35tQfMUs04KGD35WViLkKWqtXRNu8Gk+Wad6BMBh7beGmHXs wCaqRuxMx0TeJGw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: EKf59Ow45qcsI4V4RhMMezrJoj9ii9RA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDExNSBTYWx0ZWRfX70JS6wfFEVjY 0IfmWegtPnEl3BTwRWjZAuWvnlBniPisaZCqDRnaWgcx6ce3+2ce6J5OQ8XUa3p374vi1rTs8Hm eiVunYchvldKjP2Bc1kKLk69l3HiWD3MjK9GBWoDoyFJ4Q997W7Z8rTfuObNgQlgmwvBMuXqoH6 mx9dGpBEorOrsfwssyPEq17izgoEODeZ2HOtGkaG5uVBTxNNR8WrnLA01rEv2z6kFxER/Jss1Ol tBgKemjlciYly9S7cTtLR0Yx3LT8lSIaNnLEIqd3/muzxj4rsF5QweqfPhtRwRpUBrZohVBVsvq r6Sxcz7V+y7CFlMRDxR/t37q7swi/3dW26F9LAt2x3miJSC+BN+JpD4TSF430ifqHyIXpM/P7j0 BD/M3GK3wlt2Ai8zYHvNrLCMHX6GkS4XmLX1kdUt8Wh5Pp9UTsU20lLVmNnZAB5QF2U98GkunG4 SFiTkX/KAmtytnYwepA== X-Proofpoint-GUID: EKf59Ow45qcsI4V4RhMMezrJoj9ii9RA X-Authority-Analysis: v=2.4 cv=Ap/jHe9P c=1 sm=1 tr=0 ts=69ce6718 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=WW6vG2jIvFMNhbJRSCoA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 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 priorityscore=1501 suspectscore=0 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020115 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 -ENXIO which stands for "No such device or address". Signed-off-by: Bartosz Golaszewski --- drivers/base/swnode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index 51320837f3a9f1bf4f65aa161d9b941affc74936..29eec7ba500e8c8a02482dfac68= f2c313cfadee7 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 -ENXIO; =20 if (nargs_prop) { error =3D fwnode_property_read_u32(refnode, nargs_prop, &nargs_prop_val); --=20 2.47.3 From nobody Mon Apr 6 10:45:06 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 From nobody Mon Apr 6 10:45:06 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 827173D0914 for ; Thu, 2 Apr 2026 12:54:55 +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=nrr5LYSdpPDAGxNgAy2mmBEAzLw07fKcVEus2KKSHN2tXh4ht3wetuOh9FiChQYvGfISRA2eHGjWiYOodp3ybNImfQy2mSgrkqNW3MxIhslzmytfxKJrZ6+t1Vqw3+8NSqzAAk54TU8W1iMuabcrmko7E0M0qMVbasfktN/+nos= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775134501; c=relaxed/simple; bh=mlZurhMjnNadP6KDAy67g1xVZeEONxV++y8bOiCYR0E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BAhG52rgH/LB2qSFkI8pKJIvub7XBkClA6IxYrKmQGRDq6sQCEvxnzyKTFdgq11I+L68e+J8+SPZwU1pXZeODNXiJ2gQZup1Vt6x/dsrsIm2g5vhIcWc9HKbjBuK5aAW+WPmPEMz6r+PFhcm+35RFt6ew2N+Q5JZWM5/lC17EL8= 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=EElPktVr; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hdfcTl5P; 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="EElPktVr"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hdfcTl5P" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6327CS9p4088667 for ; Thu, 2 Apr 2026 12:54:52 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= WLLQEt/bxULlBw9ELKCkgAUAtDDl4p/o2jmjEXGFfa4=; b=EElPktVr/2BrPHft 2rFAdG68Yr+mrWZbiSbrh5m4EpyBYGxgwQKe+GnyQ9si3/8ReGIXAQKmds2AYzMd x12Mvd+c7SPGL9FYDgZyPbdvtVPA7RPRRx/4grj0NfJqXkAt1y/le7Ziqe2vHfLf uae/Yjd/FVpBgibBZov1ddOCKng69PbzIXKdSjSSxTKNJ0Gv4pK+/MStyv6C6c71 D8T82hW/vl2agitC89/xfEpPArexbIug/1uO2tFW/TLZpdSp6TJGeDmTjOdBNJRG 3MC4y2aH3MuM4J0rEUIWwaNiT2uCcIV8s/5/hzOb2cNtYVotpb7boRhLwYOiEZ4W 0TwqBw== 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 4d97e044ym-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 12:54:52 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b4987c698so1467851cf.0 for ; Thu, 02 Apr 2026 05:54:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775134492; x=1775739292; 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=WLLQEt/bxULlBw9ELKCkgAUAtDDl4p/o2jmjEXGFfa4=; b=hdfcTl5PIMTxSNGnptB87VQ0Eo4YvyMqDR7w56mVx50AQTi+pd9HsKmKKz9nefomwS HaoW+pbazIyJrjRVm+as428XS/qJcNFL/sx3YQBisbQQgkqhosd95jEevpcpoD0VxWHY bTpmWxM0DJ1Tk/yOcHbDfL9XwD1HM/CZPNlNxfQ/Ojbvo8ZMaVH/9w1RuCRwjzpCbvHj UG+W/XE6CLbRwPnTPIDfW1DFB+3nlGkclsz/tBNPcX3H/3AfVdQOa8u8W2SshUN2cXB/ OnTyGpxgtwGKmkWw+G5PvBs7eEmbCF1BwASQEL9Qjd6XMoyVWD4OYVJUMcECdAlxzAZp uuNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775134492; x=1775739292; 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=WLLQEt/bxULlBw9ELKCkgAUAtDDl4p/o2jmjEXGFfa4=; b=qP57X8Zd3kYypPpUdVzHiekxTpQFkHcfkg5k78JQGRXpzBlOw16BPiOUT7HXgUbJlD aQo/jCTSjuoKG7Te+rz4YrlQ3q2uZGsD0FvF59r0D+1zzsWL3N8NnDSVQgbmpTAINnkY w76xuexsC35YF629MWhLSyHnOm6TedKxp4xQmLHjv97Qtyoc9n51tHLk2SgZC0ScSMw1 Sk1UABWML29oqJ6+GV/azS2mrpCeDXpPKsPpu8ZdI7cgsONVmKbJXUs0dAWL/Z42Ufj2 +EtSB96W3CNY4kinGotm17UjRuBvmqlr3pqmYJtE4zRQBTV0YAbH/MGy0hyLdIAFAS1f CHLw== X-Forwarded-Encrypted: i=1; AJvYcCXK/76usHQ0KOUIsgQ6n92R4Gri0vI3ye10S4OijRoj9lmjF/dwtpDWEYCoWViOV9WmlbZ8LxSZqY0LFE4=@vger.kernel.org X-Gm-Message-State: AOJu0YwJG4MIBQZy3AWBqu7fj7UAqcXSa8ouc6UxgUMnAK2cb0wJFuG6 sI+FJV5VJVopV+ywpKyWirlKAFv3wG6qAqwyBITYzN/lhc2njth5hi+2aRsZPl9dcH3yICP90dZ lDsGheJtRd6PL0P5331uz4N2FvQxyhcI0R1Tk1OOEp7SodRDSLAyIrRxtrZ8PbcN8IWg= X-Gm-Gg: ATEYQzx9UbrZgIZNfAIpxdQk+GObE2HyHxZPc+yzQhtTH8hdYBn2nlF5lYGBVs1GbtS n61a52Zv74SABkyN2nuNwxGkIju6/c+yCi5VDjg4Hn89lBJ84CKHZiV1HvodmV3GHIfQDQ9GEu1 RuQYf3CwsnRzJ2RAgzsIjvhguwnkZVgtSY2ZdoI3OKvWqTgtB7yJOQOo1eWQy1FYly8Hs2Rzl9T Q//T/3ATjcpZoarwm1JGMekNpLHbU2EwIEWZg3r3vV+QSPBMBE4rIsakImhtCX7N7z1oOUOE+ev KKnkRFoYnQa5oFl7Lod8+R0mXcZPpHOB/bbjfK+xXKmcIn/4cV4YwQxfpn/LnHAUke+lFZ3kYVp boOYZAG482Oz6HE0WfuO6Aj++SfOgyEF1RKmGWdtwkgEF3idfzcy2 X-Received: by 2002:a05:622a:8d10:b0:509:451c:ff45 with SMTP id d75a77b69052e-50d4fa36175mr23346561cf.9.1775134491721; Thu, 02 Apr 2026 05:54:51 -0700 (PDT) X-Received: by 2002:a05:622a:8d10:b0:509:451c:ff45 with SMTP id d75a77b69052e-50d4fa36175mr23346091cf.9.1775134491332; Thu, 02 Apr 2026 05:54:51 -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.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 05:54:50 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 02 Apr 2026 14:54:28 +0200 Subject: [PATCH v2 3/4] ACPI: bus: export the acpi_bus_type symbol 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-3-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=718; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=mlZurhMjnNadP6KDAy67g1xVZeEONxV++y8bOiCYR0E=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpzmcR38lBliGpLPueBMGx9l4N7WOldUY1iBLmL X6A/uXsiF2JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCac5nEQAKCRAFnS7L/zaE w00jD/4znR5f8K/Iokc6CIJ3HPZwuzAtasXmeQnN75p0PzsPVZ0WR2aF9kObUCbmbf3mICyf+dz LhJ3MMW4QgNUxwZUy6xVGziyg4I1h5Pha4y9/AhyXK9QNArzf6t4QlxAsSmISxe5qCBo8p9Ch9O jOYbJ5Z+RNE/4aTnWPt+37S24FedD7XPG55pVszr4qvRH6Rw70kZKrRXGxJhUSu4uD5qKav+soO JMPN4NdeyhvFGa19GEXkkMld3fVQu9ySuN8RNBT/77MjDRHXJFCv9cw9zXbbl1Smo4+cTFXVi7t 6ypKXLMPYYx03xB7oCCq1XH3chd/TxUxiWguTx57hrcLV/YgelUlMJy+3U+PJoxrXIBOkl5AKGJ 6SQv08QIsrsXsgFzbTvRPCxicboVTcEo+2TKkX9CBAavhKI8/tqPjnPGePiRiVRAL6yc13abxgc yj2dpGf/IekmsWJ2S8gS2MledhgY0HIMP688XuqQC/ZM7jgF8Q77RbvRh67+gzARXLi0Gpr1PQb qYEPG80KGj9wqm1zN9CuY17yd5W4iAf+51VQN74CRZPQNlemBSxf0bwNlcl7aKwqgk1w4IYG+PI YcxOWDtz9E0ah7XmGDZquiTV7WK6dpnYEbO4sag1P92CtkkiwFkJ7jU9vnCOryMSygeLt5+Xmgx vrnpDJlLHqhIx2Q== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=fdGgCkQF c=1 sm=1 tr=0 ts=69ce671c 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=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=KKT4v_QfTO29Hm7g8h4A:9 a=QEXdDO2ut3YA:10 a=zZCYzV9kfG8A:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-ORIG-GUID: sd8wP_r7ZAabo5wO8kNf2Zr5okTjjhUT X-Proofpoint-GUID: sd8wP_r7ZAabo5wO8kNf2Zr5okTjjhUT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDExNSBTYWx0ZWRfXwjn2FsLyVTRp nxjB9sGZrjok4VGC1h5RxjV+oFdvDNroHviVEc/YAMyD2vXC6ko3E+rV+1rnMwM9p00Si8rHclX 2SIcBzHv0z+0r6ZM7A6Hdnx7JeVcKvpic5CYjXncKTt289U7mz3DNHACWFeKBLKGqXP/8gxzRGU wqUXA6gwgN9BfGAHx5m1fzuvr6OdkCI6+D/U5muDJSYVEIA92xexP6rlMbjamRKpkmYvdxlbkdk yPGdY01lL/2Nj27ucgHRQ3CYLQRJAcEa16JzG9OKEridbtDBqNUUTQRQ7jXVefuYx3h6lAoNtUQ 5eGVgdCy+JT43ZfbVhgL0CBCNQkno4V7OT7GFXLqAOOb+LqdPUPDZnt0feErpV63xLHC25K217h 0eav4HYjad+yWvelB5Q8tewcGr1PIDBqUppHozKHsxKZb6uCZPC9o5QFDOjh7N97G2dellBG5Qk ThvuQsRwYfzwmnYPoJA== 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 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 malwarescore=0 impostorscore=0 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020115 In order to allow loadable modules to access the ACPI bus type struct, export the relevant symbol. Signed-off-by: Bartosz Golaszewski --- drivers/acpi/bus.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 2ec095e2009e40b0645f654fb051429e5679dc7c..d4da76607905473de2e25e50352= 450c10f598784 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -1174,6 +1174,7 @@ const struct bus_type acpi_bus_type =3D { .remove =3D acpi_device_remove, .uevent =3D acpi_device_uevent, }; +EXPORT_SYMBOL_GPL(acpi_bus_type); =20 int acpi_bus_for_each_dev(int (*fn)(struct device *, void *), void *data) { --=20 2.47.3 From nobody Mon Apr 6 10:45:06 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 644683DCD9F for ; Thu, 2 Apr 2026 12:54:58 +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=1775134506; cv=none; b=G2VmzuH5zQwtK58WuSp9Ut1cWyXgEkvLOT3mvDLg3kK3M1aVOLM6D//OoWO5Ep4J4IX5U2jhe+yd0KxSHq8QssrDJyDG74xhIDRRkr3qkC1BTw/wWTOgUZCzceJ4iG23MprU+2DbxrMDfT9vYgtq282p4+es0fcFt+r7xMtoSuE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775134506; c=relaxed/simple; bh=l4lnny3dGBJZoHOBatk5qgjCf18AZd9xMDIK67fuBWk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QgPC5TC1IpLE6eXBXjXXepso/ynrG41biH8yrf1LjCIWV7z17sO5FYD6CLARgRv7WqL9+SlX/eJOEkW/HwEYmC6TxK6GQqhEdd0x2GkdLPCBpV5tIpETZjN3i4AvEOoecXQ4Weg45H4yPogGoQqehP/4IM8OJzfNvs3OgpnWafk= 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=Gjy5tC9H; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZRbqAa7l; 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="Gjy5tC9H"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZRbqAa7l" 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 632CCdCm1964880 for ; Thu, 2 Apr 2026 12:54:55 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= iM/iRe3Y9krYEM1ss3kFNB7NzrAjyV60b2tj+n+iAZU=; b=Gjy5tC9HSrvA4MBe ft7EyL8vxe85ZjKbVY2cC7FBFLVBxAs/u8oR3EWpZ4Jtb562VrkBB+ACGPv/hCkW C+5kNFh1NBq2jZN/KQr+OHx2qgxwPzRFwxHGkMLyFJi7WvlNtdtH+XsWbLD1GVt9 Re8qJc1OvAlsHGWWAamMs6vmnFlkhcOVygQiQk5/cybCxoojB0j0mqRKPAkaFpbk JUGNaQXxAcF3/y0qMFzWiEZhuEoZSYuxr8gwVADixo9XVMoAjDUt0eJ7ElJBuyZu CwL5GF3JKk8T6dVDAgLwJhgUX/aZLyp8vuS9WCJFk3oFsUcoJ9NqqozMU4sXxGU3 0079mA== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d9b9h38gt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 12:54:55 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-5094ba09affso22181931cf.2 for ; Thu, 02 Apr 2026 05:54:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775134494; x=1775739294; 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=iM/iRe3Y9krYEM1ss3kFNB7NzrAjyV60b2tj+n+iAZU=; b=ZRbqAa7lUEpayD57Igl2dXFVIE43Ti/FaSALIbp+u5OipNMC8HAXIgp8mp5LH+xV2u 6sz/6Ski6Fi9zz3MtuVI1LUZoGoXIMKFEmmIm9G5rniYtGyVx2L8jbNgGXQ6DEKd6c3o 6sSM4LecdySn9k8VGVK4KymdjVwYzrJ/5/5rk8nj68ItqdJEFSw012VApFqwx6Le05Cl 0EWsKr1owWQ0MeCRBNsBGh0QbTkdugRdUgpXtRCHbU0cM1ZFZjhDj9FPy0qaFcvzEIQ6 MSDfgQCqGbvkbyUne1hLM47ThKmCRAINpaPi0GRem1cIjIT5kHS1WbtiTCFNHllw9r8i iXxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775134494; x=1775739294; 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=iM/iRe3Y9krYEM1ss3kFNB7NzrAjyV60b2tj+n+iAZU=; b=jYgnhq6tcZiuda4to2VXl3NAPiHfrSmbFXPh6J9Zdp7ZvA2y+VKwhsbUgr0q+dfV+v Tm1AYrd+mvntAC/RXUDLq2PCWosWgXfSPWf/LBoS6Ewmw26GciS7S9I7gnsSA17QCwXh epjmwPf50CoWKkmcTMswJCyR5Bm4a7Vg4/tk2dBxl9dXLAJt4S3IkaQOMI4Gc6bNOgXh Xh7gCwbB08yWlnBxkmyUCPRQVB6GFhvZRKgFLbMNZTlcExuuGteanRAVzVyJQlAqF9ZA PKXX4QuTsRBq6jfk85fuMWww/hdZahpxD0glrToUEfE8Zn20FllKS5IWSZ1/BwojAIvi UqMg== X-Forwarded-Encrypted: i=1; AJvYcCXFt3lk9D1gt970usw14okkv6n+7CWfaYLj1wCF6owV+azD1e0DVeWdmZAWQJ/F0azFI0Itu8vMIvsoobs=@vger.kernel.org X-Gm-Message-State: AOJu0Yzf3c4kcE0iB++9Z8HPQc7n7BihqU/HJNAT6Ww52f0YDzOW5D8E FRXWGGGmbkVCinBiu5T4rmg6fneJPo+bu1rCkPWp7+1nq0joMiKcNfDqXB29k85x3+QYNJujPlX n9J+zNMlIZhl/b4u+LfLjIIZT5GWNUH1WJtajFV+W4keGsmczg6e3YacTWXQPRTFwx1E= X-Gm-Gg: ATEYQzzB1Xk0ZyY0jt2OewAdfP0E+/mEb20Ii2g2WW6k/14jf9sa/q4dtfPquXoo4zr qbhXTb7BphYnGPcdutbHBm5E20Hh1+IBK0qZ5gJrKJ/tXWiILQxNC4eHZqG0aTaaZUj05oW6T98 GuhJ+l9RI0HoCBw2JNwRBzLGhI/c2V0J4oj3+LSwCLP9WTQ13wZqq2+VnJzN0Y3WaK0Tyy1k1Of MZG0Dfh5ND1lifbuvYwonVEVfv5wRNEmp6mxdzPSFFI90eOoxwZZWNb4HwCN2N5BuPAHqrTNZ/p OPBSB/6Lt9VXr3Jm7SM9h5dRjzUmVvDA07sVbm27n30DEn79ag/aAx5SZFqlHpcd0iYm2hOQFIM h7hrWfusgklq6YMVnU1FRW6th1n9z0rCzxBKLqboGKSFk/IgJjB36 X-Received: by 2002:a05:622a:8c4:b0:509:61:b22 with SMTP id d75a77b69052e-50d3bdfce67mr102813181cf.57.1775134494000; Thu, 02 Apr 2026 05:54:54 -0700 (PDT) X-Received: by 2002:a05:622a:8c4:b0:509:61:b22 with SMTP id d75a77b69052e-50d3bdfce67mr102812851cf.57.1775134493581; Thu, 02 Apr 2026 05:54:53 -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.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 05:54:52 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 02 Apr 2026 14:54:29 +0200 Subject: [PATCH v2 4/4] platform/x86: x86-android-tablets: enable fwnode matching of GPIO chips 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-4-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=5641; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=l4lnny3dGBJZoHOBatk5qgjCf18AZd9xMDIK67fuBWk=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpzmcSDJFevJiDAeVlynB8mr3GoSDutTpLPSkiz e/4bjE89PSJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCac5nEgAKCRAFnS7L/zaE w1vnD/9rZfMZ2QuxGkRgddz00Bqvn0zAJcdUasDuGcCPuP4CeV/PY+00l1VWHuhkhdujGGkeX7/ +9v1S5Htf3bM+YuVWITrs0Gv6er0+m6fv4RwUkPUz1NWTyrh1TChJ+abvmEfhp0cTeOBbcpIrBY gI8DJ8d+MGIl0aRWaj2kJm5alDN8NS0IbtXLabnZh52KHuqB0mQLstLgHsw13mnDtQdXoZRcMH2 lnWGI2vnj/IN3HNTJszaoznfzEkzk8e9bVTejROmslYLUUSUgm2HNhJ33OaGRiDiSMJEQd36qHv rG8suBE6nX/CQWMitTpEP7X2sR/COz+9iZwg+yT1Trq4+t2TfsBTUTSkMUiF39UcVQPIgaSQCV+ 2rSOasJKGEx7NbUi6f9XoD/Ut/beI549qYEWrxi1+UHLbsgnqqUS8J15f9NC2U05ynruz0xtTPo kQRhdnqesm4ftCZcFzn8666KmOaI22QQ5S1hgRyoG3vcd6qTR4ryjO78K5ysvOzlJNt+FTfWatS XenNDc846EDPJPHgFgiAC9Tv5ctleTUIHarEgimgatG6M88BX1qRv5YdiIAl5FTvrunIo9ST2wD 8jjbTxwHNqdYVzz2OUecmpL2OPeE4gXggVc4R3uosGasezJtGDFh6jjnuFGPifvcYwAA/G6R0nT 4acWO63D4oXa/Gg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=TqLrRTXh c=1 sm=1 tr=0 ts=69ce671f cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==: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=EUspDBNiAAAA:8 a=6VCG6zWJw881NgsJBYMA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-ORIG-GUID: 30yvp3D2G1pW8TYklvyHEifAsgco5H4A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDExNSBTYWx0ZWRfX3GCgNG1ljosD dlKA3r8girpAsq/rLlr8WrBvMsYMxwgVSt18tjHPw5lLjV1SlCwno0qnVYHR4um2Y5n5B2R2yjc zAJd0RD11eGxSNIprjQEBs6BquRBOnK3gpyXMEInHLjqfnviqLK2jd+40qPslV08cBn5TrAUI4C +T2CZj8PNnDosGwAbSGPBr4iDYRVK9gZ9sABGLBBen6IRfhAs/GdFrv1+LWYMUguFOOHLR37hUE /+PpJDkCvZ4YVq4zmGAbNZcbXs0hsOrriN2+kVExIx/Nly53tnJiqWGUHX3KQkfdt/Zr8EqLkto jhOnxDWdaSumaAvYa0+WfDF6LRc3Bxb2ZD1+EA1iiR6teOpjoqV06uTcBiyC2hbdzjTfuqtgVwY FW/6K+efzyo6tIhYAJdg5Yn/MC47x1pc7xwa3HwCrKa9M0Jj45/OP7tvQFuCbJmRi9mqCtnpOOp Yd5h4OB/MTfl6t0vAhg== X-Proofpoint-GUID: 30yvp3D2G1pW8TYklvyHEifAsgco5H4A 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 impostorscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020115 In order to allow GPIOLIB to match cherryview and baytrail GPIO controllers by their firmware nodes instead of their names, we need to attach the - currently "dangling" - existing software nodes to their target devices dynamically. We deal with devices described in ACPI so set up a bus notifier waiting for the ADD events. We know the name of the device we're waiting for so match against it and - on match - assign the appropriate software node as the secondary firmware node of the underlying ACPI node. In case the event was emitted earlier than this driver's probe: also make sure the device was not added before. Scheduling fine-grained devres actions allows for proper teardown and unsetting of the secondary firmware nodes. Signed-off-by: Bartosz Golaszewski --- drivers/platform/x86/x86-android-tablets/core.c | 127 ++++++++++++++++++++= +++- 1 file changed, 124 insertions(+), 3 deletions(-) diff --git a/drivers/platform/x86/x86-android-tablets/core.c b/drivers/plat= form/x86/x86-android-tablets/core.c index 021009e9085bec3db9c4daa1f6235600210a6099..9e6e8f272dfe16cda421b569802= 045c3d94fc0ab 100644 --- a/drivers/platform/x86/x86-android-tablets/core.c +++ b/drivers/platform/x86/x86-android-tablets/core.c @@ -13,10 +13,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include #include @@ -360,6 +362,124 @@ static const struct software_node *cherryview_gpiochi= p_node_group[] =3D { NULL }; =20 +struct auto_secondary_data { + struct notifier_block nb; + struct device *parent; +}; + +static void auto_secondary_unset(void *data) +{ + struct fwnode_handle *fwnode =3D data; + + fwnode->secondary =3D NULL; +} + +static int acpi_set_secondary_fwnode(struct device *parent, struct device = *dev, + const struct software_node *const swnode) +{ + struct acpi_device *device =3D to_acpi_device(dev); + struct fwnode_handle *fwnode; + int ret; + + fwnode =3D software_node_fwnode(swnode); + if (WARN_ON(!fwnode)) + return -ENOENT; + + fwnode->secondary =3D ERR_PTR(-ENODEV); + device->fwnode.secondary =3D fwnode; + + ret =3D devm_add_action_or_reset(parent, auto_secondary_unset, &device->f= wnode); + if (ret) + dev_err(parent, "Failed to schedule the unset action for secondary fwnod= e\n"); + + return ret; +} + +static int acpi_auto_secondary_notifier(struct notifier_block *nb, + unsigned long action, void *data) +{ + struct auto_secondary_data *auto_sec =3D container_of(nb, struct auto_sec= ondary_data, nb); + const struct software_node *const *swnode; + struct device *dev =3D data; + int ret; + + switch (action) { + case BUS_NOTIFY_ADD_DEVICE: + for (swnode =3D gpiochip_node_group; *swnode; swnode++) { + if (strcmp((*swnode)->name, dev_name(dev)) =3D=3D 0) { + ret =3D acpi_set_secondary_fwnode(auto_sec->parent, dev, *swnode); + return ret ? NOTIFY_BAD : NOTIFY_OK; + } + } + break; + default: + break; + } + + return NOTIFY_DONE; +} + +static void auto_secondary_unregister_node_group(void *data) +{ + const struct software_node **nodes =3D data; + + software_node_unregister_node_group(nodes); +} + +static void auto_secondary_unregister_notifier(void *data) +{ + struct notifier_block *nb =3D data; + + bus_unregister_notifier(&acpi_bus_type, nb); +} + +static int auto_secondary_fwnode_init(struct device *parent) +{ + const struct software_node *const *swnode; + struct auto_secondary_data *data; + int ret; + + ret =3D software_node_register_node_group(gpiochip_node_group); + if (ret) + return ret; + + ret =3D devm_add_action_or_reset(parent, + auto_secondary_unregister_node_group, + gpiochip_node_group); + if (ret) + return ret; + + data =3D devm_kzalloc(parent, sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + data->nb.notifier_call =3D acpi_auto_secondary_notifier; + data->parent =3D parent; + + ret =3D bus_register_notifier(&acpi_bus_type, &data->nb); + if (ret) + return ret; + + ret =3D devm_add_action_or_reset(parent, + auto_secondary_unregister_notifier, + &data->nb); + if (ret) + return ret; + + /* Device may have been already added. */ + for (swnode =3D gpiochip_node_group; *swnode; swnode++) { + struct device *dev __free(put_device) =3D + bus_find_device_by_name(&acpi_bus_type, NULL, (*swnode)->name); + if (dev) { + ret =3D acpi_set_secondary_fwnode(parent, dev, *swnode); + if (ret) + return ret; + } + } + + return 0; +} + static void x86_android_tablet_remove(struct platform_device *pdev) { int i; @@ -391,7 +511,6 @@ static void x86_android_tablet_remove(struct platform_d= evice *pdev) =20 software_node_unregister_node_group(gpio_button_swnodes); software_node_unregister_node_group(swnode_group); - software_node_unregister_node_group(gpiochip_node_group); } =20 static __init int x86_android_tablet_probe(struct platform_device *pdev) @@ -427,9 +546,11 @@ static __init int x86_android_tablet_probe(struct plat= form_device *pdev) break; } =20 - ret =3D software_node_register_node_group(gpiochip_node_group); - if (ret) + ret =3D auto_secondary_fwnode_init(&pdev->dev); + if (ret) { + x86_android_tablet_remove(pdev); return ret; + } =20 ret =3D software_node_register_node_group(dev_info->swnode_group); if (ret) { --=20 2.47.3