From nobody Wed Jun 17 06:28:34 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 962BF3B6348 for ; Mon, 27 Apr 2026 12:19:25 +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=1777292367; cv=none; b=TArPfBVeBMxp6EXnbDjIbCCK/umfUn7BLiCHN9lxSrPSOQI8CB/JCfqNV05IEJ0MurVIWE9/kNWE96bn0GKo8ofceE/UsYQUqS7AOegg8SqiCXF9uTIaJEz3VEvxXQ4ESGQT/WadWiyOcpNDjLAMbtnAGXfVbxj5TI/0s0cXMHE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777292367; c=relaxed/simple; bh=mlZurhMjnNadP6KDAy67g1xVZeEONxV++y8bOiCYR0E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=frCmZWcbI0cVc+F5hQRuAxSxMyoZWF8UYRBvo98WdonlFxZpUT+038/tcRCnF4henFd4AUf9lb4AnYh0Ibnwr50OTlA6pQ1GUg6r19WM+RvcCLcHX6VFqLBtDC+Gz9jatIExVchkyfVw5Oh2a0MkiLxPadNvmbjKAPhHORshjRI= 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=MKDI1OgG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=VIWO0emL; 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="MKDI1OgG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="VIWO0emL" 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 63R9OeJf3825258 for ; Mon, 27 Apr 2026 12:19:25 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=MKDI1OgGUxhoAZEp xSiGU0T008x3CA2vC/fGgdqJdek2m+zzksBk0Z6cjY9fr7quR3rQyFH2tLde3iZ8 kZi8Ior9ulqUv2EPTJVP1HZyVyRHzfMpKgJSP+IxEOW6Juhd35q6Z6rEs+oGwh1L 7v3B6Vx7c9M3LGQrvYrmEpyS/BGHhtBFQI2LsX6hXFl9QpG8pr4W0dFRdPa4TKhR zMhfrWJNQTigREp0gQDtIEhfxw54ge8YuFhzuxHs0/HZ6GXP828/HkTsfxCv6Zl2 bLOfHfww456+ozWcAYiuIIhGnHIneRFBe+516g98ndMclOirtg4MygwHnCM5Xk5C W8tEcg== Received: from mail-vk1-f198.google.com (mail-vk1-f198.google.com [209.85.221.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt5550nbg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 12:19:24 +0000 (GMT) Received: by mail-vk1-f198.google.com with SMTP id 71dfb90a1353d-56f52dcdc90so6744679e0c.2 for ; Mon, 27 Apr 2026 05:19:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777292364; x=1777897164; 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=VIWO0emLDJGPbE8MQuQiAgp+praohetvCsl6E/KLlvzIhhI/fbZwqcYuvmXG+0CPse wjY/LR99/XnjHDI1SbtDz9haTxsEQrQrvy87AvdNpbfDv1VlQFupV4OFlC6jvuf8Gf1X mYXkRyG/1l+a8pH5ueoGaty66r1mIWAOxE/Hh4/hvXPVUCQ6Wv7KL58VuKkrHur28nY1 nvuiYOO1fXB4TTO8se/NCRB1yLLT0iXO0JQkCKIwhBW2TOexoUkivapzxfQ22rMQHm+c 0jrMTsskN8F8XbhiWZvvX3W1JujuVGnoSr00RQXZ5D/gVrBDrRIFVo4OUdC3/7Zxr5tM 9/Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777292364; x=1777897164; 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=M3V4QPcLI4S5LBs7I9tNi6pF8A7EuwLBFUiZWjHB8PCh2sfmaRj9BgXpBvDRk/ieIv T1gHLIVgDwgo4pLesZgpZcmyIxIcGi0vyXsU9PPQHh4NSA+GZC42Xz3NSq56md4GF4Al 5SXQCLA7zERXOy85uLjiuHAEBAVBa17vfFdZB2oc2eUijRe0ZeQWzn1DThaOI49dD3zW UfLuyVNza7C4bvd8e0k2si7yN6V1WqIVXrJH7CEhELklHhMT2Outfc5GXtsBPhMKQ3yr gHA/9GDqYbda/RpG+GSr2GVSk4xT3ylPmKs8if3Bs65Fn/hpTJzSLyeIhtMtVfudzsSu F9pA== X-Forwarded-Encrypted: i=1; AFNElJ/TfTtE+KizbzyFVWLBUNmLKYBKzcxOtGm58uSGVwNX1SqhAuAiyhohzvOcR6BKzpBh0NcQG4hM4VelAsw=@vger.kernel.org X-Gm-Message-State: AOJu0YyDWjJKHX+O5EBivtldcdUl1e+sq2P9kiiV3wH1NF+dGHLUgHqC 1g5TH362YZFkTiKzco1jmw1a3dhYoMMOnyDOau0sEx9IvIk9KWb0/B32qtnYudLDg2746hetQ3R Y59cLO9CGfzY+84D9ZDZ9IceaJCPCgxhBzZtLYxhacdtgUPIw7A2lMDZFNhANYv8UL3U= X-Gm-Gg: AeBDieuUMbDIP2dE9vYLAlkw6wjkBUnKXvTnZcyodssKkiBvzEBWhnOfUQHgnqXeRmo XK+6xcU5xFMzxWMFcjEO+i1Kzn3Au0WwXfpXOIhc3cXdcm2UsRbbFZnj3MUQTtig5uxC+TBbqnN wsyx/SiTX+eOS5Es9giyGmadbiWgCkfkuR4xrN4LpcXiK8O/rpbmg9E7rdL/XqnlPiXCBBC6M34 IxwYdEp7jJr1bV1xqg4w3TDi834tC861FjIUAy+EwvGnCKiYiwt+9tcYvouPiJU4tnd+EPbO3yx RAG+bsXd7qvUEtVS4HG73hnnkldGCVMvDBMy2hC2jr4lTnaUFiVvzD71EtN5a7WYw0Ys4VKP0Xy 4AOBHIB1naT9KoI2cff79ZpDvZE2pdHulYvYfvePD7H6lKRH5AfpxtgOY7s1qCQ== X-Received: by 2002:a05:6122:2981:b0:56c:d623:896e with SMTP id 71dfb90a1353d-56fa59fea24mr19124240e0c.14.1777292363926; Mon, 27 Apr 2026 05:19:23 -0700 (PDT) X-Received: by 2002:a05:6122:2981:b0:56c:d623:896e with SMTP id 71dfb90a1353d-56fa59fea24mr19124209e0c.14.1777292363488; Mon, 27 Apr 2026 05:19:23 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:83be:e944:7b0e:ef3d]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4891bb3d121sm882844295e9.14.2026.04.27.05.19.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 05:19:22 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 27 Apr 2026 14:19:10 +0200 Subject: [PATCH v3 1/2] 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: <20260427-baytrail-real-swnode-v3-1-0003e4c1708c@oss.qualcomm.com> References: <20260427-baytrail-real-swnode-v3-0-0003e4c1708c@oss.qualcomm.com> In-Reply-To: <20260427-baytrail-real-swnode-v3-0-0003e4c1708c@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/NoTDAcsmYgBp71REE5uD0uAH/n0mbsFwcp0KOqvzDrjC45xqX GA3q9K4sfiJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCae9URAAKCRAFnS7L/zaE w0PVD/sFBO6hJ/tLl9BKh34iHj3Ty4V20O0AWUgokfdr54NyJLgKDSZqpE2DSA7bRQNh+aOWrzu +vHW61J7VJoJM9tsiwWr99abQmlI1JSLu9RKbLSPufTbMfoA/Ytyd5UuVy2EIlQvI2XcstgFEkO 3i1BkerwcHCFRzn53lk4A+J8nxP/EfYLnhrWzg+p1rHsPdIiFZT0ND96dI9b1X8K+IUMjFJdd6b 9iSe0MRFmfVe3cnwKFxGq8yG7qOUcULpuREM99N4WouQrd4U9cYnqfdUGJ70++STefidq3dQ712 3AeTalJCmeEC+Cpnz21bQr/WFxVN+m0bYItvlja6O6xvWLDrM5mUCqZw6JTeAEC1gGC5JxXohfT ouYTL1zD0ABj0MoL8zmDsey5mGLvv8Wc6Mu5gNJMEK5bYPf2YXyCSxctoIyPNcLizuwFnEv+0Zs P/ycgU8toyvLdzcGxdj4sCILKy4rRKnzfXsEkQg+3pcmkMiB1ST9mCU1BiFbtqJJL7mTIfIH9nG ebnEG1uPV4futj0X5KI18d/bLT9RdE9OmahE26Nmn03Ztg9VTOd+1Uj9G080hVfp34ThOvgiDIO MXMRUANI4grOHLrB17lkM3gL8Kyq2ldPjBteT0s6dPiQGSJNfPHY3q/cvp6JnkRkoOeCw+7rV68 /YhwObupr0jITPg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: ebW3rOgrFJfVHyxFiGTI2pEN8bwPUG3T X-Authority-Analysis: v=2.4 cv=CJEamxrD c=1 sm=1 tr=0 ts=69ef544c cx=c_pps a=1Os3MKEOqt8YzSjcPV0cFA==: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=hhpmQAJR8DioWGSBphRh:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDEzMCBTYWx0ZWRfX24jufLBpy26E CyYtWO1udVzFUIcueVAbWVqeYB0BDqPxsaASMOfHYHBfCZcx8ucA92A+KA7A8Vy9yxRX3D9W3Ny h9Yo0ECCSS4s5KhrNwVwdI6Ve/wibXa81cITfL6Fy0RKD1xwuGSXwP2m3x+FUxHM37L494fkyz9 Gx3+9VSuGQz0YX5vTA+TeMfxbYpS8PTEKvT+2QJa7jT0xqRDa3YFUdem5jitCU/hpYNXe7f9t1C eKKb/v8WHzQyDUvSzFIrtfKAjQN/7PkJ9oouW/q+x4W4hgDivqy3Qsnu1OkjXie4a+4HEMEbOAH 1+TN+05BBcsx+bmz5D1PHWf1rAaynPhSEsPwteqyZaBxMricyeDZawn7qo97FB2013IeXc8zISP F956LlP+Xuro8ZYRf7L+FPec/fq0X0pwGcSoMjbYi0SXE4J2MZkZBPDPpWW3T/12nBrcKfzEFpp cfK9amoKjgSiMhyNRLA== X-Proofpoint-ORIG-GUID: ebW3rOgrFJfVHyxFiGTI2pEN8bwPUG3T 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-27_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270130 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 Wed Jun 17 06:28:34 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 E76BC3ACEF4 for ; Mon, 27 Apr 2026 12:19:27 +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=1777292369; cv=none; b=SDMcu3Jntq8kZrMKmnRLLmORYuX1dRWoIbv//yFOAfeiBCVPDVflGH3kzL9jzmfMrImzhV4Ac4tyEZcI+8SED3HamklElCFLIcRktnAXPwalWZ5KXL/Do9oAqGnCY1Fh6oy2hKdkcNVv+mblvDfmCJUh8hYcBf+ESu+5kOYoWhw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777292369; c=relaxed/simple; bh=l4lnny3dGBJZoHOBatk5qgjCf18AZd9xMDIK67fuBWk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nKtshsU4p1ZAiM1aE5sLCk2sUjHUI60NS2FrfJ9meHfa8Cp/zLNDwSiQICJJWjCGKbWHA0/ExWUYNUna5AqemVaYWfoqLqT5RiI7+X/J0FrGYrIBp8NUFbNoe3qHiq+8ZUOTxBRQMf46B/PXp0u73Sc/qYIufJWehcqUTq0Ur0Y= 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=WsivgD1E; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=GWn+oxnF; 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="WsivgD1E"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="GWn+oxnF" 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 63R9OcxT3825222 for ; Mon, 27 Apr 2026 12:19:27 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=WsivgD1Ea/rClQoc gvrzbgIgWeTvUJ70PJEPQQ3Lj9f08eUW9ZybG6HWQUahQ5hRMfSBC7ZHnOVHQZ3u t26r9B0hry12hpfYcqvnuqHoB09roK6skdvuZabCcHi0+bnozcIezMNB9Umy8DWt z5bv1N2gHl+VweZgqEgtvOtBmdS0CJL8Uvz2WjLa6PbLjUFaX5rq8Lz8kZ8Yo9j4 TlEkFP4YuGEZhvl7GQ/y/utypQNp5yQ+KYqMJGF4LfNxladVTDB3pKpuAMb/57MU 2oQQ6fIKYqkrdl38oq+Eo5GfxJyhrzP0nQpVqIF8VW05IXsbYRK6T8ohgUDYcdTz yUbCDw== Received: from mail-vk1-f197.google.com (mail-vk1-f197.google.com [209.85.221.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt5550nbp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 12:19:27 +0000 (GMT) Received: by mail-vk1-f197.google.com with SMTP id 71dfb90a1353d-56fab6d9242so18250542e0c.0 for ; Mon, 27 Apr 2026 05:19:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777292366; x=1777897166; 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=GWn+oxnFNjRuxb4UVUZHiIWYAv4/Y5/SYp3mvipG12jWnIRWOMg4sI7zja3hipz9PD gHjIPvM3VFBvL/0MFAygY2wRWg3AF+8bZy6CZNr+s+A/t+ADrXheV//cd1gpTw2oBHvV +TzZH7gd/G4Qkg2qz/TSv6lgof6a+GG7E5350hJ4QUxuA4XAUgtntW2cCHvjlH4CZhMU 536KoOu/gnkxzedDOzkhH0GINbqSG+SuuXGLgxfgphd4ZqaVEPbxYmyPkux4r7t6V62+ xci8igCCQ32dcMgORGw87eFFKanrWVdS0q1dENH4snpqjnsKRJm28MUUYZRTtZsoPvSS iYig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777292366; x=1777897166; 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=GWFEZgfRstV+fuxXwLacTu8GzjgG6PiNaZb4ZBbkp7AFYoeabaeUtZwTtQw/lCDZRj rgwyAwWVCCp1JYOcWJ4vVICt08qylkYHaHQcaGz2w+Zem8wKixHj0DscDlcKiGW8b1Yb 7ThkSXhDHwl7WqaJRMj3M/wDZTrq2DKfJyrHj2UkPejGp+2yqQE67lPfEnLXLTm5zF2x MqFiGCV8u1+ZfoB8Qd+fTGscGWHew5Ym7tr3PzH+B5SXnCHUWAtV2pkjikVSHxuTpVbt VO4SLBfhoe6euqTRtaEqwknPeUFCQIGNzj3X02+9l6nKNxb8RF0NEDc6JSIH9mIFw55Y l6eg== X-Forwarded-Encrypted: i=1; AFNElJ8Jhkvz6JJkLr+c5w0ZmzsEW4YewG/YwoT7Wd/ehHIIEJ4/pq84RmikHK4LxBJxuWvIWeNPVmKZUQH0hbE=@vger.kernel.org X-Gm-Message-State: AOJu0Yz7i98mMAUyIanODrUuXqvilzvWZ5u4dr4+8GGORENdiDTMvb0p vb8kZHoK/4ItBxol1be/CnrNPonkp3KNHdb1U7q5QFZYgWAuvGriRjZFk2yuH0GSkm0sSpVzD0t 9ysWmlta7N94amwiSHSR5mvXhFL6eKVQzgSoPW/KTxp3+8N9nlEYBeRbaQZzh/iejYOQ= X-Gm-Gg: AeBDiesML08/MygR8QNYENKFuk752GtxhcACuPgKDYZEianrYII5BVnHRr6xU5pGwrA f2NvKfzoFqNw/YlUBQh8T7GC88SqP1n59XUW2H9BhrY3mL0mwVtXBPESLDa5Gq6WF5hCOy7j5M3 hLWe8iyWQplupzKDZ3tOwuB9g1stC05V2RGkzBZfflipUU0UxsNMqHMTS2mFGkSjZ23Yc8jf+rK BVV2rrW30jViKYXGjw6nEc55fVg1S7fnTZupm7Daj1JKCFAx22h3qO6gGIt//DROYLwclw3gkYG k0wb2kSk+tL7Ia6aPLw7KKhukSz/oO9rIAicIP/sp8HQ2+h3qIEkomUANYmyQS/UH5jJ+Pg9zG+ 01gFxE3Bv1VO2EtQHiTVlwEdKggfNkK/ks/3pZ5nsPRrfAf00Ip6IF/btjrGsnQ== X-Received: by 2002:a05:6122:45a0:b0:56e:f1d2:c3ca with SMTP id 71dfb90a1353d-56fa587e117mr23130389e0c.2.1777292366151; Mon, 27 Apr 2026 05:19:26 -0700 (PDT) X-Received: by 2002:a05:6122:45a0:b0:56e:f1d2:c3ca with SMTP id 71dfb90a1353d-56fa587e117mr23130321e0c.2.1777292365598; Mon, 27 Apr 2026 05:19:25 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:83be:e944:7b0e:ef3d]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4891bb3d121sm882844295e9.14.2026.04.27.05.19.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 05:19:24 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 27 Apr 2026 14:19:11 +0200 Subject: [PATCH v3 2/2] 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: <20260427-baytrail-real-swnode-v3-2-0003e4c1708c@oss.qualcomm.com> References: <20260427-baytrail-real-swnode-v3-0-0003e4c1708c@oss.qualcomm.com> In-Reply-To: <20260427-baytrail-real-swnode-v3-0-0003e4c1708c@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/NoTDAcsmYgBp71RFQPCa08eCDZLrsx3NrxOmhQb+WV6JL+Q9e /PvrPWI3IyJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCae9URQAKCRAFnS7L/zaE w6G0D/9vQO3vVjL4oGvGOqANm4yOADnbbRmTrXxnt0HaNS2ePiUIHzIP+11cmq1rxlNgzdLs3P5 uEf9NFzJPpQCCuy+/jjF47XrvZ/sw4IlCgyhPuCmTwcDttVtA/CqtDLM97EKyLmMG/Nd6OBoLHz DsGdBaIq7JEJwUDQ0aSVV28rbS1qj7hhJuSCkBuF5QiH5yY/dB5MrtuQnzVZJ61h58hObXtejX6 iDjtPZb/cy6KPKH//q/KwhdSLuB8A7m90bECsQgslk2nLMRPWdSUTo+W0GfWK8O3cGk7OTLXm9Y HXz0uZqLHR6hltlMU2O7Qnh0zUf8nywg7dS3M6plhh0jvIUXaaVbRuS3V0RpopsLFcyE5gYXGV0 jDwmkFeAU2GCMrC+4JmJKiEYbz2Wp/TGTxmuQ7tYeS3Nk/uNjkRolZ9570M+ZmX6AbHx0uUxo9D 2UWEY417Io21ladfzxNEDWMsYDqGeAjaKSC/O+dYsgiQfe5T90qauuGl28N+HNP6qCigk/F/Ie9 GoJNwVuc5ryz7XvJP4rLoBeVAj32TI2T/DqJgO5NfLiTPIcU4tzul5Ujpny1OqszYkenqo0HBOv 5C1tdqMDtVnAd8xVLQfDh9Kdrj9cz1Bsry0XmD4AKvnqWTz7k63v5DXm2vtEIZc09m8C7Biggdq lO0Hm3DvTKIboRg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: sHBtH1x8KKInyhan8ym71N0TOQJSHpvV X-Authority-Analysis: v=2.4 cv=CJEamxrD c=1 sm=1 tr=0 ts=69ef544f cx=c_pps a=JIY1xp/sjQ9K5JH4t62bdg==: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=6VCG6zWJw881NgsJBYMA:9 a=QEXdDO2ut3YA:10 a=tNoRWFLymzeba-QzToBc:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDEzMCBTYWx0ZWRfXwkfnXLf7Npe7 HuZvmwOPHbM3+/DFz/6W+uH4LlyDEU0dlTwm0aXxJkM1XqIcnVV4SUQHZa6V5C5t/2WoSzYd9ug MEwwZ+BmqhIYWyvfVeO8WNfwg1ND8wKt2p0NVPYtgtuwDHUm/OywkxFrxMNumRPFeDTdcv3zgMB IW1W305Es0Zy3faiYj8adDqVLW11KvJirGpRbJ9Ck3nxquLj0zILr6l8hz+QuAo3ActmrYGhL9L GQdCwYOvn9fy/wpMAE3j1l6o1R4+hmEzb0XFLg0jY37dFQ4cHCfiIG5sKszFGs1asmM31lqVW0P +Ff/I8Tal+htjoADwHVQ9A2eOQd/WHV8LW9YE/PD/JFmIRLNjIQgBx5aZvfd/5nHcVbd/Jprj9O K1oXTfUYlAZP0ZvGAH6BSno48Kg5rsQZnP4ZOL9QxteBUHGE5BuL7LT5P2ABKkvLy1BtsqlqkxF /jfzMRDIOT7x14B4iwQ== X-Proofpoint-ORIG-GUID: sHBtH1x8KKInyhan8ym71N0TOQJSHpvV 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-27_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270130 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