From nobody Fri Jun 12 03:26:43 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 CEFD23A6B92 for ; Mon, 4 May 2026 10:59:16 +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=1777892358; cv=none; b=HNFjViMqOcYMVRpcskNfilgUXFFGfhQLKO09YeUMZeplbmTpnH17t8Y1oR9i7CKKQxXUac8rX2g1F362iAD4UZ0SOoSI0aDUTmax4V5qhfaAiq1ejnkOHH9pz/X9FrvkdIZ/lLjTKqpiCZh5/qnNIh7F30hyXREuxjzgKHOD1ec= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777892358; c=relaxed/simple; bh=q7sjodupZIHIc9I4GAe1Aft0vPiKVykD8x7gkFb6F2Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=i7O9AtuVFOk5NtcNtRjszSWl27Pg3hzLXbZ2Tv9XnAax8falfWFMXvr7jvpKTQviV71c0AUlwi+HPNvuAxr6SGfycqPmOKqUnzPF2UfGlldSJoXVQYfGpD6L3IRNp4QW0fxDMwN1rjF26EVJA5aSZUZ0H3/MobOssKVrFtdr0kE= 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=ZjxCQTHc; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XtipSadE; 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="ZjxCQTHc"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XtipSadE" 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 6448fM8C3824345 for ; Mon, 4 May 2026 10:59:16 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= V425kPrDLA0uTBm3PMUPbEBK0sw5EqIjTclbLbItzbg=; b=ZjxCQTHcBUEOBrYA FJJ9fqNxRE82nwc8i0k9fbQGpfAD/lrvdXjoko2DY+CCkoi98wqATVfX1SmlVOl1 s4XuYSY1NCsw+qJO5CUvwQ5NvHGM+qOPzNqFfbEeddztMxSwued8fy9LTRIAUwmW xZNlUqbehYp0aeLmEy4lY7tv+172JT95zW2EkWGjyt6Xz6jRmT5aFc73bCxckMej 3nCIbQjiD/KxHakXp3S/IN+uRH/ri5ANf1KAxcaDxLXJyAo/DpM7QmEEYfTbBKLp oQ9ONQ5xcGM/tEHvD3zZ0lwltL5bb1n6wpxca1vo9bzxhN4y+WqlyH0YLmGO51B9 MJRsHA== 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 4dw9g3ndbq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 04 May 2026 10:59:16 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50fae95c82cso146038121cf.2 for ; Mon, 04 May 2026 03:59:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777892355; x=1778497155; 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=V425kPrDLA0uTBm3PMUPbEBK0sw5EqIjTclbLbItzbg=; b=XtipSadEu38nsDkY+pUIOTL74IIq87YRboN4q/hFy+9N1cUToKTUDl1lHdXzB4G2gu NqfkOSWo90BPG33OVR7zUup9zy2vUCab33FxCbbiJW2lFyF7EF/WGU5d2/SgZt4bc+ca TUIxTSRsrT65VQcEfSIsswRLvZAJ8imyuoYS/dRJ5gpPK/uIS975L7iZCdr3gTRrV/lQ hhYBukOjW8K7W2loemwo8KGTeALJy6OY1ThRMXxhtJ9xyLkqcSoPZLlSm2fiFaWkgOxO hZ6SOx51XXGVdZ6mABT2IhoURRtCSInD5ZasnWRJFrm7JkfFsDqwTMPDAiVeRl/ZTqRX KFCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777892355; x=1778497155; 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=V425kPrDLA0uTBm3PMUPbEBK0sw5EqIjTclbLbItzbg=; b=rBMGDsHJdyKP8/eBzlA5bzJN25o1XsC3jTOsXMKx7pWC/qMpR/lJkXjICFT2fZjdct +sHdkoaUSGim07KERQAMu4ETRV1+BYVMI7wdWM3JLocPeloBzj2xkrDiUsHYTWghR4Y1 dZsqqkkEsZ26A7nW8jLLPz/MghkxsSGDjyVFuUqTKZf/NLnMA4DWtJMS3JI5xTaEl737 WfA5IlqarGq0MmZWV1HU4gYuJTz1PzGYt0R+ImlXXZ47cvoy6QD7/8hfz5brfnUR84Py kWJ9M/rW0wCCyIRL7Z8a1HgU1BV1KioM2oCXd6r4FWsFLlnvwKKRqvSVTZoMCFGrdhsI oBOA== X-Forwarded-Encrypted: i=1; AFNElJ8ImEQ7JGI3aQEZFv0IZvVDQfnk64g2fcNFK+EzoPFlanbwysdfuSckmuu7y6bgD48+d4NzMDUR8JkgYzc=@vger.kernel.org X-Gm-Message-State: AOJu0Yzuwsg6z1SBFUx3l11BPP/j1RGZZJ2zojQ0bh1kRAtfK4kfin8/ KYL0ZsbyKZdcYTCbvTptOxM8+0XWIleoiN2VuRyJaEWGgWfPDrvmRMLFdtpIoEYmyOseC7GqVoN 7FsmakejZuBo+jg5Kx3F3SpdNODICrHBhgSZXRmHfU0eXDMBk9qgu0TIlQ/uZrvGe7ck= X-Gm-Gg: AeBDieuBlTp7F32xIqCLM5anTq4xAVMUf8RYHBLMM/Gs5dTqQQxNRM7rIW3W2SIvX8Q t3W97p6jpLVwpkdmg8ZlvcqHXGANrmy+52dzd+tcaXhkOVzLdBOCxd7W8klUK/J7rJKfD3yEBrp 8UyPJRS5IuADHJzsxMfnSI64AIt0VQrEnrS6sW/KLNEPAmw0IWP9qIW1zxlI+zqu7selLHGTLVG eI8/K/cIZda1vKUt6Eb427QaHKW/rQqt1wAvOjOKo9DW5CKUoCoMfmi5yjgGQ9bToBoNyxQcTuv 7m8dWVxA63Re0bSIaNXO5RpSmfjPt7fO5NQRaFP6ijrJNTSTZdTPnrk7ADwP07HGRnZhpbxyr97 7VjCVjI4Gu9Xs61E/3EcQO5eY3hyby0FYuDSJLYKpWooqp8HDK3WinUsig/Hjdw== X-Received: by 2002:a05:622a:5599:b0:50e:578e:bb18 with SMTP id d75a77b69052e-5104bf932a3mr137503691cf.47.1777892355043; Mon, 04 May 2026 03:59:15 -0700 (PDT) X-Received: by 2002:a05:622a:5599:b0:50e:578e:bb18 with SMTP id d75a77b69052e-5104bf932a3mr137503191cf.47.1777892354636; Mon, 04 May 2026 03:59:14 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:56cb:50e1:b507:63d9]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8eb69698sm474728135e9.1.2026.05.04.03.59.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 May 2026 03:59:13 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 04 May 2026 12:58:56 +0200 Subject: [PATCH v5 1/2] ACPI: provide acpi_bus_find_device_by_name() 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: <20260504-baytrail-real-swnode-v5-1-c7878b69e383@oss.qualcomm.com> References: <20260504-baytrail-real-swnode-v5-0-c7878b69e383@oss.qualcomm.com> In-Reply-To: <20260504-baytrail-real-swnode-v5-0-c7878b69e383@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=2125; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=q7sjodupZIHIc9I4GAe1Aft0vPiKVykD8x7gkFb6F2Q=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBp+Hv7CwKT6GTyvhgBKnb08MJWUVi55iNZXlnWA syAHRv+R/GJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCafh7+wAKCRAFnS7L/zaE w4JdD/9rRj/nsK+IO4N7Dx2OjHXgHsOoWxSi5TTD9VX8rMmcyp5wsbYdkvryKud049nxCugw7zm ymBiUjJBGo7BTI2wtOAsRcioql+CenMka+QOcmeg7/YNfmqOSED/ktkygx7T3yEYeUqArzyjn8i eeO7xHo4ZA21xTpAvFr5Zq7LarrJAK8ZIxIy1AgmW0e6lgvoAhjvqc78E44iaEq7TqQBXNNGiTH yIlaSSIylSTTcTvgAvPFb3EL0M0AJOTn1aaYA3igRB4zkZT04rOnanqugtIfrD3tgBqcJdcrRiK Y3WSNC/bsSGRtjwUxhZD6CLrCgU7BCS151cjPu4w47k3mpmnw40ym7AtyUlCzo8RUu4AAx1/EYa 8nB+saNSaGKTB2agIt7mrPIJjc+uMVOJ7hPnsHtlu7HqQmoaeO8UvTt5YNLmXCX+5n5cY/7iBSO nV6njQYmP2se5A2or01+NMOsZcD84lfwIGYleERhNOA9JttVxhFfXvzArsy5OFAJaynPc9Uw9N6 jZ+eNzMr4EnPnVBHikygIzsTfVmPZg9sHjlTfnQ8btytXkIqebKeFm0L8stTAZBb8rAqwY1RMsb dmQ9xPB/u9s9TzuQfWgVZdl3uHuhWcIUfTSXYO082NZkxPUENGCUT0UQz7JweD9MCe6zTuThhN6 I2L0sqRAe6h3RpQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA0MDExNiBTYWx0ZWRfX/4tSb6yBflBE TPCftdUn2t7wd9YpjHQ7XF+N9z3tcIHyBkZYX62xJAYawXruq7PGhISZMIu3lARjFoBB8AwkGfH Zis33ZNZJUJYzn9Kl72U59Fdr0TdaVeFauYh4N9ZhlIsUCx6V2TrPc474iqDVowlihiRsCK6mDL 1N3Ir+DKKQaiGwpzuBa7mWmFntM83u7va14CF8RA1FU5Y0bVbnOEK8mfnXR0mxzGkbOi1+QdwqR ZRGslR4Ru2eJ+vCY6rZAbn+YNP3ZkQ0NYxmNp0eICedZpCUKgPQRdGaMpykn5dXbfssqBNMIpp+ oCsVoqRZOJClOGDmxlCabIs/cSj3L4OQc1ymQE4Bm57SKNYCvmd6bIEpw7K3uX0CTCppGr5YxYM nkDJTmVjCbxXcAVQxQfCm1HXaOAyTeOdXHZAHaKKa4c7LRPNHza6f79zxqzSrguQgYjjIFYyh6a HZpp6p95PTPGJmULnPA== X-Proofpoint-GUID: 5P0WTkZ8YR_6G9N1BQawdETZcD3waMh8 X-Authority-Analysis: v=2.4 cv=Ge4nWwXL c=1 sm=1 tr=0 ts=69f87c04 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=tVjv3dGkaYTl1EMwD-YA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: 5P0WTkZ8YR_6G9N1BQawdETZcD3waMh8 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-05-04_04,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 adultscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 suspectscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605040116 Provide a helper allowing to locate an ACPI device by its name. Signed-off-by: Bartosz Golaszewski Acked-by: Rafael J. Wysocki (Intel) Reviewed-by: Andy Shevchenko --- drivers/acpi/bus.c | 15 +++++++++++++++ include/linux/acpi.h | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 2ec095e2009e40b0645f654fb051429e5679dc7c..357b39db345d596314e8956d778= 9ef0cc51ad1c1 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -1181,6 +1181,21 @@ int acpi_bus_for_each_dev(int (*fn)(struct device *,= void *), void *data) } EXPORT_SYMBOL_GPL(acpi_bus_for_each_dev); =20 +/** + * acpi_bus_find_device_by_name() - Locate an ACPI device by its name + * @name: Name of the device to match + * + * The caller is responsible for calling put_device() on the returned obje= ct. + * + * Returns: + * New reference to the matched device or NULL if the device can't be foun= d. + */ +struct device *acpi_bus_find_device_by_name(const char *name) +{ + return bus_find_device_by_name(&acpi_bus_type, NULL, name); +} +EXPORT_SYMBOL_GPL(acpi_bus_find_device_by_name); + struct acpi_dev_walk_context { int (*fn)(struct acpi_device *, void *); void *data; diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 67effb91fa98373d7bf19be5ae3d8baa9328d6e1..10d6c6c11bdffcad14100601e10= 4520366dfc30b 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -798,6 +798,8 @@ int acpi_get_local_u64_address(acpi_handle handle, u64 = *addr); int acpi_get_local_address(acpi_handle handle, u32 *addr); const char *acpi_get_subsystem_id(acpi_handle handle); =20 +struct device *acpi_bus_find_device_by_name(const char *name); + #ifdef CONFIG_ACPI_MRRM int acpi_mrrm_max_mem_region(void); #endif @@ -1106,6 +1108,11 @@ static inline const char *acpi_get_subsystem_id(acpi= _handle handle) return ERR_PTR(-ENODEV); } =20 +static inline struct device *acpi_bus_find_device_by_name(const char *name) +{ + return NULL; +} + static inline int acpi_register_wakeup_handler(int wake_irq, bool (*wakeup)(void *context), void *context) { --=20 2.47.3 From nobody Fri Jun 12 03:26:43 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 26D983A6F16 for ; Mon, 4 May 2026 10:59:20 +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=1777892361; cv=none; b=G1QXPJH3gzytwAGnldWqO5P33GuTGmNTjTnMQlz1M8bBKll8KGAnyb+0Mp8ZKXWi+mJHXWbciMH67NVUelMsHvKGUz0FtFMP9tSOPMqJlZhnyhyxvRInPZH4q7G7LkO1gP4A1QvDr5mTMfVB3F4F6C0e/uQKtGgcIWdL1QqayIE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777892361; c=relaxed/simple; bh=7JxG9a0+MCIZqlKYdVA9Lfg5AHcwDLPHiaU90aY4OuQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PF56A/d0PojUmEcD2Q3FSZsTUWpTNu4ZL4YkmkfYFefVPBxqmCY2DlvrYAGF6Aq44mj2DXivql6mBsfpylRjbrusESHCJNqRH5lLgoT4pHT3rs3UeiBN7vXbhKtKJDARUxiJDRu4fj0HVPfkSkwl8s/OaZKsV4e+jc9YIkG18HY= 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=YdaXGfuu; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kcgeDmVE; 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="YdaXGfuu"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kcgeDmVE" 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 644A4wwZ1023792 for ; Mon, 4 May 2026 10:59:19 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= ym0DookTYIjJdHtgNOrhmdkhvs2SuwVIeR42yl8FikQ=; b=YdaXGfuuGJnGgu1N zMGDSSXG+G941arQ0MAiAbf4M5iTS0kZnaANzqBCirJCh5vTbUG1EAVTZpLgm25U RgueE8LROaOrRaX0fzwceizG6DGIztZ/py96V0fLQfTGT1T2wypU81qT/V5N+k+t sSO7bmy65o3+f21zb9SqodORdHjaNM7PWyezh7/kpGd1QkpWQIdg3hNBi33CpeEK k1UoAFpkV0CT+M8GA4PtuZHlRLtgRfMBUwoBhIM+FT7R2hLJ+Kv4VsJf1kDuCHQO NTjbT8zrbpCNLgCFacSNp8k3TXCI/I8VxdRZ9zb6pRx+bB3KUmkQAR+Bx2wQ9Eqs Ufv/FQ== 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 4dxscy84x6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 04 May 2026 10:59:19 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50d5d1c2289so94049831cf.2 for ; Mon, 04 May 2026 03:59:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777892357; x=1778497157; 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=ym0DookTYIjJdHtgNOrhmdkhvs2SuwVIeR42yl8FikQ=; b=kcgeDmVE5GKCVrcVoLyZg7TQgoh0+QuJbFtLlrXBU3jhxDaxRH2wdyoVvXtMTJFXNs 155xo3fOT0zH3Op4VW2Ztvimr3nxwtrwQ32vP5zZoZeZHNNYbAoUFILu8RxalcNcAQ/k m8wVgJk/f3yK3ZR9FNj7i3RtLySCzVcsW+MY9/+26upwm3fRCBcWDc7wa8P1cOe9Ug4Z E436Fv8qVDZi6cz791GWPfsognOqut5QvdK+9kDWwKwzOA3gTYq/BxJp9tyhdnUNED+0 jQIduLoaczGikf6dhfTAzYuwbeRPV0HVv/g9KnTVlnUME+l+lqhbLqJ1LiLYFcy191zh e1dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777892357; x=1778497157; 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=ym0DookTYIjJdHtgNOrhmdkhvs2SuwVIeR42yl8FikQ=; b=Km9adws8dQmYTQhSz97QrCDhWSaJI11qLRt2q3g78HwvZDLIru1Dw6x+XUSu1IZM1c KUbtEwWdNuQFsmcKWLaIOg7oIePC11eiI12T83RaPdPCQL/RfY7nI62QdZAevbFZ/SZZ ZW2eMDUx0p46KUfsZPpapPBmKoMRFY4QV4JoMJ+xUUdKlLdOTWQhtN5oNYAUwWu/DM+6 W09l+7LMTz7eJnjqyF31/Yx4rmahQam6m1gVKnJZSejrHZH2yD7RZwhIL+NCIwmq4aGW OZca9UMch2MRsKjve0FkaWOVqRxMTeLLjYQsvoOni69b2xHX2Uymbj6LHxUmgAI3+1JC J3OQ== X-Forwarded-Encrypted: i=1; AFNElJ/f06LbEV63d/DojzyartJNCPsUAahBveT07tAt2PRBzaKoSdwr3B6MYbMI/pOzg8t7cXZhUBNGKxkHgj4=@vger.kernel.org X-Gm-Message-State: AOJu0Yxv6/eoSCRhya8xWydaftD18N3O2MwaTrEtkgs8sDHzxOVzCQwN P/Kf+dHXnSX9quaXlrEo3G3CXjk7YOnExnxVmPh5NoGy7QFyc6eIjk7k78ZEXbz6FRxBNTnjPuv Yzwutq0FCq5kBtPj2gvZmh5e1z9wTc5TLG3ZAEnTIeRpp2logW0J1dRpb6hzGTz4N1zA= X-Gm-Gg: AeBDievdsrdfKFsATqLmKZ2SzSC0ns9HoEaXuTTxULB0P6NksG+gDw38WVOEm99EUhf vI6PEYcg3Ocqtn4UgbI+esUcp0amhApuEQhakfMBHR1SHi+gMpwNeiurL6hh3KqKEnMj1ZW/Efj pRk24Q2Sd4AW0rA3cG3kIKsyyROgZvGwZZTakJ8oAN3D47KF3seLVyRB8bUl8oesM8lfB38vjkI S0IlAnMpEPd2/j/3snkhXg+2fOuel0bNIYThgs0xHQ+XhYlCzmx9e/8ImTsk6uUv1IuK0LO8B3r oLAQ8YnNVE7Yhum97yQTYK+wg00+LLtNTPKEw6kDnC4sBdQoKQ5bAHGacYS60rbxq2yx6TCTrD6 cBMzhbo6/KYldKo8V5sRf2+gJd0K+lyi/ATHDl1wHayB9Kumc9z8ngNgaPu9bvA== X-Received: by 2002:a05:622a:3d3:b0:50d:9c60:fe2a with SMTP id d75a77b69052e-5104bdf32afmr133826091cf.1.1777892357342; Mon, 04 May 2026 03:59:17 -0700 (PDT) X-Received: by 2002:a05:622a:3d3:b0:50d:9c60:fe2a with SMTP id d75a77b69052e-5104bdf32afmr133825771cf.1.1777892356882; Mon, 04 May 2026 03:59:16 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:56cb:50e1:b507:63d9]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8eb69698sm474728135e9.1.2026.05.04.03.59.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 May 2026 03:59:15 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 04 May 2026 12:58:57 +0200 Subject: [PATCH v5 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: <20260504-baytrail-real-swnode-v5-2-c7878b69e383@oss.qualcomm.com> References: <20260504-baytrail-real-swnode-v5-0-c7878b69e383@oss.qualcomm.com> In-Reply-To: <20260504-baytrail-real-swnode-v5-0-c7878b69e383@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=3689; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=7JxG9a0+MCIZqlKYdVA9Lfg5AHcwDLPHiaU90aY4OuQ=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBp+Hv8F40bmal2NGM4+D73NxohtUby8U7XhNz9B oZXnOiF3dyJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCafh7/AAKCRAFnS7L/zaE w9F+EACl5E46Y4zdsjIUMNaMjTFQxPyc/2sdshlfPC1wn2kRrq5ayfJWGAaz9FM9nR/H+ORq48/ 1kukI3+S8sJg57yC9L9DLjkSnxn+u/lPTt2YBc+S1/cZwdniXgYQOCK46ofMd/VOIEAAUx7OZMt rSXlWFS9yjGdQ1dyTroupVZ96urBveKOfQYnIKccfbbyLNejwOhp44O8nygkkQyuxtc/Al3Ea9u qZ89NDfRgaVS8hl0Sb9OboCpnpakew478TEMSCFzPaY7FFuRNijCLAzTyHUopP2CQ117HWHYQUQ mbbe/bWSruOXBRtV640ADEsqbYWVgGAgG6vNR26+XxSdg2j3r2vlQQdvesSALxyG7NavDllHQ7R eFQEppGqjBFxl97k7fPGZnQ0lvmxRtp++X9i6pTW9oGB6wPYn84Uu7Wne3DyJqeW1IkGrjE7qOR j7Jqa86KG4mGMb3Y7fy9NT+95GJXoOkWIEnC9heDp1wQ2oZumid2ZvB0I8NC2/75vBNHzrrKacC H+UuH0dzb5kEG0E/U/EhoOxguI+HaDC4508+d96tCfGa9TiYRuQfEWNTtzDqpW21hlKYOoOgPVj gTnBPyesvsCaoPjeqmCC2+coGaQjEivkAIsBL32FMWPJIzq17FAIkEr6sRytIVi9GMi+CCnNPMD JxiGJHreBY8X05Q== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA0MDExNiBTYWx0ZWRfX1Yn6NkZTTw+5 cMBAIrT9BahFLa9bDfjwLyNaKUfDnmok9MV/cVZxPY7/YzMsgFBT1rouqZysaGhzOdedFCWYh4E //BSeqTZGNY9KIaoyLESjXDiUj10JmqmG5av2TieiprUy9jPO+xq1J9N8F/l2pcoiX9Lw5qyaiF GNvdGXmi75bGy1pfsmJCMepGwNys0RuxNz3A5oM4SfLiJv9QtSSYV6JEyTC/ZqgA2mFXnQKrnat bjK5QDsQ7FzaZoUn9Nc0xhi9CutREWB6ESy0Il8+ePv3ndYB+ZoVbdfGex83tuaZigJovp88Vl0 xRUZay+akvhXpW8LYaFRLxepZPwI3TaUUv9/U7eD/FuGlpWdV9ADN2euDjhs5Fe0vI96bAdrNn1 0/Raxx7kIGrSUWhGvs0zBdyTJOelCFMtu4dXGMn3py3UW55gB38wJ6u16pC6VPaZjgt7wSba9l5 D4K81YOukMdf6jyySQg== X-Proofpoint-ORIG-GUID: eJ5OPFjDUUxmC189ukHg43_pXbJBAN8I X-Proofpoint-GUID: eJ5OPFjDUUxmC189ukHg43_pXbJBAN8I X-Authority-Analysis: v=2.4 cv=C47ZDwP+ c=1 sm=1 tr=0 ts=69f87c07 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=k_IdGrc-7EcYSgGcGvIA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU: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-05-04_04,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605040116 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. The driver uses platform_create_bundle() and expects all required providers to be present before it itself is probed. We know the name of the device we're waiting for so look them up and assign the appropriate software node as the secondary firmware node of the underlying ACPI node. Scheduling fine-grained devres actions allows for proper teardown and unsetting of the secondary firmware nodes. Signed-off-by: Bartosz Golaszewski Reviewed-by: Andy Shevchenko Reviewed-by: Linus Walleij Reviewed-by: Rafael J. Wysocki (Intel) --- drivers/platform/x86/x86-android-tablets/core.c | 63 +++++++++++++++++++++= ++-- 1 file changed, 60 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..4126b49e7d07b64ab9cdb876326= c315f9a73b16c 100644 --- a/drivers/platform/x86/x86-android-tablets/core.c +++ b/drivers/platform/x86/x86-android-tablets/core.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -360,6 +361,61 @@ static const struct software_node *cherryview_gpiochip= _node_group[] =3D { NULL }; =20 +static void gpio_secondary_unset(void *data) +{ + struct device *dev =3D data; + + set_secondary_fwnode(dev, NULL); +} + +static void gpio_secondary_unregister_node_group(void *data) +{ + const struct software_node **nodes =3D data; + + software_node_unregister_node_group(nodes); +} + +static int gpio_secondary_fwnode_init(struct device *parent) +{ + const struct software_node *const *swnode; + struct fwnode_handle *fwnode; + int ret; + + if (!gpiochip_node_group) + return 0; + + ret =3D software_node_register_node_group(gpiochip_node_group); + if (ret) + return ret; + + ret =3D devm_add_action_or_reset(parent, + gpio_secondary_unregister_node_group, + gpiochip_node_group); + if (ret) + return ret; + + for (swnode =3D gpiochip_node_group; *swnode; swnode++) { + struct device *dev __free(put_device) =3D + acpi_bus_find_device_by_name((*swnode)->name); + if (!dev) + return dev_err_probe(parent, + -ENODEV, "Failed to find the required GPIO controller: %s\n", + (*swnode)->name); + + fwnode =3D software_node_fwnode(*swnode); + if (WARN_ON(!fwnode)) + return -ENOENT; + + set_secondary_fwnode(dev, fwnode); + + ret =3D devm_add_action_or_reset(parent, gpio_secondary_unset, dev); + if (ret) + return ret; + } + + return 0; +} + static void x86_android_tablet_remove(struct platform_device *pdev) { int i; @@ -391,7 +447,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 +482,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 gpio_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